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.

EventWhen it fires
contract.createdA new contract is created (from a template or uploaded document).
contract.sentA contract is sent out for signature.
contract.viewedA recipient opens the contract for the first time. Sent once per recipient.
contract.signedA recipient signs the contract. Sent once per signer; contract.completed follows when everyone has signed.
contract.completedEvery signer has signed and the contract is complete.
contract.voidedA 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"
  }
}
© 2026 Centerfy AI. All rights reserved.