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 comme source de vérité pour un paiement. Lorsque le paiement est emballé dans une réponse de commande ou webhook, 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 la livraison et la vérification des notifications, 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.
Cycle de vie de bout en bout#
Cette vue d'ensemble montre les principales familles de cycles de vie. Les transitions directes et les succursales spécifiques aux fournisseurs sont énumérées dans la section intitulée «Économie et finances» du présent rapport. référence de transition validée.
3DS et OTP
pending_3ds signifie que l'authentification est incomplète. Le succès de l'authentification ne permet que le flux de paiement de continuer; il ne prouve pas que l'achat ou l'autorisation a réussi. Après le défi, attendez processed, authorized, ou un autre état de paiement déclaré.
Certains adaptateurs de processeur utilisent pending_otp interne. Le traitement actuel des paiements normalise les résultats pour le public pending et fournit les métadonnées nécessaires pour la prochaine action. Si un ancien rapport ou filtre de recherche contient pending_otp, le traiter comme attendant l'action du client — pas comme le succès de paiement.
Autorisation, capture et vide#
Le traitement des paiements en deux étapes réserve d'abord les fonds et les recueille plus tard. authorized n'est pas capturé de l'argent.
La machine d'État permet également à un processeur de déclarer captured, partial_captured, ou voided directement sans exposer d'abord le statut correspondant à -ing-. Les notifications sont des instantanés d'état faisant autorité, et non une séquence d'événements par événement garantie.
Choisissez un achat en une seule étape ou une autorisation/capture en deux étapes au niveau de la connexion du processeur. La saisie et l'admissibilité au vide dépendent également du processeur, du montant restant, du moment choisi et de la configuration du marchand. Votre DEUNA TAM peut confirmer un comportement compatible.
Pour les modes de capture partielle et final_captureVoir MPC — Captures partielles multiples. Le succès API Void retourne HTTP 204 No Content; utiliser l'état de paiement ultérieur lorsque le processeur se termine asynchronement.
Remboursements et annulations#
Remboursements - Déclarations de fonds perçus. Les Voids libèrent une autorisation. Ils ne sont pas interchangeables.
Un remboursement en échec peut rétablir l'état financier précédent (processed, captured, ou partial_captured) . Préserver séparément le paiement réussi et la tentative de remboursement échouée. Voir RPM — Remboursements partiels multiples pour les modes de remboursement partiels, natifs et DEUNA, agrégés.
Déroulement de la procédure de l ' APM#
Les autres modes de paiement commencent généralement à pending, peut exposer processing, et complet à processed, denied, cancelled, ou expired. Certaines connexions APM soutiennent l'autorisation et la capture, de sorte que les mêmes statuts d'autorisation peuvent s'appliquer.
La date limite de paiement est spécifique à la méthode et à la configuration. Ne pas déduire expired à partir du navigateur ou d'un retour de redirection; attendez que DEUNA le signale.
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. | Attendez un webhook ou récupérer le résultat faisant autorité avant de réessayer. |
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é#
- Vérifier chaque notification avec la méthode de vérification Webhook configurée.
- Identifier le paiement et l'opération connexe avant de changer d'état local.
- Entreposez le statut déclaré, le montant confirmé, la monnaie, l'identificateur d'opération et les références du fournisseur.
- Traiter les notifications répétées de façon idéologique. Ne pas dédoubler par statut seul.
- 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 timeout HTTP, une réponse perdue ou un webhook tardif ne prouve 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.