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_currency

See the API reference for the full list of invoice parameters.