Flux de travail et statuts de paiement
Comprendre chaque statut de paiement public, les opérations qui le produisent et les marchands de transition doivent gérer.
Sur cette page
Utilisation payment.data.status en tant que source d'information pour un paiement. Lorsque le paiement est inclus dans une réponse de commande, lire order.payment.data.status. Le conteneur de commande ne change pas le sens du statut de paiement.
Évaluer toujours l'état ainsi que les quantités confirmées et les antécédents d'exploitation. Une requête API acceptée ou HTTP 2xx réponse peut signifier qu'une opération asynchrone a commencé; cela ne signifie pas toujours que l'argent a été déplacé.
Pour les décisions de fraude, voir Déroulement et situation des fraudes. Pour les mises à jour asynchrones des prestataires, voir Webhooks DEUNA.
Familles statutaires#
Les étiquettes ci-dessous expliquent comment les marchands doivent gérer les valeurs; ce ne sont pas des champs API supplémentaires.
| Famille | Statuts | Gestion des commerçants |
|---|---|---|
| En attente d'action ou de confirmation | pending, pending_3ds, processing, authorizing, capturing, partial_capturing, voiding, refunding, partial_refunding, manual_review | Gardez le paiement non réglé. Compléter toute action client requise et attendre, ou récupérer, un résultat faisant autorité. |
| Confirmé et toujours opérationnel | processed, authorized, captured, partial_captured, partial_refunded | Inscrivez le résultat financier confirmé. Une capture, un remboursement ou un vide admissible ultérieur peut encore changer le statut. |
| Non réussi mais récupérable | denied | Ne pas réaliser de cette tentative. Une décision de réessayer ou de routage peut déplacer le même paiement dans un état actif, donc ne pas modéliser denied comme terminal. |
| Annulation en attente de règlement financier | cancelled | Inspecter les activités financières antérieures. Un remboursement ou un vide peut encore suivre. |
| Borne | voided, refunded, expired | La machine de paiement centrale n'a aucune transition de ces valeurs. |
partial_captured et partial_refunded peut être le dernier état requis par le processus d'affaires du marchand même s'ils ne sont pas des états API terminal. Conserver le statut réel et les montants cumulatifs; ne jamais remplacer un statut partiel localement par captured ou refunded.
Choisissez le flux de paiement#
Les paiements par carte et les méthodes de paiement alternatives ne suivent pas les mêmes actions ou états de traitement du client. Commencez par le flux correspondant à la méthode de paiement, puis revenez ici pour les références de statut et de transition canoniques.
Les diagrammes sur ces pages illustrent le chemin normal pour le commerçant. Les transitions directes, les tentatives, les chemins de réconciliation et les branches spécifiques au prestataire restent autoritaires dans le référence de transition validée.
Référence de l'état du paiement#
Les valeurs sont des chaînes minuscules sensibles aux cas.
| Statut | Signification | Ce que le marchand devrait faire |
|---|---|---|
pending | Le paiement créé; l'action client, le routage ou la confirmation du fournisseur peuvent encore être nécessaires. | Suivre next_action ou des instructions de méthode et garder l'accomplissement bloqué. |
pending_3ds | L'authentification 3DS est incomplète. | Réalisez le défi, puis évaluez le statut de paiement qui en résulte. |
processing | Un paiement d'achat ou de MPA est en cours. | Récupérer le résultat officiel après que DEUNA ait traité la mise à jour du prestataire ; ne pas réessayer trop tôt. |
processed | Un achat en une seule étape est effectué. | Enregistrer le succès et appliquer la politique de respect; les remboursements peuvent suivre. |
authorizing | La demande d'autorisation est en cours. | Ne traitez pas les fonds comme étant saisis ou réservés. |
authorized | Les fonds ont été réservés avec succès. | Capturer ou annuler le cas échéant. |
capturing | Une capture complète est en cours. | Suivre l'opération et attendre la confirmation. |
partial_capturing | Une capture partielle est en cours. | Garder les montants saisis en attente et confirmés séparément. |
partial_captured | Une partie de la somme a été saisie. | Inscrivez le montant confirmé et le montant restant admissible au prélèvement/remboursement. |
captured | Capture terminée. | Inscrivez le montant perçu; les remboursements peuvent suivre. |
voiding | La publication d'une autorisation est en cours. | Attendre voided ou un résultat restauré ou échoué. |
voided | L'autorisation a été délivrée. | Enregistrer l'achèvement du terminal. |
refunding | Une restitution intégrale ou résiduelle est en cours. | Attendre la confirmation; l'acceptation de la demande n'est pas une preuve de remboursement des fonds. |
partial_refunding | Une restitution partielle est en cours. | Suivre séparément les montants remboursés en attente et confirmés. |
partial_refunded | Un remboursement partiel est effectué. | Inscrivez le montant et le solde remboursable. |
refunded | Le solde remboursable représenté par le cycle de vie a été retourné. | Enregistrer l'achèvement du terminal. |
manual_review | Le paiement est retenu pour une décision de risque. | Gardez l'exécution bloquée jusqu'à ce que le paiement reçoive un nouveau statut. |
denied | La tentative actuelle a été rejetée. | Ne pas remplir. Préservez la raison; une réessayer configurée peut réentrer dans le flux actif. |
cancelled | Le mode de paiement ou le marchand a annulé le paiement. | Vérifiez si un remboursement ou un vide doit être effectué. |
expired | La fenêtre de fin de paiement autorisée s'est fermée avant la fin du paiement. | Enregistrez l'achèvement du terminal; créez un nouveau paiement si le client tente de nouveau. |
not_authorized et failed sont utilisés par les adaptateurs de processeur ou de niveau d'exploitation, mais ils ne sont pas des valeurs canoniques dans le noyau payment.data.status Graphique de transition. Ne fusionnez pas les statuts d'exploitation du fournisseur, les statuts d'exploitation de capture/remboursement ou les marqueurs de temps d'arrêt locaux dans le champ d'état de paiement.
Référence de transition validée#
Les transitions suivantes correspondent à la machine de l'état central des paiements. La livraison répétée du même état est omise sauf si elle est explicitement acceptée. Une transition listée ne garantit pas que chaque processeur ou mode de paiement supporte l'opération correspondante.
| Situation actuelle | Statuts suivants autorisés |
|---|---|
pending | pending, pending_3ds, authorizing, authorized, processing, processed, cancelled, voided, denied, manual_review, expired |
pending_3ds | pending_3ds, authorizing, authorized, processing, processed, cancelled, denied, manual_review, expired |
processing | processed, cancelled, denied, manual_review, partial_refunding, refunding, partial_refunded, refunded |
processed | refunding, refunded, partial_refunding, partial_refunded, voided |
authorizing | authorized, captured, voiding, cancelled, denied, manual_review |
authorized | capturing, captured, partial_capturing, partial_captured, voiding, voided, cancelled |
capturing | captured, denied; pour les flux de récupération de capture en attente pris en charge : authorized, partial_capturing, partial_refunding, partial_refunded, refunding, refunded |
partial_capturing | capturing, partial_captured, captured, denied |
partial_captured | captured, partial_refunding, partial_refunded, refunding, refunded |
captured | partial_refunding, partial_refunded, refunding, refunded |
voiding | voided, denied, authorized |
refunding | refunded, partial_refunded, voided, processed, captured |
partial_refunding | partial_refunded, refunding, refunded, denied, processed, captured, partial_captured |
partial_refunded | partial_refunding, refunding, refunded |
manual_review | processed, captured, denied |
denied | pending, pending_3ds, processing, processed, authorizing, authorized, manual_review, denied |
cancelled | refunded, voided |
voided | Aucune (finale) |
refunded | Aucune (finale) |
expired | Aucune (finale) |
Le rapprochement de fichiers de règlement peut permettre des transitions de récupération supplémentaires tandis que DEUNA réconcilie un résultat de processeur externe. Ces transitions ne changent pas la signification publique des statuts.
Certains profils de processeurs peuvent accepter un remboursement pendant qu'une capture asynchrone est toujours en attente. Dans ce flux, DEUNA peut annuler ou inverser la capture en attente et rembourser l'autorisation d'origine, ce qui permet aux transitions supplémentaires énumérées pour capturing. N'initiez pas ce flux, sauf si DEUNA a confirmé la prise en charge de la connexion au processeur.
Gérez les mises à jour en toute sécurité#
- Récupérer le paiement officiel avant de modifier l'état local.
- Identifier le paiement et l'opération associée avant d'appliquer la mise à jour.
- Entreposez le statut déclaré, le montant confirmé, la monnaie, l'identificateur d'opération et les références du fournisseur.
- Traiter de manière idempotente les récupérations répétées et les tentatives de client. Ne pas dédoublonner uniquement sur la base de l'état.
- Gardez la réalisation bloquée pour des états transitoires, d'examen ou inconnus.
- Réconcilier les résultats manquants ou contradictoires grâce au flux de récupération de paiement supporté.
Un délai d'attente HTTP, une perte de réponse ou une mise à jour de prestataire retardée ne prouvent pas denied ou expired. Suivre conseils pour la demande d'idémpotent, récupérer le paiement et distinguer une réessayer de la même demande d'une nouvelle tentative de paiement.