AbstractProtected Abstract ReadonlyproviderDriver key for this provider. MUST equal the @RegisterClass key and
MJ: Signature Providers.ServerDriverKey.
AbstractIsTrue once initialize has supplied all credentials this provider requires.
Create an envelope from a provider-hosted template. Not all providers support this.
Create an embedded (in-app) signing URL. Not all providers support this.
AbstractCreateCreate (and, per sendImmediately, send) a signature envelope.
AbstractDownloadDownload the executed/signed document for a completed envelope.
AbstractGetFetch the current status of a previously created envelope.
AbstractgetThe operations this driver actually supports.
AbstractinitializeOne-time per-instance initialization with the merged + decrypted config from the engine.
Normalize a provider webhook payload onto our vocabulary. This is the parse step only — it
needs no secret, so the engine can call it on a bare driver to discover which envelope an
event refers to. Returns null for payloads this driver doesn't handle. Default: not handled.
Authenticity is checked separately by VerifyWebhookSignature, which runs on a credential-initialized driver.
Re-send the signing notification to outstanding recipients. Not all providers support this.
Verify the authenticity of an inbound webhook (HMAC / signature). The eSignature webhook endpoint is unauthenticated and mutates signature-request status, so the engine consults this before applying any event under a verify-if-configured policy:
Verified → a secret is configured and the signature matched → engine accepts.Failed → a secret is configured but the signature was missing/invalid → reject.NotConfigured → no secret configured → engine accepts (logged), so the endpoint works
during setup and tightens to strict automatically once a key is set.Default is NotConfigured: a driver that doesn't implement verification has no secret to
check. Implementations read their shared secret from this.config (e.g.
SignatureProviderConfig.connectHmacKey) — sourced from the account's encrypted
credential, never an environment variable.
Providers verify in whichever way their API prescribes:
rawBody;event_hash) — use payload.The exact bytes received, for byte-accurate HMAC. Undefined if unavailable.
Inbound headers (may carry the provider signature header).
Optional_payload: unknownThe parsed payload, for providers that sign payload fields rather than bytes.
AbstractVoidVoid/cancel an in-flight envelope with a reason.
Abstract base for all eSignature providers. Concrete drivers (DocuSign, Adobe Sign, …) live in their own packages and register via
@RegisterClass(BaseSignatureProvider, '<DriverKey>'), where<DriverKey>matchesMJ: Signature Providers.ServerDriverKey. The engine resolves a driver withMJGlobal.Instance.ClassFactory.CreateInstance(BaseSignatureProvider, driverKey)— nevernew.Design contract:
abstract— every driver must implement them.onTokenRefreshcallback on SignatureProviderConfig.