List Supported Currencies

Overview

Retrieve all currencies supported by SyncPay, organized by type (fiat and cryptocurrency). This endpoint provides a comprehensive list of currencies you can accept payments in and pay out to.

Use this endpoint to:

  • Display currency options to customers during checkout
  • Validate currency inputs in your application
  • Build multi-currency payment flows
  • Understand which currencies are available for payins and payouts

Note: This is a public endpoint - no authentication is required.


Authentication

Type: None (Public endpoint)

No authentication required. The list of supported currencies is the same across all merchants and environments.


Request

Method & Path

GET /api/v1/payments/supported-currencies

Example Request

curl https://api.usesyncpay.com/api/v1/payments/supported-currencies

Response

200 – Success

Returns all supported currencies organized by type.

{
  "fiat": [
    "GHS",
    "KES",
    "NGN",
    "TZS",
    "UGX",
    "USD",
    "ZAR"
  ],
  "crypto": [
    "BTC",
    "ETH",
    "USDT_ERC20",
    "USDT_TRC20"
  ]
}

Response Fields

Field Type Description
fiat array List of fiat currency codes (ISO 4217 format)
crypto array List of cryptocurrency codes with network identifiers

Supported Fiat Currencies

Currency Code Currency Name Region
USD US Dollar Global
NGN Nigerian Naira Nigeria
GHS Ghanaian Cedi Ghana
KES Kenyan Shilling Kenya
TZS Tanzanian Shilling Tanzania
UGX Ugandan Shilling Uganda
ZAR South African Rand South Africa

Supported Cryptocurrencies

Currency Code Cryptocurrency Network Blockchain
USDT_TRC20 Tether USDT TRC20 Tron
USDT_ERC20 Tether USDT ERC20 Ethereum
BTC Bitcoin Native Bitcoin
ETH Ethereum Native Ethereum

Cryptocurrency Currency Format

Cryptocurrencies with multiple networks use an underscore to separate the asset from the network:

  • Format: {ASSET}_{NETWORK}
  • Example: USDT_TRC20 = USDT on Tron network

For cryptocurrencies with a single network (like Bitcoin), no network suffix is used:

  • Format: {ASSET}
  • Example: BTC = Bitcoin

Example Use Case

Scenario: Your marketplace platform operates across multiple countries. Sellers need to select their preferred payout currency based on their location and business needs. You need to display all available currencies organized by type (fiat and cryptocurrency) so sellers can make informed decisions about how they receive their earnings.

Implementation:

  1. Call GET /api/v1/payments/supported-currencies
  2. Display fiat currencies as "Traditional Currency" options
  3. Display crypto currencies as "Cryptocurrency" options
  4. When seller selects a currency, validate it's in the supported list
// Example: Get and display currencies
const response = await fetch('https://api.usesyncpay.com/api/v1/payments/supported-currencies');
const data = await response.json();

console.log('Fiat currencies:', data.fiat);
// ['GHS', 'KES', 'NGN', 'TZS', 'UGX', 'USD', 'ZAR']

console.log('Crypto currencies:', data.crypto);
// ['BTC', 'ETH', 'USDT_ERC20', 'USDT_TRC20']

Currency-Specific Features

Fiat Currencies

Payment Methods: Each fiat currency supports different payment methods based on the region:

  • Bank Transfer: All fiat currencies
  • Mobile Money: NGN, GHS, KES, TZS, UGX
  • Card: USD, NGN, GHS, KES, ZAR
  • USSD: NGN only

To see which payment methods support a specific currency, use the List Payment Methods endpoint.

Cryptocurrencies

Network Fees: Cryptocurrency transactions incur blockchain network fees:

  • TRC20: Low fees (~$1 USD)
  • ERC20: Higher fees (varies with Ethereum gas prices)
  • BTC: Varies with network congestion
  • ETH: Varies with network congestion

Confirmation Times:

  • TRC20: 1-2 minutes
  • ERC20: 3-5 minutes
  • BTC: 30-60 minutes
  • ETH: 3-5 minutes

Filtering Currencies by Payment Method

To see which currencies are supported for a specific payment method:

  1. Call List Payment Methods
  2. Find your desired payment method
  3. Check its currencies array

Example:

// Get payment methods
const methodsResponse = await fetch('https://api.usesyncpay.com/api/v1/payments/payment-methods');
const methodsData = await methodsResponse.json();

// Find bank_transfer method
const bankTransfer = methodsData.payment_methods.find(m => m.id === 'bank_transfer');

// See supported currencies for bank transfer
console.log(bankTransfer.currencies);
// ['USD', 'NGN', 'GHS', 'KES', 'ZAR']

Currency Validation

Use this endpoint to validate currency inputs in your application:

async function isValidCurrency(currency) {
  const response = await fetch('https://api.usesyncpay.com/api/v1/payments/supported-currencies');
  const data = await response.json();
  
  const allCurrencies = [...data.fiat, ...data.crypto];
  return allCurrencies.includes(currency.toUpperCase());
}

// Example usage
await isValidCurrency('NGN'); // true
await isValidCurrency('JPY'); // false
await isValidCurrency('USDT_TRC20'); // true

Important Notes

Currency Codes are Case-Sensitive

Always use uppercase currency codes in API requests:

  • Correct: USD, NGN, USDT_TRC20
  • Incorrect: usd, ngn, usdt_trc20

Dynamic Currency List

The list of supported currencies may expand as SyncPay adds support for new regions and cryptocurrencies. Always call this endpoint dynamically rather than hardcoding currency lists in your application.

Payout vs Payin Support

This endpoint shows currencies available for accepting payments (payins). For payout-supported currencies, use:

Not all payin currencies are available for payouts due to provider limitations.


Common Questions

Can I accept payments in multiple currencies?

Yes! SyncPay supports multi-currency checkouts. When creating a checkout, you can:

  1. Set a base currency (e.g., USD)
  2. Allow customers to pay in any supported currency
  3. Let customers choose their preferred currency at checkout

See Create Checkout for details.

How are exchange rates calculated?

When a customer pays in a currency different from your base currency:

  1. SyncPay fetches real-time exchange rates
  2. Settles to your account in the customer's payment currency or USD.

Use the Create Quote endpoint to get real-time exchange rates before completing a transaction.



Next Steps

Now that you know which currencies are supported:

  1. Explore payment methods for each currency
  2. Create a checkout to start accepting payments
  3. Get a quote for real-time pricing