Skip to content

Pay with Stored Card – Subsequent Payments

When the Cardholder is logged in to the merchant’s e-shop, a ‘One click Payment’ button is presented for easy payment with just one click.

The Card token is detokenized, and the one click payment context is validated before the transaction is presented to IPS with a reference to the initial transaction. This allows the authentication flow to be bypassed.

How it works

To perform a payment with 3DS authorization, first create the order as detailed in API Integration Guide.

Note that you should include the additional OneClick and Tokenization parameters to the Order / Checkout Request, as shown below:

Location

Data Element

Type

Condition

Description

Request Body

tokenInfo

TokenInfo

Optional

Token Information.

Request Body.tokenisation.paymentTokens.paymentTokenItem

tokenType

string

Optional

Token Type.
Possible values are (“Card”, “Email”, “MobilePhone”)

Request Body.tokenisation.paymentTokens.paymentTokenItem

value

string

Optional

Token value.

Request Example:

{
    "merchant": {
        "terminalId": {{TerminalID}},
        "channel": "web",
        "merchantTransactionId": "Order Id: r7cxvi0saj"
    },
    "transaction": {
        "transactionTimestamp": "{{trxDatetime}}",
        "description": "Transaction for order number 4908 terminalId 100886",
        "moto": false,
        "paymentType": "PURS",
        "amount": {
            "value": 50.50,
            "currency": "PLN"
        },
        "paymentMethod": [
            "CARD"
        ]
    },
    "tokenisation": {
        "paymentTokens": [{
            "tokenType": "Card",
            "value": "{{purchaseTokenValue}}"
            }
        ]
    }
}
  

After completing the Order Creation, you may proceed to Make the Payment.

Note that the following request needs an Authorization Header with the transactionSignature returned from payment order operation.

In this purchase request, include the additional DeviceInfo , OneClick and TokenInfo parameters, as shown below.

Location

Data Element

Type

Condition

Description

Request Body.info

deviceInfo

DeviceInfo

Mandatory

Object that defines the customer device information.

Request Body.info.deviceInfo

browserAcceptHeader

string

Optional

Browser Accept Header

Request Body.info.deviceInfo

browserJavaEnabled

string

Optional

Browser Java Enabled

Request Body.info.deviceInfo

browserJavascriptEnabled

string

Optional

Browser Javascript Enabled

Request Body.info.deviceInfo

browserLanguage

string

Optional

Browser Language

Request Body.info.deviceInfo

browserColorDepth

string

Optional

Browser Color Depth

Request Body.info.deviceInfo

browserScreenHeight

string

Optional

Browser Screen Height

Request Body.info.deviceInfo

browserScreenWidth

string

Optional

Browser Screen Width

Request Body.info.deviceInfo

browserTZ

string

Optional

Browser Time Zone

Request Body.info.deviceInfo

browserUserAgent

string

Optional

Browser User Agent

Request Body.info.deviceInfo

systemFamily

string

Optional

System Family

Request Body.info.deviceInfo

systemVersion

string

Optional

System Version

Request Body.info.deviceInfo

systemArchitecture

string

Optional

System Architecture

Request Body.info.deviceInfo

deviceManufacturer

string

Optional

Device Manufacturer

Request Body.info.deviceInfo

deviceModel

string

Optional

Device Model

Request Body.info.deviceInfo

deviceID

string

Optional

Device Unique Identification

Request Body.info.deviceInfo

applicationName

string

Optional

Application Name

Request Body.info.deviceInfo

applicationVersion

string

Optional

Application Version

Request Body.info.deviceInfo

geoLocalization

string

Optional

Geolocation

Request Body.info.deviceInfo

ipAddress

string

Optional

IP Address

Request Body

oneClick

oneClick

Optional

Object that defines a One Click Payment.

Request Body.oneClick

oneClickApplication

boolean

Mandatory

For use of already created One Click. Indicates if a One Click Payment is requested to be applied. The absence indicates the value ‘False’.

Request Body

tokenInfo

TokenInfo

Optional

Token Information.

Response Body.tokenList

tokenType

string

Optional

Token Type

Possible values are:
– Email
– MobilePhone
– QRCodeMBWAY1
– Card
default: Card

Response Body.tokenList

value

string

Mandatory

Token Value

Request Example:

{
    "info": {
        "deviceInfo": {
            "browserAcceptHeader": "application/json, text/plain, */*",
            "browserJavaEnabled": "false",
            "browserLanguage": "en",
            "browserColorDepth": "24",
            "browserScreenHeight": "1080",
            "browserScreenWidth": "1920",
            "browserTZ": "-60",
            "browserUserAgent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36",
            "geoLocalization": "Lat: 38.7350528 | Long: -9.2143616",
            "systemFamily": "Windows",
            "systemVersion": "Windows",
            "deviceID": "498bfd4c3a3645b38667a7037b616c18",
            "applicationName": "Chrome",
            "applicationVersion": "106"
        },
        "customerInfo": [
            {
                "key": "customerName",
                "value": "User X
            },
            {
                "key": "customerEmail",
                "value": "testingemail@gmail.com"
            }
        ]
    },
    "tokenInfo": {
        "value": "{{purchaseTokenValue}}",
        "tokenType": "Card"
    },
    "oneClick": {
        "oneClickApplication": true
    }
}  

Expected response:

You will receive a response comprising a paymentStatus in the message. It informs whether the transaction was accepted, declined, still pending a final result, or requires additional action.

  • Success: The purchase has been processed successfully and the customer has been debited.
  • Declined: The purchase has been declined.
  • Pending: The final result of the purchase is not yet known. You will need to inquiry on the status of this transaction until it reaches a final state, or you decide to cancel it.
  • Partial: The purchase is partially accepted, but requires additional actions to the completed (e.g. 3D-Secure authentication). The actionResponse element is provided for instructions on how to proceed.

Perform a Get Status

After the payment has been fully processed, you can check the status of your transaction by sending a GET request.

Ensure that the Authorization HTTP header is set to the same Bearer token that was used in the initial Payment Order.

Request URL:
https://stargate-cer.qly.site1.sibs.pt/api/v1/payments/{transactionID}/status
Request Headers:
Authorization: ‘Bearer <AuthToken>’ 
X-IBM-Client-Id: ‘<ClientId>’
Content-Type: application/json