Real-time Transaction Authorization Decision Interface Documentation
1. Description
Real-time transaction authorization decision-making aims to allow Interlace customers with appropriate permissions to decide on authorizations sent directly to them, rather than having Interlace alone make the authorization decision.
2. Docking Process
- Merchants first provide a callback address to Interlace
- When a user conducts a transaction, Interlace will initiate a transaction authorization decision (Client VCC Decisioning) to the merchant
- Merchants shall return data in accordance with the interface format
- The merchant needs to respond within 2 seconds; otherwise, the current transaction will be automatically rejected by default.
RequestHeader's Content-Type isapplication/json
3. Interface Description
3.1 Request data structure is
{
"id": "d8a258a2-2403-41a2-88d9-0761aabddc17",
"businessType": "authorization",
"data": { ... },// @see 3.1.1
"sign": "cf1cf6e586abc408040b2c6f3a40f102f9bb4a9f27284f0218155f126a6be96d"
}3.1.1 Request API Client Data Field
| Field Name | Type | Required | Description |
|---|---|---|---|
| id | string | Y | ID Management |
| cardId | string | Y | Card Identification |
| createTime | string | Y | Creation Time |
| accountId | string | Y | accountId |
| sourceId | string | Y | Underlying bank transaction ID |
| transactionType | string | Y | [authorization] |
| transactionId | string | Y | Internal ID |
| transactionAmount | string | Y | Transaction Amount |
| transactionCurrency | string | Y | Transaction Currency |
| billAmount | string | At times | Settlement Amount |
| billCurrency | string | At times | Settlement Currency (USD) |
| detail | string | At times | Transaction Details |
| merchantName | string | Y | Platform Name |
| mcc | string | Y | Industry Code (MCC) to which the platform belongs |
| mccCategory | string | N | Industry category to which MCC belongs |
| merchantCity | string | N | City where the platform is located |
| merchantCountry | string | N | Country/Region where the platform is located |
| merchantState | string | N | State/Province where the platform is located |
| merchantZipcode | string | N | Platform postal code |
| merchantMid | string | N | Platform Number (MID |
3.2 Return field
| Field Name | Type | Required | Description |
|---|---|---|---|
| code | string | Y | According to 3.2.1 |
| id | string | Y | ID returned by 3.1 |
3.2.1 Enumeration corresponding to code
| Code | Description |
|---|---|
| 000 | Successful transaction |
| 112 | Account is blocked |
| 116 | Not enough money on account |
| 124 | Account not found |
| 481 | Customer cancellation |
| 482 | The cardholder aborted the transaction after an authorization request had been sent |
| 483 | Completed partially (amount less than original request) |
| 496 | Response received too late |
| 902 | Incorrect type of request or code of transaction |
| 907 | CBS is not available |
| 909 | Internal errors in the interface software |
| 910 | CBS is in "log off" state |
| 914 | Cancellation request sent when CBS operational day is closed |
| 913 | Duplicate transaction |
| 916 | Errors in software of CBS |
| 894 | Temporary moratorium (TIME_MORATORIUM) |
| 895 | Absence of information about debt (DEBTS_ABSENCE) |
| 997 | Service of advance repayment of debt not available (SERVICE_NOT_ALLOWED) |
| 814 | Limit reached for total number of transactions in cycle |
| 912 | WDL limit exceeded |
| 917 | Card's limit exceeded |
| 938 | Account's limit exceeded |
| 953 | Card is restricted |
| 243 | LUK expired or transaction limit for key exceeded |
| 940 | Original transaction not found |
| 957 | Payment institution unknown or unsupported |
| 239 | Terminate Subscription |
| 893 | Purchase only, no cash back allowed |
| 370 | Command to capture card from FRAUD |
| 371 | Command to block and capture card from FRAUD |
| 085 | Request is in Progress |
| 841 | Currency conversion failed |
3.3 Request Example
Request data
curl --location --request POST '客户提供决策服务地址' \
--header 'Content-Type: application/json' \
--data '{
"id": "d8a258a2-2403-41a2-88d9-0761aabddc17",
"businessType": "authorization",
"data": {
"id": "d8a258a2-2403-41a2-88d9-0761aabddc17",
"cardId": "5c949944-679d-4870-be89-3036e2a2921f",
"createTime": "2025-06-18T07:21:07.764Z",
"accountId": "78cd0ac6-ba6d-47f0-89cb-3ee61c33b2eb",
"sourceId": "2773310066554372217",
"transactionType": "authorization",
"transactionId": "32972b97-9e09-4e62-8609-39af33d442b0",
"transactionAmount": 2100,
"transactionCurrency": "HKD",
"billAmount": 271.56,
"billCurrency": "USD",
"detail": "TRANSIT1 CITY NAME HK",
"merchantName": "TRANSIT1",
"mcc": "6011",
"mccCategory": "",
"merchantCity": "CITY NAME",
"merchantCountry": "HK",
"merchantState": "",
"merchantZipcode": "",
"merchantMid": ""
},
"sign": "cf1cf6e586abc408040b2c6f3a40f102f9bb4a9f27284f0218155f126a6be96d"
}'Response Data
{
"id": "d8a258a2-2403-41a2-88d9-0761aabddc17",
"code": "000"
}4. Special Cases
- During the check, for example, when it is our system's MCC blocklist, authorization will not be granted to downstream API clients.
- During the check, for example, if the balance is insufficient, authorization will not be granted to downstream API clients.
Updated about 1 hour ago