---
title: "Create a new receipt match"
method: POST
path: "/v1/expenses/card/receipt_match"
tags: ["Receipt Match"]
---

# Create a new receipt match

`POST /v1/expenses/card/receipt_match`

## Request

- Base URL: `https://api.brex.com`
- URL: `https://api.brex.com/v1/expenses/card/receipt_match`
- Auth: OAuth 2
  - Authorization code: `https://accounts-api.brex.com/oauth2/default/v1/authorize`
  - Token URL: `https://accounts-api.brex.com/oauth2/default/v1/token`
- TypeScript: <https://skmtc.dev/brex-com/apis/expenses-api/docs/v1/expenses/card/receipt_match/post.ts> (a function with typed inputs; its response is checked against the schema)

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.

## Request body

- ReceiptMatchRequest: The parameter for creating a receipt match.
  - `receipt_name` string, required: The name of the receipt (with the file extension). It will be used in the matching result email.

## Response `201`

Create a new receipt match 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

---

[API](https://skmtc.dev/brex-com/apis/expenses-api.md) - [All operations](https://skmtc.dev/brex-com/apis/expenses-api/llms.txt) - [OpenAPI document](https://skmtc.dev/brex-com/apis/expenses-api/revisions/ed51dbb5ef45?raw)
