Types & Enums
This page documents all the types, enums, and constants used in the ChainPal API.
Payment Status
The current state of a payment session.
| Value | Description |
|---|
pending | Payment created, waiting for customer to complete checkout |
processing | Payment received, being processed and settled |
completed | Payment successful, funds settled to merchant |
expired | Payment window expired before funds were received |
failed | Payment failed due to an error |
API Environment
| Value | Description |
|---|
test | Sandbox environment for development and testing |
live | Production environment with real transactions |
Supported Tokens
Cryptocurrencies accepted for payment.
| Token | Name | Description |
|---|
USDT | Tether | USD-pegged stablecoin |
USDC | USD Coin | USD-pegged stablecoin |
Supported Networks
Blockchain networks available for payments. Availability varies by merchant country.
| Network | Chain | Chain ID |
|---|
base | Base (Coinbase L2) | 8453 |
celo | Celo | 42220 |
celo-sepolia | Celo Sepolia Testnet | 44787 |
polygon | Polygon | 137 |
bsc | BNB Smart Chain | 56 |
arbitrum | Arbitrum One | 42161 |
lisk | Lisk | 1135 |
celo-sepolia is only available in the test environment for development
purposes.
Token/Network Availability by Country
The available token/network combinations depend on the merchant’s country:
Nigeria (NGN)
| Token | Available Networks |
|---|
| USDC | base, celo, celo-sepolia (test only), polygon |
| USDT | celo, polygon |
Ghana (GHS)
| Token | Available Networks |
|---|
| USDC | base, celo, polygon |
| USDT | celo, polygon |
Kenya (KES)
| Token | Available Networks |
|---|
| USDC | base, celo, polygon |
| USDT | celo, polygon |
South Africa (ZAR)
| Token | Available Networks |
|---|
| USDT | bsc |
Settlement Currencies
Fiat currencies for settlement (payout to bank accounts).
| Code | Currency | Country |
|---|
NGN | Nigerian Naira | Nigeria |
GHS | Ghanaian Cedi | Ghana |
KES | Kenyan Shilling | Kenya |
ZAR | South African Rand | South Africa |
USD is supported for collection (charging customers in USD), but
settlement always occurs in the merchant’s local currency.
Transaction Limits
Local Currency Limits
| Country | Currency | Minimum | Maximum |
|---|
| Nigeria | NGN | 1,000.00 | 1,000,000.00 |
| Ghana | GHS | 20.00 | 5,000.00 |
| Kenya | KES | 50.00 | 250,000.00 |
| South Africa | ZAR | 35.00 | 50,000.00 |
USD Collection Limits
When collecting in USD (collectInUSD: true):
| Country | Minimum USD | Maximum USD |
|---|
| Nigeria | $1.00 | $2,000.00 |
| Ghana | $1.50 | $1,600.00 |
| Kenya | $1.50 | $4,000.00 |
| South Africa | $2.00 | $5,000.00 |
Global Defaults:
- Minimum: $1.00
- Maximum: $5,000.00
Minimum Crypto Amounts
| Token | Minimum Amount |
|---|
| USDT | 1.0 |
| USDC | 1.0 |
Token Contract Addresses
Official contract addresses for supported tokens on each network.
USDT (Tether)
| Network | Contract Address |
|---|
| Arbitrum One | 0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9 |
| Base | 0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2 |
| BNB Smart Chain | 0x55d398326f99059fF775485246999027B3197955 |
| Lisk | 0x05D032ac25d322df992303dCa074EE7392C117b9 |
| Celo | 0x48065fbBE25f71C9282ddf5e1cD6D6A887483D5e |
| Polygon | 0xc2132D05D31c914a87C6611C10748AEb04B58e8F |
USDC (USD Coin)
| Network | Contract Address |
|---|
| Arbitrum One | 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 |
| Base | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 |
| Lisk | 0xF242275d3a6527d877f2c927a82D9b057609cc71 |
| Celo | 0xcebA9300f2b948710d2653dD7B07f33A8B32118C |
| Celo Sepolia | 0x01C5C0122039549AD1493B8220cABEdD739BC44E |
| Polygon | 0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359 |
Customer Info Object
Customer information included in payment requests.
| Field | Type | Required | Description |
|---|
email | string | Yes | Customer’s email address |
firstName | string | No | Customer’s first name (2-50 characters) |
lastName | string | No | Customer’s last name (2-50 characters) |
Custom key-value pairs for storing additional data with payments.
{
"orderId": "12345",
"productName": "Premium Plan",
"userId": "user_abc123"
}
- Keys and values must be strings
- Maximum key length: 50 characters
- Maximum value length: 500 characters
- Maximum pairs: 20