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

# Paiements

> Un paiement est la trace d'un encaissement : montants, commission, moyen de paiement et statut.

Un **paiement** est créé lorsqu'un client valide une session de checkout, ou directement via `POST /api/v1/payments`. Il vous est consultable via l'API et dans le tableau de bord.

## Montants

Pour un paiement de 5 000 XAF réglé par mobile money :

| Champ | Valeur | Signification |
| - | - | - |
| `gross_amount` | 5000 | Montant payé par le client |
| `psp_fee_amount` | 100 | Coût de traitement estimé, information |
| `platform_fee_amount` | 75 | Marge Mercy Pay, information |
| `net_amount_to_merchant` | 4825 | Ce qui est crédité à votre solde |

`psp_fee_amount` et `platform_fee_amount` décomposent la commission à titre informatif, pour comprendre d'où vient le chiffre, pas pour recalculer quoi que ce soit. Seul `net_amount_to_merchant` compte réellement pour votre solde.

## Moyen de paiement

* `payment_method` : `mobile_money` ou `card`.
* Pour le mobile money, `mobile_money_country` et `mobile_money_provider` indiquent le pays et l'opérateur, par exemple `CMR` et `MTN_MOMO_CMR`.

Un opérateur mobile money ne déplace que sa propre devise nationale : si le pays choisi a une devise différente de celle demandée, le montant est converti automatiquement avant l'encaissement, et `currency`/`gross_amount` reflètent le montant réellement prélevé dans la devise de l'opérateur. Une carte, elle, encaisse toujours exactement la devise demandée, sans conversion.

## Statuts

| Statut | Signification |
| - | - |
| `pending` | Enregistré, en attente de confirmation |
| `processing` | Accepté, en cours de traitement |
| `succeeded` | Encaissé : le solde est crédité |
| `failed` | Refusé ou en échec, voir `failure_reason` |
| `canceled` | Annulé avant encaissement |
| `expired` | Délai dépassé sans confirmation |
| `refunded`, `disputed` | Réservés, non utilisés pour l'instant |

Un paiement ne passe à `succeeded` qu'une seule fois, jamais deux. Fiez-vous au webhook `payment.succeeded` pour marquer une commande comme payée, pas à la redirection vers `success_url` : rien ne garantit que le navigateur du client l'atteigne (onglet fermé, connexion coupée), alors que le webhook, lui, est retenté jusqu'à ce que votre serveur l'accuse.


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