API PAY-OUT TRANSACTION
Request
The Pay-Out API enables merchants to initiate disbursement transactions to various recipients including employees, customers, vendors, and partners. This API supports multiple payment methods for secure and efficient money transfers in the Vietnam market.
Request Path:
sandbox:
https://sandbox-gateway.smilepayz.com/v2.0/disbursement/pay-out
production:https://gateway.smilepayz.com/v2.0/disbursement/pay-out
Header Parameters
| Field | Required | Type | Description |
|---|---|---|---|
| Content-Type | M | String | HTTP content type specification Fixed value: application/json Required for proper request parsing |
| X-TIMESTAMP | M | String | ISO 8601 datetime format with timezone offset Format: yyyy-MM-ddTHH:mm:ss±HH:mm Example: 2020-12-17T10:55:00+07:00 Note: Must be current server time within ±5 minutes |
| X-SIGNATURE | M | String | Digital signature for request authentication See Signature Generation |
| X-PARTNER-ID | M | String | Unique merchant identifier assigned by the platform Format: Alphanumeric string Used for merchant authentication and transaction routing Please enter merchantID |
Body Parameters
| Field | Required | Type | Description |
|---|---|---|---|
| orderNo | M | String(32) | Unique transaction identifier Format: Alphanumeric string (numbers and letters only) Length: 6-32 characters Used for transaction tracking and reference |
| purpose | M | String(64) | Transaction purpose or description Format: UTF-8 encoded string Maximum length: 64 characters Used for transaction identification and reporting |
| merchant | M | Object | Merchant information container Contains merchant identification and business details See Merchant Model |
| merchantId | M | String | Unique merchant identifier assigned by the platform Format: Alphanumeric string Used for merchant authentication and transaction routing |
| merchantName | O | String | Merchant business name or display name Format: UTF-8 encoded string Used for merchant identification and reporting |
| subMerchantId | O | String | Sub-merchant identifier for multi-level merchant structures Format: Alphanumeric string Used for sub-merchant identification and reporting |
| subMerchantName | O | String | Sub-merchant business name or display name Format: UTF-8 encoded string Used for sub-merchant identification and reporting |
| money | M | Object | Transaction amount details with currency specification Contains transaction amount and currency information See Money Model |
| currency | M | String | ISO 4217 currency code specification Fixed value: VND (Vietnam dong) Determines payment processing rules and settlement currency |
| amount | M | Number | Transaction amount in smallest currency unit Format: Integer value Example: 20000 represents VND 20000 Range: 50000-5000000 For reference only; actual limits may vary by downstream channel. |
| paymentMethod | M | String(6) | Payment method used for transaction processing Format: Predefined payment method codes Examples: ABB Indicates the actual payment channel used See Payment Method List |
| cashAccount | M | String(32) | Vietnam bank account number or digital wallet identifier Format: Alphanumeric string Maximum length: 32 characters Used for fund transfer destination |
| receiver | M | Object | Recipient information container Contains beneficiary identification and contact details See Receiver Model |
| name | M | String | Recipient's full name Format: UTF-8 encoded string Example: "Maria Santos Cruz" Used for beneficiary identification and transaction records |
| phone | M | String | Recipient's phone number Format: UTF-8 encoded string Example: "84256312525" |
| M | String | Recipient's email Format: UTF-8 encoded string Example: "[email protected]" | |
| callbackUrl | O | String(256) | Webhook notification URL for transaction status updates Format: Valid HTTP/HTTPS URL Maximum length: 256 characters Used for real-time transaction status notifications |
Important Notes
1. Transaction ID:
orderNomust be unique across all transactions for the merchant
2. Amount Format: Amount should be provided in the smallest currency unit (VND). Range and limits are for reference only and may vary by downstream channel.
3. Timezone: All timestamps use Vietnam timezone (UTC+7)
4. Bank Account: Must be a valid Vietnam bank account number or digital wallet identifier
5. Payment Methods: Supports all major Vietnam banks and digital wallets
6. Recipient Information: Full name is required for transaction processing
Example Body – Disbursement Request:
Note: Field values in the following examples are for reference only; actual values may differ.
Content-type: application/json
X-TIMESTAMP: 2020-12-17T10:55:00+07:00
X-SIGNATURE: 7MHd9v5/m9JeqmDZVwWBZUZ5J5...7120QnFEny7Qm7uQR1G0TWCh10fsU6nVxiRoeoQ==
X-PARTNER-ID: 20001
{
"cashAccount": "09171234567",
"receiver": {
"name": "Maria Santos Cruz",
"phone": "845965823652",
"email": "[email protected]"
},
"merchant": {
"merchantId": "20001"
},
"money": {
"amount": 50000,
"currency": "VND"
},
"orderNo": "2000102900000000000001",
"paymentMethod": "ABB",
"purpose": "Salary payment for March 2024"
}
Response
HTTP Response
| Field | Required | Type | Description |
|---|---|---|---|
| Content-Type | M | String | HTTP response content type specification Fixed value: application/json Indicates JSON response format |
| X-TIMESTAMP | M | String | ISO 8601 datetime format with timezone offset Format: yyyy-MM-ddTHH:mm:ss±HH:mm Example: 2020-12-17T10:55:00+07:00 |
Body Parameters
| Field | Required | Type | Description |
|---|---|---|---|
| code | M | String | API response status code indicating operation result Format: Two-digit string Success: "00", Error: Other codes Used for programmatic response handling |
| message | M | String | Human-readable response status description Format: UTF-8 encoded string Provides detailed information about the operation result Localized based on request language |
| orderNo | M | String | Unique transaction identifier provided in the request Format: Alphanumeric string Same as the orderNo provided in the request Used for transaction tracking and reference |
| tradeNo | O | String | Internal transaction reference number for system tracking Format: System-generated alphanumeric string Used for internal transaction management and support |
| merchant | M | Object | Merchant information container Contains merchant identification and business details See Merchant Model |
| merchantId | M | String | Unique merchant identifier assigned by the platform Format: Alphanumeric string Used for merchant authentication and transaction routing |
| merchantName | O | String | Merchant business name or display name Format: UTF-8 encoded string Used for merchant identification and reporting |
| subMerchantId | O | String | Sub-merchant identifier for multi-level merchant structures Format: Alphanumeric string Used for sub-merchant identification and reporting |
| subMerchantName | O | String | Sub-merchant business name or display name Format: UTF-8 encoded string Used for sub-merchant identification and reporting |
| money | M | Object | Transaction amount details with currency specification Contains confirmed transaction amount and currency See Money Model |
| currency | M | String | ISO 4217 currency code specification Fixed value: VND (Vietnam dong) Determines payment processing rules and settlement currency |
| amount | M | Number | Transaction amount in smallest currency unit Format: Integer value Example: 20000 represents VND 20000 Range: 50000-5000000 For reference only; actual limits may vary by downstream channel. |
| disbursementTime | M | String | Transaction completion timestamp Format: yyyy-MM-ddTHH:mm:ss Example: 2024-12-17T10:55:00 Used for transaction timing and audit |
| channel | M | Object | Payment channel information container Contains payment method and processing details See Channel Model |
| status | O | String | Current transaction processing status Format: Predefined status codes Examples: PROCESSING, SUCCESS, FAILED, CANCELLED Indicates the current state of the transaction See Status Model |
Note: Response body sample below is for reference only; actual field values may differ.
Content-type: application/json
X-TIMESTAMP: 2020-12-17T10:55:00+07:00
{
"code": "00",
"message": "successful",
"orderNo": "2000102900000000000001",
"tradeNo": "1822000109e998347483949",
"merchant": {
"merchantId": "20001",
"merchantName": "test",
"accountNo": "2000124234782342"
},
"money": {
"currency": "VND",
"amount": 20000
},
"disbursementTime": "2024-12-17T10:55:00",
"channel": {
"paymentMethod": "ABB",
"cashAccount": "09171234567",
"accountName": "Maria Santos Cruz"
},
"status": "PROCESSING"
}
Notification
HTTP Request
| Field | Required | Type | Description |
|---|---|---|---|
| Content-Type | M | String | HTTP request content type specification Fixed value: application/json Indicates JSON request format |
| X-TIMESTAMP | M | String | ISO 8601 datetime format with timezone offset Format: yyyy-MM-ddTHH:mm:ss±HH:mm Example: 2020-12-17T10:55:00+07:00 |
| X-SIGNATURE | M | String | Digital signature for notification authentication See Callback Signature Verification |
Body Parameters
| Field | Required | Type | Description |
|---|---|---|---|
| orderNo | M | String | Merchant transaction identifier Format: Alphanumeric string Same as the orderNo provided in the original request Used for transaction identification and verification |
| tradeNo | M | String | Internal transaction reference number for system tracking Format: System-generated alphanumeric string Used for internal transaction management and support |
| merchantId | M | String | Unique merchant identifier assigned by the platform Format: Alphanumeric string Used for merchant authentication and transaction routing |
| merchantName | M | String | Merchant business name or display name Format: UTF-8 encoded string Used for merchant identification and reporting |
| subMerchantId | O | String | Sub-merchant identifier for multi-level merchant structures Format: Alphanumeric string Used for sub-merchant identification and reporting |
| subMerchantName | O | String | Sub-merchant business name or display name Format: UTF-8 encoded string Used for sub-merchant identification and reporting |
| paymentMethod | M | String | Payment method used for transaction processing Format: Predefined payment method codes Examples: ABB Indicates the actual payment channel used |
| transactionTime | M | String | Transaction completion timestamp Format: yyyy-MM-ddTHH:mm:ss Example: 2024-12-17T10:55:00 Used for transaction timing and audit |
| money | M | Object | Transaction amount details with currency specification Contains confirmed transaction amount and currency See Money Model |
| currency | M | String | ISO 4217 currency code specification Fixed value: VND (Vietnam dong) Determines payment processing rules and settlement currency |
| amount | M | Number | Transaction amount in smallest currency unit Format: Integer value Example: 50000 represents VND 50000 Range: 50000-5000000 For reference only; actual limits may vary by downstream channel. |
| status | M | String | Final transaction processing status Format: Predefined status codes Examples: SUCCESS, FAILED, CANCELLED Indicates the final state of the transaction See Status Model |
Return
Important Response
Notification Response: Please return only the string
SUCCESSto acknowledge receipt of the notification
Note: The notification body sample below is for reference only; actual field values may differ.
{
"orderNo": "2000102900000000000001",
"tradeNo": "1522000109e998347483949",
"merchantId": "20001",
"merchantName": "test",
"subMerchantId": "",
"subMerchantName": "",
"paymentMethod": "ABB",
"transactionTime": "2024-12-17T10:55:00",
"money": {
"currency": "VND",
"amount": 20000
},
"status": "SUCCESS"
}
SUCCESS
