Enabler Service
Reference
Notification

Notification

Each enabler client deployment can be configured to send notification to designated host upon transaction completion.

This way your backend system can receive notify for every transaction result for data sync-ing and so on.

Please contact to our technical support for details on the configuration.

How it works

Applicable to: sync (card) & async (merchant-presented QR) transactions.


  • Callback URL: The callback url (your endpoint) can be configured per enabler deployment. If you wish the notification sent to a different endpoint per transaction, you can pass the callbackUrl in the transaction request via the headless SDK.
  • Data: The Transaction dto will be posted. This is the same result dto with querying transaction and the result when completing the transaction via a sync call.
  • Auth: If your endpoint is protected (Basic Auth, JWT, API key or something else), please provide the necessary credential. Contact our implementation team for more details.
  • Trigger: The notification is sent immediate after the transaction is completed and the enabler responded the sync call.
  • Retry: The notification retries (re-posting) when it receives a server side error (5xx), with a max retry count up to 5 times with an exponential back off. Each retry will include a header X-Retry-Count
  • Idempotency: The notification will include a X-Idempotency-Key header, which is a ULID (opens in a new tab). During the retry the idempotency key remains the same.

Example data

POST {your-notify-endpoint}
Accept: application/json
Accept-Charset: UTF-8
Authorization: {Bearer optional-if-endpoint-protected}
X-Idempotency-Key: 01J0JJRZWWJZEV2CH3GSNN7HPG
Content-Type: application/json
 
{
  "tranId": "tran_01J2FTAH9T1ZRHANY8FJXWCA32",
  "tranType": "SALE",
  "tranStatus": "APPROVED",
  "amount": {
    "value": "1.00",
    "currency": "HKD"
  },
  "paymentMethod": "VISA",
  "entryMode": "NFC",
  "accountMasked": "476173******0027",
  "accountBin": "476173",
  "accountLast4": "0027",
  "issCountryCode": "0840",
  "cvmPerformed": "NO_CVM",
  "cvmSignatureUrl": null,
  "aid": "a0000000031010",
  "appName": "VISA CREDIT",
  "tc": "a7265f79058a97dc",
  "tvr": "0000000000",
  "tsi": "0000",
  "atc": "0002",
  "profileId": "prof_01J25Q1BXRG0177HACFDACHWBR",
  "acceptanceId": "acpt_01J26FXFGSFFSYSK084MTS75VX",
  "sdkId": "60f06bc8eca4f85b",
  "posReference": null,
  "trace": "012804",
  "description": null,
  "callbackUrl": null,
  "merchantName": "ACME",
  "merchantAddr": "addr",
  "mcc": "5814",
  "primaryMid": "m1111",
  "primaryTid": "t1111",
  "subMid": "m1111",
  "subTid": "t1111",
  "hostMessageFormat": "MOCK",
  "providerReference": null,
  "linkedTranId": null,
  "preferredAcceptanceTag": null,
  "extraData": null,
  "rrn": "240711103526",
  "approvalCode": "103526",
  "batchNo": "20240710",
  "actions": [
    {
      "actionId": "act_01J2FTAH9MH9QGYPHSZKV2BM4Z",
      "trace": "12804",
      "actionType": "NEW",
      "actionStatus": "SUCCESS",
      "requestId": "req_01J2FTAGEFWTR389HR1XY66PZG",
      "amount": {
        "value": "1.00",
        "currency": "HKD"
      },
      "tranId": "tran_01J2FTAH9T1ZRHANY8FJXWCA32",
      "reason": "HostSuccess",
      "hostRespCode": "00",
      "hostRespMessage": "Approved",
      "posReference": null,
      "extraData": null,
      "createdAt": "2024-07-11T10:35:26.90097+08:00",
      "updatedAt": "2024-07-11T10:35:26.957232+08:00"
    }
  ],
  "transStatusInfo": null,
  "createdAt": "2024-07-11T10:35:26.906609+08:00",
  "updatedAt": "2024-07-11T10:35:26.957232+08:00"
}