Skip to main content
To receive money, create virtual accounts for your customers. Customers pay into their assigned virtual account using local payment rails (bank transfer, PIX, SPEI, SEPA, etc.). You receive a webhook notification when funds arrive.
Customers must have KYC approved (is_va_approved: true) before you can issue them a virtual account.

Step 1: Get Supported Pay-in Countries

Retrieve the list of countries where Yativo supports incoming payments:

Step 2: Get Supported Currencies for a Country

Once you know the destination country, retrieve which currencies are available for deposits:
string
required
ISO 3166-1 alpha-2 country code (e.g. BR, MX, CL).

Step 3: Create a Virtual Account for a Customer

Issue a local bank account number to your customer for a specific currency:
string
required
The ID of the KYC-approved customer to issue the account to.
string
required
Currency for the virtual account. Supported values: USDBASE, EURBASE, EURDE, MXN, MXNBASE, MXNUSD, BRL.

Step 4: List Virtual Accounts

Retrieve all virtual accounts, with optional filters:
string
Filter by currency code (e.g. BRL, USD).
string
Filter by account status.
string
From date (ISO 8601).
string
Search query (account number, customer name, etc.).
number
Results per page.
number
Page number.

Step 5: Get Virtual Account Transaction History

Retrieve payment history for a specific virtual account:
string
required
The account number (not the account ID).
string
Filter by customer.
string
Filter by payment status.
string
From date (ISO 8601).
string
To date (ISO 8601).
number
Page number.
number
Results per page.

Alternative: Gateway-Based Deposits (Quote Flow)

For payment gateways that involve a hosted checkout (rather than a push to a standing account number), use the two-step quote flow.

Step 1: Quote the deposit

Call POST /exchange-rate with method_type: "payin" and the gateway’s method_id to lock the exchange rate and get a quote_id:

Step 2: Initiate the deposit

Pass the quote_id to lock the rate, plus a redirect_url for after the customer completes payment on the hosted page:
The response contains a checkout_url — redirect the customer there to complete the payment. Once done they return to your redirect_url and you receive a deposit.completed webhook.
Use virtual accounts (Step 3 above) for recurring or standing deposit addresses. Use the gateway quote flow when the customer initiates a one-time payment on a specific date and you want to lock the rate before they pay.

Alternative: Crypto Deposits

To accept cryptocurrency deposits, retrieve your crypto wallet addresses:

Webhooks for Deposit Notifications

Configure a webhook endpoint to be notified in real-time when a deposit arrives. See the Webhooks guide for setup. Key events for deposits: Example virtual_account.deposit payload:
Respond with a 2xx status within 10 seconds to acknowledge receipt. Failed deliveries are retried automatically.