Submit a signed waiver
/v1/waiversSigns a waiver: values is validated against the template's active version, signature and photo images are stored, the record is linked into the organization's hash chain, and the PDF render is queued. which is why pdfStatus always comes back pending and the document only appears at GET /v1/waivers/{id}/pdf once it is ready. Send an Idempotency-Key header (or idempotencyKey in the body) to make a retry safe: a repeat of the same key returns the waiver the first call created instead of signing a second one. Signing against a closed event is refused with 409. closing an event stops every one of its signing links, this one included.
Authentication
Send an organization-scoped API key in the Authorization header. Keep credentials on your server.
waivers:writeRequest body
Use application/json. Replace example identifiers and values with data from your organization.
string · uuidrequiredobjectrequiredstringAllowed values: "api", "web", "kiosk"
stringLength: 1 to 120 characters.
string · uuidstring · uuidarrayResponses
201 Response schema
application/json
string · uuidrequiredstring | nullrequiredstring · uuidrequiredintegerrequiredRange: -9007199254740991 to 9007199254740991.
stringrequiredAllowed values: "pending"
View complete response schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
},
"expiresAt": {
"anyOf": [
{
"type": "string",
"format": "date-time"
},
{
"type": "null"
}
]
},
"participantId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
},
"flags": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"pdfStatus": {
"type": "string",
"enum": [
"pending"
]
}
},
"required": [
"id",
"expiresAt",
"participantId",
"flags",
"pdfStatus"
],
"additionalProperties": false
}401 Response schema
application/json
objectrequiredView nested fields
stringrequiredstringrequiredstringrequiredvalueView complete response schema
{
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"requestId": {
"type": "string"
},
"details": {}
},
"required": [
"code",
"message",
"requestId"
],
"additionalProperties": false
}
},
"required": [
"error"
],
"additionalProperties": false
}403 Response schema
application/json
objectrequiredView nested fields
stringrequiredstringrequiredstringrequiredvalueView complete response schema
{
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"requestId": {
"type": "string"
},
"details": {}
},
"required": [
"code",
"message",
"requestId"
],
"additionalProperties": false
}
},
"required": [
"error"
],
"additionalProperties": false
}404 Response schema
application/json
objectrequiredView nested fields
stringrequiredstringrequiredstringrequiredvalueView complete response schema
{
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"requestId": {
"type": "string"
},
"details": {}
},
"required": [
"code",
"message",
"requestId"
],
"additionalProperties": false
}
},
"required": [
"error"
],
"additionalProperties": false
}409 Response schema
application/json
objectrequiredView nested fields
stringrequiredstringrequiredstringrequiredvalueView complete response schema
{
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"requestId": {
"type": "string"
},
"details": {}
},
"required": [
"code",
"message",
"requestId"
],
"additionalProperties": false
}
},
"required": [
"error"
],
"additionalProperties": false
}422 Response schema
application/json
objectrequiredView nested fields
stringrequiredstringrequiredstringrequiredvalueView complete response schema
{
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"requestId": {
"type": "string"
},
"details": {}
},
"required": [
"code",
"message",
"requestId"
],
"additionalProperties": false
}
},
"required": [
"error"
],
"additionalProperties": false
}429 Response schema
application/json
objectrequiredView nested fields
stringrequiredstringrequiredstringrequiredvalueView complete response schema
{
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"requestId": {
"type": "string"
},
"details": {}
},
"required": [
"code",
"message",
"requestId"
],
"additionalProperties": false
}
},
"required": [
"error"
],
"additionalProperties": false
}Authentication and validation failures use the shared error envelope. Save the request ID when diagnosing a failed call.
Build the surrounding workflow
Read the waiver records guide for ordering, verification and recovery. Browse the other waiver records endpoints when you need the next operation.