Get a conversion rate
curl -X POST "https://api.finoq.africa/api/v2/currency/convert" \ -u "API_USERNAME:API_PASSWORD" \ -H "Content-Type: application/json" \ -d '{"from": "USD", "to": "KES"}'<?php$ch = curl_init("https://api.finoq.africa/api/v2/currency/convert");curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_USERPWD => "API_USERNAME:API_PASSWORD", CURLOPT_POST => true, CURLOPT_HTTPHEADER => ["Content-Type: application/json"], CURLOPT_POSTFIELDS => json_encode(["from" => "USD", "to" => "KES"]),]);$response = curl_exec($ch);curl_close($ch);echo $response;import requests
response = requests.post( "https://api.finoq.africa/api/v2/currency/convert", auth=("API_USERNAME", "API_PASSWORD"), json={"from": "USD", "to": "KES"},)print(response.json())const auth = Buffer.from("API_USERNAME:API_PASSWORD").toString("base64");
const response = await fetch("https://api.finoq.africa/api/v2/currency/convert", { method: "POST", headers: { Authorization: `Basic ${auth}`, "Content-Type": "application/json", }, body: JSON.stringify({ from: "USD", to: "KES" }),});
console.log(await response.json());Returns how many units of to one unit of from buys, at the rate
FinoQ prices global payments with.
Rates come from Yellow Card, the provider that settles global payments. Yellow Card quotes every currency against USD with two rates, and FinoQ converts through USD:
- Converting into USD (a collection) uses Yellow Card’s buy rate.
- Converting out of USD (a payout) uses Yellow Card’s sell rate.
- Any other pair, such as
KEStoNGN, is priced asfrominto USD, then USD intoto.
Rates include FX margin and refresh about every 15 minutes. Currencies Yellow Card does not quote fall back to a reference market rate.
Multiply an amount in from by conversion_rate to get the amount in
to, then round to two decimal places before sending it on a payment.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”object
ISO 4217 code of the currency you have.
ISO 4217 code of the currency you want.
Examples
{ "from": "USD", "to": "KES"}{ "from": "ZMW", "to": "KES"}Responses
Section titled “Responses”The conversion rate.
object
Units of to for one unit of from, sourced from Yellow Card.
When the rate was fetched from Yellow Card.
Where FinoQ served the rate from. Informational only.
Example
{ "from": "USD", "to": "KES", "conversion_rate": 128.5, "created_at": "2026-09-27T09:15:00Z", "source": "provider"}The request was rejected (validation or business-rule failure).
object
Examples
{ "error_code": "invalid_argument", "error_message": "the transaction amount is insufficient as it wont cater for cost: (4.62)", "status_code": 400}{ "error_code": "invalid_argument", "error_message": "The passed channel is not active", "status_code": 400}Missing or invalid Basic auth credentials.
object
Example
{ "error_code": "invalid_argument", "error_message": "the transaction amount is insufficient as it wont cater for cost: (4.62)", "status_code": 400}