Je ne sais pas comment vous fonctionnez ni quels sont les tarifs que vous arrivez à négocier avec vos banques concernant les prélèvements bancaires … pour moi ça a été très vite vu : niet !
Tarifs (tout HT):
- Demande du code ICS : 66€
- Pack prélèvement SEPA : 3.2€/mois
- Abonnement mensuel EDI WEB: 18€
- Frais par prélèvement : entre 0.25 et 0.35€
Alors je regarde de près Stripe car comme pour la carte bancaire ces gens la ont « tout compris » : pas de frais mensuels fixes … et 0,35€ par transaction c’est tout !
(Note: la demande de code ICS est quand même indispensable pour avoir le droit de faire des prélèvements, vous devrez coller ce code ICS dans la configuration du paiement SEPA chez stripe)
Dans le coeur de dolibarr se trouve déjà tout ce qu’il faut pour les paiements CB via stripe et pas mal de code propose des options pour sepa_debit … alors hop on se remonte les manches et c’est lancé !
Si ça vous intéresse de réfléchir, de participer, de tester etc. j’ai ouvert un ticket sur le github pour ça Add sepa support to stripe · Issue #21672 · Dolibarr/dolibarr · GitHub et publié une branche de dolibarr-14 qui embarque mes « améliorations » encore loin d’être parfaites : GitHub - rycks/dolibarr at 14.0_stripe_sepa_debit
Voilà ou j’en suis:
Principe de base:
-
- il faut avoir le module stripe d’actif et le module prélèvement
-
- grosse modification par rapport à la manière normale de faire les prélèvements on a une action pour chaque facture envoyée par prélèvement au lieu d’un gros fichier XML qu’on génère et envoie à la banque
- 2bis. grosse modification par rapport à stripe CB : le paiement n’est pas immédiat, on est en asynchrone, d’ou la nécessité du module prélèvement
Création du mandat & compte stripe:
- fiche client
- onglet payment methods
- créer un compte bancaire pour générer le mandat sepa
- une fois le mandat classique (pdf) fait
- cliquer en haut à droite sur le bouton « créer le client sur stripe »
- une fois le client créé sur stripe le bouton « créer sepa sur stripe »
- → 1er bug ce bouton apparaît meme s’il n’y a pas de compte bancaire créé
- une fois le sepa stripe créé une ligne apparaît dans la liste des modes de paiements stripe
- → éventuellement cocher la case « défaut »
Procéder au paiement d’une facture:
- fiche de la facture
- cliquer sur faire demande de prélèvement
- (moche ? ergonomie douteuse?) cliquer sur le bouton prélèvement via stripe
- pour l’instant tout se positionne comme si le paiement était validé, il faudrait plutôt modifier ce que j’ai codé pour faire comme un paiement par prélèvement (je ne sais pas comment ça se passe mais j’imagine que la facture n’est pas payée mais « en cours » ou un truc du genre)
ce qui reste à faire:
- quelques jours plus tard lorsque le paiement est validé par la banque et les sous chez stripe le webhook s’active et c’est la qu’on devrait passer la facture en payée + écritures sur la banque toussa toussa
Le code spécial IBAN suivant: FR3020041010050500013M02609 est très pratique; il laisse un délais de 3 minutes entre le moment où on demande le paiement et le moment où stripe(avec la clé de dev/test) viens faire toctoc sur le webhook pour dire « ça marche, paiement accepté » … il est donc assez facile de coder la suite, mon seul hic étant que le code sur un serveur de dev qui n’a pas d’adresse publique et donc pas de webhook possible, il faudra que je me monte un dolibarr sur une ip publique pour finir le job.
Liste des codes IBAN de dev proposés par stripe, voir Enregistrer les coordonnées de prélèvement SEPA pour les paiements futurs | Stripe Documentation
FR1420041010050500013M02606 The PaymentIntent status transitions from processing to succeeded.
FR3020041010050500013M02609 The PaymentIntent status transitions from processing to succeeded after three minutes.
FR8420041010050500013M02607 The PaymentIntent status transitions from processing to requires_payment_method.
FR7920041010050500013M02600 The PaymentIntent status transitions from processing to requires_payment_method after three minutes.
FR5720041010050500013M02608 The PaymentIntent status transitions from processing to succeeded, but a dispute is immediately created.
Une grande partie du code de la fonction demande_prelevement_stripe est issue de sellyoursaas … il reste beaucoup de boulot mais voilà c’est le cadeau avant les vacances !