Payouts

The Payouts API allows you to convert crypto assets (BTC, USDT, USDC) into local fiat currencies (e.g., NGN, KES). The flow involves creating a quote, initializing the payout with beneficiary details, depositing funds, and finalizing the transaction.

Payouts API Endpoints

Create Payouts Quote

Creates a quote for converting cryptocurrency to fiat. You can specify either amount (crypto amount) or settlement_amount (target fiat amount).

Create Payouts Quote

Create Payouts Quote Request
1
from_assetstringRequired

The crypto asset to convert from (e.g., BTC, USDT, USDC).

2
to_currencystringRequired

The target fiat currency code (e.g., NGN, KES).

3
sourcestringRequired

The source of funds. Use `onchain` for blockchain deposit or `offchain` for wallet balance.

4
chainstringOptional

The blockchain network (e.g., BITCOIN, trc20, erc20). Required when source is `onchain`.

5
amountstringRequired if settlement_amount not provided

The crypto amount to convert. Takes priority over settlement_amount if both are provided.

6
settlement_amountstringRequired if amount not provided

The target fiat amount to receive. Ignored if amount is also provided.

7
payment_reasonstringRequired

Description of the payment purpose.

8
referencestringRequired

Your unique reference for this quote.

9
client_meta_datastring

JSON string of custom metadata for internal tracking.

10
countrystringRequired

Two-letter ISO country code for the destination (e.g., NG, KE).

Note

One of either amount or settlement_amount must be provided. If both are provided, amount takes priority.

Create Payouts Quote

Create Payouts Quote Response
1
idstring

A globally unique identifier for the quote. This ID can be used to reference the quote in future payout requests or for auditing and logging purposes.

2
statusstring

The current state of the quote. Typically set to 'quote', but may include other statuses depending on the lifecycle (e.g., expired, used).

3
settlement_currencystring

The fiat currency that the recipient will receive after the crypto-to-fiat conversion. Example: 'NGN' for Nigerian Naira.

4
exchange_ratenumber

The calculated conversion rate used to determine how much fiat will be received per unit of crypto. This rate is time-sensitive and may vary across quotes.

5
quote_idstring

An internal reference string for the quote that can be passed into subsequent payout endpoints. Helps in tracking and verifying quote integrity during processing.

6
settlement_amountnumber

The exact amount of fiat the user will receive, calculated based on the crypto amount and exchange rate. This is the final payout value to the end user.

7
amountnumber

The original crypto amount provided in the quote request.

8
btc_ratenumber

Represents the Bitcoin to fiat exchange rate at the time of quote generation.

9
sat_amountnumber

The equivalent amount in satoshis for the requested crypto amount.

10
expiry_timestampnumber

The UNIX timestamp (in seconds) indicating when this quote will become invalid. After this time, the quote must be re-generated to reflect updated rates.

11
expires_in_textstring

A human-readable message showing how long the quote is valid. Common formats include 'This quote expires in 15 minutes'.

12
quote_textstring

A user-friendly summary of the quote details, such as 'NGN 327,202 will be settled for this transaction'. Often shown directly in UI confirmations.

Create Payouts Quote - Response

Initialize Payout

Initializes a payout after a quote has been created. The beneficiary field is a freeform object — use GET /api/payouts/supported-countries/:countryCode/requirements to know the exact fields required for each country.

Initialize Payout

Initialize Payout - Path Parameters
1
quoteIdstringRequired

The ID of the quote to initialize.

Initialize Payout - Request Body
1
customer_idstringRequired

Unique identifier for the customer initiating the transaction.

2
beneficiaryobjectRequired

Bank or wallet details of the recipient. Structure varies by country — use the GET /api/payouts/supported-countries/:countryCode/requirements endpoint to retrieve the correct fields.

3
referencestringRequired

Unique reference for this transaction.

4
payment_reasonstringRequired

Reason or description of the payment.

5
client_meta_datastring

JSON string of additional metadata.

6
callback_urlstring

Webhook URL for transaction status updates.

Initialize Payout - Request

Initialize Payout - Response
1
feesnumber

Any fees applied to the payout transaction. A value of 0 means no fees were charged for this transaction.

2
idstring

A unique identifier assigned to the payouts transaction. You can use this ID for tracking or referencing the transaction in future API calls.

3
addressstring

The cryptocurrency deposit address where the user should send funds. Only applicable for on-chain payments.

4
chainstring

The blockchain network to be used for the transaction. Examples include trc20, erc20, BITCOIN, depending on the selected from_asset.

5
statusstring

The current state of the payouts transaction. Values can include initiated, pending, completed, or failed.

6
payment_etastring

An estimate of how long it will take for the fiat payout to reach the beneficiary after the transaction is confirmed.

7
referencestring

The unique reference passed during initialization. Useful for reconciliation or auditing purposes.

8
from_assetstring

The cryptocurrency asset being converted in the payouts transaction, such as USDT, USDC, or BTC.

9
quote_idstring

The identifier of the quote that was previously generated and used to initialize this transaction.

10
payment_reasonstring

A description or note about the purpose of the payment.

11
settlement_currencystring

The fiat currency the user will receive in the payout (e.g., NGN, KES).

12
exchange_ratenumber

The rate at which the selected from_asset is converted into the settlement fiat currency. This rate was locked during quote generation.

13
expiry_timestampnumber

A UNIX timestamp representing when the initialization request or quote will expire. After this, a new quote will be required.

14
amountnumber

The original crypto amount to be paid by the customer.

15
btc_amountnumber

The equivalent amount of the crypto asset in BTC, used for internal calculations or when the user is paying in BTC.

16
sat_amountnumber

The equivalent Bitcoin amount in satoshis (1 BTC = 100,000,000 satoshis). Useful when using precise crypto payments.

17
expires_in_textstring

A human-readable string showing how much time is left before the transaction or quote expires.

18
beneficiary_detailsobject

Contains all verified and saved information about the payout beneficiary. Fields include: id, status (e.g., success, pending), country (ISO code), currency (e.g., NGN), created_at, updated_at, reference, and destination (account details).

19
destinationobject

Contains the actual payout account details. Fields include: type (e.g., BANK), bank_code, account_name, and account_number.

20
settlement_amountnumber

The total amount the beneficiary will receive in their local fiat currency after all conversions and fees.

Initialize Payout - Response

Beneficiary Lookup

Looks up and validates beneficiary account details before initiating a payout. Use this to confirm that the account number and bank code are valid for the given country.

Beneficiary Lookup

Beneficiary Lookup Request
1
countrystringRequired

Two-letter ISO country code (e.g., NG, KE).

2
account_numberstringRequired

The beneficiary's account number.

3
bank_codestringRequired

The bank code for the account.

4
typestringRequired

The account type (e.g., bank_account).

Beneficiary Lookup - Request

Beneficiary Lookup Response
1
statusstring

Indicates whether the lookup was successful.

2
account_namestring

The name registered to the provided account number.

3
account_numberstring

The validated account number.

4
bank_codestring

The bank code associated with the account.

Beneficiary Lookup - Response

Simulate Deposit

Simulates a crypto deposit for testing purposes. Only available in the sandbox environment.

Simulate Deposit

Simulate Deposit Request
1
quote_idstringRequired

The ID of the quote to simulate deposit for.

2
amountstringRequired

The amount of crypto to simulate.

3
tx_hashstringRequired

A simulated transaction hash.

Simulate Deposit - Request

Simulate Deposit Response
1
statusstring

Indicates whether the simulation request was successful.

2
messagestring

A human-readable message describing the result of the simulation.

3
successboolean

Indicates whether the simulated deposit was accepted successfully and the payouts process is progressing.

Simulate Deposit - Response

Finalize Payout

Finalizes a payout after the deposit has been confirmed. No request body is required — simply call this endpoint with the quoteId path parameter.

Finalize Payout

Finalize Payout - Path Parameters
1
quoteIdstringRequired

The ID of the quote to finalize.

Finalize Payout - Request

Finalize Payout Response
Note

The response is identical to that of Initialize Payout - Response. Refer to the Initialize Payout - Response section for field explanations.

Finalize Payout - Response

Get All Quotes

This endpoint retrieves all payouts quotes initiated under your company's account. It supports pagination, sorting, and returns comprehensive data on each transaction, including quote info, status, amounts, associated customers, beneficiaries, and metadata.

Use it to list recent or historical payouts activities for reporting, reconciliation, or transaction tracking.

Get All Quotes

Get All Quotes Request
1
orderstringOptional

Sort order of results. Can be `ASC` (oldest to newest) or `DESC` (newest to oldest).

2
pagenumberOptional

Page number for paginated results. Defaults to 1.

3
takenumberOptional

Number of results to return per page. Default is 10.

Get All Quotes - Request

Get All Quotes Response

Returns a list of payouts quotes and associated metadata including pagination details. Each quote object contains transaction details such as quote ID, customer, settlement data, status, and crypto conversion details.

1
idstring

Unique identifier for the payout transaction.

2
created_atstring

ISO 8601 timestamp indicating when the payout was created.

3
updated_atstring

ISO 8601 timestamp showing the last time the payout record was updated.

4
quote_idstring

Identifier linking this payout to its original quote.

5
company_idstring

Unique identifier of the company that initiated the payout.

6
customer_idstring

Unique identifier of the customer linked to this payout.

7
payment_reasonstring

Description provided for the payout, e.g., 'Invoice Payment' or 'Business'.

8
referencestring

A unique reference string used for reconciliation or tracking.

9
callback_urlstring

Webhook or callback URL provided to receive async updates. Null if not used.

10
beneficiary_idstring

Identifier linking the payout to a beneficiary record.

11
statusstring

The current status of the payout. Example values include success, expired, pending, failed.

12
client_meta_dataobject

Optional metadata provided by the client. Empty object if none is supplied.

13
sat_amountstring

The equivalent value of the crypto in satoshis (1 BTC = 100,000,000 sats).

14
btc_amountstring

The equivalent value of the crypto in BTC format.

15
amountstring

The amount of crypto provided in the payout request.

16
cent_amountstring

The amount represented in the smallest fiat unit (e.g., cents for USD, kobo for NGN).

17
settlement_amountnumber

The final fiat amount the beneficiary receives after conversion.

18
cent_feesstring

Any fees applied to the payout, expressed in the smallest fiat unit. '0' means no fee.

19
feesstring

Any fees applied to the payout transaction in standard fiat units.

20
addressstring

The deposit address (if applicable). Null for off-chain payouts.

21
sourcestring

The funding source for the payout, e.g., 'offchain' or 'onchain'.

22
from_assetstring

The cryptocurrency used for the payout, e.g., USDT, USDC, BTC.

23
chainstring

The blockchain network used for the transaction, e.g., trc20, erc20, BITCOIN.

24
to_currencystring

The fiat currency in which the beneficiary will be paid, e.g., NGN, KES.

25
payment_etastring

Estimated delivery time for the payout, e.g., '3-5 minutes'.

26
expirystring

The ISO 8601 timestamp when this payout quote or transaction expires.

27
exchange_rateobject

Conversion details including the applied rate, fiat currency, and BTC-specific fields if applicable.

28
beneficiaryobject

Information about the payout beneficiary including ID, country, currency, and account details.

29
destinationobject

The actual account or wallet where funds are delivered, e.g., bank account or mobile money wallet.

30
tripobject

Timeline information describing when the payout was submitted, initialized, processed, and completed.

31
companyobject

Details of the company initiating the payout, including name, country, type, and compliance data.

32
allowed_featuresobject

A set of feature flags showing which actions the company can perform on the platform.

33
metaobject

Pagination details including page number, item count, page count, and navigation flags.

Get All Quotes - Response

Get Quote by QuoteId

This endpoint allows you to fetch detailed information about a previously generated payouts quote using its unique quoteId. This is useful for checking the status, parameters, and settlement details of the quote.

Get Quote by QuoteId

Path Parameters
1
quoteIdstringRequired

The unique identifier of the quote you want to fetch.

Get Quote by QuoteId [cURL]

Response Fields
Note

The response for Get Quote by QuoteId returns a single payout quote object with its full details including status, amounts, beneficiary, and settlement data.

Get Quote by QuoteId - Response

Get Quote by Id

Get a quote by its internal transaction ID.

Get Quote by Id [GET]

Path Parameters
1
idstringRequired

The unique internal ID of the quote transaction that was previously generated. This ID is required to retrieve full details.

Get Quote by Id - Request

Get Quote by Reference

This endpoint allows you to retrieve a specific payouts quote using its unique reference. It's especially useful for systems that track transactions using external reference IDs rather than internal IDs or quote IDs.

Get Quote by Reference

Path Parameters
1
referencestringRequired

Unique transaction reference that identifies the specific quote you want to retrieve.

Note

The response for Get Quote by Reference is identical to that of Get Quote by QuoteId. Refer to the Get Quote by QuoteId section for detailed response structure and field explanations.

Get Quote by Reference - Request

Get Country Requirements

Get the beneficiary requirements for all supported countries.

Get Country Requirements

Path Parameters
1
countryCodestringRequired

The ISO 3166-1 alpha-2 country code for the target country (e.g., 'NG' for Nigeria, 'KE' for Kenya).

Get Country Requirements [cURL]

Response Fields
1
statusstring

Indicates if the API request was processed successfully.

2
messagestring

A human-readable message describing the result of the request.

3
codestring

The ISO 3166-1 alpha-2 country code of the target country. For example, 'KE' for Kenya, 'NG' for Nigeria.

4
namestring

The full official name of the country (e.g., 'Kenya', 'Nigeria').

5
flagstring

The country's flag represented as a Unicode emoji character.

6
dial_codestring

The international telephone dialing code for the country. For example, '254' for Kenya or '234' for Nigeria.

7
destinationobject

An object representing the payout destination types supported by the country (e.g., 'BANK', 'MOBILEMONEY'). Each key maps to an array of field requirement objects necessary to initiate a payout to that destination type.

Get Country Requirements - Response

Get Transaction Limits

This endpoint returns the minimum and maximum allowable transaction amounts for payouts operations per supported country. It provides limits in local currency as well as their equivalent values in USD based on real-time exchange rates.

Use this endpoint to validate or display country-specific limits before initiating a payout.

Get Transaction Limits

Response Fields
1
statusstring

Indicates whether the request to retrieve transaction limits was successful.

2
messagestring

A message describing the result of the request.

3
lower_limitstring

The minimum allowable payouts transaction amount in the country's local currency. Any transaction below this amount will be rejected.

4
higher_limitstring

The maximum allowable payouts transaction amount in the country's local currency. Transactions above this limit are not permitted.

5
currencystring

The local currency in which the limits are defined.

6
countrystring

The two-letter ISO 3166-1 alpha-2 code representing the country (e.g., 'NG' for Nigeria, 'GH' for Ghana).

7
ratestring

The real-time exchange rate between the local currency and USD.

8
usd_lower_limitstring

The minimum transaction amount converted to USD using the current exchange rate.

9
usd_higher_limitstring

The maximum transaction amount converted to USD based on the current exchange rate.

Get Transaction Limits - Response

Did you find this page useful?