Search Overlay

Giropay

L’API Paiements Paysafe prend en charge Giropay en tant qu’instrument de paiement. Giropay est un mode de paiement allemand basé sur les services bancaires en ligne. Giropay permet à ses clients d’effectuer des transactions en ligne en utilisant leur environnement bancaire en ligne, où les fonds sont débités de leur compte bancaire et déposés directement sur votre compte ou dans un portefeuille configuré par vous. 

Selon leur banque, les clients confirment les paiements sur Giropay en utilisant un deuxième facteur d’authentification ou un code NIP. Giropay redirige les clients vers son site Web pour authentifier le paiement, et le client et vous-même recevez une confirmation immédiate du succès ou de l’échec du paiement. 

Fonctionnalités

  • Région prise en charge : Allemagne
  • Devise prise en charge : EURO
  • Giropay représente 10 % des paiements en ligne en Allemagne. 
  • Confirmation immédiate au client du succès ou de l’échec d’un paiement. 

Exigences de configuration

Pour que Paysafe puisse créer un compte de test dans l’environnement de bac à sable et dans l’environnement de production, nous avons besoin des informations suivantes.

  • Vous devez être intégré à la solution Skrill.
  • Votre paiement Skrill par courriel
  • Mot de passe API/MQI de votre compte Skrill
  • Id du site Web

Types de transaction

Nous prenons en charge les types de transactions suivants

  • Paiements
  • Remboursements
  • Retraits autorisés 

Cliquez sur la vidéo pour voir comment fonctionne Giropay. 

Scénarios habituels

Paiement par Giropay

Pour traiter une demande de paiement en utilisant Giropay :

  1. Créez un Payment handle avec les paramètres suivants :
    transactionType : PAYMENT
    paymentType : GIROPAY

  2. Transmettez les paramètres suivants à l’objet GIROPAY : 
    consumerId : ID de courriel unique du client qui est utilisé pour identifier le compte chez Skrill. 
    countryCode : code de pays unique à deux chiffres permettant d’identifier la zone d’activité du compte bancaire et la devise.
    websiteId : identifiant unique du marchand créé par Skrill pour vous identifier. 

  3. Le client doit effectuer le paiement en sélectionnant un compte bancaire sur la page Giropay; Paysafe renvoie une réponse avec le texte suivant :
    • Le paramètre action défini sur REDIRECT
    • Un lien de redirection de paiement pointant vers l’URL de redirection de la page Skrill
    • L’état du Payment handle défini sur INITIATED.
  4. Le client doit fournir les informations suivantes : prénom, nom et id d’adresse électronique. 
  5. Le client sélectionne la banque sur la page Giropay et se connecte pour terminer la transaction. 
  6. Le client est dirigé vers une page de succès ou d’échec en fonction de l’état de la transaction. 
    • Si la transaction est réussie, l’état du Payment handles devient PAYABLE. 
    • Si la transaction n’aboutit pas, l’état du Payment handles passe à FAILED.
    • Un webhook vous informera du changement d’état. 
  7. Utilisez le paymentHandleToken renvoyé dans la réponse pour traiter la requête de paiement : paymenthub/v1/payments.  

Le paymentId renvoyé dans la réponse doit être stocké de votre côté pour un usage ultérieur, puisque le paymentId est nécessaire pour que les remboursements et les retraits soient directement déposés sur le compte bancaire utilisé pour la transaction initiale.

Règlement automatique et remboursement automatique

Si vous n’avez pas fait d’appel à l’API Paiements et que vous avez opté pour le règlement et le remboursement automatiques, vous pouvez traiter les paiements et les règlements :  

  1. Règlement automatique : au bout de 15 minutes, le système déclenche automatiquement l’appel à l’API Paiements et termine les paiements et les règlements. Le Payment handle expire également. 
  2. Règlement automatique et remboursement automatique Au bout de 15 minutes, le système déclenche automatiquement l’appel à l’API Paiements et termine les paiements, les règlements et les remboursements. Le Payment handle expire également. 

Pour choisir cette fonctionnalité, envoyez un courriel à l’équipe chargée des intégrations (integrations@paysafe.com). 

Retrait/crédits autonomes Giropay

Pour traiter une demande de paiement de retrait en utilisant Giropay comme mode de paiement :

  1. Créez un Payment Handle avec les paramètres suivants :
    transactionType : STANDALONE_CREDIT
    paymentType : GIROPAY

  2. Transmettez les paramètres suivants à l’objet GIROPAY :

    • paymentId : Il s’agit de l’identifiant du paiement effectué précédemment, à partir duquel les coordonnées bancaires sont extraites et l’argent du retrait est transféré sans que le client n’ait à saisir à nouveau ses coordonnées. Cela permet d’éviter les transactions frauduleuses, car seuls les comptes utilisés pour les dépôts doivent être utilisés pour les retraits. 

    • emailSubject : objet personnalisable du courriel qui sera envoyé au client pour l’informer des détails de la transaction. 

    • emailMessage : corps personnalisable du courriel qui sera envoyé au client pour l’informer des détails de la transaction. 

    • consumerId : ID de courriel unique du client qui est utilisé pour identifier le compte chez Skrill. 

  3. En réponse, un jeton à usage unique est reçu avec la balise paymentHandleToken et l’état est PAYABLE. Ce jeton est ensuite transmis à l’API Crédits autonomes. 

    • La réponse finale contient les données de la transaction avec des paramètres tels que id – identifiant unique côté Paysafe et gatewayReconciliationId – identifiant unique côté Skrill, et l’état de la transaction qui peut être utilisé pour des références ultérieures. 

    • L’état du retrait sera d’abord à PENDING et passera à COMPLETED une fois que le remboursement aura été effectué sur le compte bancaire du client; à chaque étape, un webhook vous sera envoyé. 

  • Une fois qu’un paiement a été effectué par le biais du service Giropay, le client ne peut effectuer un retrait qu’auprès de la banque par laquelle le paiement a été effectué. Plusieurs banques peuvent être utilisées, et le retrait sera effectué auprès de la banque dont l’identifiant de paiement est indiqué dans la requête. 
  • Les crédits autonomes doivent être initiés une heure après l’initiation du paiement. 

Remboursements par Giropay

Pour traiter une transaction de remboursement à l’aide de Giropay : 

  1. Une fois le paiement effectué, l’état passe à COMPLETED dans la réponse aux informations de paiement et le remboursement peut être initié avec l’ID de paiement. 

  2. Créez une requête de remboursement à l’aide de l’API Remboursements.

    • POST: /paymenthub/v1/settlements/{settlementsid}/refunds

  3. La requête prend un montant, qui est égal à celui des paiements, ou peut être un remboursement partiel avec un montant inférieur à celui des paiements. 

  4. Plusieurs remboursements partiels peuvent être effectués tant que la somme totale reste inférieure au montant du paiement initial. 

  5. La réponse comprend les détails du paiement effectué et un identifiant unique qui peut être utilisé pour se référer à chaque remboursement individuel. 

  6. L’état du remboursement sera SCHEDULED et passera à PROCESSED une fois le remboursement effectué sur le compte bancaire du client; à chaque étape, un webhook vous sera envoyé. 

  • Vous ne pouvez lancer une opération de remboursement que si la transaction a été réglée/payée. 
  • Les remboursements doivent être initiés une heure après l’initiation des paiements. 

Exemple de code

Payment handle – requête

{

"merchantRefNum": "33de25e0-4d58-48ad-a73b-6837d89ea8ea",
transactionType:"transactionType": "PAYMENT",
"accountId": "1021515400",
"giropay": {
"consumerId": "joe.sweet@paysafe.com",
"countryCode": "DE",
"websiteId":"10007062"
},
"paymentType": "GIROPAY",
"amount": 1000,
"currencyCode": "EUR",
"customerIp": "172.0.0.1",
"billingDetails": {
"nickName": "Home",
"street": "100 Queen",
"street2": "Unit 201",
"city": "Toronto",
"zip":"M5H2N2","zip": "M5H 2N2","zip": "M5H 2N2",
"country": "CA"
},

"returnLinks": [
{
"rel": "on_completed",
"href": "https://usgaminggamblig.com/payment/return/success",
"method": "GET"
},
{
"rel": "on_failed",
"href": "https://usgaminggamblig.com/payment/return/failed",
"method": "GET"
},
{
"rel": "on_cancelled",
"href": "https://usgaminggamblig.com/payment/return/cancelled",
"method": "GET"
},
{
"rel": "default",
"href": "https://usgaminggamblig.com/payment/",
"method": "GET"
}
]

}

Payment handle – réponse

{

"id": "35fb2104-a73f-42bb-8142-80626867d632",
"paymentType": "GIROPAY",
"paymentHandleToken": "PHbzGKOoqngDfGT9",
"merchantRefNum": "33de25e0-4d58-48ad-a73b-6837d89ea8ea",
"currencyCode": "GBP",
"txnTime": "2023-02-21T10:48:25Z","txnTime": "2023-02-21T10:48:25Z",
"billingDetails": {
"street": "100 Queen",
"street2": "Unit 201",
"city": "Toronto",
"zip":"M5H2N2","zip": "M5H 2N2","zip": "M5H 2N2",
"country": "CA"
},
"customerIp": "172.0.0.1",
"status": "INITIATED",
"links": [
{
"rel": "redirect_payment",
"href": "https://api.qa.paysafe.com/alternatepayments/v1/redirect?accountId=1021515400&paymentHandleId=35fb2104-a73f-42bb-8142-80626867d632&token=eyJhbGciOiJIUzI1NiJ9.eyJhY2QiOiIxMDIxNTE1NDAwIiwicHlkIjoiMzVmYjIxMDQtYTczZi00MmJiLTgxNDItODA2MjY4NjdkNjMyIiwiZXhwIjoxNjc2OTc4MzA1fQ.NHZZL42cFPKFYGwQDpFVwQFfoslXt3j3AOa9lZVjd8Y"
}
],
"liveMode": false,
"simulator": "EXTERNAL",
"usage": "SINGLE_USE",
"action": "REDIRECT",
"executionMode": "SYNCHRONOUS",
"amount": 1000,
"timeToLiveSeconds": 899,
"gatewayResponse": {
"processor": "SKRILL_QCO",
"sid": "307dad008ba314ed6e97ef20072e1124"
},
"returnLinks": [
{
"rel": "default",
"href": "https://usgaminggamblig.com/payment/"
},
{
"rel": "on_failed",
"href": "https://usgaminggamblig.com/payment/return/failed"
},
{
"rel": "on_completed",
"href": "https://usgaminggamblig.com/payment/return/success"
},
{
"rel": "on_cancelled",
"href": "https://usgaminggamblig.com/payment/return/cancelled"
}
],
transactionType:"transactionType": "PAYMENT",
"gatewayReconciliationId": "497a3c95-0f85-4a67-8a9e-414bc24f896b",
"updatedTime": "2023-02-21T10:48:25Z",
"statusTime": "2023-02-21T10:48:25Z"
},
"giropay": {
"consumerId": "joe.sweet@paysafe.com",
"countryCode": "DE",
"websiteId":"10007062"
}

}

Requête de paiement

{

"merchantRefNum": "5b6e9a70-7116-4810-a010-ed0829a6e24e",
"amount": 100,
"currencyCode": "EUR",
"dupCheck": true,
"settleWithAuth": true,
"paymentHandleToken": "PHbzGKOoqngDfGT9",
"customerIp": "172.0.0.1",
"description": "Magazine subscription"

}

Réponse pour paiement

{

"id": "54049a1f-0759-4b8a-89a0-463363851346",
"paymentType": "GIROPAY",
"paymentHandleToken": "PHbzGKOoqngDfGT9",
"merchantRefNum": "5b6e9a70-7116-4810-a010-ed0829a6e24e",
"currencyCode": "EUR",
"settleWithAuth": true,
"dupCheck": true,
"txnTime": "2023-02-21T14:12:21Z",
"billingDetails": {
"street1": "100 Queen",
"street2": "Unit 201",
"city": "Toronto",
"zip":"M5H2N2","zip": "M5H 2N2","zip": "M5H 2N2",
"country": "CA"
},
"customerIp": "172.0.0.1",
"status": "COMPLETED",
"gatewayReconciliationId": "7374d7ca-c39d-41f5-beb0-f1292c159dc6",
"amount": 100,
"availableToRefund": 100,
"consumerIp": "172.0.0.1",
"liveMode": false,
"simulator": "EXTERNAL",
"updatedTime": "2023-02-21T14:13:08Z",
"statusTime": "2023-02-21T14:13:08Z",
"gatewayResponse": {
"transaction_id": "7374d7ca-c39d-41f5-beb0-f1292c159dc6",
"amount": 1.00,"amount": "1.00",
"mb_transaction_id": "320025076",
"pay_from_email": "elvisstoyanov.psc.payer@sun-mish.com",
"pay_to_email": "skrill.safetypay+2@paysafe.com",
"currency": "EUR",
"merchant_id": "322783146",
"id": "320025076",
"processor": "SKRILL_QCO",
"status": "2",
"sid": "5322becf0e0b7cd5bee11b2ecf00d9de"
},
"availableToSettle": 0
},
"giropay": {
"consumerId": "joe.sweet@paysafe.com",
"countryCode": "DE",
"digitalShopId":"10007062",

},
"settlements": {
"amount": 100,
"txnTime": "2023-02-21T14:12:21.000+0000",
"availableToRefund": 100,
"merchantRefNum": "5b6e9a70-7116-4810-a010-ed0829a6e24e",
"id": "54049a1f-0759-4b8a-89a0-463363851346",
"status": "COMPLETED"
}

}

Payment handle – requête (retrait/SCT)

{

"merchantRefNum": "1679649771",
transactionType:"transactionType": "STANDALONE_CREDIT",
"paymentType": "GIROPAY",
"amount": 419,
"currencyCode": "EUR",

"giropay": {
"consumerId": "johncena@gmail.com",
"paymentId": "18966217-2b3c-48fb-82ad-1e764fe0a008",
"emailMessage": "emailMessage",
"emailSubject": "emailSubject"
}

}

Payment handle – réponse (retrait/SCT)

{

"id": "81af54ea-cca1-4bdc-96b4-f3ef83504cf1",
"merchantRefNum": "1679649741",
"paymentHandleToken": "PHrOaPz39eMImyMe",
"status": "PAYABLE",
"paymentType": "GIROPAY",
"liveMode": false,
"simulator": "INTERNAL",
"usage": "SINGLE_USE",
"action": "NONE",
"executionMode": "SYNCHRONOUS",
"amount": 419,
"currencyCode": "EUR",
"timeToLiveSeconds": 899,
"gatewayResponse": {
"processor": "SKRILL_QCO"

},
transactionType:"transactionType": "STANDALONE_CREDIT",
"gatewayReconciliationId": "4ac51e23-37e4-4cc5-b5dc-cc23a560594a",
"txnTime": "2023-03-24T09:22:21Z",
"updatedTime": "2023-03-24T09:22:21Z",
"statusTime": "2023-03-24T09:22:21Z",
"links": [

{
"rel": "self",
"href": "http://mtl-dev-app-10.dev.oneplatform.io:8011/alternatepayments/v1/accounts/1679649556/paymenthandles/81af54ea-cca1-4bdc-96b4-f3ef83504cf1"
}

],
"giropay": {
"consumerId": "johncena@gmail.com",
"emailSubject": "emailSubject",
"emailMessage": "emailMessage",
"paymentId": "18966217-2b3c-48fb-82ad-1e764fe0a008"

}

}

Crédit autonome – requête

{

"amount": 419,
"merchantRefNum": "1679650557",
"paymentHandleToken": "PHrOaPz39eMImyMe"

}

Crédit autonome – réponse

{

"id": "7b44f5f7-3d59-4c83-8ca0-dd6501f87abf",
"gatewayReconciliationId": "AEAAAAFMRE",
"merchantRefNum": "1679650449",
"dupCheck": true,
"amount": 419,
"currencyCode": "EUR",
"paymentType": "GIROPAY",
"paymentHandleToken": "PHrOaPz39eMImyMe",
"liveMode": false,
"simulator": "INTERNAL",
"txnTime": "2023-03-24T09:34:09Z",
"updatedTime": "2023-03-24T09:34:11Z",
"statusTime": "2023-03-24T09:34:11Z",
"status": "PENDING",
"gatewayResponse": {
"status_msg": "scheduled",
"id": "506402464",
"processor": "SKRILL_QCO",
"sid": "2ed348c5ff674c54b7a3f62a7c6f5653",
"status": "1"

},
"links": [

{
"rel": "self",
"href": "http://mtl-dev-app-10.dev.oneplatform.io:8011/alternatepayments/v1/accounts/1679649556/standalonecredits/7b44f5f7-3d59-4c83-8ca0-dd6501f87abf"
}

],
"giropay": {
"consumerId": "johncena@gmail.com",
"emailSubject": "emailSubject",
"emailMessage": "emailMessage",
"paymentId": "18966217-2b3c-48fb-82ad-1e764fe0a008"

}

}

Création d’un remboursement – requête

{

"amount": 110,
"merchantRefNum": "1679651216",
"paymentType": "GIROPAY",
"currencyCode": "EUR"

}

Création d’un remboursement – réponse

{

"id": "aa6657d4-cf48-4bb8-8cec-82851ff3657e",
"gatewayReconciliationId": "-1326298067",
"merchantRefNum": "1679651045",
"amount": 110,
"currencyCode": "EUR",
"paymentType": "GIROPAY",
"txnTime": "2023-03-24T09:44:05Z",
"updatedTime": "2023-03-24T09:44:06Z",
"statusTime": "2023-03-24T09:44:06Z",
"liveMode": false,
"simulator": "INTERNAL",
"status": "COMPLETED",
"gatewayResponse": {
"id": "-1326298067",
"status": "2",
"merchant_id": "982842053",
"processor": "SKRILL_QCO"
},
"links": [
{
"rel": "self",
"href": "http://mtl-dev-app-10.dev.oneplatform.io:8011/alternatepayments/v1/accounts/1679649556/refunds/aa6657d4-cf48-4bb8-8cec-82851ff3657e"
},
{
"rel": "payment",
"href": "http://mtl-dev-app-10.dev.oneplatform.io:8011/alternatepayments/v1/accounts/1679649556/payments/18966217-2b3c-48fb-82ad-1e764fe0a008"
}
]

}

Webhooks

Payment Handle

  1. PAYMENT_HANDLE_PAYABLE : ce webhook signale que le jeton de Payment handle est créé aux fins requises et peut être exécuté lorsque les conditions préliminaires sont remplies; le prochain appel à l’API avec Payment handle peut être effectué. 

  2. PAYMENT_HANDLE_PROCESSING : ce webhook est déclenché lorsque le client est redirigé avec succès vers la page de la plateforme de paiement et que l’opération a commencé pour le paiement par le client.

  3. PAYMENT_HANDLE_COMPLETED : ce webhook est déclenché lorsque le processus du jeton de Payment handle est terminé après le déclenchement de l’API suivante. 

  4. PAYMENt_HANDLE_EXPIRED : ce webhook est déclenché lorsque l’étape suivante n’est pas lancée après la création du Payment handle dans le délai imparti. La durée peut être consultée dans la réponse to/paymenthub/v1/paymenthandles API sous la balise timeToLiveSeconds.

  5. PAYMENT_HANDLE_FAILED : ce webhook est déclenché lorsque le client est redirigé avec succès vers la page de la plateforme de paiement, mais qu’une erreur technique s’est produite et que la communication finale n’a pas pu atteindre Paysafe. 

Paiements

  1. PAYMENT_PENDING : le paiement est en attente parce que la transaction n’a pas été complétée entre le compte bancaire, le portefeuille Skrill et vous. 

  2. PAYMENT_COMPLETED/SETTLEMENT_COMPLETED : le paiement a été effectué avec succès.

  3. PAYMENT_FAILED : ce webhook est déclenché lorsque le paiement échoue au cours du processus. 

Crédits autonomes/retraits

  1. SA_CREDIT_FAILED : ce webhook est déclenché dans le cas où la transaction a été initialement terminée et a ensuite échoué en raison d’une erreur de règlement.

  2. SA_CREDIT_CANCELLED : ce webhook est déclenché lorsque la transaction a été annulée après avoir été effectuée. 

  3. SA_CREDIT_ERRORED : ce webhook est utilisé en cas d’erreur technique lors de l’initiation d’une transaction.

  4. SA_CREDIT_PENDING : ce webhook est déclenché lorsque le retrait a été initié mais qu’en raison de divers délais bancaires ou de problèmes de fuseau horaire, le transfert d’argent n’a pas eu lieu.

Remboursements

  1. REFUND_FAILED : ce webhook est déclenché lorsque le remboursement est initié mais qu’il a échoué en raison d’une erreur fonctionnelle.

    Exemple : le montant du remboursement est supérieur au montant du paiement.

  2. REFUND_COMPLETED : ce webhook est déclenché lorsque le remboursement a été transféré avec succès de votre compte vers le compte bancaire choisi par le client. 

  3. REFUND_PENDING : ce webhook est déclenché lorsque le remboursement a été initié mais qu’en raison de divers délais bancaires ou de problèmes de fuseau horaire, le transfert d’argent n’a pas eu lieu.

Cas de simulation

Paramètres du simulateur : Dans les en-têtes de la requête, transmettez la valeur INTERNAL pour le champ simulateur.

Simulations de retrait autorisé

Montant du retrait autorisé

État initial

Passage à l’état suivant

Délai de transition de l’état (en secondes)

24.19PENDINGCOMPLETED5
24.29PENDINGFAILED10
25.19PENDINGCOMPLETED10
25.29PENDINGFAILED15
26.19ERRORERROR0
  • Toute transaction de retrait autorisé autre que les montants mentionnés restera en attente. 

Simulations de remboursement

Montant remboursé

État initial

Passage à l’état suivant

Délai de transition de l’état (en secondes)

24.21PENDINGCOMPLETED5
24.31PENDINGFAILED10
26.31FAILEDFAILED0
  • Si le montant du remboursement est supérieur au montant du paiement initial, le remboursement affichera l’état FAILED.
  • Toute opération de remboursement autre que les montants mentionnés restera dans l’état COMPLETED.

Codes d’erreur et état des opérations

Cartographie des états

La cartographie des états ci-dessous tient compte de nos connaissances actuelles

État Skrill PSPDescription de l’étatCode d’état PaysafeRaison de l’état Paysafe
-2failedFAILEDUne erreur de passerelle externe s’est produite.
2processedCOMPLETED 
0pendingPENDING 
1pendingPENDING 

Codes d’erreur pour l’initiation du paiement

Skrill PSP
Code de renvoi
Code de messageCode HTTP PaysafeCode d’erreur PaysafeMessage d’erreur PaysafeDétails d’erreur PaysafeÉtat PaysafeCommentaires
-2failed5021001Erreur de la passerelle externeUne erreur de passerelle externe s’est produite.FAILEDFailed (-2) est généralement envoyé lorsque le client tente de payer, mais que le fournisseur de Skrill refuse la transaction. Il peut également être envoyé si la transaction est refusée par le moteur de fraude interne de Skrill.

Initier les codes d’erreur du SCT

Code de renvoi Skrill PSPCode de messageCode HTTP PaysafeCode d’erreur PaysafeMessage d’erreur PaysafeDétails d’erreur PaysafeÉtat PaysafeCommentaires
-2failed5021001Erreur de la passerelle externeUne erreur de passerelle externe s’est produite.FAILED

Failed (-2) peut se produire dans les cas suivants.

  • Le montant du paiement est supérieur au solde du compte.
  • La transaction référencée n’a pas été traitée.
  • Autres erreurs génériques et techniques. 

Initier les codes d’erreur de remboursement

Code de renvoi Skrill PSPCode de messageCode HTTP PaysafeCode d’erreur PaysafeMessage d’erreur PaysafeDétails d’erreur PaysafeÉtat PaysafeCommentaires
-2failed5021001Erreur de la passerelle externeUne erreur de passerelle externe s’est produite.FAILED

Failed (-2) peut se produire dans les cas suivants.

  • Le montant du remboursement est supérieur au solde du compte.
  • La transaction a été dépassée.
  • Autres erreurs génériques.