{"openapi":"3.1.0","info":{"title":"Lystsign API","version":"v1","description":"Server-to-server REST API. Authenticate with `Authorization: Bearer ls_live_...` (or `ls_test_...`).\n\nRequests that carry an `Origin` header are refused: keys never belong in a browser.\n\nErrors are RFC 9457 problem details. Every response carries `RateLimit-Limit`, `RateLimit-Remaining` and `RateLimit-Reset`.\n\nWebhooks are signed with HMAC-SHA256: `Lystsign-Signature: t=<unix>,v1=<hex>` over `<t>.<raw body>`.\n\nTest mode: `ls_test_` keys create test envelopes (`livemode: false`). They use no plan allowance, have their own rate limits and daily send cap, only email verified members of your workspace (everything else goes to the console Test outbox), are sealed with a TEST — NOT LEGALLY BINDING watermark, can never become live, and are deleted after 30 days. Live and test objects are invisible to each other (404)."},"servers":[{"url":"/api/v1"}],"tags":[{"name":"Envelopes"},{"name":"Embedded signing"},{"name":"Templates"},{"name":"Webhooks"},{"name":"AI"},{"name":"Account"}],"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","bearerFormat":"ls_live_<32 chars>","description":"Scopes: envelopes:read, envelopes:write, templates:read, webhooks:manage, usage:read"},"oauth2":{"type":"oauth2","description":"For partner apps acting on behalf of another workspace. Authorization code grant with PKCE (S256; required for public clients). Access tokens (lso_at_...) last 1 hour; refresh tokens (lso_rt_...) rotate on every use, and replaying a used one revokes the whole family. Revoke with POST /api/v1/oauth/revoke (RFC 7009). Calls are server-to-server only: requests with an Origin header are refused.","flows":{"authorizationCode":{"authorizationUrl":"/api/v1/oauth/authorize","tokenUrl":"/api/v1/oauth/token","refreshUrl":"/api/v1/oauth/token","scopes":{"envelopes:read":"See envelopes, their status, recipients and signed documents","envelopes:write":"Create, send and void envelopes","templates:read":"See templates","webhooks:manage":"Create and change webhook endpoints","usage:read":"See plan usage and limits"}}}}},"schemas":{"Problem":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"}},"required":["type","title","status","detail"],"additionalProperties":false},"CreateEnvelope":{"type":"object","properties":{"subject":{"type":"string","minLength":1,"maxLength":500},"message":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}]},"routing_mode":{"type":"string","enum":["sequential","parallel","hybrid"]},"expires_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]},"recipients":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"email":{"type":"string","format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"role":{"type":"string","enum":["signer","cc","approver","viewer"]},"routing_order":{"type":"integer","minimum":1,"maximum":50},"delivery":{"type":"string","enum":["email","embedded"]},"external_id":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]}},"required":["name","email"]}}},"required":["subject"],"additionalProperties":false},"AddRecipient":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"email":{"type":"string","format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"role":{"type":"string","enum":["signer","cc","approver","viewer"]},"routing_order":{"type":"integer","minimum":1,"maximum":50},"phone":{"type":["string","null"]},"delivery":{"type":"string","enum":["email","embedded"]},"external_id":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"signing_method":{"type":"string","enum":["electronic","in_person"]},"company":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"title":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]}},"required":["name","email"],"additionalProperties":false},"AddField":{"type":"object","properties":{"document_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|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"recipient_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|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"field_type":{"type":"string","enum":["signature","initial","stamp","date_signed","name","first_name","last_name","email","company","title","text","number","date_entry","checkbox","radio","dropdown","note","attachment","envelope_id","date"]},"page":{"type":"integer","minimum":1,"maximum":9007199254740991},"x":{"type":"integer","minimum":0,"maximum":9007199254740991},"y":{"type":"integer","minimum":0,"maximum":9007199254740991},"w":{"type":"integer","minimum":1,"maximum":9007199254740991},"h":{"type":"integer","minimum":1,"maximum":9007199254740991},"required":{"type":"boolean"},"label":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"options":{"maxItems":50,"type":"array","items":{"type":"string","maxLength":200}},"validation":{"type":"object","properties":{"pattern":{"type":"string","maxLength":80},"max_length":{"type":"integer","minimum":1,"maximum":4000},"format":{"type":"string","maxLength":20},"min":{"type":"number"},"max":{"type":"number"},"text":{"type":"string","maxLength":1000}},"additionalProperties":false}},"required":["document_id","recipient_id","field_type","page","x","y","w","h"],"additionalProperties":false},"VoidEnvelope":{"type":"object","properties":{"reason":{"type":"string","minLength":1,"maxLength":500}},"required":["reason"],"additionalProperties":false},"EnvelopeFromTemplate":{"type":"object","properties":{"template_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|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"version":{"type":"integer","minimum":1,"maximum":9007199254740991},"subject":{"type":"string","minLength":1,"maxLength":500},"recipients":{"minItems":1,"maxItems":50,"type":"array","items":{"type":"object","properties":{"role_key":{"type":"string","minLength":1,"maxLength":80},"name":{"type":"string","minLength":1,"maxLength":200},"email":{"type":"string","format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"}},"required":["role_key","name","email"]}},"send":{"type":"boolean"}},"required":["template_id","recipients"],"additionalProperties":false},"CreateEmbeddedSession":{"type":"object","properties":{"recipient_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|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"frame_origin":{"type":"string","minLength":1,"maxLength":300,"description":"Origin of the page that hosts the iframe; must be on the brand allow-list."},"return_url":{"type":"string","maxLength":2000,"format":"uri"},"ttl_seconds":{"type":"integer","minimum":60,"maximum":3600}},"required":["recipient_id","frame_origin"],"additionalProperties":false},"CreateWebhookEndpoint":{"type":"object","properties":{"url":{"type":"string","maxLength":2048,"format":"uri"},"description":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"events":{"minItems":1,"maxItems":32,"type":"array","items":{"type":"string","enum":["*","envelope.created","envelope.sent","envelope.completed","envelope.declined","envelope.voided","envelope.expired","envelope.reminded","recipient.viewed","recipient.signed","recipient.declined","document.converted","document.conversion_failed"]}}},"required":["url"],"additionalProperties":false},"UpdateWebhookEndpoint":{"type":"object","properties":{"url":{"type":"string","maxLength":2048,"format":"uri"},"description":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"events":{"minItems":1,"maxItems":32,"type":"array","items":{"type":"string","enum":["*","envelope.created","envelope.sent","envelope.completed","envelope.declined","envelope.voided","envelope.expired","envelope.reminded","recipient.viewed","recipient.signed","recipient.declined","document.converted","document.conversion_failed"]}},"status":{"type":"string","enum":["active","disabled"]}},"additionalProperties":false},"Envelope":{"type":"object","properties":{"object":{"type":"string","const":"envelope"},"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|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"subject":{"type":"string"},"status":{"type":"string","enum":["draft","sent","completed","declined","voided","expired"]},"routing_mode":{"type":"string"},"livemode":{"type":"boolean","description":"false for objects created with an `ls_test_` key (test mode). Test objects are invisible to live keys and vice versa."},"template_id":{"anyOf":[{"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|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"created_at":{"type":"string","description":"RFC 3339 timestamp"},"updated_at":{"type":"string","description":"RFC 3339 timestamp"},"sent_at":{"anyOf":[{"type":"string","description":"RFC 3339 timestamp"},{"type":"null"}]},"completed_at":{"anyOf":[{"type":"string","description":"RFC 3339 timestamp"},{"type":"null"}]},"expires_at":{"anyOf":[{"type":"string","description":"RFC 3339 timestamp"},{"type":"null"}]},"message":{"type":["string","null"]},"void_reason":{"type":["string","null"]},"decline_reason":{"type":["string","null"]},"sealed":{"type":"boolean"},"documents":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string","const":"document"},"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|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"file_name":{"type":"string"},"position":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"size_bytes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"page_count":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"scan_status":{"type":"string"},"sha256":{"type":["string","null"]},"status":{"type":"string","enum":["converting","ready","failed"]},"failure_reason":{"type":["string","null"]},"source_file_name":{"type":["string","null"]},"source_content_type":{"type":"string"},"source_sha256":{"type":["string","null"]},"converted_at":{"anyOf":[{"type":"string","description":"RFC 3339 timestamp"},{"type":"null"}]}},"required":["object","id","file_name","position","size_bytes","page_count","scan_status","sha256","status","failure_reason","source_file_name","source_content_type","source_sha256","converted_at"],"additionalProperties":false}},"recipients":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string","const":"recipient"},"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|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"email":{"type":"string"},"role":{"type":"string"},"routing_order":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"status":{"type":"string"},"delivery":{"type":"string","enum":["email","embedded"]},"external_id":{"type":["string","null"]},"signed_at":{"anyOf":[{"type":"string","description":"RFC 3339 timestamp"},{"type":"null"}]},"declined_at":{"anyOf":[{"type":"string","description":"RFC 3339 timestamp"},{"type":"null"}]}},"required":["object","id","name","email","role","routing_order","status","delivery","external_id","signed_at","declined_at"],"additionalProperties":false}},"fields":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string","const":"field"},"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|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"document_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|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"recipient_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|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"field_type":{"type":"string"},"page":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"x":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"y":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"w":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"h":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"required":{"type":"boolean"},"label":{"type":["string","null"]}},"required":["object","id","document_id","recipient_id","field_type","page","x","y","w","h","required","label"],"additionalProperties":false}}},"required":["object","id","number","subject","status","routing_mode","livemode","template_id","created_at","updated_at","sent_at","completed_at","expires_at","message","void_reason","decline_reason","sealed","documents","recipients","fields"],"additionalProperties":false},"EnvelopeList":{"type":"object","properties":{"object":{"type":"string","const":"list"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string","const":"envelope"},"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|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"subject":{"type":"string"},"status":{"type":"string","enum":["draft","sent","completed","declined","voided","expired"]},"routing_mode":{"type":"string"},"livemode":{"type":"boolean","description":"false for objects created with an `ls_test_` key (test mode). Test objects are invisible to live keys and vice versa."},"template_id":{"anyOf":[{"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|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"created_at":{"type":"string","description":"RFC 3339 timestamp"},"updated_at":{"type":"string","description":"RFC 3339 timestamp"},"sent_at":{"anyOf":[{"type":"string","description":"RFC 3339 timestamp"},{"type":"null"}]},"completed_at":{"anyOf":[{"type":"string","description":"RFC 3339 timestamp"},{"type":"null"}]},"expires_at":{"anyOf":[{"type":"string","description":"RFC 3339 timestamp"},{"type":"null"}]}},"required":["object","id","number","subject","status","routing_mode","livemode","template_id","created_at","updated_at","sent_at","completed_at","expires_at"],"additionalProperties":false}},"has_more":{"type":"boolean"},"next_cursor":{"type":["string","null"]}},"required":["object","data","has_more","next_cursor"],"additionalProperties":false},"Recipient":{"type":"object","properties":{"object":{"type":"string","const":"recipient"},"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|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"email":{"type":"string"},"role":{"type":"string"},"routing_order":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"status":{"type":"string"},"delivery":{"type":"string","enum":["email","embedded"]},"external_id":{"type":["string","null"]},"signed_at":{"anyOf":[{"type":"string","description":"RFC 3339 timestamp"},{"type":"null"}]},"declined_at":{"anyOf":[{"type":"string","description":"RFC 3339 timestamp"},{"type":"null"}]}},"required":["object","id","name","email","role","routing_order","status","delivery","external_id","signed_at","declined_at"],"additionalProperties":false},"Document":{"type":"object","properties":{"object":{"type":"string","const":"document"},"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|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"file_name":{"type":"string"},"position":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"size_bytes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"page_count":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"scan_status":{"type":"string"},"sha256":{"type":["string","null"]},"status":{"type":"string","enum":["converting","ready","failed"]},"failure_reason":{"type":["string","null"]},"source_file_name":{"type":["string","null"]},"source_content_type":{"type":"string"},"source_sha256":{"type":["string","null"]},"converted_at":{"anyOf":[{"type":"string","description":"RFC 3339 timestamp"},{"type":"null"}]}},"required":["object","id","file_name","position","size_bytes","page_count","scan_status","sha256","status","failure_reason","source_file_name","source_content_type","source_sha256","converted_at"],"additionalProperties":false},"Field":{"type":"object","properties":{"object":{"type":"string","const":"field"},"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|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"document_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|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"recipient_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|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"field_type":{"type":"string"},"page":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"x":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"y":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"w":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"h":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"required":{"type":"boolean"},"label":{"type":["string","null"]}},"required":["object","id","document_id","recipient_id","field_type","page","x","y","w","h","required","label"],"additionalProperties":false},"TemplateList":{"type":"object","properties":{"object":{"type":"string","const":"list"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string","const":"template"},"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|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"subject":{"type":"string"},"status":{"type":"string"},"published_version":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"routing_mode":{"type":"string"},"updated_at":{"type":"string","description":"RFC 3339 timestamp"}},"required":["object","id","name","subject","status","published_version","routing_mode","updated_at"],"additionalProperties":false}},"has_more":{"type":"boolean"},"next_cursor":{"type":["string","null"]}},"required":["object","data","has_more","next_cursor"],"additionalProperties":false},"EmbeddedSession":{"type":"object","properties":{"object":{"type":"string","const":"embedded_session"},"session_token":{"type":"string"},"url":{"type":"string","format":"uri"},"expires_at":{"type":"string","description":"RFC 3339 timestamp"},"frame_origin":{"type":"string"},"recipient_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|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["object","session_token","url","expires_at","frame_origin","recipient_id"],"additionalProperties":false},"WebhookEndpoint":{"type":"object","properties":{"object":{"type":"string","const":"webhook_endpoint"},"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|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"url":{"type":"string"},"description":{"type":["string","null"]},"events":{"type":"array","items":{"type":"string"}},"status":{"type":"string","enum":["active","disabled"]},"livemode":{"type":"boolean","description":"Set from the calling key. Live endpoints only receive live events; test endpoints only receive test-mode events."},"secret_prefix":{"type":"string"},"consecutive_failures":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"disabled_at":{"anyOf":[{"type":"string","description":"RFC 3339 timestamp"},{"type":"null"}]},"disabled_reason":{"type":["string","null"]},"created_at":{"type":"string","description":"RFC 3339 timestamp"},"updated_at":{"type":"string","description":"RFC 3339 timestamp"},"secret":{"description":"Only returned on create and rotate.","type":"string"}},"required":["object","id","url","description","events","status","livemode","secret_prefix","consecutive_failures","disabled_at","disabled_reason","created_at","updated_at"],"additionalProperties":false},"WebhookEndpointList":{"type":"object","properties":{"object":{"type":"string","const":"list"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string","const":"webhook_endpoint"},"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|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"url":{"type":"string"},"description":{"type":["string","null"]},"events":{"type":"array","items":{"type":"string"}},"status":{"type":"string","enum":["active","disabled"]},"livemode":{"type":"boolean","description":"Set from the calling key. Live endpoints only receive live events; test endpoints only receive test-mode events."},"secret_prefix":{"type":"string"},"consecutive_failures":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"disabled_at":{"anyOf":[{"type":"string","description":"RFC 3339 timestamp"},{"type":"null"}]},"disabled_reason":{"type":["string","null"]},"created_at":{"type":"string","description":"RFC 3339 timestamp"},"updated_at":{"type":"string","description":"RFC 3339 timestamp"},"secret":{"description":"Only returned on create and rotate.","type":"string"}},"required":["object","id","url","description","events","status","livemode","secret_prefix","consecutive_failures","disabled_at","disabled_reason","created_at","updated_at"],"additionalProperties":false}},"has_more":{"type":"boolean"},"next_cursor":{"type":["string","null"]}},"required":["object","data","has_more","next_cursor"],"additionalProperties":false},"WebhookDelivery":{"type":"object","properties":{"object":{"type":"string","const":"webhook_delivery"},"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|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"endpoint_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|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"event_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|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"event_type":{"type":"string"},"envelope_id":{"anyOf":[{"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|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"status":{"type":"string","enum":["pending","retrying","succeeded","failed"]},"attempts":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"last_status_code":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"last_error":{"type":["string","null"]},"last_attempt_at":{"anyOf":[{"type":"string","description":"RFC 3339 timestamp"},{"type":"null"}]},"delivered_at":{"anyOf":[{"type":"string","description":"RFC 3339 timestamp"},{"type":"null"}]},"replay_of":{"anyOf":[{"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|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"created_at":{"type":"string","description":"RFC 3339 timestamp"}},"required":["object","id","endpoint_id","event_id","event_type","envelope_id","status","attempts","last_status_code","last_error","last_attempt_at","delivered_at","replay_of","created_at"],"additionalProperties":false},"WebhookDeliveryList":{"type":"object","properties":{"object":{"type":"string","const":"list"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string","const":"webhook_delivery"},"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|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"endpoint_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|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"event_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|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"event_type":{"type":"string"},"envelope_id":{"anyOf":[{"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|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"status":{"type":"string","enum":["pending","retrying","succeeded","failed"]},"attempts":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"last_status_code":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"last_error":{"type":["string","null"]},"last_attempt_at":{"anyOf":[{"type":"string","description":"RFC 3339 timestamp"},{"type":"null"}]},"delivered_at":{"anyOf":[{"type":"string","description":"RFC 3339 timestamp"},{"type":"null"}]},"replay_of":{"anyOf":[{"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|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"created_at":{"type":"string","description":"RFC 3339 timestamp"}},"required":["object","id","endpoint_id","event_id","event_type","envelope_id","status","attempts","last_status_code","last_error","last_attempt_at","delivered_at","replay_of","created_at"],"additionalProperties":false}},"has_more":{"type":"boolean"},"next_cursor":{"type":["string","null"]}},"required":["object","data","has_more","next_cursor"],"additionalProperties":false},"Usage":{"type":"object","properties":{"object":{"type":"string","const":"usage"},"plan":{"type":"string"},"period_start":{"type":"string","description":"RFC 3339 timestamp"},"envelopes_sent":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"envelopes_included":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"api_rate_limit_per_minute":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"For test keys, the separate test-mode API limit."},"livemode":{"type":"boolean"},"test_mode":{"type":"object","properties":{"envelopes_sent_today":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"daily_cap":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sends_per_minute":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"retention_days":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["envelopes_sent_today","daily_cap","sends_per_minute","retention_days"],"additionalProperties":false,"description":"Test-mode limits. Test envelopes never count toward envelopes_sent or the plan allowance."},"api_key":{"anyOf":[{"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|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"mode":{"type":"string"},"scopes":{"type":"array","items":{"type":"string","enum":["envelopes:read","envelopes:write","templates:read","webhooks:manage","usage:read"]}}},"required":["id","mode","scopes"],"additionalProperties":false},{"type":"null"}],"description":"The calling API key; null for OAuth calls."},"oauth_app":{"anyOf":[{"type":"object","properties":{"client_id":{"type":"string"},"name":{"type":"string"},"scopes":{"type":"array","items":{"type":"string","enum":["envelopes:read","envelopes:write","templates:read","webhooks:manage","usage:read"]}}},"required":["client_id","name","scopes"],"additionalProperties":false},{"type":"null"}],"description":"The calling OAuth app; null for API key calls."},"ai_credits":{"type":"object","properties":{"included":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"used":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"reserved":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"remaining":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"resets_on":{"type":"string"}},"required":["included","used","reserved","remaining","resets_on"],"additionalProperties":false,"description":"Monthly AI credits (hard cap; no overage). AI calls with test keys also use them."}},"required":["object","plan","period_start","envelopes_sent","envelopes_included","api_rate_limit_per_minute","livemode","test_mode","api_key","oauth_app","ai_credits"],"additionalProperties":false},"FieldSuggestions":{"type":"object","properties":{"object":{"type":"string","const":"field_suggestions"},"envelope_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|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"credits_used":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"pages_scanned":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"data":{"type":"array","items":{"type":"object","properties":{"document_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|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"recipient_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|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string"},"page":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"1-based page within the envelope (documents in order)."},"x":{"type":"number"},"y":{"type":"number"},"width":{"type":"number"},"height":{"type":"number"},"required":{"type":"boolean"},"label":{"type":["string","null"]}},"required":["document_id","recipient_id","type","page","x","y","width","height","required","label"],"additionalProperties":false},"description":"Suggestions only: nothing is placed. Add the ones you want with POST /envelopes/{id}/fields. Geometry is in PDF points, bottom-left origin."}},"required":["object","envelope_id","credits_used","pages_scanned","data"],"additionalProperties":false},"EnvelopeSummary":{"type":"object","properties":{"object":{"type":"string","const":"envelope_summary"},"envelope_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|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"summary":{"type":"string"},"key_points":{"type":"array","items":{"type":"string"}},"risk_flags":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["auto_renewal","liability","termination","payment_terms","missing_dates_blanks"]},"severity":{"type":"string","enum":["info","review","high"]},"document_name":{"type":"string"},"page":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Page within that document."},"quote":{"type":"string"},"explanation":{"type":"string"}},"required":["kind","severity","document_name","page","quote","explanation"],"additionalProperties":false}},"disclaimer":{"type":"string","description":"AI output may be wrong and is not legal advice. Show this to your users."},"generated_at":{"type":"string","description":"RFC 3339 timestamp"},"credits_used":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Credits this call used; null when reading a stored summary."}},"required":["object","envelope_id","summary","key_points","risk_flags","disclaimer","generated_at","credits_used"],"additionalProperties":false},"WebhookEvent":{"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|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Event id; stable across retries and replays. Dedupe on it."},"type":{"type":"string","enum":["envelope.created","envelope.sent","envelope.completed","envelope.declined","envelope.voided","envelope.expired","envelope.reminded","recipient.viewed","recipient.signed","recipient.declined","document.converted","document.conversion_failed"]},"api_version":{"type":"string","const":"v1"},"livemode":{"type":"boolean","description":"false for events from test-mode envelopes; only test endpoints receive them."},"created_at":{"type":"string","description":"RFC 3339 timestamp"},"data":{"type":"object","properties":{"envelope":{"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|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"subject":{"type":"string"},"status":{"type":"string"}},"required":["id","number","subject","status"],"additionalProperties":false},"recipient":{"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|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["id"],"additionalProperties":false},"reason":{"type":"string"},"sequence":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["envelope","sequence"],"additionalProperties":false}},"required":["id","type","api_version","livemode","created_at","data"],"additionalProperties":false}}},"paths":{"/envelopes":{"get":{"summary":"List envelopes, newest first","tags":["Envelopes"],"security":[{"apiKey":["envelopes:read"]},{"oauth2":["envelopes:read"]}],"x-required-scope":"envelopes:read","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"cursor","in":"query","schema":{"type":"string"},"description":"`next_cursor` from the previous page"},{"name":"status","in":"query","schema":{"type":"string","enum":["draft","sent","completed","declined","voided","expired"]}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvelopeList"}}}},"401":{"description":"Missing, invalid or revoked API key","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope, role, plan or browser-origin refusal","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation failed","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; see RateLimit-* and Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}},"post":{"summary":"Create a draft envelope (optionally with recipients)","tags":["Envelopes"],"security":[{"apiKey":["envelopes:write"]},{"oauth2":["envelopes:write"]}],"x-required-scope":"envelopes:write","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"Up to 255 printable characters. Replays return the stored response with `Idempotent-Replayed: true` for 24 hours; reuse with a different body is 422.","schema":{"type":"string","maxLength":255}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEnvelope"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"401":{"description":"Missing, invalid or revoked API key","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope, role, plan or browser-origin refusal","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation failed","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; see RateLimit-* and Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/envelopes/{id}":{"get":{"summary":"Get an envelope with documents, recipients and fields","tags":["Envelopes"],"security":[{"apiKey":["envelopes:read"]},{"oauth2":["envelopes:read"]}],"x-required-scope":"envelopes:read","parameters":[{"name":"id","in":"path","required":true,"description":"Envelope id","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"401":{"description":"Missing, invalid or revoked API key","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope, role, plan or browser-origin refusal","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation failed","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; see RateLimit-* and Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/envelopes/{id}/documents":{"post":{"summary":"Upload a document (raw body): PDF, Word, Excel, PowerPoint, OpenDocument, RTF, plain text, PNG or JPEG. PDFs are scanned at once; other files return status \"converting\" and become a PDF in the background (document.converted / document.conversion_failed webhooks). The bytes decide the type; name the file with file_name.","tags":["Envelopes"],"security":[{"apiKey":["envelopes:write"]},{"oauth2":["envelopes:write"]}],"x-required-scope":"envelopes:write","parameters":[{"name":"id","in":"path","required":true,"description":"Envelope id","schema":{"type":"string","format":"uuid"}},{"name":"file_name","in":"query","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Up to 255 printable characters. Replays return the stored response with `Idempotent-Replayed: true` for 24 hours; reuse with a different body is 422.","schema":{"type":"string","maxLength":255}}],"requestBody":{"required":true,"content":{"application/octet-stream":{"schema":{"type":"string","format":"binary","maxLength":26214400}},"application/pdf":{"schema":{"type":"string","format":"binary","maxLength":26214400}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Document"}}}},"401":{"description":"Missing, invalid or revoked API key","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope, role, plan or browser-origin refusal","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation failed","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; see RateLimit-* and Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/envelopes/{id}/recipients":{"post":{"summary":"Add a recipient to a draft","tags":["Envelopes"],"security":[{"apiKey":["envelopes:write"]},{"oauth2":["envelopes:write"]}],"x-required-scope":"envelopes:write","parameters":[{"name":"id","in":"path","required":true,"description":"Envelope id","schema":{"type":"string","format":"uuid"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Up to 255 printable characters. Replays return the stored response with `Idempotent-Replayed: true` for 24 hours; reuse with a different body is 422.","schema":{"type":"string","maxLength":255}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddRecipient"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Recipient"}}}},"401":{"description":"Missing, invalid or revoked API key","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope, role, plan or browser-origin refusal","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation failed","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; see RateLimit-* and Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/envelopes/{id}/fields":{"post":{"summary":"Place a field for a recipient","tags":["Envelopes"],"security":[{"apiKey":["envelopes:write"]},{"oauth2":["envelopes:write"]}],"x-required-scope":"envelopes:write","parameters":[{"name":"id","in":"path","required":true,"description":"Envelope id","schema":{"type":"string","format":"uuid"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Up to 255 printable characters. Replays return the stored response with `Idempotent-Replayed: true` for 24 hours; reuse with a different body is 422.","schema":{"type":"string","maxLength":255}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddField"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Field"}}}},"401":{"description":"Missing, invalid or revoked API key","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope, role, plan or browser-origin refusal","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation failed","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; see RateLimit-* and Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/envelopes/{id}/send":{"post":{"summary":"Send a draft. Counts against the monthly envelope allowance (hard cap).","tags":["Envelopes"],"security":[{"apiKey":["envelopes:write"]},{"oauth2":["envelopes:write"]}],"x-required-scope":"envelopes:write","parameters":[{"name":"id","in":"path","required":true,"description":"Envelope id","schema":{"type":"string","format":"uuid"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Up to 255 printable characters. Replays return the stored response with `Idempotent-Replayed: true` for 24 hours; reuse with a different body is 422.","schema":{"type":"string","maxLength":255}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"401":{"description":"Missing, invalid or revoked API key","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope, role, plan or browser-origin refusal","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation failed","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; see RateLimit-* and Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/envelopes/{id}/void":{"post":{"summary":"Void a draft or sent envelope","tags":["Envelopes"],"security":[{"apiKey":["envelopes:write"]},{"oauth2":["envelopes:write"]}],"x-required-scope":"envelopes:write","parameters":[{"name":"id","in":"path","required":true,"description":"Envelope id","schema":{"type":"string","format":"uuid"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Up to 255 printable characters. Replays return the stored response with `Idempotent-Replayed: true` for 24 hours; reuse with a different body is 422.","schema":{"type":"string","maxLength":255}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoidEnvelope"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"401":{"description":"Missing, invalid or revoked API key","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope, role, plan or browser-origin refusal","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation failed","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; see RateLimit-* and Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/envelopes/{id}/sealed":{"get":{"summary":"Download the sealed PDF (409 until sealing finishes)","description":"409 `not-ready` while sealing is still running (retry later). 409 `client-side-sealed` when the envelope is an Enterprise client-side sealed envelope: the server only holds ciphertext and cannot produce the PDF; open it in the console with an access code instead. The certificate of completion is still available.","tags":["Envelopes"],"security":[{"apiKey":["envelopes:read"]},{"oauth2":["envelopes:read"]}],"x-required-scope":"envelopes:read","parameters":[{"name":"id","in":"path","required":true,"description":"Envelope id","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"PDF","content":{"application/pdf":{}}},"401":{"description":"Missing, invalid or revoked API key","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope, role, plan or browser-origin refusal","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"Not ready yet (`type` ends in `/not-ready`), or the envelope is client-side sealed (`type` ends in `/client-side-sealed`)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation failed","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; see RateLimit-* and Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/envelopes/{id}/certificate":{"get":{"summary":"Download the certificate of completion","tags":["Envelopes"],"security":[{"apiKey":["envelopes:read"]},{"oauth2":["envelopes:read"]}],"x-required-scope":"envelopes:read","parameters":[{"name":"id","in":"path","required":true,"description":"Envelope id","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"PDF","content":{"application/pdf":{}}},"401":{"description":"Missing, invalid or revoked API key","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope, role, plan or browser-origin refusal","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation failed","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; see RateLimit-* and Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/envelopes/{id}/ai/field-suggestions":{"post":{"summary":"AI field suggestions for a draft (nothing is placed). Needs AI and field detection on in Admin → Settings. Uses AI credits: 1 per started 10 pages. 402 when the monthly AI credit cap is reached; 403 when AI is off or the envelope is client-side sealed.","tags":["AI"],"security":[{"apiKey":["envelopes:write"]},{"oauth2":["envelopes:write"]}],"x-required-scope":"envelopes:write","parameters":[{"name":"id","in":"path","required":true,"description":"Envelope id","schema":{"type":"string","format":"uuid"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Up to 255 printable characters. Replays return the stored response with `Idempotent-Replayed: true` for 24 hours; reuse with a different body is 422.","schema":{"type":"string","maxLength":255}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FieldSuggestions"}}}},"401":{"description":"Missing, invalid or revoked API key","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope, role, plan or browser-origin refusal","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation failed","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; see RateLimit-* and Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/envelopes/{id}/ai/summary":{"post":{"summary":"Create (or replace) the AI summary and risk flags. Not legal advice. Uses AI credits: 2 per started 10 pages. 402 at the monthly AI credit cap; 403 when AI is off or the envelope is client-side sealed.","tags":["AI"],"security":[{"apiKey":["envelopes:write"]},{"oauth2":["envelopes:write"]}],"x-required-scope":"envelopes:write","parameters":[{"name":"id","in":"path","required":true,"description":"Envelope id","schema":{"type":"string","format":"uuid"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Up to 255 printable characters. Replays return the stored response with `Idempotent-Replayed: true` for 24 hours; reuse with a different body is 422.","schema":{"type":"string","maxLength":255}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvelopeSummary"}}}},"401":{"description":"Missing, invalid or revoked API key","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope, role, plan or browser-origin refusal","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation failed","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; see RateLimit-* and Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}},"get":{"summary":"Read the stored AI summary (no credits). 404 until one is created.","tags":["AI"],"security":[{"apiKey":["envelopes:read"]},{"oauth2":["envelopes:read"]}],"x-required-scope":"envelopes:read","parameters":[{"name":"id","in":"path","required":true,"description":"Envelope id","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvelopeSummary"}}}},"401":{"description":"Missing, invalid or revoked API key","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope, role, plan or browser-origin refusal","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation failed","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; see RateLimit-* and Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/envelopes/{id}/embedded-sessions":{"post":{"summary":"Mint a one-time embedded signing session for an `embedded` recipient","tags":["Embedded signing"],"security":[{"apiKey":["envelopes:write"]},{"oauth2":["envelopes:write"]}],"x-required-scope":"envelopes:write","parameters":[{"name":"id","in":"path","required":true,"description":"Envelope id","schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEmbeddedSession"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmbeddedSession"}}}},"401":{"description":"Missing, invalid or revoked API key","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope, role, plan or browser-origin refusal","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation failed","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; see RateLimit-* and Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/envelopes/from-template":{"post":{"summary":"Create (and optionally send) an envelope from a published template","tags":["Templates"],"security":[{"apiKey":["envelopes:write"]},{"oauth2":["envelopes:write"]}],"x-required-scope":"envelopes:write","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"Up to 255 printable characters. Replays return the stored response with `Idempotent-Replayed: true` for 24 hours; reuse with a different body is 422.","schema":{"type":"string","maxLength":255}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvelopeFromTemplate"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"401":{"description":"Missing, invalid or revoked API key","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope, role, plan or browser-origin refusal","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation failed","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; see RateLimit-* and Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/templates":{"get":{"summary":"List templates","tags":["Templates"],"security":[{"apiKey":["templates:read"]},{"oauth2":["templates:read"]}],"x-required-scope":"templates:read","parameters":[{"name":"q","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TemplateList"}}}},"401":{"description":"Missing, invalid or revoked API key","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope, role, plan or browser-origin refusal","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation failed","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; see RateLimit-* and Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/webhook-endpoints":{"get":{"summary":"List webhook endpoints","tags":["Webhooks"],"security":[{"apiKey":["webhooks:manage"]},{"oauth2":["webhooks:manage"]}],"x-required-scope":"webhooks:manage","parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEndpointList"}}}},"401":{"description":"Missing, invalid or revoked API key","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope, role, plan or browser-origin refusal","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation failed","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; see RateLimit-* and Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}},"post":{"summary":"Create an endpoint. The signing secret is returned once.","tags":["Webhooks"],"security":[{"apiKey":["webhooks:manage"]},{"oauth2":["webhooks:manage"]}],"x-required-scope":"webhooks:manage","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"Up to 255 printable characters. Replays return the stored response with `Idempotent-Replayed: true` for 24 hours; reuse with a different body is 422.","schema":{"type":"string","maxLength":255}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWebhookEndpoint"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEndpoint"}}}},"401":{"description":"Missing, invalid or revoked API key","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope, role, plan or browser-origin refusal","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation failed","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; see RateLimit-* and Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/webhook-endpoints/{id}":{"get":{"summary":"Get an endpoint","tags":["Webhooks"],"security":[{"apiKey":["webhooks:manage"]},{"oauth2":["webhooks:manage"]}],"x-required-scope":"webhooks:manage","parameters":[{"name":"id","in":"path","required":true,"description":"Resource id","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEndpoint"}}}},"401":{"description":"Missing, invalid or revoked API key","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope, role, plan or browser-origin refusal","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation failed","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; see RateLimit-* and Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}},"patch":{"summary":"Update URL, events or status","tags":["Webhooks"],"security":[{"apiKey":["webhooks:manage"]},{"oauth2":["webhooks:manage"]}],"x-required-scope":"webhooks:manage","parameters":[{"name":"id","in":"path","required":true,"description":"Resource id","schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWebhookEndpoint"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEndpoint"}}}},"401":{"description":"Missing, invalid or revoked API key","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope, role, plan or browser-origin refusal","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation failed","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; see RateLimit-* and Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}},"delete":{"summary":"Delete (or disable, when it has a delivery log)","tags":["Webhooks"],"security":[{"apiKey":["webhooks:manage"]},{"oauth2":["webhooks:manage"]}],"x-required-scope":"webhooks:manage","parameters":[{"name":"id","in":"path","required":true,"description":"Resource id","schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Deleted"},"401":{"description":"Missing, invalid or revoked API key","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope, role, plan or browser-origin refusal","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation failed","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; see RateLimit-* and Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/webhook-endpoints/{id}/rotate-secret":{"post":{"summary":"Rotate the signing secret","tags":["Webhooks"],"security":[{"apiKey":["webhooks:manage"]},{"oauth2":["webhooks:manage"]}],"x-required-scope":"webhooks:manage","parameters":[{"name":"id","in":"path","required":true,"description":"Resource id","schema":{"type":"string","format":"uuid"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Up to 255 printable characters. Replays return the stored response with `Idempotent-Replayed: true` for 24 hours; reuse with a different body is 422.","schema":{"type":"string","maxLength":255}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEndpoint"}}}},"401":{"description":"Missing, invalid or revoked API key","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope, role, plan or browser-origin refusal","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation failed","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; see RateLimit-* and Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/webhook-endpoints/{id}/test":{"post":{"summary":"Send a signed ping now","tags":["Webhooks"],"security":[{"apiKey":["webhooks:manage"]},{"oauth2":["webhooks:manage"]}],"x-required-scope":"webhooks:manage","parameters":[{"name":"id","in":"path","required":true,"description":"Resource id","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Result"},"401":{"description":"Missing, invalid or revoked API key","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope, role, plan or browser-origin refusal","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation failed","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; see RateLimit-* and Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/webhook-endpoints/{id}/deliveries":{"get":{"summary":"Delivery log, newest first","tags":["Webhooks"],"security":[{"apiKey":["webhooks:manage"]},{"oauth2":["webhooks:manage"]}],"x-required-scope":"webhooks:manage","parameters":[{"name":"id","in":"path","required":true,"description":"Resource id","schema":{"type":"string","format":"uuid"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"before","in":"query","schema":{"type":"string"},"description":"`next_cursor` from the previous page"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookDeliveryList"}}}},"401":{"description":"Missing, invalid or revoked API key","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope, role, plan or browser-origin refusal","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation failed","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; see RateLimit-* and Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/webhook-deliveries/{id}/replay":{"post":{"summary":"Re-deliver a logged event (same event id)","tags":["Webhooks"],"security":[{"apiKey":["webhooks:manage"]},{"oauth2":["webhooks:manage"]}],"x-required-scope":"webhooks:manage","parameters":[{"name":"id","in":"path","required":true,"description":"Resource id","schema":{"type":"string","format":"uuid"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Up to 255 printable characters. Replays return the stored response with `Idempotent-Replayed: true` for 24 hours; reuse with a different body is 422.","schema":{"type":"string","maxLength":255}}],"responses":{"202":{"description":"Accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookDelivery"}}}},"401":{"description":"Missing, invalid or revoked API key","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope, role, plan or browser-origin refusal","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation failed","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; see RateLimit-* and Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/usage":{"get":{"summary":"Plan, envelope usage and API limits","tags":["Account"],"security":[{"apiKey":["usage:read"]},{"oauth2":["usage:read"]}],"x-required-scope":"usage:read","parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Usage"}}}},"401":{"description":"Missing, invalid or revoked API key","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope, role, plan or browser-origin refusal","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation failed","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; see RateLimit-* and Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/plans":{"get":{"summary":"Public plan list and prices (USD only unless INR billing is enabled)","tags":["Account"],"security":[],"responses":{"200":{"description":"Plans with prices in each offered currency; Enterprise has no list price."}}}}},"webhooks":{"envelope.created":{"post":{"summary":"envelope.created","parameters":[{"name":"Lystsign-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"<t>.<body>\">"},{"name":"Lystsign-Event-Id","in":"header","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEvent"}}}},"responses":{"2XX":{"description":"Acknowledge within 10 seconds. Anything else is retried with backoff for about 24 hours."}}}},"envelope.sent":{"post":{"summary":"envelope.sent","parameters":[{"name":"Lystsign-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"<t>.<body>\">"},{"name":"Lystsign-Event-Id","in":"header","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEvent"}}}},"responses":{"2XX":{"description":"Acknowledge within 10 seconds. Anything else is retried with backoff for about 24 hours."}}}},"envelope.completed":{"post":{"summary":"envelope.completed","parameters":[{"name":"Lystsign-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"<t>.<body>\">"},{"name":"Lystsign-Event-Id","in":"header","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEvent"}}}},"responses":{"2XX":{"description":"Acknowledge within 10 seconds. Anything else is retried with backoff for about 24 hours."}}}},"envelope.declined":{"post":{"summary":"envelope.declined","parameters":[{"name":"Lystsign-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"<t>.<body>\">"},{"name":"Lystsign-Event-Id","in":"header","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEvent"}}}},"responses":{"2XX":{"description":"Acknowledge within 10 seconds. Anything else is retried with backoff for about 24 hours."}}}},"envelope.voided":{"post":{"summary":"envelope.voided","parameters":[{"name":"Lystsign-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"<t>.<body>\">"},{"name":"Lystsign-Event-Id","in":"header","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEvent"}}}},"responses":{"2XX":{"description":"Acknowledge within 10 seconds. Anything else is retried with backoff for about 24 hours."}}}},"envelope.expired":{"post":{"summary":"envelope.expired","parameters":[{"name":"Lystsign-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"<t>.<body>\">"},{"name":"Lystsign-Event-Id","in":"header","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEvent"}}}},"responses":{"2XX":{"description":"Acknowledge within 10 seconds. Anything else is retried with backoff for about 24 hours."}}}},"envelope.reminded":{"post":{"summary":"envelope.reminded","parameters":[{"name":"Lystsign-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"<t>.<body>\">"},{"name":"Lystsign-Event-Id","in":"header","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEvent"}}}},"responses":{"2XX":{"description":"Acknowledge within 10 seconds. Anything else is retried with backoff for about 24 hours."}}}},"recipient.viewed":{"post":{"summary":"recipient.viewed","parameters":[{"name":"Lystsign-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"<t>.<body>\">"},{"name":"Lystsign-Event-Id","in":"header","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEvent"}}}},"responses":{"2XX":{"description":"Acknowledge within 10 seconds. Anything else is retried with backoff for about 24 hours."}}}},"recipient.signed":{"post":{"summary":"recipient.signed","parameters":[{"name":"Lystsign-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"<t>.<body>\">"},{"name":"Lystsign-Event-Id","in":"header","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEvent"}}}},"responses":{"2XX":{"description":"Acknowledge within 10 seconds. Anything else is retried with backoff for about 24 hours."}}}},"recipient.declined":{"post":{"summary":"recipient.declined","parameters":[{"name":"Lystsign-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"<t>.<body>\">"},{"name":"Lystsign-Event-Id","in":"header","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEvent"}}}},"responses":{"2XX":{"description":"Acknowledge within 10 seconds. Anything else is retried with backoff for about 24 hours."}}}},"document.converted":{"post":{"summary":"document.converted","parameters":[{"name":"Lystsign-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"<t>.<body>\">"},{"name":"Lystsign-Event-Id","in":"header","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEvent"}}}},"responses":{"2XX":{"description":"Acknowledge within 10 seconds. Anything else is retried with backoff for about 24 hours."}}}},"document.conversion_failed":{"post":{"summary":"document.conversion_failed","parameters":[{"name":"Lystsign-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"t=<unix seconds>,v1=<hex HMAC-SHA256 of \"<t>.<body>\">"},{"name":"Lystsign-Event-Id","in":"header","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEvent"}}}},"responses":{"2XX":{"description":"Acknowledge within 10 seconds. Anything else is retried with backoff for about 24 hours."}}}}}}