Deposit Request
API Overview
The Deposit Request API is used to create deposit orders, supporting multiple deposit methods and channels. Merchants can submit deposit requests through this API to obtain deposit links or custom checkout information.
API Information
Request URL: /pay
Request Method: POST
Content-Type: application/json
Request Parameters
Basic Parameters
| Parameter | Required | Type | Description |
|---|---|---|---|
| uid | Yes | string | Merchant account |
| currency | Yes | string | Currency |
| bank_id | No | string | Bank ID, parameter values see backend "Bank List" |
| orderid | Yes | string | Order number generated by merchant platform, unique |
| notify_url | Yes | string | Asynchronous notification URL |
| return_url | Yes | string | Synchronous return URL |
| amount | Yes | string | Amount submitted by merchant, accepts two decimal places (for Indian channels, only integers are accepted) |
| userip | Yes | string | IP address of merchant member |
| timestamp | Yes | string | GMT timestamp |
| user_name | No | string | Real name |
| sign | Yes | string | 32-bit uppercase MD5 signature value |
| pay_code | Yes | string | Channel code |
| custom | No | string | Custom parameter |
| path_type | No | string | Whether to use custom checkout, if required, fill this field with 2 (if not needed, can omit this parameter) |
Dynamic Field Parameters
Different recharge channels (pay_code) may require different mandatory fields. To ensure you submit the correct parameters, please call the /channel/formRule API to get the field requirements for that channel before creating a recharge order.
Get Field Rules Example:
{
"uid": "test1",
"currency": "VND",
"pay_code": "812",
"timestamp": 1758210270,
"userip": "127.0.0.1",
"sign": "200AF28BB3E4C4F0E93EBD48DB1FF623"
}Field Rules Response Example:
{
"status": 10000,
"result": {
"data": {
"pay_code": "812",
"name": "Bank Transfer",
"description": "Recharge through bank transfer",
"form_fields": [
{
"name": "bank_id",
"label": "Bank ID",
"type": "select",
"required": true,
"max_length": 100,
"placeholder": "Please select the corresponding Bank ID",
"options": [
{
"bankID": 6763,
"name": "AB Bank"
}
],
"validation_rules": ["required", "string", "max:100"]
}
]
}
}
}Integration Recommendations:
- After the user selects a recharge channel, call
/channel/formRuleto get the field requirements for that channel - Dynamically generate the recharge form based on the returned
form_fields - Ensure all required fields (
required: true) are included when submitting the recharge request - For fields with
type: "select", use the values fromoptionsas choices
Response Parameters
Basic Response Structure
| Parameter | Field | Type | Description |
|---|---|---|---|
| Status Code | status | int | More error codes see status code table |
| Response Data | result | object | Returns JSON string when status code is "Success" |
| Data Signature | sign | string | 32-bit uppercase MD5 signature value |
result Object Description
| Parameter | Field | Type | Description |
|---|---|---|---|
| Transaction ID | transactionid | int | Transaction ID generated by payment platform, unique |
| Checkout Link | payurl | string | Direct link to open for recharge |
| Amount | points | float | Transaction amount |
| Custom Checkout | result | array | Custom checkout required parameters |
result Custom Checkout Parameter Description
| Parameter | Field | Type | Description |
|---|---|---|---|
| Bank Name | bank_name | string | Receiving card bank name |
| Bank Branch Name | bank_branch | string | Receiving card branch name |
| Account Holder Name | bank_owner_name | string | Receiving card owner |
| Account Number | bank_account_no | string | Receiving card bank account number |
| Reference Code | mark | string | Transaction reference |
Response Examples
Standard Checkout Response Example
{
"status": 10000,
"result": {
"transactionid": "123",
"payurl": "https://www.example.com/deposit/123",
"points": "50001",
"result": []
},
"sign": "xxx"
}Custom Checkout Response Example
{
"status": 10000,
"result": {
"transactionid": "123",
"payurl": "https://www.example.com/recharge/123",
"points": "50001",
"result": {
"bank_name": "Industrial and Commercial Bank of China",
"bank_branch": "Beijing Branch",
"bank_owner_name": "Zhang San",
"bank_account_no": "6222021234567890123",
"mark": "123456"
}
},
"sign": "xxx"
}Error Handling
When a request fails, the system will return the corresponding error status code. Common error codes include:
10000: Success10001: Parameter Error10002: Signature Verification Failed10003: Duplicate Order Number10004: Amount Format Error10005: Bank ID Does Not Exist
Signature Algorithm
Signature generation rules:
- Sort all request parameters by parameter name ASCII code from small to large
- Concatenate into string using URL key-value pair format
- Add merchant secret key at the end of the string
- Perform MD5 encryption on the concatenated string
- Convert the encryption result to uppercase
Integration Notes
- Security: Always use HTTPS for API requests
- Timestamp: Ensure server time synchronization to avoid timestamp validation failures
- Order ID: Merchant order IDs must be unique to avoid duplicate submissions
- Amount: Pay attention to decimal places based on different channels
- Signature: Verify response signatures to ensure data integrity
Support
For technical support and questions, please contact our development team or refer to the complete API documentation.
Updated 4 months ago