> ## Documentation Index
> Fetch the complete documentation index at: https://doc.haipay.net/llms.txt
> Use this file to discover all available pages before exploring further.

# Malaysia Payment Integration

> Malaysia Payment Integration covering Collection API, Collection Application, Collection Query, Disbursement API, Disbursement Application and Disbursement Query.

> [!WARNING]
>
> **Before reading this API documentation, please make sure to review [**API Description Guide**](https://doc.haipay.net/en/history/V20260801/get-started/api-conventions.md)**

### **Transaction Limits**

| Transaction Type | Limit |
| :- | :- |
| Collection | USD: 0.99-499.99, MYR: 1-3000 |
| Disbursement | MYR: 10-50000 |

> **Amount Decimal Places:** MYR — 2 decimal places | USD — 2 decimal places

## **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: John Doe |
| phone | Yes | String | Valid phone number (format reference: [Phone Number Format](https://doc.haipay.net/en/history/V20260801/resources/faq.md#en_faq_phone-number-format)) |
| email | 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](#inBankCode) |
| callBackUrl | Yes | String | Redirect URL after successful payment |
| callBackFailUrl | Yes | String | Redirect URL after failed payment |
| cancelUrl | No | String | If provided, the payment page displays a Back button that redirects the user to this URL when clicked. |
| 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 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 | Maintenance | 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](#bankCode) |
| 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](https://doc.haipay.net/en/history/V20260801/resources/faq.md#en_faq_phone-number-format)) |
| email | 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 | EWALLET | FINEXUS | 10-50000 | Available | FINEXUS |
| MYR | EWALLET | BOOST | 10-50000 | Available | BOOST |
| MYR | EWALLET | SHOPEE | 10-50000 | Available | SHOPEE |
| MYR | EWALLET | GXB | 10-50000 | Available | GXB |
| MYR | EWALLET | MASB | 10-50000 | Available | MASB |
| 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 |

## Related Topics

* [Common API](https://doc.haipay.net/docs/en/api/version2/CommonApi.md)
* [HaiPay API Description and Common Rules](https://doc.haipay.net/en/history/V20260801/get-started/api-conventions.md)
* [Singapore Payment API](https://doc.haipay.net/en/history/V20260801/payments/local/singapore.md)
* [Malaysia — Collection Application (POST /myr/collect/apply)](https://doc.haipay.net/en/history/V20260801/api-reference/myr/collect-apply.md)
* [Malaysia — Collection Query (POST /myr/collect/query)](https://doc.haipay.net/en/history/V20260801/api-reference/myr/api/collectQuery.md)
* [Malaysia — Disbursement Application (POST /myr/pay/apply)](https://doc.haipay.net/en/history/V20260801/api-reference/myr/api/payApply.md)
* [Malaysia — Disbursement Query (POST /myr/pay/query)](https://doc.haipay.net/en/history/V20260801/api-reference/myr/api/payQuery.md)
* [Handle Asynchronous Notifications and Verify Signatures](https://doc.haipay.net/en/history/V20260801/operations/callback.md)
* [Test Order Status Changes and Notifications End to End](https://doc.haipay.net/en/history/V20260801/testing/end-to-end.md)
* [Look Up Collection Payment Types and Codes (payType)](https://doc.haipay.net/en/history/V20260801/resources/cashin-code-list.md)
* [Look Up Disbursement Account Types and Bank Codes](https://doc.haipay.net/en/history/V20260801/resources/cashout-code-list.md)
* [HaiPay local payment methods product page](https://www.haipay.net/products/local-payment)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.