Contracts events
Outbound webhook events for contracts: when each one fires and the exact JSON payload Centerfy POSTs to your URL.
6 events. Subscribe to them in Settings → API & Webhooks → Webhooks or with the outbound webhook subscription endpoints. Delivery, authentication headers and the common envelope are described in the webhooks overview.
| Event | When it fires |
|---|---|
contract.created | A new contract is created (from a template or uploaded document). |
contract.sent | A contract is sent out for signature. |
contract.viewed | A recipient opens the contract for the first time. Sent once per recipient. |
contract.signed | A recipient signs the contract. Sent once per signer; contract.completed follows when everyone has signed. |
contract.completed | Every signer has signed and the contract is complete. |
contract.voided | A contract is voided and can no longer be signed. |
contract.created
Contract created. A new contract is created (from a template or uploaded document).
{
"event": "contract.created",
"occurred_at": "2026-06-20T14:30:00.000Z",
"sub_account_id": "<sub account uuid>",
"organization_id": "<organization uuid>",
"contract": {
"id": "<uuid>",
"title": "Service agreement",
"contract_number": "CT-1042",
"status": "draft",
"contact_id": "<uuid>",
"template_id": "<uuid>",
"sent_at": null,
"completed_at": null,
"declined_at": null,
"voided_at": null,
"expires_at": null,
"created_at": "2026-06-20T13:55:00.000Z",
"updated_at": "2026-06-20T14:30:00.000Z"
}
}contract.sent
Contract sent. A contract is sent out for signature.
{
"event": "contract.sent",
"occurred_at": "2026-06-20T14:30:00.000Z",
"sub_account_id": "<sub account uuid>",
"organization_id": "<organization uuid>",
"contract": {
"id": "<uuid>",
"title": "Service agreement",
"contract_number": "CT-1042",
"status": "sent",
"contact_id": "<uuid>",
"template_id": "<uuid>",
"sent_at": "2026-06-20T14:00:00.000Z",
"completed_at": null,
"declined_at": null,
"voided_at": null,
"expires_at": null,
"created_at": "2026-06-20T13:55:00.000Z",
"updated_at": "2026-06-20T14:30:00.000Z"
}
}contract.viewed
Contract viewed. A recipient opens the contract for the first time. Sent once per recipient.
{
"event": "contract.viewed",
"occurred_at": "2026-06-20T14:30:00.000Z",
"sub_account_id": "<sub account uuid>",
"organization_id": "<organization uuid>",
"recipient": {
"id": "<uuid>",
"name": "Jane Doe",
"email": "[email protected]",
"role": "signer",
"signing_order": 1,
"status": "viewed",
"viewed_at": "2026-06-20T14:10:00.000Z",
"signed_at": null
},
"contract": {
"id": "<uuid>",
"title": "Service agreement",
"contract_number": "CT-1042",
"status": "sent",
"contact_id": "<uuid>",
"template_id": "<uuid>",
"sent_at": "2026-06-20T14:00:00.000Z",
"completed_at": null,
"declined_at": null,
"voided_at": null,
"expires_at": null,
"created_at": "2026-06-20T13:55:00.000Z",
"updated_at": "2026-06-20T14:30:00.000Z"
}
}contract.signed
Contract signed. A recipient signs the contract. Sent once per signer; contract.completed follows when everyone has signed.
{
"event": "contract.signed",
"occurred_at": "2026-06-20T14:30:00.000Z",
"sub_account_id": "<sub account uuid>",
"organization_id": "<organization uuid>",
"recipient": {
"id": "<uuid>",
"name": "Jane Doe",
"email": "[email protected]",
"role": "signer",
"signing_order": 1,
"status": "signed",
"viewed_at": "2026-06-20T14:10:00.000Z",
"signed_at": "2026-06-20T14:30:00.000Z"
},
"contract": {
"id": "<uuid>",
"title": "Service agreement",
"contract_number": "CT-1042",
"status": "sent",
"contact_id": "<uuid>",
"template_id": "<uuid>",
"sent_at": "2026-06-20T14:00:00.000Z",
"completed_at": null,
"declined_at": null,
"voided_at": null,
"expires_at": null,
"created_at": "2026-06-20T13:55:00.000Z",
"updated_at": "2026-06-20T14:30:00.000Z"
}
}contract.completed
Contract completed. Every signer has signed and the contract is complete.
{
"event": "contract.completed",
"occurred_at": "2026-06-20T14:30:00.000Z",
"sub_account_id": "<sub account uuid>",
"organization_id": "<organization uuid>",
"contract": {
"id": "<uuid>",
"title": "Service agreement",
"contract_number": "CT-1042",
"status": "completed",
"contact_id": "<uuid>",
"template_id": "<uuid>",
"sent_at": "2026-06-20T14:00:00.000Z",
"completed_at": "2026-06-20T14:30:00.000Z",
"declined_at": null,
"voided_at": null,
"expires_at": null,
"created_at": "2026-06-20T13:55:00.000Z",
"updated_at": "2026-06-20T14:30:00.000Z"
}
}contract.voided
Contract voided. A contract is voided and can no longer be signed.
{
"event": "contract.voided",
"occurred_at": "2026-06-20T14:30:00.000Z",
"sub_account_id": "<sub account uuid>",
"organization_id": "<organization uuid>",
"contract": {
"id": "<uuid>",
"title": "Service agreement",
"contract_number": "CT-1042",
"status": "voided",
"contact_id": "<uuid>",
"template_id": "<uuid>",
"sent_at": "2026-06-20T14:00:00.000Z",
"completed_at": null,
"declined_at": null,
"voided_at": "2026-06-20T14:30:00.000Z",
"expires_at": null,
"created_at": "2026-06-20T13:55:00.000Z",
"updated_at": "2026-06-20T14:30:00.000Z"
}
}