Event Data

Events that are posted to your webhook URL will be sent as JSON. Below is an example of the data that will be sent.

The object data below is the same that you would receive when calling the Get Document or Get Template API endpoint.

{
    "event": {
        "hash": "102bb628c79c4cca904482add21ad8d9a5dff05f137788156457hubs8afbd83d",
        "time": 1689332249,
        "type": "document_viewed",
          
          // signer related to the event only applies to following events:
          // document_viewed, document_declined, document_signed
         "related_signer": {
             "email": "[email protected]",
             "name": "Christian Jordan"
         }
    },
    "data": {
        "object": {
            "id": "a692e1ce-9929-4541-adc7-61932bab39d3",
            "apply_signing_order": false,
            "archived": false,
            "copied_contacts": [],
            "custom_requester_name": null,
            "custom_requester_email": null,
            "created_at": "2022-08-19T00:21:48Z",
            "decline_redirect_url": null,
            "embedded": false,
            "embedded_edit_url": "",
            "expires_in": null,
            "fields": [
                [
                    {
                        "api_id": "Signature_1",
                        "page": 1,
                        "required": true,
                        "type": "Signature",
                        "value": "",
                        "width": "112.0",
                        "height": "32.0",
                        "x": 375,
                        "y": 206.5,
                        "recipient_id": "1"
                    }
                ]
            ],
            "message": "<p>Hey there,</p><p>Please review and complete this document. You can click on the document below to get started.</p>",
            "metadata": {},
            "name": "Example contract",
            "recipients": [
                {
                    "id": "1",
                    "email": "[email protected]",
                    "name": "Christian Jordan"
                }
            ],
            "redirect_url": null,
            "reminders": null,
            "requester_email_address": "[email protected]",
            "status": "Sent",
            "subject": "Please complete this example agreement",
            "test_mode": false,
            "updated_at": "2022-08-19T00:22:29Z",
            "files": [
                {
                    "name": "example-contract.docx",
                    "pages_number": 1
                }
            ]
        },
        "account_id": "7c98753-0acc-46ab-84b0-e96d085983e0"
    }
}

SMS delivery events

The example below shows an SMS delivery event (document_sms_failed). Unlike the standard payload above, the event carries related_recipient instead of related_signer, and each recipient whose delivery method includes SMS carries a nested sms object.

{
  "event": {
    "hash": "102bb628c79c4cca904482add21ad8d9a5dff05f13778...",
    "time": 1689332249,
    "type": "document_sms_failed",
    "related_recipient": {
      "id": "1",
      "name": "Jane Doe",
      "email": "[email protected]",
      "phone_number_masked": "+1 ******1234",
      "delivery_method": "email_and_sms"
    }
  },
  "data": {
    "object": {
      "id": "a692e1ce-9929-4541-adc7-61932bab39d3",
      "status": "Sent",
      "name": "Example contract",
      "recipients": [
        {
          "id": "1",
          "email": "[email protected]",
          "name": "Jane Doe",
          "delivery_method": "email_and_sms",
          "sms": {
            "phone_number_masked": "+1 ******1234",
            "send_sms": false,
            "send_sms_delay": 0,
            "delivery_status": "failed",
            "message_type": "invite",
            "failed": true,
            "failed_details": "SMS delivery failed (provider error 30003)"
          }
        }
      ]
    },
    "account_id": "7c98753-0acc-46ab-84b0-e96d085983e0"
  }
}

Notes: phone_number_masked shows the dialing code and last four digits with a fixed-width mask; the full number is never sent. delivery_status is one of queued, sent, failed, suppressed. message_type is one of invite, reminder, completed. Email-only recipients keep the existing shape (no sms key). For document_sms_opted_out, type is document_sms_opted_out and sms.delivery_status is suppressed.