In-app 3DS Forwarding

This guide describes the flow for confirming secure transactions via push notifications in mobile application: the user receives a prompt directly in the mobile app to approve or decline a pending transaction.

This feature is not enabled by default. To activate it for your environment:

  1. Enable push notifications. Checkout the guide to learn more.
  2. Contact our Support Team or your Account Manager to request 3DS forwarding activation.

Step 1. Initiate an operation

Once a user initiates an operation, the system captures the trigger and sends a push notification to the user's mobile device (e.g. You have a transaction to review. Tap to see the details). The notification payload contains the requestId parameter — it is used to fetch data related to this ID.


Step 2. Get Transaction Details

Endpoint:

GET /card-holder/v1/3ds/transaction/{initiateActionId}

This endpoint retrieves the details of a transaction based on the provided initiateActionId parameter.

The user must be authenticated to trigger this endpoint.

Path Parameters:

NameTypeRequiredDescription
initiateActionIduuidA unique identifier for a previously initiated transaction.

Response Example:

   {   
    "last4": "string",
    "merchantName": "string",
    "transactionAmount": 0,
    "transactionCurrency": "string",
    "transactionTimestamp": "string"
  }

Possible Errors

Error MessageDescription
The provided transaction reference is invalid. Please check it and try again.The initiateActionId provided in the request path is invalid or does not exist. Verify the ID is correct.
This transaction has timed out and can’t be processed. Please create a new one if needed.The user did not respond to the push notification within 5 minutes. The transaction status will be TIMEOUT.


Step 3. Submit User Decision

Endpoint:

POST /card-holder/v1/3ds/decision

This endpoint is used to obtain user confirmation for transactions and forward that decision to the partner.

Body Parameters:

NameTypeRequiredDescription
initiateActionIduuidA unique identifier for a previously initiated transaction.
approvebooleanIndicates whether the transaction is approved by the user.

Response Example:

{
  "error": "string"
}

If the operation is completed successfully, the endpoint will respond with 200 OK. If no transaction is found for the provided initiateActionId the error message returned.