Skip to content

Kaito Core API (2.0.0)

Core payment operations: Quotes, Payments, Payouts, and FX.

Rail Types: CRYPTO_CRYPTO (on-chain), FIAT_CRYPTO (on-ramp), CRYPTO_FIAT (off-ramp), FIAT_FIAT (cross-border).

Typical Flow: Get rates -> Create quote -> Execute payment/payout -> Track status.

Destination Types (Payments): handle, phone, address.

Beneficiary Types (Payouts): bank_account, cash_pickup, mobile_money.

Download OpenAPI description
Languages
Servers
Mock server
https://developer.kaito.io/_mock/core/
Production
https://api.kai2.io/
Sandbox
https://sandbox.api.kai2.io/

Quotes

Lock pricing and routing

Operations

Create quote

Request

Creates a quote for a specific railType and corridor. Use quotes to lock pricing and routing for a limited time window.

Security
oAuth2
Headers
Idempotency-Keystring

A unique key to make POST requests idempotent.

Bodyapplication/jsonrequired
railTypestring(RailType)required
Enum"FIAT_FIAT""FIAT_CRYPTO""CRYPTO_FIAT""CRYPTO_CRYPTO"
Example: "CRYPTO_CRYPTO"
senderobject(Money)required
sender.​amountstringrequired
Example: "1000.00"
sender.​currencystringrequired
Example: "USD"
receiverobjectrequired
receiver.​currencystringrequired
Example: "GTQ"
corridorstringrequired
Example: "US-GT"
railsArray of strings
Items Enum"CRYPTO""BANK""CASH"
preferencesobject
curl -i -X POST \
  https://developer.kaito.io/_mock/core/v1/quotes \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: string' \
  -d '{
    "railType": "CRYPTO_CRYPTO",
    "sender": {
      "amount": "1000.00",
      "currency": "USD"
    },
    "receiver": {
      "currency": "GTQ"
    },
    "corridor": "US-GT",
    "rails": [
      "CRYPTO"
    ],
    "preferences": {}
  }'

Responses

Quote created

Headers
X-Trace-Idstring(TraceId)

Correlation id for troubleshooting

Example: "trc_01JH8K5P3V9M2K5Q7W6J3Z1A9B"
Bodyapplication/json
quoteIdstringrequired
Example: "qt_01JH..."
railTypestring(RailType)required
Enum"FIAT_FIAT""FIAT_CRYPTO""CRYPTO_FIAT""CRYPTO_CRYPTO"
Example: "CRYPTO_CRYPTO"
corridorstringrequired
senderobject(Money)required
sender.​amountstringrequired
Example: "1000.00"
sender.​currencystringrequired
Example: "USD"
receiverobject(Money)required
receiver.​amountstringrequired
Example: "1000.00"
receiver.​currencystringrequired
Example: "USD"
ratestringrequired
Example: "37.7310"
feesArray of objects(Fee)required
fees[].​typestring(FeeType)required
Enum"network""provider""kaito""partner"
fees[].​amountobject(Money)required
fees[].​amount.​amountstringrequired
Example: "1000.00"
fees[].​amount.​currencystringrequired
Example: "USD"
fees[].​descriptionstring or null
expiresAtstring(date-time)required
createdAtstring(date-time)required
Response
application/json
{ "quoteId": "qt_01JH...", "railType": "CRYPTO_CRYPTO", "corridor": "string", "sender": { "amount": "1000.00", "currency": "USD" }, "receiver": { "amount": "1000.00", "currency": "USD" }, "rate": "37.7310", "fees": [ {} ], "expiresAt": "2019-08-24T14:15:22Z", "createdAt": "2019-08-24T14:15:22Z" }

Get quote by ID

Request

Security
oAuth2
Path
quoteIdstringrequired
curl -i -X GET \
  'https://developer.kaito.io/_mock/core/v1/quotes/{quoteId}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Quote details

Bodyapplication/json
quoteIdstringrequired
Example: "qt_01JH..."
railTypestring(RailType)required
Enum"FIAT_FIAT""FIAT_CRYPTO""CRYPTO_FIAT""CRYPTO_CRYPTO"
Example: "CRYPTO_CRYPTO"
corridorstringrequired
senderobject(Money)required
sender.​amountstringrequired
Example: "1000.00"
sender.​currencystringrequired
Example: "USD"
receiverobject(Money)required
receiver.​amountstringrequired
Example: "1000.00"
receiver.​currencystringrequired
Example: "USD"
ratestringrequired
Example: "37.7310"
feesArray of objects(Fee)required
fees[].​typestring(FeeType)required
Enum"network""provider""kaito""partner"
fees[].​amountobject(Money)required
fees[].​amount.​amountstringrequired
Example: "1000.00"
fees[].​amount.​currencystringrequired
Example: "USD"
fees[].​descriptionstring or null
expiresAtstring(date-time)required
createdAtstring(date-time)required
Response
application/json
{ "quoteId": "qt_01JH...", "railType": "CRYPTO_CRYPTO", "corridor": "string", "sender": { "amount": "1000.00", "currency": "USD" }, "receiver": { "amount": "1000.00", "currency": "USD" }, "rate": "37.7310", "fees": [ {} ], "expiresAt": "2019-08-24T14:15:22Z", "createdAt": "2019-08-24T14:15:22Z" }

Execution Plans

Multi-step routing plans

Operations

Payments

Execute payments (CRYPTO_CRYPTO, FIAT_CRYPTO)

Operations

Payouts

Execute payouts/off-ramp (CRYPTO_FIAT, FIAT_FIAT)

Operations

FX Rates

Indicative exchange rates

Operations

FX Quotes

Firm FX quotes

Operations

Corridors

Supported corridors

Operations