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.
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/files" \ -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, "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": {} } ] }}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.
Get a download URL for one file in the collection (EAS-114)
Companion to GET /v1/documents/{id}/file, which only ever serves "file #1" (the legacy single-file columns) — this works for any file in the ordered collection, including the first. Returns a 15-minute presigned URL.