Skip to main content
Paycrest follows international standards for currency and institution codes to ensure consistency and compatibility across different systems and regions.

Currency Codes

Paycrest uses ISO 4217 standard currency codes, which are the internationally recognized three-letter codes for currencies.

Examples:

  • NGN - Nigerian Naira
  • KES - Kenyan Shilling
  • UGX - Ugandan Shilling
  • TZS - Tanzanian Shilling
  • MWK - Malawi Kwacha
  • BRL - Brazilian Real
All currency codes used in Paycrest API calls must follow the ISO 4217 standard. These codes are case-sensitive and should be provided in uppercase.

Institution Codes

Paycrest uses a hybrid approach for institution codes to accommodate both international banks and local financial institutions.

SWIFT Codes (Banks)

For a bank that has a SWIFT/BIC, the Paycrest code is the bank’s 8-character SWIFT/BIC code.

Examples:

  • GTBINGLA - Guaranty Trust Bank (Nigeria)
  • FBNINGLA - First Bank of Nigeria
  • CITINGLA - Citibank Nigeria
  • SCBLNGLA - Standard Chartered Bank Nigeria
  • KCBLKENX - Kenya Commercial Bank
  • EQBLKENA - Equity Bank Kenya
Some codes reflect a bank’s former name but are still its real BIC — e.g. ZEIBNGLA (Zenith, from “Zenith International Bank”), NAMENGLA (Sterling, from the former NAL Bank), and KDHLNGLA (FBNQuest, from Kakawa Discount House). A few historical codes differ from the bank’s current SWIFT — use the Paycrest code, not the SWIFT you may find elsewhere:
  • SBICNGLA — Stanbic IBTC Bank (SWIFT SBICNGLX)
  • PROVNGLA — Providus Bank (SWIFT UMPLNGLA)

Custom Codes (Local Institutions)

For mobile payment providers, local banks without SWIFT codes, and other financial institutions, Paycrest uses custom 8-character codes built as: 4 letters from the institution’s name (where possible) + the 2-letter ISO country code + PC (PayCrest).

Examples:

  • KUDANGPC - Kuda (Nigeria): KUDA + NG + PC
  • OPAYNGPC - OPay (Nigeria): OPAY + NG + PC
  • MONINGPC - Moniepoint (Nigeria): MONI + NG + PC
  • SAFAKEPC - Safaricom M-Pesa (Kenya): SAFA + KE + PC
  • AIRTKEPC - Airtel Money (Kenya): AIRT + KE + PC
For KES Till and Paybill offramps, keep SAFAKEPC (or the same mobile institution you use for M-Pesa) and set destination.recipient.metadata.channel to Till or Paybill (and businessNumber for Paybill). See Sender API Integration — KES mobile money.

Code Format Rules

Currency Codes

  • Format: 3 uppercase letters
  • Standard: ISO 4217
  • Case: Always uppercase
  • Examples: NGN, KES, UGX

Institution Codes

  • Format: 8 characters
  • Banks with a SWIFT/BIC: the bank’s 8-character SWIFT/BIC code
  • Local Institutions (no SWIFT): 4 letters from the name + 2-letter ISO country code + PC
  • Case: Always uppercase
  • Examples: GTBINGLA, KUDANGPC

API Usage

When making API calls, always use the correct code format. For new integrations, use POST /v2/sender/orders (offramp: stablecoin → fiat). Fiat currency is destination.currency; the bank or mobile-money institution is destination.recipient.institution. Crypto asset and chain are on source (source.currency, source.network).
// v2 offramp — correct institution and currency codes (see OpenAPI for full required fields)
const order = {
  amount: "100",
  source: {
    type: "crypto",
    currency: "USDT",
    network: "base",
    refundAddress: "0xYourRefundAddress",
  },
  destination: {
    type: "fiat",
    currency: "NGN", // ISO 4217 — correct fiat currency code
    recipient: {
      institution: "GTBINGLA", // Correct institution code
      accountIdentifier: "1234567890",
      accountName: "John Doe",
      memo: "Payment",
    },
  },
};
Legacy v1 POST /sender/orders (https://api.paycrest.io/v1/...) uses a flatter body (amount, token, network, recipient) with the same uppercase institution and currency strings; prefer v2 for new work.

Finding Institution Codes

Use the GET /institutions/ endpoint to get the complete list of supported institutions for any currency:
curl -X GET "https://api.paycrest.io/v2/institutions/NGN" \
  -H "API-Key: your-api-key"
This endpoint returns all supported institutions with their codes, names, and types (bank or mobile_money).
Institution codes are case-sensitive and must be provided exactly as returned by the API. Always use the official codes from the API rather than guessing or using external SWIFT code databases.