The ChainPaye Payment Link API now supports four currencies:
| Currency | Code | Name | Payment Methods | Status |
|---|---|---|---|---|
| 🇳🇬 Nigerian Naira | NGN |
Nigerian Naira | Bank transfer only | ✅ Active |
| 🇺🇸 US Dollar | USD |
United States Dollar | Card payments, Bank transfer | ✅ Active |
| 🇬🇧 British Pound | GBP |
British Pound Sterling | Card payments, Bank transfer | ✅ Active |
| 🇪🇺 Euro | EUR |
Euro | Card payments, Bank transfer | ✅ Active |
- Supported Payment Types:
bankonly - Restriction: Card payments are not supported for NGN
- Reason: Local banking regulations and infrastructure
{
"currency": "NGN",
"paymentType": "bank" // ✅ Valid
}{
"currency": "NGN",
"paymentType": "card" // ❌ Invalid - will return validation error
}- Supported Payment Types:
card(recommended),bank - Card Payments: Credit/debit cards supported
- Bank Transfers: Also available as alternative
{
"currency": "USD",
"paymentType": "card" // ✅ Valid (recommended)
}{
"currency": "GBP",
"paymentType": "bank" // ✅ Valid (alternative)
}POST /api/v1/payment-links
{
"merchantId": "merchant-ng-123",
"userId": "user-ng-456",
"name": "Lagos Tech Hub",
"amount": "50000.00",
"currency": "NGN",
"token": "NGN",
"selectedCurrency": "NGN",
"paymentType": "bank",
"description": "Nigerian local payment"
}POST /api/v1/payment-links
{
"merchantId": "merchant-uk-123",
"userId": "user-uk-456",
"name": "London Services Ltd",
"amount": "150.00",
"currency": "GBP",
"token": "USDT",
"selectedCurrency": "GBP",
"paymentType": "card",
"description": "UK consulting services"
}POST /api/v1/payment-links
{
"merchantId": "merchant-eu-123",
"userId": "user-eu-456",
"name": "Berlin Digital GmbH",
"amount": "200.00",
"currency": "EUR",
"token": "USDT",
"selectedCurrency": "EUR",
"paymentType": "card",
"description": "European digital services"
}- Must be one of:
NGN,USD,GBP,EUR - Case-sensitive (must be uppercase)
- Invalid currencies will return HTTP 400 with validation error
- NGN + card = ❌ Invalid
- NGN + bank = ✅ Valid
- USD/GBP/EUR + card = ✅ Valid
- USD/GBP/EUR + bank = ✅ Valid
{
"success": false,
"error": "Validation failed",
"message": "Body: Currency must be one of: NGN, USD, GBP, EUR",
"timestamp": "2026-02-04T02:15:00.000Z"
}{
"success": false,
"error": "Validation failed",
"message": "Card payments are supported for USD, GBP, EUR. NGN must use bank transfer.",
"timestamp": "2026-02-04T02:15:00.000Z"
}All currency fields in the database support the four currencies:
- PaymentLink model
- Transaction model
- FiatVerification model
- Payout model
TypeScript interfaces ensure type safety:
type SupportedCurrency = 'NGN' | 'USD' | 'GBP' | 'EUR';- Existing NGN and USD payment links continue to work
- No breaking changes to existing API endpoints
- All existing functionality preserved
- Optimized for Nigerian banking system
- Supports local bank transfers
- Compliant with CBN regulations
- Global standard currency
- Wide card payment acceptance
- International transactions supported
- UK and Commonwealth markets
- FCA compliant payment processing
- Sterling-based transactions
- EU/EEA market coverage
- SEPA payment support
- PSD2 compliant processing
Use the provided test scripts to verify currency support:
# Test all currencies
node test-new-currencies.js
# Comprehensive testing
node test-currency-comprehensive.jsPotential future currency additions:
- CAD (Canadian Dollar)
- AUD (Australian Dollar)
- JPY (Japanese Yen)
- CHF (Swiss Franc)
Contact the development team to request additional currency support.