Search Overlay

Webhooks et appels GET

Vous recevrez un webhook en cas de modification de l’état du traitement du Payment handle ou de l’état du paiement. Vous pouvez obtenir l’état en exécutant les appels GET Payment Handle et paiements.

Webhooks

Scénario 1 : l’appel au paiement est effectué avant que le client ne termine la transaction sur le lien de redirection.

  • Le Payment Handle est Payable (il indique que vous avez redirigé le client vers le lien de redirection renvoyé dans la réponse du Payment Handle).
  • Vous effectuez un appel /payments
  • Le client procède au paiement
ÉvénementWebhook 

La requête est envoyée /paymentHandle 

Réception d’une réponse positive  

 S.O.
Lorsque le client est redirigé vers le lien SafetyPay ExpressWebhook Payment Handle Payable 
Lorsqu’un appel /payments est effectué

Webhook Payment Handle terminée 

Webhook Traitement de paiement 

Lorsque le client effectue la transaction sur le lien de redirection

Webhook Paiement terminé 

Scénario 2 : L’appel au paiement est effectué après que le client a terminé la transaction sur le lien de redirection.

  • Le Payment Handle est Payable (il indique que vous avez redirigé le client vers le lien de redirection renvoyé dans la réponse du Payment handle).
  • Le client termine la transaction
  • Vous effectuez un appel /payments

Événement

État

La requête est envoyée /paymentHandle 

Réception d’une réponse positive  

 S.O.
Lorsque le client est redirigé vers le lien SafetyPay ExpressWebhook Payment Handle Payable
Lorsqu’un appel /payments est effectué

Webhook Payment Handle terminée 

Webhook Paiement terminé 

Webhook Règlement terminé 

Scénario 3 : Fonctionnalité de règlement automatique (paiement automatique) 

Vous devez toujours appeler l’API Paiements une fois que le Payment handle est Payable. Toutefois, si vous n’effectuez pas d’appel à l’API Paiements et que le Payment Handle est Payable, notre système effectue l’appel de paiement en votre nom. 

  • Le Payment Handle est Payable (il indique que vous avez redirigé le client vers le lien de redirection renvoyé dans la réponse du Payment handle).
  • Le client termine la transaction
  • Le Payment Handle TTL passe à zéro
  • Aucun appel au paiement /payments call n’est effectué de votre côté

Événement

État

La requête est envoyée /paymentHandle 

Réception d’une réponse positive  

 S.O.
Lorsque le client est redirigé vers le lien SafetyPay ExpressWebhook Payment Handle Payable
Lorsque le Payment Handle TTL passe à zéro et qu’aucun /payments call n’est effectué par vous

Webhook de Payment Handle expiré avec status et statusReason : 

"status": "EXPIRED" "statusReason": "AUTO_SETTLE_EXPIRED_PAYMENT_HANDLE" statuReason:"AUTO_SETTLE_EXPIRED_PAYMENT_HANDLE" indique que le système Paysafe va effectuer /payments call en votre nom.

/payments call est effectué par notre système

Webhook de paiement terminé avec statusReason : 

"statusReason": "AUTO_SETTLE_EXPIRED_PAYMENT_HANDLE"

Webhook Règlement terminé 

Scénario 4 : Fonctionnalité de règlement automatique (paiement automatique)

Vous devez toujours appeler l’API Paiements une fois que le Payment handle est Payable. Toutefois, si vous n’effectuez pas d’appel à l’API Paiements et que le Payment Handle est Payable, notre système effectue l’appel de paiement en votre nom. 

  • Le Payment Handle est Payable (il indique que vous avez redirigé le client vers le lien de redirection renvoyé dans la réponse du Payment handle).
  • Le client ne termine pas la transaction
  • Le Payment Handle TTL passe à zéro
  • Aucun /payments call n’est effectué de votre côté

Événement

État

La requête est envoyée /paymentHandle 

Réception d’une réponse positive  

 S.O. 
Lorsque le client est redirigé vers le lien SafetyPay ExpressWebhook Payment Handle Payable
Lorsque le Payment Handle TTL passe à zéro et qu’aucun /payments call n’est effectué par vous

Webhook de Payment Handle expiré avec status et statusReason : 

"status": "EXPIRED" "statusReason": "AUTO_SETTLE_EXPIRED_PAYMENT_HANDLE" statusReason:"AUTO_SETTLE_EXPIRED_PAYMENT_HANDLE" indique que le système Paysafe va effectuer /payments call en votre nom.

/payments call est effectué par le système

Webhook de traitement des paiements avec statusReason : 

"statusReason": "AUTO_SETTLE_EXPIRED_PAYMENT_HANDLE"

Lorsque le client effectue la transaction sur le lien de redirection

Webhook de paiement terminé avec statusReason : 

"statusReason": "AUTO_SETTLE_EXPIRED_PAYMENT_HANDLE"

Scénario 5 : Lorsque le client n’est pas redirigé

  • Le Payment Handle n’est pas Payable
    • Indique que vous n’avez pas redirigé le client vers le lien de redirection renvoyé dans la réponse du payment handle
    • Le client n’a pas cliqué sur le lien ou a interrompu la transaction
  • Le Payment Handle TTL passe à zéro

Événement

État

La requête est envoyée /paymentHandle 

Réception d’une réponse positive  

 S.O. 
Lorsque le Payment Handle TTL passe à zéro 

Webhook de Payment Handle expiré avec status et statusReason : 

"status": "EXPIRED"

"statusReason": "AUTH_EXPIRED"

statusReason:"AUTH_EXPIRED" indique que le système Paysafe n’effectuera PAS /payments call en votre nom.

/payments call n’est PAS effectué par le système. Le système Paysafe n’effectue la transaction de règlement automatique (paiement automatique) que lorsque le payment handle est Payable et que les paiements ne sont pas effectués par vous.

Exemple de paquets de webhooks

Payment Handle Payable

{

"payload": {
"accountId": "1002495240",
"id": "691eb499-740a-447e-90c4-c7fdf1d7fcab",
"merchantRefNum": "7cb52ed1-4d7f-4b4c-86d9-1867bf6be577",
"paymentHandleToken": "Payment Handle8adi9300Lw80Iu",
transactionType:"transactionType": "PAYMENT",
"amount": 1000,
"currencyCode": "<Currency>",

"status": "PAYABLE",
"paymentType": "<PaymentMethodName>",

"statusTime": "2023-05-04T05:45:43Z",
"updatedTime": "2023-05-04T05:45:43Z",
"gatewayReconciliationId": "c9c31a38-b050-4e8b-80e3-1ec3ea7d383c",
"customerIp": "213.208.158.212",
"profile": {
"email": "BRTESTQA202_01@gmail.com"
},
"usage": "SINGLE_USE",
"executionMode": "SYNCHRONOUS",
"gatewayResponse": {
"operationId": "0123124567278578",
"id": "c9c31a38-b050-4e8b-80e3-1ec3ea7d383c",
"processor": "SAFETYPAY"
},
"txnTime": "2023-05-04T05:45:21Z"
},
"eventType": "PAYMENT_HANDLE_PAYABLE",
"attemptNumber": "1",
"resourceId": "691eb499-740a-447e-90c4-c7fdf1d7fcab",
"eventDate": "2023-05-04T05:45:21Z",
"links": [
{
"href": "https://api.test.paysafe.com/alternatepayments/v1/accounts/1002495240/paymenthandles/691eb499-740a-447e-90c4-c7fdf1d7fcab",
"rel": "payment_handle"
}
],
"mode": "live",
"eventName": "PAYMENT_HANDLE_PAYABLE"

}

Payment Handle Completed

{

"payload": {
"accountId": "1002622990",
"id": "248648d4-6374-4037-a000-1e6055b0522c",
"merchantRefNum": "1682935290",
"paymentHandleToken": "Payment HandlexpvnS0kz778OTP",
transactionType:"transactionType": "PAYMENT",
"amount": 1000,
"currencyCode": "<Currency>",

"status": "COMPLETED",
"paymentType": "<PaymentMethodName>",

"statusTime": "2023-05-01T10:03:31Z",
"updatedTime": "2023-05-01T10:03:31Z",
"gatewayReconciliationId": "b0230487-769b-46fd-ac8d-c3c8fc854d65",
"customerIp": "115.114.129.142",
"profile": {
"email": "CRCASHUSDTEST0501_01@gmail.com"
},
"usage": "SINGLE_USE",
"executionMode": "SYNCHRONOUS",
"gatewayResponse": {
"operationId": "0123121563603103",
"id": "b0230487-769b-46fd-ac8d-c3c8fc854d65",
"processor": "SAFETYPAY",
"status": "102"
},
"txnTime": "2023-05-01T10:01:29Z"
},
"eventType": "PAYMENT_HANDLE_COMPLETED",
"attemptNumber": "1",
"resourceId": "248648d4-6374-4037-a000-1e6055b0522c",
"eventDate": "2023-05-01T10:01:29Z",
"links": [
{
"href": "https://api.test.paysafe.com/alternatepayments/v1/accounts/1002622990/paymenthandles/248648d4-6374-4037-a000-1e6055b0522c",
"rel": "payment_handle"
}
],
"mode": "live",
"eventName":"PAYMENT_HANDLE_COMPLETED"

}

Payment Handle expiré avec "statusReason" : "AUTO_SETTLE_EXPIRED_PAYMENT_HANDLE"

{

"payload": {
"accountId": "1002495240",
"id": "691eb499-740a-447e-90c4-c7fdf1d7fcab",
"merchantRefNum": "7cb52ed1-4d7f-4b4c-86d9-1867bf6be577",
"paymentHandleToken": "PH8adi9300Lw80Iu",
transactionType:"transactionType": "PAYMENT",
"amount": 1000,
"currencyCode": "<currency>",

"status": "EXPIRED",
"statusReason": "AUTO_SETTLE_EXPIRED_PAYMENT_HANDLE",
"paymentType": "<paymentmethodname>",

"statusTime": "2023-05-04T06:00:25Z",
"updatedTime": "2023-05-04T06:00:25Z",
"gatewayReconciliationId": "c9c31a38-b050-4e8b-80e3-1ec3ea7d383c",
"customerIp": "213.208.158.212",
"profile": {
"email": "BRTESTQA202_01@gmail.com"
},
"usage": "SINGLE_USE",
"executionMode": "SYNCHRONOUS",
"gatewayResponse": {
"operationId": "0123124567278578",
"id": "c9c31a38-b050-4e8b-80e3-1ec3ea7d383c",
"processor": "SAFETYPAY",
"status": "101"
},
"txnTime": "2023-05-04T05:45:21Z"
},
"eventType": "PAYMENT_HANDLE_EXPIRED",
"attemptNumber": "1",
"resourceId": "691eb499-740a-447e-90c4-c7fdf1d7fcab",
"eventDate": "2023-05-04T05:45:21Z",
"links": [
{
"href": "https://api.test.paysafe.com/alternatepayments/v1/accounts/1002495240/paymenthandles/691eb499-740a-447e-90c4-c7fdf1d7fcab",
"rel": "payment_handle"
}
],
"mode": "live",
"eventName": "PAYMENT_HANDLE_EXPIRED"

}

Payment Handle expiré "statusReason" : "AUTH_EXPIRED"

{

"payload": {
"accountId": "1002495240",
"id": "da5f9715-6ff8-41da-b467-078c727a501f",
"merchantRefNum": "9b2fd028-bd35-4fc3-86fa-5ea70b81d844",
"paymentHandleToken": "PHL3XRsJo1gnKzmG",
transactionType:"transactionType": "PAYMENT",
"amount": 500000,
"currencyCode": "<Currency>",

"status": "EXPIRED",
"statusReason": "AUTH_EXPIRED",
"paymentType": "<PaymentMethodName>",

"statusTime": "2023-05-04T06:02:24Z",
"updatedTime": "2023-05-04T06:02:24Z",
"gatewayReconciliationId": "e6e433fb-7463-4f4b-ac96-3cbbfa9f86eb",
"customerIp": "213.208.158.212",
"profile": {
"email": "BRTESTQA202_01@gmail.com"
},
"usage": "SINGLE_USE",
"executionMode": "SYNCHRONOUS",
"gatewayResponse": {
"operationId": "0123124567283583",
"id": "e6e433fb-7463-4f4b-ac96-3cbbfa9f86eb",
"processor": "SAFETYPAY"
},
"txnTime": "2023-05-04T05:46:03Z",
},
"eventType": "PAYMENT_HANDLE_EXPIRED",
"attemptNumber": "1",
"resourceId": "da5f9715-6ff8-41da-b467-078c727a501f",
"eventDate": "2023-05-04T05:46:03Z",
"links": [
{
"href": "https://api.test.paysafe.com/alternatepayments/v1/accounts/1002495240/paymenthandles/da5f9715-6ff8-41da-b467-078c727a501f",
"rel": "payment_handle"
}
],
"mode": "live",
"eventName": "PAYMENT_HANDLE_EXPIRED"

}

Erreur du Payment Handle

{

"payload": {
"accountId": "1002652080",
"id": "587ca09e-e4a9-4270-af7a-48398aee7518",
"merchantRefNum": "691cce16-9d48-4817-bdad-80dbcde976b1",
"paymentHandleToken": "PHMjKuWiwIaIwmM0",
transactionType:"transactionType": "PAYMENT",
"amount": 1000,
"currencyCode": "<Curency>",

"status": "ERROR",
"paymentType": "<PaymentMethodName>",

"statusTime": "2023-05-04T05:44:35Z",
"updatedTime": "2023-05-04T05:44:35Z",
"gatewayReconciliationId": "a814b95c-a7fd-4682-89b1-46c39daa2be2",
"customerIp": "213.208.158.212",
"profile": {
"email": "BRTESTQA202_01@gmail.com"
},
"usage": "SINGLE_USE",
"executionMode": "SYNCHRONOUS",
"txnTime": "2023-05-04T05:44:35Z",
"error": {
"code": "5068",
"message": "Field error(s)",
"details": [
"Soit vous avez soumis une requête pour laquelle il manque un champ obligatoire, soit la valeur d’un champ ne correspond pas au format attendu."
]
}
},
"eventType":"PAYMENT_HANDLE_ERRORED",
"attemptNumber": "1",
"resourceId": "587ca09e-e4a9-4270-af7a-48398aee7518",
"eventDate": "2023-05-04T05:44:35Z",
"links": [
{
"href": "https://api.test.paysafe.com/alternatepayments/v1/accounts/1002652080/paymenthandles/587ca09e-e4a9-4270-af7a-48398aee7518",
"rel": "payment_handle"
}
],
"mode": "live",
"eventName": "PAYMENT_HANDLE_ERRORED",
"EventName": "PAYMENT_HANDLE_ERRORED"

}

Traitement de paiements

{

"payload": {
"accountId": "1002495240",
"id": "7422f92f-fb13-4f51-bc00-86bee277a506",
"merchantRefNum": "523a463c-c6a1-4e64-ace9-0c1161b9a31a",
"paymentHandleToken": "PHC0uHklty7AIXEI",
"amount": 500000,
"currencyCode": "<currency>",

"status": "PROCESSING",
"gatewayResponse": {
"operationId": "0123124567407707",
"id": "b08562c0-9e7a-45e6-a8f2-17eaf669a38a",
"processor": "SAFETYPAY",
"status": "101"
},
"paymentType": "<PaymentMethodName>",

"source": "SingleAPI",
"availableToSettle": 0,
"txnTime": "2023-05-04T08:20:29Z",
"customerIp": "213.208.158.212",
"profile": {
"email": "BRTESTQA202_01@gmail.com"
},
"settleWithAuth": true,
"statusTime": "2023-05-04T08:21:34Z",
"updatedTime": "2023-05-04T08:21:34Z",
"gatewayReconciliationId": "b08562c0-9e7a-45e6-a8f2-17eaf669a38a"
},
"eventType": "PAYMENT_PROCESSING",
"attemptNumber": "1",
"resourceId": "7422f92f-fb13-4f51-bc00-86bee277a506",
"eventDate": "2023-05-04T08:20:29Z",
"links": [
{
"href": "https://api.test.paysafe.com/alternatepayments/v1/accounts/1002495240/payments/7422f92f-fb13-4f51-bc00-86bee277a506",
"rel": "payment",
}
],
"mode": "live",
"eventName": "PAYMENT_PROCESSING"

}

Paiement terminé

{

"payload": {
"accountId": "1002495240",
"id": "7422f92f-fb13-4f51-bc00-86bee277a506",
"merchantRefNum": "523a463c-c6a1-4e64-ace9-0c1161b9a31a",
"paymentHandleToken": "PHC0uHklty7AIXEI",
"amount": 500000,
"currencyCode": "<currency>",

"status": "COMPLETED",
"gatewayResponse": {
"operationId": "0123124567407707",
"id": "b08562c0-9e7a-45e6-a8f2-17eaf669a38a",
"processor": "SAFETYPAY",
"status": "102"
},
"paymentType": "<paymentmethodname>",

"source": "SingleAPI",
"availableToSettle": 0,
"txnTime": "2023-05-04T08:20:29Z",
"customerIp": "213.208.158.212",
"profile": {
"email": "BRTESTQA202_01@gmail.com"
},
"settleWithAuth": true,
"statusTime": "2023-05-04T08:28:21Z",
"updatedTime": "2023-05-04T08:28:21Z",
"gatewayReconciliationId": "b08562c0-9e7a-45e6-a8f2-17eaf669a38a"
},
"eventType": "PAYMENT_COMPLETED",
"attemptNumber": "1",
"resourceId": "7422f92f-fb13-4f51-bc00-86bee277a506",
"eventDate": "2023-05-04T08:20:29Z",
"links": [
{
"href": "https://api.test.paysafe.com/alternatepayments/v1/accounts/1002495240/payments/7422f92f-fb13-4f51-bc00-86bee277a506",
"rel": "payment",
}
],
"mode": "live",
"eventName": "PAYMENT_COMPLETED"

}

Paiement échoué

{

"payload": {
"accountId": "1002495260",
"id": "49dacbaf-4246-416c-8335-4686656c048d",
"merchantRefNum": "ff2f3b4c-89c4-4af1-bffe-4b980d8dfe10",
"paymentHandleToken": "PHdCouX8GqXt68AR",
"amount": 20000,
"currencyCode": "<currency>",

"status": "FAILED",
"gatewayResponse": {
"operationId": "0123124567275575",
"id": "16b022a0-d8bf-46a2-8e91-e57917faa700",
"processor": "SAFETYPAY",
"status": "100"
},
"paymentType": "<paymentmethodname>",

"availableToSettle": 0,
"txnTime": "2023-05-04T05:41:46Z",
"customerIp": "213.208.158.212",
"profile": {
"email": "CLKHIPU0212_01@gmail.com"
},
"settleWithAuth": true,
"statusTime": "2023-05-04T06:02:21Z",
"updatedTime": "2023-05-04T06:02:21Z",
"gatewayReconciliationId": "16b022a0-d8bf-46a2-8e91-e57917faa700"
},
"eventType": "PAYMENT_FAILED",
"attemptNumber": "1",
"resourceId": "49dacbaf-4246-416c-8335-4686656c048d",
"eventDate": "2023-05-04T05:41:46Z",
"links": [
{
"href": "https://api.test.paysafe.com/alternatepayments/v1/accounts/1002495260/payments/49dacbaf-4246-416c-8335-4686656c048d",
"rel": "payment",
}
],
"mode": "live",
"eventName": "PAYMENT_FAILED"

}

Appels GET

  • Appel GET au Payment Handle avec l’identifiant du Payment Handle renvoyé dans la réponse à l’appel /paymentHandles

https://api.test.paysafe.com:443/paymenthub/v1/paymenthandles/<Payment Handle ID>

  • Appel GET au Payment Handle à l’aide du numéro de référence marchand envoyé dans la requête d’appel /paymentHandles

https://api.test.paysafe.com:443/paymenthub/v1/paymenthandles?merchantRefNum=<merchantrefNum>

  • Appel GET au Payment Handle avec l’identifiant du Payment Handle renvoyé dans la réponse à /payments call

https://api.test.paysafe.com:443/paymenthub/v1/payments/<Payment Handle ID>

  • Appel GET au Payment Handle à l’aide du numéro de référence marchand envoyé dans la requête /payments call

https://api.test.paysafe.com:443/paymenthub/v1/payments?merchantRefNum=<merchantrefNum>