Appearance
Collect details with an intake link
Often you don't have the details a document needs, such as the other party's legal name, address or start date. An intake link asks for them. JustDocs emails one person a short form made from the documents' blank fill-ins. Their answers fill the documents. They don't need an account.
1. Start the documents with blanks
Start each document from its template without the values you want to ask for. Every fill-in left blank becomes a question.
bash
curl -X POST https://tryjustdocs.com/api/v1/documents \
-H "Authorization: Bearer $JUSTDOCS_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "template_id": "5d0f8c3a-6b1e-4f2a-9c7d-3e8b1a2f4c6d", "title": "Consulting agreement — Acme" }'Note the document's id and draft_revision. The intake link names the exact revision, so the form matches the document. If the document changes before you send the link, you get 409.
Written and uploaded documents can be filled in this way. If every fill-in already has a value, there's nothing to ask, and you get 409.
2. Choose what happens after they answer
after | What happens |
|---|---|
review (default) | Their answers fill the documents, and the person who sent the link is emailed to review them and send them for signing. |
sign | Their answers fill the documents, and they go straight on to sign them. Anyone else in signing.recipients signs too. |
3. Send the link
Review first:
bash
curl -X POST https://tryjustdocs.com/api/v1/intake-requests \
-H "Authorization: Bearer $JUSTDOCS_API_KEY" \
-H "Idempotency-Key: deal-4821-intake" \
-H "Content-Type: application/json" \
-d '{
"title": "Your details for the consulting agreement",
"documents": [{ "document_id": "8a1f5c2e-3b4d-4e6f-9a7b-1c2d3e4f5a6b", "draft_revision": 1 }],
"respondent": { "name": "Ada Lovelace", "email": "ada@example.com" },
"after": "review"
}'Straight on to signing. Say which role the respondent signs as, and who else signs:
json
{
"documents": [{ "document_id": "8a1f5c2e-3b4d-4e6f-9a7b-1c2d3e4f5a6b", "draft_revision": 1 }],
"respondent": { "name": "Ada Lovelace", "email": "ada@example.com" },
"after": "sign",
"signing": {
"respondent_role": "client",
"recipients": [{ "role_key": "provider", "name": "Olga Owner", "email": "olga@example.com" }],
"routing": "sequential"
}
}Every signing role in the documents needs someone. If one is missing, you get 422 Say who signs as ….
The link expires after expires_in_days, 14 days by default. See limits.
With an agent key
create_intake_request through an agent key, or a key that needs approval, returns 202:
json
{ "status": "awaiting_approval", "approval": { "id": "a4c6e8b2-…", "kind": "intake.create", "status": "pending" } }Nothing is created or emailed until an owner or admin approves. Then the link is created and sent, and the approval's intake_request_id names it.
4. Get the answers
Listen for intake.submitted, or poll GET /intake-requests/{id}. Once it's submitted, the response includes answers, and the documents are filled. With after: "sign", signing_request_id names the signing request that was created, which you can follow like any other.
| Status | |
|---|---|
open | Waiting for answers. |
submitted | Answered. The documents are filled. |
voided | Cancelled by the sender. |
expired | Not answered in time. |