Skip to main content
E-Wallet Native is a money-in payment method that allows your customers to pay directly using their e-wallet apps. When a checkout is created, the customer receives a redirect URL to authorize and complete the payment within their preferred e-wallet application.
Money In Operation: Funds are transferred from the customer’s e-wallet to your SingaPay Payment Gateway account. For top-ups to customer e-wallets (Money Out), please refer to the E-Wallet Top Up (Money Out) documentation.

E-Wallet Payment Flow

The process from creating a checkout to successfully confirming a payment:
1

Create Checkout

Merchant System sends a POST /ewallet-native/{account_id}/create-checkout request to the SingaPay API containing the bill amount, vendor, and customer information.
2

Receive Redirect URLs

SingaPay API responds by providing the checkout_url and checkout_url_app.
3

Redirect Customer

Merchant System redirects the customer using the web URL or deep link to their e-wallet app.
4

Authorize Payment

Customer authorizes and completes the payment within the E-Wallet Provider app.
5

Payment Notification

E-Wallet Provider sends a payment confirmation notification to the SingaPay API.
6

Process Payment

SingaPay API processes the payment internally, changing the transaction status from open to success.
7

Webhook Notification (Optional)

SingaPay API sends a webhook notification to the Merchant System to inform them that the payment has been received.
8

Verify Status

Merchant System can call GET /inquiry-status or /list to verify the latest payment status.

Supported E-Wallet Vendors

ShopeePay

EWALLET_SHOPEEPAY
Supports web redirect and app deep link.

Dana

EWALLET_DANA
Supports web redirect.

OVO

EWALLET_OVO
Supports push to pay.

Transaction Status Lifecycle

Every e-wallet transaction goes through the following status lifecycle:
StatusDescription
openCheckout has been created, waiting for the customer to authorize and complete the payment via the e-wallet app. Checkout URL is active.
successPayment completed successfully. Funds have been received from the customer.
expiredCheckout link has expired. Computed automatically when the expired_at timestamp has passed while the status is still open.
canceledTransaction was canceled before the payment was completed.
failedPayment attempt failed due to an error during processing.

Available endpoints

Create Checkout (Legacy)

Create a new e-wallet checkout order with a redirect URL for the customer

Create Checkout v2

Create a new e-wallet checkout order with a redirect URL for the customer

List E-Wallet

Retrieve a paginated list of all e-wallet transactions for an account, with filters available.

Show E-Wallet

Get detailed information about a specific e-wallet transaction.

Inquiry Status

Check and sync the latest payment status from the e-wallet vendor. This operation can trigger state changes.

Important Notes

By default, checkout URLs expire after 30 minutes. You can set a custom expiration using the expired_at parameter. The status_computed field automatically shows expired when an open transaction’s expired_at has passed, even if the raw status is still open.
The API returns two types of links:
  • checkout_url: Used for redirecting to a web browser.
  • checkout_url_app: A deep link to directly open the related e-wallet app (if supported by the vendor).
Each transaction details a vendor_fee, merchant_fee, and net_amount for transparent fee tracking. You can monitor reconciliation and settlement statuses via the has_recon and has_settle fields.
  • Only transactions with the status open can be deleted. Paid or settled transactions cannot be deleted.
  • Transaction history records from the last 1 year are available via the API. Older records are safely archived.