Skip to main content

Check Payout Status

Step 1: Get Access Token

Please refer to Access Token on how to get Access Token, and then place it into Request Headers' Authorization.

Step 2: Prepare Request Parameter

Generate nonceStr and timestamp, which will be placed into Request Headers and also be used to create Signature.

Parameter Type Required Description Example
nonceStr Number Yes Random String 7a70f55482a5566c
timestamp Number Yes UNIX timestamp of request 1667061151361

Request Parameters

Parameter Type Required Description Example
transactionId Number Yes ID of the transaction
type String Yes [1 = Payment, 2 = Payout] 2

Example Request

{
"transactionId": "10310",
"type": 2
}

Sort the above json key alphabetically and make it compact

info

{"transactionId": "10310", "type": 1}

Encode the data to Base64 format

info

eyJjdXN0b21lciI6eyJuYW1lIjoiTGVvbiBUYW4iLCJwaG9uZSI6IjAxMjM0NTY3ODkiLCJlbWFpbCI6Imxlb25AZ2dncGF5Lm9yZyJ9LCJtZXRob2QiOiJGUFgiLCJvcmRlciI6eyJpZCI6IkEyMDIyMTExMSIsInRpdGxlIjoiUGF5bWVudCIsImFtb3VudCI6Ijg4LjUwIiwiY3VycmVuY3lUeXBlIjoiTVlSIiwiYWRkaXRpb25hbERhdGEiOiIifX0=

Encode the base64 format data with CLIENT_SYMMETRIC_KEY

info

e4e9ac1120ed867a7af108af8b1ab9183319f8a334bcdbbea47232359ae0a5c9c4ad1e46450ef4b36775aeb624b14b722a6884abd9b1f7572f1fdb33ce7a8bfec3d69d3e2e1aa77487c55b181613bfbef1028c8da984f5b59c8d6241eefcaf70

Step 3: Generate Signature

Please refer to Signature Algorithm on how to get Signature, and then place it into Request Headers' X-Signature.

Step 4: POST to /gateway/v1/getTransactionStatusById endpoint

Method : POST

Endpoint: https://api.superpay.club/gateway/v1/getTransactionStatusById

Request

Headers

Parameter Type Description
Authorization String Token obtained from Step 1
X-Nonce-Str String nonceStr generated in Step 2
X-Timestamp String timestamp generated in Step 2
X-Signature String Signature generated in Step 3

Body

Parameter Type Description Example
data String Encrypted Data using CLIENT_SYMMETRIC_KEY e4e9ac1127af1...b59c8d62af70

Example Request Header & Body

{
"headers": {
"Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBJZCI6IjEwMDIOjE2NjczMTYwOTJ9.UnVBt6Opxd_ZOMns1gCT40Ihdj1nbndi2V43Xt3fIuE",
"X-Nonce-Str": "7a70f55482a5566c",
"X-Timestamp": "1667061151361",
"X-Signature": "sha256 zOzjz8QoGTbesuAO5CCFbPCF3EMDtohKtkQPro8O61jbXhurgl+wIYzTv1BQPB6z1+bRn7gXx1YpsItk+Zed+Wd9PqmexoGdDrAAoUKjCcMks9g0/kiVui381jscVAyCUzdMtkW25P4QyTeq5+ES7D66j/Jwk+9JqYXhMnX5aAUdMjlrADp1RC1zrZUc1Mfqs+MA26J3X5uQ8xLhh9FaAhDdoyWctKQSTHZyMVuDtmFaGdzaGI3LCWm5w1gvtHC43mTMccc3WrlirYbDrZvN2c81cNMfRJjgJZNnjjY27OAMvGsJJgpo0b+EW4UO74QzZ2VI60fgf7uIajIOgQRzzA=="
},
"body": {
"data": "e4e9ac1120ed867a7af108af8b1ab918cbec6db7b4d7c29908085a73e2b29e97547da6eae91928b3330241f1fb898eebd8c3355105fdd5c68b6ceea761f41dc3085ed888d3c0473beef128ebd208c4f60299df64a622d04d21d81513c02e2d47bfcce2a6c246eabcc1c823aaf3d9133004cf7c4c08236395a05dc19a98c33a301c8b73d4e7fd33cd911619de86dfdb45"
}
}

Response

Body

Parameter Type Description Example
code Number The status code of this API 200
encryptedData String Encrypted data that must be decrypted with CLIENT_SYMMETRIC_KEY a83cf72884cbbb....3ddf0744646e0cf0b482
message String PlainText description of this request status 'Success'

Example Response

{
"code": 200,
"encryptedData": "e4e9ac1120ed867a7af108af8b1ab918cbec6db7b4d7c29908085a73e2b29e97547da6eae91928b3330241f1fb898eebd8c3355105fdd5c68b6ceea761f41dc3085ed888d3c0473beef128ebd208c4f60299df64a622d04d21d81513c02e2d47bfcce2a6c246eabcc1c823aaf3d9133004cf7c4c08236395a05dc19a98c33a301c8b73d4e7fd33cd911619de86dfdb45",
"message": "Success"
}

Step 5: Decrypt the encryptedData with CLIENT_SYMMETRIC_KEY

Symmetric decrypt the encryptedData

The result in plaintext is:

{
"message": "Success",
"type": 2,
"data": {
"status": "PENDING",
"transaction": {
"id": 10025,
"amountWithdraw": 0,
"confirmedAt": 0,
"commissionFee": 0
},
"order": {
"id": "10006",
"amount": "1",
"currencyType": "MYR"
},
"recipient": {
"name": "Long Wan",
"phone": "0123456789",
"email": "longwan@gmail.com",
"methodType": "CIBBMYKL",
"methodValue": "8044591766",
"methodRef": ""
}
}
}

Decrypted Payload Parameters

Parameter Type Required Description Example
data Object Yes Top-level object returned after decrypting the payout callback payload. {...}
data.status String Yes Current transaction status. Possible values include <code>PAYING</code>, <code>PENDING</code>, <code>SUCCESS</code>, and <code>FAILED</code>. PENDING
data.transaction Object Yes Payout transaction details returned in the callback payload. {...}
data.transaction.id Number Yes SuperPay transaction ID for this callback event. 10025
data.transaction.amountWithdraw Number Yes Actual amount disbursed for the payout transaction. 0
data.transaction.confirmedAt String / Number Yes Timestamp when the payout was confirmed. This may be <code>0</code> before the transaction succeeds. 0
data.transaction.commissionFee Number Yes Transaction fee charged by SuperPay. 0
data.order Object Yes Original merchant order details linked to the transaction. {...}
data.order.id String Yes Merchant order ID submitted when the order was created. 10006
data.order.amount Number / String Yes Original order amount requested by the merchant. 1
data.order.currencyType String Yes Currency code for the order amount. MYR
data.recipient Object Yes Recipient details associated with the payout transaction. {...}
data.recipient.name String / Null Yes Recipient account holder name. Long Wan
data.recipient.phone String / Null Yes Recipient phone number. 0123456789
data.recipient.email String / Null Yes Recipient email address. longwan@gmail.com
data.recipient.methodType String / Null Yes Recipient payout method code, such as bank or channel type. CIBBMYKL
data.recipient.methodValue String / Null Yes Recipient account or destination value used for the payout. 8044591766
data.recipient.methodRef String / Null Yes Provider reference or recipient method reference value for the payout.