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

# Pay (offramp)

> Verify an on-chain transfer and disburse local fiat. Amount limits are per transaction.

Offramp endpoint. Provide a `transaction_hash` for a confirmed stablecoin transfer, plus destination details for the target currency.

<ParamField path="currency_code" type="string">
  Destination currency. Defaults to Kenya rules when omitted.
</ParamField>

## Common fields

<ParamField body="transaction_hash" type="string" required>
  On-chain transaction hash. Must not have been processed before.
</ParamField>

<ParamField body="chain" type="string">
  `BASE`, `CELO` (default), `STELLAR`, `POLYGON`, `SOLANA`, `ETHEREUM`, `BNB`, `AVALANCHE`, or `ARBITRUM`.
</ParamField>

<ParamField body="amount" type="number" required>
  Fiat amount to disburse. Limits are per transaction — see [Limits](/limits).
</ParamField>

<ParamField body="callback_url" type="string">
  Optional webhook URL for this transaction.
</ParamField>

<ParamField body="reference" type="string">
  Optional client reference; a UUID is generated if omitted.
</ParamField>

## Currency-specific fields

### KES

| Field            | Rules                                             |
| ---------------- | ------------------------------------------------- |
| `type`           | `MOBILE`, `PAYBILL`, `BUY_GOODS`, `BANK_TRANSFER` |
| `shortcode`      | Required for mobile / paybill / buy goods         |
| `account_number` | Required for paybill / bank transfer              |
| `mobile_network` | `Safaricom` or `Airtel` when `type=MOBILE`        |
| `amount`         | See [Limits](/limits)                             |

### UGX

| Field            | Rules                 |
| ---------------- | --------------------- |
| `shortcode`      | 10 digits             |
| `mobile_network` | `Airtel` or `MTN`     |
| `amount`         | See [Limits](/limits) |

### NGN

| Field                                                      | Rules                 |
| ---------------------------------------------------------- | --------------------- |
| `account_name`, `account_number`, `bank_name`, `bank_code` | Required              |
| `amount`                                                   | See [Limits](/limits) |

### GHS

| Field            | Rules                          |
| ---------------- | ------------------------------ |
| `shortcode`      | Required                       |
| `mobile_network` | `AirtelTigo`, `MTN`, `Telecel` |
| `amount`         | See [Limits](/limits)          |

### MWK

| Field                                                      | Rules                                             |
| ---------------------------------------------------------- | ------------------------------------------------- |
| `type`                                                     | `MOBILE` or `BANK_TRANSFER`                       |
| `shortcode`                                                | Phone number for `MOBILE`                         |
| `mobile_network`                                           | `Airtel Money` or `TNM Mpamba` when `type=MOBILE` |
| `account_name`, `account_number`, `bank_name`, `bank_code` | For `BANK_TRANSFER`                               |
| `amount`                                                   | See [Limits](/limits)                             |

### CDF

| Field            | Rules                              |
| ---------------- | ---------------------------------- |
| `shortcode`      | Required                           |
| `mobile_network` | `Airtel Money` or `Mpesa`          |
| `amount`         | See [Limits](/limits)              |
| `currency`       | Optional: `CDF` (default) or `USD` |

### ETB

| Field            | Rules                              |
| ---------------- | ---------------------------------- |
| `shortcode`      | Required                           |
| `mobile_network` | `Telebirr`, `Cbe Birr`, or `MPESA` |
| `amount`         | See [Limits](/limits)              |

<RequestExample>
  ```bash theme={null}
  curl -X POST "{{base_url}}/v1/pay/KES" \
    -H "x-api-key: YOUR_CONSUMER_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "transaction_hash": "0xabc123",
      "chain": "CELO",
      "type": "MOBILE",
      "shortcode": "254712345678",
      "amount": 1000,
      "mobile_network": "Safaricom"
    }'
  ```
</RequestExample>
