Supported chains & currencies
Discover supported chains and tokens at runtime.
payzum supports a range of blockchain networks and tokens. Because the supported set evolves as chains are added or updated, payzum exposes a live endpoint that is always authoritative.
GET /v1/currencies — the live source of truth
curl -s "$PAYZUM_BASE/v1/currencies" | jq .This endpoint requires no authentication. It returns every (chain, symbol) tuple currently accepted by payzum. Always query this endpoint at runtime to discover supported currencies — do not hardcode a static list in your integration.
Do NOT hardcode contract addresses or currency codes in your codebase. Contract addresses and supported tokens change as chains are added or updated. Use GET /v1/currencies to fetch the live set before rendering currency pickers or validating user input.
Suffix-style currency codes
payzum uses a suffix-style encoding for currency codes that combines the token symbol with a chain identifier:
usdttrc20 → USDT on Tron
usdterc20 → USDT on Ethereum
usdcpolygon → USDC on Polygon
The suffix identifies the chain; the prefix identifies the token. Pass these codes as the pay_currency field when creating an invoice:
curl -s "$PAYZUM_BASE/v1/currencies" | jq '[.currencies[] | .code]'Supported asset categories
At a high level, payzum accepts two categories of assets across its supported networks:
Native coins — the base currency of each chain (for example, BTC, ETH, TRX, SOL, LTC, DOGE, BNB, MATIC, and others). Native coins are transferred directly on-chain without a token contract.
Stablecoins — fiat-pegged tokens such as USDT, USDC, and DAI deployed across multiple chains. These typically offer faster settlement confirmation than volatile assets and are widely preferred for merchant invoicing.
Example: list all available codes
export PAYZUM_BASE=https://merchant.payzum.com # staging/sandbox: https://staging.payzum.com
# Print all supported currency codes
curl -s "$PAYZUM_BASE/v1/currencies" | jq '[.currencies[] | .code]'
# Count how many are supported
curl -s "$PAYZUM_BASE/v1/currencies" | jq '.currencies | length'Using currencies in invoice creation
Pass any code returned by /v1/currencies as pay_currency in POST /v1/payment. If you supply an unknown or unsupported code payzum returns 400 CURRENCY_NOT_SUPPORTED.
curl -X POST "$PAYZUM_BASE/v1/payment" \
-H "x-api-key: $PAYZUM_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"price_amount": 25.00,
"price_currency": "usd",
"pay_currency": "usdttrc20"
}' | jq .pay_currencySee the API reference for the full list of invoice parameters.