Callback Service
TripLink supports callback to customer interfaces in multiple business scenarios. Customers can implement their own business logic in the callback interface.
The callback is based on the HTTP/HTTPS protocol with the POST method, and all request bodies are in JSON format with all characters encoded in UTF-8.
The callback process is considered Failed if any of the following situations occur: request failure, request timeout, or response status code other than 2XX.
The callback is divided into Synchronous and Asynchronous types. Synchronous requests must respond in a timely manner and have no retry mechanism, while asynchronous requests do not need to respond in a timely manner and have a retry mechanism.
Callback List
| Name | Type | Response Time | Retry Count | Retry Interval |
|---|---|---|---|---|
| Authorization Decision Callback | Synchronous | 3s | N/A | N/A |
| Authorization Result Notification | Asynchronous | 9s | 20 | N × 2min |
| Settlement Result Notification | Asynchronous | 9s | 20 | N × 2min |
| CreateCard Result Notification | Asynchronous | 9s | 20 | N × 2min |
| CloseCard Result Notification | Asynchronous | 9s | 20 | N × 2min |
The client can check the items they want to be notified of, and will only be notified if they are checked.

Authorization Decision Callback
Before approving an authorization request, TripLink will call back to this customer interface, allowing the customer to implement their own risk control and authorization decisions.
If the callback fails, TripLink will degrade to using default decision results for the customer, as outlined in the Callback Parameters.
If the callback fails continuously for 10 times, the system will no longer request the customer interface and will directly degrade, requiring the customer to manually re-enable it.
Request Body
| Name | Type | Description | Note |
|---|---|---|---|
bizContent | String | Actual message. | Needs to be deserialized through JSON.See AuthorizationDecision for details. |
sign | String | Signature | Sign the original bizContent,Verify the signature with the RSA public key of the API.See Preparation for details. |
AuthorizationDecision
| Name | Type | Description | Note |
|---|---|---|---|
authId | String | ID | Unique globally. |
transactionId | String | Transaction ID | The transactionId of the reversal transaction is same as the corresponding authorized transaction. |
cardLogId | String | Card ID | TripLink-specific card identifier. |
localDate | String | Transaction Local date | In local time zone, formatted as yyyyMMdd. |
localTime | Sreing | Transaction Local time | In local time zone, formatted as HHmmss. |
occurTime | String | Transaction Occurrence time | In card time zone, formatted as yyyy-MM-dd HH:mm:ss. |
messageType | String | Transaction type | Enum value, 4 digits, see **authorization type ** dropdown list for details. |
messageTypeDesc | String | Transaction type description | See **authorization type ** dropdown list for details. |
transCurrency | String | Transaction currency | ISO 4217 currency code, consisting of 3 digits. |
transCurrencyAmt | String | Transaction amount | Decimal number, corresponding to the transaction currency. |
localCurrency | String | Card currency | ISO 4217 currency code, consisting of 3 digits. |
localCurrencyAmt | String | Card transaction amount | Decimal number, corresponding to the card currency. For refund transactions, the card transaction amount is 0. |
cardAvailableBalance | String | Card available balance | Decimal number, corresponding to the card currency. |
merchantId | String | Merchant ID | |
merchantName | String | Merchant name | |
merchantCategoryCode | String | Merchant MCC | ISO 18245 merchant category code, a 4-digit number. |
merchantCountry | String | Merchant country | (unstandardized) |
isoMerchantCountryCode | String | Merchant country | ISO 3166 country code, 3 letters.(maybe empty) |
merchantCity | String | Merchant city | |
acquirerId | String | Acquirer ID | |
useRef1Txt | String | User-defined field 1 | |
useRef2Txt | String | User-defined field 2 | |
useRef3Txt | String | User-defined field 3 | |
useRef4Txt | String | User-defined field 4 | |
useRef5Txt | String | User-defined field 5 |
| messageType | messageTypeDesc |
|---|---|
6810 | Authorization Approval |
6510 | Auth Refund Approval |
6820 | Authorization Query |
{
"bizContent": "{\"authId\":\"311503c7-0466-4d01-a500-551c40b91cf6\",\"cardLogId\":\"51a50ffbbd0437ff10fffb93d1620e213441a30a3fa16164d57d98cade066ba0\",\"localTime\":\"025900\",\"localDate\":\"20220623\",\"occurTime\":\"2022-06-23 10:59:00\",\"merchantCategoryCode\":\"0011\",\"merchantName\":\"\",\"merchantCountry\":\"\",\"state\":\"\",\"merchantCity\":\"\",\"messageType\":\"6810\",\"messageTypeDesc\":\"Authorization Approval\",\"acquirerId\":\"213457\",\"merchantId\":\"080000100003\",\"transCurrency\":\"840\",\"transCurrencyAmt\":\"55.66\",\"localCurrency\":\"840\",\"localCurrencyAmt\":\"55.66\",\"useRef1Txt\":\"anything\",\"useRef2Txt\":\"\",\"useRef3Txt\":\"\",\"useRef4Txt\":\"\",\"useRef5Txt\":\"\",\"cardAvailableBalance\":\"955.57\"}",
"sign": "k2/HGZOYIFnYI+WZwW1R1YYryOmYd6ds5rAoioKstfslmeBJvVo1KkPOr5zMt86uZ9XFqJV1vDvavreClLnTBbALvtuF44JLZQsGngMe4MvKcWM2oJX4cCcqptqXkz7XpgCuSST0HeTJ8EHuAIQuF+W87/u86pcUMCBjDus1NuNf5MbS/y/eMW3qCwA5s6q1sp7AR2zmXna+eI+n+JEc9tylxo14Kr17pLGX0NRx+iwuw4H/tnazGDN49vW3kbFzRhj/jxN4vB2rvWIdrL1/pdhI2wFRt5b8AfIwhv5ae0GxP3AuaRCNU3LL+YvkvdIA2o+7RctkGhlbe4upzYARog=="
}
Response Body
Clients must identify the authorization decision result through the code field in the response body.
If the value of the code field is 0, it means authorization is granted. If the value is not 0, it means authorization is denied.
| Name | Type | Required | Description | Note |
|---|---|---|---|---|
code | String | Y | Result code | 0: Authorization granted; non-0: Authorization denied. |
msg | String | N | Result code description |
Authorization Result Notification
TripLink will send the authorization results to this customer interface asynchronously after the authorization is completed.
If the notification fails, it will be Retried. After the maximum number of retries is reached, this notification will no longer be sent, but other notifications will not be affected.
Request Body
| Name | Type | Description | Note |
|---|---|---|---|
noticeType | String | Notification type | auth. |
bizContent | String | Actual message | It needs to be deserialized through JSON.See AuthorizationNotification for details. |
sign | String | Signature | Sign the original bizContent,Verify the signature with the RSA public key of the API.See Preparation for details. |
AuthorizationNotification
| Name | Type | Description | Note |
|---|---|---|---|
authId | String | ID | Unique globally. |
transactionId | String | Transaction ID | The transactionId of the reversal transaction is same as the corresponding authorized transaction. |
cardLogId | String | Card ID | TripLink-specific card identifier. |
occurTime | String | Transaction Occurrence time | In card time zone, formatted as yyyy-MM-dd HH:mm:ss. |
messageType | String | Transaction type | Enum value, 4 digits, see authorization type dropdown list for details. |
messageTypeDesc | String | Transaction type description | See authorization type dropdown list for details. |
reversalType | String | Reversal Type | Only valid when the authorization type is 6930 or 6940.0: System reversal; 1: Non-system reversal. |
respCode | String | Transaction Response Code | Enumerated value, 4 digits.See response code dropdown for details. |
respCodeDesc | String | Transaction Response Code Description | See response code dropdown for details. |
approveCode | String | Authorization Code | Random 6 digits. |
transCurrency | String | Transaction currency | ISO 4217 currency code, consisting of 3 digits. |
transCurrencyAmt | String | Transaction amount | Decimal number, corresponding to the transaction currency. |
localCurrency | String | Card currency | ISO 4217 currency code, consisting of 3 digits. |
localCurrencyAmt | String | Card transaction amount | Decimal number, corresponding to the card currency. For refund transactions, the card transaction amount is 0. |
cardAvailableBalance | String | Card available balance | Decimal number, corresponding to the card currency. |
merchantId | String | Merchant ID | |
merchantName | String | Merchant name | |
merchantCategoryCode | String | Merchant MCC | ISO 18245 merchant category code, a 4-digit number. |
merchantCountry | String | Merchant country | (unstandardized) |
isoMerchantCountryCode | String | Merchant country | ISO 3166 country code, 3 letters.(maybe empty) |
merchantCity | String | Merchant city | |
acquirerId | String | Acquirer ID | |
crossBorderType | String | Cross-border type | 0: Domestic; 1: Overseas. |
useRef1Txt | String | User-defined field 1 | |
useRef2Txt | String | User-defined field 2 | |
useRef3Txt | String | User-defined field 3 | |
useRef4Txt | String | User-defined field 4 | |
useRef5Txt | String | User-defined field 5 |
| messageType | messageTypeDesc |
|---|---|
6810 | Authorization Approval |
6890 | Authorization Decline |
6510 | Auth Refund Approval |
6590 | Auth Refund Decline |
6930 | Authorization Reversal Approval |
6940 | Auth Refund Reversal Approval |
6820 | Authorization Query |
| respCode | respCodeDesc |
|---|---|
0000 | Authorization Approval |
| respCode | respCodeDesc |
|---|---|
1002 | High Risk Transaction |
1003 | Invalid Account |
1101 | Abnormal Customer Status |
1102 | Card canceled |
1103 | Authorization Amount Error |
1104 | VAN Amount Limit Error |
1105 | Invalid Expiry Date |
1106 | Transaction Count Over Limit |
1107 | Invalid CVV2 |
1108 | VAN Amount Limit Error |
1110 | Trans Currency Not Allowed |
1111 | MCC Error |
1112 | VAN credit limit greater than max Limit |
1113 | VAN credit limit less than min Limit |
1114 | Transaction Date before card activeDate |
1115 | Transaction Date after card inactiveDate |
1116 | Auth Amount greater than available VAN credit limit |
1117 | Auth Amount greater than available account credit limit |
1118 | Limited usage with abnormal card status |
1201 | Authorization already in process, please wait until the last authorization completed |
1203 | Not support 3ds |
2012 | Cardholder cancels identity verification |
2014 | Cardholder fails to complete identity verification within the specified time |
2019 | Cardholder fails to complete identity verification within the specified number of attempts |
2022 | Merchant requests invalid information |
2222 | Authorization decision reject |
2299 | Authorization decision downgrade reject |
3004 | Abnormal Card Scheme Network |
9000 | Unknow Error |
| respCode | respCodeDesc |
|---|---|
0000 | Authorization Approval |
| respCode | respCodeDesc |
|---|---|
0000 | Authorization Approval |
1002 | High Risk Transaction |
1003 | Invalid Account |
1101 | Abnormal Customer Status |
1105 | Invalid Expiry Date |
2001 | Original Transaction Unmatch |
2002 | Original Transaction Unmatch |
| respCode | respCodeDesc |
|---|---|
0000 | Authorization Approval |
1002 | High Risk Transaction |
1003 | Invalid Account |
2001 | Original Transaction Unmatch |
2002 | Original Transaction Unmatch |
| respCode | respCodeDesc |
|---|---|
0000 | Authorization Approval |
1002 | High Risk Transaction |
1003 | Invalid Account |
1102 | Card canceled |
1118 | Limited usage with abnormal card status |
Response Body
The customer must identify the notification receiving result through the code field in the response body
If the value of the code field is 0, it means receiving success. If the value is not 0, it means receiving failure.
| Name | Type | Required | Description | Note |
|---|---|---|---|---|
code | String | Y | Result code | 0: receiving success; non-0: receiving failure. |
msg | String | N | Result code description |
Settlement Result Notification
TripLink will send the settlement results to this customer interface asynchronously after the authorization is completed.
If the notification fails, it will be Retried. After the maximum number of retries is reached, this notification will no longer be sent, but other notifications will not be affected.
Request Body
| Name | Type | Description | Note |
|---|---|---|---|
noticeType | String | Notification type | clearing. |
bizContent | String | Actual message | It needs to be deserialized through JSON.See AuthorizationNotification for details. |
sign | String | Signature | Sign the original bizContent,Verify the signature with the RSA public key of the API.See Preparation for details. |
SettlementNotification
| Name | Type | Description | Comment |
|---|---|---|---|
serialNo | String | transaction ID | Globally unique. |
occurDateTime | String | transaction time | Format yyyy-MM-dd HH:mm:ss. |
postingDateTime | String | posting time | Format yyyy-MM-dd HH:mm:ss. |
postingSysTime | String | system posting time | Format yyyy-MM-dd. |
transactionCode | String | transaction type | Enumerated type, 4 digits, see settlement type drop-down list. |
transactionType | String | transaction code description | See settlement type drop-down list. |
approvalCode | String | authorization code | Random 6 alphanumeric. |
isCredit | String | credit transaction | DEBT: Debit, CRED: Credit. |
originalTransactionCurrency | String | transaction currency code | ISO 4217 currency code, 3 digits. |
originalTransactionAmount | Number | transaction amount | Decimal, matching transaction currency. |
cardTransactionCurrency | String | card currency | ISO 4217 currency code, 3 digits. |
cardTransactionAmount | Number | card transaction Amount | Decimal, matching card currency. |
accountCurrency | String | settlement currency code | ISO 4217 currency code, 3 digits. |
billAccountAmount | Number | settlement amount | Decimal, matching settlement currency. |
posMerchantID | String | merchant ID | |
posMerchantName | String | merchant name | |
posMerchantClassCode | String | merchant MCC | ISO 18245 merchant type, 4 digits. |
posMerchantCountry | String | merchant country | (unstandardized) |
isoMerchantCountryCode | String | merchant country | ISO 3166 country code, 3 letters.(maybe empty) |
posMerchantCity | String | merchant city | |
posAcquirerID | String | acquirer ID | |
transactionId | String | transaction relation ID | Settlement and corresponding authorization has same value. |
cardLogId | String | card ID | TripLink card ID. |
customerId | String | customer ID | |
useRef1Txt | String | User-defined field 1 | |
useRef2Txt | String | User-defined field 2 | |
useRef3Txt | String | User-defined field 3 | |
useRef4Txt | String | User-defined field 4 | |
useRef5Txt | String | User-defined field 5 | |
useRef6Txt | String | User-defined field 6 | |
useRef7Txt | String | User-defined field 7 | |
useRef8Txt | String | User-defined field 8 | |
useRef9Txt | String | User-defined field 9 | |
useRef10Txt | String | User-defined field 10 | |
useRef11Txt | String | User-defined field 11 | |
useRef12Txt | String | User-defined field 12 | |
useRef13Txt | String | User-defined field 13 | |
useRef14Txt | String | User-defined field 14 | |
useRef15Txt | String | User-defined field 15 | |
useRef16Txt | String | User-defined field 16 | |
useRef17Txt | String | User-defined field 17 | |
useRef18Txt | String | User-defined field 18 | |
useRef19Txt | String | User-defined field 19 | |
useRef20Txt | String | User-defined field 20 |
| transactionCode | transactionType | Description | Debit/Credit | Amount Sign |
|---|---|---|---|---|
2010 | Purchase | Purchase | DEBT | Positive |
2110 | Refund | Refund | CRED | Negative |
{
"noticeType": "clearing",
"bizContent": "{"serialNo":"MAST202507281626132705079335612","transactionId":"202507281626132705079335612","occurDateTime":"2025-07-28 16:26:13","postingDateTime":"2025-07-28 16:26:28","postingSysTime":"2025-07-28","transactionCode":"2010","transactionType":"Purchase","approvalCode":"SZX6WJ","isCredit":"DEBT","originalTransactionCurrency":"840","originalTransactionAmount":10.0,"cardTransactionCurrency":"840","cardTransactionAmount":10.0,"accountCurrency":"840","billAccountAmount":10.0,"posMerchantID":"797967000300753","posMerchantName":"","posMerchantClassCode":"0015","posMerchantCountry":"HKG","isoMerchantCountryCode":"HKG","posMerchantCity":"HKG","posAcquirerID":"00000032642"}",
"sign": "raqtzxjjWGyjrPDkn3aR+N+ZU6kpyiLeJNeFzQXmfoqsomkxsccg783FraLPWBrPgn0nhjtuVQLIWMply1chS7g1jgdGaFiGSXCwgL+XIVX0n2J1Z8YtDBEqeJLbRcmWiGAavQk8JSjBtDigJIopjL5mAT9+X5vrf4a6YxpAoky7DemuClKNb50OuH15ADICWednwQZsI0wJ8WTpZNb4f9jrMGdlztXvj/Nf7Gk2Uwx1v/morWEDe1BFD8FWFUsmKwdBxYS8iMT3f5YiAWzYt7VItOl6ymlNSdZmGazXYQ2MPScunPQXdSf2fQ6NM8NVlz7or5w5cj7aiZAgzpHUrQ=="
}
Response Body
The customer must identify the notification receiving result through the code field in the response body
If the value of the code field is 0, it means receiving success. If the value is not 0, it means receiving failure.
| Name | Type | Required | Description | Note |
|---|---|---|---|---|
code | String | Y | Result code | 0:receiving success;non-0:receiving failure。 |
msg | String | N | Result code description |
Deposit Result Notification
TripLink will send the deposit results to this customer interface asynchronously after the deposit is completed.
If the notification fails, it will be Retried. After the maximum number of retries is reached, this notification will no longer be sent, but other notifications will not be affected.
Request Body
| Name | Type | Description | Note |
|---|---|---|---|
noticeType | String | Notification type | deposit. |
bizContent | String | Actual message | It needs to be deserialized through JSON.See DepositNotification for details. |
sign | String | Signature | Sign the original bizContent,Verify the signature with the RSA public key of the API.See Preparation for details. |
DepositNotification
| Name | Type | Description | Comment |
|---|---|---|---|
orderId | String | Order ID | Globally unique. |
orderType | String | Order Type | Topup. |
creditAccountNo | String | Credit Account Number | |
creditAccountName | String | Credit Account Name | |
debitAccountNo | String | Debit Account Number | |
debitAccountName | String | Debit Account Name | |
currency | String | Currency | ISO 4217 currency code, 3 digits. |
amount | String | Amount | |
transactionTime | String | Transaction Time | Format yyyy-MM-dd HH:mm:ss. |
remark | String | Remark |
Response Body
The customer must identify the notification receiving result through the code field in the response body
If the value of the code field is 0, it means receiving success. If the value is not 0, it means receiving failure.
| Name | Type | Required | Description | Note |
|---|---|---|---|---|
code | String | Y | Result code | 0:receiving success;non-0:receiving failure。 |
msg | String | N | Result code description |
CreateCard Result Notification
TripLink will send the created card results to this customer interface asynchronously after the authorization is completed.
If the notification fails, it will be Retried. After the maximum number of retries is reached, this notification will no longer be sent, but other notifications will not be affected.
Request Body
| Name | Type | Description | Note |
|---|---|---|---|
noticeType | String | Notification type | create. |
bizContent | String | Actual message | It needs to be deserialized through JSON.See AuthorizationNotification for details. |
sign | String | Signature | Sign the original bizContent,Sign the original bizContent,Verify the signature with the RSA public key of the API.See Preparation for details. |
CreateCardNotification
| Name | Type | Description | Note |
|---|---|---|---|
cardLogId | String | card ID | TripLink card ID. |
requestId | String | request ID | The original create card request ID. |
requestSource | String | request source | API Via API requestPortal Via portal requestSystem System create card. |
createTime | String | create card time | Format yyyy-MM-dd HH:mm:ss |
returnCode | String | result code | Enumerated type,6digits,seeresult codedrop-down list.(code other than 000000 means request failed) |
errorMessage | String | result code description | Seeresult codedrop-down list. |
cardCurrencyCode | String | card currency code | ISO 4217 currency code, 3 digits. |
cardLimit | String | credit limit | Decimal, matching card currency. |
| returnCode | errorMessage |
|---|---|
000000 | Success |
100000 | Input parameter is incorrect (not fixed) |
100001 | Reduplicative requestid |
200002 | Both MCC, MCC groups and [acquirerId,merchantId] are all empty |
200003 | Customer info not find |
200007 | Global parameter not find |
200008 | InactiveDate must be greater than activeDate |
200013 | Not find the mapping between the cardCurrency and settlementCurrency |
200014 | AcquirerId/mid must not be empty |
200022 | Not find active pan number config |
200029 | Card exists pending request |
200036 | card bin not support |
200037 | InactiveDate must submit |
200038 | cardCloseUsage not be null |
200040 | Invalid global parameter (indate) |
200043 | mcc group is empty |
200044 | mcc group all is not supported |
200048 | Card issuer failed (not fixed) |
200060 | Card issuer parameter error (not fixed) |
201000 | Card available balance exceeds the maximum limit |
300004 | mcc link channel group is empty |
300005 | Trading is risky |
9XXXXX | System error (not fixed) |
Response Body
The customer must identify the notification receiving result through the code field in the response body
If the value of the code field is 0, it means receiving success. If the value is not 0, it means receiving failure.
| Name | Type | Required | Description | Note |
|---|---|---|---|---|
code | String | Y | Result code | 0:receiving success;non-0:receiving failure。 |
msg | String | N | Result code description |
CloseCard Result Notification
TripLink will send the closed card results to this customer interface asynchronously after the authorization is completed.
If the notification fails, it will be Retried. After the maximum number of retries is reached, this notification will no longer be sent, but other notifications will not be affected.
Request Body
| Name | Type | Description | Note |
|---|---|---|---|
noticeType | String | Notification type | close. |
bizContent | String | Actual message | It needs to be deserialized through JSON.See AuthorizationNotification for details. |
sign | String | Signature | Sign the original bizContent,Verify the signature with the RSA public key of the API.See Preparation for details. |
CloseCardNotification
| Name | Type | Description | Note |
|---|---|---|---|
cardLogId | String | card ID | TripLink card ID. |
requestId | String | request ID | The original close card request ID. |
requestSource | String | request source | API Via API requestPortal Via portal requestSystem System create card. |
cancelTime | String | close card time | Format yyyy-MM-dd HH:mm:ss |
closedReason | String | close card reason | Enumerated type,6digits,seeclose card resondrop-down list. |
cardStatus | String | card status | CLOP:Pre-Canceled |
| closedReason | Note |
|---|---|
100001 | Customers actively close the card. |
100002 | The auto-close threshold percentage condition is met. |
100003 | The single-use card has been used. |
100005 | High-risk card. |
Response Body
The customer must identify the notification receiving result through the code field in the response body
If the value of the code field is 0, it means receiving success. If the value is not 0, it means receiving failure.
| Name | Type | Required | Description | Note |
|---|---|---|---|---|
code | String | Y | Result code | 0:receiving success;non-0:receiving failure。 |
msg | String | N | Result code description |
Notification Query and Resend
Customers can query all result notifications in the merchant system (Transaction Management - Notification Query) and support resend (single/batch).

Signature Verification SDK example
TRIPLINK_PUBLIC_KEY:TripLink RSA public key.