logo Sogenactif

Release 22.5

go directly to content

Search by keywords

Sogenactif In-App - SDK iOS

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 iOS 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 iOS 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 7.0 version of iOS system.

You can download our iOS SDK via this link.

For any technical question or request for assistance, our services are available Monday to Friday, from 9 am to 7 pm, excluding public holidays:

  • by telephone at: +33 (0) 825 090 095 (0,15 € TTC/min + price of a call – price as of 09/12/2022)
  • by e-mail: supportsogenactif@worldline.com

In order to facilitate the processing of your requests, please provide your merchantId (15-digit number).

The SDK contains three folders:

  • Release-iphoneos: this folder is useful to compile a project for an iphone device. It's useful to perform real tests before launching live operation.
  • Release-iphonesimulator: this folder is useful to compile a project for an iOS simulator.
  • Release-universal: this folder regroups the two architectures previously mentioned.

The SDK is published in the form of a framework file.

Simply drag and drop the InAppSdk.framework file into your project to import it.

In your project, you must link the SDK file.

To do this, in XCode:

  • click on your project;
    • click on your target application,
    • click on the Build phases tab,
    • expand the Link Binary With Libraries section,
      • click on the « + » symbol,
      • select the InAppSdk.framework file.

This is sometimes done automatically.

In your merchant project, you must link embedded binaries.

To do this, in XCode:

  • click on your project;
    • click on your target application,
    • click on General tab,
    • in the Embedded Binaries section:
      • click on the "+" symbol,
      • select the InAppSdk.framework file.

You should have the following configuration:



All the necessary methods are in the InAppSdk public class.

Tip: on the iOS version of the SDK, the asynchronism is managed within the SDK itself. Therefore, there is no need to call these functions asynchronously, the response is received using a handler at the end of the call.
Tip: before using a function, make sure you have the rights to use this function 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
cardCSCValue Optional NSString Visual card security code
cardExpiryDate Mandatory NSString Card expiry date
cardNumber Optional NSString Card number
paymentMeanBrand Optional NSString Name of the payment method that is used
paymentMeanBrandSelectionStatus Optional NSString Status of the processing of the brand application selection
publicKeyValue Mandatory NSString Value of the public key used to encrypt the data sent to through the SDK Retrieved from initialization request
redirectionData Mandatory NSString Context of the transaction sent during initialization
redirectionUrl Mandatory NSString URL of the next SDK service to call
redirectionVersion Mandatory NSString Interface version
handler Mandatory void (^)(INAPPOrderResponse * response) Handler supplied at the end of the call

cardOrder response format (OrderResponse object)

Fields Type Comments
acquirerResponseCode NSString Acquirer response code
amount NSString Transaction amount
authentExemptionReasonList List of NSString Exemption fixed by the issuer
authorisationId NSString Authorisation ID returned by the acquirer if the authorisation request is accepted
authorisationTypeLabel NSString Label of the authorisation request type
authorMessageReference NSString Identifier shared with the acquirer during the authorisation process
captureDay NSString Capture delay
captureMode NSString Capture mode
cardData INAPPCardData Contains specific information regarding a card (Cf part Containers)
cardExpiryDate NSString (yyyyMM) Card expiry date
currencyCode NSString Currency code
customerId NSString Customer ID
errorFieldName NSString Request field name which originated the error
guaranteeIndicator NSString Transaction's guarantee level
guaranteeLimitDateTime NSString Deadline for application of the payment guarantee
holderAuthentMethod NSString Name of the method applied to authenticate a payment mean holder
holderAuthentProgram NSString Authentication program
holderAuthentRelegationCode NSString Code indicating whether the issuer accepts or refuses the transfer of responsibility
holderAuthentResponseCode NSString Response code of the authentication process
holderAuthentStatus NSString Result of the authentication process
holderAuthentType NSString Cardholder authentication type applied by the issuer of the card. Field valued in 3-D Secure v2.
inAppResponseCode NSString Sogenactif response code
invoiceReference NSString Invoice reference
issuerWalletInformation NSString Information given by the wallet provider intended for the merchant in response to a transaction creation request
maskedPan NSString Masked card number
merchantId NSString Sogenactif identifier of your shop
merchantWalletId NSString Customer's Wallet identifier
orderChannel NSString Order channel
orderId NSString Order ID
panEntryMode NSString Card number reading mode
paymentMeanBrand NSString Brand of the card
paymentMeanBrandSelectionStatus NSString Status of the processing of the brand application selection
paymentMeanType NSString Payment method type (card, transfer, withdrawal, etc). It groups together a set of paymentMeanBrand.
paymentPattern NSString Type of payment (per operation, 1st recurring payment etc).
returnContext NSString Value sent in the request
s10TransactionReference INAPPS10TransactionReference Contains the identification of the original transaction (to be compliant with Sogenactif 1.0 (Cf Containers part)
statementReference NSString Reference provided by the merchant which is sent in the payment collection flow. This reference appears on the account statements of the cardholder.
transactionDateTime NSString Date and time the transaction was processed on the Sogenactif server (expressed in the Sogenactif server time zone)
transactionOrigin NSString Origin of a transaction (for example: name of the program), set by the merchant
transactionPlatform NSString Platform where the transaction has been executed
transactionReference NSString Transaction reference
walletType NSString 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
cardCSCValue Optional NSString Visual card security code
paymentMeanBrand Optional NSString Selected brand of the payment mean. If not sent, value stored in the Wallet will be used.
paymentMeanBrandSelectionStatus Optional NSString Status of the processing of the brand application selection. If not sent, value stored in the wallet will be used.
paymentMeanId Mandatory NSString ID of the selected card in the Wallet
publicKeyValue Mandatory NSString Value of the public key used to encrypt the data sent to through the SDK Retrieved from initialization request
redirectionData Mandatory NSString Context of the transaction sent during initialization
redirectionUrl Mandatory NSString URL of the next SDK service to call
redirectionVersion Mandatory NSString Interface version
handler Mandatory void (^)(INAPPOrderResponse * response) Handler supplied at the end of the call

walletOrder response format (OrderResponse object)

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

paymentProviderOrder response format (PaymentProviderResponse object)

Fields Type Comments
errorFieldName NSString Request field name which originated the error
inAppResponseCode NSString Sogenactif response code
outerRedirectionUrl NSString Redirection URL to an outer payment application (here: BCMC mobile application)
redirectionUrl NSString URL of the next SDK service to call
transactionContextData NSString Transaction context
transactionContextVersion NSString 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
transactionContextData Mandatory NSString Transaction context Retrieved from paymentProviderOrder response
transactionContextVersion Mandatory NSString Transaction context version
redirectionUrl Mandatory NSString URL of the next SDK service to call
handler Mandatory void (^)(INAPPGetTransactionDataResponse * response) Handler supplied at the end of the call

getTransactionData response format (GetTransactionDataResponse object)

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

cardCheckEnrollment response format (CardCheckEnrollmentResponse object)

Fields Type Comments
authentRedirectionUrl NSString ACS redirection URL
errorFieldName NSString Request field name which originated the error
maskedPan NSString Masked card number
paReqMessage NSString PaReq message used for ACS authentication
redirectionStatusCode NSString Sogenactif response code
redirectionUrl NSString URL of the next SDK service to call
tokenPan NSString Unique ID for a PAN
transactionContextData NSString Transaction context
transactionContextVersion NSString 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
cardCSCValue Optional NSString Visual card security code
paymentMeanBrand Optional NSString Selected brand of the payment mean. If not sent, value stored in the Wallet will be used.
paymentMeanBrandSelectionStatus Optional NSString Status of the processing of the brand application selection. If not sent, value stored in the wallet will be used.
paymentMeanId Mandatory NSString ID of the selected card in the Wallet
publicKeyValue Mandatory NSString Value of the public key used to encrypt the data sent to through the SDK Retrieved from initialization request
redirectionData Mandatory NSString Context of the transaction sent during initialization
redirectionUrl Mandatory NSString URL of the next SDK service to call
redirectionVersion Mandatory NSString Interface version

walletCheckEnrollment response format (WalletCheckEnrollmentResponse object)

Fields Type Comments
authentRedirectionUrl NSString ACS redirection URL
errorFieldName NSString Request field name which originated the error
maskedPan NSString Masked card number
paReqMessage NSString PaReq message used for authentication
paymentMeanBrand NSString Brand of the card
paymentMeanBrandSelectionStatus NSString Status of the processing of the brand application selection
redirectionStatusCode NSString Sogenactif response code
redirectionUrl NSString URL of the next SDK service to call
tokenPan NSString Unique ID for a PAN
transactionContextData NSString Transaction context
transactionContextVersion NSString 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
paResMessage Mandatory NSString Customer authentication result. Standard "URL Encode" algorithm must be applied to paResMessage field received from ACS.
transactionContextData Mandatory NSString Transaction context Retreived from cardCheckEnrollment or walletCheckEnrollment response
transactionContextVersion Mandatory NSString Transaction context version
redirectionUrl Mandatory NSString URL of the next SDK service to call
handler Mandatory void (^)(INAPPOrderResponse * response) Handler supplied at the end of the call

cardValidateAuthenticationAndOrder response (OrderResponse object)

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

getWalletData response format (GetWalletDataResponse format)

Fields Type Comments
errorFieldName NSString Request field name which originated the error
inAppResponseCode NSString Sogenactif response code
walletCreationDateTime NSString Wallet creation date
walletPaymentMeanData List of INAPPGetWalletDataResponseItem 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
cardExpiryDate Mandatory NSString Card expiry date
cardNumber Mandatory NSString Card number
paymentMeanAlias Mandatory NSString Alias of the card stored in the Wallet
paymentMeanBrand Optional NSString Brand of the card
paymentMeanBrandSelectionStatus Optional NSString Status of the processing of the brand application selection
publicKeyValue Mandatory NSString Value of the public key used to encrypt the data sent to through the SDK Retrieved from initialization request
redirectionData Mandatory NSString Context of the transaction sent during initialization
redirectionUrl Mandatory NSString URL of the next SDK service to call
redirectionVersion Mandatory NSString Interface version
handler Mandatory void (^)(INAPPAddCardResponse * response) Handler supplied at the end of the call

addCard response format (AddCardResponse object)

Fields Type Comments
errorFieldName NSString Request field name which originated the error
inAppResponseCode NSString Sogenactif response code
paymentMeanId NSString ID of the payment mean in the Wallet
maskedPan NSString Masked card number
walletActionDateTime NSString 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
paymentMeanId Mandatory NSString ID of the payment mean to delete from the Wallet
publicKeyValue Mandatory NSString Value of the public key used to encrypt the data sent to through the SDK Retrieved from initialization request
redirectionData Mandatory NSString Context of the transaction sent during initialization
redirectionUrl Mandatory NSString URL of the next SDK service to call
redirectionVersion Mandatory NSString Interface version
handler Mandatory void (^)(INAPPDeletePaymentMeanResponse * response) Handler supplied at the end of the call

deletePaymentMean response format (DeletePaymentMeanResponse object)

Fields Type Comments
errorFieldName NSString Request field name which originated the error
inAppResponseCode NSString Sogenactif response code
walletActionDateTime NSString 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
cardIIN Optional NSString Card IIN At least one of these fields must be sent in the request
cardNumber Optional NSString Card number
publicKeyValue Mandatory NSString Value of the public key used to encrypt the data sent to through the SDK Retrieved from initialization request
redirectionData Mandatory NSString Context of the transaction sent during initialization
redirectionUrl Mandatory NSString URL of the next SDK service to call
redirectionVersion Mandatory NSString Interface version
handler Mandatory void (^)(INAPPGetCardDataResponse * response) Handler supplied at the end of the call

getCardData response format (GetCardDataResponse object)

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

INAPPCardData

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

INAPPS10TransactionReference

Fields Type Comments
s10TransactionId NSString 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 NSString Date of the transaction (expressed in the Sogenactif server time zone)

INAPPGetWalletDataResponseItem

Fields Type Comments
maskedPan NSString Masked card number
panExpiryDate NSString Card expiry date
paymentMeanAlias NSString Card alias
paymentMeanBrand NSString Card brand
paymentMeanId NSString 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 iOS, a function can be called in a UIWebView from JavaScript code. Therefore, TermUrl can be a merchant web page that pushes the received POST fields to merchant iOS application, using a UIWebViewDelegate shouldStartloadWithRequest method.

Sample AcsWebViewController that gets the PaRes from an ACS authentication:

@implementation MERCHANTAPPAcsWebViewController
- (void)viewDidLoad {
  [super viewDidLoad];
  
  self.webView.delegate = self;
  
  NSMutableString *s = [NSMutableString stringWithCapacity:0];
  [s appendString: [NSString stringWithFormat:@"<html><body onload=\"document.forms[0].submit()\">"
                    "<form method=\"post\" action=\"%@\">", self.acsUrl]];

  if([self.acsPostParams count] % 2 == 1) {
    NSLog(@"UIWebViewWithPost error: params don't seem right");
    return;
  }
  for (int i=0; i < [self.acsPostParams count] / 2; i++) {
    [s appendString: [NSString stringWithFormat:
                      @"<input type=\"hidden\" name=\"%@\" value=\"%@\" >\n",
                      [self.acsPostParams objectAtIndex:i*2],
                      [self.acsPostParams objectAtIndex:(i*2)+1]]];
  }
  [s appendString: @"</input></form></body></html>"];
  [self.webView loadHTMLString:s baseURL:nil];
}

// This function is called on all location change :
- (BOOL)webView:(UIWebView *)webView2 shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
  // Intercept custom location change, URL begins with “putpares l:"
  if ([[[request URL] absoluteString] hasPrefix:@"putpares:"]) {
    // Extract the selector name from the URL
    NSArray *components = [[[request URL] absoluteString] componentsSeparatedByString:@":"];
    NSString * paRes = [components objectAtIndex:1];

    NSLog(@"paRes : %@", paRes);

    [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
    UIAlertView *alert = [[UIAlertView alloc]
                          initWithTitle:[[NSBundle mainBundle] localizedStringForKey:@"wait" value:@"" table:nil]
                          message:@""
                          delegate:nil
                          cancelButtonTitle:nil
                          otherButtonTitles:nil];
    [alert show];

    [InAppSdk
     cardValidateAuthenticationAndOrderWithPaResMessage:paRes
     andTransactionContextData:self.transactionContextData
     andRedirectionUrl:self.redirectionUrl
     andTransactionContextVersion:self.transactionContextVersion
     andHandler:^(NSDictionary *result) {
       //Do something with cardValidateAuthentication response
     }];
    // Cancel the location change
    return NO;
  }
  // Accept this location change
  return YES;
}

@end

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