---
title: "Create a new receipt upload"
method: POST
path: "/v1/expenses/card/{expense_id}/receipt_upload"
tags: ["Receipt Upload"]
---

# Create a new receipt upload

`POST /v1/expenses/card/{expense_id}/receipt_upload`

The `uri` will be a pre-signed S3 URL allowing you to upload the receipt securely. This URL can only be used for a `PUT` operation and expires 30 minutes after its creation. Once your upload is complete, we will try to match the receipt with existing expenses.

Refer to these [docs](https://docs.aws.amazon.com/AmazonS3/latest/dev/PresignedUrlUploadObject.html) on how to upload to this pre-signed S3 URL. We highly recommend using one of AWS SDKs if they're available for your language to upload these files.

## Path parameters

- `expense_id` string, required

## Request body

- ReceiptUploadRequest — The parameter for creating a receipt upload.
  - `receipt_name` string, required — The name of the receipt (with the file extension).

## Response `201`

Upload a new receipt response.

- CreateAsyncFileUploadResponse — The pre-signed file upload URI and unique identifier of the request.
  - `id` string, required — The unique identifier for the request.
  - `uri` string, required — The pre-signed S3 link that should be used to upload the file. The maximum size accepted for this document is 50 MB.

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not found

---

[API](https://skmtc.net/brex-com/apis/expenses-api.md) · [All operations](https://skmtc.net/brex-com/apis/expenses-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/brex-com/expenses-api/revisions/83302fc5e4a8/schema)
