COUNTCOUNT
Sign Up

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

iduuid

Expense receipt identifier (UUID).

amountnumber

Receipt amount (positive magnitude).

currencystring

ISO 4217 currency code.

datedate

Receipt date (ISO).

descriptionstring

Notes or memo for the receipt.

matchedboolean

Whether the receipt is linked to a transaction.

receiptSplitedboolean

Whether the receipt is split across multiple categories.

accountobject

Payment account for reimbursement.

categoryAccountobject

Expense category account.

vendorobject

Linked vendor, or null.

projectobject

Linked project, or null.

customerobject

Linked customer, or null.

tagsarray

Tags attached to the receipt.

taxesarray

Tax rates applied to the receipt.

createdAtdatetime

ISO 8601 creation timestamp.

updatedAtdatetime

ISO 8601 last update timestamp.

Example
{
  "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.

Recent changes

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