> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.crisscross.money/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.crisscross.money/_mcp/server.

# West Africa (XOF) Payouts

Use this guide when you want to send XOF payouts to West African CFA markets (e.g., Senegal, Cote d'Ivoire, Mali, Burkina Faso, Niger, Benin, Togo). These markets support **bank transfers** and **mobile wallets**.

## Overview

* **Currency:** XOF
* **Payment location:** ISO3 country code for the destination (e.g., `SEN`, `CIV`)
* **Supported rails:** Bank transfer, Mobile wallet
* **Payment methods:**
  * Bank transfer → `paymentMethodId: "banktransfer"`, `recipient.type: "bank_account"`
  * Mobile wallet → `paymentMethodId: "mobilemoney"`, `recipient.type: "mobile_money"`

## Required fields by rail

### Bank transfer

| Field               | Required | Notes                |
| ------------------- | -------- | -------------------- |
| `accountNumber`     | Yes      | Bank account number  |
| `bankCode`          | Yes      | Local bank code      |
| `accountHolderName` | Yes      | Name on the account  |
| `country`           | Yes      | ISO3 country code    |
| `phoneNumber`       | No       | International format |

### Mobile wallet

| Field         | Required | Notes                                                                |
| ------------- | -------- | -------------------------------------------------------------------- |
| `phoneNumber` | Yes      | MSISDN in international format                                       |
| `country`     | Yes      | ISO3 country code                                                    |
| `operator`    | Yes      | `mtn`, `orange`, `airtel`, `moov`, `wave`, `togocell` (Togo T-Money) |
| `name`        | No       | Recipient name                                                       |

Top-level required fields for every payout: `merchantId`, `merchantReference`, `destinationValue` (with `minorAmount` and `currency`), `paymentMethodId`, `paymentLocation`, `recipient`, `sender` (see [Sender details](#sender-details-required)).

## Sender details (required)

Every payout requires a `sender` object for KYT/KYC screening. `fullName`, `identity`, and `identityNumber` are required; the remaining sender fields are optional but may be required by certain destinations.

| Field            | Required | Notes                                                                                                                           |
| ---------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------- |
| `fullName`       | Yes      | Sender's full name                                                                                                              |
| `identity`       | Yes      | Identity document type: `passport`, `nationalId`, `driversLicense`, `residencePermit`, `businessRegistrationNumber`, or `other` |
| `identityNumber` | Yes      | Identity document number                                                                                                        |

### Togo T-Money

Mobile wallet payouts with `paymentLocation: "TGO"` and `operator: "togocell"` also require these sender fields. A payout without them is rejected before it is sent.

| Field         | Required | Notes                                         |
| ------------- | -------- | --------------------------------------------- |
| `phoneNumber` | Yes      | Sender's phone number in international format |
| `country`     | Yes      | Sender's ISO3 country code                    |

See [Create Payout](/api-reference/payouts/payouts/create-payout) for the full sender schema.

## Example requests

### Bank transfer (Senegal)

```json
{
  "merchantId": "your-merchant-id",
  "merchantReference": "PAYOUT-XOF-001",
  "destinationValue": {
    "minorAmount": 500000,
    "currency": "XOF"
  },
  "paymentMethodId": "banktransfer",
  "paymentLocation": "SEN",
  "recipient": {
    "type": "bank_account",
    "accountNumber": "0123456789",
    "bankCode": "001",
    "accountHolderName": "Awa Diop",
    "country": "SEN"
  },
  "sender": {
    "fullName": "Jane Smith",
    "identity": "passport",
    "identityNumber": "A12345678"
  }
}
```

### Mobile wallet (Cote d'Ivoire)

```json
{
  "merchantId": "your-merchant-id",
  "merchantReference": "PAYOUT-XOF-002",
  "destinationValue": {
    "minorAmount": 200000,
    "currency": "XOF"
  },
  "paymentMethodId": "mobilemoney",
  "paymentLocation": "CIV",
  "recipient": {
    "type": "mobile_money",
    "phoneNumber": "22501234567",
    "country": "CIV",
    "operator": "orange",
    "name": "Kouadio Amani"
  },
  "sender": {
    "fullName": "Jane Smith",
    "identity": "passport",
    "identityNumber": "A12345678"
  }
}
```

**Note:** XOF has no minor unit — `minorAmount` is the whole-franc amount (`minorAmount: 500000` = 500,000 FCFA; no multiplication).

## Related guides

* [Bank Transfers](/payout-bank-transfers)
* [Mobile Wallet](/payout-mobile-wallet)
* [Supported Destinations](/payout-supported-destinations)