Prerequisites
- A valid API key or OAuth app with the
sign:requestsscope. Pass credentials asAuthorization: API-key <your-key>orBearer <token>on every request. - From file: a PDF accessible via a public URL, or a file you can upload directly.
- From template: a Lumin template ID and the
templatesscope (OAuth) or API key access to templates. See List Templates to list available templates in your Workspace.
Integration steps
Choose how to send
Use one of two endpoints:
See Send Signature Request and Send Signature Request from Template for full request schemas.
| Method | Endpoint | When to use |
|---|---|---|
| From file | POST /signature_request/send | You already have a PDF — link, upload, or host it yourself. |
| From template | POST /signature_request/send-from-template | You have a Lumin template with merge tags, form fields, or variables to fill in. |
Prepare the document
- From file
- From template
Supply the document in one of four ways. Only one field is allowed per request.
| Field | Type | Description |
|---|---|---|
file_url | string | Public HTTPS URL to a single file |
file_urls | array | Array of public HTTPS URLs (multiple files) |
file | binary | A single uploaded file (multipart) |
files | array | Multiple uploaded files (multipart) |
Configure signers
Each signer requires
From file — assign From template — include Optionally add
email_address and name. Set signing_type to control signing order:| Value | Behaviour |
|---|---|
SAME_TIME | All signers receive the request at once. Default. |
ORDER | Signers are notified sequentially by group number. |
group when using ORDER:signer_role when the template defines roles:viewers for recipients who can view but not sign.Send the request
- From file
- From template
201 with the new request ID:WAITING_FOR_PROCESSING is the initial status. Processing is asynchronous, the request transitions to NEED_TO_SIGN or WAITING_FOR_OTHERS shortly after creation.Check the status
Poll
GET /signature_request/{id} to read the current state of the request and each signer:| Status | Meaning |
|---|---|
WAITING_FOR_PROCESSING | Request received, being prepared |
NEED_TO_SIGN | The sender must also sign (when sender is a signer) |
WAITING_FOR_OTHERS | Waiting on at least one signer |
APPROVED | All signers have signed |
REJECTED | A signer declined |
FAILED | Processing error — check reason |
CANCELLED | Manually cancelled |
Download the signed file
Once the status is The
APPROVED, retrieve the signed document:signed_url is a pre-signed HTTPS download link that expires in 30 minutes.type value | Returns |
|---|---|
agreement | The signed agreement PDF (default) |
coc | Certificate of Completion PDF |
merged | Agreement + Certificate of Completion in a single PDF |
Webhooks
Instead of polling, listen for thesignature_request_approved webhook event to be notified when all signers complete the request. See the Webhooks guide to configure an endpoint.