Important: an UptoSign account is required
This module is the connector between Dolibarr and the UptoSign signature service. To sign or seal any document, you MUST open an account on uptosign.com. This account is separate from the purchase of the module: signatures and seals are billed by UptoSign according to your plan. A free demonstration server lets you try everything before you subscribe.
Get your quotes, contracts and invoices signed online without leaving Dolibarr. Your customer signs from their phone in two minutes, and the signed document comes back into Dolibarr on its own, with an eIDAS-compliant proof file.
Print, send, wait, chase, scan, file away: a handwritten signature costs days and gets lost in e-mails. UptoSign replaces that whole loop with one button on the document card. The service runs on a cloud hosted in France and produces signatures compliant with the European eIDAS regulation (advanced simple signature).
How it works
- 1. You place the signature: from the Electronic signature tab of the document, you drop the seal and the signature area of each signatory on the PDF.
- 2. Your customer signs: they receive a link by e-mail, confirm their identity with an SMS code and sign from their phone or computer, with no account and nothing to install.
- 3. Everything comes back to Dolibarr: the signed document and its proof file are stored with the original, the document status is updated and the agenda keeps track of every step.
Your customer is sitting in front of you? Local signature starts the procedure on the spot, without sending a link.
A signature that holds
- eIDAS compliant: advanced simple electronic signature, with two-factor authentication of the signatory by SMS.
- Proof file: downloaded with each signed document, it records who signed, when and how.
- Sealing and timestamping: lock an invoice or any other PDF without involving a signatory. Any later change shows.
- Public verification: your contacts check for themselves that a document has not been altered, on the UptoSign verification service.
- Your choice, document by document: the native Dolibarr signature for an internal agreement, the UptoSign signature when it must stand up.
Everything you can sign
Commercial proposals, customer and supplier orders, supplier proposals, invoices, contracts, interventions, shipments, projects, third parties and users. And more broadly any PDF attached to a third party: a non-disclosure agreement before a quote, a lease, company rules, an employment contract.
Mass signature
Have the same document signed by dozens of people, each one signing their own copy: internal charter, rules, authorisation, notice of meeting.
- Recipients picked from your contacts, users, members or event attendees, imported from a CSV file or typed in.
- New: advanced selection of third parties and their contacts by category, type, country or extra fields.
- Tracking of each recipient and retrieval of the signed documents in one action.
- Sealing of a batch of invoices in a single operation from the invoice list.
Less typing, more automation
- Invoice created as soon as a quote is signed
- Invoices sealed and sent by e-mail automatically
- Signed orders closed and services of a signed contract activated
- Daily archiving: a scheduled job checks the local copy of each signed document and downloads again whatever is missing
Built for business
- You control spending: starting a signature, which is billed, is a separate permission that you grant to the right people only. The same signature cannot be started twice by mistake.
- Security: every action is protected against forged links, the UptoSign account key only travels to a server with a verified certificate, and signatories' e-mails and numbers stay out of the logs.
- Multicompany: each company has its own UptoSign account, and each procedure is followed with the account that started it.
- Compatible: Dolibarr 18 and later, Dolibarr 24 included, MySQL, MariaDB or PostgreSQL databases.
- In eleven languages: French, English, German, Spanish, Italian, Dutch, Brazilian Portuguese, Danish, Hungarian, Polish and Slovenian.
- Open: other modules rely on UptoSign to have their own documents signed, such as SEPA mandates or the occupational risk assessment document (DUERP).
What has changed since version 2.2
Since version 2.2, the module has been largely rewritten. The main milestones:
- Mass signature: one document signed by many people, with a tracking table per recipient (not sent, waiting, signed, retrieved, in error) and grouped retrieval of the signed documents.
- Automation: invoice created when the quote is signed, invoices sealed and sent, orders closed and contract services activated, all set from the module administration.
- New documents: supplier proposals and orders, shipments, employment contracts of the InfraS employees module.
- Isolated positioning window: the seal and signatures land exactly where you drop them, whatever the Dolibarr theme or the other modules installed.
- Automatic archiving of signed documents, and respect of the signature server limits, with no burst of calls.
- Reliable multicompany: the right document, the right UptoSign account, the right company, at every step.
- Eleven languages actually loaded and covering every screen.
- Version 2.5: stronger security, Dolibarr 24 and PostgreSQL compatibility, advanced selection of recipients.
Who is it for?
- Sales teams who want a quote signed the same day, not the same week.
- Service companies that get contracts and intervention reports signed in the field.
- Associations and HR that circulate charters, rules and contracts to many people.
What you need
- Dolibarr 18.0 or later, PHP 7.4 or later, with the intl, fileinfo, gd and mbstring extensions
- The ECM (Electronic Content Management) module enabled in Dolibarr
- An account on the online service uptosign.com, separate from the purchase of the module: it performs the signatures and seals, billed according to your plan. A free demonstration server lets you try everything before you subscribe.
The full documentation is online: doc.cap-rel.fr/projet_uptosign
What the purchase covers
- The module, and access to its updates for the period stated on this sheet
- Bug fixes, including the ones you report
- An email on every new release
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.
Support is not free. You want competent people on the other side: it is fair that they are paid for that time. The price shown covers the module and its updates. It covers neither installing nor configuring your Dolibarr, nor training your teams, nor specific developments, nor investigating an environment we do not host.
A reproducible bug in the module is fixed at no charge, as part of the updates above.
Before buying
- 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 buying 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.5.1 -- 2026-10-20
- remind the pending signatories from their card, or automatically every 2, 3 or 7 days
- add an optional signature page at the end of a document before sending it to sign
- let a signatory sign on several pages of the same document
- keep the sealed version of a document generated again, and seal the new one
- sign or seal the other documents of an object once one of them is done
- the local signature tells when it cannot open because of several signatories
- choose seal or sign at the top of the wizard, without losing the title already typed
- the wizard stays in seal mode when another PDF is chosen
- UptoSign agenda events show the signature picto again
- a replayed mass seal no longer seals and bills the same document twice
- grouped signatures above 30 recipients are refused, even from a forged request
- the signature configuration card refuses any change without a valid security token
2.5.0 -- 2026-10-19
- refuse every write action without a valid security token
- close an SQL injection in the procedure search
- labels can no longer inject code in the pages
- only the PDF of the signed document is sent, from any module
- only real PDF files are saved as signed documents and proofs
- the API key only goes to a verified certificate, never to a redirect
- the API password is kept as typed and never shown back
- no signer email, mobile, name or link in the default log anymore
- no signer details in the browser console anymore
- stronger random online signature tokens
- no second procedure, SMS or bill on a PDF already being signed
- new users no longer get the billed launch right by default
- Dolibarr 24: settings for the sponge, octopus, eratosthene and zenith models
- no test PDF for the models of disabled modules at activation
- PostgreSQL: install, upgrades and procedure list now work
- multicompany: each procedure uses the UptoSign account of its entity
- multicompany: activating in a new entity no longer rewrites records
- multicompany: no more steps written in the agenda of another entity
- multicompany: mail templates installed in each entity
- multicompany: the workflow setup lists the invoice templates again
- envelopes get their definitive ref at the first send
- new advanced selection tab to add third parties to an envelope
- envelope editing uses the envelope permissions
- member and attendee sources only add people with a mobile
- deleting an envelope cancels its open signatures
- the envelope fetch says how many documents came back
- sending mail from an envelope needs the right to edit it
- recipients can no longer be added to a sent envelope
- envelope filters no longer mix with core emailing ones
- back to list on envelope tabs opens the envelope list
- Validate removed from envelopes, they are sent from draft
- deleting any document cancels its open signatures at UptoSign
- deleting a procedure cancels it at UptoSign, needs the delete right
- deleting a user keeps their signed HR documents
- UptoSign down: changes to a document being signed are refused with a clear message
- unplaced signers no longer overlap in the wizard
- several signatories no longer share the same signature spot
- signer names keep their accents
- the UptoSign state of a procedure is translated
- public page, recipients tab and procedure card fully translated
- readable labels for the configuration and list rights
- search procedures by the ref of any document
- the list shows the right total when filtered
- the configurations list no longer resets validated ones to draft
- signed document and proof never overwrite the original PDF
- closing a signed proposal no longer blocks PDF generation
- a failed sealed invoice follow-up is reported as an error
- alerts go to a real user for scheduled and webhook procedures
- alerts go to the address set by Stancer and DUERP
- company with an empty mobile falls back on its phone
- signature contact roles always installed
- reseller: invoice lines keep local tax 2 and the signature count
- reseller: no negative prorata without an end date
- reseller: contract buttons work again, no invoice after a failed contract
- reseller: billing data and names shown as plain text
- scheduled jobs always say what they did
- archive job can be switched on from the Automatisations tab
- module update keeps envelopes and signed file links
- failed connection test keeps the stored password and key
- setup: backup and restore buttons removed
- log page: log files only, with a token, never for entity admins
- HR pages: only employee procedures, deletion needs the right
- return links only go to a page of your Dolibarr
- shipment mail template shows up in the shipment send form
- any reader can refresh a procedure history and check its checksum
2.4.20 -- 2026-10-15
- with multicompany, sign the PDF of the shared object, not the one of a namesake of your entity
- cloning an invoice or creating it from an order no longer logs an SQL error
- the automatic copy address of outgoing mails receives each mail once, not twice
- sending an invoice by mail without a PDF no longer raises a PHP warning
- the invoice sent by mail is kept on its agenda event with its message id
- a double click on "Add" no longer adds the same recipients twice to a list
- replies to signature notifications are linked to the signed document by the email collector
- German, Spanish, Danish, Hungarian, Polish and Slovenian users now get the module in their language
- the module is now translated into Dutch and Brazilian Portuguese
- every screen of the module is fully translated in each of its eleven languages
2.4.16 -- 2026-09-25
- stop calling the server as soon as it answers "too many requests"
- the pause now survives from one page or webhook to the next
- space out the archive job downloads and cap how many run at once
- a procedure the server forgot is marked expired, no longer asked every night
- no longer trapped in the signature popup when a procedure is already running
- the signature popup now has its own close button, whatever it displays
- the signature tab of a thirdparty keeps the tabs of the card, so you can go back
- same fix for supplier invoices, supplier orders and bank accounts
- a deleted or unreachable document now says so instead of showing an empty page
- the grouped list no longer offers to send a batch that is already running
- fix missing, duplicated and mistranslated labels in french and english
- warn on module activation when a newer version of UptoSign is available
- refuse to start a signature when no signatory position has been placed
2.4.14 -- 2026-09-17
- the release archive now ships production dependencies only
- new check refusing to publish an archive that still have dev depends
- widen the sign position wizard side column
2.4.13 -- 2026-09-16
- open the sign position wizard in an isolated modal, without theme or menu
- the wizard page no longer loads any third party CSS or JS, which could shift signatures
- the sign tab now only carries a launcher button, the PDF payload moved to the modal
- new http tests checking the wizard page stays free of the Dolibarr layout
- note: reactivate the module so the new modal script is registered
2.4.12 -- 2026-08-25
- add supplier docs
- enhance signer checks (name / phone) and code factoring for that
- fix some warnings
- better logs for debug / user help
2.4.10 -- 2026-08-24
- add more tests (code coverage)
- fix default data (sql)
- switch to internal syslog system (prefix + cleanup)
- better check user rights
- better entity check on some race sql requests
- better tests / filters on GET / GETPOST data
- code factoring (roleCodeFromConfigLabel)
2.4.8 -- 2026-07-16
- fix position on screen with diff pixel ratio
- fix old events to AC_UPTOSEAL / AC_UPTOSIGN
2.4.4 -- 2026-06-02
- try to fix sign position on some race conditions
2.4.3 -- 2026-05-20
- fix interventions thanks to sylvain (infras)
- fix php 8+ warnings thanks to sylvain (infras)
- fix multi docs to sign thanks to sylvain (infras)
- add dol23 compatibility
- update langs & translations
- fix bugs thanks to phpstan
- update syslogs messages to make it easyer to follow
- better multidir output tests
- update mini version of php : 7.4
- new code to avoid duplicate seal process (F5/ other)
2.4.2 -- 20260226
- fix date_sign into database with real date
2.4.1 -- 20260212
- cron to keep signed files as archives into dolibarr
- code cleanup & fix thanks to tests
2.4.0 -- 20260212
- NEW: UptoSignList synthetic tracking table (uptosignlist_docs.php)
- Each row = one member with signing procedure status, date, and signed document download
- Summary counters: not sent, waiting, signed, fetched, error
- Mass action "Sync" to fetch signed files in bulk
- NEW: Bidirectional FK between uptosign and uptosignlist
- fk_uptosignlist on llx_uptosign (procedure -> list)
- fk_uptosign on llx_uptosign_uptosignlistmembers (member -> procedure)
- Automatically populated when sending signatures from a list
- NEW: getContactsWithProcedures() method on UptoSignList (LEFT JOIN members + procedures)
- NEW: Selector modules promoted from experimental to production
- uts_contacts: contacts of thirdparties (prospects, customers, suppliers)
- uts_members: foundation/association members with status/type/category filters
- uts_eventattendees: attendees of organized events
- uts_inputfile: CSV file import
- uts_inputmanual: multi-line manual input (paste from spreadsheet with tab or semicolon separator)
- ENH: All selector modules renamed with uts_ prefix to avoid collision with Dolibarr core mailing modules
- ENH: addTargetsToDatabase() now handles optional keys (mobile, other, source_url) with isset() for PHP 8.2 strict mode
- FIX: UptoSign object reinitialized at each iteration in mass signing loop (was reused)
- FIX: Removed stale require_once to Dolibarr core advthirdparties.modules.php
- QUAL: 53 new tests (22 unit + 31 integration) covering selector modules, add_to_target, getContactsWithProcedures
2.3.35 -- 20260210
- FIX: better logs in case of exclude user on admin page
- ENH: add more debug logs to diagnose race condition on setup signer list
- QUAL: phpstan fixes
- QUAL: tests
2.3.34 -- 20260109
- FIX: race condition for propal/propale template like azur/cyan
2.3.32 -- 20251204
- FIX: no object id on hook, use parameter uuid data instead
2.3.30 -- 20251128
- NEW: support for InfraS contracts
- FIX: societe tab file path
- NEW: setup option on workflow UPTOSIGN_WORKFLOW_AUTO_CLOSE_ORDER
2.3.18 -- 20251128
- FIX: societe path, use id not name
- NEW: compatibility with InfraSSalariesContracts module (thanks to InfraS)
- NEW: new option for contracts (merge request from InfraS)
- FIX: multicompany hook
- QUAL: phpstan fixes
2.3.16 -- 20251029
- NEW: add new type of documents (contracts from InfraS)
- NEW: for #47 code factoring with uptosign_handle_all_type_of_objects (one place for all dolibarr objects)
- FIX: hook thanks to Sylvain (InfraS)
- FIX: employee links
- FIX: header tabs
- ENH: better display for showOutputField
- ENH: activate sql for uptosignlistmembers + indexes
2.3.12 -- 20251029
- NEW: hook add order support
- NEW: compatibility with InfraS custom module (phpstan)
- FIX: fix signature logos on contracts (thanks to InfraS)
- FIX: fix page stamp and signatures display
- FIX: fix listing of signatures/sealings
- FIX: undefined vars thanks to phpstan
- FIX: undef fko
- ENH: use utsbackports_getDolGlobalString
- QUAL: phpcs / indent / spaces cleanup (no functional changes)
2.3.10 -- 20250916
- FIX: file choosed on thirdparty tab
- FIX: search ref on uptosign_list_of_elements_with_extrafield
- FIX: try to download proof even if there is an error before
- FIX: undefined array return by reset()
- FIX: phone -> phone_pro mapping
- FIX: first page is zero
- ENH: better log level and debug messages
- QUAL: phpcs + whocansign cleanup
2.3.8 -- 20250902
- FIX: try to use fk_soc if socid is not set (bug on sign project documents)
2.3.7 -- 20250829
- FIX: non proof download "sometimes"
2.3.6 -- 20250725
- FIX: non proof download "sometimes"
2.3.4 -- 20250611
- FIX: can't sign files with apostrophe in file name
- FIX: handle msg object properly
- FIX: stancer logs renamed to uptosign
- FIX: log/debug messages cleanup
- NEW: UPTOSIGN_ADD_CONTACT_POSTE_FUNCTION option
2.3.2 -- 20250408
- NEW: activate mass sign of same document (sign same doc by multiple users)
- NEW: actions on customers OR prospects
- NEW: option to enable/disable sms double auth (digitalsign_disable_sms)
- NEW: workflow options on module setup for auto-tasks
- NEW: uptosignlist_advthirdparties selector module
- NEW: hook for proof file
- NEW: suffixForMassSignProcess
- ENH: better log collect on hooks (get error log)
- ENH: user multi sign & add downloaded file
- ENH: list docs returned
- ENH: start workflow implementation
- QUAL: phpstan fixes (old versions compat)
- QUAL: code cleanup
2.3.1 -- 20250404
- ENH: list of sign 1.0 (status, translations)
2.3.0 -- 20250315
- Start of UptoSignList (mass sign) feature branch
2.2.82 -- 20250307
- partial fix supplier order sign setup (via sign tab, not templates doc)
2.2.80 -- 20250303
- new option in module setup to add a notification mail address for each
- utosign process
- fix localsign order process
- fix sql requests for PostgreSQL thanks to Alexandre Janniaux contribution
- fix link to thirdpart card thanks to Thomas Negre (easya partner)
- QUAL fix lots of phpstan alerts (undef vars and so on)
- Experimental functions (disabled) for mass sign
2.2.78 -- 20250207
- race condition on commande sign with "case 2" on sign hash
- add a test on module setup against dolibarr security (hash à model)
2.2.76 -- 20250116
- fix default stamp position with magic keywords
- allow file names with non ascii characters (french accents like "signé")
- default file to sign is the first one
2.2.72 -- 20241212
- odt templates >> sign button enabled
- fix order clic on sign button >> white page
2.2.70 -- 20241125
- Better search on who can sign documents
- Change main email from for mails
- Better message in event log on delete objects
- Better messages for end user
- Better messages in debug logs
- Add prefix on all css / html objects to avoid collisions with other modules
- Fix default seal position from template
- phpstan level 2 automatic checks
Truncated history, intermediate releases not shown: 50
The first release of this module dates from 2022-10-13.
2.0.0
- Full plugin redesign from module builder
- Massive code cleanup
The full changelog is on the "About" page of the module once it is installed.