> ## Documentation Index
> Fetch the complete documentation index at: https://docs.chainpal.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Types & Enums

> Reference for supported tokens, networks, currencies, and status values

# 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 |

> [!NOTE]
>
> `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 |

> [!NOTE]
>
> `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.

```json theme={null}
{
  "email": "customer@example.com",
  "firstName": "John",
  "lastName": "Doe"
}
```

| 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) |

## Metadata Object

Custom key-value pairs for storing additional data with payments.

```json theme={null}
{
  "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


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.