Integrations

API: Signature Requests

Send waiver signing requests by email and track their status via the WaiverChaser REST API.

Signature requests let you send a signing link to a specific person by email. These endpoints let you create and track them. All require a valid Bearer token: listing requires packets:read, sending requires requests:write.

GET /v1/signature-requests

Returns a list of signature requests for your organization, ordered by most recently sent.

Required scope: packets:read

Query parameters:

Parameter Type Description
status string Filter by status: pending, completed, or cancelled.
limit integer Max results to return. Default 50, max 200.

Example request:

curl "https://waiverchaser.com/api/v1/signature-requests?status=pending" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

Example response:

{
  "data": [
    {
      "id": "req_abc001",
      "waiverId": "waiver_111",
      "locationId": null,
      "signaturePacketId": null,
      "recipientEmail": "[email protected]",
      "status": "pending",
      "sentAt": "2026-03-20T10:00:00.000Z",
      "completedAt": null,
      "createdAt": "2026-03-20T10:00:00.000Z"
    }
  ],
  "total": 1
}

POST /v1/signature-requests

Sends a waiver signing link to a recipient by email.

Required scope: requests:write

Plan requirement: Pro or Enterprise plan only.

Request body (JSON):

Field Type Required Description
waiverId string Yes The waiver to send. Must belong to your organization.
recipientEmail string Yes The email address to send the signing link to.
locationId string No Use this location's branding in the email.

Reuse behavior: If the recipient already has a pending request for the same waiver, the existing signing link is reused and a fresh email is sent rather than creating a duplicate. If they've already completed the waiver, the request returns 409 Conflict.

Example request:

curl -X POST https://waiverchaser.com/api/v1/signature-requests \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "waiverId": "waiver_111",
    "recipientEmail": "[email protected]"
  }'

Example response (201 Created):

{
  "id": "req_abc001",
  "waiverId": "waiver_111",
  "recipientEmail": "[email protected]",
  "signingUrl": "https://waiverchaser.com/sign/abc123token",
  "reused": false
}

When a pending request was reused, the response returns 200 and "reused": true.

Error responses:

Status Reason
400 Missing or invalid waiverId or recipientEmail
403 Plan doesn't include signing requests, or missing requests:write scope
404 Waiver not found
409 Recipient has already completed this waiver

GET /v1/signature-requests/:id

Returns a single signature request with its current status.

Required scope: packets:read

Path parameter: id (the signature request ID)

Example request:

curl https://waiverchaser.com/api/v1/signature-requests/req_abc001 \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

Example response:

{
  "id": "req_abc001",
  "waiverId": "waiver_111",
  "locationId": null,
  "signaturePacketId": "pkt_abc001",
  "recipientEmail": "[email protected]",
  "status": "completed",
  "sentAt": "2026-03-20T10:00:00.000Z",
  "completedAt": "2026-03-20T11:30:00.000Z",
  "createdAt": "2026-03-20T10:00:00.000Z"
}

Returns 404 if the request doesn't exist or doesn't belong to your organization.