Environments
Every endpoint lives under
/api/v1, for example https://partners-api.kravata.co/api/v1/client/token. The credentials for each environment are different.
Typical flow
1
Authenticate
Exchange your
apiKey and secretKey for an access token. In production, also present your mTLS certificate and register your IP allowlist. See Authentication.2
Register your users
Register each end user with POST /api/v1/users/register and check their status with GET /api/v1/admin/users. A user must be
APPROVED before operating.3
Register accounts and wallets
Register bank accounts with POST /api/v1/admin/account/{user_id} and external wallets with POST /api/v1/admin/wallets/external/{user_id}, or create a Kravata custody wallet with POST /api/v1/admin/wallet/{user_id}. Accounts and wallets must be
APPROVED to be used.4
Quote and operate
Get a quote with POST /api/v1/admin/operations/custodian-quote, then create a deposit, withdrawal, on-ramp or off-ramp. For fiat-only flows use the pay-in, payout and payment endpoints.
5
Track the result
Query GET /api/v1/admin/operation/{operation_id} or subscribe to webhooks to be notified when the status changes.
Conventions
Pagination
List endpoints acceptpage (starting at 1) and pageSize query parameters and return this envelope:
/admin/operations, /admin/balances) use page and page_size (maximum 100) instead.
Errors
Errors return an HTTP status code and a JSON body with adetail field:

