DocuSign E-Signature¶
Send agreements for e-signature via the DocuSign eSignature API. The extension plugs into the registration module, which owns agreement templates (agreement_templates) and captured signatures (signature_records) during B2B/B2C account onboarding — this extension registers a DocuSign-backed implementation of the module's ESignatureStrategy interface for routing those agreements to an external signing provider.
Placeholder implementation
The strategy in this version is a scaffold, not a working DocuSign integration. create_signing_request logs the request and returns a fixed placeholder request id with no signing URL, check_status always reports pending, and get_signed_document returns nothing. No calls are made to the DocuSign API.
At a glance
| Extension id | docusign |
| Category | registration |
| Version | 0.1.0 |
| Provides | ESignatureStrategy implementation (registered as docusign) |
| External account | DocuSign — Account ID, Integration Key, JWT User ID, RSA private key |
What It Provides¶
- E-signature strategy —
DocuSignStrategy, registered with the strategy resolver as anESignatureStrategyimplementation nameddocusignwhen the extension activates. - The
ESignatureStrategyinterface it implements covers three operations: create a signing request for an agreement (signer email, signer name, optional callback URL) returning a request id, signing URL, and status; check a request's status (pending,signed,declined,expired); and download the signed document. - Nothing else — the package contributes no webhook endpoints, Temporal workflows, schedules, admin pages, GraphQL fields, or event subscriptions.
Setup¶
- Once installed (or dev-linked in development), the extension is discovered at startup. Enable it for a channel from Settings > Extensions (per-channel activation via
ChannelExtension). - Enter the DocuSign credentials in the extension's configuration form (fields below). The manifest's install hint reads: "pip install docusign-esign, then configure API credentials in extension settings" — note that the current code does not import that SDK (see the placeholder warning above).
Configuration Reference¶
| Key | Type | Required | Secret | Description |
|---|---|---|---|---|
account_id |
string | No | No | Account ID |
integration_key |
string | No | No | Integration Key |
user_id |
string | No | No | User ID (for JWT) |
private_key_path |
string | No | No | RSA Private Key Path |
base_url |
string | No | No | Defaults to https://demo.docusign.net/restapi (DocuSign demo environment) |
Note
The config schema marks no field as required and no field as secret, so values are stored and rendered unmasked in the admin configuration form.
Operational Notes¶
- The strategy is registered but not yet consumed. No core code path currently resolves
ESignatureStrategy; the registration flow records signatures directly through the registration module'sSignatureServiceintosignature_records(method, signer IP, user agent, agreement version, SHA-256 content hash). Enabling this extension therefore has no runtime effect on the signing flow yet. - The registration module's built-in default captures signatures client-side (canvas/typed) with no external service (
BuiltInSignatureStrategy). - Whether an agreement needs a signature at all is controlled per agreement template (
requires_signature, on by default), not by this extension.