Electronic signatures inside Odoo, through a DocuSeal instance you run yourself. The document, the signatures and the signers' data never reach a third party.
| Technical name | docuseal_base |
|---|---|
| Version | 19.0.1.0.0 |
| Odoo | 19 · Community and Enterprise |
| Depends on | base_setup |
| Requires | Your own DocuSeal instance (open source, self-hosted) |
| External services | None beyond your own DocuSeal |
| Per-signature cost | None |
| Configuration | Settings ‣ General Settings ‣ DocuSeal |
| Automated tests | 12 cases covering configuration, registry, deleted records, unknown models and both DocuSeal response formats |
The module provides a docuseal.mixin. A model that inherits it answers two questions — which template, and how to pre-fill it — and receives sending, state tracking and completion handling in return. A signed quotation, a contract, an onboarding form: same plumbing, different document.
Completion arrives through a webhook. The webhook itself knows no business model at all: it looks the submission up in a registry and calls back into whichever record it belongs to. That is what keeps the module reusable instead of tied to one document type.
This is a base module. On its own it adds the connection and a settings page — it becomes useful once a model inherits the mixin. If you want signatures on a standard Odoo document (quotation, sale order, contract) without writing code, tell us which one; that is the next module in this series.
| DocuSign connectors | This module | |
|---|---|---|
| Where the document goes | To the vendor, typically outside the EU | To your own server |
| Signer personal data | Processed by the vendor | Stays with you |
| Cost model | Per user and per envelope | One-off, then nothing |
| Data processing agreement | Required with a foreign provider | Not needed — no processor |
| If the vendor raises prices | You pay or migrate | Nothing happens |
| Fails closed | Without a configured webhook secret, every incoming call is rejected. An unconfigured integration must not be an open door. |
|---|---|
| Errors are recorded, not retried forever | If handling a completion fails, the endpoint still answers 200 and writes the reason into the registry. Otherwise DocuSeal retries indefinitely and nobody ever learns why. |
| Duplicates are ignored | A repeated completion event does not run the handler twice. |
| Audit trail | Every submission is listed with its state, the last event and any error — visible under Settings ‣ Technical. |
Built and tested against a clean Odoo 19 installation, in preparation for publication on the Odoo Apps Store. Early access: florian@neuhuber.net.
Legal note: this module transports signatures technically. Whether a given signature meets the requirements of a simple, advanced or qualified electronic signature under eIDAS depends on your DocuSeal setup and your use case, not on this connector.