Cycle de vie
Une session expire après 30 minutes sans paiement réussi. Au-delà, créez-en simplement une nouvelle plutôt que de chercher à ressusciter l’ancienne.
Identifiant
Chaque session a unereference au format ULID (26 caractères, par exemple 01J9Z3V8QK4M2XW7R6TB5N0HYD) : elle apparaît dans l’URL de la page de paiement, et c’est elle que vous utilisez pour relire la session ensuite.
Champs
Paiement mobile money dans une autre devise
Sur la page hébergée, votre client peut choisir n’importe quel pays mobile money disponible, même si sa devise diffère de celle de la session : le montant est alors converti automatiquement vers la devise de l’opérateur choisi avant l’encaissement. Le paiement qui en résulte (consultable viaGET /api/v1/payments/{uuid}) reflète ce montant converti, pas celui de la session d’origine, voir Paiements. Un paiement par carte, lui, encaisse toujours exactement le montant et la devise de la session, sans conversion.
Idempotence
Un timeout réseau ne vous dit jamais si votre requête a vraiment échoué ou si elle a juste mis du temps à répondre. Envoyez un en-têteIdempotency-Key à la création : si vous rejouez la même requête après un doute, vous récupérez la session déjà créée au lieu d’en ouvrir une deuxième. Voir Idempotence.