Skip to main content
Your servers authenticate with an API key: a key and secret pair sent as X-Api-Key and X-Api-Secret headers on every request. There’s no login call, no token to refresh, and keys don’t expire.
Login tokens have been discontinued. The legacy Account ID and App Secret, POST /auth/login, GET /auth/refresh-token and Authorization: Bearer tokens no longer work for API requests. A request from your servers with a bearer token returns 403. Use an API key. See Move from login tokens to API keys.

Environments

Sandbox and production have separate keys. No real funds move in sandbox.

Create an API key

API access is available once your business KYC is approved.
1

Open API Keys

Sign in to app.yativo.com and go to Developers → API Keys.
2

Generate a key

Click Generate key. Enter a Label (for example “Production backend”) and the Allowed IPs of the servers that will use the key. See IP whitelisting.
3

Save the secret

Copy the API secret and store it in a secrets manager. It’s shown only once and can’t be recovered.

Authenticate requests

Send both headers on every request. Don’t send an Authorization header with them.
Requests made with a key act on your business account. Some endpoints can’t be called with a key and return 403 This endpoint cannot be used with an API key. Sign in to the Yativo dashboard instead. Do these in the dashboard instead:
  • Passkeys, two-factor authentication and PIN changes
  • Deleting the account
API keys and IP whitelists can only be managed in the dashboard. Requests from anywhere else, including with an API key, return 403 IP whitelists and API keys can only be managed from the Yativo dashboard.

Check your setup

Call GET /ip-whitelist/check from each server that uses the key. It confirms the key works and whether that server’s IP is allowed.

Move from login tokens to API keys

If your integration still calls POST /auth/login, it no longer works. Request and response bodies don’t change. Only the authentication headers do.
1

Find your server IPs

Run curl https://checkip.amazonaws.com on every server that calls Yativo.
2

Create a key per system

Create one API key per system with its allowed IPs, so you can revoke one without affecting the others.
3

Update your client

Remove the /auth/login call, token caching and refresh, and the Authorization header. Add X-Api-Key and X-Api-Secret to every request. If you send both, the bearer token is ignored.
4

Test and go live

Test in sandbox, run GET /ip-whitelist/check from each production server, then deploy. IP whitelists have been enforced since 14 October 2026, so a key without your server’s IP is refused.
5

Remove the old secret

Delete the legacy Account ID and App Secret from your configuration.

Idempotency

Send an Idempotency-Key header on every POST, PUT, PATCH and DELETE request. It makes retries safe: a repeated request returns the original response and doesn’t run again.
Use a UUID or another value you generate once per operation, and reuse it only when retrying that operation.
  • Yativo keeps the original response for 60 minutes. A retry with the same key and body in that time gets the same response, including errors below 500. A 5xx response isn’t kept, so you can retry it with the same key.
  • Reusing a key with a different body returns 409 with Idempotency key reuse detected with a different request payload.
  • Sending a retry while the first request is still running returns 409 with A matching request is already being processed. Please wait a moment and refresh.
  • If you leave the header out, Yativo treats an identical request to the same endpoint within 60 minutes as a retry, and returns the first response. To send two identical operations on purpose, such as two equal payouts, give each its own key.

Errors


Security best practices

  • Store the key and secret in a secrets manager or environment variables. Never commit them or log them.
  • Only call the API from your backend. Never put a key in a browser or mobile app.
  • Use a separate key for each system and environment.
  • Revoke a key straight away if you think it has leaked, then create a new one.
  • Turn on two-factor authentication and passkeys for everyone who signs in to the dashboard.