Payouts
Manage payouts
Returns all payouts.
Your API key (obtain from dashboard)
Page number (1-based)
1Example: 1Number of items per page
10Example: 10Search term for payout reference (system or client reference), id, or txHash (for crypto)
PAY-123456Filter by payout status
successPossible values: Filter by payout recipient.
b1d9a0e2-7c44-4f1a-9b3e-2d5a8c6f0e11Filter by payout method.
cryptoPossible values: Filter by payout currency.
NGNPossible values: Filter by blockchain. Only crypto payouts move on a blockchain, so this excludes fiat payouts from the results.
tronPossible values: Indicates if the request was successful
trueResponse message
SuccessUnauthorized
GET /api/v1/payouts HTTP/1.1
Host: api.coincircuit.io
x-api-key: YOUR_API_KEY
Accept: */*
{
"success": true,
"message": "Success",
"data": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"reference": "PAY-ABC123DEF456",
"method": "crypto",
"status": "success",
"amount": "100.00",
"fee": "1.50",
"total": "101.50",
"currency": "USDT",
"conversion": {
"fromCurrency": "USDT",
"toCurrency": "KES",
"sourceAmount": "77.60",
"targetAmount": "10000.00",
"rate": "128.87"
},
"narration": "Manual merchant payout",
"recipient": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"type": "crypto_address",
"details": {
"chain": "tron",
"address": "TF6yMCJqFcT6wFFutxVmRocKgJFD5imKUT"
}
},
"channel": "API",
"txHash": "0x1234567890abcdef1234567890abcdef12345678",
"failureReason": null,
"completedAt": "2024-01-01T12:05:00.000Z",
"createdAt": "2024-01-01T12:00:00.000Z",
"updatedAt": "2024-01-01T12:05:00.000Z"
}
],
"meta": {
"page": 1,
"size": 10,
"total": 42,
"totalPages": 5
}
}Initiates a payout to a recipient. Requests authenticated with an API key never need a one-time code. Dashboard requests need a one-time code unless the recipient is trusted.
Your API key (obtain from dashboard)
Currency the recipient receives. Local fiat: NGN. Crypto: the asset (USDT/USDC). Cross-border: KES/GHS, funded from the stablecoin balance in sourceCurrency.
NGNStablecoin balance to debit (USDT or USDC), for a cross-border payout where the recipient is paid in a different currency. Omit for local fiat and crypto payouts, which debit the balance in currency.
USDTPossible values: For a cross-border payout, the quoteId from POST /payouts/cross-border/quote. Pass it to pay exactly the quoted price. Quotes expire after two minutes; omit it to price at the current rate.
cbq_123e4567-e89b-12d3-a456-426614174000Amount to pay out, in currency. For a cross-border payout this is the amount the recipient receives, and it is not needed when quoteId is given: the quote already fixes it.
5000.00Payout receipient Id
123e4567-e89b-12d3-a456-426614174000Optional narration/description for the payout
Manual withdrawal - Week 45Optional idempotency reference for your request. If omitted, we generate a reference for you.
CLIENT-REF-12345Optional URL to receive webhook notifications for this payout (must be HTTPS). Overrides your dashboard webhook URL for this payout only.
https://example.com/webhooksPayout initialized successfully
Indicates if the request was successful
trueResponse message
SuccessBad request - validation error, insufficient balance, daily limit exceeded, or missing one-time code (not required when the recipient is trusted)
Recipient (bank account or wallet address) not found
Internal server error - payout processing failed
POST /api/v1/payouts HTTP/1.1
Host: api.coincircuit.io
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 284
{
"currency": "NGN",
"sourceCurrency": "USDT",
"quoteId": "cbq_123e4567-e89b-12d3-a456-426614174000",
"amount": "5000.00",
"recipientId": "123e4567-e89b-12d3-a456-426614174000",
"narration": "Manual withdrawal - Week 45",
"reference": "CLIENT-REF-12345",
"webhookUrl": "https://example.com/webhooks"
}{
"success": true,
"message": "Crypto payout initialized successfully",
"data": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"reference": "PAY-ABC123DEF456",
"method": "crypto",
"status": "processing",
"amount": "100.00",
"fee": "1.00",
"total": "101.00",
"currency": "USDT",
"conversion": null,
"narration": "Manual merchant payout",
"recipient": {
"id": "f8c3de3d-1fea-4d7c-a8b0-29f63c4c3454",
"type": "crypto_address",
"details": {
"chain": "tron",
"address": "TJRyWwFs9wTFGZg3JbrVriFbNfCug5tDeC"
}
},
"channel": "API",
"txHash": null,
"failureReason": null,
"completedAt": null,
"createdAt": "2026-07-01T12:00:00.000Z",
"updatedAt": "2026-07-01T12:00:00.000Z"
}
}Returns the fee and conversion for a cross-border payout, priced by the amount to pay from a balance (sourceAmount). Call this before creating the payout to show the cost. Cross-border payouts are available to verified businesses.
Your API key (obtain from dashboard)
Currency the recipient receives.
KESPossible values: Stablecoin balance the payout is funded from and debited in.
USDTPossible values: Amount to pay from the balance, in sourceCurrency. The amount the recipient receives is derived from it.
78.00Quote id. Pass it as quoteId to POST /payouts to pay exactly this price before it expires.
cbq_123e4567-e89b-12d3-a456-426614174000Flat fee, in conversion.fromCurrency.
1.50Total debited from the balance: conversion.sourceAmount plus fee, in conversion.fromCurrency.
79.10When this quote expires. After this time, request a new quote.
2026-07-22T12:02:00.000ZPOST /api/v1/payouts/cross-border/quote HTTP/1.1
Host: api.coincircuit.io
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 65
{
"currency": "KES",
"sourceCurrency": "USDT",
"sourceAmount": "78.00"
}{
"id": "cbq_123e4567-e89b-12d3-a456-426614174000",
"conversion": {
"fromCurrency": "USDT",
"toCurrency": "KES",
"sourceAmount": "77.60",
"targetAmount": "10000.00",
"rate": "128.87"
},
"fee": "1.50",
"total": "79.10",
"expiresAt": "2026-07-22T12:02:00.000Z"
}Returns the payout for the given ID.
Your API key (obtain from dashboard)
Payout retrieved successfully
Indicates if the request was successful
trueResponse message
SuccessUnauthorized
Payout not found
GET /api/v1/payouts/{id} HTTP/1.1
Host: api.coincircuit.io
x-api-key: YOUR_API_KEY
Accept: */*
{
"success": true,
"message": "Payout retrieved successfully",
"data": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"reference": "PAY-ABC123DEF456",
"method": "crypto",
"status": "success",
"amount": "100.00",
"fee": "1.00",
"total": "101.00",
"currency": "USDT",
"conversion": null,
"narration": "Manual merchant payout",
"recipient": {
"id": "f8c3de3d-1fea-4d7c-a8b0-29f63c4c3454",
"type": "crypto_address",
"details": {
"chain": "tron",
"address": "TJRyWwFs9wTFGZg3JbrVriFbNfCug5tDeC"
}
},
"channel": "API",
"txHash": "b9f4a2d6e8c1073a5f4e2b8d9c0a1f3e6d5b4a2c8e7f9d0b1a3c5e7f9b2d4a6c",
"failureReason": null,
"completedAt": "2026-07-01T12:05:00.000Z",
"createdAt": "2026-07-01T12:00:00.000Z",
"updatedAt": "2026-07-01T12:05:00.000Z"
}
}Returns fiat, cross-border, and crypto payout fees across every supported currency, corridor, chain, and asset.
Your API key (obtain from dashboard)
Indicates if the request was successful
trueResponse message
Payout fees retrieved successfullyUnauthorized
Internal server error - Unable to calculate fees
GET /api/v1/payouts/fees HTTP/1.1
Host: api.coincircuit.io
x-api-key: YOUR_API_KEY
Accept: */*
{
"success": true,
"message": "Payout fees retrieved successfully",
"data": {
"fiat": {
"NGN": {
"BankTransfer": "50.00"
}
},
"crossBorder": {
"KES": {
"MobileMoney": "2.00"
},
"GHS": {
"MobileMoney": "2.00"
}
},
"crypto": {
"USDT": {
"bsc": "0.50",
"tron": "1.00",
"solana": "0.50"
},
"USDC": {
"solana": "0.50"
}
}
}
}Last updated
Was this helpful?