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

# Singapore Payment Integration

> Singapore Payment Integration covering Limits, Collection API, Collection Request.

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

## **Limits**

| Transaction Type | Limits |
| :- | - |
| Collection | USD: 1-3000, SGD: 1-3000 |

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

## **Collection API**

### **Collection Request**

**Description:**

* Create a collection order

**URL:**

SGD: `/sgd/collect/apply` Note: appId SGD, amount SGD, settlement SGD

USD: `/usd/collect/apply` Note: appId USD, amount USD, settlement USD

HKD: `/hkd/collect/apply` Note: appId HKD, amount HKD, settlement HKD

**Parameters:**

| Parameter | Required | Type | Description |
| :- | :- | :- | :- |
| appId | Yes | Long | Business ID (retrieved from backend; must use the corresponding business ID based on 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: firstName + lastName separated by a space, e.g. `John Doe` |
| phone | Yes | String | Valid phone number (see [Phone Number Format](https://doc.haipay.net/en/resources/faq.md#en_faq_phone-number-format)) |
| email | Yes | String | Valid email address |
| amount | Yes | String | Transaction amount, up to 2 decimal places |
| 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 | No | String | Payment note |
| body | No | String | Additional description |
| partnerUserId | Yes | String | Unique user identifier (e.g., userId). Must be valid for risk control; otherwise transactions may be affected. Allowed format: numbers, 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 |
| payUrl | String | Payment URL |
| sign | String | Signature |

### **Collection Query**

**Description:**

* Query collection order

**URL:**

SGD: `/sgd/collect/query`

USD: `/usd/collect/query`

HKD: `/hkd/collect/query`

**Parameters:**

| Parameter | Required | Type | Description |
| :- | :- | :- | :- |
| appId | Yes | Long | Business ID (retrieved from backend; must use the corresponding business ID) |
| 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 |
| actualAmount | String | Received amount |
| fee | String | Fee |
| status | Integer | Status (0 Not started, 1 In progress, 2 Success \[final], 3 Failed \[final], -1 Exception pending confirmation) |
| payTime | String | Payment success time (available when status=2) (currency local time), format: yyyy-MM-dd HH:mm:ss |
| errorMsg | String | Failure reason (available when status=3) |
| sign | String | Signature |

### **Payment Methods**

| Currency | Payment Type (payType) | Payment Code (inBankCode) | Limit | Status | Description |
| :- | :- | :- | :- | :- | :- |
| SGD | QR | PAYNOW\_SGD | 1-3000 | Available | PayNow QR Code Payment |
| USD | QR | PAYNOW\_USD | 1-3000 | Available | PayNow QR Code Payment |

## Related Topics

* [Common API](https://doc.haipay.net/en/api-reference/overview.md#public-interfaces)
* [HaiPay API Description and Common Rules](https://doc.haipay.net/en/get-started/api-conventions.md)
* [Thailand Payment API](https://doc.haipay.net/en/payments/local/thailand.md)
* [Singapore — Collection Application (POST /sgd/collect/apply)](https://doc.haipay.net/en/api-reference/sgd/collect-apply.md)
* [Singapore — Collection Query (POST /sgd/collect/query)](https://doc.haipay.net/en/api-reference/sgd/collect-query.md)
* [Handle Asynchronous Notifications and Verify Signatures](https://doc.haipay.net/en/operations/callback.md)
* [Test Order Status Changes and Notifications End to End](https://doc.haipay.net/en/testing/end-to-end.md)
* [Look Up Collection Payment Types and Codes (payType)](https://doc.haipay.net/en/resources/cashin-code-list.md)
* [Look Up Disbursement Account Types and Bank Codes](https://doc.haipay.net/en/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.