Contents
→ Updated version will be provided end of 2023
About Mobile SDK Authentication
General information about Mobile SDK Authentication
This document describes the BNP SDK authentication method and the corresponding parameters for the request and the responses passed back. If a merchant develops an app of its own, this method is necessary so that secure authentication takes place via the BNP interface, independently of the app. The authentication is based on a one-off token that is exchanged between BNP and the merchant.
Further information about integration of the SDK can be found within GitHub repository at https://github.com/axepta.
Process flow chart
Payment platform interface
Data formats: Format Description a alphabetical as alphabetical with special characters n numeric an alphanumeric ans alphanumeric with special characters ns numeric with special characters bool boolean expression (true or false) 3 fixed length with 3 digits/characters ..3 variable length with maximum 3 digits/characters enum enumeration of allowed values dttm ISODateTime (YYYY-MM-DDThh:mm:ss) Abbreviations: Abbreviation Description CND condition M mandatory O optional C conditional Notice: Please note that the names of parameters can be returned in upper or lower case.Definitions
Mobile SDK authentication process
High level process overview:
- Mobile SDK creates authentication request to merchant’s URL endpoint
- Merchant’s URL endpoint generates AuthToken and AuthLabel
- Merchant’s URL endpoint calls BNP interface with below defined parameters
- Merchant’s URL endpoint receives BNP response
- Merchant’s URL endpoint responds to Mobile SDK authentication request
For the authentication request, the merchant’s endpoint should accept a POST request with Content-Type: application/json and a JSON body like this:
{
"merchantID" : <BNP_MerchantID>
}
The Mobile SDK expects a JSON object as response from merchant’s endpoint, so merchant’s endpoint needs to create a JSON object with attributes from the response and also the generated AuthToken and AuthLabel like this:
{
"AuthToken“: <generated_token>,
"AuthLabel": <generated_label>,
“ExpiryDate”: <expiry_date_of_token>
"Description": <description_from_axepta_response>,
"Status": <status_from_axepta_response>,
"Code": <code_from_axepta_response>
}
Calling the interface
In order to register a one-off token for encryption on BNP Payment platform, the merchant must transmit the following parameters to BNP via a server-to-server connection. Use the following URL to do this:
Notice: For security reasons, Payment platform rejects all payment requests with formatting errors. Therefore please use the correct data type for each parameter.
The following table describes the encrypted payment request parameters:
Parameter | Format | CND | Description | |
---|---|---|---|---|
MerchantID | ans..30 | M | ID of merchant. Additionally this parameter has to be passed in plain language too. | |
AuthToken | an16..56 | M | Unique token generated by merchant which is used to decrypt the payment request | |
AuthLabel | an32..64 | M | Identifier for the AuthToken used to decrypt the payment request | |
ExpiryDate | dttm | O | End time of token validity. The maximum period of validity amounts 24 hours. If the value is not specified the token expires after 15 minutes by default. |
The following table describes the Payment platform response parameters:
Parameter | Format | CND | Description | |
---|---|---|---|---|
MID | ans..30 | M | ID of merchant | |
Status | a..30 | M | OK or FAILED | |
Description | ans..1024 | M | More detailed description of the values for Status and Code. Please do not use the Description but the Code parameter for the transaction status analysis! | |
Code | n8 | M | Error code according to Paygate Response Codes Excel file | |
ExpiryDate | dttm | M | End time of token validity. Either default value or return of the value of request. |