Skip to main content
Every time a customer transfers funds to a Virtual Account number, Singapay creates a VA Transaction record. This API lets you list, filter, and inspect those records for reconciliation, settlement tracking, and customer support.

Per-payment records

Every bank transfer to a VA creates its own transaction entry with status, amount, and timing.

Full fee breakdown

Each record shows vendor fee, platform margin, and net amount received — ready for accounting.

Query by VA number

Retrieve all transactions for a specific VA number directly, without filtering by account.

Relationship with Virtual Account

A Virtual Account is the parent — the unique payment instrument with a VA number. Every time a customer pays into it, a VA Transaction child record is created.
Example: VA 8890-1234-5678 (Permanent VA for Customer A)
TransactionAmountDate
#1IDR 500,000Jan 1
#2IDR 750,000Jan 15
#3IDR 300,000Feb 1
One Virtual Account → multiple independent transaction records over time.

Transaction lifecycle

1

Payment received

Customer transfers funds to the VA number via ATM, mobile banking, or internet banking. The bank sends a payment notification to Singapay.
2

Transaction created

A VA Transaction record is created immediately with status unpaid.
3

Processing

Singapay validates the payment amount, checks for duplicates, and verifies all payment details.
4

Reconciliation

The transaction is reconciled by the finance system. Status updates to paid.
5

Settlement

Funds are settled to your account (bank or Singapay Balance) based on your configured settlement method.

Transaction status

StatusDescription
unpaidPayment notification received, pending validation.
paidPayment validated and reconciled by Singapay.
settledFunds transferred to your account.

Important notes

Beyond listing all transactions for an account, you can query transactions directly by VA number using the dedicated endpoint — useful when you have the VA number from a customer inquiry but not the internal ULID.
Monitor each transaction through its full lifecycle: unpaidpaidsettled. Use webhook notifications to get real-time updates instead of polling.
Every transaction record includes the vendor fee, platform margin, and net amount received — broken down clearly for accounting and reconciliation purposes.
Configure webhooks to receive real-time va-transaction events the moment a payment is confirmed — no need to poll the API. See the Webhook documentation for setup details.
Transaction records are retained for 1 year. Data older than 1 year is archived and may not be accessible via the API.

Available endpoints

List VA Transactions

Paginated list of all VA transactions for an account with full filter support.

Get VA Transaction Detail

Retrieve a single transaction by its business transaction_id.

List by VA Number

All transactions for a specific VA number, bypassing account-level filtering.
All endpoints require authentication. See Authentication.