Stancer is the French low-cost payment platform. This module connects it to Dolibarr: your customers pay by card or by SEPA direct debit from their invoices, orders and quotes, and Dolibarr records the payment, classifies the invoice and books the entries without retyping anything.
Card payment
- Online payment link sent by email from an invoice, an order or a quote, secure 3-D Secure payment page
- Payment of a quote or an order with automatic invoice creation, partial payment and down payment invoice
- Invoice classified as paid as soon as Stancer confirms
- New attempt offered to the customer after a refused card
- Card saved for the next payments
SEPA direct debit
- Public page where the customer enters their own IBAN, SEPA mandate generated as a PDF
- IBAN check through SEPAMail (France and Italy)
- Electronic signature of the mandate with the UptoSign add-on module; once the mandate is signed, the customer's template invoices switch to direct debit automatically (option)
- Automatic debit of due invoices, after the customer notice period
- SEPA rejections handled: invoice reopened, customer and administrator notified, rejection fee invoiced if you wish
Tracking and automation
- Dashboard: revenue, payments, refunds and disputes
- Lists of payments, payouts, refunds and disputes synchronised with Stancer
- Stancer tab on every thirdparty card
- Scheduled jobs: synchronisation, direct debits, invoices sent on validation, reminders
- Ready-to-use emails for every situation: confirmation, failure, rejection, reminder
Accounting
- Stancer fees recorded on the bank account
- Payouts to your main bank recorded as internal transfers, only the reconciliation is left to you
- Detection and regularisation of discrepancies
Associations
- Online payment of membership fees and donations
Requirements
- Dolibarr 15 or later, PHP 7.4 or later
- A Stancer account and its API keys, sign up on stancer.com
- Bank and Direct debit modules enabled in Dolibarr
- For the electronic signature of the mandate: the UptoSign module
Every feature is described in the online documentation: doc.cap-rel.fr/stancer
A free module, funded by its users
This module is free and released under a free software licence. Improving it, fixing it and keeping up with every new Dolibarr version is still daily work. If it is useful to you, help fund it with the amount of your choice: contribute to its funding.
- Updates of the module, with no time limit
- Bug fixes, including the ones you report
To be told automatically about new versions, of this module and of the Dolibarr ecosystem at large, subscribe on dolinews.com: that is where our release announcements are published.
Support
Support goes through our support form, not through the comments on this sheet.
The module is free, support is not. You want competent people on the other side: it is fair that they are paid for that time. This applies to installing and configuring your Dolibarr, training your teams, specific developments and investigating an environment we do not host.
A reproducible bug in the module is fixed at no charge, in an upcoming update.
Before installing
- Check the Dolibarr and PHP versions stated at the top of this sheet: beyond them, the module is not tested
- Modules are deployed from Home > Setup > Modules > Deploy an external module, which requires an active custom directory on your installation
- When a module relies on an online service, the subscription to that service is separate from the module, and is stated above
Publisher
Module developed by CAP-REL, under the GPL-3.0-or-later licence. Online documentation at doc.cap-rel.fr.
Version history
2.0.26 -- 2026-11-03
- Switch template invoices to SEPA direct debit as soon as the customer signs the mandate
- Join to the invoice email the files other modules attach, as a reseller consumption statement
- See each refused, failed or disputed Stancer payment once in the invoice events
- See each successful Stancer payment in the invoice events, as Stripe debits do
- Let other modules space retries or suspend services from AC_PAYMENT_STANCER_KO
- Mail the administrator only once about a failed payment, not on every daily refresh
- Send the customer failure email and the KO trigger when a card payment is refused
- Pay a quote, an order or an invoice with Stancer when the customer only left a mobile
- Reach overseas customers on their mobile, even when their thirdparty country is France
- Keep invoices paid again after a failed SEPA debit closed, instead of "started" with 0 left
- See in the scheduled job result which fully paid invoices could not be classified paid
- Read clearer English labels and messages across the module (thanks to contrib from Laurent)
2.0.24 -- 2026-09-24
- Send the payment link from an order or an invoice (thanks to contrib from Axel)
- Allow a card payment without 3-D Secure, document by document (thanks to contrib from Axel)
- Let a customer pay again after a refused card payment (thanks to contrib from Axel)
- Show why a card payment could not start, instead of a blank page (thanks to contrib from Axel)
- Say on the return page what happened, and that nothing was charged (thanks to contrib from Axel)
- Take the payer email or mobile from the contacts too (thanks to contrib from Axel)
- Fix the delayed mail at invoice validation, never queued
- Report a payment link that could not be mailed
- Frame the Stancer payment button with its brand
- Translate the new keys into the five other languages
- Keep the customer account on a card saved after payment (thanks to contrib from Nicolas)
- Fix a setup page warning on an unreadable document model row (thanks to contrib from Nicolas)
- Record a card payment on its own invoice, order or proposal, never on one named by the URL
- Charge the amount Dolibarr computes for an invoice, order or proposal, not the URL one
- Close an invoice as paid only when its payments really cover it
- Ask for the write permission and a token before any debit, refund or bank booking
- Keep card numbers, CVC and the payment security key out of the logs
- Verify the TLS certificate of the Stancer API
- Keep payments, refunds, disputes and collections of each entity apart
- Send the delayed invoice validation mails again, the job always failed
- Record a forced SEPA payment as a direct debit, not as a card payment
- Book donation and event payments made with Stancer on the Stancer bank account
- Refuse a second copy of the same payout, refund or dispute
- Let a user who created Stancer records be deleted
- Ship the raw Stancer API window that the package left out
- Translate the messages shown when a payment starts
2.0.23 -- 2026-09-05
- Fix payments recorded nowhere when the customer paid from a link received by mail
- Read the payment id and the currency from the payment record instead of the browser session
- Refuse an API call built with an empty id instead of letting it query the whole payment list
- Remember on the payment record that it only covers a deposit ("30% on order")
- Fix a false "payment already recorded" that could stop the return page
- Fix the missing stancer-card row that hid an already existing Stancer customer on the thirdparty tab
- Mail tracking id now follows the paid object: invoice, order, proposal, member or donation
- Detect enabled modules on every supported Dolibarr version
- The failure mail sent to the administrator now names the Stancer payment and its status
- Add tests
2.0.22 -- 2026-08-24
- Appli dolibarr rules for free community module
- -> https://wiki.dolibarr.org/index.php/Modules_-_Rules_for_community_modules
2.0.20 -- 2026-08-24
- Fix sql requests on admin parts (repair / cleanup)
- better log collectors for user support
- enhance user doc
2.0.18 -- 2026-07-20
- Fix fees on operations
- Add values guards, htmlfilters, xss checks
- Add repair and saferty pages for admin
- Enhance logs collect system
2.0.14 -- 2026-06-15
- Dedup for all rtpe of documents
- Better changelog parser (about page)
- Add more tests
- Fix bad thirdparty links
- Better css
- Add a re-audit system for muti-payments2.
2.0.12 -- 2026-05-20
- Change pseudo-stripe fake mode
- New experimental option "group sepa mandate same day" to compress fees
- better handler for payment on order and propal
- unique syslog prefix to make easy to grep logs
- better anti doublon mode
- mass action on payment list to force refresh data from api
- new audit page
- fix miss attributions on group payment
- fix duplicate mails sent
- add a check on module setup to avoid risk of invert private / public keys
2.0.10 -- 2026-05-04
- Add dolibarr tracking number in mails
- Skip doaction if object is not linked to stancer
- Fix url links into mails
- Split big files into short ones
- Add tests
- Display debug messages json + fix all case of sepa refund
- Better auto send emails
- Use history to avoid multi send mails for payout info
2.0.8 -- 2026-04-13
- Fix Dolibarr 23 compat
- Unify mail send system
- Add checks for Adherent payments
- Normalise syslogs prefix to make it easy to grep
- Remove delete rights
- Enhance about box
- Fix phpdoc comments
- Better phpstan checks
- Update langs files
2.0.6 -- 2026-03-31
- Avoid duplicate mails in case of problem
- New option to allow retry pay with stancer even if there was a previous payment problem with them
- Update user doc
2.0.4 -- 2026-03-20
- Full migration to Stancer API v2 (all endpoints)
- New stancer_disputes model and DB table for dispute tracking
- New stancer_api.class.php refactored for API v2 endpoints
- New disputes list page (stancer_disputes_list.php) with filters and status display
- Automatic invoice reopen when a dispute is lost (status: lost, accepted, out_of_time, not_contestable)
- Reverse payment (negative amount) created on invoice reopen to restore correct "amount due"
- Customer notification on SEPA rejection using configurable Dolibarr email template with styled layout (blue header), payment link, and PDF attachment
- Admin notification email now includes: customer name, invoice ref (clickable link), amount, dispute type, status, SEPA code
- Auto-creation of rejection fee invoice (configurable product, prevents SEPA re-collection loop)
- ActionComm-based deduplication to prevent duplicate processing across multiple refreshes
- Invoice card now shows dispute status and SEPA rejection code alongside payment status
- Refunds list page improvements
- Refund sync from API v2
- New styled email layout (blue header, company name, responsive HTML) for all customer-facing emails
- Cron task email sending improvements
- Better substitution variable support in email templates
- SEPA rejection settings page: fee amount, auto-apply toggle, product selection, CC email
- Updated translations (FR, EN, DE, ES, IT, NL)
- Removed dependency on Stancer PHP library (pure REST via getURLContent())
- PHPStan improvements
- Unit tests updated for API v2
2.0.2 -- 2026-03-18
- New version - no cost, this module is not sell anymore
- but maintenance is active, that is our main payment system !
1.2.136 -- 2026-01-19
- Partial pay (deposit) on propal ... (end)
1.2.134 -- 2026-01-09
- Partial pay (deposit) on propal ... (in progress)
1.2.133 -- 2026-01-06
1.2.132 -- 2025-12-09
- New back of payment link for propal
- Hide payment button if "retry payment"
- New refund process on credit note
1.2.130 -- 2025-09-09
- Fix sql request on auto pay cron task thanks to Florian Koch
1.2.128 -- 2025-06-17
- Fix undef vars
- Fix some php warnings
- Force type of a var
1.2.124 -- 2025-03-26
- migrate from conf->global to getDolGlobalString
- cleanup config from sandbox when switching to prod mode
- new option for automatic payment via SEPA (invoices linked to contract or no)
1.2.121 -- 2025-03-11
- fix auto sign mandate via uptosign
1.2.119 -- 2025-02-14
1.2.118 -- 2025-02-14
- add new function stancerShowOnlineIBANDataForCustomer
- partial payment of order and auto create paid deposit invoice
1.2.117 -- 2024-12-05
- Massive code cleanup thanks to phpstan level 2
- Option "stancer add fees on each payment" is back thanks to ops sponsorring
1.2.116 -- 2024-11-13
- Fix: fetch call to be dolibarr 20 compatible (next)
1.2.114 -- 2024-11-07
- Fix: update CB card number / handle expiry case
Truncated history, intermediate releases not shown: 48
The first release of this module dates from 2023-01-22.
0.0.0
- Start dev time - 2023-01-22
The full changelog is on the "About" page of the module once it is installed.