Malaysia Payment API
About 908 wordsAbout 3 min
Warning
Before reading this API documentation, please make sure to review API Description Guide
Transaction Limits
Transaction Type | Limit (Unit: MYR) |
---|---|
Collection | 1-1000 |
Disbursement | 10-5000 |
Transaction Type | Limit (Unit: USD) |
---|---|
Collection | 0.99-499.99 |
Collection API
Collection Application
Description:
- Create a collection order
URL:
MYR: /myr/collect/apply
Note: appId MYR, amount MYR, settlement MYR
USD: /usd/collect/apply
Note: appId USD, amount USD, settlement USD
Parameters:
Parameter | Required | Type | Description |
---|---|---|---|
appId | Yes | Long | Business ID (obtained from backend, must pass the corresponding business ID according to the currency in the URL) |
orderId | Yes | String | Merchant order number (must be unique, maximum length 48) |
name | Yes | String | User’s full name, recommended to use real name. Format: include firstName and lastName, separated by a space. Example: Donald John Trump |
phone | Yes | String | Valid phone number (format reference: Phone Number Format) |
Yes | String | Valid email | |
amount | Yes | String | Transaction amount (accurate to two decimal places; punctuation marks such as “,” are prohibited) |
payType | Yes | String | Transaction type |
inBankCode | Yes | String | Payment Method |
callBackUrl | Yes | String | Redirect URL after successful payment |
callBackFailUrl | Yes | String | Redirect URL after failed payment |
notifyUrl | No | String | Callback URL |
subject | Yes | String | Payment remark |
body | No | String | Remark details |
country | No | String | Required for cashier mode, pass: 458 |
partnerUserId | Yes | String | Unique user identifier (e.g., userId). Must be valid, otherwise it will affect the transaction. Format: digits, letters, or symbols -~!@#$%&*()_. |
sign | Yes | String | Signature |
Return Data Parameters
Parameter | Type | Description |
---|---|---|
orderId | String | Merchant order ID |
orderNo | String | Platform order ID |
payUrl | String | Payment link |
sign | String | Signature |
Collection Query
Description:
- Query a collection order
URL:
MYR: /myr/collect/query
USD: /usd/collect/query
Parameters:
Parameter | Required | Type | Description |
---|---|---|---|
appId | Yes | Long | Business ID (obtained from backend, must pass the corresponding business ID according to the currency in the URL) |
orderId | Yes | String | Merchant order number |
orderNo | No | String | Platform order number (faster response) |
sign | Yes | String | Signature |
Return Data Parameters
Parameter | Type | Description |
---|---|---|
orderId | String | Merchant order ID |
orderNo | String | Platform order ID |
amount | String | Transaction amount |
actualAmount | String | Received amount |
fee | String | Fee |
status | Integer | Status (0 = Not started, 1 = Processing, 2 = Success (final), 3 = Failed (final), -1 = Exception pending confirmation) |
payTime | String | Payment success time (exists when status=2) (local currency time), format: yyyy-MM-dd HH:mm:ss |
errorMsg | String | Failure reason (exists when status=3) |
sign | String | Signature |
Payment Methods
payType | inBankCode | Description |
---|---|---|
QR | QR | QR code, supports all major wallets |
EWALLET | TNG | Touch N Go |
EWALLET | MCash | MCash |
EWALLET | BOOST | BOOST |
EWALLET | GRAB | GrabPay |
EWALLET | SHOPEE | ShopeePay |
BANK_TRANSFER | FPX_MYR | FPX |
BANK_TRANSFER | TNG_USD | Touch N Go (USD orders) |
BANK_TRANSFER | BOOST_USD | BOOST (USD orders) |
BANK_TRANSFER | FPX_USD | FPX (USD orders) |
EWALLET | GOOGLE_PAY | Google Pay (USD orders) |
EWALLET | APPLE_PAY | Apple Pay (USD orders) |
CASHIER | CASHIER | USD Cashier (USD orders) |
Disbursement API
Disbursement Application
Description:
- Create a disbursement order
URL: /myr/pay/apply
Parameters:
Parameter | Required | Type | Description |
---|---|---|---|
appId | Yes | Long | Business ID (obtained from backend, must pass the corresponding business ID according to the currency in the URL) |
orderId | Yes | String | Merchant order number (must be unique, maximum length 48) |
amount | Yes | String | Transaction amount (accurate to two decimal places; punctuation marks such as “,” are prohibited) |
accountType | Yes | String | Account type: EWALLET (e-wallet), BANK_ACCOUNT (bank) |
bankCode | Yes | String | Payment Method |
accountNo | Yes | String | User account number |
name | Yes | String | Recipient’s name (format: English letters, case-insensitive, spaces allowed, 1-30 chars, “firstName middleName lastName” (middleName optional, special chars supported '.-)) |
phone | Yes | String | Valid phone number (format reference: Phone Number Format) |
Yes | String | Valid email | |
notifyUrl | No | String | Callback URL |
subject | No | String | Payment remark (transaction title, product name, or payment reason) |
body | No | String | Remark details |
partnerUserId | Yes | String | Unique user identifier (e.g., userId). Must be valid, otherwise it will affect the transaction. Format: digits, letters, or symbols -~!@#$%&*()_. |
sign | Yes | String | Signature |
Return Data Parameters
Parameter | Type | Description |
---|---|---|
orderId | String | Merchant order number (must be unique) |
orderNo | String | Platform order number |
sign | String | Signature |
Disbursement Query
URL: /myr/pay/query
Parameters:
Parameter | Required | Type | Description |
---|---|---|---|
appId | Yes | Long | Business ID (obtained from backend, must pass the corresponding business ID according to the currency in the URL) |
orderId | Yes | String | Merchant order number |
orderNo | No | String | Platform order number (faster response) |
sign | Yes | String | Signature |
Return Data Parameters
Parameter | Type | Description |
---|---|---|
orderId | String | Merchant order number (must be unique) |
orderNo | String | Platform order number |
amount | String | Transaction amount |
fee | String | Fee |
status | Integer | Status (0 = Not started, 1 = Processing, 2 = Success (final), 3 = Failed (final), -1 = Exception pending confirmation) |
payTime | String | Payment success time (exists when status=2) (Malaysia Time), format: yyyy-MM-dd HH:mm:ss |
errorMsg | String | Failure reason (exists when status=3) |
sign | String | Signature |
Payment Methods
bankCode | Description | accountType |
---|---|---|
TNG | Touch N Go | EWALLET |
BIGPAY | BigPay | EWALLET |
BIMB | Bank Islam | BANK_ACCOUNT |
CIMB | CIMB Bank | BANK_ACCOUNT |
UOB | United Overseas Bank | BANK_ACCOUNT |
MBB | Maybank | BANK_ACCOUNT |
HSBC | HSBC Bank | BANK_ACCOUNT |
RHB | RHB Bank | BANK_ACCOUNT |
OCBC | OCBC Bank | BANK_ACCOUNT |
PBB | Public Bank | BANK_ACCOUNT |
SCB | Standard Chartered | BANK_ACCOUNT |
AMB | AmBank | BANK_ACCOUNT |
BKRM | Bank Kerjasama Rakyat | BANK_ACCOUNT |
BSN | Bank Simpanan Nasional | BANK_ACCOUNT |
AFB | Affin Bank | BANK_ACCOUNT |
HLB | Hong Leong Bank | BANK_ACCOUNT |
ALB | Alliance Bank | BANK_ACCOUNT |