Send a PDF for legally binding signature. Costs 1 credit. Provide the PDF either as document_base64 OR as a public https document_url (max 10MB). recipients = [{"name": "...", "email": "...", "role": "signer"}]. Each recipient gets a signing email; poll get_envelope_status for progress. Requires `Authorization: Bearer zs_...`.
IMPORTANT: the PDF is REJECTED unless it contains signing-field placeholder tags.
zSign field placeholder syntax:
- Format: {type:party:name} -- add * after the type to mark the field required, e.g. {signature*:signer}
- Types: signature, initials, text, date
- party must exactly match the recipient's "role" value passed when sending (MCP default role is "signer")
- name is optional for signature/initials/date and REQUIRED for text fields; letters, digits, and underscores only
- Keep each tag on a single line in a standard font -- a tag split across lines is not detected
- The tag's position in the document becomes the field's position; the signed value is drawn over it
- Tags can be visible text in the PDF body, or the name of a PDF form field / annotation
Examples: {signature*:signer}, {initials:signer}, {text*:signer:full_name}, {date:signer:signed_on}
Sample PDF: https://storage.googleapis.com/zsign-public/simple_contract_1.pdf
Docs: https://zsign.io/docs/api