
E-Wallet (Money In)
Create an e-wallet checkout order to receive payment from a customer via ShopeePay or Dana.
| Method | Path | Format | Authentication |
|---|---|---|---|
| POST | /api/v2.0/ewallet-native/create-order | json | OAuth 2.0 with Access Token |
| Field | Value | Type | Mandatory | Length | Description | Example |
|---|---|---|---|---|---|---|
| X-PARTNER-ID | api_key | Alphanumeric | Mandatory | API key obtained from the merchant dashboard. | b3ed7d4b-a96c-6c08-b3c7-12c3124242d9 | |
| Accept | application/json | Alphabetic | Mandatory | Specifies JSON as the expected response format. | application/json | |
| Content-Type | application/json | Alphabetic | Mandatory | Specifies JSON as the request body format. | application/json | |
| Authorization | Bearer {bearerToken} | Alphanumeric | Mandatory | Bearer token obtained from the get access token endpoint. | Bearer eyJ0eXAiOiJKV1{…} |
| Parameter | Type | Mandatory | Description | Example |
|---|---|---|---|---|
| account_id | String | Required | Your Account ID | 01K5G4FZZ18DMK0M5QTR8Y9QY9 |
| amount | Numeric | Required | Payment amount in IDR. Min/max limits are based on your merchant agreement. | 50000 |
| customer_email | String | Optional | Customer email address (max 255 characters). | john@example.com |
| customer_name | String | Optional | Customer name for reference (max 255 characters). | John Doe |
| customer_phone | String | Optional | Customer phone number (max 20 characters). | 081234567890 |
| ewallet_vendor | String | Required | E-wallet vendor code. Accepted values: EWALLET_SHOPEEPAY, EWALLET_DANA | EWALLET_SHOPEEPAY |
| expired_at | String | Optional | Expiration datetime for the checkout (ISO 8601). Must be in the future. Defaults to 30 minutes from creation. | 2026-02-10T12:00:00+07:00 |
| merchant_redirect_url | String | Optional | Custom URL to redirect the customer after payment completion. Must be a valid URL (max 2048 characters). If not provided, the default SingaPay redirect page is used. | https://yoursite.com/payment/callback |
{
"account_id": "01K5G4FZZ18DMK0M5QTR8Y9QY9",
"amount": 50000,
"ewallet_vendor": "EWALLET_SHOPEEPAY",
"customer_name": "John Doe",
"customer_email": "john@example.com",
"customer_phone": "081234567890",
"merchant_redirect_url": "https://yoursite.com/payment/callback"
}
cURL Example:
curl -X POST "https://api.singapay.id/api/v1.0/ewallet-native/create-order" \
-H "X-PARTNER-ID: b3ed7d4b-a96c-6c08-b3c7-12c3124242d9" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9..." \
-d '{
"account_id": "01K5G4FZZ18DMK0M5QTR8Y9QY9",
"amount": 50000,
"ewallet_vendor": "EWALLET_SHOPEEPAY",
"customer_name": "John Doe",
"customer_email": "john@example.com",
"customer_phone": "081234567890",
"merchant_redirect_url": "https://yoursite.com/payment/callback"
}'
{
"account_id": "01K5G4FZZ18DMK0M5QTR8Y9QY9",
"amount": 100000,
"ewallet_vendor": "EWALLET_DANA",
"expired_at": "2026-02-10T15:00:00+07:00",
"customer_name": "Jane Smith",
"customer_phone": "089876543210",
"merchant_redirect_url": "https://yoursite.com/payment/callback"
}
| Field | Type | Mandatory | Description | Example |
|---|---|---|---|---|
| response_code | String | Mandatory | Response code (see Response Code appendix) | SP117 |
| response_message | String | Mandatory | Response description (see Response Code appendix). | “Beneficiary Account Not Found” |
| data | Object | Conditional | Transaction data (present on success) | - |
| > id | Integer | Mandatory | Unique transaction ID | 42 |
| > account_id | String | Mandatory | Account ID | 01K5G4FZZ18DMK0M5QTR8Y9QY9 |
| > reff_no | String | Mandatory | Unique reference number for this transaction | EWT01JKABCDEF123456789 |
| > status | String | Mandatory | Transaction status | open |
| > status_computed | String | Mandatory | Computed status (auto-detects expiration) | open |
| > is_expired | Boolean | Mandatory | Whether the checkout URL has expired | false |
| > ewallet_vendor | String | Mandatory | E-wallet vendor code | EWALLET_SHOPEEPAY |
| > amount | Decimal | Mandatory | Payment amount | 50000.00 |
| > total_amount | Decimal | Mandatory | Total transaction amount | 50000.00 |
| > merchant_fee | Decimal/Null | Optional | Total fee charged to the merchant | 1000.00 |
| > net_amount | Decimal/Null | Optional | Net amount after fees | 49000.00 |
| > checkout_url | String/Null | Optional | Web redirect URL for payment | https://wsa.wallet.airpay.co.id/… |
| > checkout_url_app | String/Null | Optional | Deep link URL to open the e-wallet app directly | shopeeid://… |
| > merchant_redirect_url | String/Null | Optional | Custom redirect URL provided at checkout creation | https://yoursite.com/payment/callback |
| > additional_info | Object/Null | Optional | Additional vendor-specific data | - |
| > customer_name | String/Null | Optional | Customer name | John Doe |
| > customer_email | String/Null | Optional | Customer email | john@example.com |
| > customer_phone | String/Null | Optional | Customer phone | 081234567890 |
| > balance_after | Decimal/Null | Optional | Account balance after settlement | 1500000.0 |
| > processed_timestamp | String/Null | Optional | Transaction processed time (ISO 8601) | 2026-02-09T13:30:00+00:00 |
| > expired_at | String/Null | Optional | Checkout expiration time (ISO 8601) | 2026-02-09T13:30:00+00:00 |
| > created_at | String | Mandatory | Transaction creation time (ISO 8601) | 2026-02-09T13:00:00+00:00 |
| > updated_at | String | Mandatory | Last update time (ISO 8601) | 2026-02-09T13:00:00+00:00 |
| > events_count | Integer | Mandatory | Number of events logged for this transaction | 1 |
Success: Here’s an example of a successful response.
{
"response_code": "SP117",
"response_message": "Beneficiary Account Not Found",
"data": {
"id": 42,
"account_id": "01K5G4FZZ18DMK0M5QTR8Y9QY9",
"reff_no": "EWT01JKABCDEF123456789",
"status": "open",
"status_computed": "open",
"is_expired": false,
"ewallet_vendor": "EWALLET_SHOPEEPAY",
"amount": 50000.0,
"total_amount": 50000.0,
"merchant_fee": 1000.0,
"net_amount": 49000.0,
"checkout_url": "https://wsa.wallet.airpay.co.id/universal-link/wallet/pay?deep_and_deferred=1&txn_token=abc123",
"checkout_url_app": "shopeeid://main?type=transfer&token=abc123",
"merchant_redirect_url": "https://yoursite.com/payment/callback",
"additional_info": {
"web_redirect_url": "https://wsa.wallet.airpay.co.id/universal-link/wallet/pay?deep_and_deferred=1&txn_token=abc123",
"app_redirect_url": "shopeeid://main?type=transfer&token=abc123",
"shopeepay_reference_no": "SP20260209ABC123",
"response_code": "2005400"
},
"customer_name": "John Doe",
"customer_email": "john@example.com",
"customer_phone": "081234567890",
"balance_after": null,
"processed_timestamp": null,
"expired_at": "2026-02-09T13:30:00+00:00",
"created_at": "2026-02-09T13:00:00+00:00",
"updated_at": "2026-02-09T13:00:00+00:00",
"deleted_at": null,
"events_count": 1
}
}
Error: Here’s an example of a validation error response.
{
"response_code": "SP117",
"response_message": "Beneficiary Account Not Found",
"data": {
"ewallet_code": "EWALLET_SHOPEEPAY",
"customer_number": "081234567890"
}
}
checkout_url (web) or checkout_url_app (app deep link) so they can authorize and complete the payment.expired_at is not provided, the checkout expires in 30 minutes.EWALLET_SHOPEEPAY and EWALLET_DANA.net_amount is what you receive after fees.open. Use Inquiry Status to check for payment completion, or wait for a webhook notification.merchant_redirect_url, the customer will be redirected to your specified URL after completing or canceling the payment in the e-wallet app. If not provided, the customer is redirected to the default SingaPay payment status page.