Skip to main content
The Yativo Fiat API enables you to send and receive money globally, manage virtual accounts, perform currency exchange, verify customer identities, and let your customers sell by card through Card Checkout. All endpoints return JSON responses.

Base URLs

Use the sandbox environment for development and testing. Sandbox transactions do not move real funds.

Authentication

Send your API key and secret on every request. Create them in the dashboard under Developers → API Keys.
Requests must come from an IP on the key’s whitelist. See Authentication and IP whitelisting.
Login tokens from POST /auth/login (legacy Account ID and App Secret) have been discontinued. Authorization: Bearer tokens don’t work for API requests. Use X-Api-Key and X-Api-Secret.

Idempotency

Send an Idempotency-Key header on every POST, PUT, PATCH and DELETE request, so a retried request isn’t processed twice.
Use a UUID or a deterministic string based on the operation (e.g. payout-{customer_id}-{timestamp}). Keys are scoped to your account. Reusing a key for a completed request within 60 minutes returns 409. Reusing a key with a different body also returns 409. See Idempotency.

Rate limits

Requests are rate-limited per business account: by default 20 writes (POST, PUT, PATCH, DELETE) and 50 reads (GET) a second. Some endpoints have lower limits. See Rate limits. Over the limit, you get 429 Too Many Requests with a Retry-After header. Wait that many seconds, then retry with exponential backoff.

Standard response format

All successful responses follow this structure:

Error codes

Error response format

Every failed response has status: "failed", and the reason in data. Most errors put a message in data.error, and the same text in message. Validation errors list the failing fields in data, and message is Request failed. Every failed response also includes two objects with the same shape for every endpoint:
  • error_details: the error message, per-field messages and retry hints. Read errors from here so you don’t have to handle each endpoint’s data shape.
  • error: a short code, the message and a request_id. Quote the request_id when you contact support. Send your own X-Request-Id header to have it used as the request_id, so you can match the error to your logs.
error fields: error_details fields: A 5xx response’s message is always generic. It never contains internal details. Successful responses always return HTTP 200. status_code in the body can be 201 or 202, for example when a resource was created or accepted for review.

Card Checkout

Let your customers sell by debit and credit card on a Yativo-hosted checkout page. Request access, verify each selling customer, create orders, and follow them with card_checkout.order.* webhooks. See the Card Checkout guide.

Request access

Enable Card Checkout on your account, then read pricing and balance.

Verify selling customers

Submit each customer’s card_checkout endorsement and send them to onboarding.

Create an order

Set the amount, get a checkout_url, and send the buyer to pay.

Withdrawals

Let a selling customer withdraw cleared funds to a saved destination.

KYC platform

Certain KYC submission endpoints are hosted on a separate platform: