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 |
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 |
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 |
| 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 |
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.