Prélèvement SEPA avec mandat en ligne : documentation du module PrestaShop
Installer, configurer et utiliser le module de prélèvement SEPA : mandat signé en ligne, fichier pain.008, échéanciers récurrents et rejets.
Présentation
Le module dfsepadebit ajoute le prélèvement SEPA comme moyen de paiement dans PrestaShop 8 et 9. Le client signe un mandat en ligne pendant la commande, avec un code reçu par email. Chaque commande, chaque échéance d’abonnement ou chaque prélèvement ponctuel devient une ligne de prélèvement pré-notifiée au client. Vous générez le fichier pain.008 que vous déposez sur l’espace de votre banque, puis vous importez les fichiers retour pour mettre à jour les paiements et les rejets.
Le module ne se connecte pas à votre banque et ne fait transiter aucune donnée par un tiers : les fonds arrivent directement sur votre compte.
Prérequis
- Identifiant créancier SEPA (ICS) et convention d’émission de prélèvements SEPA, à demander à votre banque. Précisez le schéma B2B si vous prélevez des professionnels.
- Le format de fichier accepté par votre banque (pain.008.001.02 ou pain.008.001.08) et son délai de remise (en général 1 jour ouvré TARGET avant la date de prélèvement).
- Une boutique en EUR : le moyen de paiement n’apparaît que pour les paniers en euros.
- PrestaShop 8.0 à 9.x, PHP avec l’extension OpenSSL (chiffrement AES-256-GCM des IBAN).
- Une tâche cron quotidienne (hébergement ou service externe) pour les échéanciers et les confirmations automatiques.
Installation
- Dans Modules > Gestionnaire de modules, cliquez sur Téléverser un module et sélectionnez le ZIP
dfsepadebit. - Le module crée ses tables, deux statuts de commande (« En attente de prélèvement SEPA » et « Prélèvement SEPA rejeté ») et un menu Vendre > Prélèvement SEPA.
- Ouvrez la configuration et renseignez le créancier. Tant que le nom, l’ICS et l’IBAN ne sont pas valides, le moyen de paiement reste masqué.
- Copiez l’URL cron affichée en haut de la configuration et programmez-la une fois par jour.
Configuration
Créancier
Nom du créancier (tel qu’il apparaîtra sur les relevés de vos clients), ICS, IBAN du compte crédité, BIC (facultatif dans l’EEE) et adresse. L’ICS et l’IBAN sont contrôlés à l’enregistrement.
Mandats et tunnel de commande
- Schéma des nouveaux mandats : SEPA B2B ou SEPA Core.
- Préfixe des références de mandat : lettres et chiffres, 8 caractères maximum (par défaut DF).
- Signature avec un code envoyé par email : recommandé. Désactivé, le client signe par simple case à cocher.
- Uniquement pour les clients avec une raison sociale : le moyen de paiement n’est proposé que si l’adresse de facturation comporte une société.
- Groupes clients autorisés, montants minimum et maximum de commande.
- Encours maximum par client : prélèvements non encore payés plus le panier en cours. Au-delà, le moyen de paiement est masqué pour ce client.
- Masquer après des rejets sur les 12 derniers mois : 2 par défaut, 0 pour désactiver.
Prélèvements et fichiers bancaires
- Délai de pré-notification : 14 jours par défaut légal. Un délai plus court (le module propose 2 jours) n’est valable que s’il figure dans vos CGV. Une commande est prélevée à la fin de ce délai.
- Délai de remise de votre banque, en jours ouvrés TARGET.
- Format du fichier : pain.008.001.02 (le plus largement accepté) ou pain.008.001.08.
- Comptabilisation groupée : un seul crédit par remise sur votre relevé, ou un crédit par prélèvement.
- Premier prélèvement en FRST : gardez-le activé si votre banque exige encore la séquence FRST.
- Générer la remise automatiquement : la tâche quotidienne crée le fichier des prélèvements échus sous N jours et l’envoie en pièce jointe à l’adresse d’alerte.
- Passer en payé automatiquement après N jours sans rejet (5 par défaut). 0 pour confirmer à la main ou par camt.054.
Rejets
- Codes motif avec nouvelle tentative automatique : AM04, MS03 par défaut.
- Nombre maximum de nouvelles tentatives et délai avant une nouvelle tentative.
- Frais de rejet ajoutés au montant de la nouvelle tentative, uniquement si vos CGV le prévoient.
- Codes motif qui révoquent le mandat : AC01, AC04, AC06, AC13, MD01, MD07 par défaut.
- Email des alertes marchand : rejets, révocations, changements de banque, échéanciers suspendus, remises automatiques.
Parcours du client
Signature au checkout
À l’étape paiement, le client choisit « Payer par prélèvement SEPA ». S’il a déjà un mandat actif, il sélectionne son compte (IBAN masqué) et valide la commande. Sinon, un formulaire s’ouvre dans le bloc de paiement, prérempli depuis l’adresse de facturation : société, titulaire, adresse, IBAN (contrôlé pendant la frappe) et BIC. Il lit le texte du mandat, coche la case d’acceptation et reçoit un code à 6 chiffres par email. Le mandat est signé dès la saisie du code. Tant qu’il ne l’est pas, la validation de la commande est bloquée avec un message.
Si le thème empêche le script de s’exécuter, le client est redirigé après validation vers une page de signature dédiée, puis la commande est créée. Aucun paiement n’est perdu.
Compte client
La page Mes mandats SEPA liste les mandats avec leur PDF, les échéanciers en cours et les derniers prélèvements. Le client peut révoquer un mandat ou cliquer sur Changer de compte bancaire : il signe un nouveau mandat, ses échéanciers et prélèvements non encore envoyés passent sur le nouveau compte et l’ancien mandat est clôturé. Le détail de chaque commande affiche la date de prélèvement et son statut.
Back-office
Tableau de bord
Montant à envoyer à la banque sous 7 jours, montant à la banque en attente de confirmation, encaissé du mois, taux de rejet sur 90 jours, revenu récurrent mensuel des échéanciers à montant fixe, mandats actifs et en attente. Un graphique montre les 6 prochaines semaines (prélèvements créés et prévision des échéanciers). Les derniers rejets et les mandats en attente de signature, avec un bouton Relancer, complètent la page. Une alerte s’affiche si la tâche quotidienne n’a pas tourné depuis 36 heures.
Mandats
Le bouton Nouveau mandat propose deux modes : envoyer une demande de signature en ligne au client (il reçoit un lien sécurisé, sans connexion requise) ou enregistrer un mandat papier déjà signé avec sa date de signature. Le champ Remplace le mandat permet de transférer les échéanciers d’un mandat existant une fois le nouveau signé. La fiche d’un mandat affiche les preuves de signature (date, méthode, IP, navigateur, empreinte SHA-256), le PDF, les échéanciers et les prélèvements, et permet la révocation.
Prélèvements
Liste filtrable de tous les prélèvements avec leur statut : à exporter, envoyé à la banque, payé, rejeté, annulé. Depuis la fiche d’un prélèvement : marquer comme payé, enregistrer un rejet avec son code, annuler (avant export). Le bouton Nouveau prélèvement ponctuel crée un prélèvement sur un mandat actif, éventuellement rattaché à une commande.
Échéanciers
Un échéancier est rattaché à un mandat (actif ou en attente de signature) et fonctionne en deux modes : montant fixe ou répéter une commande (la commande de référence est repassée aux prix du jour à chaque échéance, puis prélevée). Choisissez la fréquence, la prochaine échéance et le nombre de prélèvements (0 pour sans fin). Le client reçoit un email récapitulatif. Un échéancier peut être suspendu, repris ou arrêté.
Remises bancaires
- Choisissez la date limite des prélèvements à inclure et cliquez sur Générer.
- Téléchargez le fichier XML et déposez-le le jour même sur l’espace de votre banque.
- Importez ensuite les fichiers retour de la banque : pain.002 (rejets de fichier ou de transactions), camt.054 ou camt.053 (retours et crédits).
Une remise non envoyée peut être annulée : ses prélèvements repassent à exporter.
Cycle d’un prélèvement
- À exporter : créé à la commande, par un échéancier ou à la main. Le client reçoit la pré-notification.
- Envoyé à la banque : inclus dans une remise. La date peut être décalée au premier jour possible selon le calendrier TARGET2.
- Payé : après le délai sans rejet, à l’import d’un camt.054 ou manuellement. La commande passe en « Paiement accepté ».
- Rejeté : code R enregistré, commande en « Prélèvement SEPA rejeté », nouvelle tentative ou révocation selon la configuration.
Gestion des rejets
| Code | Signification | Action par défaut |
|---|---|---|
| AM04 | Provision insuffisante | Nouvelle tentative |
| MS03 | Motif non précisé par la banque | Nouvelle tentative |
| AC01, AC04, AC06 | Compte incorrect, clôturé ou bloqué | Révocation du mandat |
| AC13 | Compte de particulier en B2B | Révocation du mandat |
| MD01 | Pas de mandat valide (souvent un mandat B2B non déclaré à la banque) | Révocation du mandat |
| MD07 | Débiteur décédé | Révocation du mandat |
| MS02, MD06 | Refus ou remboursement demandé par le débiteur | Alerte, traitement manuel |
Un rejet de fichier ou de bloc de paiement dans un pain.002 (format, ICS non reconnu…) ne concerne pas le client : les prélèvements repassent à exporter pour la remise suivante.
Tâche quotidienne (cron)
L’URL cron, protégée par un jeton, crée les prélèvements des échéanciers qui arrivent à échéance dans le délai de pré-notification, génère la remise automatique si elle est activée, passe en payé les prélèvements sans rejet après le délai configuré, expire les mandats inutilisés depuis 36 mois et purge les signatures abandonnées depuis 60 jours. Le bouton Lancer les tâches maintenant de la page Remises bancaires fait la même chose pour la boutique courante.
Emails envoyés
- Au client : code de signature, confirmation de mandat avec PDF, demande de signature, avis d’échéancier, pré-notification de prélèvement, rejet.
- Au marchand : rejet, révocation par le client, changement de banque, échéancier suspendu, remise automatique prête (XML en pièce jointe).
Les modèles sont fournis en 8 langues dans mails/ et modifiables comme les emails natifs.
Facture, fiche commande et RGPD
La facture PDF porte une mention de pré-notification (montant, date, IBAN masqué, référence du mandat, ICS), qui devient « payé le » une fois le prélèvement confirmé. La fiche commande du back-office affiche le mandat et les prélèvements. Avec le module RGPD officiel, les mandats sont inclus dans l’export des données ; à la suppression d’un client, seuls les mandats en attente et ceux clos depuis plus de 14 mois sont anonymisés, les autres étant conservés comme preuve.
Dépannage
Le moyen de paiement n’apparaît pas
Vérifiez que le créancier est valide (encadré vert en haut de la configuration), que le panier est en EUR, que le client est connecté (pas un invité), que l’adresse de facturation a une société si l’option est active, et que le client n’a pas dépassé l’encours ou le nombre de rejets autorisés.
Rejet MD01 sur un mandat B2B
Le client n’a pas déclaré le mandat à sa banque. Demandez-lui de le faire avec la référence du mandat et votre ICS, puis créez un nouveau prélèvement ponctuel.
Le client ne reçoit pas le code
Vérifiez la configuration des emails de PrestaShop et les indésirables du client. Un nouveau code peut être demandé après une minute ; le code est valable 10 minutes.