Attach the PDF to a draft
Multipart upload (field "file", 25 MB max). Accepts PDF, Word (.doc/.docx), Excel (.xls/.xlsx), CSV (comma-, semicolon- or pipe-separated), PowerPoint (.ppt/.pptx), and image (JPG/PNG/GIF) files, detected from content, not the filename — anything that isn't already a PDF is converted to one server-side before it's stored. Page count and SHA-256 are computed from the resulting PDF and replace the client-asserted values. Drafts only. An empty file is a 400, and the stored file name is cut to 255 characters.
View as MarkdownAuthorization
bearer In: header
Path Parameters
Request Body
multipart/form-data
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/documents/string/file" \ -F file="string"{ "document": { "id": "string", "name": "string", "url": "string", "status": "string", "created": "2019-08-24T14:15:22Z", "modified": "2019-08-24T14:15:22Z", "size": 0, "pages": 0, "templateId": "string", "hasFile": true, "hasFinalFile": true, "files": [ { "id": "string", "name": "string", "position": 0, "size": 0, "pages": 0, "created": "2019-08-24T14:15:22Z", "status": "ready", "conversionError": "string" } ], "signingMode": "string", "message": "string", "sentAt": "2019-08-24T14:15:22Z", "completedAt": "2019-08-24T14:15:22Z", "voidedAt": "2019-08-24T14:15:22Z", "voidReason": "string", "declinedAt": "2019-08-24T14:15:22Z", "expiresAt": "2019-08-24T14:15:22Z", "autoRemindDays": 0, "lastRemindedAt": "2019-08-24T14:15:22Z", "legalHold": true, "scheduledPurgeAt": "2019-08-24T14:15:22Z", "visibility": "string", "ownerId": "string", "requiresNotarization": true, "notaryState": "string", "recipients": [ { "id": "string", "name": "string", "email": "string", "role": "string", "status": "string", "orderIndex": 0, "signedAt": "2019-08-24T14:15:22Z", "viewedAt": "2019-08-24T14:15:22Z", "declinedAt": "2019-08-24T14:15:22Z", "declineReason": "string", "hasAccessCode": true, "verificationMethod": "none", "signature": "string", "isGroup": true, "groupLabel": "string", "signedByName": "string", "signedByEmail": "string", "members": [ { "id": "string", "name": "string", "email": "string", "viewedAt": "2019-08-24T14:15:22Z", "declinedAt": "2019-08-24T14:15:22Z" } ], "reassignedFromName": "string", "reassignedFromEmail": "string", "reassignReason": "string", "reassignedAt": "2019-08-24T14:15:22Z" } ], "fields": [ { "id": "string", "type": "signature", "x": 0, "y": 0, "width": 0, "height": 0, "page": 0, "required": true, "label": "string", "value": "string", "recipientId": "string", "fileId": "string", "config": {} } ] }}Get a download URL
Returns a 15-minute presigned URL. Defaults to the final signed artifact when it exists, else the original; force one with ?which. The URL carries an attachment disposition by default, so the browser saves it; ?disposition=inline makes the browser render it instead, which is what printing and in-tab previews need.
Append another file to a draft (EAS-114)
Adds one more file to the document's ordered collection — a real onboarding pack or closing set is several PDFs signed as one package. POST /v1/documents/{id}/file (singular) still attaches/replaces the FIRST file, for every caller written before this endpoint existed; this is purely additive. Same upload rules as the singular endpoint (multipart field "file", 25 MB max, non-PDF formats converted server-side). Fields are placed per file — see DocumentField.fileId — and the completed download merges every file in order with the certificate of completion last. Drafts only.