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

# Pays et opérateurs

> Lisez la liste en direct, l'état de chaque opérateur, les limites et votre prix

[`GET /mobile-money/countries`](https://docs.kemypay.com/fr/api-reference/catalog/countries) renvoie les pays ouverts pour votre compte, leurs opérateurs, et pour chaque opérateur et devise : l'état en direct, les montants minimum et maximum, les décimales et **votre prix tout compris**. C'est tout ce qu'il faut pour construire un écran de paiement.

```bash theme={null}
curl "https://api.kemypay.com/v1/mobile-money/countries?country=CMR" \
  -H "Authorization: Bearer sk_live_YOUR_KEY"
```

```json theme={null}
{
  "country": "CMR",
  "name": "Cameroon",
  "currencies": ["XAF"],
  "operators": [
    {
      "operator": "ORANGE_CMR",
      "name": "Orange",
      "currency": "XAF",
      "decimals": 0,
      "collection": { "status": "closed", "available": false, "min_amount": "1.00", "max_amount": "1000000.00",
                      "fee": { "percent": "3.27", "fixed_tiers": [], "fixed_currency": null } },
      "payout":     { "status": "operational", "available": true, "min_amount": "1.00", "max_amount": "1000000.00",
                      "fee": { "percent": "2", "fixed_tiers": [], "fixed_currency": null } },
      "refund":     { "status": "operational", "available": false, "min_amount": "1.00", "max_amount": "1000000.00", "fee": null }
    }
  ]
}
```

## Codes

* Les pays utilisent les codes **ISO 3166-1 alpha-3** (`CMR`, `CIV`, `COD`), les devises l'ISO 4217 (`XAF`, `XOF`, `KES`).
* Chaque opérateur a un **code stable** : la marque et le pays, par exemple `MTN_CMR` ou `ORANGE_CIV`. **Enregistrez ce code**, pas le nom.

## Lisez l'état avant d'afficher un opérateur

| `status` | Signification | `available` |
| - | - | - |
| `operational` | Fonctionne normalement | `true` |
| `delayed` | Problèmes chez l'opérateur. Les payouts et remboursements sont mis en file d'attente ; les encaissements ne sont pas proposés | `true` pour les payouts et remboursements, `false` pour les encaissements |
| `closed` | L'opérateur refuse toutes les demandes en ce moment | `false` |
| `unavailable` | Cette opération n'existe pas pour cet opérateur | `false` |

**Utilisez `available`.** Masquez un opérateur de votre écran de paiement quand `collection.available` vaut `false`, et proposez les autres opérateurs du pays. Un opérateur fermé revient souvent en quelques minutes ou quelques heures.

Les payouts et remboursements ne sont pas encore ouverts : leur état est donné pour information, et les remboursements n'ont pas encore de prix (`fee: null`).

## Montants et décimales

* `min_amount` et `max_amount` s'appliquent à **ce que paie le client**, par transaction.
* `decimals` est le nombre de décimales accepté **par cet opérateur**. `0` veut dire montants entiers seulement (`5000`, pas `5000.50`).

> [!WARNING]
>
> Les décimales dépendent de l'**opérateur**, pas seulement de la devise. En Ouganda, `MTN_UGA` accepte 2 décimales et `AIRTEL_UGA` aucune, tous deux en UGX. Arrondissez aux `decimals` de l'opérateur choisi par votre client.

## Pays activés pour votre compte

Tous les pays sont activés par défaut. Un pays désactivé pour votre compte disparaît de la liste, et le demander renvoie `422 COUNTRY_NOT_SUPPORTED`. Contactez le [support](mailto:hi@kemypay.com) si vous en avez besoin.

## Bonnes pratiques

> **Mettez la liste en cache quelques minutes**
>
> Les données des opérateurs sont rafraîchies toutes les 10 minutes chez nous. Mettez-les en cache sur votre serveur au lieu d'appeler l'API à chaque affichage de page.

> **Ne codez jamais en dur les limites, décimales ou prix**
>
> Les opérateurs les changent, parfois sans prévenir. Lisez-les dans l'API.

> **Vous ne savez pas à quel opérateur appartient un numéro ?**
>
> Appelez [`POST /mobile-money/predict-operator`](https://docs.kemypay.com/fr/api-reference/collections/predict-operator), ou laissez `operator` vide quand vous demandez un paiement : nous le devinons à partir du numéro.

Voir la liste complète dans [Pays couverts](https://docs.kemypay.com/fr/supported-countries/mobile-money.md).


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