logo Sogenactif

Release 23.6

go directly to content

Search by keywords

Sogenactif In-App - SDK Android

To search in the page use Ctrl+F on your keyboard

  • Sogenactif

It is advised to read the following documents before

  • Recommended

    309 Sips In App Json

    Functional, technical documentation and user guides to help you to integrate Sogenactif online payment solution.

    Open in new tab 309 Sips In App Json

Sogenactif is a secure multi-channel e-commerce payment solution that complies with the PCI DSS standard. It allows you to accept and manage payment transactions by taking into account business rules related to your activity (payment upon shipping, deferred payment, recurring payment, payment in instalments, etc.).

The purpose of this document is to explain the implementation steps of the solution up to live operations.

This document is intended for merchants wishing to subscribe to the Sogenactif offer and integrate payment as part of their Android mobile application.

It is an implementation guide for your technical team.

To get an overview of the Sogenactif solution, we advise you to consult the following documents:

To get an overview of the Sogenactif In-App connector, we advise you to also consult the following document:

  • Sogenactif In-App

Knowledge of standards related to mobile programming languages used today is necessary to develop a Android mobile application connected to the SDK proposed by Sogenactif In-App.

Before implementing the SDK, you should have followed Sogenactif In-App connector implementation steps (cf. Sogenactif In-App documentation).

Note: all code sections in this document are provided as samples, you will need to adapt them to your mobile application for them to be fully operable.
IMPORTANT: the Sogenactif In-App SDK must be used with at least a 4.4 version of Android system.

You can download our Android SDK via this link.

To use this library in your Java application, add the JAR of the SDK to the project compilation folder.

  • Right click on your project:
    • Select Properties;
    • Click on Java Build Path;
    • In Libraries tab, click on Add JARs;
    • Select the JAR of the SDK, then click on OK.

To use this library in your Android Studio and Gradle applications, add the AAR file of the SDK to the libs folder.

  • in the file build.gradle, add the following code to the repositories section;
flatDir {
   dirs 'libs'
}
  • add the following dependencies:
compile(name: 'wl-sips-inapp-sdk-1.4.0', ext: 'aar')
compile 'com.google.code.gson:gson:2.2.2'
compile 'com.squareup.okhttp3:okhttp:3.9.1'
compile 'com.google.guava:guava:16.0.1'

Add the following entries to the Android manifest of the application:

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    <uses-permission android:name="android.permission.GET_ACCOUNTS"/>
Note: GET_ACCOUNTS and READ_PHONE_STATE permissions are optional.

The SDK needs these permissions to retrieve the telephone information:

Device information As from version Comments
Android ID 1.0
Debugger detector 1.0
Device name 1.0
E-mail address 1.0
Emulator detector 1.0
Service provider 1.0
Rooted telephone 1.0
SIM serial number 1.0
Hash of the SSL library 1.0
Hash of System Core 1.0
Hash of the In-App SDK 1.0
Hash of the WebKit library 1.0
Blacklisted applications 1.0
IMEI 1.0
Screen switched on? 1.0

All the necessary methods are in the PaymentManager public class.

Tip: these methods carry out network calls, so they must be called asynchronously.
Tip: before using a function, make sure you have the rights to use it on your shop by contacting the Sogenactif technical support.

This function allows you to carry out a card payment.
It has to be called after a request from your server to Sogenactif In-App orderInitialize service, with sdkOperationName=CARDORDER.

cardOrder request format

Fields Presence Type Comments
activity Mandatory Activity Used to retrieve phone data from the Android Activity context
cardCSCValue Optional String Visual card security code
cardExpiryDate Mandatory String Card expiry date
cardNumber Optional String Card number
paymentMeanBrand Optional String Name of the payment method that is used
paymentMeanBrandSelectionStatus Optional String Status of the processing of the brand application selection
publicKeyValue Mandatory String Value of the public key used to encrypt the data sent to through the SDK Retrieved from initialization request
redirectionData Mandatory String Context of the transaction sent during initialization
redirectionUrl Mandatory String URL of the next SDK service to call
redirectionVersion Mandatory String Interface version

cardOrder response format (OrderResponse object)

Fields Type Comments
acquirerResponseCode String Acquirer response code
amount String Transaction amount
authentExemptionReasonList List of String Exemption fixed by the issuer
authorisationId String Authorisation ID returned by the acquirer if the authorisation request is accepted
authorisationTypeLabel String Label of the authorisation request type
authorMessageReference String Identifier shared with the acquirer during the authorisation process
captureDay String Capture delay
captureMode String Capture mode
cardData CardData Contains specific information regarding a card (Cf part Containers)
cardExpiryDate String (yyyyMM) Card expiry date
currencyCode String Currency code
customerId String Customer ID
errorFieldName String Request field name which originated the error
guaranteeIndicator String Transaction's guarantee level
guaranteeLimitDateTime Date Deadline for application of the payment guarantee
holderAuthentMethod String Name of the method applied to authenticate a payment mean holder
holderAuthentProgram String Authentication program
holderAuthentRelegationCode String Code indicating whether the issuer accepts or refuses the transfer of responsibility
holderAuthentResponseCode String Response code of the authentication process
holderAuthentStatus String Result of the authentication process
holderAuthentType String Cardholder authentication type applied by the issuer of the card. Field valued in 3-D Secure v2.
inAppResponseCode String Sogenactif response code
invoiceReference String Invoice reference
issuerWalletInformation String Information given by the wallet provider intended for the merchant in response to a transaction creation request
maskedPan String Masked card number
merchantId String Sogenactif identifier of your shop
merchantWalletId String Customer's Wallet identifier
orderChannel String Order channel
orderId String Order ID
panEntryMode String Card number reading mode
paymentMeanBrand String Brand of the card
paymentMeanBrandSelectionStatus String Status of the processing of the brand application selection
paymentMeanType String Payment method type (card, transfer, withdrawal, etc). It groups together a set of paymentMeanBrand.
paymentPattern String Type of payment (per operation, 1st recurring payment etc).
returnContext String Value sent in the request
s10TransactionReference S10TransactionReference Contains the identification of the original transaction (to be compliant with Sogenactif 1.0 (Cf Containers part)
statementReference String Reference provided by the merchant which is sent in the payment collection flow. This reference appears on the account statements of the cardholder.
transactionDateTime Date Date and time the transaction was processed on the Sogenactif server (expressed in the Sogenactif server time zone)
transactionOrigin String Origin of a transaction (for example: name of the program), set by the merchant
transactionPlatform String Platform where the transaction has been executed
transactionReference String Transaction reference
walletType String Wallet type

This function allows you to carry out a wallet payment.
It has to be called after a request from your server to Sogenactif In-App orderInitialize service, with sdkOperationName=WALLETORDER.

walletOrder request format

Fields Presence Type Comments
activity Mandatory Activity Used to retrieve phone data from the Android Activity context
cardCSCValue Optional String Visual card security code
paymentMeanBrand Optional String Selected brand of the payment mean. If not sent, value stored in the Wallet will be used.
paymentMeanBrandSelectionStatus Optional String Status of the processing of the brand application selection. If not sent, value stored in the wallet will be used.
paymentMeanId Mandatory Integer ID of the selected card in the Wallet
publicKeyValue Mandatory String Value of the public key used to encrypt the data sent to through the SDK Retrieved from initialization request
redirectionData Mandatory String Context of the transaction sent during initialization
redirectionUrl Mandatory String URL of the next SDK service to call
redirectionVersion Mandatory String Interface version

walletOrder response format (OrderResponse object)

Fields Type Comments
acquirerResponseCode String Acquirer response code
amount String Transaction amount
authentExemptionReasonList List of String Exemption fixed by the issuer
authorisationId String Authorisation ID returned by the acquirer if the authorisation request is accepted
authorisationTypeLabel String Label of the authorisation request type
authorMessageReference String Identifier shared with the acquirer during the authorisation process
captureDay String Capture delay
captureMode String Capture mode
cardData CardData Contains specific information regarding a card (Cf part Containers)
cardExpiryDate String (yyyyMM) Card expiry date
currencyCode String Currency code
customerId String Customer ID
errorFieldName String Request field name which originated the error
guaranteeIndicator String Transaction's guarantee level
guaranteeLimitDateTime Date Deadline for application of the payment guarantee
holderAuthentMethod String Name of the method applied to authenticate a payment mean holder
holderAuthentProgram String Authentication program
holderAuthentRelegationCode String Code indicating whether the issuer accepts or refuses the transfer of responsibility
holderAuthentResponseCode String Response code of the authentication process
holderAuthentStatus String Result of the authentication process
holderAuthentType String Cardholder authentication type applied by the issuer of the card. Field valued in 3-D Secure v2.
inAppResponseCode String Sogenactif response code
invoiceReference String Invoice reference
issuerWalletInformation String Information given by the wallet provider intended for the merchant in response to a transaction creation request
maskedPan String Masked card number
merchantId String Sogenactif identifier of your shop
merchantWalletId String Customer's Wallet identifier
orderChannel String Order channel
orderId String Order ID
panEntryMode String Card number reading mode
paymentMeanBrand String Brand of the card
paymentMeanBrandSelectionStatus String Status of the processing of the brand application selection
paymentMeanType String Payment method type (card, transfer, withdrawal, etc). It groups together a set of paymentMeanBrand.
paymentPattern String Type of payment (per operation, 1st recurring payment etc).
returnContext String Value sent in the request
s10TransactionReference S10TransactionReference Contains the identification of the original transaction (to be compliant with Sogenactif 1.0 (Cf Containers part)
statementReference String Reference provided by the merchant which is sent in the payment collection flow. This reference appears on the account statements of the cardholder.
transactionDateTime Date Date and time the transaction was processed on the Sogenactif server (expressed in the Sogenactif server time zone)
transactionOrigin String Origin of a transaction (for example: name of the program), set by the merchant
transactionPlatform String Platform where the transaction has been executed
transactionReference String Transaction reference
walletType String Wallet type

This function allows you to get the BCMC Intent URL to be called to carry out a BCMC payment.
It has to be called after a request from your server to Sogenactif In-App orderInitialize service, with sdkOperationName=PAYMENTPROVIDERORDER and paymentMeanBrand=BCMCMOBILE.

paymentProviderOrder request format

Fields Presence Type Comments
activity Mandatory Activity Used to retrieve phone data from the Android Activity context
publicKeyValue Mandatory String Value of the public key used to encrypt the data sent to through the SDK Retrieved from initialization request
redirectionData Mandatory String Context of the transaction sent during initialization
redirectionUrl Mandatory String URL of the next SDK service to call
redirectionVersion Mandatory String Interface version

paymentProviderOrder response format (PaymentProviderResponse object)

Fields Type Comments
errorFieldName String Request field name which originated the error
inAppResponseCode String Sogenactif response code
outerRedirectionUrl String Redirection URL to an outer payment application (here: BCMC mobile application)
redirectionUrl String URL of the next SDK service to call
transactionContextData String Transaction context
transactionContextVersion String Transaction context version

This function allows you to check the status of the ongoing BCMC transaction once the BCMC application has been called.
It has to be called following a request to Sogenactif In-App paymentProviderOrder, when the BCMC application calls back the merchant application.

getTransactionData request format

Fields Presence Type Comments
activity Mandatory Activity Used to retrieve phone data from the Android Activity context
transactionContextData Mandatory String Transaction context Retrieved from paymentProviderOrder response
transactionContextVersion Mandatory String Transaction context version
redirectionUrl Mandatory String URL of the next SDK service to call

getTransactionData response format (GetTransactionDataResponse object)

Fields Type Comments
acquirerResponseCode String Acquirer response code
authentExemptionReasonList List of String Exemption fixed by the issuer
authorisationId String Authorisation ID returned by the acquirer if the authorisation request is accepted
authorisationTypeLabel String Label of the authorisation request type
authorMessageReference String Identifier shared with the acquirer during the authorisation process
captureLimitDate String Date from which the transaction will be sent for settlement. Beyond this date, you can no longer validate or cancel the transaction.
captureMode String Capture mode
cardData CardData Contains specific information regarding a card (Cf part Containers)
cardExpiryDate String (yyyyMM) Card expiry date
currencyCode String Currency code
customerId String Customer ID
errorFieldName String Request field name which originated the error
guaranteeIndicator String Transaction's guarantee level
guaranteeLimitDateTime Date Deadline for application of the payment guarantee
holderAuthentMethod String Name of the method applied to authenticate a payment mean holder
holderAuthentProgram String Authentication program
holderAuthentRelegationCode String Code indicating whether the issuer accepts or refuses the transfer of responsibility
holderAuthentResponseCode String Response code of the authentication process
holderAuthentStatus String Result of the authentication process
holderAuthentType String Cardholder authentication type applied by the issuer of the card. Field valued in 3-D Secure v2.
inAppResponseCode String Sogenactif response code
invoiceReference String Invoice reference
issuerWalletInformation String Information given by the wallet provider intended for the merchant in response to a transaction creation request
maskedPan String Masked card number
merchantId String Sogenactif identifier of your shop
merchantWalletId String Customer's Wallet identifier
orderChannel String Order channel
orderId String Order ID
originAmount String Original amount of the transaction
panEntryMode String Card number reading mode
paymentMeanBrand String Brand of the card
paymentMeanBrandSelectionStatus String Status of the processing of the brand application selection
paymentMeanType String Payment method type (card, transfer, withdrawal, etc). It groups together a set of paymentMeanBrand.
paymentPattern String Type of payment (per operation, 1st recurring payment etc).
returnContext String Value sent in the request
s10TransactionReference S10TransactionReference Contains the identification of the original transaction (to be compliant with Sogenactif 1.0 (Cf Containers part)
statementReference String Reference provided by the merchant which is sent in the payment collection flow. This reference appears on the account statements of the cardholder.
transactionDateTime Date Date and time the transaction was processed on the Sogenactif server (expressed in the Sogenactif server time zone)
transactionOrigin String Origin of a transaction (for example: name of the program), set by the merchant
transactionPlatform String Platform where the transaction has been executed
transactionReference String Transaction reference
transactionStatus String Status of the transaction
walletType String Wallet type

This function is used to prepare a 3-D Secure payment. It allows you to get the paReq (Payer Authentication Request) message and the ACS (Access Control Server) URL you will use to redirect the customer for authentication.
It has to be called after a request from your server to Sogenactif In-App orderInitialize service, with sdkOperationName=THREEDSECUREANDORDER.

cardCheckEnrollment request format

Fields Presence Type Comments
activity Mandatory Activity Used to retrieve phone data from the Android Activity context
cardCSCValue Optional String Visual card security code
cardExpiryDate Mandatory String Card expiry date
cardNumber Optional String Card number
paymentMeanBrand Optional String Name of the payment method that is used
paymentMeanBrandSelectionStatus Optional String Status of the processing of the brand application selection
publicKeyValue Mandatory String Value of the public key used to encrypt the data sent to through the SDK Retrieved from initialization request
redirectionData Mandatory String Context of the transaction sent during initialization
redirectionUrl Mandatory String URL of the next SDK service to call
redirectionVersion Mandatory String Interface version

cardCheckEnrollment response format (CardCheckEnrollmentResponse object)

Fields Type Comments
authentRedirectionUrl String ACS redirection URL
errorFieldName String Request field name which originated the error
maskedPan String Masked card number
paReqMessage String PaReq message used for ACS authentication
redirectionStatusCode String Sogenactif response code
redirectionUrl String URL of the next SDK service to call
tokenPan String Unique ID for a PAN
transactionContextData String Transaction context
transactionContextVersion String Transaction context version

Depending on the result, your application must redirect the customer to the ACS (refer to POST form to the ACS).

This function allows you to prepare a 3-D Secure payment from a card already stored in Sogenactif Wallet. It allows you to get the paReq (Payer Authentication Request) message and the ACS (Access Control Server) URL you will use to redirect the customer for authentication.
It has to be called after a request from your server to Sogenactif In-App orderInitialize service, with sdkOperationName=THREEDSECUREANDWALLETORDER.

walletCheckEnrollment request format

Fields Presence Type Comments
activity Mandatory Activity Used to retrieve phone data from the Android Activity context
cardCSCValue Optional String Visual card security code
paymentMeanBrand Optional String Selected brand of the payment mean. If not sent, value stored in the Wallet will be used.
paymentMeanBrandSelectionStatus Optional String Status of the processing of the brand application selection. If not sent, value stored in the wallet will be used.
paymentMeanId Mandatory Integer ID of the selected card in the Wallet
publicKeyValue Mandatory String Value of the public key used to encrypt the data sent to through the SDK Retrieved from initialization request
redirectionData Mandatory String Context of the transaction sent during initialization
redirectionUrl Mandatory String URL of the next SDK service to call
redirectionVersion Mandatory String Interface version

walletCheckEnrollment response format (WalletCheckEnrollmentResponse object)

Fields Type Comments
authentRedirectionUrl String ACS redirection URL
errorFieldName String Request field name which originated the error
maskedPan String Masked card number
paReqMessage String PaReq message used for authentication
paymentMeanBrand String Brand of the card
paymentMeanBrandSelectionStatus String Status of the processing of the brand application selection
redirectionStatusCode String Sogenactif response code
redirectionUrl String URL of the next SDK service to call
tokenPan String Unique ID for a PAN
transactionContextData String Transaction context
transactionContextVersion String Transaction context version

Depending on the result, your application must redirect the customer to the ACS (refer to POST form to the ACS).

This function allows you to validate customer's authentication, and perform the payment.
It has to be called following a request to Sogenactif In-App cardCheckEnrollment or walletCheckEnrollment, once the ACS returns the PARes message."URL Encode" algorithm must be applied to the PARes message before being supplied to the SDK.

cardValidateAuthenticationAndOrder request format

Fields Presence Type Comments
activity Mandatory Activity Used to retrieve phone data from the Android Activity context
paResMessage Mandatory String Customer authentication result. Standard "URL Encode" algorithm must be applied to paResMessage field received from ACS.
transactionContextData Mandatory String Transaction context Retreived from cardCheckEnrollment or walletCheckEnrollment response
transactionContextVersion Mandatory String Transaction context version
redirectionUrl Mandatory String URL of the next SDK service to call

cardValidateAuthenticationAndOrder response (OrderResponse object)

Fields Type Comments
acquirerResponseCode String Acquirer response code
amount String Transaction amount
authentExemptionReasonList List of String Exemption fixed by the issuer
authorisationId String Authorisation ID returned by the acquirer if the authorisation request is accepted
authorisationTypeLabel String Label of the authorisation request type
authorMessageReference String Identifier shared with the acquirer during the authorisation process
captureDay String Capture delay
captureMode String Capture mode
cardData CardData Contains specific information regarding a card (Cf part Containers)
cardExpiryDate String (yyyyMM) Card expiry date
currencyCode String Currency code
customerId String Customer ID
errorFieldName String Request field name which originated the error
guaranteeIndicator String Transaction's guarantee level
guaranteeLimitDateTime Date Deadline for application of the payment guarantee
holderAuthentMethod String Name of the method applied to authenticate a payment mean holder
holderAuthentProgram String Authentication program
holderAuthentRelegationCode String Code indicating whether the issuer accepts or refuses the transfer of responsibility
holderAuthentResponseCode String Response code of the authentication process
holderAuthentStatus String Result of the authentication process
holderAuthentType String Cardholder authentication type applied by the issuer of the card. Field valued in 3-D Secure v2.
inAppResponseCode String Sogenactif response code
invoiceReference String Invoice reference
issuerWalletInformation String Information given by the wallet provider intended for the merchant in response to a transaction creation request
maskedPan String Masked card number
merchantId String Sogenactif identifier of your shop
merchantWalletId String Customer's Wallet identifier
orderChannel String Order channel
orderId String Order ID
panEntryMode String Card number reading mode
paymentMeanBrand String Brand of the card
paymentMeanBrandSelectionStatus String Status of the processing of the brand application selection
paymentMeanType String Payment method type (card, transfer, withdrawal, etc). It groups together a set of paymentMeanBrand.
paymentPattern String Type of payment (per operation, 1st recurring payment etc).
returnContext String Value sent in the request
s10TransactionReference S10TransactionReference Contains the identification of the original transaction (to be compliant with Sogenactif 1.0 (Cf Containers part)
statementReference String Reference provided by the merchant which is sent in the payment collection flow. This reference appears on the account statements of the cardholder.
transactionDateTime Date Date and time the transaction was processed on the Sogenactif server (expressed in the Sogenactif server time zone)
transactionOrigin String Origin of a transaction (for example: name of the program), set by the merchant
transactionPlatform String Platform where the transaction has been executed
transactionReference String Transaction reference
walletType String Wallet type

This function allows you to retrieve the content of a customer's Sogenactif Wallet.
It has to be called after a request from your server to Sogenactif In-App walletInitialize service, with sdkOperationName=GETWALLETDATA.

getWalletData request format

Fields Presence Type Comments
activity Mandatory Activity Used to retrieve phone data from the Android Activity context
publicKeyValue Mandatory String Value of the public key used to encrypt the data sent to through the SDK Retrieved from initialization request
redirectionData Mandatory String Context of the transaction sent during initialization
redirectionUrl Mandatory String URL of the next SDK service to call
redirectionVersion Mandatory String Interface version

getWalletData response format (GetWalletDataResponse format)

Fields Type Comments
errorFieldName String Request field name which originated the error
inAppResponseCode String Sogenactif response code
walletCreationDateTime Date Wallet creation date
walletPaymentMeanData List of WalletPaymentMeanData List of a customer's Wallet registered cards (Cf Containers part)

This function allows you to add a new card to a customer's Sogenactif Wallet.
It has to be called after a request from your server to Sogenactif In-App walletInitialize service, with sdkOperationName=ADDCARD.

addCard request format

Fields Presence Type Comments
activity Mandatory Activity Used to retrieve phone data from the Android Activity context
cardExpiryDate Mandatory String Card expiry date
cardNumber Mandatory String Card number
paymentMeanAlias Mandatory String Alias of the card stored in the Wallet
paymentMeanBrand Optional String Brand of the card
paymentMeanBrandSelectionStatus Optional String Status of the processing of the brand application selection
publicKeyValue Mandatory String Value of the public key used to encrypt the data sent to through the SDK Retrieved from initialization request
redirectionData Mandatory String Context of the transaction sent during initialization
redirectionUrl Mandatory String URL of the next SDK service to call
redirectionVersion Mandatory String Interface version

addCard response format (AddCardResponse object)

Fields Type Comments
errorFieldName String Request field name which originated the error
inAppResponseCode String Sogenactif response code
paymentMeanId String ID of the payment mean in the Wallet
maskedPan String Masked card number
walletActionDateTime Date Date of the last action done on the Wallet

This function allows you to delete a payment mean from a customer's Sogenactif Wallet.
It has to be called after a request from your server to Sogenactif In-App walletInitialize service, with sdkOperationName=DELETEPAYMENTMEAN.

deletePaymentMean request format

Fields Presence Type Comments
activity Mandatory Activity Used to retrieve phone data from the Android Activity context
paymentMeanId Mandatory Integer ID of the payment mean to delete from the Wallet
publicKeyValue Mandatory String Value of the public key used to encrypt the data sent to through the SDK Retrieved from initialization request
redirectionData Mandatory String Context of the transaction sent during initialization
redirectionUrl Mandatory String URL of the next SDK service to call
redirectionVersion Mandatory String Interface version

deletePaymentMean response format (DeletePaymentMeanResponse object)

Fields Type Comments
errorFieldName String Request field name which originated the error
inAppResponseCode String Sogenactif response code
walletActionDateTime Date Date of the last action done on the Wallet

This function allows you to get information linked to a PAN or a card BIN. For example, it will allow you to propose to the customer to choose the brand to apply on a payment while his card is linked to several brands.
It has to be called after a request from your server to Sogenactif In-App paymentMeanInfoInitialize service, with sdkOperationName=GETCARDDATA.

getCardData request format

Fields Presence Type Comments
activity Mandatory Activity Used to retrieve phone data from the Android Activity context
cardIIN Optional String Card IIN At least one of these fields must be sent in the request
cardNumber Optional String Card number
publicKeyValue Mandatory String Value of the public key used to encrypt the data sent to through the SDK Retrieved from initialization request
redirectionData Mandatory String Context of the transaction sent during initialization
redirectionUrl Mandatory String URL of the next SDK service to call
redirectionVersion Mandatory String Interface version

getCardData response format (GetCardDataResponse object)

Fields Type Comments
cardDataList List of CardData List of CardData container containing information about a card (in case of card cobadged several occurrences may appear - example: CB / Visa card). (Cf Containers part)
errorFieldName String Request field name which originated the error
inAppResponseCode String Sogenactif response code

CardData

Fields Type Comments
cardBrand String Card brand
cardCorporateIndicator String Indicates whether the card is an Enterprise / Commercial card or not
cardEffectiveDateIndicator String Indicator of existence of a card effective date (Y/N/Empty)
cardProductCode String Product code of the card
cardProductName String Product name of the card
cardProductProfile String Profile code of the card
cardProductUsageLabel String Profile name of the card which is displayed on payment electronic ticket in accordance with MPADS requirements
cardScheme String Network name associated with the card
cardSeqNumberIndicator String Indicator of existence of an issue number
issuerCode String Issuer code of the card
issuerCountryCode String Country code of the card issuer
issuerName String Issuer name of the card
issuerRegionCode String Region code of the card issuer
issuingCountryCode String Country code in which the card has been issued
panCheckAlgorithm String Control algorithm applied on the PAN (L/V/N/Empty)
panLengthMax Short Maximum length of the PAN
panLengthMin Short Minimal length of the PAN

S10TransactionReference

Fields Type Comments
s10TransactionId String Alternative identifier for the transaction to be compliant with Sogenactif 1.0

The couple s10TransactionId/s10TransactionIdDate ensures the unicity of the 1.0 transaction.
The use of this couple instead of transactionReference depends on an option in the merchant configuration.

s10TransactionIdDate String Date of the transaction (expressed in the Sogenactif server time zone)

WalletPaymentMeanData

Fields Type Comments
maskedPan String Masked card number
panExpiryDate Date Card expiry date
paymentMeanAlias String Card alias
paymentMeanBrand String Card brand
paymentMeanId Integer Payment mean ID in the customer's wallet
POST redirection form
POST form to the ACS
Depending on enrollment check result, your mobile application must redirect the customer to the ACS by POSTing the following parameters to the received authentRedirectionUrl:
  • PaReq message: returned by the previous call in paReqMessage field;
  • MD (Merchant Data) : field containing merchant status data which must be returned to the merchant. This field must be used to retrieve the session on your website;
  • TermUrl : merchant URL used to receive the customer authentication result (PaRes and MD response fields). It must be a URL from your website where the customer is redirected to.
IMPORTANT: The MD field must contain ASCII characters in the range 0x20 to 0x7E only; If other data are needed, the field must be Base64 encoded. Size of the field (after Base64 encoding, if applicable) is limited to 1024 bytes. If confidential data are included (as the PAN), they must be encrypted.

On Android, an Android function can be called in a WebView from JavaScript code. Therefore, TermUrl can be a web page that pushes the received POST fields to the merchant's Android application, using a JavascriptInterface method.

Sample AcsWebViewActivity that gets the PaRes from an ACS authentication:

public class AcsWebViewActivity extends Activity {
  public static final String EXTRA_ACS_URL = "EXTRA_ACS_URL";
  public static final String EXTRA_PARES = "EXTRA_PARES";
  public static final String EXTRA_PAREQ = "EXTRA_PAREQ";
  public static final String EXTRA_MD = "EXTRA_MD";
  private WebView webView;
  final Handler myHandler = new Handler();

  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_acs_web_view);

    final JavaScriptInterface myJavaScriptInterface = new JavaScriptInterface();

    webView = (WebView) findViewById(R.id.webView);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.addJavascriptInterface(myJavaScriptInterface, "AndroidFunction");
    webView.getSettings().setLoadWithOverviewMode(true);
    webView.setWebViewClient(new WebViewClient() {
      @Override
      public boolean shouldOverrideUrlLoading(WebView  view, String  url) {
        return false;
      }
    });
    
    String data = "<script>window.onload = function(){"
        + "document.forms['acs'].submit();}</script>"
        + "Please wait..."
        + "<form method=\"POST\" name=\"acs\" action=\"" + getIntent().getStringExtra(EXTRA_ACS_URL) + "\" style=\"display:none;\">"
        + "<input type=\"text\" name=\"MD\" value=\"" + getIntent().getStringExtra(EXTRA_MD) + "\">"
        + "<input type=\"text\" name=\"TermUrl\" value=\"http://inappmerchantserverdemo-mobilepayments.apps.zone52.org/displayAcsResponse.jsp\">"
        + "<input type=\"text\" name=\"PaReq\" value=\"" + getIntent().getStringExtra(EXTRA_PAREQ) + "\">"
        + "<input type=\"submit\" value=\"Submit\">" 
        + "</form>";
    webView.loadDataWithBaseURL(null, data, "text/html", "utf-8", null);
  }

  public class JavaScriptInterface {
    @JavascriptInterface
    public void putPaRes(String paRes) {
      // Url encode algorithm to apply on the pares received
      // Call cardValidateAuthentication with paRes message encoded
    }
  }
}

The table below gives you the generic response codes for all operations. Refer to the data dictionary for details of response codes by function.

Status Response fields Action to be performed
Function performed responseCode = 00 The requested function has been successfully completed (for example a refund with the refund function).
Declined following a technical problem responseCode = 90, 99 Temporary technical problem when the function was processed. Try to execute the function again later.
Unauthorised function responseCode = 40 You do not have the rights to execute this function. Please contact the technical support centre to request that this right be activated if your purchasing contract allows it.
Function not performed Any other responseCode The function could not be performed because one of the parameters is incorrect. Please consult the data dictionary for the details of each error code and for the format of each parameter.

In order to test your developments on the tests environment, and to go to production, you must have finalize the server-to-server implementation part described in the Sogenactif In-App documentation. Then, you may go back to "test on the validation environment" step of this last documentation.

This site uses trackers to improve your experience, perform analysis and researches on your use of Sogenactif documentation website.
You have several options:
Closing this banner you refuse the use of trackers on your device.

Configuration