Malaysia Payment API
About 1626 wordsAbout 5 min
Warning
Before reading this API documentation, please make sure to review API Description Guide
Transaction Limits
| Transaction Type | Limit |
|---|---|
| Collection | USD: 0.99-499.99, MYR: 1-3000 |
| Disbursement | MYR: 10-50000 |
Collection API
Collection Application
Description:
- Create a collection order
URL:
MYR: /myr/collect/apply
Note: appId needs to use MYR corresponding, user payment success will increase MYR balance
USD: /usd/collect/apply
Note: appId needs to use USD corresponding, user payment success will increase USD balance
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),used for risk control purposesfor the risk control system and 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 (present when status=2) (local currency time), format: yyyy-MM-dd HH:mm:ss |
| errorMsg | String | Failure reason (present when status=3) |
| sign | String | Signature |
Payment Methods
| Currency | Payment Type (payType) | Payment Code (inBankCode) | Limit | Status | Description |
| MYR | QR | QR | 1-3000 | Available | DuitNow QR Code |
| MYR | EWALLET | TNG | 1-3000 | Available | Touch N Go |
| MYR | EWALLET | GRAB | 1-3000 | Available | GrabPay |
| MYR | EWALLET | BOOST | 1-3000 | Available | Boost |
| MYR | EWALLET | SHOPEE | 1-3000 | Available | ShopeePay |
| MYR | EWALLET | MCash | 1-3000 | Available | MCash |
| MYR | BANK_TRANSFER | FPX_MYR | 1-3000 | Available | FPX Bank Transfer |
| USD | BANK_TRANSFER | TNG_USD | 0.99-499.99 | Available | Touch N Go |
| USD | BANK_TRANSFER | BOOST_USD | 0.99-499.99 | Available | Boost |
| USD | BANK_TRANSFER | FPX_USD | 0.99-499.99 | Available | FPX Bank Transfer |
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
| Currency | Payment Type (accountType) | Payment Code (bankCode) | Limit | Status | Description |
| MYR | EWALLET | TNG | 10-50000 | Available | Touch 'n Go eWallet |
| MYR | EWALLET | BIGPAY | 10-50000 | Available | BigPay |
| MYR | BANK_ACCOUNT | BIMB | 10-50000 | Available | Bank Islam |
| MYR | BANK_ACCOUNT | CIMB | 10-50000 | Available | CIMB Bank |
| MYR | BANK_ACCOUNT | UOB | 10-50000 | Available | United Oversea Bank |
| MYR | BANK_ACCOUNT | MBB | 10-50000 | Available | Maybank |
| MYR | BANK_ACCOUNT | HSBC | 10-50000 | Available | HSBC Bank |
| MYR | BANK_ACCOUNT | RHB | 10-50000 | Available | RHB Bank |
| MYR | BANK_ACCOUNT | OCBC | 10-50000 | Available | OCBC Bank |
| MYR | BANK_ACCOUNT | PBB | 10-50000 | Available | Public Bank |
| MYR | BANK_ACCOUNT | SCB | 10-50000 | Available | Standard Chartered |
| MYR | BANK_ACCOUNT | AMB | 10-50000 | Available | AmBank |
| MYR | BANK_ACCOUNT | BKRM | 10-50000 | Available | Bank Kerjasama Rakyat |
| MYR | BANK_ACCOUNT | BSN | 10-50000 | Available | Bank Simpanan Nasional |
| MYR | BANK_ACCOUNT | AFB | 10-50000 | Available | Affin Bank |
| MYR | BANK_ACCOUNT | HLB | 10-50000 | Available | Hong Leong Bank |
| MYR | BANK_ACCOUNT | ALB | 10-50000 | Available | Alliance Bank |