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

# Montants et devises

> Les montants sont des entiers en unités mineures. Le nombre de décimales dépend de la devise (norme ISO 4217).

Tous les montants de l'API sont des **entiers en unités mineures** : la plus petite unité que la devise permet de compter. C'est délibéré : les flottants arrondissent mal l'argent, un entier ne le peut pas. Vous n'envoyez donc jamais de décimales, mais le nombre de zéros à retirer dépend de la devise.

## Nombre de décimales par devise

| Devise | Décimales | Montant `1 000` signifie |
| - | - | - |
| XAF, XOF (franc CFA) | 0 | 1 000 XAF |
| RWF, UGX | 0 | 1 000 RWF, 1 000 UGX |
| USD, EUR, GBP | 2 | 10,00 USD (soit 1 000 centimes) |
| CDF, GHS, KES, NGN, SLE, ZMW | 2 | 10,00 (soit 1 000 centimes) |

Pour convertir un montant lu par un humain, multipliez-le par `10` à la puissance du nombre de décimales : `10,50 USD` s'envoie `1050`, `5 000 XAF` s'envoie `5000` tel quel puisque le XAF n'a pas de sous-unité.

<Warning>
  N'envoyez jamais `5000.00` ou `10.50`. Une valeur décimale est refusée par la validation de l'API.
</Warning>

## Codes devise

Le code devise est un code **ISO 4217** de trois lettres (`XAF`, `USD`, `EUR`, la casse n'importe pas : Mercy Pay normalise en majuscules). Un code qui n'existe pas dans la norme, comme `ABC`, est refusé net.

```bash theme={null}
curl https://mercy-pay.com/api/v1/checkout-sessions \
  -H "Authorization: Bearer mp_sandbox_XXXXXXXXXXXXXXXX" \
  -H "Content-Type: application/json" \
  -d '{"amount": 1050, "currency": "USD", "description": "Abonnement mensuel"}'
```

## Minimums carte

En dessous d'un certain montant, le réseau carte lui-même refuse la transaction. Mercy Pay bloque donc la tentative en amont plutôt que de vous laisser découvrir l'échec après coup :

| Devise | Minimum carte |
| - | - |
| XAF | 500 XAF |
| USD | 0,50 USD (`50`) |
| EUR | 0,50 EUR (`50`) |
| GBP | 0,30 GBP (`30`) |

Sous ce seuil, la page de paiement ne propose plus que le mobile money, et une tentative de paiement par carte échoue avec le minimum exprimé en unités que votre client comprend (pas en unités mineures).


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