Upload expense receipts

Uploads receipt files to a transaction's expense. Send them as multipart/form-data in the files field. The identifier can be the card transaction ID (CTX-...) or its expense ID (EXP-...).

Accepted formats are PNG, JPG/JPEG, HEIC, WebP, and PDF, up to 10 MB per file and 5 files per request. If any file fails these checks, nothing is uploaded and the call returns 422 with UNSUPPORTED_FILE_TYPE, FILE_TOO_LARGE, or TOO_MANY_FILES. A HEIC file is also stored as a JPEG copy, so it adds two receipts.

The response is {"success": true} with the updated transaction in data, in the same shape as Fetch expense transaction details, including the new receipts. Uploading can also move an incomplete expense to pending_review once its required fields are filled. To remove a receipt, use Delete expense receipt.

Path Params
string
required

Unique identifier of the expense transaction

Body Params
files
array of files
required

Receipt files to upload (maximum 5 per request).

Headers
string

A unique key, such as a UUID, that makes it safe to retry this request. Reuse the same key when you retry. See Idempotency.

Responses

429

Too many requests. You sent more than 100 requests in 30 seconds from one IP address. This response has no JSON body. See Rate limits.

500

Unexpected error

Language
Credentials
Header
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json