POST /v1/signature/envelopes
const url = 'https://api.asap.cool/v1/signature/envelopes';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"cc_recipients":["example"],"consent_text_version":"example","expires_at":"example","labels":["example"],"message":"example","reminder_interval_hours":1,"reminder_max_count":1,"reply_to":"example","routing_mode":"example","sender_name":"example","signers":[{"email":"example","full_name":"example","phone":"example","routing_order":1,"verification_method":"example"}],"source_document_id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","source_kind":"example","subject":"example","template_id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.asap.cool/v1/signature/envelopes \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "cc_recipients": [ "example" ], "consent_text_version": "example", "expires_at": "example", "labels": [ "example" ], "message": "example", "reminder_interval_hours": 1, "reminder_max_count": 1, "reply_to": "example", "routing_mode": "example", "sender_name": "example", "signers": [ { "email": "example", "full_name": "example", "phone": "example", "routing_order": 1, "verification_method": "example" } ], "source_document_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "source_kind": "example", "subject": "example", "template_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" }'Authorizations
Section intitulée « Authorizations »Request Body required
Section intitulée « Request Body required »Body of POST /v1/signature/envelopes. org_id is never accepted here.
object
Addresses copied on the completion notification (Cc; defaults to empty).
Consent-text version presented to signers (defaults to v1).
When the envelope (and its tokens) expire (RFC3339).
Free-form labels for organizing / filtering (defaults to empty).
Optional request-email message.
Delay between two automatic reminders, in hours (omitted = default cadence).
How many automatic reminders may fire (omitted = a single reminder).
Optional Reply-To for the signature-request email, so signer replies
reach this address instead of the technical ASAP From.
Routing mode: parallel (default — every signer at once) or
sequential (unlocked one after another by routing_order).
Optional display name prefixed to the request email’s From, so it
appears under the org’s name (the ASAP address is unchanged).
Signers (at least one).
One signer in a create request.
object
Signer email (required).
Optional full name.
Phone (E.164) for SMS OTP; required when verification_method is
sms_otp.
0-based position in a sequential signing order (defaults to 0; ignored
when the envelope routes in parallel).
Identity-verification method: email_otp (default), sms_otp, or
none (sign without a code).
Logical reference to the signed document (required for invoice_quote).
What the envelope wraps (invoice_quote / standalone_document).
Optional request-email subject.
Optional template (UUID) whose presets pre-fill any omitted
subject/message/labels/cc_recipients.
Example generated
{ "cc_recipients": [ "example" ], "consent_text_version": "example", "expires_at": "example", "labels": [ "example" ], "message": "example", "reminder_interval_hours": 1, "reminder_max_count": 1, "reply_to": "example", "routing_mode": "example", "sender_name": "example", "signers": [ { "email": "example", "full_name": "example", "phone": "example", "routing_order": 1, "verification_method": "example" } ], "source_document_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "source_kind": "example", "subject": "example", "template_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"}Responses
Section intitulée « Responses »Draft envelope created with its signers.
Public projection of an [Envelope] with its signers and audit chain.
document_hash is surfaced as hex; secrets are never present.
object
Targeted assurance level.
The audit chain (present on get, omitted elsewhere).
Public projection of an [AuditEvent]. Hashes are lowercase hex so a
client can re-verify the chain.
object
SHA-256 of the canonical content (hex).
Structured payload.
Event kind.
Stable identifier.
When the event occurred (RFC3339).
Previous link’s content hash (hex), None at genesis.
0-based position in the chain.
Signer the event concerns, if any.
Addresses copied on the completion notification (Cc; may be empty).
When every signer signed (RFC3339).
Consent-text version presented to signers.
Creation timestamp (RFC3339).
SHA-256 of the frozen document (hex), set at send time.
When the envelope (and its tokens) expire (RFC3339).
Whether a proof bundle is available for download.
Whether a signed composited document (source + stamped signatures) is available for download (positioned-field envelopes only).
Stable identifier.
Free-form labels for organizing / filtering (may be empty).
Optional request-email message.
How many automatic reminders have fired so far.
Delay between two automatic reminders, in hours (null = default cadence).
How many automatic reminders may fire over the envelope’s lifetime.
Optional Reply-To for the signature-request email.
Routing mode.
Optional From display name for the signature-request email.
Signers on the envelope (present on get/create, omitted on list).
Public projection of a [Signer]. Never carries access_token_hash or
otp_hash (secrets stay server-side).
object
When the signer gave consent (RFC3339).
Creation timestamp (RFC3339).
Signer email.
Optional full name.
Stable identifier.
Number of failed OTP attempts on the current challenge.
Phone (E.164) for SMS OTP, if set.
Position in a sequential order (0-based).
When the signer signed (RFC3339).
Source IP captured at signing.
Per-signer status.
When the access token expires (RFC3339), if issued.
Last-update timestamp (RFC3339).
Identity-verification method.
Logical reference to the signed document.
What the envelope wraps.
Lifecycle status.
Optional request-email subject.
Last-update timestamp (RFC3339).
Example generated
{ "assurance_level": "example", "audit_chain": [ { "content_hash": "example", "event_data": "example", "event_type": "example", "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "occurred_at": "example", "prev_hash": "example", "seq_index": 1, "signer_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" } ], "cc_recipients": [ "example" ], "completed_at": "example", "consent_text_version": "example", "created_at": "example", "document_hash": "example", "expires_at": "example", "has_proof": true, "has_signed_document": true, "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "labels": [ "example" ], "message": "example", "reminder_count": 1, "reminder_interval_hours": 1, "reminder_max_count": 1, "reply_to": "example", "routing_mode": "example", "sender_name": "example", "signers": [ { "consent_given_at": "example", "created_at": "example", "email": "example", "full_name": "example", "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "otp_attempts": 1, "phone": "example", "routing_order": 1, "signed_at": "example", "signed_ip": "example", "status": "example", "token_expires_at": "example", "updated_at": "example", "verification_method": "example" } ], "source_document_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "source_kind": "example", "status": "example", "subject": "example", "updated_at": "example"}No active org.
Generic error body returned by API handlers when they fail. code is a
stable machine-readable token; message is human-friendly and meant for
surfacing to end users.
object
Stable machine token (e.g. invalid_credentials).
Offending request field for validation errors, when known.
Human-readable message.
Example generated
{ "code": "example", "field": "example", "message": "example"}Missing signature:write scope.
Generic error body returned by API handlers when they fail. code is a
stable machine-readable token; message is human-friendly and meant for
surfacing to end users.
object
Stable machine token (e.g. invalid_credentials).
Offending request field for validation errors, when known.
Human-readable message.
Example generated
{ "code": "example", "field": "example", "message": "example"}Invalid payload.
Generic error body returned by API handlers when they fail. code is a
stable machine-readable token; message is human-friendly and meant for
surfacing to end users.
object
Stable machine token (e.g. invalid_credentials).
Offending request field for validation errors, when known.
Human-readable message.
Example generated
{ "code": "example", "field": "example", "message": "example"}