Get a Quote
Overview

Request a priced quote before you create a remittance. Quotes expire after 60 seconds by default. Pass the returned quote_id to create.


Endpoint Reference
HTTP MethodPOST
Endpoint URL/api/v2/remit/quotes
Base URLhttps://base-url-here.com
DescriptionPrice a send or receive amount on a supported corridor.
Request Body
FieldTypeDescriptionRequired
wallet_nostringFunding wallet slug. Currency must match source_currency.Yes
source_currencystringKES or USD.Yes
destination_countrystringISO country from destinations, e.g. UG.Yes
destination_currencystringMust match that country, e.g. UGX for UG.Yes
railstringmobile_money or bank.Yes
amountnumericAmount to price. No thousand separators.Yes
amount_sidestringsend prices from the debit amount. receive prices from the payout amount.Yes
Success Response
FieldTypeDescription
data.quote_iduuidPass this to create.
data.expires_atstringISO-8601 expiry.
data.currency_pairstringe.g. KES - UGX.
data.provider_ratestringWholesale FX rate.
data.customer_ratestringRate after merchant markup.
data.markup_percentagestringApplied markup.
data.send_amountstringSource amount before tariff.
data.send_currencystringWallet currency.
data.receive_amountstringAmount the recipient gets.
data.receive_currencystringDestination currency.
data.debit_amountstringAmount withdrawn from the wallet on execute.
data.tariffstringProvider tariff included in pricing.
data.railstringQuoted rail.

Example: send KES, receive UGX
curl --location --request POST 'https://base-url-here.com/api/v2/remit/quotes' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <token>' \
--header 'X-Business-Id: 9' \
--data-raw '{
    "wallet_no": "WALLET1",
    "source_currency": "KES",
    "destination_country": "UG",
    "destination_currency": "UGX",
    "rail": "mobile_money",
    "amount": "1000",
    "amount_side": "send"
}'
{
    "success": true,
    "message": "Success",
    "data": {
        "quote_id": "11111111-1111-1111-1111-111111111111",
        "expires_at": "2026-10-22T09:01:00+00:00",
        "currency_pair": "KES - UGX",
        "provider_rate": "28.450000000000",
        "customer_rate": "28.023250000000",
        "markup_percentage": "1.50",
        "send_amount": "1000.00",
        "send_currency": "KES",
        "receive_amount": "28023.25",
        "receive_currency": "UGX",
        "debit_amount": "1000.00",
        "tariff": "0.00",
        "rail": "mobile_money"
    }
}
Country and currency must be a supported pair (UG with UGX, KE with KES, and so on). A mismatch returns HTTP 422. If the FX provider is unavailable, the API returns HTTP 502.

Terms of Use & Legal

By using this API, you agree to our Terms of Service and Privacy Policy. Do not share sensitive data or credentials.