Skip to main content
A payin creates a payment link your customer uses to send funds. First discover the right payment gateway for the destination currency, then create the payin — optionally locking an exchange rate with a quote first.

Step 1 — Find your gateway ID

Supported payin countries

Returns countries available for receiving payments (ISO 3166-1 alpha-3 codes).

Gateway ID by country and currency

string
required
Country ISO 3166-1 alpha-3 code (e.g. CHL, BRA, MEX).
string
required
Currency code (e.g. CLP, BRL, MXN).
Note the id — this is your gateway value in the payin request.

Step 2 — Create a payin

number
required
Gateway ID from Step 1.
string
required
Currency of the deposit (e.g. "CLP", "BRL", "MXN").
string
Quote ID from /exchange-rate. Locks the rate for 5 minutes. Recommended — amount is taken from the quote.
number
Amount to collect. Required if quote_id is not provided. Uses current market rate.
string
Attach this deposit to a specific customer wallet.
string
URL to redirect the customer after payment is completed.
Send deposit_url to your customer — they complete payment through Yativo’s hosted checkout.

EUR bank transfer (SEPA)

Customers can fund a deposit in EUR with a SEPA transfer to a Yativo IBAN.
  1. Find the gateway with GET /payment-methods/payin?country=MLT&currency=EUR. The method is named EUR Bank Transfer (SEPA).
  2. Create the payin with that gateway, currency: "EUR", an amount and a customer_id. customer_id is required for this method.
  3. Optionally send sender_account_number with the IBAN your customer will pay from. It helps match the transfer.
The deposit_url page shows the IBAN, BIC (SWIFT code), account name, amount and a unique payment reference.
Your customer must put the payment reference in the transfer’s reference field, and send it from a bank account in their own name (the name on their KYC). Transfers without the reference, or from third parties, can’t be matched to the deposit.

Card payments

Customers can pay a deposit by card on a secure card page. Card details are entered on that page, never in your app.
  1. Find the gateway with GET /payment-methods/payin?country=BOL&currency=BOB, country=BOL&currency=USD or country=USA&currency=USD. The methods are named Card.
  2. Create the payin with that gateway, currency: "USD" and an amount. Amounts can include cents. Send a return_url to bring the payer back to your app.
  3. Redirect the payer to the returned link. The card page stays open for 60 minutes, and the payer can retry with another card during that time.
When the payer finishes, they’re sent to your return_url with deposit_id and status in the query string. Use the deposit.updated webhook as the final result, and confirm it with Get a deposit before you fulfil the order.
Card payments are credited in USD only. A request for any other currency returns an error.

When card funds are available

Card payments aren’t available to spend straight away. They’re held for 3 US business days, not counting weekends and US federal holidays. If your account has a reserve, that part is held for your reserve period after that. The funds then move to your card balance. Refunds and chargebacks are taken from that balance.

List deposits

Filter by gateway, currency, start_date, or end_date as query parameters.

Get a deposit

Returns one deposit, by its id or its deposit_id reference. The object is the same as an item from the list above. Check its status before you fulfil an order. A redirect to your return_url or redirect_url isn’t proof of payment.
404 Deposit not found means the ID isn’t one of your deposits. See Get Deposit.

Stablecoin funding

Fund your Yativo balance with stablecoins, to use for payouts or fee payments.

Generate a deposit wallet address

string
required
The coin and network, as {COIN}_{NETWORK}:
string
Pass a customer ID to generate a deposit address for a specific customer’s account.
Each address belongs to one currency, and to one customer when you pass customer_id. Asking again for the same currency and customer returns the existing address with the message Wallet already exists.

Wallet address limits

You can request at most 3 wallet addresses a minute for each customer_id, or 3 a minute for your own account when you don’t pass one. This applies to POST /crypto/create-wallet and to the corporate card funding addresses created by GET /corporate-card/wallet. The request that goes over the limit returns 403. Both endpoints then stay blocked for that customer for 24 hours:
Later requests during the block return 403 with You have been blocked from generating wallet addresses due to excessive requests. Contact Yativo support to lift it early. To avoid the limit, store each address and look it up with GET /crypto/get-wallets instead of requesting a new one.

Retrieve your deposit wallet addresses

Deposit history

For a specific wallet address: