Uploading payslips is a three-step flow:
POST /entries/payslips/presign, providing
each PDF file name (and optional external identifier). The response
includes presigned_url and path values for every requested file.presigned_url using an HTTP PUT
request with Content-Type: application/octet-stream. Each file must be a
searchable, machine-readable PDF (scanned images are not supported).path (and optional external_document_id) for every
uploaded file so Teal can process the documents.
The path values you submit must match the ones returned by the presign
step. Any files that failed validation or upload are reported in the
payslip_errors array.POST /entries/payslips/presign with the list
of filenames (and optional external identifiers) you intend to upload. The
response returns presigned_url and path fields for each file.presigned_url, perform an HTTP PUT
with Content-Type: application/octet-stream, streaming the PDF bytes. Files must be
searchable, machine-readable PDFs (scanned images are not supported).POST /entries/payslips (this endpoint) with a
JSON payload that includes the path for each uploaded file and an optional
external_document_id. Teal uses this metadata to process the uploaded
documents. Any files that fail validation are listed in payslip_errors in
the response.Bearer token for authentication. The token should be the one returned by the /user-tokens endpoint.
1