- Virtual account listing
- Updating and expiring NGN virtual accounts
- Virtual account transaction history
- Transactions index
- Transaction details for payins (payment links) and payouts
Environments
- Sandbox API:
https://smtp.yativo.com - Sandbox (alternate host):
https://smtp.yativo.com - Production API:
https://api.yativo.com
virtual_account.deposit) without waiting for a bank.
See Testing on sandbox.
Authentication
All business endpoints need an authenticated request. Server-to-server requests use your team’s API key and secret:Authorization: Bearer <ACCESS_TOKEN>
instead. Since 15 October 2026, bearer tokens are only accepted from the
dashboard, and the legacy POST /api/v1/auth/login (account_id +
app_secret) flow is deprecated. Don’t send a bearer token together with the
key pair. See Authentication.
1) List Virtual Accounts
Endpoint
Sample Response (Anonymized)
Response Key Table
1a) Update or Expire an NGN Virtual Account
These two endpoints only work on NGN virtual accounts. Any other currency returns422 (Updating is not supported for this account /
Expiring is not supported for this account).
Update
Send at least one of the two fields, otherwise the request returns
422.
The response is the updated virtual account record; the new values also
appear in account_info (account_name, expected_amount).
Expire
status becomes expired. This
can’t be undone. Calling it on an account that is already expired returns
200 with the message Virtual account already expired.
Deleting an NGN account with
DELETE /api/v1/business/virtual-account/delete-virtual-account/{account_id}
also expires it first.
A successful delete returns the deleted account_id and sends a
virtual_account.deleted webhook. An ID that doesn’t exist or isn’t yours
returns 404 (Account with the provided ID does not exists).
2) Virtual Account Transaction History
Endpoint
Important Crediting Notes
currency+amount: value credited to the wallet.amount_recevied(API spelling): amount originally sent by sender.sender_information: payer account and identity details.transaction_fee: your own platform fee.- If
amount_receviedis greater thanamount, the difference can come from rail/provider deductions (for example, FedWire fees) before settlement.
Wallet Settlement Rules
- GBP virtual account (Faster Payments) settles into USD wallet.
MXNUSDvirtual account accepts MXN over SPEI and settles into USD wallet.COPUSDvirtual account accepts COP over Bre-B and settles into USD wallet.- EUR virtual account accepts EUR and settles in EUR only.
- NGN virtual account accepts NGN and settles in NGN.
amount_recevied shows what the sender paid in the
local currency, and amount shows the USD credited.
Sample USD History Response (Anonymized)
Sample EUR History Response (Anonymized)
Response Key Table
3) Transactions Index
Endpoint
Purpose
Returns all account transactions (for example: crypto deposits, payins, payouts), paginated.Sample Response (Anonymized)
Response Key Table
4) Transaction Details by ID
Endpoint
Sample Payin (Payment Link) Response (Anonymized)
Sample Payout Response (Anonymized)
Response Key Table (Transaction Details)
Notes for Integrators
- Keep
amountandamount_receviedseparate in your UI and reconciliation logic. - Treat
amountas wallet credit. - Treat
amount_receviedas sender-side transfer value. - Show
transaction_feeas your own platform fee. - Rail/provider fee deductions (for example FedWire) can explain differences between sent and credited amounts.

