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

Execution Plans

Multi-step routing plans

Operations

Payments

Execute payments (CRYPTO_CRYPTO, FIAT_CRYPTO)

Operations

Create payment

Request

Creates a payment for CRYPTO_CRYPTO or FIAT_CRYPTO flows.

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"
amountnumberrequired
Example: 25.5
currencystringrequired
Example: "USDT"
destinationobject(Destination)required
destination.​typestringrequired
Enum"handle""phone""address"
destination.​valuestringrequired
Example: "@recipient"
networkstring(Network)
Enum"ethereum""polygon""solana""bitcoin"
Example: "polygon"
quoteIdstring or null
metadataobject
curl -i -X POST \
  https://developer.kaito.io/_mock/core/v1/payments \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: string' \
  -d '{
    "railType": "CRYPTO_CRYPTO",
    "amount": 25.5,
    "currency": "USDT",
    "destination": {
      "type": "handle",
      "value": "@recipient"
    },
    "network": "polygon",
    "quoteId": "string",
    "metadata": {}
  }'

Responses

Payment created

Bodyapplication/json
paymentIdstringrequired
Example: "pay_01JH..."
statusstring(PaymentStatus)required
Enum"created""pending""succeeded""failed""cancelled"
createdAtstring(date-time)required
railTypestring(RailType)required
Enum"FIAT_FIAT""FIAT_CRYPTO""CRYPTO_FIAT""CRYPTO_CRYPTO"
Example: "CRYPTO_CRYPTO"
amountnumberrequired
currencystringrequired
destinationobject(Destination)required
destination.​typestringrequired
Enum"handle""phone""address"
destination.​valuestringrequired
Example: "@recipient"
networkstring(Network)
Enum"ethereum""polygon""solana""bitcoin"
Example: "polygon"
quoteIdstring or null
providerRefstring or null
txHashstring or null
Response
application/json
{ "paymentId": "pay_01JH...", "status": "created", "createdAt": "2019-08-24T14:15:22Z", "railType": "CRYPTO_CRYPTO", "amount": 0, "currency": "string", "destination": { "type": "handle", "value": "@recipient" }, "network": "polygon", "quoteId": "string", "providerRef": "string", "txHash": "string" }

List payments

Request

Security
oAuth2
Query
statusstring(PaymentStatus)
Enum"created""pending""succeeded""failed""cancelled"
railTypestring(RailType)
Enum"FIAT_FIAT""FIAT_CRYPTO""CRYPTO_FIAT""CRYPTO_CRYPTO"
Example: railType=CRYPTO_CRYPTO
createdAfterstring(date-time)
createdBeforestring(date-time)
limitinteger
Default 50
cursorstring
curl -i -X GET \
  'https://developer.kaito.io/_mock/core/v1/payments?status=created&railType=CRYPTO_CRYPTO&createdAfter=2019-08-24T14%3A15%3A22Z&createdBefore=2019-08-24T14%3A15%3A22Z&limit=50&cursor=string' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Payments list

Bodyapplication/json
itemsArray of objects(Payment)
paginationobject(Pagination)
Response
application/json
{ "items": [ {} ], "pagination": { "nextCursor": "cursor_abc123" } }

Get payment by ID

Request

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

Responses

Payment details

Bodyapplication/json
paymentIdstringrequired
Example: "pay_01JH..."
statusstring(PaymentStatus)required
Enum"created""pending""succeeded""failed""cancelled"
createdAtstring(date-time)required
railTypestring(RailType)required
Enum"FIAT_FIAT""FIAT_CRYPTO""CRYPTO_FIAT""CRYPTO_CRYPTO"
Example: "CRYPTO_CRYPTO"
amountnumberrequired
currencystringrequired
destinationobject(Destination)required
destination.​typestringrequired
Enum"handle""phone""address"
destination.​valuestringrequired
Example: "@recipient"
networkstring(Network)
Enum"ethereum""polygon""solana""bitcoin"
Example: "polygon"
quoteIdstring or null
providerRefstring or null
txHashstring or null
Response
application/json
{ "paymentId": "pay_01JH...", "status": "created", "createdAt": "2019-08-24T14:15:22Z", "railType": "CRYPTO_CRYPTO", "amount": 0, "currency": "string", "destination": { "type": "handle", "value": "@recipient" }, "network": "polygon", "quoteId": "string", "providerRef": "string", "txHash": "string" }

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