{"openapi":"3.0.3","info":{"title":"BuiltSign API","description":"\nCreate signing requests, send them from templates, follow their progress and\nreceive a webhook for every signing event.\n\n**Authentication.** Send your API key in the `X-API-Key` header. Keys are\ncreated under Settings → API keys (Enterprise plan).\n\n**Sandbox keys** create requests marked `sandbox`: invitations and reminders\nare not sent and nothing counts toward your quota. Webhooks still fire.\n\n**Errors** always look like `{\"error\": {\"code\": \"...\", \"message\": \"...\",\n\"request_id\": \"...\"}}`. Quote the `request_id` when you contact support.\n\n**Idempotency.** Operations that create or send accept an `Idempotency-Key`\nheader. A retry with the same key returns the first response instead of acting\ntwice.\n\n**Rate limit.** 60 requests per minute per key by default.\n","version":"1.0.0"},"paths":{"/v1/signing-requests":{"get":{"tags":["Signing requests"],"summary":"List signing requests","description":"List all signing requests for your organisation, newest first.\n\n**Filters:**\n- `status` — `draft`, `pending`, `completed`, `cancelled`, `expired`\n- `created_after` / `created_before` — ISO 8601 timestamps\n- `signer_email` — exact match on a signer's email address\n- `sort` (`created_at`, `updated_at`, `expires_at`) and `order` (`asc`, `desc`)\n\n**Requires scope:** `read`","operationId":"list_signing_requests","parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","title":"Status","nullable":true}},{"name":"created_after","in":"query","required":false,"schema":{"type":"string","format":"date-time","description":"Only requests created after this ISO 8601 timestamp","title":"Created After","nullable":true},"description":"Only requests created after this ISO 8601 timestamp"},{"name":"created_before","in":"query","required":false,"schema":{"type":"string","format":"date-time","description":"Only requests created before this ISO 8601 timestamp","title":"Created Before","nullable":true},"description":"Only requests created before this ISO 8601 timestamp"},{"name":"signer_email","in":"query","required":false,"schema":{"type":"string","maxLength":255,"description":"Filter by signer email (exact match)","title":"Signer Email","nullable":true},"description":"Filter by signer email (exact match)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"sort","in":"query","required":false,"schema":{"enum":["created_at","updated_at","expires_at"],"type":"string","default":"created_at","title":"Sort"}},{"name":"order","in":"query","required":false,"schema":{"enum":["asc","desc"],"type":"string","default":"desc","title":"Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SigningRequestListResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["Signing requests"],"summary":"Create a signing request","description":"Create a new signing request and optionally send it immediately.\n\n**Steps:**\n1. Upload a document via the dashboard or API to get a `document_id`\n2. Call this endpoint with the document ID and signer details\n3. If `auto_send: true`, invite emails are sent immediately\n4. Poll `GET /api/v1/events` or use webhooks to track progress\n\n**Signing order:**\n- `parallel` — all signers receive the invite at once\n- `sequential` — signer #2 is notified only after signer #1 has signed\n\n**Requires scope:** `write`","operationId":"create_signing_request","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":255},"description":"Any unique string. A retry with the same key returns the first response."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiCreateSigningRequest"},"example":{"document_id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","signers":[{"name":"Jan Janssen","email":"jan@bedrijf.nl","order":1},{"name":"Maria Pietersen","email":"maria@bedrijf.nl","order":2}],"message":"Graag het contract ondertekenen voor akkoord.","signing_order":"sequential","expires_in_days":7,"auto_send":true}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SigningRequestRead"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/signing-requests/{request_id}":{"get":{"tags":["Signing requests"],"summary":"Get a signing request","description":"Fetch a single signing request by ID, including all signers and their current status.\n\n**Requires scope:** `read`","operationId":"get_signing_request","parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Request Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SigningRequestRead"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/signing-requests/{request_id}/events":{"get":{"tags":["Signing requests"],"summary":"Get signing events","description":"Get events for a signing request.","operationId":"get_signing_events","parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Request Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SigningEventRead"},"title":"Response Get Signing Events Api V1 Signing Requests  Request Id  Events Get"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/signing-requests/{request_id}/send":{"post":{"tags":["Signing requests"],"summary":"Send signing request","description":"Send a draft signing request to its signers.","operationId":"send_signing_request","parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Request Id"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":255},"description":"Any unique string. A retry with the same key returns the first response."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SigningRequestRead"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/signing-requests/{request_id}/cancel":{"post":{"tags":["Signing requests"],"summary":"Cancel signing request","description":"Cancel a pending signing request.","operationId":"cancel_signing_request","parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Request Id"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":255},"description":"Any unique string. A retry with the same key returns the first response."}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiCancelRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiCancelResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/signing-requests/{request_id}/remind":{"post":{"tags":["Signing requests"],"summary":"Remind signers","description":"Send a reminder email to all pending signers.\nFor sequential requests, only the current active signer is reminded.\nNo-op for sandbox requests (no emails sent, event still logged).","operationId":"remind_signers","parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Request Id"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":255},"description":"Any unique string. A retry with the same key returns the first response."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiRemindResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/signing-requests/{request_id}/reactivate":{"post":{"tags":["Signing requests"],"summary":"Reactivate signing request","description":"Reactivate an expired signing request with a fresh expiry date.\nThe request is set back to draft — call /send again to notify signers.","operationId":"reactivate_signing_request","parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Request Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiReactivateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SigningRequestRead"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/signing-requests/{request_id}/embedded-url":{"post":{"tags":["Signing requests"],"summary":"Create embedded url","description":"Generate embedded signing URLs for loading inside an iframe.\n\nThe `allowed_origin` must be registered in your organisation's embed origins whitelist\n(Settings → Integrations). Each URL is valid for 60 minutes.","operationId":"create_embedded_url","parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Request Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiEmbeddedUrlRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiEmbeddedUrlResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/signing-requests/{request_id}/fields":{"post":{"tags":["Signing requests"],"summary":"Add signature fields","description":"Place signature fields on a signing request.\n\nAll fields are created in one call — replaces any existing fields.\nPositions are percentage-based (0–100) relative to the page dimensions.","operationId":"add_signature_fields","parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Request Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkSignatureFieldCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SignatureFieldRead"},"title":"Response Add Signature Fields Api V1 Signing Requests  Request Id  Fields Post"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/signing-requests/{request_id}/download":{"get":{"tags":["Signing requests"],"summary":"Download signed pdf","description":"Get a presigned download URL for the completed signed PDF.\nThe URL is valid for 24 hours. Only available when status is `completed`.","operationId":"download_signed_pdf","parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Request Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DownloadResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/documents":{"get":{"tags":["Documents"],"summary":"List documents","description":"List documents for the organization.","operationId":"list_documents","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiDocumentListResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/documents/upload":{"post":{"tags":["Documents"],"summary":"Upload document","description":"Upload a PDF document via API key.\nReturns document_id for use in POST /v1/signing-requests.\nMax file size: 50 MB.","operationId":"upload_document","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":255},"description":"Any unique string. A retry with the same key returns the first response."}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_document_api_v1_documents_upload_post"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUploadResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/templates":{"get":{"tags":["Templates"],"summary":"List templates","description":"List templates for the organization.","operationId":"list_templates","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SigningTemplateListResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["Templates"],"summary":"Create template","description":"Create a new signing template.","operationId":"create_template","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":255},"description":"Any unique string. A retry with the same key returns the first response."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SigningTemplateCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SigningTemplateRead"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/templates/{template_id}":{"get":{"tags":["Templates"],"summary":"Get template","description":"Get a template by ID.","operationId":"get_template","parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Template Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SigningTemplateRead"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"tags":["Templates"],"summary":"Update template","description":"Update a template.","operationId":"update_template","parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Template Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SigningTemplateUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SigningTemplateRead"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Templates"],"summary":"Delete template","description":"Delete a template.","operationId":"delete_template","parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Template Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/templates/{template_id}/send":{"post":{"tags":["Templates"],"summary":"Send from template","description":"Create and send a signing request from a template.\n\nMap your signers to template roles by name (case-insensitive).\nOptionally provide `variables` to substitute {{key}} placeholders in field values.\nSet `auto_send: false` to create a draft you can still modify before sending.\n\nSupports `Idempotency-Key`: retrying with the same key returns the original\nrequest instead of creating and sending a duplicate.","operationId":"send_from_template","parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Template Id"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":255},"description":"Any unique string. A retry with the same key returns the first response."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTemplateSendRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SigningRequestRead"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/events":{"get":{"tags":["Events"],"summary":"List signing events","description":"Poll for signing events across your organisation. Useful for building integrations\nthat react to document activity without using webhooks.\n\n**Event types:**\n| Type | When |\n|---|---|\n| `signing_request.created` | Request created |\n| `signing_request.sent` | Invitations sent |\n| `signing_request.reminded` | Reminder sent |\n| `signing_request.completed` | All signatures collected |\n| `signing_request.cancelled` | Request cancelled |\n| `signing_request.expired` | Request expired |\n| `signer.viewed` | Signer opened the signing link |\n| `signer.signed` | A signer signed |\n| `signer.declined` | A signer declined |\n| `signer.withdrawn` | A signer withdrew their signature |\n| `signer.reviewed` | Identity check flagged for manual review |\n| `identity.approved` | Identity verification passed |\n| `identity.rejected` | Identity verification failed |\n| `document.signed` | Final signed PDF is available |\n\nOther audit-trail entries appear as `signing_event.<type>` (for example\n`signing_event.downloaded`) and can be filtered by that same name.\n`document.uploaded` and `member.invited` are webhook-only and do not appear here.\n\n**Paging:** newest first. Pass `after_id` (the `last_id` of the previous page)\nto fetch the next, older page. Events that share a timestamp are never skipped.\n\n**Requires scope:** `read`","operationId":"list_events","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"event_type","in":"query","required":false,"schema":{"type":"string","description":"Filter by event type, e.g. 'signer.signed'","title":"Event Type","nullable":true},"description":"Filter by event type, e.g. 'signer.signed'"},{"name":"signing_request_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","title":"Signing Request Id","nullable":true}},{"name":"after","in":"query","required":false,"schema":{"type":"string","format":"date-time","description":"Only events after this ISO 8601 timestamp","title":"After","nullable":true},"description":"Only events after this ISO 8601 timestamp"},{"name":"after_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"Cursor: only events older than the event with this ID (for stable pagination)","title":"After Id","nullable":true},"description":"Cursor: only events older than the event with this ID (for stable pagination)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiEventsResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/bulk-send":{"post":{"tags":["Bulk send"],"summary":"Bulk send","description":"Send the same template to multiple recipients in a single API call.\nEach recipient gets an independent signing request.\nReturns immediately with a `bulk_job_id` you can poll via GET /bulk-jobs/{id}.\n\nSupports `Idempotency-Key`: retrying with the same key returns the original\njob instead of sending the whole batch again.","operationId":"bulk_send","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":255},"description":"Any unique string. A retry with the same key returns the first response."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiBulkSendRequest"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiBulkSendResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/bulk-jobs/{bulk_job_id}":{"get":{"tags":["Bulk send"],"summary":"Get bulk job","description":"Get the status and results of a bulk send job.","operationId":"get_bulk_job","parameters":[{"name":"bulk_job_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Bulk Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiBulkJobResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/webhooks":{"get":{"tags":["Webhooks"],"summary":"List webhooks","description":"List all webhooks configured for the organisation.","operationId":"list_webhooks","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiWebhookRead"},"title":"Response List Webhooks Api V1 Webhooks Get"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["Webhooks"],"summary":"Create webhook","description":"Create a webhook endpoint to receive signing events.\nThe `secret` field is returned only once — store it securely.","operationId":"create_webhook","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiWebhookWithSecret"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/webhooks/{webhook_id}":{"get":{"tags":["Webhooks"],"summary":"Get webhook","description":"Get a single webhook by ID.","operationId":"get_webhook","parameters":[{"name":"webhook_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Webhook Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiWebhookRead"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"tags":["Webhooks"],"summary":"Update webhook","description":"Update a webhook's name, URL, subscribed events, or status.\nSet `status` to `\"paused\"` to temporarily stop deliveries.","operationId":"update_webhook","parameters":[{"name":"webhook_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Webhook Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiWebhookRead"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Webhooks"],"summary":"Delete webhook","description":"Delete a webhook endpoint. All delivery history is also removed.","operationId":"delete_webhook","parameters":[{"name":"webhook_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Webhook Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/webhooks/{webhook_id}/regenerate-secret":{"post":{"tags":["Webhooks"],"summary":"Regenerate webhook secret","description":"Rotate the webhook signing secret. The new secret is returned once — store it immediately.","operationId":"regenerate_webhook_secret","parameters":[{"name":"webhook_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Webhook Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiWebhookWithSecret"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/webhooks/{webhook_id}/deliveries":{"get":{"tags":["Webhooks"],"summary":"List webhook deliveries","description":"Get delivery history for a webhook endpoint.\nUse `success=false` to filter only failed attempts.","operationId":"list_webhook_deliveries","parameters":[{"name":"webhook_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Webhook Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"success","in":"query","required":false,"schema":{"type":"boolean","title":"Success","nullable":true}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiDeliveriesResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/usage":{"get":{"tags":["Usage"],"summary":"Get usage & quota","description":"Return current-period usage and plan limits for the authenticated organisation.","operationId":"get_usage","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUsageResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/contacts":{"get":{"tags":["Contacts"],"summary":"List contacts","description":"List saved contacts for the authenticated organisation.","operationId":"list_contacts","parameters":[{"name":"search","in":"query","required":false,"schema":{"type":"string","maxLength":100,"title":"Search","nullable":true}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactListResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["Contacts"],"summary":"Create or update a contact","description":"Create a contact, or update name if the email already exists in the organisation.","operationId":"create_contact","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactRead"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/contacts/{contact_id}":{"delete":{"tags":["Contacts"],"summary":"Delete a contact","description":"Delete a contact by ID.","operationId":"delete_contact","parameters":[{"name":"contact_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Contact Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"ApiBulkJobItem":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"status":{"type":"string","title":"Status"},"signing_request_id":{"type":"string","format":"uuid","title":"Signing Request Id","nullable":true},"recipient_email":{"type":"string","title":"Recipient Email","nullable":true},"error_message":{"type":"string","title":"Error Message","nullable":true}},"type":"object","required":["id","status"],"title":"ApiBulkJobItem"},"ApiBulkJobResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"template_id":{"type":"string","format":"uuid","title":"Template Id","nullable":true},"status":{"type":"string","title":"Status"},"total_count":{"type":"integer","title":"Total Count"},"success_count":{"type":"integer","title":"Success Count"},"failure_count":{"type":"integer","title":"Failure Count"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"completed_at":{"type":"string","format":"date-time","title":"Completed At","nullable":true},"items":{"items":{"$ref":"#/components/schemas/ApiBulkJobItem"},"type":"array","title":"Items"}},"type":"object","required":["id","status","total_count","success_count","failure_count","created_at","items"],"title":"ApiBulkJobResponse"},"ApiBulkRecipient":{"properties":{"signers":{"items":{"$ref":"#/components/schemas/ApiBulkSigner"},"type":"array","minItems":1,"title":"Signers"},"variables":{"additionalProperties":{"type":"string"},"type":"object","title":"Variables"},"message":{"type":"string","maxLength":1000,"title":"Message","nullable":true}},"type":"object","required":["signers"],"title":"ApiBulkRecipient"},"ApiBulkSendRequest":{"properties":{"template_id":{"type":"string","format":"uuid","title":"Template Id"},"recipients":{"items":{"$ref":"#/components/schemas/ApiBulkRecipient"},"type":"array","maxItems":500,"minItems":1,"title":"Recipients"},"expires_in_days":{"type":"integer","maximum":90.0,"minimum":1.0,"title":"Expires In Days","nullable":true},"auto_send":{"type":"boolean","title":"Auto Send","default":true}},"type":"object","required":["template_id","recipients"],"title":"ApiBulkSendRequest"},"ApiBulkSendResponse":{"properties":{"bulk_job_id":{"type":"string","format":"uuid","title":"Bulk Job Id"},"total_count":{"type":"integer","title":"Total Count"},"status":{"type":"string","title":"Status"}},"type":"object","required":["bulk_job_id","total_count","status"],"title":"ApiBulkSendResponse"},"ApiBulkSigner":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"},"role":{"type":"string","maxLength":100,"minLength":1,"title":"Role"},"phone":{"type":"string","title":"Phone","nullable":true}},"type":"object","required":["email","name","role"],"title":"ApiBulkSigner"},"ApiCancelRequest":{"properties":{"reason":{"type":"string","maxLength":500,"title":"Reason","nullable":true}},"type":"object","title":"ApiCancelRequest"},"ApiCancelResponse":{"properties":{"status":{"type":"string","title":"Status"},"id":{"type":"string","format":"uuid","title":"Id"}},"type":"object","required":["status","id"],"title":"ApiCancelResponse"},"ApiCreateSigningRequest":{"properties":{"document_id":{"type":"string","format":"uuid","title":"Document Id"},"signers":{"items":{"$ref":"#/components/schemas/ApiSignerInput"},"type":"array","title":"Signers"},"message":{"type":"string","title":"Message","nullable":true},"signing_order":{"type":"string","title":"Signing Order","default":"parallel"},"expires_in_days":{"type":"integer","title":"Expires In Days","default":7},"auto_send":{"type":"boolean","title":"Auto Send","default":false},"phone_verification_required":{"type":"boolean","title":"Phone Verification Required","default":false},"identity_verification_required":{"type":"boolean","title":"Identity Verification Required","default":false}},"type":"object","required":["document_id","signers"],"title":"ApiCreateSigningRequest"},"ApiDeliveriesResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ApiDeliveryRead"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","total"],"title":"ApiDeliveriesResponse"},"ApiDeliveryRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"event_type":{"type":"string","title":"Event Type"},"success":{"type":"boolean","title":"Success"},"response_status":{"type":"integer","title":"Response Status","nullable":true},"response_time_ms":{"type":"integer","title":"Response Time Ms","nullable":true},"error_message":{"type":"string","title":"Error Message","nullable":true},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","event_type","success","created_at"],"title":"ApiDeliveryRead"},"ApiDocumentListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ApiDocumentRead"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","total"],"title":"ApiDocumentListResponse"},"ApiDocumentRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"file_size":{"type":"integer","title":"File Size"},"page_count":{"type":"integer","title":"Page Count","nullable":true},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","title":"Created At","nullable":true}},"type":"object","required":["id","name","file_size","status"],"title":"ApiDocumentRead"},"ApiEmbeddedSignerUrl":{"properties":{"signer_id":{"type":"string","title":"Signer Id"},"name":{"type":"string","title":"Name"},"email":{"type":"string","title":"Email"},"embedded_url":{"type":"string","title":"Embedded Url"}},"type":"object","required":["signer_id","name","email","embedded_url"],"title":"ApiEmbeddedSignerUrl"},"ApiEmbeddedUrlRequest":{"properties":{"allowed_origin":{"type":"string","maxLength":500,"minLength":7,"title":"Allowed Origin","description":"The origin that will embed the signing page, e.g. \"https://yourapp.com\"."}},"type":"object","required":["allowed_origin"],"title":"ApiEmbeddedUrlRequest"},"ApiEmbeddedUrlResponse":{"properties":{"signers":{"items":{"$ref":"#/components/schemas/ApiEmbeddedSignerUrl"},"type":"array","title":"Signers"},"allowed_origin":{"type":"string","title":"Allowed Origin"},"expires_in_seconds":{"type":"integer","title":"Expires In Seconds","default":3600}},"type":"object","required":["signers","allowed_origin"],"title":"ApiEmbeddedUrlResponse"},"ApiEventRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"event_type":{"type":"string","title":"Event Type"},"signing_request_id":{"type":"string","format":"uuid","title":"Signing Request Id"},"signer_id":{"type":"string","format":"uuid","title":"Signer Id","nullable":true},"signer_name":{"type":"string","title":"Signer Name","nullable":true},"signer_email":{"type":"string","title":"Signer Email","nullable":true},"ip_address":{"type":"string","title":"Ip Address","nullable":true},"country":{"type":"string","title":"Country","nullable":true},"metadata":{"type":"object","title":"Metadata","nullable":true},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","event_type","signing_request_id","created_at"],"title":"ApiEventRead"},"ApiEventsResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ApiEventRead"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"},"last_id":{"type":"string","format":"uuid","title":"Last Id","nullable":true},"has_more":{"type":"boolean","title":"Has More","default":false}},"type":"object","required":["items","total","limit","offset"],"title":"ApiEventsResponse"},"ApiIdentityUsage":{"properties":{"current":{"type":"integer","title":"Current"},"cost_per_check":{"type":"number","title":"Cost Per Check"},"total_cost":{"type":"number","title":"Total Cost"},"month":{"type":"string","title":"Month"}},"type":"object","required":["current","cost_per_check","total_cost","month"],"title":"ApiIdentityUsage"},"ApiReactivateRequest":{"properties":{"expires_in_days":{"type":"integer","maximum":90.0,"minimum":1.0,"title":"Expires In Days","default":7}},"type":"object","title":"ApiReactivateRequest"},"ApiRemindResponse":{"properties":{"sent_count":{"type":"integer","title":"Sent Count"},"signers":{"items":{"type":"string"},"type":"array","title":"Signers"}},"type":"object","required":["sent_count","signers"],"title":"ApiRemindResponse"},"ApiSignerInput":{"properties":{"name":{"type":"string","title":"Name"},"email":{"type":"string","format":"email","title":"Email"},"order":{"type":"integer","title":"Order","default":1},"phone":{"type":"string","title":"Phone","nullable":true}},"type":"object","required":["name","email"],"title":"ApiSignerInput"},"ApiTemplateSendRequest":{"properties":{"document_id":{"type":"string","format":"uuid","title":"Document Id","nullable":true},"signers":{"items":{"$ref":"#/components/schemas/ApiTemplateSignerInput"},"type":"array","maxItems":10,"minItems":1,"title":"Signers"},"variables":{"additionalProperties":{"type":"string"},"type":"object","title":"Variables"},"message":{"type":"string","maxLength":1000,"title":"Message","nullable":true},"expires_in_days":{"type":"integer","maximum":90.0,"minimum":1.0,"title":"Expires In Days","nullable":true},"auto_send":{"type":"boolean","title":"Auto Send","default":true}},"type":"object","required":["signers"],"title":"ApiTemplateSendRequest"},"ApiTemplateSignerInput":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"},"role":{"type":"string","maxLength":100,"minLength":1,"title":"Role"},"phone":{"type":"string","title":"Phone","nullable":true}},"type":"object","required":["email","name","role"],"title":"ApiTemplateSignerInput"},"ApiUploadResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"document_id":{"type":"string","format":"uuid","title":"Document Id"},"name":{"type":"string","title":"Name"},"file_size":{"type":"integer","title":"File Size"},"status":{"type":"string","title":"Status"}},"type":"object","required":["id","document_id","name","file_size","status"],"title":"ApiUploadResponse"},"ApiUsageMetric":{"properties":{"current":{"type":"integer","title":"Current"},"limit":{"type":"integer","title":"Limit"},"unlimited":{"type":"boolean","title":"Unlimited"},"percentage":{"type":"integer","title":"Percentage"}},"type":"object","required":["current","limit","unlimited","percentage"],"title":"ApiUsageMetric"},"ApiUsageResponse":{"properties":{"signing_requests":{"$ref":"#/components/schemas/ApiUsageMetric"},"storage":{"$ref":"#/components/schemas/ApiUsageMetric"},"templates":{"$ref":"#/components/schemas/ApiUsageMetric"},"identity_verifications":{"$ref":"#/components/schemas/ApiIdentityUsage"}},"type":"object","required":["signing_requests","storage","templates","identity_verifications"],"title":"ApiUsageResponse"},"ApiWebhookRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"url":{"type":"string","title":"Url"},"events":{"items":{"type":"string"},"type":"array","title":"Events"},"status":{"type":"string","title":"Status"},"trigger_count":{"type":"integer","title":"Trigger Count"},"failure_count":{"type":"integer","title":"Failure Count"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","name","url","events","status","trigger_count","failure_count","created_at"],"title":"ApiWebhookRead"},"ApiWebhookWithSecret":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"url":{"type":"string","title":"Url"},"secret":{"type":"string","title":"Secret"},"events":{"items":{"type":"string"},"type":"array","title":"Events"},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","name","url","secret","events","status","created_at"],"title":"ApiWebhookWithSecret"},"Body_upload_document_api_v1_documents_upload_post":{"properties":{"file":{"type":"string","title":"File","format":"binary"}},"type":"object","required":["file"],"title":"Body_upload_document_api_v1_documents_upload_post"},"BulkSignatureFieldCreate":{"properties":{"fields":{"items":{"$ref":"#/components/schemas/SignatureFieldCreate"},"type":"array","maxItems":5000,"minItems":1,"title":"Fields"}},"type":"object","required":["fields"],"title":"BulkSignatureFieldCreate","description":"Input for creating multiple signature fields at once."},"CCEmailRead":{"properties":{"email":{"type":"string","title":"Email"},"name":{"type":"string","title":"Name","nullable":true}},"type":"object","required":["email"],"title":"CCEmailRead","description":"Lenient CC recipient for read responses.\n\nStored cc_emails is raw JSONB that older/template write paths did not\nvalidate, so reads must never re-validate it strictly (a single malformed\nentry would 500 every detail/edit/cancel response for that request)."},"ContactCreate":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"},"email":{"type":"string","maxLength":320,"minLength":3,"title":"Email"},"phone":{"type":"string","title":"Phone","nullable":true}},"type":"object","required":["name","email"],"title":"ContactCreate","description":"Input for creating or upserting a contact."},"ContactListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ContactRead"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","total"],"title":"ContactListResponse","description":"List of contacts."},"ContactRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"email":{"type":"string","title":"Email"},"phone":{"type":"string","title":"Phone","nullable":true},"last_used_at":{"type":"string","format":"date-time","title":"Last Used At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","name","email","last_used_at","created_at","updated_at"],"title":"ContactRead","description":"Contact response."},"DownloadResponse":{"properties":{"download_url":{"type":"string","title":"Download Url"},"document_name":{"type":"string","title":"Document Name"}},"type":"object","required":["download_url","document_name"],"title":"DownloadResponse"},"SignatureFieldCreate":{"properties":{"signer_id":{"type":"string","format":"uuid","title":"Signer Id"},"field_type":{"$ref":"#/components/schemas/SignatureFieldType","default":"signature"},"page_number":{"type":"integer","maximum":10000.0,"minimum":1.0,"title":"Page Number","default":1},"x_percent":{"type":"number","maximum":100.0,"minimum":0.0,"title":"X Percent"},"y_percent":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Y Percent"},"width_percent":{"type":"number","maximum":80.0,"minimum":1.0,"title":"Width Percent","default":20.0},"height_percent":{"type":"number","maximum":40.0,"minimum":1.0,"title":"Height Percent","default":5.0},"placeholder":{"type":"string","maxLength":255,"title":"Placeholder","nullable":true},"is_required":{"type":"boolean","title":"Is Required","default":true},"options":{"items":{"type":"string"},"type":"array","title":"Options","nullable":true},"validation_type":{"type":"string","title":"Validation Type","nullable":true},"validation_pattern":{"type":"string","title":"Validation Pattern","nullable":true},"auto_source":{"type":"string","title":"Auto Source","nullable":true},"value":{"type":"string","maxLength":1000,"title":"Value","nullable":true}},"type":"object","required":["signer_id","x_percent","y_percent"],"title":"SignatureFieldCreate","description":"Input for creating a signature field on a document."},"SignatureFieldRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"signer_id":{"type":"string","format":"uuid","title":"Signer Id"},"signer_name":{"type":"string","title":"Signer Name","nullable":true},"field_type":{"type":"string","title":"Field Type"},"page_number":{"type":"integer","title":"Page Number"},"x_percent":{"type":"number","title":"X Percent"},"y_percent":{"type":"number","title":"Y Percent"},"width_percent":{"type":"number","title":"Width Percent"},"height_percent":{"type":"number","title":"Height Percent"},"placeholder":{"type":"string","title":"Placeholder","nullable":true},"is_required":{"type":"boolean","title":"Is Required"},"value":{"type":"string","title":"Value","nullable":true},"filled_at":{"type":"string","format":"date-time","title":"Filled At","nullable":true},"options":{"items":{"type":"string"},"type":"array","title":"Options","nullable":true},"validation_type":{"type":"string","title":"Validation Type","nullable":true},"validation_pattern":{"type":"string","title":"Validation Pattern","nullable":true},"auto_source":{"type":"string","title":"Auto Source","nullable":true}},"type":"object","required":["id","signer_id","field_type","page_number","x_percent","y_percent","width_percent","height_percent","is_required"],"title":"SignatureFieldRead","description":"Full signature field info."},"SignatureFieldType":{"type":"string","enum":["signature","initials","date","text","checkbox","select"],"title":"SignatureFieldType"},"SignerRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"email":{"type":"string","title":"Email"},"name":{"type":"string","title":"Name"},"phone":{"type":"string","title":"Phone","nullable":true},"display_name":{"type":"string","title":"Display Name","nullable":true},"order":{"type":"integer","title":"Order"},"status":{"type":"string","title":"Status"},"signed_at":{"type":"string","format":"date-time","title":"Signed At","nullable":true},"declined_at":{"type":"string","format":"date-time","title":"Declined At","nullable":true},"decline_reason":{"type":"string","title":"Decline Reason","nullable":true},"viewed_at":{"type":"string","format":"date-time","title":"Viewed At","nullable":true},"email_bounced_at":{"type":"string","format":"date-time","title":"Email Bounced At","nullable":true},"identity_verified":{"type":"boolean","title":"Identity Verified","default":false},"identity_verified_at":{"type":"string","format":"date-time","title":"Identity Verified At","nullable":true},"identity_verified_name":{"type":"string","title":"Identity Verified Name","nullable":true},"identity_name_match_score":{"type":"number","title":"Identity Name Match Score","nullable":true},"identity_name_match_status":{"type":"string","title":"Identity Name Match Status","nullable":true},"identity_document_type":{"type":"string","title":"Identity Document Type","nullable":true},"identity_dob":{"type":"string","title":"Identity Dob","nullable":true},"identity_address":{"type":"string","title":"Identity Address","nullable":true},"identity_document_number":{"type":"string","title":"Identity Document Number","nullable":true},"identity_document_expiry":{"type":"string","title":"Identity Document Expiry","nullable":true},"identity_document_issued_country":{"type":"string","title":"Identity Document Issued Country","nullable":true},"identity_selfie_verified":{"type":"boolean","title":"Identity Selfie Verified","default":false},"identity_device_vpn_detected":{"type":"boolean","title":"Identity Device Vpn Detected","default":false},"identity_review_pending":{"type":"boolean","title":"Identity Review Pending","default":false}},"type":"object","required":["id","email","name","order","status"],"title":"SignerRead","description":"Public signer info (no sensitive data like tokens)."},"SigningEventRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"event_type":{"type":"string","title":"Event Type"},"signer_name":{"type":"string","title":"Signer Name","nullable":true},"signer_email":{"type":"string","title":"Signer Email","nullable":true},"ip_address":{"type":"string","title":"Ip Address","nullable":true},"user_agent":{"type":"string","title":"User Agent","nullable":true},"country":{"type":"string","title":"Country","nullable":true},"city":{"type":"string","title":"City","nullable":true},"region":{"type":"string","title":"Region","nullable":true},"metadata":{"type":"object","title":"Metadata","nullable":true},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","event_type","created_at"],"title":"SigningEventRead","description":"Audit log event."},"SigningRequestListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/SigningRequestSummary"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","total"],"title":"SigningRequestListResponse","description":"Paginated list of signing requests."},"SigningRequestRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"document_id":{"type":"string","format":"uuid","title":"Document Id"},"document_name":{"type":"string","title":"Document Name"},"status":{"type":"string","title":"Status"},"signing_order":{"type":"string","title":"Signing Order"},"message":{"type":"string","title":"Message","nullable":true},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"completed_at":{"type":"string","format":"date-time","title":"Completed At","nullable":true},"signers":{"items":{"$ref":"#/components/schemas/SignerRead"},"type":"array","title":"Signers","default":[]},"sandbox":{"type":"boolean","title":"Sandbox","default":false},"field_values":{"items":{"type":"object"},"type":"array","title":"Field Values","nullable":true},"self_sign_url":{"type":"string","title":"Self Sign Url","nullable":true},"identity_verification_required":{"type":"boolean","title":"Identity Verification Required","default":false},"phone_verification_required":{"type":"boolean","title":"Phone Verification Required","default":false},"identity_payment_status":{"type":"string","title":"Identity Payment Status","nullable":true},"signed_pdf_available":{"type":"boolean","title":"Signed Pdf Available","default":false},"signed_pdf_status":{"type":"string","title":"Signed Pdf Status","default":"none"},"signing_level":{"type":"string","title":"Signing Level","default":"ses"},"pades_signed_at":{"type":"string","format":"date-time","title":"Pades Signed At","nullable":true},"separate_stamp_page":{"type":"boolean","title":"Separate Stamp Page","default":false},"stamp_pdf_available":{"type":"boolean","title":"Stamp Pdf Available","default":false},"email_subject":{"type":"string","title":"Email Subject","nullable":true},"cc_emails":{"items":{"$ref":"#/components/schemas/CCEmailRead"},"type":"array","title":"Cc Emails","default":[]},"reminder_days":{"type":"integer","title":"Reminder Days","nullable":true}},"type":"object","required":["id","document_id","document_name","status","signing_order","expires_at","created_at"],"title":"SigningRequestRead","description":"Full signing request details for owner."},"SigningRequestSummary":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"document_id":{"type":"string","format":"uuid","title":"Document Id"},"document_name":{"type":"string","title":"Document Name"},"status":{"type":"string","title":"Status"},"signing_order":{"type":"string","title":"Signing Order"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"total_signers":{"type":"integer","title":"Total Signers"},"signed_count":{"type":"integer","title":"Signed Count"},"signer_names":{"items":{"type":"string"},"type":"array","title":"Signer Names","default":[]},"owner_name":{"type":"string","title":"Owner Name"},"owner_email":{"type":"string","title":"Owner Email"},"owner_avatar_url":{"type":"string","title":"Owner Avatar Url","nullable":true},"sandbox":{"type":"boolean","title":"Sandbox","default":false}},"type":"object","required":["id","document_id","document_name","status","signing_order","expires_at","created_at","total_signers","signed_count","owner_name","owner_email"],"title":"SigningRequestSummary","description":"Summary for list views."},"SigningTemplateCreate":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"},"description":{"type":"string","maxLength":1000,"title":"Description","nullable":true},"document_id":{"type":"string","format":"uuid","title":"Document Id","nullable":true},"signing_order":{"type":"string","pattern":"^(sequential|parallel)$","title":"Signing Order","default":"sequential"},"default_message":{"type":"string","maxLength":1000,"title":"Default Message","nullable":true},"default_expiry_days":{"type":"integer","maximum":90.0,"minimum":1.0,"title":"Default Expiry Days","default":7},"reminder_days":{"type":"integer","maximum":30.0,"minimum":1.0,"title":"Reminder Days","nullable":true},"email_subject":{"type":"string","maxLength":255,"title":"Email Subject","nullable":true},"identity_verification_required":{"type":"boolean","title":"Identity Verification Required","default":false},"phone_verification_required":{"type":"boolean","title":"Phone Verification Required","default":false},"signing_level":{"type":"string","pattern":"^(ses|aes|qes)$","title":"Signing Level","default":"ses"},"separate_stamp_page":{"type":"boolean","title":"Separate Stamp Page","default":false},"cc_emails":{"items":{},"type":"array","title":"Cc Emails"},"roles":{"items":{"$ref":"#/components/schemas/TemplateRoleCreate"},"type":"array","maxItems":10,"title":"Roles","default":[]}},"type":"object","required":["name"],"title":"SigningTemplateCreate","description":"Input for creating a new template."},"SigningTemplateListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/SigningTemplateSummary"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","total"],"title":"SigningTemplateListResponse","description":"Paginated list of templates."},"SigningTemplateRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description","nullable":true},"document_id":{"type":"string","format":"uuid","title":"Document Id","nullable":true},"document_name":{"type":"string","title":"Document Name","nullable":true},"signing_order":{"type":"string","title":"Signing Order"},"default_message":{"type":"string","title":"Default Message","nullable":true},"default_expiry_days":{"type":"integer","title":"Default Expiry Days"},"reminder_days":{"type":"integer","title":"Reminder Days","nullable":true},"email_subject":{"type":"string","title":"Email Subject","nullable":true},"identity_verification_required":{"type":"boolean","title":"Identity Verification Required","default":false},"phone_verification_required":{"type":"boolean","title":"Phone Verification Required","default":false},"signing_level":{"type":"string","title":"Signing Level","default":"ses"},"separate_stamp_page":{"type":"boolean","title":"Separate Stamp Page","default":false},"cc_emails":{"items":{},"type":"array","title":"Cc Emails"},"is_active":{"type":"boolean","title":"Is Active"},"use_count":{"type":"integer","title":"Use Count"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"roles":{"items":{"$ref":"#/components/schemas/TemplateRoleRead"},"type":"array","title":"Roles","default":[]},"fields":{"items":{"$ref":"#/components/schemas/TemplateFieldRead"},"type":"array","title":"Fields","default":[]}},"type":"object","required":["id","name","signing_order","default_expiry_days","is_active","use_count","created_at","updated_at"],"title":"SigningTemplateRead","description":"Full template info."},"SigningTemplateSummary":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description","nullable":true},"signing_order":{"type":"string","title":"Signing Order"},"is_active":{"type":"boolean","title":"Is Active"},"use_count":{"type":"integer","title":"Use Count"},"role_count":{"type":"integer","title":"Role Count"},"field_count":{"type":"integer","title":"Field Count"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","name","signing_order","is_active","use_count","role_count","field_count","created_at"],"title":"SigningTemplateSummary","description":"Summary for list views."},"SigningTemplateUpdate":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name","nullable":true},"description":{"type":"string","maxLength":1000,"title":"Description","nullable":true},"document_id":{"type":"string","format":"uuid","title":"Document Id","nullable":true},"signing_order":{"type":"string","pattern":"^(sequential|parallel)$","title":"Signing Order","nullable":true},"default_message":{"type":"string","maxLength":1000,"title":"Default Message","nullable":true},"default_expiry_days":{"type":"integer","maximum":90.0,"minimum":1.0,"title":"Default Expiry Days","nullable":true},"reminder_days":{"type":"integer","maximum":30.0,"minimum":1.0,"title":"Reminder Days","nullable":true},"email_subject":{"type":"string","maxLength":255,"title":"Email Subject","nullable":true},"identity_verification_required":{"type":"boolean","title":"Identity Verification Required","nullable":true},"phone_verification_required":{"type":"boolean","title":"Phone Verification Required","nullable":true},"signing_level":{"type":"string","pattern":"^(ses|aes|qes)$","title":"Signing Level","nullable":true},"separate_stamp_page":{"type":"boolean","title":"Separate Stamp Page","nullable":true},"cc_emails":{"items":{},"type":"array","title":"Cc Emails","nullable":true},"is_active":{"type":"boolean","title":"Is Active","nullable":true}},"type":"object","title":"SigningTemplateUpdate","description":"Input for updating a template."},"TemplateFieldRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"role_id":{"type":"string","format":"uuid","title":"Role Id"},"role_name":{"type":"string","title":"Role Name","nullable":true},"field_type":{"type":"string","title":"Field Type"},"page_number":{"type":"integer","title":"Page Number"},"x_percent":{"type":"number","title":"X Percent"},"y_percent":{"type":"number","title":"Y Percent"},"width_percent":{"type":"number","title":"Width Percent"},"height_percent":{"type":"number","title":"Height Percent"},"placeholder":{"type":"string","title":"Placeholder","nullable":true},"is_required":{"type":"boolean","title":"Is Required"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","role_id","field_type","page_number","x_percent","y_percent","width_percent","height_percent","is_required","created_at"],"title":"TemplateFieldRead","description":"Field info."},"TemplateRoleCreate":{"properties":{"name":{"type":"string","maxLength":100,"minLength":1,"title":"Name"},"order":{"type":"integer","maximum":20.0,"minimum":1.0,"title":"Order","default":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$","title":"Color","default":"#3b82f6"}},"type":"object","required":["name"],"title":"TemplateRoleCreate","description":"Input for creating a role in a template."},"TemplateRoleRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"order":{"type":"integer","title":"Order"},"color":{"type":"string","title":"Color"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","name","order","color","created_at"],"title":"TemplateRoleRead","description":"Role info."},"WebhookCreate":{"properties":{"name":{"type":"string","maxLength":100,"minLength":1,"title":"Name"},"url":{"type":"string","maxLength":2048,"minLength":10,"title":"Url"},"events":{"items":{"type":"string"},"type":"array","maxItems":16,"minItems":1,"title":"Events"}},"type":"object","required":["name","url","events"],"title":"WebhookCreate","description":"Input for creating a new webhook."},"WebhookUpdate":{"properties":{"name":{"type":"string","maxLength":100,"minLength":1,"title":"Name","nullable":true},"url":{"type":"string","maxLength":2048,"minLength":10,"title":"Url","nullable":true},"events":{"items":{"type":"string"},"type":"array","maxItems":16,"minItems":1,"title":"Events","nullable":true},"status":{"type":"string","pattern":"^(active|paused)$","title":"Status","nullable":true}},"type":"object","title":"WebhookUpdate","description":"Input for updating a webhook."},"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"signing_request_not_found"},"message":{"type":"string"},"request_id":{"type":"string","example":"req_4e092e9aa07f4103a14f"},"detail":{"type":"array","items":{"type":"object"},"description":"Field errors, on 422 only."}}}}}},"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-Key"}}},"security":[{"ApiKeyAuth":[]}],"servers":[{"url":"https://api.builtsign.com"}],"tags":[{"name":"Signing requests"},{"name":"Documents"},{"name":"Templates"},{"name":"Bulk send"},{"name":"Events"},{"name":"Webhooks"},{"name":"Contacts"},{"name":"Usage"}]}