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
iduuidExpense receipt identifier (UUID).
amountnumberReceipt amount (positive magnitude).
currencystringISO 4217 currency code.
datedateReceipt date (ISO).
descriptionstringNotes or memo for the receipt.
matchedbooleanWhether the receipt is linked to a transaction.
receiptSplitedbooleanWhether the receipt is split across multiple categories.
accountobjectPayment account for reimbursement.
categoryAccountobjectExpense category account.
vendorobjectLinked vendor, or null.
projectobjectLinked project, or null.
customerobjectLinked customer, or null.
tagsarrayTags attached to the receipt.
taxesarrayTax rates applied to the receipt.
createdAtdatetimeISO 8601 creation timestamp.
updatedAtdatetimeISO 8601 last update timestamp.
{
"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
Recent changes
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
/partners/expense-receiptsReturns a paginated list of expense receipts.
/partners/expense-receipts/unmatchedReturns expense receipts that are not yet matched to a transaction.
/partners/expense-receiptsCreates an expense receipt, optionally with a receipt image.
/partners/expense-receipts/{uuid}Updates an unmatched expense receipt.
/partners/expense-receipts/{uuid}Deletes an unmatched expense receipt.
/partners/expense-receipts/{uuid}/match-manuallyLinks an expense receipt to an expense transaction.
/partners/expense-receipts/{uuid}/unmatchRemoves the link between an expense receipt and its transaction.
