SEPA Direct Debit

Introduction
Le prélèvement SEPA (SDD) est le système de prélèvement pour les pays SEPA.
Le SDD vous permet de débiter directement un montant sur les comptes bancaires de vos clients. Un mandat SEPA signé par votre client vous autorise à débiter ce montant (ou des montants subséquents à l'avenir pour Card On File transactions).
Cette méthode de paiement n'est disponible que via le mode Full Service. Contactez-nous pour vous inscrire.
Avantages clés
- Traitement des transactions économique en intégrant la création de mandat SEPA dans le flux de paiement.
- Paiements sécurisés avec une période de contestation limitée (8 semaines au lieu de 13 mois) pour les mandats valides. Utiliser notre solution CreditorID diminue encore plus le risque de rétrofacturation/fraude. Contactez-nous si vous souhaitez vous inscrire à ce service.
- Idéal pour les paiements récurrents (c'est-à-dire abonnements, services à la demande, services pay-as-you-use) ou comme alternative aux cartes de crédit en divisant des montants importants en versements individuels.
- Méthode de paiement populaire en Europe pour les transactions de prélèvement automatique.
Intégration
Nous proposons cette méthode de paiement pour les modes d'intégration suivants. Apprenez dans nos guides dédiés leurs différences individuelles :
Trouvez un aperçu général dans le chapitre "Cinématique".
Cette méthode de paiement vous permet de répondre à divers cas d'utilisation. En fonction du mode d'intégration et du cas d'utilisation, des différences s'appliquent. Consultez cette matrice pour savoir exactement ce qui est le plus adapté à vos besoins :
Je veux que mes clients remplissent le mandat.... |
|||
---|---|---|---|
Sur notre plateforme | Dans ma boutique en ligne | ||
Je traiterai la première transaction.... | Juste après la création du mandat | CreateHostedCheckout avec création de mandat |
CreatePayment avec création de mandat |
Plus tard | CreateHostedCheckout avec mandat création pour une transaction à 0 montant + Créer un paiement |
Créer un mandat + Créer un paiement |
Si vous souhaitez traiter une transaction avec un mandat existant, appliquez le flux Server-to-server avec mandat existant.
Hosted Checkout Page avec création de mandat
Ajoutez les propriétés suivantes à une demande standard CreateHostedCheckout :
{
"hostedCheckoutSpecificInput":{
"returnUrl":"https://yourReturnUrl.com",
"locale":"en_GB",
"paymentProductFilters":{
"restrictTo":{
"products":[
771
]
}
}
},
"order":{
"amountOfMoney":{
"amount":1000,
"currencyCode":"EUR"
}
},
"sepaDirectDebitPaymentMethodSpecificInput":{
"paymentProduct771SpecificInput":{
"mandate":{
"customerReference":"CustomerRef_{{TIMESTAMP}}",
"recurrenceType":"RECURRING",
"signatureType":"UNSIGNED"
}
}
}
}
Propriétés | Remarques |
---|---|
hostedCheckoutSpecificInput paymentProductFilters.restrictTo.products |
returnURL: L'URL vers laquelle nous redirigeons vos clients après que le paiement a été finalisé. locale: La version linguistique de notre Hosted Checkout Page, comprenant le formulaire de mandat SEPA.
|
order.amountOfMoney |
amount: Le montant brut que vous souhaitez facturer pour cette commande. Si vous souhaitez créer le mandat d'abord et traiter la transaction plus tard, définissez la valeur sur "0" |
sepaDirectDebitPaymentMethodSpecificInput. |
customerReference: Une référence unique pour votre client. recurrenceType: La validité du mandat. Valeurs possibles :
signatureType: Le mode de signature du mandat. Valeurs possibles :
|
Retrouvez des informations détaillées sur cet objet et ses propriétés dans notre documentation CreateHostedCheckoutAPI.
Server-to-server avec création de mandat
Ajoutez les propriétés suivantes à une demande standard CreatePayment :
{
"order": {
"amountOfMoney": {
"amount": 123,
"currencyCode": "EUR"
}
},
"sepaDirectDebitPaymentMethodSpecificInput": {
"paymentProduct771SpecificInput": {
"mandate": {
"returnUrl": "https://yourReturnUrl.com",
"customer": {
"bankAccountIban": {
"iban": "BE45000253450589"
},
"companyName": "yourCompanyName",
"contactDetails": {
"emailAddress": "customer@domain.com"
},
"mandateAddress": {
"city": "Paris",
"countryCode": "FR",
"street": "27 rue des fleurs",
"zip": "75008"
},
"personalInformation": {
"name": {
"firstName": "john",
"surname": "doe"
},
}
},
"customerReference": "0efaa98944324234b9ad27f9355a1093",
"language": "en",
"recurrenceType": "RECURRING",
"signatureType": "UNSIGNED"
}
},
"paymentProductId": 771
}
}
Propriétés | Remarques |
---|---|
order.amountOfMoney |
amount: Le montant brut que vous souhaitez facturer pour cette commande. |
sepaDirectDebitPaymentMethodSpecificInput. |
returnURL: L'URL vers laquelle nous redirigeons vos clients après que le paiement a été finalisé. customer: Toutes les informations requises pour créer le mandat. customerReference: Une référence unique pour votre client. language: La version linguistique du formulaire de mandat SEPA. recurrenceType: La validité du mandat. Valeurs possibles :
signatureType: Le mode de signature du mandat. Valeurs possibles :
paymentProductId: L'identifiant numérique de la méthode de paiement sur notre plateforme. Trouvez cet id dans le chapitre "Aperçu". |
Trouvez des informations détaillées sur cet objet et ses propriétés dans notre CreatePaymentAPI.
Server-to-server avec mandat existant
Ajoutez les propriétés suivantes à une demande standard CreatePayment :
{
"order": {
"amountOfMoney": {
"amount": 200,
"currencyCode": "EUR"
}
},
"sepaDirectDebitPaymentMethodSpecificInput": {
"paymentProduct771SpecificInput": {
"existingUniqueMandateReference": "mandateRef_existingReference"
},
"paymentProductId": 771
}
}
Propriétés | Remarques |
---|---|
order.amountOfMoney |
amount: Le montant brut que vous souhaitez facturer pour cette commande. |
sepaDirectDebitPaymentMethodSpecificInput. |
La référence du mandat que votre client a signé lors de la création de la première transaction. Vous pouvez également réutiliser un mandat existant pour Card On File transactions. |
paymentProductId |
L'identifiant numérique de la méthode de paiement sur notre plateforme. Trouvez cet id dans le chapitre "Aperçu". |
Trouvez des informations détaillées sur cet objet et ses propriétés dans notre CreatePaymentAPI.
Créer un mandat
Notre CreateMandateAPI vous permet de créer un mandat pour une utilisation ultérieure, le séparant ainsi de la demande de transaction liée à ce mandat. Par conséquent, vous pouvez utiliser ce mandat dans les demandes Server-to-server avec mandat existant suivantes.
Ajoutez les propriétés suivantes à une demande standard CreateMandate :
{
"customer":{
"bankAccountIban":{
"iban":"BE45000253450589"
},
"mandateAddress":{
"city":"Monument Valley",
"countryCode":"US",
"houseNumber":"13",
"street":"Desertroad",
"zip":"84536"
},
"personalInformation":{
"name":{
"firstName":"Jane",
"surname":"Doe"
},
}
},
"customerReference":"uniqueCustomerReference123456789012",
"language":"en",
"recurrenceType":"UNIQUE",
"returnUrl":"https://yourReturnUrl.com",
"signatureType":"UNSIGNED"
}
Propriétés | Remarques |
---|---|
customer |
Toutes les informations requises pour le mandat. |
customerReference |
customerReference: Une référence unique pour votre client. language: La version linguistique du formulaire de mandat SEPA. signatureType: Le mode de signature du mandat. Valeurs possibles :
returnUrl: L'URL vers laquelle nous redirigeons vos clients après que le paiement a été finalisé. recurrenceType: La validité du mandat. Valeurs possibles :
|
Trouvez des informations détaillées sur cet objet et ses propriétés dans notre CreateMandateAPI.
Cinématique
Notez que les transactions SEPA réussies atteignent statusOutput.statusCode=4 au lieu de 9 immédiatement après leur traitement par notre plateforme. Une fois que notre plateforme reçoit une confirmation de l'émetteur pour cette transaction, nous la mettrons automatiquement à jour en statusOutput.statusCode=9. Lisez notre guide dédié pour en savoir plus sur les états de transaction.
Avec création de mandat via CreateHostedCheckout
Ce flux s'applique à la création d'une transaction et d'un mandat en une seule opération.
Il couvre les cas d'utilisation suivants :
- Transactions uniques
- La première transaction d'une série liée à un mandat
- Vos clients finalisent une commande dans votre boutique et sélectionnent cette méthode de paiement.
- Vous envoyez une demande CreateHostedCheckout à notre plateforme pour créer un mandat et le paiement.
- Notre plateforme vous envoie une réponse contenant un redirectUrl. Si vous avez envoyé le signatureType comme SMS, notre plateforme envoie un SMS avec un mot de passe à usage unique à vos clients pour vérification (étape 4). Si vous avez envoyé signatureType comme UNSIGNED, le flux continue à l'étape 5.
- Vos clients saisissent leurs coordonnées bancaires, y compris le mot de passe à usage unique, sur le redirectUrl pour signer le mandat et confirmer le paiement.
- Nous redirigeons votre client vers votre returnUrl.
- Nous envoyons la transaction pour traitement et recevons le résultat de l'émetteur (dans un délai de 1-2 jours).
- Dès que l'émetteur a confirmé le traitement de la transaction, notre plateforme met à jour la transaction en statusOutput.statusCode=9
- Vous demandez le résultat de la transaction à notre plateforme via GetHostedCheckout ou recevez le résultat via webhooks.
- Si la transaction a été réussie (statusOutput.statusCode=9), vous pouvez livrer les marchandises / services.
- L'émetteur vous transfère les fonds.
- Nous vous transférons les fonds.
Avec création de mandat via CreatePayment
- Vos clients finalisent une commande dans votre boutique et sélectionnent cette méthode de paiement.
- Vous envoyez une demande CreatePayment à notre plateforme pour créer un mandat.
- Notre plateforme vous envoie une réponse contenant un merchantAction.redirectData.redirectUrl (vous en aurez besoin pour l'étape 4) et sepaDirectDebitPaymentMethodSpecificOutput.paymentProduct771SpecificOutput.mandateReference.
- Vous redirigez vos clients vers le merchantAction.redirectData.redirectUrl. Vos clients saisissent leur numéro de téléphone sur cette page. Si vous avez envoyé le signatureType comme SMS, notre plateforme envoie un SMS avec un mot de passe à usage unique à vos clients pour vérification (étape 4'). Si vous avez envoyé signatureType comme UNSIGNED, le flux continue à l'étape 6.
4'(optionnel). Vos clients saisissent le mot de passe à usage unique sur le redirectUrl pour signer le mandat. - Nous redirigeons votre client vers votre returnUrl.
- Nous traitons la transaction immédiatement après la création du mandat. Nous recevons le résultat de l'émetteur dans un délai de 1-2 jours.
- Dès que l'émetteur a confirmé le traitement de la transaction, notre plateforme met à jour la transaction en statusOutput.statusCode=9
- Vous demandez le résultat de la transaction à notre plateforme via GetPaymentDetails ou recevez le résultat via webhooks.
- Si la transaction a été réussie (statusOutput.statusCode=9), vous pouvez livrer les marchandises / services.
- L'émetteur nous transfère les fonds.
- Nous vous transférons les fonds.
Avec mandat existant via CreatePayment
Ce flux s'applique à :
- Transactions uniques
- Les transactions initiales ou ultérieures d'une série de paiements liés
pour lesquelles vous avez déjà un mandat.
- Vos clients finalisent une commande dans votre boutique et sélectionnent cette méthode de paiement.
- Vous envoyez cette demande CreatePayment à notre plateforme, en incluant la référence de mandat existante dans la propriété sepaDirectDebitPaymentMethodSpecificInput.paymentProduct771SpecificInput.existingUniqueMandateReference
- Nous traitons la transaction. Nous recevons le résultat de l'émetteur dans un délai de 1-2 jours.
- Dès que l'émetteur a confirmé le traitement de la transaction, notre plateforme met à jour la transaction en statusOutput.statusCode=9
- Vous demandez le résultat de la transaction à notre plateforme via GetPaymentDetails ou recevez le résultat via webhooks.
- Si la transaction a été réussie (statusOutput.statusCode=9), vous pouvez livrer les marchandises / services.
- L'émetteur nous transfère les fonds.
- Nous vous transférons les fonds.
Création de mandat pour utilisation ultérieure via CreateMandate
Ce flux s'applique si vous souhaitez créer un mandat et facturer votre client à un stade ultérieur (c'est-à-dire lorsque vos clients créent un compte chez vous et que vous les facturez à une date fixe à un stade ultérieur):
- Vous envoyez une demande CreateMandate à notre plateforme.
- Vous redirigez vos clients vers le redirectUrl pour remplir le mandat SEPA. Si vous avez envoyé le signatureType comme SMS, notre plateforme envoie un SMS avec un mot de passe à usage unique à vos clients pour vérification (étape 2'). Si vous avez envoyé signatureType comme UNSIGNED, le flux continue à l'étape 3.
2'(optionnel). Vos clients saisissent le mot de passe à usage unique sur le redirectUrl pour signer le mandat. - Nous redirigeons votre client vers votre returnUrl.
Test
Consultez nos Cas de test pour des données de test et des instructions détaillées.
Assurez-vous d'utiliser le bon endpoint et de renseigner l'URL de production dès que vous avez terminé vos tests.