Formality · AsyncAPI Specification
Formality Webhooks
Version
View Spec
View on GitHub
CompanyAi MlLegalContract ManagementDocument-ManagementAsset IntelligenceComplianceSoftware-as-a-ServiceAsyncAPIWebhooksEvents
AsyncAPI Specification
generated: '2026-08-17'
method: searched
source: https://help.formality.com/setup-permissions/user-management
docs: https://help.formality.com/setup-permissions/user-management
spec_type: none
asyncapi_published: false
note: >-
Formality documents a real, signed webhook surface but publishes NO AsyncAPI
document, so this file carries the webhook catalogue and apis.yml gets a Webhooks
pointer only — no AsyncAPI pointer. The webhook is documented in the "Webhook de
téléchargement de documents" section of the French user-management help page; there
is no dedicated webhook reference page and no English version was found. Formality
also advertises webhooks on its marketing FAQ: "An API and webhooks are also
available for your in-house tools."
delivery:
style: http-post-callback
subscriber_configured: true
configured_in: Workspace Settings > Security (admin only)
endpoint_owner: customer
test_tooling:
available: true
control: '"Tester le webhook" button'
note: Validates that the configured endpoint is reachable.
security:
signing: HMAC-SHA256
signature_header: undocumented
secret_distribution: undocumented
replay_protection: undocumented
note: >-
Payloads are stated to be signed with HMAC-SHA256, which is the single strongest
piece of event-surface engineering Formality publishes. The header carrying the
signature, the shared-secret provisioning mechanism and any timestamp/nonce
replay window are all undocumented, so a consumer cannot actually implement
verification from the published docs alone.
scope:
domain: document access + signature audit events
purpose: security / audit trail
note: >-
This is an AUDIT webhook, not a contract-lifecycle webhook. It reports who
touched a document, not that an agreement changed state. There is no documented
event for agreement created/updated, deadline reached, obligation triggered,
extraction completed or workflow approved — which is the event set an
integrator would most expect from a CLM platform.
events:
- event: document_viewed
documented_as: consultation de document
trigger: A user views a document.
- event: document_downloaded
documented_as: téléchargement de document
trigger: A user downloads a document.
- event: document_bulk_downloaded
documented_as: téléchargement groupé
trigger: A user performs a bulk download.
- event: document_signed
documented_as: signature de document
trigger: A document is signed.
payload:
documented_fields:
- name: timestamp
documented_as: horodatage
- name: user
documented_as: utilisateur
- name: ip_address
documented_as: adresse IP
- name: event_type
documented_as: type d'événement
- name: file
documented_as: informations du fichier
schema_published: false
example_published: false
field_types_published: false
note: >-
Field NAMES above are our English renderings of the French prose list; the
literal JSON keys, their types and an example payload are not published. No
schema was fabricated for this reason.
retries:
documented: false
delivery_guarantees:
documented: false
event_count: 4
gaps_worth_raising_with_provider:
- Publish the JSON payload schema and an example event.
- Name the HMAC signature header and document the replay window.
- Document retry/backoff and delivery guarantees.
- Consider contract-lifecycle events (agreement state change, deadline, extraction complete).
- Publish an AsyncAPI document for the event surface.
- Provide an English version of the webhook documentation.