Start a file upload for a draft bill
Asks for a one-time upload slot for an invoice or receipt you want to attach to a draft bill. This endpoint does not take the file — it hands back where to send the bytes, and a session id you then pass to Attach files to a draft bill. Requires the work_orders:write permission.
Authorization
AuthorizationstringrequiredPath parameters
workOrderIdstringrequiredThe work order to act on. A Snowflake id, sent as a decimal string.
draftBillIdstringrequiredThe draft bill on this work order. A Snowflake id, sent as a decimal string.
Body
application/json
fileNamestringrequiredThe file's name, kept as the stored name. Between 1 and 250 characters.
fileSizeintegerrequiredSize of the file in bytes. At least 1, and at most 10485760 (10 MB) for a draft bill file.
contentTypestringrequiredThe file's MIME type. Draft bill files accept any image/* type and application/pdf — a narrower set than work order files. Between 1 and 200 characters.
Response
200 · Where to send the bytes.
sessionIdstringrequiredThe upload session. Pass this as uploadSessionId once the bytes are up.
endpointstringrequiredThe URL to send the file to. It is pre-signed and belongs to the storage provider, not to this API.
methodstringrequiredThe HTTP method to use against endpoint, for example PUT or POST.
fieldsobjectrequiredExtra form fields the storage provider needs, as name-to-value pairs. Send them with the file when method is POST; the object is empty when none are needed.
expiresstring · date-timerequiredWhen the slot stops accepting the file, in the company's timezone and without an offset.