---
title: "Create signing document"
method: POST
path: "/document/"
tags: ["document"]
---

# Create signing document

`POST /document/`

## Request body

- DocumentPost — Send a document to be signed. In addition to the required fields, the POST must also contain either text (raw html) or a reference to a saved template (html) or a templatepdf (uploaded pdf). Also recommended - do_email, auto_archive and pdftext (if using pdf).
  - `group` string, uri, required
  - `name` string, required
  - `text` string — Raw html. This API call must contain either one of the attributes text, templatepdf, template.
  - `templatepdf` string, uri — Resource URI of templatepdf object. This API call must contain either one of the attributes text, templatepdf, template.
  - `template` string, uri — Resource URI of text template object. This call must contain either one of the attributes text, templatepdf, template.
  - `signers` DocumentSignerPost[], required
    - `order` integer — Zero-indexed signer ordering, deprecated. Ordering of signers/witnesses/approvers is now the natural order of your signers list.
    - `email` string, email, required
    - `firstname` string, required
    - `lastname` string, required
    - `attachments` string[] — List of attachment resource URIs
    - `behalfof` string — deprecated, do not use
    - `decide_later` boolean — Add this you want the previous signer or approver to decide who the next person should be. Commonly used for witnesses (see \"role\"). If you use this leave all other attributes blank. First signer cannot use this attribute.
    - `expires` string, date-time, nullable — ISO8601 formed datetime, set to TZ of sender or timezone if used
    - `message` string — Your personal message for the party, entered in the centre of the group email template. Use the name of a saved email template preceeded by a hash symbol to use that template. If there is more than one template of the same name it will select the one last modified.
    - `reviewers` ReviewersPost[]
      - `firstname` string
      - `lastname` string
      - `email` string, email, required
      - `include_link` boolean — include a link to the signing pages enabling a reviewer to signer
    - `role` 'witness' | 'approver' — If this person is a witness use \"witness\". Required where a witness is defined in your PDF. If this person is a normal signer, use \"approver\" to switch to an approver role. Witnesses and witnessed signers also require \"sms\" (see also \"decide_later\").
    - `sms` string — Use international format number to add SMS verification. Required if a witness or a witnessed signer.
    - `subject` string — Subject line for outbound email
    - `timezone` string — TZ of the signer, must be valid TZ as per timezoneenum (see User for timezoneenum details). If blank uses tz of the sender.
  - `signature_type` integer — Use 4 to get your executed PDF Certified. Recommended. Defaults to 1 (uses a sha256 hash for document integrity).
  - `append_pdf` boolean — Append Legalesign validation info to final PDF. If not included uses the group default.
  - `auto_archive` boolean — Send to archive soon after signing. Keeps web app clutter free
  - `do_email` boolean — Use Legalesign email to send notification emails. If false suppresses all emails.
  - `cc_emails` string — Comma delimited string of email addresses that are notified of signing or rejection.
  - `convert_sender_to_signer` boolean — If any sender fields are left blank, convert them to fields for the first recipient.
  - `footer` string — Text doc only. The footer for the final pdf. Use keyword \"default\" to use group default footer.
  - `footer_height` integer — Text based doc only. Pixel height of PDF footer, if used. 1px = 0.025cm
  - `header` string — Text based doc only. The header for the final pdf. Use keyword \"default\" to use group header footer.
  - `header_height` integer — Text based doc only. Pixel height of final PDF footer, if used. 1px = 0.025cm
  - `pdf_password` string — Set a password. Must be ascii encode-able, you must also set signature_type to 4 and choose a pdf_password_type.
  - `pdf_password_type` 1 | 2 — 1 to store password, 2 for to delete from our records upon final signing.
  - `pdftext` object — Assign values to PDF sender fields, use field labels as keys. Requires unique fields labels. See also strict_fields.
  - `redirect` string — URL to send the signer to after signing (instead of download page). Your URL will include query parameters with ID and state information as follows: YOUR-URL?signer=[signer_uid]&doc=[doc_id]&group=[group_id]&signer_state=[signer_status]&doc_state=[doc_status]
  - `reminders` string — Put 'default' if you wish to use the default reminder schedule in the group (go to web app to set default schedule)
  - `return_signer_links` boolean — Return document links for signers in the response BODY.
  - `signers_in_order` boolean — Notify signers in their order sequence. If false all are notified simulataneously.
  - `signertext` object — Add custom placeholders to signer fields, using labels as keys in an object (as for pdftext). Relies on unique labelling.
  - `strict_fields` boolean — pdftext fails silently for invalid field value, set to true to return an error
  - `tag` string
  - `tag1` string
  - `tag2` string
  - `user` string, uri — Assign document another user in the group. Defaults to API

## Response `201`

Success. Document URI will be in Location header. If return_signer_links was set to true, the body will contain a JSON dict containing the signing links.

- object
  - `signer_1` string

## Other responses

- `400` — Bad Request, read response for error information
- `401` — Unauthorized
- `429` — Throttled
- `500` — Usually unparseable JSON, or mis-referenced object

---

[API](https://skmtc.net/legalesign/apis/legalesign-api.md) · [All operations](https://skmtc.net/legalesign/apis/legalesign-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/legalesign/legalesign-api/revisions/3bf301e758f2/schema)
