Cette page décrit les opérations possibles sur une transaction créée via Axepta BNP Paribas Online :
Contenu
Lorsqu’une transaction carte est créée, une autorisation est envoyée à la banque du porteur pour réserver le montant.
Tant que la capture n’est pas effectuée, les fonds ne sont pas débités.
La capture correspond à la demande d’envoi en remise bancaire.
C’est l’étape qui entraîne le débit réel du porteur.
Une annulation est possible tant que la capture n’a pas été effectuée.
Elle libère immédiatement les fonds réservés.
Un remboursement s’effectue sur une transaction déjà capturée.
Il peut être total ou partiel, simple ou multiple.
Lors de l’initialisation de la transaction, vous pouvez contrôler le comportement via l’objet captureMethod.
"captureMethod": { "type": "AUTOMATIC" | "DELAYED" | "MANUAL"} |
Si captureMethod est absent → capture automatique par défaut. |
Fonctionnel
La demande de capture est effectuée automatiquement juste après l’autorisation.
Il n'y a aucune action à effectuer, la transaction partira en remise lors du prochain cycle d’encaissement (fin de journée).
Sauf si vous avez des cas d'usage particulier, c'est le mode à privilégier. |
Cas d’usage recommandés
Paiement classique e-commerce
Processus sans gestion des stocks complexes
Marchands n’ayant pas besoin de vérifier la disponibilité avant capture
Fonctionnel
Lors de la demande de transaction, il est possible préciser un délai (en heures) avant l'exécution de la demande de capture.
Cette option ouvre la possibilité de garantir que la transaction ne sera pas capturée pendant ce délai.
La remise peut être décalée d'une journée si le délai dépasse l'heure de remise quotidienne.
Cette capture doit être réalisée dans les 7 jours suivants l'autorisation, en accord avec le délai de garanti des fonds en banque. |
Caractérisques
Cas d’usage
Intégration
L’endpoint Capture permet de capturer les fonds en utilisant le payId de la transaction d’origine.
(Montant optionnel → capture partielle si différent du montant autorisé.)
...
"captureMethod": {
"type": "DELAYED",
"delayed": {
"delayedHours": 2
}
},
... |
Fonctionnel
La capture manuelle ouvre la possibilité de capture tout ou une partie seulement du montant autorisée.
Dans le cas où une partie du montant est capturé, on parle de capture partielle.
Donc, avec cette option, la capture n’est jamais exécutée automatiquement, il est impératif d'envoyer un ordre de capture pour que les fonds soient encaissés.
La date de remise bancaire de ces transactions sera celle de la demande de capture.
Cette capture doit être réalisée dans les 7 jours suivants l'autorisation, en accord avec le délai de garanti des fonds en banque. |
Intégration
L’endpoint Capture permet de capturer les fonds en utilisant le payId de la transaction d’origine.
(Montant optionnel → capture partielle si différent du montant autorisé.)
...
"captureMethod": {
"type": "MANUAL"
},
... |
Fonctionnel
L'annulation est possible uniquement si la transaction n’a pas été capturée (capturedValue = 0).
Elle permet de libérer les fonds réservés sur la carte du client.
L’annulation ne peut pas être partielle. Le montant annulé = montant autorisé. |
Intégration
L’endpoint Reverse permet d'annuler une transaction (ou une étape de la transaction). Il est nécessaire de fournir le payId de la transaction d’origine.
Le statut influence le nombre d’appels nécessaires. |
Fonctionnel
Seule une transaction déjà capturée (capturedValue > 0) ou réglée (statut Sale) peut être remboursée.
Le remboursement peut-être total ou partiel.
Plusieurs remboursements successifs possibles jusqu’au montant capturé.
Intégration
L’endpoint Refund permet d'initier un remboursement sur une transaction déjà réglée. Il est nécessaire de fournir le payId de la transaction à rembourser.
Dans le cadre de la gestion des transactions, il est essentiel de distinguer clairement les situations nécessitant l'annulation d'un paiement de celles requérant un remboursement.
Cette section décrit les étapes clés pour déterminer la meilleure action à entreprendre lorsque une commande ne peut être honorée.
Que ce soit pour des raisons logistiques, techniques ou autres, comprendre le statut du paiement et les montants impliqués est crucial.
En vérifiant ces éléments, il sera possible de déterminer si le paiement doit être annulé (lorsque les fonds n'ont pas été réclamés par le porteur) ou remboursé (lorsque les fonds ont été effectivement réclamés). Cette démarche assure une gestion transparente et conforme aux attentes des clients, tout en optimisant les processus opérationnels.
Si la transaction a été payée, alors le client a été débité. Dans ce cas, un remboursement doit être initié. Si la transaction n'a pas été payée, alors le client n'a été débité. Dans ce cas, une annulation doit être initié. |
Pour l'ensemble des opérations, il est nécessaire d'utiliser la référence de paiement 'payId' retournée par la plateforme de paiement lors de la transaction. |
L’endpoint GetByPayId permet de récupérer les informations de la transaction en fournissant le payId correspondant.
{
"amount": {
"currency": "EUR",
"value": 1000,
"capturedValue": 1000
},
"externalIntegrationId": "12345-abcde-67890-fghij",
"language": "en",
"payId": "ed7773c09f314c45b2a0de47a1994e1d",
"xId": "86a8198cc9da4b4d9fbcdb15a5ddd6ca",
"transId": "20240103-121913-554",
"status": "OK",
"responseCode": "00000000",
"responseDescription": "success",
"refNr": "refNr01",
"metadata": {
"userData": "my user data",
"plain": "some plain text",
"key1": "value1",
"key2": "value2"
},
"paymentMethods": {
"type": "CARD",
"card": { … }
}
} |
Afin de déterminer s'il est nécessaire d'annuler ou rembourser une transaction, il est nécessaire de consulter les propriétés 'status' et 'responseCode' de la transaction:
"status": "OK", "responseCode": "00000000", |
Les montants de la transaction sont détaillé dans l'objet JSON 'amount'.
"amount": {
"currency": "EUR",
"value": 1000,
"capturedValue": 1000
}, |
Il est nécessaire de consulter les montants 'value' et 'capturedValue'
'capturedValue' va déterminer si un remboursement ou une annulation doit être initiée. |
Si capturedValue = 0 : la transaction n'est pas capturée => Annulation |
L’endpoint Refund permet d'initier un remboursement sur une transaction déjà réglée. Il est nécessaire de fournir le payId de la transaction à rembourser.
Le montant à rembourser peut être tout ou une partie du montant de la transaction initiale. |
L’endpoint Reverse permet d'annuler une transaction (ou une étape de la transaction). Il est nécessaire de fournir le payId de la transaction d’origine.
Le montant de l'annulation doit être exactement égale au montant autorisé. |
L'annulation peut se faire en 1 ou 2 étapes, suivant si la demande de capture a déjà été faite ou pas. |
L’endpoint Reverse permet de:
Pour savoir à quelle étape est la transaction, il faut regarder son 'status' :
En conclusion:
|