Aperçu des Paiements en Deux Étapes
Les Paiements en Deux Étapes est un processus de paiement qui inclut l'autorisation et la capture. L'autorisation vérifie que la transaction peut être effectuée et réserve le montant avant le débit réel. La capture est le débit lui-même.
Paiements en Deux Étapes via API
En termes d'API, le processus en Deux Étapes nécessite deux appels à effectuer. Le premier appel désigne le paiement comme en Deux Étapes, et le second appel le capture.
Désigner un paiement comme en Deux Étapes via API
Il y a deux façons de désigner un paiement comme en Deux Étapes. Quelle façon choisir dépend du type d'intégration API : Redirect ou Direct.
Paiements en Deux Étapes dans l'intégration Redirect
L'intégration Redirect utilise une page de paiement fournie par la Passerelle de Paiement. Pour indiquer que le paiement est en Deux Étapes, appelez POST /sessions en passant la valeur manual dans le paramètre paymentData.captureMethod. La valeur par défaut de ce paramètre est automatic, elle correspond au paiement en Une Étape.
Voir la description détaillée de la requête /sessions dans la Référence API.
Paiements en Deux Étapes dans l'intégration Direct
Dans l'intégration Direct, vous fournissez votre propre page de paiement. Ce flux ne s'appuie pas sur l'appel /sessions. Par conséquent, le paramètre captureMethod de /payments doit être utilisé à la place - passez la valeur manual.
La réponse inclura un paramètre amountCapturable qui indique le montant qui peut être capturé. Aussi, le status retourné sera requiresCapture. Cependant, si un flux 3DS est initié, le statut sera requiresAction. Une fois la vérification 3DS terminée, le statut deviendra requiresCapture.
Voir la description détaillée de la requête /payments dans la Référence API.
Capturer un paiement en Deux Étapes
Quel que soit le type d'intégration, appelez POST /payments/{id}/capture pour régler la transaction. {id} est l'identifiant du paiement à capturer. Utilisez la valeur reçue dans le paramètre id de la réponse à l'appel /payments.
Voir la description détaillée de la requête /payments/{id}/capture dans la Référence API.
Captures Partielles et Multiples
La Passerelle de Paiement supporte les captures partielles et multiples pour les cas où un montant moindre doit être débité ou qu'un débit est effectué par incréments. Cette fonctionnalité est reflétée par la valeur du paramètre captureType de la requête POST /payments/{id}/capture. La valeur incremental signifie que ce n'est pas une capture finale, tandis que la valeur last représente le débit final. Le statut du paiement devient succeded seulement lors de la réception de la capture last. Notez que la réponse inclut aussi les paramètres amountCapturable et amountReceived indiquant, respectivement, le montant qui est encore disponible pour capture, et le montant déjà débité.
Si vous voulez utiliser les Captures Partielles et Multiples, veuillez contacter notre équipe de support pour qu'elle active cette fonctionnalité pour vous sur le backend.
Auto-Capture et Auto-Reverse
Un paiement peut être configuré pour être capturé ou annulé automatiquement après un délai d'expiration configurable. La façon de le faire est d'utiliser le paramètre manualCaptureOptions de la requête POST /payments/{id}/capture :
"manualCaptureOptions": {
"autoCancelAt": "2023-02-17T16:30:55+03:00"
}