---
title: "Expense Receipts API · COUNT Partner API"
description: "Expense receipts (pending receipts) capture out-of-pocket expenses before they are matched to bank transactions. Upload receipt images via multipart form…"
canonical: "https://developers.getcount.com/reference/expense-receipts"
source: "https://developers.getcount.com/reference/expense-receipts"
---
API Reference

# Expense Receipts

Expense receipts (pending receipts) capture out-of-pocket expenses before they are matched to bank transactions. Upload receipt images via multipart form data; API responses omit receiptUrl by design.

Last updated 2026-06-21

## Overview

The Expense Receipts API lets your integration list, upload, update, delete, and match pending receipts. Receipts can be linked to accounts, categories, vendors, projects, tags, and taxes using UUID fields.

Create and update support multipart/form-data with a `receipt` file field for the receipt image. JSON-only MCP tools cannot attach images — call the Partner HTTP API directly for uploads. Matched receipts cannot be updated or deleted until unmatched.

## Key concepts

### Multipart upload

POST and PATCH accept multipart/form-data with optional field `receipt` (image file, max 10 MB). Other fields are sent as form text fields with UUID values (accountUuid, categoryAccountUuid, vendorUuid, projectUuid, tagUuids, taxUuids).

### Matching

POST /{uuid}/match-manually links an unmatched receipt to an expense transaction using `transactionUuid`. DELETE /{uuid}/unmatch removes the link.

### Unmatched list

GET /unmatched returns only receipts where matched is false — useful for reconciliation workflows.

### Split receipts

Pass `receiptSplited: true` with a `splits` array to allocate amounts across multiple category accounts. Split validation runs on create and update.

## The expense receipt object

Fields returned on expense receipt records. receiptUrl is intentionally omitted from partner responses.

#### Attributes

`id` uuid

Expense receipt identifier (UUID).

`amount` number

Receipt amount (positive magnitude).

`currency` string

ISO 4217 currency code.

`date` date

Receipt date (ISO).

`description` string

Notes or memo for the receipt.

`matched` boolean

Whether the receipt is linked to a transaction.

`receiptSplited` boolean

Whether the receipt is split across multiple categories.

`account` object

Payment account for reimbursement.

`categoryAccount` object

Expense category account.

`vendor` object

Linked vendor, or null.

`project` object

Linked project, or null.

`customer` object

Linked customer, or null.

`tags` array

Tags attached to the receipt.

`taxes` array

Tax rates applied to the receipt.

`createdAt` datetime

ISO 8601 creation timestamp.

`updatedAt` datetime

ISO 8601 last update timestamp.

Example

```json
{
  "id": "44556677-8899-aabb-ccdd-eeff00112233",
  "amount": 45.99,
  "currency": "USD",
  "date": "2026-03-01",
  "description": "Team lunch",
  "matched": false,
  "receiptSplited": false,
  "account": {
    "uuid": "c8d9e0f1-a2b3-4567-cdef-789012345678",
    "name": "Business Checking"
  },
  "categoryAccount": {
    "uuid": "c3d4e5f6-a7b8-9012-cdef-123456789012",
    "name": "Meals & Entertainment"
  },
  "vendor": null,
  "project": {
    "uuid": "11223344-5566-7788-99aa-bbccddeeff00",
    "name": "Website Redesign"
  },
  "customer": {
    "uuid": "dfa3219e-6af8-4c53-997a-037534f63a35",
    "customer": "Acme Corporation"
  },
  "tags": [],
  "taxes": [],
  "createdAt": "2026-01-15T10:30:00.000Z",
  "updatedAt": "2026-01-28T14:22:30.000Z"
}
```

Matched receipts are locked

Update and delete return 400 when matched is true. Unmatch first, then edit or delete.

No receiptUrl in responses

Partner JSON intentionally omits receiptUrl. Store the receipt id and re-fetch metadata as needed; do not expect a direct download URL.

## Related

- [Transactions API](https://developers.getcount.com/reference/transactions)
- [Chart of Accounts API](https://developers.getcount.com/reference/chart-of-accounts)
- [Projects API](https://developers.getcount.com/reference/projects)

## Recent changes

2026-09-07

Accounting Playbooks and Ledger Semantics published as documentation

The workflows and behaviour rules the MCP server serves to agents through COUNT_playbooks and COUNT_knowledge are now readable documentation. Accounting Playbooks (/guides/playbooks) covers nine ordered workflows across 54 steps — invoicing, credit memos, recurring templates, vendor bill payment, chart-of-accounts setup, migration imports, budget planning and round-trip, and month-end review — each naming the exact tool per step. Ledger Semantics & Lifecycles (/guides/ledger-semantics) documents 33 confirmed behaviours across twelve resources: the state each operation is valid in, the fields accepted and then ignored, and the calls that cannot be undone, with every irreversible behaviour collected in one table at the top of the page. Both pages carry the COUNT_playbooks and COUNT_knowledge ids they were ported from so the agent-facing and human-facing copies stay in step. Playbooks, lifecycle sections, and individual behaviour rules are indexed into site search.

2026-06-21

Complete Partner API reference

Documented all remaining API reference groups: Chart of Accounts, Vendors, Products & Services, Recurring Invoice Templates, Credit Memos, Bills, Journal Entries, Tags, People, Projects, Tasks, Time Entries, Expense Receipts, Reports, and Workspace Stats. Added missing invoice endpoints (audit log, attachments, credit application, remove transaction) and group overviews for Invoices and Transactions.

## Endpoints

[GET List expense receipts `/partners/expense-receipts` Returns a paginated list of expense receipts.](https://developers.getcount.com/reference/expense-receipts/list-expense-receipts) [GET List unmatched expense receipts `/partners/expense-receipts/unmatched` Returns expense receipts that are not yet matched to a transaction.](https://developers.getcount.com/reference/expense-receipts/list-unmatched-expense-receipts) [POST Upload expense receipt `/partners/expense-receipts` Creates an expense receipt, optionally with a receipt image.](https://developers.getcount.com/reference/expense-receipts/create-expense-receipt) [PATCH Update expense receipt `/partners/expense-receipts/{uuid}` Updates an unmatched expense receipt.](https://developers.getcount.com/reference/expense-receipts/update-expense-receipt) [DELETE Delete expense receipt `/partners/expense-receipts/{uuid}` Deletes an unmatched expense receipt.](https://developers.getcount.com/reference/expense-receipts/delete-expense-receipt) [POST Match expense receipt manually `/partners/expense-receipts/{uuid}/match-manually` Links an expense receipt to an expense transaction.](https://developers.getcount.com/reference/expense-receipts/match-expense-receipt-manually) [DELETE Unmatch expense receipt `/partners/expense-receipts/{uuid}/unmatch` Removes the link between an expense receipt and its transaction.](https://developers.getcount.com/reference/expense-receipts/unmatch-expense-receipt)
