Concepts
Pact lifecycle
How a pact moves from draft to sealed, how signers take turns, what signing links are, and how to follow progress.
A pact is one document sent to specific people for signature. It freezes a copy of the PDF when it is created (its SHA-256 is sent_sha256), lists the recipients in signing order, carries the fields from the document's glyphs, and keeps an audit trail of everything that happens to it. (Other e-signature services call this an envelope; the FAQ says why we don't.)
Statuses
draft ──send──▶ sent ──last signer signs──▶ sealed
│
├──a signer declines──▶ declined
├──you void it────────▶ voided
└──deadline passes────▶ lapsed| Status | Meaning | What you can do |
|---|---|---|
draft |
Created, not sent. Costs nothing yet. | Send or delete it. |
sent |
Out for signature; current_signer is whose turn it is. |
Resend the link or void it. |
sealed |
Everyone signed; the fields are stamped and the sigil is built. | Download the signed PDF and its sigil. |
declined |
A signer declined; their reason is on the recipient. | Nothing more. Create a new pact if needed. |
voided |
You withdrew it. | Nothing more. |
lapsed |
Not sealed by date_lapses. |
Nothing more. Create a new one from the same template. |
sealed, declined, voided and lapsed are final.
Signing in order
Signers sign one at a time, in the order you listed them. Sending invites signer 1 by email. When they finish, signer 2 is invited, and so on. While a pact is sent, current_signer holds the order of the person whose turn it is.
CC recipients are never asked to sign. They receive the finished copy when the pact is sealed.
What a signer sees
Each signer gets an email with a private link. On the signing page they:
- agree to do business electronically (the consent text is versioned, and the version they saw is recorded);
- fill in their text fields and tick their checkboxes;
- draw their signature, and their initials if the document has initials fields;
- type their full name, which also fills their printed-name fields.
Or they decline, with a reason, which ends the pact as declined.
Signing links
A signing link belongs to one signer for one turn. It is private: anyone who has it can sign as that person.
- Sigil emails it. To deliver it yourself as well, for example by text message, ask for it with
include_links=1on Get a pact; it appears assigning_urlon the signer whose turn it is. - Resending issues a fresh link and the old one stops working.
- Links stop working when the pact is voided or lapses.
Lapsing
A pact lapses if it is not sealed by date_lapses, 30 days after sending unless you set lapse_days (1 to 365) when creating or sending it. Lapsing is applied whenever pacts are read, so a past-due pact shows as lapsed from then on.
Sealing
When the last signer signs, Sigil stamps every signature, initial, name, date, text value and tick onto the document, and seals the pact with its sigil, the certificate of completion: each signer with their email address, when they viewed and signed (UTC), their IP address, the consent version they agreed to, the hashes of the document as sent and as signed, and the full event log. Both are emailed to every recipient and to you, and both can be downloaded.
The event log
Every pact keeps an audit trail in events, oldest first:
| Event | When |
|---|---|
created |
The draft was created (note: where from, and how many signers). |
fields |
Its fields were placed or changed by hand in the website's field editor (note: how many). |
sent |
It was sent (note: signers, and the date it lapses). |
emailed / email_failed |
A signer's invitation was sent, or could not be delivered. |
viewed |
A signer opened their link. |
consented |
A signer agreed to sign electronically (note: the consent version). |
signed |
A signer signed (note: who, and the name they typed). |
declined |
A signer declined (note: their reason). |
reissued |
You resent the link; the old one stopped working. |
sealed |
The last signer signed, and the signed PDF and its sigil were made. |
copy_emailed / copy_email_failed |
The finished copy was emailed to a recipient or to you. |
voided |
You voided it (note: your reason). |
Following progress
There are no webhooks yet. Poll Get a pact, or list with status=sent, every few minutes, and stop when a pact's status is no longer sent. Signing usually takes hours or days, so there is no need to poll quickly.
Custom domains
With a verified custom domain, pass domain_host when creating a pact. Its signing page and emails then carry your domain, name and logo instead of Sigil's. List domains shows which you can use.