Gestion des webhooks
Description
Les webhooks vous permettent d'être notifié en temps réel d'un événement, tel qu'un changement de statut de paiement.
Ils se configurent dans vos applications de votre espace Virement Maitrisé et prennent en compte quatre paramètres :
url | L'URL où les webhooks seront écoutés | |
content-type | Soit application/x-www-form-urlencoded (par défaut), soit application/json | |
offset | Le délai (en minutes) entre la publication du webhook et son appel après un événement. | |
event | La liste des événements pour lesquels le webhook doit être appelé. |
Un webhook est une requête POST application/x-www-form-urlencoded ou application/json, signée à l'aide de la clé publique privée de votre application. Par défaut, le webhook est envoyé avec le 'Content-Type' application/x-www-form-urlencoded.Vous pouvez toutefois spécifier application/jsonen créant un en-tête personnalisé de type Content-Type (veillez à ajouter le C et le T majuscules).
A webhook is an application/x-www-form-urlencoded or application/json POSTrequest which is signed using your application privately-kept public key (private asymmetric keys).
🚧 ImportantVérifiez la signature à l'aide de votre clé privée, puis traitez la commande uniquement en fonction du résultat du paiement.
Le contenu de la chaîne de signature (signatureString) correspond aux en-têtes listés dans le composant « en-têtes » de la signature. Assurez-vous de les prendre en compte et de respecter l'ordre indiqué dans le champ. Ces informations sont susceptibles d'être modifiées.
Exemple :
POST /webhook HTTP/1.1
Host: mywebsite.com
Signature: keyId="2dfdcf57-5b2f-4309-846f-913d0b2802cf",algorithm="rsa-sha256",headers="date digest x-request-id",signature="h0V0SUbjRhLEP/MiYo0Mgs1N17EuCEmKyQrDjxysc7iSiFXTjvY6qVEoaiRkzB8ZI0J39gGwOtTXN9CJPVRbhEHhi9Z9rQvM33FkygXvvx8BwM76fSTQ2/BSZWx04CjbPv/XUVusnkKVr3W6p+Vn073hAuJn1nKCvDOyl+QnDtstkzT+UacVzDA9L9nyPbbaPQHJobaZuG8TjhnI+Y0PZxneke6OU6fcdPT0uwkEamDOOExcMryHIX1iH5iiPMvLoVA8acqvvMSDYar0rlEQ2J1M4dcowWT8FxLo6C8uqvJIaBYm7Ze0RNJOwY0UBImCVDIuQLJuBjPwjQT5GjTQlg==
Digest: SHA-256=wOtTXN9CJPVRbhEHhi9Z9rQvM33FkygXvvx8BwM76fS
Date: Mon, 08 Jun 2020 23:11:23 GMT
X-Request-ID: 88c414df-6895-48db-8ef3-1fd1ce4272c6
Content-Type: application/x-www-form-urlencoded
session_id=b2bca2bcd3b64a32a7da0766df59a7d2&status=payment_created&customer_id=1ef74051a77673de120820fb370dc382&provider=bnpafr&state=mystate&event=payment_session.status.payment_created
🚧 ImportantLe webhook effectuera 20 tentatives avec un incrément de temps exponentiel si votre serveur ne répond pas avec un code HTTP compris entre 2XX et 2XX.
🚧 ImportantLes webhooks ont un délai d'expiration de 20 secondes. Si votre serveur ne répond pas en moins de 20 secondes, nous expirons et réessayons ultérieurement.
💡 Les sessions de paiement de typeIncomingTransferne contiennent pas nécessairement de référence à une commande. Il est donc conseillé de filtrer ces sessions de paiement lors de votre intégration en renvoyant un code d'état HTTP dédié, tel que 202.
Attributs
Les attributs suivants sont inclus dans les webhooks application/x-www-form-urlencoded. Ils ne sont envoyés que s'ils contiennent une valeur.
| attribut | événement (event) | description |
|---|---|---|
session_id | tous | L'identifiant unique de la session de paiement |
customer_id | tous | L'identifiant client unique qui a effectué le paiement |
provider | tous | La banque utilisée pour effectuer le paiement |
state | tous | L'état envoyé lors de la demande de redirection |
event | tous | L'événement qui vient d'être déclenché |
status | payment_session.status | Le statut de la session de paiement |
refund_status | payment_session.refund_status | Le statut du remboursement du paiement initial |
refunded_session_id | payment_session.refund_status | L'identifiant unique de la session de paiement initiale en cours de remboursement |
transfer_state | payment_session.status, payment_session.transfer_states, payment_session.received_amount | Transfer_state de la session de paiement |
transfer_reason | payment_session.status, payment_session.transfer_states, payment_session.received_amount | Détails du transfer_state de la session de paiement |
type | payment_session.status, payment_session.received_amount | Type du paiement :PayByBank,RequestToPay,Refund,ManualTransfer,IncomingTransfer |
amount | payment_session.status, payment_session.received_amount | Montant de la session de paiement |
received_amount | payment_session.status, payment_session.received_amount | Montant total reçu lors de cette session de paiement |
transaction_amount | payment_session.status, payment_session.received_amount | Montant de la dernière transaction liée à la session de paiement |
virtual_beneficiary_id | tous | ID du bénéficiaire virtuel uniquement si le paiement a été reçu sur un bénéficiaire virtuel |
💡 L'ordre des attributs ne changera pas. D'autres attributs peuvent être ajoutés à la fin.
Updated about 2 months ago
