🇰🇿 Test Data for "BankCardKZ"

Overview

The BankCardKZ payment method uses 3DS version 2 (3DSv2) for cardholder authentication.

To help you test different authentication and authorisation flows in the sandbox, we’ve introduced the concept of a “written destiny” for each transaction.

A written destiny lets you define exactly how a transaction will behave at each stage of the 3DSv2 flow - from intent creation to capture - without changing any other parameters.

This approach simplifies automated testing and enables deterministic emulation of success, failure, and edge-case scenarios.


Reference Diagram

The entire process is illustrated in the flow diagram below.

As you can see, there are several possible paths a transaction can follow - depending on iframe requirements, challenge outcomes, authorisation results, and post-authorisation actions.

Download the image in high resolution


Defining the Transaction Destiny

The destiny is set via the description field in the Intent creation request body.

⚠️

Important:

There are two description fields in the API structure - one in the intent, and another in payments[].description. Use only the intent-level field. The one inside payments[] will be ignored for testing purposes.

  • Each destiny consists of a chain of keywords corresponding to specific flow outcomes.
  • These keywords are grouped by flow sections, and only one keyword can be chosen per section.
  • Join your selected keywords with the | (pipe) symbol to form a single string.
  • If the platform detects that the actual transaction behaviour does not match the destiny you provided, it will return an ERROR and stop processing.

Example

For example, to simulate this sequence:

StepKeyword
3DS challengeChallenge-Success
Authorisation is successfulAuthSuccess
A capture request is sentInitCapture
The payment transaction is captured successfullyCapture-Success

You should define the destiny as follows: "description": "Challenge-Success|AuthSuccess|InnitCapture|Capture-Success"


{
  "clientReferenceId": "12355884566454255875454157",
  "description": "Iframe-Success|Challenge-Success|AuthSuccess|InitCapture|Capture-Success",

    "payments": [
        {
            "payer": {
                "firstname": "Megan",
                "lastname": "Fox",
                "phone": "+6228128011",
                "email": "[email protected]",
                "countryIsoCode": "KZ",
                "locale": "de-DE",
                "taxIdentification": "7852",
                "merchantPayerReference": "12357"
            },
            "paymentInstrument": {
                "paymentMethodName": "BankCardKZ",
                "incomingDetails": {
                    "number": "4111111111111111",
                    "cvv": "123",
                    "holderName": "Will Rush",
                    "expiryMonth": "12",
                    "expiryYear": "2035"
                }
            },
            "submittedAmount": {
                "value": 200.1,
                "currency": "KZT"
            },
            "authCurrencyCode": "KZT",
            "threeDSContext": {
                "merchantLocalDateTime": "01.02.2012 18:34:58",
                "browserAcceptHeader": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
                "browserIp": "147.30.44.72",
                "browserLanguage": "ru",
                "browserUserAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36",
                "browserJavaEnabled": false,
                "browserColorDepth": "24",
                "browserScreenHeight": "864",
                "browserScreenWidth": "1536",
                "browserTZ": "-360",
                "browserJsEnabled": false,
                "notificationUrl": "https://secure.examplepay.com/3ds/complete",
                "requestorUrl": "https://www.merchantshop.com"
            },
            "webhookUrl": "https://google.requestcatcher.com/"
        }
    ]
}

List of Supported Cases

Download the image in high resolution


List of Cases in text

CaseDescription
CASE1Frictionless|AuthSuccess|InitCapture|Capture-Success
CASE2Frictionless|AuthSuccess|InitCapture|Capture-Error
CASE3Frictionless|AuthSuccess|InitCancellation|Cancellation-Success
CASE4Frictionless|AuthSuccess|InitCancellation|Cancellation-Error
CASE5Frictionless|AuthDecline
CASE6Challenge|AuthSuccess|InitCapture|Capture-Success
CASE7Challenge|AuthSuccess|InitCapture|Capture-Error
CASE8Challenge|AuthSuccess|InitCancellation|Cancellation-Success
CASE9Challenge|AuthSuccess|InitCancellation|Cancellation-Error
CASE10Challenge|AuthDecline
CASE11Challenge|AuthExpired