Skip to main content
This page lists every event Formable sends to your webhook endpoint. Most integrations only need signing events (document_viewed, document_signed, document_completed). Redlining events are listed below for the optional negotiation workflow. Every payload shares the same top-level shape — an event metadata object plus a category-specific object:
string
Unique identifier for this delivery. Use it for idempotency.
string
Either signing or redlining.
string
The specific event type, listed below.
number
When the event occurred, in milliseconds since the Unix epoch.

Signing events

Signing events carry a signing object and reference a signature request.
string
The ID of the signature request the event relates to.

document_viewed

The signer opened the document for the first time.

document_signed

A single signer completed and signed the document. This does not mean the signed PDF is ready yet — wait for document_completed before fetching the signed envelope.
string
The ID of the recipient who signed. Matches the recipientSignatureId returned when you create a signature request.

document_completed

All required fields are filled, the signature request is complete, and the signed PDF (with audit trail) is ready to download. If there are multiple signers, this means all signers have signed. Wait for this event before calling Get signed envelope.

Redlining events

Redlining events carry a redlining object and reference a redline request. Every redlining payload includes these base fields, plus any event-specific fields listed below.
string
The ID of the redline request the event relates to.
string
The role of the member who triggered the event. One of disclosing_party, receiving_party, disclosing_counsel, or receiving_counsel.

redline_edit_inserted

A member inserted new text into the document.
string
The inserted text.

redline_edit_deleted

A member deleted text from the document.
string
The deleted text.

redline_edit_accepted

A member accepted a tracked change proposed by the other party.
string
The content of the change that was accepted.
string
The kind of change. One of inserted, deleted, replaced, or formatted.

redline_edit_rejected

A member rejected a tracked change proposed by the other party.
string
The content of the change that was rejected.
string
The kind of change. One of inserted, deleted, replaced, or formatted.

redline_comment_added

A member added a comment to the document.
string
The comment text.

redline_message_added

A member posted a message in the negotiation thread.
string
The message text.
string
The email address of the message author.

redline_turn_ended

A member finished their turn and passed the document to the other party. Only the base redlining fields are included.

document_ready_for_signing

All tracked changes have been resolved and the document is ready to be sent for signature. Only the base redlining fields are included.

redline_shared

A redline request was shared with a member. Only the base redlining fields are included.

Handling events

Switch on event.event_type to route each event. Unknown types should be ignored gracefully so new event types don’t break your handler.