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

# Sandbox et tests

Le Sandbox utilise les endpoints de production avec une clé Sandbox et `Ipay-Target-Environment: sandbox`. Aucun paiement réel n'est déclenché.

## Numéros de test mobile

| MSISDN        | Scénario simulé                           |
| ------------- | ----------------------------------------- |
| `40410000000` | Succès                                    |
| `40410000001` | Succès                                    |
| `40410000002` | Échec                                     |
| `40410000003` | Échec                                     |
| `40410000004` | Fonds insuffisants, statut final `failed` |
| `40410000005` | Fonds insuffisants, statut final `failed` |
| `40410000006` | Refus, statut final `failed`              |
| `40410000007` | Refus, statut final `failed`              |
| `40410000008` | Mise en attente puis traitement différé   |
| `40410000009` | Mise en attente puis traitement différé   |

Utilisez `Ipay-Payment-Type: mobile`, un montant d'au moins `50` XOF, le pays `BJ` ou `NE` et la devise `XOF`.

## Plan de test minimal

1. Créer un paiement réussi et vérifier son statut.
2. Créer un paiement échoué et s'assurer que la commande reste impayée.
3. Créer un paiement en attente et vérifier que l'application ne le considère pas comme réussi.
4. Réutiliser volontairement un `transaction_id` et traiter la réponse `422`.
5. Envoyer un webhook deux fois et confirmer que le traitement reste idempotent.
6. Tester un `Secret-Hash` incorrect.
7. Tester une référence inconnue et traiter la réponse `404`.

## Avant le Live

Rejouez le même parcours avec un paiement réel de faible montant, un webhook de production et la clé Live. N'utilisez jamais un numéro Sandbox pour déduire le comportement exact d'un fournisseur réel.
