Balances and history for every account
Transactions sync from the bank into one place. Filter by date, see spending by month and refresh when you need the latest figures.
For teams & developers · Nam A Bank, SeABank, MSB
Send transfers from the console or the API, give each member the right permissions and track every transfer in one place. Look up the recipient’s name with the bank before you send.
7-day free trial · no payment required
Ref FT26257ABCRecipients can be at other banks in Vietnam, via NAPAS. More source banks will follow.


Features
One workspace for the whole team: balances and history for every account, the recipient’s name before you send, alerts in your team chat and an audit log.
Transactions sync from the bank into one place. Filter by date, see spending by month and refresh when you need the latest figures.
VietRelay asks the bank for the account holder’s name so you can compare it and avoid paying the wrong person.
New transactions, succeeded or failed transfers and stopped bank connections are posted to your team’s chat.
Business and security actions are written to a log that cannot be edited or deleted.
Invite colleagues and give each one a role that fits their job. Only owners and bank managers can create transfers.
How it works
Link a Nam A Bank, SeABank or MSB account and complete the bank’s verification steps in the console.
Choose the bank and enter the account number; VietRelay returns the holder’s name as the bank has it, so you can compare.
Send from the console or the API. A transfer ends as Succeeded or Failed; one with an unclear outcome is reconciled with the bank and never sent again automatically.
Security
To work with your bank on your behalf, VietRelay has to store your bank sign-in details. This is how they are protected.
AES-256-GCM
Bank passwords, PINs, tokens and device keys are encrypted, each secret with its own data key. Only the bank-connection process can decrypt them.
TOTP · optional
With TOTP on, a code is needed to sign in, to revoke an API client or rotate its secret and to delete the workspace. When the platform requires it (on by default), every transfer sent from the console needs a fresh code too, so TOTP must be on to send from the console. Transfers sent by an API client need no code.
Admins manage connections and members but cannot send money; viewers only read. Ownership cannot be transferred.
The database blocks every edit or delete of the business and security log. Owners review the business log in the console.
For technical teams
Get a token with OAuth client credentials, then call a JSON API. A transfer call waits for the bank’s result before it responds (up to 180 seconds); the transactions.updated and balance.updated webhooks report new transactions and balances.
# 1 · Look up the recipient’s name
POST /v1/beneficiary-inquiries
Authorization: Bearer {access_token}
{
"connection_id": "5f1c7a2e-8b4d-4c3a-9e61-0d2f7b9a4c18",
"bank_code": "970426",
"account_number": "0123456789"
}
# ← 200 (trimmed)
{ "state": "found", "verified_name": "NGUYEN MINH ANH" }
# 2 · Send the transfer with the verified name
POST /v1/payments
Authorization: Bearer {access_token}
Idempotency-Key: 0f8e2d6c-3a1b-4e59-b7c4-6d2a9e1f5b30
{
"connection_id": "5f1c7a2e-8b4d-4c3a-9e61-0d2f7b9a4c18",
"bank_code": "970426",
"account_number": "0123456789",
"amount_minor": "2450000",
"note": "Thanh toan don hang 1024",
"verified_name": "NGUYEN MINH ANH"
}
# ← 200 (trimmed)
{ "state": "succeeded", "provider_reference": "FT26257ABC" }
verified_name is optional in POST /v1/payments: look the name up before every transfer and send the verified_name you got back. Retrying from the same API client with the same Idempotency-Key within 30 days never creates a second transfer.
Pricing
Start with a 7-day free trial, no payment required. During the trial, a transfer above the trial allowance is declined rather than charged. Each plan’s price and allowance are shown in the console.
Start free trialEach monthly plan has a price, a limit on bank connections and usually a free transfer allowance measured in total amount per period. Transfers within the allowance cost nothing extra.
Only the excess is charged a processing fee at the plan’s percentage, rounded up to the next đồng. For example, with 1 million left in your allowance, a 2 million transfer is charged on 1 million only. The fee is collected only when the transfer succeeds.
On a plan with no free allowance, the percentage fee applies to every transfer.
Frequently asked questions
VietRelay has to store your bank password, PIN and device keys to work with the bank on your behalf. All of them are encrypted with AES-256-GCM, each secret with its own key, and only the bank-connection process can decrypt them. Some banks require a face check for transfers, so the selfie taken when you connect is stored too, encrypted. More in Security.
Not the bank’s OTP. When you connect, the bank’s own verification, such as Soft OTP, a PIN or a device key, is stored encrypted, so VietRelay completes the bank’s OTP step itself. You stay in control: only permitted roles can create transfers, and the console always looks up the recipient’s name before sending. When the platform requires it (on by default), each transfer sent from the console needs a fresh code from your authenticator app. Transfers sent by an API client don’t need this code.
The bank rejects the stored sign-in details and the connection stops. You get an alert in the console, and in Telegram or Discord if you have added a channel; revoke the old connection, then connect the account again in the console.
No. Your money stays in your bank account and the bank processes the transfer; VietRelay is software that helps you send transfers, look up recipients’ names and follow the results.
Yes. You can send transfers and follow transactions in the console; the API is there when you want to connect your own system.
So the money reaches the right person. VietRelay asks the bank for the account holder’s name so you can compare it before sending. The console always looks the name up before sending; with the API, call the lookup before every transfer.
It means the bank has not confirmed it yet. Don’t create a new transfer for the same money: VietRelay never resends it, but checks with the bank to update its status. If it still cannot be confirmed after 30 minutes, the transfer is marked Failed because its result could not be confirmed; check your account statement before sending again.
Get started
Create a workspace, start the 7-day trial in the console and connect your first account.