- Compliance and legal evidence — prove who signed what, when, and from where
- Debugging signer issues — see exactly what a recipient did during their signing session
- Internal reporting — track admin actions like creation, edits, and cancellations
- Signer events — document views, field interactions, signing, declining, certificate downloads
- Admin events — creation, edits, sending, cancellation, resending (via dashboard or API)
Viewing the audit trail in the dashboard
Open any signing request in the Firma dashboard and click the Audit Trail tab. You’ll see a chronological timeline of all events, with signer actions and admin actions visually distinguished. Consecutive repetitive events (like scrolling or repeated field interactions) are automatically condensed with a count indicator.Retrieving the audit trail via API
Use the audit endpoint to fetch the full event history for a signing request:curl
Node.js
Python
Example response
Response fields
| Field | Type | Description |
|---|---|---|
id | uuid | Event ID |
timestamp | datetime | When the event occurred |
source | string | "signer" or "admin" |
event | string | Event type identifier (see event reference below) |
description | string | Human-readable event description |
actor | object | null | Who performed the action (see below) |
ip_address | string | null | Signer’s IP address (signer events only) |
details | object | null | Event-specific metadata |
condensed_count | integer | Present when consecutive identical events from the same actor are grouped |
Understanding event sources
Thesource field tells you whether an event came from a signer or an admin, and the actor field has a different shape for each.
Signer events
Events withsource: "signer" are actions taken by recipients during the signing flow. The actor object contains the signer’s name and email. The ip_address field is populated.
Admin events
Events withsource: "admin" are actions taken via the dashboard or API. The actor object contains a type field ("api_key" or "user") and optionally a user_id. The ip_address field is null.
Real-time tracking via webhooks
If you need real-time notification of signer events rather than polling the audit endpoint, Firma supports webhooks. See the Webhooks guide for setup instructions.Event reference
Document lifecycle
| Event | Description | Has details |
|---|---|---|
document_opened | Opened the document | No |
document_viewed | Viewed the document | No |
document_saved | Saved field values | No |
document_finished | Completed signing | No |
document_signed | Signed the document | No |
document_hidden | Left the page | No |
document_visible | Returned to the page | No |
document_closed | Closed the document | No |
Signature and verification
| Event | Description | Has details |
|---|---|---|
signature_finalized | Signature finalized | No |
signing_declined | Declined to sign | No |
terms_accepted | Accepted terms and conditions | No |
otp_verified | Verified identity via OTP | No |
certificate_download | Downloaded the certificate | No |
Field interactions
Field interactions are tracked asfield_interaction events. The details object contains the specific action and field metadata.
| Action | Description |
|---|---|
field_focused | Selected a field |
field_completed | Completed a field for the first time |
field_modified | Modified an existing field value |
field_cleared | Cleared a field value |
field_blur | Finished editing a field |
details object for field interactions includes:
| Field | Type | Description |
|---|---|---|
field_type | string | Type of field (signature, text, date, etc.) |
action | string | The specific action from the table above |
interaction_count | integer | Number of times this field has been interacted with |
value_length | integer | Length of the field value (when applicable) |
time_spent_ms | integer | Time spent on the field in milliseconds (when applicable) |
Navigation
| Event | Description | Has details |
|---|---|---|
page_viewed | Viewed a specific page | Yes — page_number |
document_scrolled | Scrolled to a page | Yes — page_number |
navigation_action | Navigated the document | Yes — action (next_page, prev_page, go_to_page) |
zoom_changed | Changed zoom level | No |
modal_interaction | Opened or closed a dialog | Yes — modal_type, action |
Admin activity
Admin events useevent: "activity" with a human-readable description field that describes the action taken (e.g., “Created signing request via API”, “Sent signing request”, “Cancelled signing request”).