Introduction

WL Sips est une solution de paiement de commerce électronique multicanale sécurisée conforme à la norme PCI DSS. Elle vous permet d’accepter et de gérer des transactions de paiement en prenant en compte les règles métier liées à votre activité (paiement à la livraison, paiement différé, paiement récurrent, paiement en plusieurs fois …).

L’objectif du présent document est d’expliquer l'intégration du moyen de paiement SDD (SEPA Direct Debit) dans WL Sips .

À qui s’adresse ce document ?

Ce document a pour objectif de vous aider à implémenter le moyen de paiement SDD sur votre site de commerce électronique.

Il comprend :

  • des informations fonctionnelles à votre attention ;
  • des instructions d'implémentation à destination de votre équipe technique.

Pour avoir une vue d’ensemble de la solution WL Sips , nous vous conseillons de consulter les documents suivants :

  • Présentation fonctionnelle ;
  • Guide de configuration des fonctionnalités .

Comprendre les paiements SDD avec WL Sips

Principes généraux

Le SDD (SEPA Direct Debit) est un moyen de paiement par prélèvement utilisé par les débiteurs et créanciers de la zone SEPA.

Le prélèvement est un paiement à l’initiative du créancier (le commerçant), autorisé préalablement par le débiteur (le client) grâce à l’établissement d’un mandat. Ce moyen de paiement est utilisable pour des paiements récurrents ou ponctuels.

Règles d’acceptation

Attention: les règles générales applicables au prélèvement SEPA décrites ci-dessous ne sont pas exhaustives et ne se substituent pas à la réglementation SEPA disponible dans les dernières versions des Rulebooks. Votre banque doit vous informer des règles régissant le fonctionnement du prélèvement SEPA.

Fonctionnalités disponibles

Canaux de paiement
Internet V Canal de paiement par défaut
MOTO V
Télécopie X
SVI X
Typologies de paiement
Paiement immédiat X
Paiement en fin de journée V
Paiement différé V
Paiement à l'expédition V
Paiement en plusieurs fois V
Paiement par abonnement V
Paiement par fichier V
Paiement OneClick V
Gestion des devises
Acceptation multidevise X Euro uniquement
Règlement en devise X Euro uniquement

Devise

Le prélèvement SEPA est un instrument de paiement en euro. L’ordre de paiement ne peut être exprimé qu'en euros. Néanmoins, les comptes des clients peuvent être tenus dans une autre devise. Dans ce cas, la banque du client assure la conversion, qui a lieu en dehors de la transaction de prélèvement SEPA elle-même.

Mandat

L’accord que votre client vous a donné pour émettre des ordres de prélèvements et les présenter au débit de son compte est formalisé par la signature d’un mandat de prélèvement SEPA. Le prélèvement repose sur un contrat clair conclu entre vous et votre client, matérialisé par un consentement explicite : le mandat.

Le mandat de prélèvement SEPA matérialise le consentement du client auprès de son commerçant. SPS attribue une Référence Unique de Mandat ( RUM ) à chaque mandat. Vous pouvez également attribuer les Références Uniques de Mandat vous-même (voir les parties "Paramétrer la requête de paiement" du connecteur Sips Paypage ou Sips Office ). Dans ce cas, vous devez assurer leur unicité.

Des changements peuvent intervenir sur le mandat au cours de la vie de ce dernier (changement de numéro de compte du client, etc.). Par conséquent vous devez disposer du mandat mis à jour.

Schémas du SDD

Le prélèvement SEPA se décline dans deux schémas :

  • Le prélèvement SEPA CORE possible pour tout type de clientèle. Ce schéma se décline dans WL Sips en deux sous-types :
    • Core (BtoC). Ce schéma s'applique à tous les payeurs, particuliers ou entreprises.
    • Core Entreprise (BtoF) destiné aux associations avec ou sans numéro de SIRET. Ce sous-type a été créé afin de permettre de véhiculer des informations supplémentaires, mais il reste soumis aux règles générales applicables au schéma CORE.
  • Le prélèvement SEPA BtoB (ou interentreprises) réservé exclusivement aux paiements entre entreprises, professionnels et associations, et qui a des règles de gestion spécifiques. Il est interdit à un créancier de prélever un particulier avec un SDD BtoB. La banque du débiteur a l’obligation de s’assurer auprès de son client de la validité du mandat BtoB avant de pouvoir engager les paiements par SDD. Le débiteur doit donc transmettre une copie du mandat de SDD BtoB à sa banque dès signature pour que celle-ci enregistre les caractéristiques du mandat dans son système d'informations. Si la banque du débiteur n'est pas informée du mandat signé, le prélèvement sera automatiquement rejeté. Le débiteur s’engage aussi à informer sa banque de toute modification ou suppression de mandat. Le débiteur ne peut pas contester un SDD BtoB dès lors qu’il a été régulièrement payé (i.e. existence d’un mandat), il n'est donc pas possible de demander à sa banque le remboursement d'un prélèvement BtoB.

Type de prélèvement

Le prélèvement SEPA peut être utilisé pour des opérations récurrentes ou ponctuelles :

  • mandat récurrent : le mandat est valable pour une série de prélèvements. Il est révocable à tout moment par le créancier ou le débiteur et devient caduc en cas d’inutilisation durant une période de 36 mois.
  • mandat ponctuel : le mandat n’est valable que pour un prélèvement unique, il expire automatiquement.

Limitation de montant

Le montant d’un ordre de prélèvement SEPA doit être compris entre 0,01 et 999.999.999,99 euros.

Garantie de paiement SafeDebit

La plateforme SEPA est également connectée à la solution SafeDebit, proposée par la société Score & Secure Payment (SSP) et qui permet de délivrer une garantie de paiement pour les paiements SEPA impayés.

Pour bénéficier de cette garantie, vous devez avoir souscrit un contrat SafeDebit auprès de SSP qui vous fournira un numéro de bénéficiaire à communiquer lors de la souscription à cette fonctionnalité.

Vue d'ensemble

L’entreprise Score & Secure Payment (SSP) propose une solution permettant de garantir les paiements par prélèvements SEPA. Sur la base de contrôles de fraude (scoring), cette entreprise indépendante vous propose de garantir les prélèvements SEPA réalisés sur vos sites marchands. WL Sips est connecté à l’offre SafeDebit de SSP, par l’intermédiaire de SPS.

Si vous souscrivez à l'offre SafeDebit, vous profiterez alors de cette solution. Vous devrez pour cela suivre la procédure décrite dans le chapitre « Ouvrir votre contrat d'acceptation SDD ». Les prélèvements SEPA réalisés seront ainsi garantis par SSP (et donc vous pourrez être indemnisé par SSP en cas d’impayé).

La prise de risque

Il existe actuellement une option supplémentaire associée à SafeDebit. Il s’agit de la prise de risque.

Activer la garantie sur le mandat et les prélèvements SEPA permet de faire un certain nombre de vérification des données (détection de faux IBAN, type de compte, identité digitale,…) et de refuser la création de mandats et les prélèvements SEPA si la garantie de paiement ne peut être appliquée. Afin que les prélèvements SEPA ou création de mandats ne soient pas refusés bien que non garantis par SSP, vous avez la possibilité d'opter pour l'option « prise de risque ». Dans ce cas vous perdez la garantie de paiement. Il ne vous sera pas non plus possible de demander une indemnisation en cas d’impayés.

Cette option est à indiquer lors de l’inscription ou via vos contacts habituels pour la modification d’option.

Note: s'agissant d'une option à paramétrer au niveau boutique, la prise de risque s'applique sur toutes les créations de mandat ou de prélèvements SEPA. Vous ne pouvez pas choisir de prendre un risque de façon dynamique en fonction du contexte du prélèvement.

La modification du mandat

La modification d'un mandat n'est pas autorisée si des prélèvements SEPA garantis ont été créés sur ce mandat et qu'ils sont non finalisés.

En effet, la garantie d'un prélèvement se base sur les informations d'un mandat et pourrait être révisée en cas de modification du mandat.

Validation électronique du mandat

La validation électronique des mandats de prélèvement SEPA est utilisée lors de la création d’un mandat en ligne par le client ou lors de la création d’un mandat version électronique dans Sips Office Extranet ou via Sips Office par vous.

La validation électronique fait appel à un certificat de type « Organisation » à votre nom, qui garantit l’intégrité du document et permet l’horodatage et le scellement des preuves des actions ayant conduit à la validation du mandat.

Afin d’obtenir ce certificat, votre représentant légal doit signer un contrat d’abonnement.

La validation électronique est compatible avec la norme européenne ETSI 102-042 (organisme de normalisation européen du domaine des télécommunications).

Un prélèvement SEPA peut donner lieu à contestation pour opération non autorisée, mais en cas d’action judiciaire, c’est l’existence du consentement au contrat principal (liant le commerçant et le client - ex : contrat d’abonnement) qui sera prioritairement considérée.

La validation du mandat peut se faire au travers de deux cinématiques :

  • validation par saisie d’un code reçu par SMS ou e-mail ;
  • validation en réalisant un premier paiement par carte avec une authentification 3-D Secure.

Le choix de la solution relève d’un arbitrage entre le risque à couvrir, la garantie de paiement et l’ergonomie du processus.

C'est à vous de préciser le choix lors de l’envoi de la requête permettant de créer le mandat.

Validation par saisie d’un code

Principes

Le client valide son mandat de prélèvement en saisissant un code qu'il a reçu :

  • par SMS à un numéro de téléphone connu du commerçant ;
  • par e-mail à une adresse électronique connue du commerçant.
Prérequis pour le commerçant
  • Vous devez être en capacité de transmettre les données concernant le client : civilité, nom, prénom pour un client particulier ; raison sociale, nom et prénom du responsable légal pour une entreprise cliente.
  • Vous devez disposer du numéro de téléphone ou de l’adresse électronique du client : le client ne peut ni saisir ni modifier son adresse de messagerie électronique ou son numéro de téléphone lors de la session permettant de valider son mandat.
Pages de paiement
  • Lorsque le client clique sur le logo Prélèvement SEPA, le serveur vérifie si le client a déjà un mandat de prélèvement (option OneClick ).
  • Si le client ne détient pas de mandat, il lui est proposé de valider son mandat de prélèvement en ligne.
  • Vous devez transmettre les données d’identification et les coordonnées du client. Ces dernières ne peuvent pas être modifiées par le client lors de la création de son mandat.
  • Le client valide les informations le concernant, communique ses coordonnées bancaires (IBAN) puis confirme que le mandat prérempli contient bien les bonnes informations.
  • Le client reçoit un code sur son téléphone portable ou son adresse électronique qu'il doit ressaisir sur la page pour valider et signer son mandat.
  • Si vous cliquez sur TELECHARGER LE MANDAT DE PRELEVEMENT, vous pouvez vérifier les informations qu'il contient. .
  • Le client a la confirmation que son mandat est bien enregistré. Il peut télécharger le mandat au format PDF ou l’imprimer. Le montant de son achat ou de sa prochaine échéance sera prélevé sur son compte bancaire.
  • La date du prochain prélèvement est indiquée sur le ticket récapitulatif.
Note: c’est à vous de décider si vous souhaitez envoyer le code par e-mail ou par téléphone. Cette information est transmise dans la requête.
Le client ne peut pas modifier la donnée qui sert à l’envoi du code (adresse électronique ou numéro de téléphone) en cours de création du mandat. Si ce dernier n’est pas correct, il devra s'adresser à vous pour modifier la donnée dans votre système d’information.

Validation par saisie des coordonnées cartes

Principes

Le client marque son consentement en réglant le montant de son premier achat ou de sa première échéance par carte CB, VISA ou MasterCard. Ce premier paiement doit s’accompagner systématiquement d’une authentification 3-D Secure.

Pages de paiement
  • Lorsque le client clique sur le logo prélèvement SEPA, le serveur vérifie si le client a déjà un mandat de prélèvement (option OneClick ).
  • Si le client ne détient pas de mandat, il lui est proposé de valider son mandat de prélèvement en ligne.
  • Vous devez transmettre les données d’identification et les coordonnées du client. Ces dernières ne peuvent pas être modifiées par le client lors de la création de son mandat.
  • Le client valide les informations le concernant, communique ses coordonnées bancaires (IBAN) puis confirme que le mandat prérempli contient bien les bonnes informations.
  • Le client est alors invité à procéder au paiement de sa première échéance par carte bancaire. Ce paiement s’accompagne d’une authentification 3-D Secure.

  • Une fois le paiement accepté, le client a la confirmation que son mandat est bien enregistré. Il peut télécharger le mandat au format PDF ou l’imprimer.
  • Un ticket de paiement s’affiche ensuite et contient toutes les données de la transaction effectuée.
  • En cas d'échec d'authentification le client est redirigé vers la page suivante et peut revenir sur le site marchand :
Attention: le paiement par carte s’accompagne systématiquement d’une authentification 3-D Secure. Si cette authentification ne peut avoir lieu, le mandat ne sera pas validé.

Délais de présentation

Contrairement aux transactions cartes, un délai de présentation est à respecter avant l’échange interbancaire.

Ainsi, pour un règlement/échéance à J, le prélèvement SEPA doit être présenté en compensation à J-1 JOB (Jour Ouvré Bancaire) au plus tard.

Remise en banque des paiements

En fonction de votre banque les fichiers sont

  • soit transmis par SPS ;
  • soit transmis par vous-même.

Merci de vous renseigner auprès votre banque pour connaître le mode de fonctionnement qu'elle propose.

Pré-notification

Vous êtes tenu de fournir au débiteur une notification préalable au moins 14 jours calendaires (sauf accord bilatéral sur un délai différent) avant la date d’échéance du prélèvement SEPA et par tout moyen : facture, avis, échéancier, etc.

Ouvrir votre contrat d'acceptation SDD

Afin d'émettre des prélèvements SEPA, vous devez au préalable :

  • signer un contrat de service avec votre banque (= Convention d’émission de prélèvement SEPA) ;
  • avoir un Identifiant Créancier SEPA (ICS), délivré par la Banque de France pour la France ;
  • signer un contrat avec la société Score & Secure Payment (SSP) afin d'obtenir un numéro de bénéficiaire si vous souhaitez souscrire à la garantie de paiement SafeDebit .

Opérations possibles par interfaces

Certaines opérations ne sont possibles que via certaines interfaces. Voici un tableau récapitulatif des actions possibles sur chaque interface :

Actions/Interfaces Sips Paypage Sips Office Sips Office Extranet Sips Office Batch
Création d'un mandat et paiement Oui Oui Oui Non
Effectuer un paiement à partir d'un mandat déjà signé. Oui si le mandat a été enregistré en mode OneClick lors de sa création. Oui : fonction directDebitOrder Oui Oui : fonction directDebitOrder
Gestion de caisse sur les prélèvements Non Oui Oui Oui
Recherche d'un mandat Non Oui : fonction searchMandate Oui Non
Récupération d'un mandat pdf signé Non Oui : fonction getPdfMandate Oui Non
Récupération/Consultation d'un mandat Non Oui : fonction getMandateData Oui (rechercher un mandat et l'ouvrir dans l'interface) Non

Effectuer un paiement SDD

WL Sips vous offre trois solutions pour intégrer le moyen de paiement SDD :

  • Sips Paypage qui assure l’interface de paiement directement avec le client via son navigateur Web.
  • Sips Office qui vous laisse la possibilité d’afficher vous-même vos pages de paiement et qui fonctionne par un dialogue de serveur à serveur.
  • Sips Office Batch qui vous permet de traiter des paiements par échange de fichiers.

Les modes de remise disponibles pour une transaction SDD sont les suivants :

  • Mode annulation : mode par défaut, il permet de remiser la transaction à une date prédéfinie, appelée délai de capture. Lorsque ce délai de capture est atteint, la remise est automatiquement envoyée. Ce délai est paramétré via le champ captureDay , sa valeur par défaut est 0 (paiement en fin de journée).
  • Mode validation : vous devez valider la transaction pour déclencher la remise. Un délai de capture doit aussi être défini. Lorsque ce délai de capture est atteint ou dépassé, vous ne pourrez plus valider la transaction, celle-ci expirera donc automatiquement.

Le diagramme ci-dessous explique les différents états par lesquels peuvent passer les transactions selon le mode de capture choisi :

Note: vous pouvez révoquer un mandat via l’interface Sips Office Extranet . Toutes les transactions créées sur ce mandat mais non encore remisées en banque sont alors abandonnées. Le statut final de ces transactions est ABORTED.

Effectuer un paiement SDD avec Sips Paypage

La cinématique de paiement pour Sips Paypage est décrite ci-dessous :

Paramétrer la requête de paiement

Dans le cadre de l’acceptation de SDD il est nécessaire de :

  • vous assurer de l’identification du client ;
  • pré-remplir la page de création de mandat et favoriser ainsi la transformation de transaction de type SDD.

La Référence Unique de Mandat ( RUM ) peut être transmise dans la requête. Si elle n’est pas envoyée, elle est générée automatiquement.

Attention : dans le cas de l’envoi de la RUM dans la requête, il est de votre responsabilité de vous assurer de l’unicité de la RUM. En cas de doublon, la signature du mandat sera refusée, et l’acheteur ne pourra pas effectuer le règlement de son achat.

Vous trouverez ci-dessous la liste des paramètres permettant le passage des informations personnelles du porteur.

Nom du champ Remarques / règles
customerContact.email Obligatoire si méthode d’authentification par MAIL_OTP

Obligatoire si option SafeDebit souscrite.

customerContact.firstname Obligatoire
customerContact.gender Facultatif
customerContact.lastname Obligatoire
customerContact.mobile Obligatoire si méthode d’authentification par SMS_OTP.
Le format avec code régional est attendu (+33 …).
Obligatoire si option SafeDebit souscrite.
customerContact.legalId Facultatif, seulement utilisé avec un mandat de type (transactionActors) BTOF.
customerContact.​positionOccupied Facultatif, seulement utilisé avec un mandat de type ( transactionActors ) BTOF.
customerAddress.city (*) Facultatif.
Si non valorisé, le client devra saisir cette information sur la page de saisie de mandat
customerAddress.country (*) Facultatif.
Si non valorisé, le client devra saisir cette information sur la page de saisie de mandat
customerAddress.street (*) Facultatif.
Si non valorisé, le client devra saisir cette information sur la page de saisie de mandat
customerAddress.​streetNumber (*) Facultatif.
Si non valorisé, le client devra saisir cette information sur la page de saisie de mandat
customerAddress.zipCode (*) Facultatif.
Si non valorisé, le client devra saisir cette information sur la page de saisie de mandat
customerAddress.company Obligatoire si le champ transactionActors est valorisé à BTOF.
customerAddress.​businessName Facultatif.
Seulement utilisé avec un mandat de type ( transactionActors ) BTOF.
customerLanguage Permet de choisir la langue utilisée sur les pages WL Sips et SDD.
mandateId Facultatif.
Si elle n’est pas valorisée la référence unique du mandat est générée par WL Sips .
ATTENTION, il est de la responsabilité du marchand de s’assurer de son unicité s’il le fournit.
paymentMeanData.sdd.​mandate​AuthentMethod Facultatif.
Doit être fourni pour utiliser la fonction searchMandate
paymentMeanData.sdd.​mandateAuthentMethod Facultatif.
Valeurs possibles : MAIL_OTP, SMS_OTP , 3D_SECURE.
Si non renseigné, valeur par défaut = MAIL_OTP.
paymentMeanData.​sdd.​mandateUsage Facultatif.
Valeurs possibles : ONE_OFF, RECURRENT.
Si non renseigné, valeur par défaut = RECURRENT.
statementReference Facultatif.
Disponible pour certains acquéreurs.
transactionActors Facultatif.
valeurs possibles : BTOC ou BTOF
Si non renseigné, valeur par défaut = BTOC

(*) Vous devez nécessairement renseigner les 5 champs : city , country , street , streetNumber et zipCode , afin que l'adresse soit prise en compte et pré-renseignée sur la page de saisie du mandat.

Analyser la réponse

Le tableau suivant récapitule les différents cas de réponse à traiter :

État Champs de la réponse Action à réaliser
Paiement accepté acquirerResponseCode = 00
authorisationId = (voir le Dictionnaire des données).
captureDay = en mode AUTHOR_CAPTURE, la valeur est corrigée par SPS en fonction des règles de présentation choisie par l'acquéreur (captureDay = captureLimitDate - date du jour).
En mode VALIDATION, la valeur reste inchangée par rapport à la requête.
captureLimitDate = la date de présentation n’est retournée dans la réponse qu'en mode AUTHOR_CAPTURE. En mode VALIDATION, la date de présentation du prélèvement est retournée lors de la validation de la transaction SDD.
customerBusinessName = la raison sociale renseignée en entrée ou chez SPS .
customerLegalId = le numéro SIRET renseigné en entrée ou chez SPS .
customerPositionOccupied = le titre du représentant légal renseigné en entrée ou chez SPS .
maskedPan = règle de masquage BIC.IBAN
Exemple : AXABFRPP314.FR76#####​#####​############44
BIC : en clair ; IBAN : 4 premiers et 2 derniers chiffres en clair.
mandateId = RUM que vous devez conserver.
mandateUsage = ONE_OFF ou RECURRENT
paymentMeanBrand = SEPA_DIRECT_DEBIT
paymentMeanType = DIRECT_DEBIT
secureReference = référence de sécurisation de la transaction dans le cadre de l'option SafeDebit.
Cette référence devra être transmise à SSP en cas de demande d'indemnisation.
transactionActors = BTOB, BTOF ou BTOC
Vous pouvez livrer la commande.
Refus acquéreur acquirerResponseCode = (voir le Dictionnaire des données). L’autorisation est refusée pour un motif non lié à la fraude.
Si vous n’avez pas opté pour l’option « nouvelle tentative de paiement » (pour plus de détails veuillez consulter le Guide de configuration des fonctionnalités ), vous pouvez proposer à votre client de payer avec un autre moyen de paiement en générant une nouvelle requête.
Refus nombre max essais atteint responseCode = 75 Le client a fait plusieurs tentatives qui ont toutes échoué.
Refus suite problème technique acquirerResponseCode = 90-98 Problème technique temporaire lors du traitement de la transaction. Proposez à votre client de refaire un paiement ultérieurement.

Pour connaître l'intégralité des codes réponses ( responseCode ) et codes réponses acquéreur ( acquirerResponseCode ), veuillez vous référer au Dictionnaire des données .

Effectuer un paiement SDD avec Sips Office

Le processus de paiement pour Sips Office est décrit ci-dessous :

Initialiser un mandat

L’initialisation d’un mandat SEPA est effectuée en appelant la méthode initializeMandate .

Requête d’initialisation de création de mandat ( InitializeMandate )

Nom du champ Remarques / règles
iban Obligatoire.
Les IBAN français comportent 27 chiffres.
mandateId Facultatif (déterminé par SPS si non fourni)
merchantReturnUrl Obligatoire
transactionActors Facultatif.
Valeurs possibles = BTOC, BTOB, BTOF
Si non renseigné, valeur par défaut = BTOC
customerId Facultatif.
Doit être fourni pour utiliser la fonction searchMandate
customerLanguage Permet de choisir la langue utilisée sur les pages WL Sips et SDD.
statementReference Facultatif.
Disponible pour certains acquéreurs
customerContact.email Obligatoire si méthode d’authentification par MAIL_OTP.
Obligatoire si option SafeDebit souscrite.
customerContact.firstname Obligatoire
customerContact.gender Facultatif
customerContact.lastname Obligatoire
customerContact.mobile Obligatoire si méthode d’authentification par SMS_OTP.
Le format avec code régional est attendu (+33 …).
Obligatoire si option SafeDebit souscrite.
customerContact.legalId Obligatoire si transactionActors à BTOB
Facultatif si transactionActors à BTOF
Ne pas renseigner si transactionActors à BTOC
customerContact.positionOccupied Facultatif si transactionActors à BTOB ou BTOF
Ne pas renseigner si transactionActors à BTOC
customerAddress.city Obligatoire
customerAddress.country Obligatoire
customerAddress.street Obligatoire
customerAddress.streetNumber Obligatoire
customerAddress.zipCode Obligatoire
customerAddress.company Obligatoire si transactionActors est valorisé à BTOB ou BTOF.
Ne pas renseigner si transactionActors à BTOC.
customerAddress.businessName Obligatoire si transactionActors est valorisé à BTOB ou BTOF.
Ne pas renseigner si transactionActors à BTOC.
Note: il est recommandé de valoriser le champ customerId si vous souhaitez utiliser la méthode de rechercher l’ensemble des mandats d’un client ( searchMandate ).

Exemple de requête : initializeMandate via Sips Office JSON

      {
   "customerAddress":
{
    "city":"PARIS",
    "country":"FRA",
    "street":"Rue de la Bastille",
    "streetNumber":"19",
    "zipCode":"75000"
},
  "customerContact":
{
   "email":"julie.dupont@mail.com",
   "firstname":"Julie",
   "gender":"F",
   "lastname":"DUPONT"
},
 "customerId":"JAU001"
 "iban":"FR7617906001120227366700148",
 "interfaceVersion":"MR_WS_2.19",
 "keyVersion":"1",
 "merchantId":"210011990011607",
 "merchantReturnUrl":"https://merchantReturnUrl.com",
 "paymentMeanAlias":"SEPA_DIRECT_DEBIT",
 "paymentMeanData":
{
   "sdd":
{
    "mandateAuthentMethod":"MAIL_OTP"
}
},
  "transactionActors":"BTOC",
  "seal":"12682c81e701f171b9f33061846c60dcade2afb73eb064027fbb88cc6068382e"
} 
    

Réponse de l’initialisation de création de mandat

Nom du champ Remarques / règles
acquirerResponseCode Code réponse retourné par SPS .
mandateId Numéro de mandat (identique à celui de la requête si fournie, sinon généré par SPS ).
mandateResponseCode Code réponse du serveur WL Sips .
messageVersion Version du message récupérée en réponse à l’initialisation du paiement.
redirectionData Données de redirection récupérées en réponse à l’initialisation du paiement.
redirectionUrl URL de redirection

Rediriger le client vers les pages SDD

Le client doit être redirigé vers l’URL fournie en réponse de la méthode « initializeMandate ». La redirection s’effectue en faisant un appel HTTP POST vers la « redirectionUrl » reçue avec les paramètres « messageVersion » et « redirectionData ».

A la fin de la cinématique de signature de mandat, le client est redirigé sur l’URL fournie dans la requête d’initialisation, « merchantReturnUrl ». Les champs suivants sont transmis en POST et doivent être récupérés pour finaliser la création du mandat :

Nom du champ Remarques / règles
responseCode Code réponse du processus
redirectionData Données de redirection récupérées en réponse à l’initialisation du paiement.
messageVersion Version du message récupérée en réponse à l’initialisation du paiement.
amount Montant de la transaction en centimes
merchantId Identifiant de la boutique
transactionReference Référence de la transaction
transactionId Identifiant de la transaction
transactionDate Date de la transaction

Finaliser la création d’un mandat

Une fois que le client a signé son mandat sur les pages SDD, il est redirigé vers l’URL qui a été fourni lors de l’appel à « initializeMandate » dans le champ merchantReturnUrl .

La redirection s’effectue par WL Sips en faisant un appel HTTP POST vers cette URL avec les paramètres « messageVersion », « redirectionData ». Ce sont ces paramètres qui doivent être transmis dans l’appel à la méthode « finalizeMandate » pour terminer la création de mandat.

Requête de finalisation de création de mandat

Vous devez valoriser les champs spécifiques suivants dans la requête de finalisation pour un paiement SDD.

Nom du champ Remarques / règles
redirectionData Redirection data retrieved after the customer returns to your website (cf. Rediriger le client vers les pages SDD ).
messageVersion Message version retrieved after the customer returns to your website (cf. (cf. Rediriger le client vers les pages SDD ).

Réponse à la finalisation de création de mandat

Les champs suivants sont retournés pour un prélèvement SDD :

Nom du champ Remarques / règles
mandateResponseCode Code réponse retourné par WL Sips (indique le résultat global de la création de mandat).
mandateId Numéro de mandat
bic Code d'identification de banque (BIC).
iban
Numéro international de compte bancaire (IBAN).
Les IBAN français comportent 27 chiffres.
paymentMeanAlias Alias du moyen de paiement défini et utilisé par le client dans son portefeuille.
transactionActors Schéma de mandat : BTOC|BTOB|BTOF

La lecture du champ mandateResponseCode permet de savoir si la création de mandat a été effectuée avec succès ou non.

Transmettre une demande de prélèvement SEPA

Requête de prélèvement SEPA

Pour créer un prélèvement SDD, il faut utiliser la fonction directDebitOrder et indiquer dans la requête le type de paiement SDD et la référence unique de mandat.

Note: cette fonction est également disponible sur Sips Office Batch .
Nom du champ Remarques / règles
paymentMeanBrand
Type de moyen de paiement.
Donnée obligatoire :
à valoriser avec SEPA_DIRECT_DEBIT.

Exemple de requête : directDebitOrder via Sips Office JSON

      {
   "amount":"1000",
   "captureDay":"0",
   "captureMode":"AUTHOR_CAPTURE",
   "currencyCode":"978",
   "customerId":"customerId1",
   "customerIpAddress":"127.0.0.1",
   "interfaceVersion":"IR_WS_2.18",
   "keyVersion":"1",
   "mandateId":"000000000000000031",
   "merchantId":"210043956120001",
   "merchantTransactionDateTime":"2017-10-16T16:13:11.602+02:00",
   "orderChannel":"INTERNET",
   "paymentMeanBrand":"SEPA_DIRECT_DEBIT",
   "transactionOrigin":"SIPS-SIM",
   "transactionReference":"SIM20171016161311",
   "seal":"108458787fe9dfe063605b21f946c727aab94468683482da1a5e2eb7ac08a016"
}
    

Réponse à une demande de prélèvement SEPA

Dans le cas des paiements SDD, les champs spécifiques suivants sont remplis:

Nom du champ Remarques / règles
maskedPan Règle masquage : BIC.IBAN comme suit : AXABFRPP314.FR76######################44
BIC : en clair ; IBAN : 4ers et 2 derniers chiffres en clair.
Le BIC peut varier de 8 à 11 caractères, l’IBAN varie dans chaque pays et a une taille maximum de 34 caractères.
transactionActors Valeurs possibles :
  • BTOB
  • BTOC
  • BTOF
Cette valeur provient du type du mandat.
mandateId RUM à conserver par le commerçant.
captureLimitDate Format AAAAMMJJ.
La date de présentation n’est retournée dans la réponse qu’en mode AUTHOR_CAPTURE. En mode VALIDATION, c’est la date du jour additionnée au captureDay qui est retournée, la date réelle de prélèvement est retournée lors de la validation de la transaction SDD.
captureDay Valeur corrigée par SPS en fonction des règles de présentation choisie par l'acquéreur.
captureDay = captureLimitDate - date du jour
authorisationId En mode VALIDATION c’est un « 0 » qui est retourné, la valeur réelle est retournée lors de la validation de la transaction SDD.
secureReference Référence de sécurisation de la transaction dans le cadre de l'option SafeDebit.
Cette référence devra être transmise à SSP en cas de demande d'indemnisation.

Exemple de réponse : directDebitOrder via Sips Office JSON

      {
  "authorisationId":"32100000010020171016",
  "acquirerResponseCode":"00",
  "complementaryCode":"00",
  "responseCode":"00",
  "transactionDateTime":"2017-10-16T16:14:06+02:00",
  "holderAuthentStatus":"NO_AUTHENT",
  "scoreProfile":"10_GONOGO_PRE_AUTHORISATION",
  "maskedPan":"SOGEFRPPXXX/FR7630003005050005001582616",
  "captureLimitDate":"20171018",
  "transactionActors":"BTOC",
  "mandateId":"000000000000000031",
  "valueDate":"20171018",
  "s10TransactionReference":
  {
  "s10TransactionId":"10",
  "s10TransactionIdDate":"20171016"
  },
  "transactionReference":"SIM20171016161311",
  "seal":"d87ab3c1fac4d3eb53cdf3fb02d31b9da7483cb72898b4c639eeb1b52ed5a708",
  "preAuthorisationProfile":"10_GONOGO_PRE_AUTHORISATION",
  "preAuthorisationProfileValue":"unknown",
  "captureDay":2,
  "captureMode":"AUTHOR_CAPTURE",
  "transactionPlatform":"PROD"
  "secureReference":"SF_16957"
}
    

Mettre en oeuvre des paiements récurrents SDD

Le prélèvement SEPA est parfaitement adapté aux paiements récurrents. Comparé aux paiements récurrents carte, il ne présente pas de contrainte d'expiration du moyen de paiement, ni de limite de montant lié au plafond d'autorisation de la carte.

2 solutions permettent de mettre en oeuvre des paiements récurrents SDD :

  • le paiement récurrent "basique"
  • le paiement par abonnement

Paiements récurrents « basiques »

La mise en oeuvre des paiements récurrents se fait en 2 étapes :

  • le débiteur signe son mandat
  • vous transmettez une demande de prélèvement à chaque échéance

Faire signer le mandat

Afin de faire signer un mandat en ligne à votre client,

Quel que soit le connecteur choisi, le champ paymentMeanData.sdd.​mandateUsage doit être valorisé à RECURRENT. Vous devez conserver la valeur du champ mandateId , pour la resoumettre lors des demandes de prélèvement récurrent.

Transmettre les demandes de prélèvement

Afin de déclencher le prélèvement de votre client,

  • soit vous utilisez le connecteur Sips Office . Veuillez suivre les indications chapitre Effectuer un paiement SDD avec Sips Office
    • débitez votre client à partir du numéro de mandat, via la méthode directDebitOrder
    • débitez votre client à partir de la référence de transaction, crée lors de la signature du mandat, via la méthode duplicate
  • soit vous utilisez le connecteur Sips Office Batch
    • débitez votre client à partir du numéro de mandat, via la méthode directDebitOrder
    • débitez votre client à partir de la référence de transaction, crée lors de la signature du mandat, via la méthode duplicate

Gérer vos transactions SDD

Opérations de caisse disponibles

Les opérations suivantes sont disponibles sur les transactions SDD :

Gestion de caisse
Annulation V Il est possible d’annuler un prélèvement SDD via Sips Office ou Sips Office Extranet . Aucun champ spécifique à ce moyen de paiement n’est à envoyer.
L’annulation doit se faire avant l’ordre de remise en banque, et il est de votre responsabilité de vérifier que la remise n’a pas été effectuée.
Validation V
Lors de la validation d’une transaction SDD, la date de présentation du prélèvement créé est retournée dans le champ captureLimitDate .
Conformément à la réglementation SEPA, il est de votre responsabilité de présenter cette date au client.
Remboursement V Le remboursement d’un prélèvement SDD via Sips Office ou Sips Office Extranet génère un SCT. Il n’est pas possible d’effectuer plusieurs remboursements sur un même SDD.
Le remboursement déplafonné (supérieur au montant d’origine) n’est pas autorisé.
Les éventuels impayés sur remboursements apparaissent dans le journal de rapprochement des impayés.
Duplication V Il est possible de dupliquer un prélèvement SDD via Sips Office ou Sips Office Extranet . Aucun champ spécifique à ce moyen de paiement n’est à envoyer.
Conformément à la réglementation SEPA, il est de votre responsabilité de présenter au client la date du prélèvement créé par duplication.
Recyclage X
Abandon de transactions SDD V L’opération de révocation de mandat disponible uniquement dans Sips Office Extranet provoque automatiquement l’abandon de toutes les transactions programmées et non remisées en banque sans aucune intervention supplémentaire nécessaire de votre part.
Crédit X

Le diagramme ci-dessous vous permet de savoir quelle opération de gestion de caisse est disponible lorsqu'une transaction est dans un état donné :

Consulter vos transactions SDD

Journaux

Les journaux mis à disposition par WL Sips vous permettent d’avoir une vision exhaustive et consolidée de vos transactions, opérations de caisse, situation comptable et impayés. Vous pouvez utiliser ces informations pour enrichir votre système d’information.

La disponibilité des transactions SDD pour chaque type de journal est récapitulée dans le tableau ci-dessous :

Disponibilité des journaux
Journal des transactions V
Journal des opérations V
Journal de rapprochement des transactions V
Journal de rapprochement des impayés V
Note: pour les transactions SDD, le champ paymentMeanBrand est renseigné avec la valeur SEPA_DIRECT_DEBIT.

Les versions minimum des journaux pour l'option SafeDebit sont :

  • Journaux des transactions : TAB20_V18
  • Journaux des opérations : TAB20_V9

Sips Office Extranet

Vous pouvez consulter vos transactions SDD et effectuer différentes opérations de gestion de caisse grâce à Sips Office Extranet .

Voici le détail d’une transaction SDD.

Attention: le champ Preuve de garantie n'est valorisé que si vous avez souscrit à l'option SafeDebit et seulement si le prélèvement SEPA est garanti.
Le champ Garantie de paiement est quant à lui valorisé à OUI si le prélèvement SEPA est garanti et à NON s'il ne l'est pas. Il reste vide si non applicable.

Gérer ses mandats via Sips Office

Rechercher un mandat

Vous pouvez rechercher l’ensemble des mandats d’un client donné si l’identifiant du client a été fourni lors de la création de mandat (lors de l’appel à initializeMandate sur Sips Office ou lors de la demande de paiement sur Sips Paypage ).

Requête searchMandate

Nom du champ Remarques / règles
customerId Identifiant du client

Exemple de requête : searchMandate via Sips Office JSON

      {
"customerId":"JAU001",
"interfaceVersion":"MR_WS_2.19",
"keyVersion":"1",
"merchantId":"210011990011607",
"seal":"c2e8ca69f2c10e71bed97d62d72d24458eed2f1610756f58ee9b5981f315c327"
}
    

Réponse searchMandate

Nom du champ Remarques / règles
mandateResponseCode Code réponse retourné par WL Sips (indique le résultat global de la recherche de mandat).
mandateList Liste des mandats associés au client.

Données du mandat renvoyées ( mandateList ) :

Nom du champ Remarques / règles
bic Code d'identification de banque.
iban Numéro international de compte bancaire : les IBAN français comportent 27 chiffres.
mandateLastUpdateDate Date de dernière mise à jour du mandat.
mandateCreationDate Date de création du mandat.
mandateId Numéro de mandat.
mandateSignatureDate Date de signature du mandat.
mandateStatus Statut du mandat.
mandateUsage Type d’utilisation du mandat.
transactionActors Type du mandat.
mandateSecureReference Identifiant du client chez SSP.
Concerne l'option SafeDebit.
riskyMandate

Précise s'il y a eu une prise de risque.

Y ou N
Concerne l'option SafeDebit.

Exemple de réponse : searchMandate via Sips Office JSON

      {
"mandateResponseCode":"00",
"acquirerResponseCode":"00",
"mandateList":
[
{
  "mandateId":"000000000000009383",
  "mandateStatus":"ACTIVE",
  "mandateSignatureDate":"20171016",
  "mandateCreationDate":"20171016",
  "mandateLastUpdateDate":"20171016",
  "bic":"AGRIFRPP879",
  "iban":"FR7617906001120227366700148",
  "transactionActors":"BTOC",
  "mandateUsage":"RECURRENT",
  "mandateSecureReference":"12345678901234567890123456789012",
  "riskyMandate":"N"
},
{
  "mandateId":"000000000000009382",
  "mandateStatus":"ACTIVE",
  "mandateSignatureDate":"20171016",
  "mandateCreationDate":"20171016",
  "mandateLastUpdateDate":"20171016",
  "bic":"AGRIFRPP879",
  "iban":"FR7617906001120227366700148",
  "transactionActors":"BTOC",
  "mandateUsage":"RECURRENT",
  "mandateSecureReference":"12345678901234567890123456789012",
  "riskyMandate":"N"

}
],
"seal":"7fea0c806411bac05d2687d8443ae031cb8b0c0ffde143c08536597e93862df1"
}
    

Récupérer le PDF d’un mandat

Vous pouvez récupérer le contenu d’un PDF via Sips Office pour, par exemple, en proposer le téléchargement aux clients directement depuis votre site Web. La méthode getPdfMandate permet de recevoir le contenu du PDF sous une forme encodée en Base64 . Il faut alors la décoder pour reconstruire le fichier PDF.

Attention: il n'est pas possible de récupérer un mandat papier (non signé électroniquement) créé via Sips Office Extranet .

Requête getPdfMandate

Nom du champ Remarques / règles
mandateId Numéro de mandat

Exemple de requête : gePdftMandate via Sips Office JSON

      {
  "interfaceVersion":"MR_WS_2.19",
  "keyVersion":"1",
  "mandateId":"000000000000009382",
  "merchantId":"210011990011607",
  "seal":"ac46f84ff1f9c974602f0b922f295a115af1c436186d2dbc58e692ef1813b766"
}
    

Réponse getPdfMandate

Nom du champ Remarques / règles
mandateResponseCode Code réponse retourné par WL Sips (indique le résultat global de la récupération du PDF du mandat).
mandatePdf Contenu du PDF encodé en Base64.

Exemple d’implémentation pour décoder la réponse getPdfMandate

L’exemple ci-dessous est codé en Java et permet de proposer au client le téléchargement d’un PDF à partir du champ mandatePdf reçu :

      byte[] decodedBytes = Base64.decodeBase64(%MANDATE_PDF_RECEIVED%).getBytes("UTF-8"));
response.setContentType("application/pdf");  
response.setHeader("Content-disposition", "attachment; filename=MandatePDFFile.pdf");

try (final ByteArrayInputStream in = new ByteArrayInputStream(decodedBytes);
final OutputStream out = response.getOutputStream()) {
final byte[] buffer = new byte[4096];
int length;
while ((length = in.read(buffer)) > 0) {
out.write(buffer, 0, length);
}
}
    

Récupérer les données d’un mandat

Vous pouvez récupérer les données globales d’un mandat. Il s’agit des données propres au mandat (statut, IBAN, BIC, …), des données du client qui a créé ce mandat, ainsi que de la liste des transactions associées à ce mandat, le cas échéant.

Requête getMandateData

Nom du champ Remarques / règles
mandateId Numéro de mandat

Exemple de requête : gePdftMandate via Sips Office JSON

      {
   "interfaceVersion":"MR_WS_2.19",
   "keyVersion":"1",
   "mandateId":"000000000000009382",
   "merchantId":"210011990011607",
   "seal":"ac46f84ff1f9c974602f0b922f295a115af1c436186d2dbc58e692ef1813b766"
}
    

Réponse getMandateData

Données relatives au mandat et au client :

Nom du champ Remarques / règles
mandateResponseCode Code réponse retourné par WL Sips (indique le résultat global de la recherche du mandat).
acquirerResponseCode Code réponse retourné par SPS .
mandateId Numéro de mandat.
mandateCreationDate Date de création du mandat.
mandateLastUpdateDate Date de dernière mise à jour du mandat.
mandateSignatureDate Date de signature du mandat.
mandateUsage Type d’utilisation du mandat : ONE_OFF|RECURRENT
mandateStatus Statut du mandat.
bic Code d'identification de banque.
debtorName Nom complet de débiteur associé au mandat.
iban Numéro international de compte bancaire : les IBAN français comportent 27 chiffres.
transactionActors Type du mandat : BTOB|BTOC|BTOF
directDebitList Contient la liste des prélèvements créés à partir du mandat (voir tableau ci-dessous).
customerContact .email Contient l’e-mail du client.
customerContact.gender Indique si le client est un homme (=M) ou une femme (=F).
customerContact.mobile Contient le numéro de téléphone portable.
customerContact.legalId Numéro de SIRET.
customerContact.position​Occupied Titre du représentant légal.
customerAddress.city Contient la ville de l’adresse du client.
customerAddress.country Contient le code pays de l’adresse du client.
customerAddress.street Contient le nom de rue de l’adresse du client.
customerAddress.streetNumber Contient le numéro de rue de l’adresse du client.
customerAddress.zipCode Contient le code postal de l’adresse du client.
customerAddress.company Contient la dénomination commerciale de la société.
customerAddress.businessName Raison sociale.

Données des prélèvements renvoyées ( directDebitList ) :

Nom du champ Remarques / règles
amount Montant du prélèvement.
dueDate Date de remise en banque de la transaction.
directDebitCreationDate Date de la création du prélèvement.
directDebitStatus Statut du prélèvement.

Exemple de réponse : getMandateData via Sips Office JSON

      {
  "mandateResponseCode":"00",
  "acquirerResponseCode":"00",
  "mandateId":"000000000000009382",
  "mandateStatus":"ACTIVE",
  "mandateSignatureDate":"20171016",
  "mandateCreationDate":"20171016",
  "mandateLastUpdateDate":"20171016",
  "bic":"AGRIFRPP879",
  "iban":"FR7617906001120227366700148",
  "transactionActors":"BTOC",
  "mandateUsage":"RECURRENT",
  "debtorName":"DUPONT Julie",
  "customerContact":
 {
      "email":"julie.dupont@mail.com"
 },
 "customerAddress":
  {
     "city":"PARIS",
     "country":"FR",
     "street":"Rue de la Bastille",
     "streetNumber":"19",
     "zipCode":"75000"
},
 "directDebitList":
 [
 {
    "amount":250,
    "dueDate":"20171113",
    "directDebitCreationDate":"20171106",
    "directDebitStatus":"CREATED"
 },
{
    "amount":250,
    "dueDate":"20171206",
    "directDebitCreationDate":"20171106",
    "directDebitStatus":"CREATED"
},
{
   "amount":250,
   "dueDate":"20180108",
   "directDebitCreationDate":"20171106",
   "directDebitStatus":"CREATED"
}
],
"seal":"d1c7aff5c85fcc116f7c9fa39c470ba3ed807fd3e65f3edbd0344ec459337058"
}