API Doc API 文檔
API Endpoint API 端點
https://<'host'>This API allows Merchants to provide Users with the ability pay with their Internet Banking credentials.
此 API 允許商家為用戶提供使用其網路銀行憑證進行支付的能力。
API ¶ 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.
此 API 是基於 REST 組織的,旨在擁有可預測的、以資源為導向的 URL,並使用 HTTP 響應代碼來指示 API 錯誤。
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).
我們使用內建的 HTTP 功能,如 HTTP 認證和 HTTP 動詞,這些功能可以被現成的 HTTP 客戶端理解,我們支持跨來源資源共享,以便您可以從客戶端網頁應用程式安全地與我們的 API 互動(不過您應該記住,您永遠不應該在任何公共網站的客戶端代碼中暴露您的秘密 API 金鑰)。
JSON will be returned in all responses from the API, including errors.
API 所有回應將以 JSON 格式返回,包括錯誤。
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!
您通過在請求中提供您的 API 金鑰來對此 API 進行身份驗證。您可以從您的帳戶管理您的 API 金鑰。您可以同時擁有多個活動的 API 金鑰。您的 API 金鑰擁有許多特權,因此請務必保密!
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.
通過 HTTP 基本身份驗證對 API 進行身份驗證。將您的 API 密鑰作為基本身份驗證用戶名提供。您不需要提供密碼。
Authorization: Basic NWZiUnBoUWl1ZEVBTEZoVUM0QnEyTzBselBPTElhS0Q6
Transaction ¶ 交易 ¶
This is the API for initiating a transaction, and checking the status
這是用於啟動交易和檢查狀態的 API
Payin V2 ¶
This is the API for initiating a Payin, checking the status, and get sender bank
這是用於啟動支付、檢查狀態和獲取發送者銀行的 API
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"}
{"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":"帳戶充值", "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: merchant01
string(20)
(必填) 例子:merchant01Merchant Username 商戶用戶名
- ReturnURL
string(250)
(required) Example: http://example.com/thankyou
string(250)
(必填) 例如: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/retry
string(250)
(必填) 例子: 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/1234
string(250)
(必填) 例子: http://example.com/invoice/1234a URL on the merchant’s website where we will automatically POST the transaction status
商家網站上的一個 URL,我們將自動發送交易狀態至該 URL- Amount 金額
string
(required) Example: 45.99
string
(必填) 例子:45.99Amount to debit from the client’s bank account
從客戶的銀行帳戶中扣除的金額- Currency 貨幣
ISO-4217
(required) Example: MYR
ISO-4217
(必填) 例子:MYRThe preferred currency for the transaction
交易的首選貨幣- ItemID
string(50)
(required) Example: inv-3422
string(50)
(必填) 例子:inv-3422merchant provided transaction unique identifier and cannot resubmit same unique identifier
商家提供的交易唯一識別碼,且不能重新提交相同的唯一識別碼- ItemDescription 項目描述
string(50)
(required) Example: top up for account #1234
string(50)
(必填) 例如:為帳戶 #1234 充值merchant provided description of the transaction
商家提供的交易描述- PlayerId
string(50)
(required) Example: Jon Doe
string(50)
(必填) 例子: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"
}
}
}
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 |
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": "abc@yahoo.com", "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: abc@yahoo.comthe 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 | - | KKBB | 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 |
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 (MYR-Static) ¶
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.
DuitNow V2 (MYR-Dynamic) ¶
This is the API for initiating a DuitNow V2 dynamic QR scan, checking the status, and callback function
Start ¶
Initiate a DuitNow V2 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/DepositV2/{?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
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 hash | |
103 | Invalid IP | |
104 | Amount less than or equal to zero | |
107 | Invalid Key | |
203 | Minimum withdrawal limit | |
204 | Maximum withdrawal limit | |
206 | Transaction Not Found | |
301 | Reach Daily Withdrawal Limit | |
302 | There is pending withdrawal | |
303 | This bank account is blacklisted. Please contact administrator | |
401 | Merchant balance is low. Remaining balance | |
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();
}