Create and manage payment charges
Kaito Merchant API (2.0.0)
Merchant services including payment acceptance, settlements, and financial reporting.
Payment Acceptance: In-person payment acceptance supporting nfc (Tap-to-Pay), qr (QR code), alias (handle resolution), and card_present (chip/swipe).
Charge Flow: Create merchant -> Create charge -> Display QR/NFC -> Confirm via polling or webhook.
Refunds: Full or partial refunds via /refunds.
Banking & Settlements: View settlement history via /settlements, account balances via /balances, and download reconciliation reports in CSV, XLSX, or JSON format. Query /fees for fee breakdown.
Download OpenAPI description
Overview
URL
Kaito Developer Support
License
Languages
Servers
Mock server
https://developer.kaito.io/_mock/merchant/
Production
https://api.kai2.io/
Sandbox
https://sandbox.api.kai2.io/
Bodyapplication/jsonrequired
- nfc: Tap-to-Pay via NFC
- qr: QR code payment
- alias: Alias/handle resolution
- card_present: Card present (chip/swipe)
Enum"nfc""qr""alias""card_present"
- Mock serverhttps://developer.kaito.io/_mock/merchant/v1/charges
- Productionhttps://api.kai2.io/v1/charges
- Sandboxhttps://sandbox.api.kai2.io/v1/charges
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://developer.kaito.io/_mock/merchant/v1/charges \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: string' \
-d '{
"merchantId": "mrc_01JH...",
"amount": 150,
"currency": "GTQ",
"paymentMethod": "nfc",
"description": "Purchase at Store #123",
"reference": "string",
"expiresIn": 300,
"metadata": {}
}'Response
application/json
{ "chargeId": "chg_01JH...", "merchantId": "string", "amount": 0, "currency": "string", "status": "requires_payment", "paymentMethod": "nfc", "description": "string", "reference": "string", "qr": { "data": "string", "imageUrl": "http://example.com", "expiresAt": "2019-08-24T14:15:22Z" }, "payer": { "walletId": "string", "displayName": "string" }, "txHash": "string", "providerRef": "string", "createdAt": "2019-08-24T14:15:22Z", "paidAt": "2019-08-24T14:15:22Z" }
- Mock serverhttps://developer.kaito.io/_mock/merchant/v1/charges
- Productionhttps://api.kai2.io/v1/charges
- Sandboxhttps://sandbox.api.kai2.io/v1/charges
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://developer.kaito.io/_mock/merchant/v1/charges?merchantId=string&status=requires_payment&createdAfter=2019-08-24T14%3A15%3A22Z&createdBefore=2019-08-24T14%3A15%3A22Z&limit=50&cursor=string' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'Response
application/json
{ "items": [ { … } ], "pagination": { "nextCursor": "cursor_abc123" } }
- Mock serverhttps://developer.kaito.io/_mock/merchant/v1/charges/{chargeId}
- Productionhttps://api.kai2.io/v1/charges/{chargeId}
- Sandboxhttps://sandbox.api.kai2.io/v1/charges/{chargeId}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://developer.kaito.io/_mock/merchant/v1/charges/{chargeId}' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'Response
application/json
{ "chargeId": "chg_01JH...", "merchantId": "string", "amount": 0, "currency": "string", "status": "requires_payment", "paymentMethod": "nfc", "description": "string", "reference": "string", "qr": { "data": "string", "imageUrl": "http://example.com", "expiresAt": "2019-08-24T14:15:22Z" }, "payer": { "walletId": "string", "displayName": "string" }, "txHash": "string", "providerRef": "string", "createdAt": "2019-08-24T14:15:22Z", "paidAt": "2019-08-24T14:15:22Z" }