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)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
Important notes
Query by VA number
Query by VA number
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.
Status tracking
Status tracking
Monitor each transaction through its full lifecycle:
unpaid → paid → settled. Use webhook notifications to get real-time updates instead of polling.Fee breakdown per transaction
Fee breakdown per transaction
Every transaction record includes the vendor fee, platform margin, and net amount received — broken down clearly for accounting and reconciliation purposes.
Webhook notifications
Webhook notifications
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.Filtering and search
Filtering and search
Query transactions by
transaction_id, va_number, status, amount range, settlement status, or timestamp ranges (post_timestamp, processed_timestamp, settle_at). Default sort is newest first.Data retention
Data retention
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.
