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énement | Webhook |
---|---|
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 Express | Webhook 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 Express | Webhook 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 Express | Webhook 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 Express | Webhook 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. |
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>
Cette page a-t-elle été utile ?
- Webhooks
- Exemple de paquets de webhooks
- Payment Handle Payable
- Payment Handle Completed
- Payment Handle expiré avec "statusReason" : "AUTO_SETTLE_EXPIRED_PAYMENT_HANDLE"
- Payment Handle expiré "statusReason" : "AUTH_EXPIRED"
- Erreur du Payment Handle
- Traitement de paiements
- Paiement terminé
- Paiement échoué
- Appels GET