SePay API v2 is a REST API that lets your server proactively query bank transactions and manage virtual-account orders from SePay. Use it for periodic reconciliation, displaying transaction history to customers, internal admin dashboards, or automating order creation in your workflow.
If you need to know the moment a new transaction arrives (real-time), use webhooks instead of polling. API and webhooks complement each other: webhooks handle real-time, the API handles lookup and reconciliation.
What you can do
List and look up transaction details; filter by date, account, amount.See Transactions API →
List every bank account linked to your SePay company.See Bank Accounts API →
Look up every VA across supported banks.See Virtual Accounts API →
Create, cancel, attach/cancel VAs on an order. Supports BIDV (enterprise), Sacombank (personal/household business) and Vietcombank (enterprise/household business).See Order VAs API →
What's new in v2
- Unified JSON envelope response, UUID identifiers instead of numeric IDs
- Standardized pagination (
page/per_page), integer currency fields - Proper HTTP status codes (401, 404, 422, 429)
- Virtual Accounts API (new)
Detailed comparison: Legacy API vs API v2 Comparison.
API environments
SePay API v2 supports two environments with identical request/response formats; only the base URL, token, and data scope differ:
- Production:
https://userapi.sepay.vn/v2, real bank-transaction data. - Sandbox:
https://userapi-sandbox.sepay.vn/v2, simulated data fully isolated from Live, no real bank needed.
How to get a Sandbox token, call the API, and switch to Production is covered in SePay API v2 Sandbox. The Order VAs API works on both environments.
Requirements
- A SePay account with at least one linked bank account
- An API Token: generated from the Dashboard
If you're a business with an existing user platform and want to integrate bank linking and balance change notifications for each end user, refer to the SePay Bank Hub solution.
Next steps
- Create API Token: get a Bearer token for API calls
- Authentication & Rate Limiting: how to send the token, the 3 req/sec limit, and how to handle 401/429 errors
- Quick Start: make your first API call in 5 minutes