WaiverSign API: Handling Callbacks
When you create a signing session with a callbackUrl, WaiverSign sends a POST request to that URL each time a participant completes signing. This lets your application receive signed waiver data in real time without needing to check back or poll the API.
Setting Up a Callback
Include a callbackUrl when you create a signing session:
json
{
"documentIdList": ["5afba2484fa1da256ed15c7c"],
"personInfoList": [{"isAdult": true}],
"callbackUrl": "https://www.yoursite.com/api/waiver-callback"
}
The callback URL must be a server-side endpoint capable of receiving HTTP POST requests. A static page or client-side JavaScript will not work.
Callback Payload
When signing is complete, WaiverSign POSTs a JSON payload to your callback URL containing the signer's submitted data and details about each signed document.
json
{
"personInfoList": [
{
"firstName": "Jennifer",
"lastName": "Highland",
"nickName": "Jenn",
"middleName": "Rose",
"title": "Mrs.",
"gender": "FEMALE",
"email": "jennifer@example.com",
"birthDate": "03/09/1992",
"streetAddress": "123 Main Street",
"city": "Salt Lake City",
"postalCode": "84123",
"organization": "Jenn's Fresh Market",
"entityId": "5c4e9e7f4a67ce551cccb425",
"checkId": "0fee875b-3dda-4578-9caf-b9d9d26eb780",
"isGuardian": true,
"sendEmail": false,
"createdBy": "jennifer highland"
}
],
"documentList": [
{
"name": "Liability Waiver",
"signedDate": "2025-01-22T00:15:45.120Z",
"id": "6t0a09426a110800120b9b65",
"signedWaiverId": "a7d7tt39-347b-4mqd-9065-d92ct121bf2c",
"signedWaiverKey": ";uV1PC6!0N"
}
],
"callbackUrl": "https://www.yoursite.com/api/waiver-callback"
}
Person Fields
The personInfoList in the callback includes all the data the signer submitted on the form, plus several fields generated by WaiverSign:
Field | Description |
|---|---|
entityId | WaiverSign's unique identifier for this signer |
checkId | Unique identifier for this specific signing instance |
isGuardian | |
sendEmail | Whether an email notification was sent to this signer |
createdBy | Display name of the person who signed |
All standard person fields (name, email, phone, address, custom fields, identification) are also returned with whatever values the signer entered on the form.
Document Fields
Each entry in documentList represents one signed document:
Field | Description |
|---|---|
name | The document title as configured in WaiverSign |
signedDate | UTC timestamp of when the document was signed (e.g., |
id | The original document template ID |
signedWaiverId | Unique ID for this specific signed copy of the waiver |
signedWaiverKey | Key associated with the signed waiver |
Things to Know
- One callback per signing session. If the session includes multiple documents, you receive a single callback with all signed documents listed in the
documentListarray. - The callbackUrl is included in the payload. This is useful if your application uses different callback URLs for different session types and needs to confirm which one was used.
- Store the signedWaiverId. If you need to reference a specific signed waiver later, the
signedWaiverIdis the unique identifier for that signed copy. - Person data reflects what was submitted, not what was pre-populated. If the signer changed a pre-filled value on the form, the callback contains the updated value.
Updated on: 06/24/2026
Thank you!
