Sovereign Apps
Module · docuseal_base · v19.0.1.0.0

DocuSeal Connector

Electronic signatures inside Odoo, through a DocuSeal instance you run yourself. The document, the signatures and the signers' data never reach a third party.

Specification
Technical namedocuseal_base
Version19.0.1.0.0
Odoo19 · Community and Enterprise
Depends onbase_setup
RequiresYour own DocuSeal instance (open source, self-hosted)
External servicesNone beyond your own DocuSeal
Per-signature costNone
ConfigurationSettings ‣ General Settings ‣ DocuSeal
Automated tests12 cases covering configuration, registry, deleted records, unknown models and both DocuSeal response formats
What it does

Makes any model signable

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.

Compared with DocuSign
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
Design decisions
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.
Availability

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.