API Doc
API Endpoint
https://<'host'>This API allows Merchants to provide Users with the ability pay with their Internet Banking credentials.
API ¶
This API is organized around REST, it is designed to have predictable, resource-oriented URLs and to use HTTP response codes to indicate API errors.
We use built-in HTTP features, like HTTP authentication and HTTP verbs, which can be understood by off-the-shelf HTTP clients, and we support cross-origin resource sharing to allow you to interact securely with our API from a client-side web application (though you should remember that you should never expose your secret API key in any public website’s client-side code).
JSON will be returned in all responses from the API, including errors.
Authentication
You authenticate to this API by providing your API keys in the request. You can manage your API keys from your account. You can have multiple API keys active at one time. Your API keys carry many privileges, so be sure to keep them secret!
Authentication to the API occurs via HTTP Basic Auth. Provide your API key as the basic auth username. You do not need to provide a password.
Authorization: Basic NWZiUnBoUWl1ZEVBTEZoVUM0QnEyTzBselBPTElhS0Q6
Transaction ¶
This is the API for initiating a transaction, and checking the status
Payin V2 ¶
This is the API for initiating a Payin, checking the status, and get sender bank
Start ¶
Initiate a transaction.
{"MerchantCode":"multimerchant5", "ReturnURL":"http:/example.com/thankyou", "FailedReturnURL":"http:/example.com/retry", "HTTPPostURL":"http:/example.com/invoice/1234", "Amount":"99.00", "Currency":"MYR", "ItemID":"inv-3422", "ItemDescription":"top up for account", "PlayerId":"Jon Doe", "Hash":"ee5ff3b4a4868c151ea62494820295129b4e0b8cabdb51c1850b3159fd280566", "BankCode":"CIMB", "SenderVerification":1, "ClientFullName":"Jonny Sohn"}
Headers
Content-Type: application/json
Body
{
"transaction": 009-212-20-750,
"status": 0,
"token": "7e014436dfc6846259c10b4053e10ef1491afb8ca5039f831017bfa54134fae1",
"redirect_to": "redirectlink=https://<'host'>?TOKEN=7e014436dfc6846259c10b4053e10ef1491afb8ca5039f831017bfa54134fae1",
"Amount": 99.00,
"Currency": "MYR"
}
Schema
{
"type": "object",
"properties": {
"transaction": {
"type": "integer"
},
"status": {
"enum": [
0,
1,
-1,
-2,
-3
],
"enumNames": [
"initiated",
"accepted",
"rejected",
"error",
"pending"
]
},
"token": {
"type": "string"
},
"redirect_to": {
"type": "url"
},
"Amount": {
"type": "float"
},
"Currency": {
"type": "ISO-4217"
}
}
}
DepositV2POSTPayin/Depositv2{MerchantCode,ReturnURL,FailedReturnURL,HTTPPostURL,Amount,Currency,ItemID,ItemDescription,PlayerId,Hash,BankCode,SenderVerification,ClientFullName}
- MerchantCode
string(20)
(required) Example: merchant01Merchant Username
- ReturnURL
string(250)
(required) Example: http://example.com/thankyouthe URL of the page where you want the client to be redirected after a successful transaction
- FailedReturnURL
string(250)
(required) Example: http://example.com/retrythe URL of the page where you want the client to be redirected after a failed transaction
- HTTPPostURL
string(250)
(required) Example: http://example.com/invoice/1234a URL on the merchant’s website where we will automatically POST the transaction status
- Amount
string
(required) Example: 45.99Amount to debit from the client’s bank account
- Currency
ISO-4217
(required) Example: MYRThe preferred currency for the transaction
- ItemID
string(50)
(required) Example: inv-3422merchant provided transaction unique identifier and cannot resubmit same unique identifier
- ItemDescription
string(50)
(required) Example: top up for account #1234merchant provided description of the transaction
- PlayerId
string(50)
(required) Example: Jon Doethe client’s player name
- Hash
string
(required) Example: a24a49b8e5757d339878dae8f5d5e6126d74d73c40929ca3af4253446f94113ehash_hmac() with sha256 of ‘MerchantCode + ItemID + Currency + Amount’ signed with your API Key
- BankCode
string(4)
(optional) Example: PUBBthe client’s selected bank
- SenderVerification
integer
(optional) For MYR Currency Only Example: 1verify sender name(0 not verify[default]), 1 verify)
Note:
If would like to verify bank account name, please pass "SenderVerification" parameter. Kindly ensure that user key in same as bank displayed. Otherwise, this might cause high rejected payin transaction.
For example, player provide name = Mohd. Ali, bank shows Mohammed Ali.- ClientFullName
string(50)
(optional) For MYR Currency Only Example: Jonny Sohnthe client’s bank account name)
Status ¶
Get a transaction’s status
Headers
Authorization: Basic NWZiUnBoUWl1ZEVBTEZoVUM0QnEyTzBselBPTElhS0Q6
Headers
Content-Type: application/json
Body
{
"transaction": "009-216-20-798",
"status": 0,
"status_description": "error-Transaction not found",
"token": "7e014436dfc6846259c10b4053e10ef1491afb8ca5039f831017bfa54134fae1",
"Amount": 99,
"itemDescription": "Item",
"itemID": "Item123",
"BusinessAcct": "7654785499",
"Currency": "MYR",
"bank_name": "CIMB Bank Berhad",
"bank_code": "CIMB",
"bank_account": "CIMB-6oSQmltP",
"src_bank_account": "888999000",
"bank_reference": "CIMB653472",
"created_at": "03/31/2019 16:38:28 PM"
"updated_at": "03/31/2019 16:40:28 PM"
}
Schema
{
"type": "object",
"properties": {
"transaction": {
"type": "string"
},
"status": {
"enum": [0,1,2,-1,-2,-3],
"enumNames": ["initiated","accepted","processing","rejected","error","pending"]
},
"status_description": {
"type": "string"
},
"token": {
"type": "string"
},
"Amount": {
"type": "float"
},
"itemDescription": {
"type": "string"
},
"itemID": {
"type": "string"
},
"BusinessAcct": {
"type": "string"
},
"Currency": {
"type": "ISO-4217"
},
"bank_name": {
"type": "string"
},
"bank_code": {
"type": "string"
},
"bank_account": {
"type": "string"
},
"src_bank_account": {
"type": "string"
},
"bank_reference": {
"type": "string"
},
"created_at": {
"type": "datetime"
},
"updated_at": {
"type": "datetime"
}
}
}
Status
GET & POSTtransinfo?token=7e014436dfc6846259c10b4053e10ef1491afb8ca5039f831017bfa54134fae
- token
string(250)
(required) Example: 2daa41c4ada464aebc545622ed920108the unique token given in transaction response
Callback ¶
Automatic callback to Merchant’s provided endpoint (HTTPPostURL) with transaction status.
Our servers will make an HTTP POST request to the HTTPPostURL provided by the merchant during a transaction start
contract=20108&apikey=NWZiUnBoUWl1ZEVBTEZoVUM0QnEyTzBselBPTElhS0Q6&transaction=009-216-20-798&status=2&status_message=rejected&decline_reason=Session timed out.&ItemID=inv-3422&ItemDescription=top up for account #1234&Amount=45.99&Currency=MYR&ClientName=Jon Doe&bank_name=CIMB&bank_account=CIMB-6oSQmltP&BusinessAcct=7654785499&src_bank_account=888999000&bank_reference=CIMB653472&signature2=7794254614e495ad3e771520dff2e4a9b5bb5b0b7fb366b098ec263b6ba87aec&created_at=03/31/2019 16:38:28 PM&updated_at=03/31/2019 16:40:28 PM&sender_name=Jon Doe
Headers
Accept: application/x-www-form-urlencoded
Content-Type: application/x-www-form-urlencoded
Headers
Content-Type: application/json
Body
{
"error_code": 0,
"message": "Operation Success"
}
Schema
{
"type": "object",
"properties": {
"error_code": {
"enum": [0,1,2,3,4],
"enumNames": ["Operation Success",
"Invalid/Incorrect Transaction",
"Duplicate Transaction",
"Invalid Parameter",
"Operation Failed"]
},
"message": {
"type": "string"
}
}
}
CallBackPOSTcontract=20108&apikey=NWZiUnBoUWl1ZEVBTEZoVUM0QnEyTzBselBPTElhS0Q6&transaction=009-216-20-798&status=2&status_message=rejected&decline_reason=Session timed out.&ItemID=inv-3422&ItemDescription=top up for account #1234&Amount=45.99&Currency=MYR&ClientName=Jon Doe&bank_name=CIMB&bank_account=CIMB-6oSQmltP&BusinessAcct=7654785499&src_bank_account=888999000&bank_reference=CIMB653472&signature2=7794254614e495ad3e771520dff2e4a9b5bb5b0b7fb366b098ec263b6ba87aec&created_at=03/31/2019 16:38:28 PM&updated_at=03/31/2019 16:40:28 PM&sender_name=Jon Doe
- contract
integer
(required) Example: 20108a unique identifier for the contract involved
- apikey
integer
(required) Example: h74ku4Xh/8+8YGL4d6BGP3thGdtWIIEk4VfgSua1rb0=the unique internal id of your API key
- transaction
integer
(required) Example: 44522unique transaction identifier
- status
enum
(required) Example: 1[1 (Success/Accepted), 2 (Rejected), 3 (Approved)]
- status_message
string(250)
(required) Example: Rejected[“Success”, “Accepted”, “Rejected”, “ERROR”]
- ItemID
string(50)
(required) Example: inv-3422merchant provided transaction identifier
- ItemDescription
string(50)
(required) Example: top up for account #1234merchant provided description of the transaction
- Amount
string
(required) Example: 45.99Amount to debit from the client’s bank account
- Currency
ISO-4217
(required) Example: MYRthe transaction’s currency
- ClientName
string(50)
(required) Example: Jon Doethe client’s full name
- bank_name
string(10)
(optional) Example: CIMBthe name of the transfer’s originating bank
- bank_account
string(250)
(optional) Example: CIMB-6oSQmltPthe bank account number where the funds were transfered
- BusinessAcct
integer
(optional) Example: 7654785499internal id of the bank account where the funds were transfered
- src_bank_account
string(250)
(optional) Example: 888999000bank account number of the paying user
- bank_reference
string(250)
(optional) Example: CIMB653472bank transaction reference number
- signature2
string(250)
(required) Example: 7794254614e495ad3e771520dff2e4a9b5bb5b0b7fb366b098ec263b6ba87aechash_hmac() with sha256 of ‘transaction_id + status code + Currency + Amount + created_at’ signed with your API Key
- created_at
MM/dd/yyyy H:i:s AM/PM
(required)Example: 03/31/2019 16:38:28 PM
creation date at the timezone of the API key’s owner
- updated_at
MM/dd/yyyy H:i:s AM/PM
(required)Example: 03/31/2019 16:40:28 PM
last update at the timezone of the API key’s owner
- sender_name
string(250)
(optional) Example: Jon Doethe sender's full name
Get Deposit Bank ¶
Get the Available Payment Bank
{"MerchantCode": "multimerchant5", "Currency": "MYR","APIKey": "343gh4400pf234jdnB34Jfk@134r"}
Headers
Content-Type: application/json
Body
{
"error_code": 0,
"message": OperationSuccess,
"Bank": [{"BankCode":"CIMB","BankName":"CIMB Name"},{"BankCode":"PUBB","BankName":"Public Bank"}]
}
Schema
{
"type": "object",
"properties": {
"error_code": {
"type": "int"
},
"message": {
"type": "string"
},
"Bank": {
"type": "string"
}
}
}
Headers
Content-Type: application/json
Body
{
"error_code": 409,
"message": No Bank Available,
}
Schema
{
"type": "object",
"properties": {
"error_code": {
"type": "int"
},
"message": {
"type": "string"
}}
}
}
Headers
Content-Type: application/json
Body
{
"error_code": 107,
"message": InvalidKey,
}
Schema
{
"type": "object",
"properties": {
"error_code": {
"type": "int"
},
"message": {
"type": "string"
}}
}
}
Headers
Content-Type: application/json
Body
{
"error_code": 901,
"message": System Maintenance,
}
Schema
{
"type": "object",
"properties": {
"error_code": {
"type": "int"
},
"message": {
"type": "string"
}}
}
}
DepositSenderBankPOST/Payin/DepositSenderBank{MerchantCode,Currency,APIKey}
- MerchantCode
string(20)
(required) Example: multimerchant5Merchant Username
- Currency
string(3)
(required) Example: MYRThe preferred currency for the transaction
- APIKey
string
(required) Example: h74ku4Xh/8+8YGL4d6BGP3thGdtWIIEk4VfgSua1rb0=the unique internal id of your API key
BANK CODE ¶
Name | Code | Currency |
---|---|---|
Affin Bank | AFBB | MYR |
Alliance Bank | ABMB | MYR |
Ambank | AMBB | MYR |
Bank Islam Malaysia | BIMB | MYR |
Bank Kerjasama Rakyat | BKRM | MYR |
Bank Simpanan National | BSNB | MYR |
CIMB Bank Berhad | CIMB | MYR |
Hong Leong Bank Berhad | HLBB | MYR |
Maybank Berhad | MB2U | MYR |
Public Bank Berhad | PUBB | MYR |
RHB Bank Berhad | RHBB | MYR |
Oversea-Chinese Banking Corporation Limited | OCBC | MYR |
City Union Bank | CUBL | INR |
Federal Bank LTD | FEDB | INR |
HDFC Bank | HDFC | INR |
IDFC Bank | IDFC | INR |
IndusInd Bank | IDSB | INR |
Kotak Mahindra Bank | KTKB | INR |
Indian bank | INDB | INR |
ICICI Bank Limited | ICBB | INR |
Bangkok Bank | BKKB | THB |
Bank of Ayudhya (Krungsri) | KSAB | THB |
Kasikorn Bank | KSKB | THB |
Bank for Investment and Development of Vietnam | BIDV | VND |
Eximbank | EXMB | VND |
Asia Commercial Bank | ACBB | VND |
VietcomBank | VCBB | VND |
VietinBank | VTBB | VND |
Payout ¶
This is the API for initiating a Payout, checking the status, and checking balance
Start ¶
Initiate a payout.
{"merchant_code":"multimerchant5", "ref_id":5805, "player_username":"user001", "player_ip":"210.195.142.240", "currency_code": "MYR", "amount":"1.00", "bank_code":"BSNB", "beneficiary_account": "1413941000031234", "beneficiary_name":"Jimmy Hardy", "hash":"3e5ff3b4a4868c151ea62494820295129b4e0b8cabdb51c1850b3159fd280566", "ifsc": "SBIN003311", "account_type": 1, "address": "Coffeeshop_ABC", "email": "[email protected]", "mobile": "012123456789", "beneficiary_verification": 1}
Headers
Content-Type: application/json
Body
{
"error_code": 0,
"error_message": "Operation success",
"invoice_number": "000-MY01-126-20-140",
"currency_code": "MYR",
"merchant_balance": 9620.0
}
Schema
{
"type": "object",
"properties": {
"error_code": {
"type": "integer"
},
"error_message": {
"type": "string"
},
"invoice_number": {
"type": "string"
},
"merchant_balance": {
"type": "float"
}
}
}
WithdrawPOSTPayout/Withdrawal{merchant_code,ref_id,player_username,player_ip,currency_code,amount,bank_code,beneficiary_account,beneficiary_name,hash,ifsc,account_type,address,email,mobile,beneficiary_verification}
- merchant_code
string(20)
(required) Example: multimerchant5Merchant Username
- ref_id
string(50)
(required) Example: 5805Merchant provided transaction identifier
- player_username
string(40)
(required) Example: user001the client’s full name
- player_ip
string(50)
(required) Example: 210.195.142.240the client’s ip
- currency_code
string(3)
(required) Example: MYRThe preferred currency for the transaction
- amount
string
(required) Example: 45.99Amount to debit to the client’s bank account
- bank_code
string(4)
(required) Example: BSNBthe client’s bank code
- beneficiary_account
string(50)
(required) Example: 14139410000301234the client’s bank account number
- beneficiary_name
string(100)
(required) Example: Jimmy Hardythe client’s bank account name
- hash
string
(required) Example: a24a49b8e5757d339878dae8f5d5e6126d74d73c40929ca3af4253446f94113ehash_hmac() with sha256 of ‘merchant_code + ref_id + player_username + player_ip + currency_code + amount + bank_code + beneficiary_account + beneficiary_name’ signed with your API Key
- account_type
integer
(optional) Example: 1the client’s bank account type (1 Saving, 2 current )
- ifsc
string(11)
(required for INR transaction only) Example: SBIN003311the client’s ifsc
- address
string(200)
(optional) Example: Coffeeshop_ABCthe client’s address
string(50)
(optional) Example: [email protected]the client’s email
- mobile
string(15)
(optional) Example: 012123456789the client’s mobile
- beneficiary_verification
integer
(optional) Example: 1verify beneficiary name(0 not verify[default]), 1 verify)
Note:
System default is checking bank account number only. If would like to verify bank account name, please pass "beneficiary_verification" parameter. Kindly ensure that user key in same as bank displayed to payout correctly. Otherwise, this might cause high rejected payout transaction.
For example, player provide name = Mohd. Ali, bank shows Mohammed Ali.
Status ¶
Check the transaction’s status
{"merchant_code":"multimerchant5", "ref_id":"5805", "hash":"3e5ff3b4a4868c151ea62494820295129b4e0b8cabdb51c1850b3159fd280566"}
Headers
Content-Type: application/json
Body
{
"error_code": 0,
"error_message": OperationSuccess,
"invoice_number": "000-MY01-126-20-148",
"status_code": 1,
"status_message": "Success",
"currency_code": "MYR",
"amount": 19.00,
"submission_date": "2020-05-05T10:54:11.5908783Z",
"payment_date": "2020-05-05T10:54:11.5908783Z",
"beneficiary_bank_code": "CIMB",
"beneficiary_account": "888999000",
"beneficiary_name": "Bobby pang"
}
For Other Code & Description Refer to Following
Payout Response Code
Schema
{
"type": "object",
"properties": {
"error_code": {
"type": "integer"
},
"error_message": {
"type": "string"
},
"invoice_number": {
"type": "string"
},
"status_code": {
"type": "integer",
"codes": [-1, 0, 1, 2, 3]
},
"status_message": {
"type": "string",
"message": ["In Process", "Pending", "Success", "Rejected", "Manual Approve"]
},
"currency_code": {
"type": "string"
},
"amount": {
"type": "float"
},
"submission_date": {
"type": "datetime"
},
"payment_date": {
"type": "datetime"
},
"beneficiary_bank_code": {
"type": "string"
},
"beneficiary_account": {
"type": "string"
},
"beneficiary_name": {
"type": "string"
}
}
}
StatusPOST/Payout/CheckStatus{merchant_code,ref_id,hash}
- merchant_code
string(20)
(required) Example: multimerchant5Merchant Username
- ref_id
string(50)
(required) Example: abc123Merchant provided transaction identifier
- hash
string
(required) Example: a24a49b8e5757d339878dae8f5d5e6126d74d73c40929ca3af4253446f94113ehash_hmac() with sha256 of ‘merchant_code + ref_id’ signed with your API Key
CallBack ¶
Automatic callback to Merchant’s provided endpoint with transaction status.
Our servers will make an HTTP POST request to the CallBackURL provided by the merchant during account registration.
InvoiceNo=000-MY01-126-20-140&BeneficiaryAccount=1413941000030123&BeneficiaryBankCode=BSNB&BeneficiaryName=David Joe&SubmissionDate=2021-01-31T12:59:01.389699Z&Status=1&StatusMessage=Success&Reference=6223300199&MerchantCode=merchant001&RefId=abc123&Currency=MYR&Amount=45.9&PaymentDate=1/31/2020 12:52:38 PM&Signature=9ead452b7c5fe31cc2124c9d2b3dfa26836504ff27273cb511caceda65314c4f
Headers
Content-Type: application/x-www-form-urlencoded
Headers
Content-Type: application/json
Body
{
"error_code": 0,
"message": "Operation Success"
}
Schema
{
"type": "object",
"properties": {
"error_code": {
"enum": [0,1,2,3,1001,1002],
"enumNames": ["Operation Success",
"Invalid/Incorrect Transaction",
"Duplicate Transaction",
"Invalid Parameter",
"Operation Failed (Retry)",
"System Maintenance (Retry)"]
},
"message": {
"type": "string"
}
}
}
CallBackPOSTInvoiceNo=000-MY01-126-20-140&BeneficiaryAccount=1413941000030123&BeneficiaryBankCode=BSNB&BeneficiaryName=David Joe&SubmissionDate=2021-01-31T12:59:01.389699Z&Status=1&StatusMessage=Success&Reference=6223300199&MerchantCode=merchant001&RefId=abc123&Currency=MYR&Amount=45.9&PaymentDate=1/31/2020 12:52:38 PM&Signature=9ead452b7c5fe31cc2124c9d2b3dfa26836504ff27273cb511caceda65314c4f
- InvoiceNo
string
(required) Example: 000-MY01-126-20-140An unique identifier for the contract involved
- BeneficiaryAccount
string
(required) Example: 1413941000030123The client’s bank account number
- BeneficiaryBankCode
string
(required) Example: BSNBThe client’s bank code
- BeneficiaryName
string
(required) Example: David JoeThe client’s bank account name
- SubmissionDate
Y-m-d H:i:s Timezone
(required)Example: 2021-01-31T12:59:01.389699Z
Submission Date at the timezone of the API key’s owner
- Status
enum
(optional) Example: 1[0, 1, 2, 3]
- StatusMessage
string
(required) Example: Success["Pending", "Success", "Reject", "Approved"]
- MerchantCode
string
(required) Example: merchant001Merchant Username
- RefId
string
(required) Example: abc123Merchant provided transaction identifier
- Currency
ISO-4217
(required) Example: MYRThe transaction’s currency
- Amount
float
(required) Example: 45.99Amount credit to beneficiary bank account
- PaymentDate
MM/dd/YYYY H:i:s AM/PM
(required)Example: 1/31/2020 12:52:38 PM
Payment date at the timezone of the API key’s owner
- Signature
string
(required) Example: 9ead452b7c5fe31cc2124c....hash_hmac() with sha256 of ‘InvoiceNo + Status + Currency + Amount + PaymentDate’ signed with your API Key
Get Balance ¶
Get the Merchant’s provided latest balance.
{"merchant_code": "multimerchant5", "hash": "46fbf35f69354e9779756f98c104b77eb98c9b236245e8660911866af93154d3"}
Headers
Content-Type: application/json
Body
{
"error_code": 0,
"error_message": OperationSuccess,
"info": [{"CurrencyCode":"INR","RunningBalance":50.00},{"CurrencyCode":"MYR","RunningBalance":9614.00}]
}
Schema
{
"type": "object",
"properties": {
"error_code": {
"type": "int"
},
"error_message": {
"type": "string"
},
"info": {
"type": "string"
}
}
}
Get BalancePOST/Payout/GetBalance{merchant_code,hash}
- merchant_code
string(20)
(required) Example: multimerchant5Merchant Username
- hash
string
(required) Example: a24a49b8e5757d339878dae8f5d5e6126d74d73c40929ca3af4253446f94113ehash_hmac() with sha256 of ‘merchant_code’ signed with your API Key
BANK CODE ¶
Name | IFSC | Code | Currency |
---|---|---|---|
Affin Bank | - | AFBB | MYR |
AGROBANK | - | AGRO | MYR |
Alliance Bank Malaysia Berhad | - | ABMB | MYR |
Ambank | - | AMBB | MYR |
Bank Islam Malaysia | - | BIMB | MYR |
Bank Kerjasama Rakyat | - | BKRM | MYR |
Bank Muamalat | - | BMMB | MYR |
Bank Of America | - | BOFA | MYR |
Bank Of China | - | BOCM | MYR |
Bank Simpanan National | - | BSNB | MYR |
CIMB Bank Berhad | - | CIMB | MYR |
GX Bank Berhad | - | GXSP | MYR |
Hong Leong Bank Berhad | - | HLBB | MYR |
HSBC Bank | - | HSBC | MYR |
Maybank Berhad | - | MB2U | MYR |
OCBC Bank | - | OCBC | MYR |
Public Bank Berhad | - | PUBB | MYR |
RHB Bank Berhad | - | RHBB | MYR |
Standard Chartered Bank | - | STCB | MYR |
Touch N Go | - | TNGO | MYR |
UNITED OVERSEAS BANK | - | UOBB | MYR |
Airtel Payments Bank | AIRP | AIRP | INR |
Allahabad Bank | ALLA | ALHB | INR |
Andhra Bank | ANDB | ADRB | INR |
Andhra Pragathi Grameena Bank | APGB | APGB | INR |
Au Small Finance Bank | AUBL | ASFB | INR |
Axis Bank | UTIB | AXSB | INR |
Bandhan Bank | BDBL | BDHN | INR |
Bank Of Baroda | BARB | BOBB | INR |
Bank of India | BKID | BOIB | INR |
Bank of Maharashtra | MAHB | BOMB | INR |
Canara Bank | CNRB | CNRB | INR |
Central Bank of India | CBIN | CBIB | INR |
City Union Bank | CIUB | CUBL | INR |
Deutsche Bank | DEUT | DSHB | INR |
HDFC Bank | HDFC | HDFC | INR |
Federal Bank LTD | FDRL | FEDB | INR |
ICICI Bank | ICIC | ICBB | INR |
IDBI Bank | IBKL | IDBI | INR |
IDFC Bank | IDFB | IDFC | INR |
Indian Bank | IDIB | INDB | INR |
IndusInd Bank | INDB | IDSB | INR |
India Post Payment Bank | IPOS | IPPB | INR |
Jammu and Kashmir Bank Limited | JAKA | JAKB | INR |
Karnataka Bank Limited | KARB | KBLB | INR |
Kotak Mahindra Bank | KKBK | KTKB | INR |
Lakshmi Vilas Bank | DBSS | LXVB | INR |
Punjab National Bank | PUNB | PNBB | INR |
PAYTM Payments Bank LTD | PYTM | PTMB | INR |
South Indian Bank | SIBL | SINB | INR |
State Bank of India | SBIN | SBOI | INR |
Ujjivan Small Finance Bank | UJVN | UJVB | INR |
Union Bank of India | UBIN | UBOI | INR |
Yes Bank | YESB | YESB | INR |
Bangkok Bank | - | BKKB | THB |
Bank for Agriculture and Agricultural Cooperatives | - | BAAC | THB |
Bank of Ayudhya (Krungsri) | - | KSAB | THB |
CIMB Thai Bank | - | CIMT | THB |
Government Savings Bank | - | GSBA | THB |
Kasikorn Bank | - | KSKB | THB |
Kiatnakin Bank | - | KKPB | THB |
Krung Thai Bank | - | KTBA | THB |
Siam Commercial Bank | - | SCBB | THB |
Standard Chartered Bank (Thai) | - | SCBT | THB |
TISCO Bank | - | TISC | THB |
TMBThanachart Bank | - | TMBB | THB |
United Overseas Bank (Thai) | - | UOBT | THB |
Government Housing Bank | - | GOHU | THB |
Land And Houses Bank | - | LAHR | THB |
AGRIBANK | - | AGRB | VND |
Asia Commercial Bank | - | ACBB | VND |
Bank for Investment and Development of Vietnam | - | BIDV | VND |
DongA Bank | - | DABB | VND |
Eximbank | - | EXMB | VND |
Ho Chi Minh City Development Joint Stock Commercial Bank | - | HDBB | VND |
National Citizen Commercial Joint Stock Bank | - | NCBB | VND |
Ocean Commercial One Member Limited Liability Bank | - | OCNB | VND |
SacomBank | - | SACB | VND |
Saigon Hanoi Commercial Joint Stock Bank | - | SHBB | VND |
TechcomBank | - | TCBB | VND |
Tien Phong Commercial Joint Stock Bank | - | TPBB | VND |
VietcomBank | - | VCBB | VND |
VietinBank | - | VTBB | VND |
Vietnam International Commercial Joint Stock Bank | - | VIBB | VND |
Vietnam Maritime Commercial Joint Stock Bank | - | MSBB | VND |
Prompt Pay THB ¶
This is the API for initiating a Prompt pay QR scan, checking the status, and callback function
Start ¶
Initiate a prompt pay.
{"merchant_code": "merchant001", "ref_id": "abc123", "player_username": "David Joe", "player_ip": "123.456.789.01", "currency_code": "THB", "amount": "45.00", "client_url": "www.google.com", "hash": "9ead452b7c5fe31cc2124c9d2b3dfa26836504ff27273cb511caceda65314c4f", "lang": "th", "view": "1"}
Headers
Content-Type: application/json
Body
{
"error_code": 0,
"error_message": "Operation Success",
"invoice_number": "000-MY01-126-20-140",
"currency_code": "MYR",
"amount": 45.01,
"token": "P4tXjYTFfa9gzPPhLNVOpJq2dgve%2FDAk0OCHylJ",
"redirect_to": "https://<'host'>/QRPay/QRImage?TOKEN=P4tXjYTFfa9gzPPhLNVOpJq2dgve%2FDAk0OCHylJ"
}
Schema
{
"type": "object",
"properties": {
"error_code": {
"enum": [0,1,102,103,104,105,201,205,206,207,209,210,211,214,216,301],
"enumNames": ["Operation Success",
"Invalid parameter(s)",
"Invalid hash",
"Invalid IP",
"Amount less than or equal to zero",
"Decimal point must be zero",
"Duplicate Reference Id",
"Minimum deposit limit is x.xx",
"Bank is unavailable at the moment",
"Failed to Access Bank",
"Unavailable at the moment",
"Merchant's Bank Account Not Available",
"Maximum deposit limit is x.xx",
"Bank Is Under Maintenance",
"Your account is blacklisted. Please contact administrator. ",
"Failed to Save Transaction"]
},
"error_message": {
"type": "string"
},
"invoice_number": {
"type": "string"
},
"currency_code": {
"type": "string"
},
"amount": {
"type": "decimal"
},
"token": {
"type": "string"
},
"redirect_to": {
"type": "string"
}
}
}
QRScanDepositPOSTBankBot/QRScanDeposit/{?merchant_code, ref_id, player_username, player_ip, currency_code, amount, client_url, hash, lang, view}
- merchant_code
string
(required) Example: merchant001Merchant Username
- ref_id
string
(required) Example: abc123Merchant provided transaction identifier(Unique Key)
- player_username
string
(required) Example: David JoeThe client’s player user name
- player_ip
string
(required) Example: 123.456.789.01The client’s player ip
- currency_code
ISO-4217
(required) Example: THBThe transaction’s currency
- amount
string
(required) Example: 45.00Amount credit to beneficiary bank account. Decimal point must be zero.
- client_url
string
(optional) Example: www.google.comThe client’s page url
- hash
string
(required) Example: 56c7e1f...hash_hmac() with sha256 of ‘merchant_code + ref_id + player_username + player_ip + currency_code + amount + client_url’ signed with your API Key
- lang
string
(optional) Example: en/thThe language which will display in the QR Page. en = English, th = Thai
- view
string
(optional) Example: 1/2The type of payment page to be shown. Option: 1(Default) = PromptPay , 2 = TrueMoneyWallet
Status ¶
Check the transaction’s status
{"merchant_code":"multimerchant5", "ref_id":"5805", "hash":"3e5ff3b4a4868c151ea62494820295129b4e0b8cabdb51c1850b3159fd280566"}
Headers
Content-Type: application/json
Body
{
"error_code": 0,
"error_message": OperationSuccess,
"invoice_number": "000-MY01-126-20-148",
"status_code": 0,
"status_message": "Pending",
"currency_code": "MYR",
"amount": 19.00,
"submission_date": "2020-05-05T10:54:11.5908783Z",
"payment_date": "2020-05-05T10:54:11.5908783Z",
"beneficiary_bank_code": "CIMB",
"beneficiary_account": "888999000",
"beneficiary_name": "Amy lim"
}
Schema
{
"type": "object",
"properties": {
"error_code": {
"type": "integer"
},
"error_message": {
"type": "string"
},
"invoice_number": {
"type": "string"
},
"status_code": {
"type": "integer"
"Enum": "0,1,2,3,4"
},
"status_message": {
"type": "string"
"EnumName": "Pending,Success,Rejected,Manual Approved,TimeOut"
},
"currency_code": {
"type": "string"
},
"amount": {
"type": "float"
},
"submission_date": {
"type": "datetime"
},
"payment_date": {
"type": "datetime"
},
"beneficiary_bank_code": {
"type": "string"
},
"beneficiary_account": {
"type": "string"
},
"beneficiary_name": {
"type": "string"
}
}
}
StatusPOST/BankBot/CheckPromptPayStatus{merchant_code,ref_id,hash}
- merchant_code
string(20)
(required) Example: multimerchant5Merchant Username
- ref_id
string(50)
(required) Example: abc123Merchant provided transaction identifier
- hash
string
(required) Example: a24a49b8e5757d339878dae8f5d5e6126d74d73c40929ca3af4253446f94113ehash_hmac() with sha256 of ‘merchant_code + ref_id’ signed with your API Key
CallBack ¶
Automatic callback to Merchant’s provided endpoint with transaction status.
Our servers will make an HTTP POST request to the CallBackURL provided by the merchant during account registration.
No retry if callback failed.
Headers
Content-Type: application/json
Headers
Content-Type: application/json
Body
{
"error_code": 0,
"message": "Operation Success"
}
Schema
{
"type": "object",
"properties": {
"error_code": {
"enum": [0,1,2,3,4],
"enumNames": ["Operation Success",
"Invalid/Incorrect Transaction",
"Duplicate Transaction",
"Invalid Parameter",
"Operation Failed"]
},
"message": {
"type": "string"
}
}
}
CallBackPOSTCallBackUrl/{?InvoiceNo, ReceiverBank, ReceiverAccount, Currency, Amount, OriginalAmount, PaymentDate, MerchantCode, RefId, Status, Signature, StatusMessage, DeclineReason}
- InvoiceNo
string
(required) Example: 000-MY01-126-20-140An unique identifier for the contract involved
- ReceiverBank
string
(required) Example: BSNBThe client’s bank code
- ReceiverAccount
string
(required) Example: 1413941000030123The client’s bank account number
- Currency
ISO-4217
(required) Example: MYRThe transaction’s currency
- Amount
string
(required) Example: 45.99Amount credit to Receiver bank account
- OriginalAmount
float
(required) Example: 45.99Original amount credit to Receiver bank account
- PaymentDate
MM/dd/yyyy H:i:s Timezone
(required)Example: 01/31/2020 12:59:59
Payment date at the timezone of the API key’s owner
- MerchantCode
string
(required) Example: merchant001Merchant Username
- RefId
string
(required) Example: abc123Merchant provided transaction identifier
- Status
integer
(required) Example: 1Latest transaction status
[0 = "Pending", 1 = "Success", 2 = "Rejected", 3 = "Manual Approve"]
- Signature
string
(required) Example: 56c7e1f...hash_hmac() with sha256 of ‘InvoiceNo + ReceiverBank + ReceiverAccount + Currency + Amount + PaymentDate’ signed with your API Key
- StatusMessage
string
(required) Example: SuccessThe status message of the transaction status
- DeclineReason
string
(required) Example: Transaction rejected. Please provide bank slip to customer service if payment is done.The reason of transaction being rejected.
Autobot (THB) ¶
Autobot is an sms alert scanning and credit to player.
When merchant's phone number receive SCB SMS alert, PayJom will receive the sms content and callback to merchant site. Merchant required to validate the data and return status response to PayJom.
Merchant must have:
- SCB bank account, promptpay ID and must registered on SMS alert.
- provide callback URL to Payjom.
- installed sms forwarder app by follow this installation guideline
- customer's bank account number set up at merchant site in order to credit to customer correctly
- if sms content does not have payer bank account name or bank account number, merchant has to manual callback to merchant site by entering the member ID or bank account number at Back Office.
Ideal mapping Criteria:
- Member must have bank account name and account number setup.
- Transaction shall be Credited to member if merchant site found only one member account with same bank account number (last 6 digits).
- Transaction shall be Credited based on last login if member has more than 1 member account with same bank account info.
- Transaction shall be Credited if member is Active status.
- Transaction shall be Pending status if member has more than 1 member account with different bank account name and same bank account number(last 6 digits).
- Transaction shall be Rejected if does not found any last 6 digits of bank account number.
Get QR Code ¶
Get QR Code
{"promptpay_id":"1234567890", "merchant_code":"merchant001", "hash":"8abbdd279e158833b59091df57656df65d389f7c1a7a360f8b79ce6884d17127"}
Headers
Content-Type: application/json
Body
{
"error_code": 0,
"error_message": "Operation Success",
"qr_image": "http://<'host'>/265da2cddc12658c758bb9e608b70c64.png"
}
Schema
{
"type": "object",
"properties": {
"error_code": {
"enum": [-1,0,102,204],
"enumNames": ["Operation failed",
"Operation success",
"Invalid hash",
"Invalid PromptPay Id"]
},
"error_message": {
"type": "string"
},
"qr_image": {
"type": "string"
}
}
}
Get QR CodePOSTBankBot/GetQRScanImage {promptpay_id, merchant_code, hash}
- promptpay_id
string
(required) Example: 1234567890PromptPay ID
- merchant_code
string
(required) Example: merchant001Merchant Username
- hash
string
(required) Example: 8abbdd279e158833b59091df57656df65d389f7c1a7a360f8b79ce6884d17127hash_hmac() with sha256 of ‘merchant_code + promptpay_id’ signed with your API Key
CallBack ¶
Automatic callback to Merchant’s provided endpoint with transaction status.
Our servers will make an HTTP POST request to the CallBackURL provided by the merchant during account registration.
Merchant must response acccording to our response code and format.
If response code with 1001 (Operation Failed) & 1002 (System Maintenance), server will retry and POST request to CallBackURL provided.
{"MerchantCode":"merchant001", "RefId":"ee0aa67d934cea9a8f8fd56efcf67030", "Currency":"THB", "Amount":"45.99", "PaymentDate":"2020-01-31T23:59:00", "Signature":"74965689c3070db4425c9685f26d5f0484efe82d000c29a6c81d92693060bc9d", "ApiKey":"hHEZEYH00k7xwoO0qpc8Tclev9OEEaWy7h/09pU2S+8=", "ReceiverBank":"SCBB", "ReceiverAccount":"1581609627", "ReceiverAccountName":"Joe Smitt", "SenderBank":"SCBB", "SenderAccount":"345302", "SenderAccountName":"David Joe", "SenderUsername":"David Joe", "Description":"Payout110022", "BankReference":"110022"}
Headers
Content-Type: application/json
Body
{
"error_code": 0,
"message": "Operation Success"
}
Schema
{
"type": "object",
"properties": {
"error_code": {
"enum": [0,1,2,3,4,5,1001,1002],
"enumNames": ["Operation Success",
"Invalid/Incorrect Transaction",
"Duplicate Transaction",
"Invalid Parameter",
"Transaction Is Process",
"Agent Disable",
"Operation Failed (Retry)",
"System Maintenance (Retry)"]
},
"message": {
"type": "string"
}
}
}
CallBackPOST<'CallBackUrl'> {MerchantCode, RefId, Currency, Amount, PaymentDate, Signature, ApiKey, ReceiverBank, ReceiverAccount, ReceiverAccountName, SenderBank, SenderAccount, SenderAccountName, SenderUsername, Description, BankReference}
- MerchantCode
string
(required) Example: merchant001Merchant Username
- RefId
string
(required) Example: ee0aa67d934cea9a8f8fd56efcf67030Merchant provided transaction identifier
- Currency
ISO-4217
(required) Example: MYRThe transaction’s currency
- Amount
float
(required) Example: 45.99Amount credit to beneficiary bank account
- Signature
string
(required) Example: 74965689c3070db4425c9685f26d5f0484efe82d000c29a6c81d92693060bc9dhash_hmac() with sha256 of ‘RefId + SenderBank + SenderAccount + Currency + Amount + PaymentDate’ signed with your API Key
- ApiKey
string
(required) Example: hHEZEYH00k7xwoO0qpc8Tclev9OEEaWy7h/09pU2S+8=The unique internal id of your API key
- ReceiverBank
string
(required) Example: SCBBThe receiver’s bank code
- ReceiverAccount
string
(required) Example: 1581609627The receiver’s bank account number
- ReceiverAccountName
string
(required) Example: Joe SmittThe receiver’s bank account name
- SenderBank
string
(optional) Example: SCBBThe sender’s bank code
- SenderAccount
string
(required) Example: 345302The sender’s bank account number
- SenderAccountName
string
(optional) Example: David JoeThe sender’s bank account name
- SenderUsername
string
(optional) Example: David JoeThe sender’s user name
- Description
string
(optional) Example: Payout110022Description of the transaction
- BankReference
string
(optional) Example: 110022Bank transaction reference number
- PaymentDate
Y-m-d H:i:s Timezone
(required)Example: 2020-01-31T23:59:00
Payment date at the timezone of the API key’s owner
UPI INR ¶
This is the API for initiating a UPI QR scan (redirect/direct), checking the status, callback function, and update UTR number
Start ¶
Initiate a UPI pay.
{"merchant_code":"merchant002", "ref_id":"abc123", "player_username":"Nicolas Teach", "player_ip":"192.168.0.202", "currency_code":"INR", "amount":"45.00", "client_url":"www.yoururl.com", "hash":"9ead452b7c5fe31cc2124c9d2b3dfa26836504ff27273cb522dadeda65314c4f"}
Headers
Content-Type: application/json
Body
{
"error_code": 0,
"error_message": "Operation Success",
"invoice_number": "000-IN01-136-20-150",
"currency_code": "INR",
"amount": "45.01",
"token": "Cj7XjYTFfa9gzPPhLNVOpJq2dgve%2FDAk0OCAbHya",
"redirect_to": "https://<'host'>/QRPay/QRImage?TOKEN=Cj7XjYTFfa9gzPPhLNVOpJq2dgve%2FDAk0OCAbHya",
"redirect_to2": "https://<'host'>/QRPay/QRImage?TOKEN=Cj7XjYTFfa9gzPPhLNVOpJq2dgve%2HOI8978UEHkjnfk"
}
Schema
{
"type": "object",
"properties": {
"error_code": {
"enum": [0,1,102,103,104,105,201,205,206,207,209,210,211,214,216,301],
"enumNames": ["Operation Success",
"Invalid parameter(s)",
"Invalid hash",
"Invalid IP",
"Amount less than or equal to zero",
"Decimal point must be zero",
"Duplicate Reference Id",
"Minimum deposit limit is x.xx",
"Bank is unavailable at the moment",
"Failed to Access Bank",
"Unavailable at the moment",
"Merchant's Bank Account Not Available",
"Maximum deposit limit is x.xx",
"Bank Is Under Maintenance",
"Your account is blacklisted. Please contact administrator. ",
"Failed to Save Transaction"]
},
"error_message": {
"type": "string"
},
"invoice_number": {
"type": "string"
},
"currency_code": {
"type": "string"
},
"amount": {
"type": "decimal"
},
"token": {
"type": "string"
},
"redirect_to": {
"type": "string"
},
"redirect_to2": {
"type": "string"
}
}
}
QRScanDepositPOSTBankBot/QRScanDeposit/{?merchant_code, ref_id, player_username, player_ip, currency_code, amount, client_url, hash, lang}
- merchant_code
string
(required) Example: merchant002Merchant Username
- ref_id
string
(required) Example: abc123Merchant provided transaction identifier(Unique Key)
- player_username
string
(required) Example: Nicolas TeachThe client’s player user name
- player_ip
string
(required) Example: 192.168.0.202The client’s player ip
- currency_code
ISO-4217
(required) Example: INRThe transaction’s currency
- amount
string
(required) Example: 45.00Amount credit to beneficiary bank account. Decimal point must be zero.
- client_url
string
(optional) Example: www.yoururl.comThe client’s page url
- hash
string
(required) Example: 56c7e1f...hash_hmac() with sha256 of ‘merchant_code + ref_id + player_username + player_ip + currency_code + amount + client_url’ signed with your API Key
- lang
string
(optional) Example: en/taThe language which will display in the QR Page. en = English, ta = Tamil
Direct ¶
Initiate a Direct UPI pay without redirect link.
{"merchant_code":"merchant002", "ref_id":"abc123", "player_username":"Nicolas Teach", "player_ip":"192.168.0.202", "currency_code":"INR", "amount":"45.00", "client_url":"www.yoururl.com", "hash":"9ead452b7c5fe31cc2124c9d2b3dfa26836504ff27273cb522dadeda65314c4f", "sender_name":"Joe Doe", "lang":"en"}
Headers
Content-Type: application/json
Body
{
"error_code": 0,
"error_message": "Operation Success",
"invoice_number": "000-IN01-136-20-150",
"currency_code": "INR",
"amount": "45.01",
"upi_id": "test@upi",
"ref_id": "abc123",
"account_name": "test",
"qr_image": "upi%3a%2f%2fpay%3fcu%3dINR%26pa%3dtest%40upi%26pn%3dtest%26am%3d45.01%26tn%3d928IN0306024845%26tr%3d000IN0113620150",
"upi_remark": "Kindly fill in UTR with 12 digits number. If you didn't fill in UTR, the deposit transaction will be 100% fail.",
"upi_remark2": "29-Feb-2024 12:32 PM GMT+5.30"
}
Schema
{
"type": "object",
"properties": {
"error_code": {
"enum": [0,1,102,103,104,105,108,201,205,206,207,209,210,211,214,216,301],
"enumNames": ["Operation Success",
"Invalid parameter(s)",
"Invalid hash",
"Invalid IP",
"Amount less than or equal to zero",
"Decimal point must be zero",
"Invalid Merchant provider",
"Duplicate Reference Id",
"Minimum deposit limit is x.xx",
"Bank is unavailable at the moment",
"Failed to Access Bank",
"Unavailable at the moment",
"Merchant's Bank Account Not Available",
"Maximum deposit limit is x.xx",
"Bank Is Under Maintenance",
"Your account is blacklisted. Please contact administrator. ",
"Failed to Save Transaction"]
},
"message": {
"type": "string"
},
"invoice_number": {
"type": "string"
},
"currency_code": {
"type": "string"
},
"amount": {
"type": "decimal"
},
"upi_id": {
"type": "string"
},
"ref_id": {
"type": "string"
},
"account_name": {
"type": "string"
},
"qr_image": {
"type": "string"
},
"upi_remark": {
"type": "string"
},
"upi_remark2": {
"type": "string"
}
}
}
UPIDepositPOSTBankBot/UPIDeposit/{?merchant_code, ref_id, player_username, player_ip, currency_code, amount, client_url, hash, sender_name, lang}
- merchant_code
string
(required) Example: merchant002Merchant Username
- ref_id
string
(required) Example: abc123Merchant provided transaction identifier(Unique Key)
- player_username
string
(required) Example: Nicolas TeachThe client’s player user name
- player_ip
string
(required) Example: 192.168.0.202The client’s player ip
- currency_code
ISO-4217
(required) Example: INRThe transaction’s currency
- amount
string
(required) Example: 45.00Amount credit to beneficiary bank account. Decimal point must be zero.
- client_url
string
(optional) Example: www.yoururl.comThe client’s page url
- hash
string
(required) Example: 56c7e1f...hash_hmac() with sha256 of ‘merchant_code + ref_id + player_username + player_ip + currency_code + amount + client_url’ signed with your API Key
- sender_name
string
(required) Example: Jon DoeThe sender's full name
- lang
string
(optional) Example: en/taThe language which will display in the QR Page. en = English, ta = Tamil
Status ¶
Check the transaction’s status
{"merchant_code":"merchant002", "ref_id":"abc123", "hash":"9ead452b7c5fe31cc2124c9d2b3dfa26836504ff27273cb522dadeda65314c4f"}
Headers
Content-Type: application/json
Body
{
"error_code": 0,
"error_message": OperationSuccess,
"invoice_number": "000-IN01-136-20-150",
"status_code": 0,
"status_message": "Pending",
"currency_code": "INR",
"amount": 45.00,
"submission_date": "2020-11-05T10:54:11.5908783Z",
"payment_date": "2020-11-05T10:54:11.5908783Z",
"beneficiary_bank_code": "INDB",
"beneficiary_account": "888999000",
"beneficiary_name": "James Brooks"
}
Schema
{
"type": "object",
"properties": {
"error_code": {
"type": "integer"
},
"error_message": {
"type": "string"
},
"invoice_number": {
"type": "string"
},
"status_code": {
"type": "integer"
"Enum": "0,1,2,3,4"
},
"status_message": {
"type": "string"
"EnumName": "Pending,Success,Rejected,Manual Approved,TimeOut"
},
"currency_code": {
"type": "string"
},
"amount": {
"type": "float"
},
"submission_date": {
"type": "datetime"
},
"payment_date": {
"type": "datetime"
},
"beneficiary_bank_code": {
"type": "string"
},
"beneficiary_account": {
"type": "string"
},
"beneficiary_name": {
"type": "string"
}
}
}
StatusPOST/BankBot/CheckUPIStatus{merchant_code,ref_id,hash}
- merchant_code
string(20)
(required) Example: merchant002Merchant Username
- ref_id
string(50)
(required) Example: abc123Merchant provided transaction identifier
- hash
string
(required) Example: 9ead452b7c5fe31cc2124c9d2b3dfa26836504ff27273cb522dadeda65314c4fhash_hmac() with sha256 of ‘merchant_code + ref_id’ signed with your API Key
CallBack ¶
Automatic callback to Merchant’s provided endpoint with transaction status.
Our servers will make an HTTP POST request to the CallBackURL provided by the merchant during account registration.
No retry if callback failed.
{"InvoiceNo":, "000-IN01-136-20-150", "ReceiverBank":"INDB", "ReceiverAccount"":"33893900423", "Currency":"INR", "Amount":"45.00", "OriginalAmount":45.00, "PaymentDate":"01/31/2020 12:59:59", "MerchantCode":"merchant002", "RefId":"abc123", "Status":1, "Signature":"9ead452b7c5fe31cc2124c9d2b3dfa26836504ff27273cb522dadeda65314c4f", "StatusMessage":"Success", "DeclineReason":""}
Headers
Content-Type: application/json
Headers
Content-Type: application/json
Body
{
"error_code": 0,
"message": "Operation Success"
}
Schema
{
"type": "object",
"properties": {
"error_code": {
"enum": [0,1,2,3,4],
"enumNames": ["Operation Success",
"Invalid/Incorrect Transaction",
"Duplicate Transaction",
"Invalid Parameter",
"Operation Failed"]
},
"message": {
"type": "string"
}
}
}
CallBackPOSTCallBackUrl/{InvoiceNo, ReceiverBank, ReceiverAccount, Currency, Amount, OriginalAmount, PaymentDate, MerchantCode, RefId, Status, Signature, StatusMessage, DeclineReason}
- InvoiceNo
string
(required) Example: 000-IN01-136-20-150An unique identifier for the contract involved
- ReceiverBank
string
(required) Example: INDBThe client’s bank code
- ReceiverAccount
string
(required) Example: 33893900423The client’s bank account number
- Currency
ISO-4217
(required) Example: INRThe transaction’s currency
- Amount
string
(required) Example: 45.01Amount credit to Receiver bank account
- OriginalAmount
float
(required) Example: 45.00Original amount credit to Receiver bank account
- PaymentDate
MM/dd/yyyy H:i:s Timezone
(required)Example: 01/31/2020 12:59:59
Payment date at the timezone of the API key’s owner
- MerchantCode
string
(required) Example: merchant002Merchant Username
- RefId
string
(required) Example: abc123Merchant provided transaction identifier
- Status
integer
(required) Example: 1Latest transaction status
[0 = "Pending", 1 = "Success", 2 = "Rejected", 3 = "Manual Approve"]
- Signature
string
(required) Example: 56c7e1f...hash_hmac() with sha256 of ‘InvoiceNo + ReceiverBank + ReceiverAccount + Currency + Amount + PaymentDate’ signed with your API Key
- StatusMessage
string
(required) Example: SuccessThe status message of the transaction status
- DeclineReason
string
(required) Example: Transaction rejected. Please provide bank slip to customer service if payment is done.The reason of transaction being rejected.
Update UTR¶
Insert UTR number in the request payload to update UTR (only update first UTR request).
{"merchant_code":"merchant002", "ref_id":"abc123", "refNum":"123456789012", "invoice":"000-IN01-136-20-150", "hash":"9ead452b7c5fe31cc2124c9d2b3dfa26836504ff27273cb522dadeda65314c4f"}
Headers
Content-Type: application/json
Body
{
"error_code": 0,
"message": "Operation Success"
}
Schema
{
"type": "object",
"properties": {
"error_code": {
"enum": [0,102,108,112,113,305],
"enumNames": ["Operation Success",
"Invalid Hash",
"Duplicate Transaction",
"Invalid Merchant provider",
"Invalid Invoice",
"Invalid UTR No",
"Transaction already has reference"]
},
"message": {
"type": "string"
}
}
}
UpdateUTRPOSTBankBot/UpdateUTR/{merchant_code, ref_id, refNum, invoice, hash}
- merchant_code
string
(required) Example: merchant002Merchant Username
- ref_id
string
(required) Example: abc123Merchant provided transaction identifier(Unique Key)
- refNum
string
(required) Example: 123456789012The respective transaction's UTR number
- invoice
string
(required) Example: 000-IN01-136-20-150An unique identifier for the contract involved
- hash
string
(required) Example: 9ead452b7c5fe31cc2124c9d2b3dfa26836504ff27273cb522dadeda65314c4fhash_hmac() with sha256 of ‘merchant_code + invoice + refNum + refId’ signed with your API Key
DuitNow ¶
This is the API for initiating a DuitNow static QR scan, checking the status, and callback function
Start ¶
Initiate a DuitNow pay.
{"merchant_code":"merchant002", "ref_id":"abc123", "player_username":"Nicolas Teach", "player_ip":"192.168.0.202", "currency_code":"MYR", "amount":"45.00", "client_url":"www.yoururl.com", "hash":"9ead452b7c5fe31cc2124c9d2b3dfa26836504ff27273cb522dadeda65314c4f", "lang":"en"}
Headers
Content-Type: application/json
Body
{
"error_code": 0,
"error_message": "Operation Success",
"invoice_number": "000-MY05-136-20-150",
"currency_code": "MYR",
"amount": "44.99",
"token": "Cj7XjYTFfa9gzPPhLNVOpJq2dgve%2FDAk0OCAbHya",
"redirect_to": "https://<'host'>/QRPay/QRImage?TOKEN=Cj7XjYTFfa9gzPPhLNVOpJq2dgve%2FDAk0OCAbHya"
}
Schema
{
"type": "object",
"properties": {
"error_code": {
"enum": [0,1,102,103,104,105,201,205,206,207,209,210,211,214,215,216,301],
"enumNames": ["Operation Success",
"Invalid parameter(s)",
"Invalid hash",
"Invalid IP",
"Amount less than or equal to zero",
"Decimal point must be zero",
"Duplicate Reference Id",
"Minimum deposit limit is x.xx",
"Bank is unavailable at the moment",
"Failed to Access Bank",
"Unavailable at the moment",
"Merchant's Bank Account Not Available",
"Maximum deposit limit is x.xx",
"Bank Is Under Maintenance",
"We're busy in another transaction. Please try it again later",
"Your account is blacklisted. Please contact administrator. ",
"Failed to Save Transaction"]
},
"error_message": {
"type": "string"
},
"invoice_number": {
"type": "string"
},
"currency_code": {
"type": "string"
},
"amount": {
"type": "decimal"
},
"token": {
"type": "string"
},
"redirect_to": {
"type": "string"
}
}
}
DepositPOSTDuitNow/Deposit/{?merchant_code, ref_id, player_username, player_ip, currency_code, amount, client_url, hash, lang}
- merchant_code
string
(required) Example: merchant002Merchant Username
- ref_id
string
(required) Example: abc123Merchant provided transaction identifier(Unique Key)
- player_username
string
(required) Example: Nicolas TeachThe client’s player user name
- player_ip
string
(required) Example: 192.168.0.202The client’s player ip
- currency_code
ISO-4217
(required) Example: MYRThe transaction’s currency
- amount
string
(required) Example: 45.00Amount credit to beneficiary bank account. Decimal point must be zero.
- client_url
string
(optional) Example: www.yoururl.comThe client’s page url
- hash
string
(required) Example: 56c7e1f...hash_hmac() with sha256 of ‘merchant_code + ref_id + player_username + player_ip + currency_code + amount + client_url’ signed with your API Key
- lang
string
(optional) Example: en/myThe language which will display in the QR Page. en = English, my = Bahasa Malaysia
Status ¶
Check the transaction’s status
{"merchant_code":"merchant002", "ref_id":"abc123", "hash":"9ead452b7c5fe31cc2124c9d2b3dfa26836504ff27273cb522dadeda65314c4f"}
Headers
Content-Type: application/json
Body
{
"error_code": 0,
"error_message": OperationSuccess,
"invoice_number": "000-MY05-136-20-150",
"status_code": 0,
"status_message": "Pending",
"currency_code": "MYR",
"amount": 45.00,
"submission_date": "2020-11-05T10:54:11.5908783Z",
"payment_date": "2020-11-05T10:54:11.5908783Z",
"beneficiary_bank_code": "HLBB",
"beneficiary_account": "888999000",
"beneficiary_name": "James Brooks"
}
Schema
{
"type": "object",
"properties": {
"error_code": {
"type": "integer"
},
"error_message": {
"type": "string"
},
"invoice_number": {
"type": "string"
},
"status_code": {
"type": "integer"
"Enum": "0,1,2,3,4"
},
"status_message": {
"type": "string"
"EnumName": "Pending,Success,Rejected,Manual Approved,TimeOut"
},
"currency_code": {
"type": "string"
},
"amount": {
"type": "float"
},
"submission_date": {
"type": "datetime"
},
"payment_date": {
"type": "datetime"
},
"beneficiary_bank_code": {
"type": "string"
},
"beneficiary_account": {
"type": "string"
},
"beneficiary_name": {
"type": "string"
}
}
}
StatusPOST/DuitNow/CheckStatus{merchant_code,ref_id,hash}
- merchant_code
string(20)
(required) Example: merchant002Merchant Username
- ref_id
string(50)
(required) Example: abc123Merchant provided transaction identifier
- hash
string
(required) Example: 9ead452b7c5fe31cc2124c9d2b3dfa26836504ff27273cb522dadeda65314c4fhash_hmac() with sha256 of ‘merchant_code + ref_id’ signed with your API Key
CallBack ¶
Automatic callback to Merchant’s provided endpoint with transaction status.
Our servers will make an HTTP POST request to the CallBackURL provided by the merchant during account registration.
No retry if callback failed.
{"InvoiceNo":, "000-MY05-136-20-150", "ReceiverBank":"HLBB", "ReceiverAccount"":"33893900423", "Currency":"MYR", "Amount":"45.00", "OriginalAmount":45.00, "PaymentDate":"01/31/2020 12:59:59", "MerchantCode":"merchant002", "RefId":"abc123", "Status":1, "Signature":"9ead452b7c5fe31cc2124c9d2b3dfa26836504ff27273cb522dadeda65314c4f", "StatusMessage":"Success", "DeclineReason":""}
Headers
Content-Type: application/json
Headers
Content-Type: application/json
Body
{
"error_code": 0,
"message": "Operation Success"
}
Schema
{
"type": "object",
"properties": {
"error_code": {
"enum": [0,1,2,3,4],
"enumNames": ["Operation Success",
"Invalid/Incorrect Transaction",
"Duplicate Transaction",
"Invalid Parameter",
"Operation Failed"]
},
"message": {
"type": "string"
}
}
}
CallBackPOSTCallBackUrl/{InvoiceNo, ReceiverBank, ReceiverAccount, Currency, Amount, OriginalAmount, PaymentDate, MerchantCode, RefId, Status, Signature, StatusMessage, DeclineReason}
- InvoiceNo
string
(required) Example: 000-MY05-136-20-150An unique identifier for the contract involved
- ReceiverBank
string
(required) Example: HLBBThe client’s bank code
- ReceiverAccount
string
(required) Example: 33893900423The client’s bank account number
- Currency
ISO-4217
(required) Example: MYRThe transaction’s currency
- Amount
string
(required) Example: 45.01Amount credit to Receiver bank account
- OriginalAmount
float
(required) Example: 45.00Original amount credit to Receiver bank account
- PaymentDate
MM/dd/yyyy H:i:s Timezone
(required)Example: 01/31/2020 12:59:59
Payment date at the timezone of the API key’s owner
- MerchantCode
string
(required) Example: merchant002Merchant Username
- RefId
string
(required) Example: abc123Merchant provided transaction identifier
- Status
integer
(required) Example: 1Latest transaction status
[0 = "Pending", 1 = "Success", 2 = "Rejected", 3 = "Manual Approve"]
- Signature
string
(required) Example: 56c7e1f...hash_hmac() with sha256 of ‘InvoiceNo + ReceiverBank + ReceiverAccount + Currency + Amount + PaymentDate’ signed with your API Key
- StatusMessage
string
(required) Example: SuccessThe status message of the transaction status
- DeclineReason
string
(required) Example: Transaction rejected. Please provide bank slip to customer service if payment is done.The reason of transaction being rejected.
Crypto Currency ¶
This is the API for initiating a Crypto Currency transaction, checking the status, and callback function
Start ¶
Initiate a Crypto Currency deposit.
{"merchant_code":"merchant002", "ref_id":"abc123", "player_username":"Nicolas Teach", "player_ip":"192.168.0.202", "fiat_currency_code":"MYR", "fiat_amount":"30.00", "crypto_currency_code":"USDT", "network":"TRC20", "client_url":"www.yoururl.com", "hash":"9ead452b7c5fe31cc2124c9d2b3dfa26836504ff27273cb522dadeda65314c4f", "lang":"en"}
Headers
Content-Type: application/json
Body
{
"errorcode": 0,
"message": "Operation Success",
"invoice_number": "000-CC01-136-20-150",
"currency_code": "USDT",
"amount": 6.72067,
"token": "Cj7XjYTFfa9gzPPhLNVOpJq2dgve%2FDAk0OCAbHya",
"redirect_to": "https://<'host'>/Crypto/Index?TOKEN=Cj7XjYTFfa9gzPPhLNVOpJq2dgve%2FDAk0OCAbHya"
}
Schema
{
"type": "object",
"properties": {
"errorcode": {
"enum": [0,1,102,103,104,105,201,205,206,207,209,210,211,214,215,216,301],
"enumNames": ["Operation Success",
"Invalid parameter(s)",
"Invalid hash",
"Invalid IP",
"Amount less than or equal to zero",
"Decimal point must be zero",
"Duplicate Reference Id",
"Minimum deposit limit is x.xx",
"Bank is unavailable at the moment",
"Failed to Access Bank",
"Unavailable at the moment",
"Merchant's Bank Account Not Available",
"Maximum deposit limit is x.xx",
"Bank Is Under Maintenance",
"We're busy in another transaction. Please try it again later",
"Your account is blacklisted. Please contact administrator. ",
"Failed to Save Transaction"]
},
"message": {
"type": "string"
},
"invoice_number": {
"type": "string"
},
"currency_code": {
"type": "string"
},
"amount": {
"type": "decimal"
},
"token": {
"type": "string"
},
"redirect_to": {
"type": "string"
}
}
}
DepositPOSTapi/crypto/deposit/{?merchant_code, ref_id, player_username, player_ip, fiat_currency_code, fiat_amount, crypto_currency_code, network, client_url, hash, lang}
- merchant_code
string
(required) Example: merchant002Merchant Username
- ref_id
string
(required) Example: abc123Merchant provided transaction identifier(Unique Key)
- player_username
string
(required) Example: Nicolas TeachThe client’s player user name
- player_ip
string
(required) Example: 192.168.0.202The client’s player ip
- fiat_currency_code
ISO-4217
(required) Example: MYRThe transaction’s currency
- fiat_amount
string
(required) Example: 30.00Amount credit to beneficiary bank account. Decimal point must be zero.
- crypto_currency_code
ISO-4217
(required) Example: USDTThe crypto’s currency
- network
string
(required) Example: TRC20The blockchain network used. Pass either TRC20 or ERC20.
- client_url
string
(optional) Example: www.yoururl.comThe client’s page url
- hash
string
(required) Example: 56c7e1f...hash_hmac() with sha256 of ‘merchant_code + ref_id + player_username + player_ip + fiat_currency_code + fiat_amount + crypto_currency_code + client_url’ signed with your API Key
- lang
string
(optional) Example: en/myThe language which will display in the QR Page. en = English, my = Bahasa Malaysia
Status ¶
Check the transaction’s status
{"merchant_code":"merchant002", "ref_id":"abc123", "hash":"9ead452b7c5fe31cc2124c9d2b3dfa26836504ff27273cb522dadeda65314c4f"}
Headers
Content-Type: application/json
Body
{
"errorcode": 0,
"message": OperationSuccess,
"invoice_number": "000-CC01-136-20-150",
"status_code": 0,
"status_message": "Pending",
"fiat_currency": "MYR",
"fiat_amount": 40.00,
"crypto_currency": "USDT",
"crypto_amount": 1.567893,
"exchange_rate": 0.24261827,
"submission_date": "2020-11-05T10:54:11.5908783Z",
"payment_date": "2020-11-05T10:54:11.5908783Z",
"sender_wallet_address": "HLBB",
"reference": "888999000",
"network": "James Brooks"
}
Schema
{
"type": "object",
"properties": {
"errorcode": {
"type": "integer"
},
"message": {
"type": "string"
},
"invoice_number": {
"type": "string"
},
"status_code": {
"type": "integer"
"Enum": "0,1,2,3"
},
"status_message": {
"type": "string"
"EnumName": "Pending,Success,Rejected,Manual Approved"
},
"fiat_currency": {
"type": "string"
},
"fiat_amount": {
"type": "float"
},
"crypto_currency": {
"type": "string"
},
"crypto_amount": {
"type": "float"
},
"exchange_rate": {
"type": "float"
},
"submission_date": {
"type": "datetime"
},
"payment_date": {
"type": "datetime"
},
"sender_wallet_address": {
"type": "string"
},
"reference": {
"type": "string"
},
"network": {
"type": "string"
}
}
}
StatusPOST/api/crypto/status{merchant_code,ref_id,hash}
- merchant_code
string(20)
(required) Example: merchant002Merchant Username
- ref_id
string(50)
(required) Example: abc123Merchant provided transaction identifier
- hash
string
(required) Example: 9ead452b7c5fe31cc2124c9d2b3dfa26836504ff27273cb522dadeda65314c4fhash_hmac() with sha256 of ‘merchant_code + ref_id’ signed with your API Key
CallBack ¶
Automatic callback to Merchant’s provided endpoint with transaction status.
Our servers will make an HTTP POST request to the CallBackURL provided by the merchant during account registration.
No retry if callback failed.
{"InvoiceNo":, "000-CC01-136-20-150", "MerchantCode":"Merchant123", "SenderWalletAddress":"IAJdi2093jdopdwk909YB", "Reference"":"1234567890", "ExchangeRate":0.1287631, "FiatCurrency":"MYR", "CryptoCurrency":"USDT", "FiatAmount":45.00, "CryptoAmount":1.234567, "Status":1, "RefId":"abc123", "PaymentDate":"01/31/2020 12:59:59", "Signature":"9ead452b7c5fe31cc2124c9d2b3dfa26836504ff27273cb522dadeda65314c4f", "StatusMessage":"Success", "DeclineReason":""}
Headers
Content-Type: application/json
Headers
Content-Type: application/json
Body
{
"error_code": 0,
"message": "Operation Success"
}
Schema
{
"type": "object",
"properties": {
"error_code": {
"enum": [0,1,2,3,4],
"enumNames": ["Operation Success",
"Invalid/Incorrect Transaction",
"Duplicate Transaction",
"Invalid Parameter",
"Operation Failed"]
},
"message": {
"type": "string"
}
}
}
CallBackPOSTCallBackUrl/{InvoiceNo, MerchantCode, SenderWalletAddress, Reference, ExchangeRate, FiatCurrency, CryptoCurrency, Status, FiatAmount, CryptoAmount, RefId, PaymentDate, StatusMessage, DeclineReason, Signature}
- InvoiceNo
string
(required) Example: 000-CC01-136-20-150An unique identifier for the contract involved
- MerchantCode
string
(required) Example: merchant002Merchant Username
- SenderWalletAddress
string
(required) Example: oijoiqd98KJASDu887The client’s Crypto Sender Wallet Address
- Reference
string
(required) Example: 33893900423The reference of the transaction.
- ExchangeRate
float
(required) Example: 0.1234566The exchange rate from fiat amount to crypto amount
- FiatCurrency
ISO-4217
(required) Example: MYRThe transaction’s fiat currency
- CryptoCurrency
ISO-4217
(required) Example: USDTThe transaction’s crypto currency
- FiatAmount
float
(required) Example: 30.00Fiat amount requested
- CryptoAmount
float
(required) Example: 1.234567Crypto amount credit to Receiver crypto wallet address
- Status
integer
(required) Example: 1Latest transaction status
[0 = "Pending", 1 = "Success", 2 = "Rejected", 3 = "Manual Approve"]
- RefId
string
(required) Example: abc123Merchant provided transaction identifier
- PaymentDate
MM/dd/yyyy H:i:s Timezone
(required)Example: 01/31/2020 12:59:59
Payment date at the timezone of the API key’s owner
- Signature
string
(required) Example: 56c7e1f...hash_hmac() with sha256 of ‘InvoiceNo + SenderWalletAddress + FiatCurrency + FiatAmount + CryptoCurrency + CryptoAmount + PaymentDate’ signed with your API Key
- StatusMessage
string
(required) Example: SuccessThe status message of the transaction status
- DeclineReason
string
(required) Example: Transaction rejected. Please provide bank slip to customer service if payment is done.The reason of transaction being rejected.
Data Model ¶
Payout Response Code ¶
Response Code ¶
Code | Description | |
---|---|---|
-1 | Operation failed | |
0 | Operation success | |
2 | Transfer process is incomplete. Please re-submit payout. | |
2 | Invalid Beneficiary info | |
2 | The beneficiary bank unable to use IMPS transfer now. Kindly submit again after 30mins. | |
2 | Bank is under maintenance. Please retry in 30 mins. | |
2 | Invalid Bank Account Number | |
2 | Incorrect Bank Account Name | |
2 | Bank Refund | |
2 | Blacklisted Bank Account | |
2 | Merchant Request To Cancel This Payout Request | |
2 | Bank Rejected The Transaction | |
2 | Bank Connection Issue | |
2 | Bank Maintenance | |
2 | Bank Rejected The Transaction due to beneficiary is dormant account. | |
100 | Invalid parameter(s) | |
100 | IFSC must in 11-digit alpha-numeric code | |
101 | Duplicate Reference Id | |
102 | Invalid Request. Please contact our customer service. | |
103 | Invalid Request. Please contact our customer service. | |
104 | Amount less than or equal to zero | |
107 | Invalid Key | |
203 | Invalid Request. Please contact our customer service. | |
204 | Invalid Request. Please contact our customer service. | |
206 | Transaction Not Found | |
301 | Invalid Request. Please contact our customer service. | |
302 | There is pending withdrawal | |
303 | Invalid Request. Please contact our customer service. | |
401 | Invalid Request. Please contact our customer service. | |
408 | Bank Is Under Maintenance | |
901 | System maintenance |
Encryption ¶
SHA 256 ¶
C# Sample
public string hash_hmac(string signatureString, string secretKey)
{
var enc = Encoding.UTF8;
HMACSHA256 hmac = new HMACSHA256(enc.GetBytes(secretKey));
hmac.Initialize();
byte[] buffer = enc.GetBytes(signatureString);
return BitConverter.ToString(hmac.ComputeHash(buffer)).Replace("-", "").ToLower();
}
{
var enc = Encoding.UTF8;
HMACSHA256 hmac = new HMACSHA256(enc.GetBytes(secretKey));
hmac.Initialize();
byte[] buffer = enc.GetBytes(signatureString);
return BitConverter.ToString(hmac.ComputeHash(buffer)).Replace("-", "").ToLower();
}