Upload a ZIP archive
Uploads a ZIP archive of up to 100 documents, 200 MB unpacked and 50 MB per file. Every file becomes an upload with the batch's document type. Files of an unsupported type are listed as failed uploads. Poll the batch until its status is no longer processing.
apiKeyAuthorizationBearer <token>A company API key created in Tabula.
multipart/form-data- body
file*stringThe ZIP archive, up to 200 MB.
documentType?stringWhat the file is. auto lets Tabula tell supplier invoices, customer invoices and other documents apart; it does not detect bank statements. other_document files the file in other documents without booking it.
"auto""auto""supplier_invoice""customer_invoice""bank_statement""other_document"externalId?stringYour ID for the file. A repeated request with the same externalId returns the original upload. Without one, a repeated file with the same document type returns the original upload.
1 <= length <= 200Accepted
application/json- response
id*stringUpload batch ID.
uuidexternalId*|The externalId sent with the archive.
documentType*string"auto""supplier_invoice""customer_invoice""bank_statement""other_document"status*stringprocessing: at least one upload is queued or processing. completed: every upload completed. completed_with_errors: some uploads failed. failed: every upload failed.
"processing""completed""completed_with_errors""failed"counts*Uploads in the batch by status.
uploads*array<>One upload per file in the archive.
createdAt*stringdate-timecurl -X POST "https://example.com/v1/uploads/batches" \ -F file="string"{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "externalId": "string", "documentType": "auto", "status": "processing", "counts": { "total": 0, "queued": 0, "processing": 0, "completed": 0, "failed": 0, "deleted": 0 }, "uploads": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "batchId": "5579c111-9c50-47e2-af92-f16d52e63189", "externalId": "string", "fileName": "string", "documentType": "auto", "status": "queued", "result": { "type": "invoice", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "url": "http://example.com" }, "error": { "code": "unsupported_file_type", "message": "string" }, "createdAt": "2019-08-24T14:15:22Z" } ], "createdAt": "2019-08-24T14:15:22Z"}Upload a document POST
Uploads one invoice (PDF, or XML e-invoice such as XRechnung or ZUGFeRD), other document (PDF or XML) or bank statement (PDF), up to 50 MB. Tabula reads the file after the request returns; poll the upload until its status is completed or failed.
Get an upload GET
Returns the upload's status. Once completed, result links to what Tabula made of the file; once failed, error says why. While the upload is queued or processing, the Retry-After header suggests when to poll again.