> ## 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

***

## title: Malaysia

<Warning>
  **Before reading this API documentation, please make sure to review [**API Description Guide**](/docs/en/guide/api_description_guide)**
</Warning>

### **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](/docs/en/guide/frequently_asked_question#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**<a id="inBankCode" />

| 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](/docs/en/guide/frequently_asked_question#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**<a id="bankCode" />

| 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](/docs/en/api/version2/CommonApi)
* [HaiPay API Description and Common Rules](/docs/en/guide/api_description_guide)
* [Singapore Payment API](/docs/en/api/version2/Singapore)
