---
title: "Transactions API · COUNT Partner API"
description: "Transactions are the individual money movements on a workspace account. Amounts are signed: negative for money out (expense) and positive for money in…"
canonical: "https://developers.getcount.com/reference/transactions"
source: "https://developers.getcount.com/reference/transactions"
---
API Reference

# Transactions

Transactions are the individual money movements on a workspace account. Amounts are signed: negative for money out (expense) and positive for money in (income). All references (account, category, vendor, customer, tags) use UUIDs.

Last updated 2026-07-28

## Overview

The Transactions API lets your integration list, create, update, categorize, and delete money movements on workspace accounts. Transactions are signed amounts — negative for money out (expenses) and positive for money in (income).

Partner responses expose UUIDs as `id` for the transaction and for linked account, category, vendor, customer, and tag records. Use bulk create to import many transactions in one call (up to 100 per request). Bulk exclude and bulk change-category support up to 100 existing rows with per-row failure reporting.

## Key concepts

### Categorization

Use change-category to assign or reassign a transaction to a chart-of-accounts category. Category changes may return `_partnerWarnings` when the update is partially applied.

### Payment assignment

Assign an expense transaction to bills or an income transaction to invoices with assign-to-bills-invoices. Use `matchingType` of `bill` or `invoice` and pass target UUIDs in `records`.

### Bulk import

POST /partners/transactions/bulk accepts up to 100 transactions per call. Each object uses the same shape as create transaction.

### Bill and invoice picker filters

To mirror the COUNT UI when listing transactions to assign to a bill, filter server-side: `transactionTypes=Expense`, `reviewed=false`, `pending=false`, `excluded=false`, `currency={billCurrency}`, and optionally `status=notAttachedBill` plus `status=notAttachedInvoice`. For vendor memos use `transactionTypes=Income`. Do not rely on client-side null checks alone — use these query params and the read-only `billId` / `invoiceId` fields on each row.

## The transaction object

Core fields returned on transaction records.

#### Attributes

`id` uuid

Transaction identifier (UUID).

`type` enum

Transaction type.

One of: `EXPENSE`, `INCOME`, `TRANSFER`

`description` string

Short description of the transaction.

`amount` number

Signed amount. Negative for money out, positive for money in.

`currency` string

ISO 4217 currency code.

`postedDate` date

Date the transaction posted (ISO).

`authorizedDate` date

Authorization date when available.

`accountId` uuid

UUID of the account this transaction belongs to.

`categoryAccountId` uuid

UUID of the category account, when categorized.

`vendorId` uuid

UUID of the linked vendor, for expenses.

`customerId` uuid

UUID of the linked customer, when applicable.

`billId` uuid

UUID of the linked bill when this transaction is assigned as a bill payment; null when unassigned.

`invoiceId` uuid

UUID of the linked invoice when this transaction is assigned as an invoice payment; null when unassigned.

`reviewed` boolean

Whether the transaction has been reviewed.

`tags` array

Tags attached to the transaction.

`createdAt` datetime

ISO 8601 creation timestamp.

`updatedAt` datetime

ISO 8601 last update timestamp.

Example

```json
{
  "id": "b7c8d9e0-f1a2-3456-bcde-678901234567",
  "type": "EXPENSE",
  "description": "Office supplies from Amazon",
  "amount": -150,
  "currency": "USD",
  "postedDate": "2026-03-01",
  "authorizedDate": "2026-03-01",
  "notes": "Q1 office supplies",
  "paymentChannel": "online",
  "reviewed": false,
  "excluded": false,
  "pending": false,
  "split": false,
  "accountId": "c8d9e0f1-a2b3-4567-cdef-789012345678",
  "categoryAccountId": "c3d4e5f6-a7b8-9012-cdef-123456789012",
  "vendorId": "d4e5f6a7-b8c9-0123-defa-234567890123",
  "customerId": null,
  "billId": null,
  "invoiceId": null,
  "tags": [
    {
      "id": "e5f6a7b8-c9d0-1234-efab-345678901234",
      "name": "Office"
    }
  ],
  "createdAt": "2026-03-13T08:30:00.000Z",
  "updatedAt": "2026-03-13T08:30:00.000Z"
}
```

Pay bills and invoices via transactions

Bill and invoice payment is transaction-centric — assign a bank transaction rather than calling a bill-specific pay route. See the Bills API for payment rules.

## Related

- [Chart of Accounts API](https://developers.getcount.com/reference/chart-of-accounts)
- [Bills API](https://developers.getcount.com/reference/bills)
- [Invoices API](https://developers.getcount.com/reference/invoices)

## Recent changes

2026-09-22

Customer sub-resources, merge, GST settings, and the last bulk routes

Closed every remaining gap between the reference and the backend partner routes — 20 endpoints that existed in count-dev but had no documentation. Customers gained its sub-resources: contacts, addresses, and notes each get full list/create/update/delete coverage, plus GET /partners/customers/{uuid}/revenue-overview and the two-step merge flow (POST /partners/customers/merge/preview, then POST /partners/customers/merge), which repoints every record onto a target customer and cannot be undone through the API. Workspace gained GET and PATCH /partners/workspace/gst-settings, including the manage_settings permission the PATCH requires and the 409 that locks the accounting basis after a return is filed. Also documented GET /partners/invoices/generate/number, POST /partners/projects/bulk, and POST /partners/transactions/review-bulk. npm run check:parity now reports 173 documented routes against 173 backend routes.

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-07-28

Connections, reconciliations, opening balance, workspace cutover, and transaction bulk ops

Documented Partner API groups for bank Connections (including Plaid Hosted Link connect/complete/reconnect), Reconciliations (create draft + complete), Opening Balance (get/set conversion balance), and Workspace (PATCH cutoverDate). Added PATCH /partners/transactions/change-category-bulk and exclude-bulk. Removed non-existent POST /partners/bills/bulk and /partners/invoices/bulk from the reference. Extended the MCP tool catalog with the matching COUNT_* tools plus remote-only COUNT_get_bulk_task_status and COUNT_remember/recall/forget.

2026-06-30

Transaction split, COA balance, and bill-picker filters

Added PUT /partners/transactions/{uuid}/split for explicit transaction splits. Chart of accounts list now returns systemBalance when includeBalances=true. Documented bill-assignment list filters (reviewed, pending, excluded, currency, status) and exposed read-only billId/invoiceId UUIDs on transaction responses.

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 transactions `/partners/transactions` Returns a paginated list of transactions, newest first.](https://developers.getcount.com/reference/transactions/list-transactions) [GET Get a transaction `/partners/transactions/{uuid}` Retrieves a single transaction by its UUID.](https://developers.getcount.com/reference/transactions/get-transaction) [POST Create a transaction `/partners/transactions` Records a new transaction on an account.](https://developers.getcount.com/reference/transactions/create-transaction) [POST Bulk create transactions `/partners/transactions/bulk` Creates many transactions in a single request.](https://developers.getcount.com/reference/transactions/bulk-create-transactions) [PATCH Update a transaction `/partners/transactions/{uuid}` Updates fields on an existing transaction.](https://developers.getcount.com/reference/transactions/update-transaction) [PATCH Change transaction category `/partners/transactions/{uuid}/change-category` Re-categorizes a transaction to a different chart-of-accounts category.](https://developers.getcount.com/reference/transactions/change-transaction-category) [PATCH Bulk change transaction category `/partners/transactions/change-category-bulk` Categorizes or uncategorizes up to 100 existing transactions in one call.](https://developers.getcount.com/reference/transactions/bulk-change-transaction-category) [POST Bulk review transactions `/partners/transactions/review-bulk` Marks transactions as reviewed, or clears the reviewed flag, by UUID list.](https://developers.getcount.com/reference/transactions/bulk-review-transactions) [PATCH Bulk exclude transactions `/partners/transactions/exclude-bulk` Excludes or un-excludes transactions by UUID list or postedDate range.](https://developers.getcount.com/reference/transactions/bulk-exclude-transactions) [POST Assign to bills or invoices `/partners/transactions/{uuid}/assign-to-bills-invoices` Applies a transaction as payment against one or more bills or invoices.](https://developers.getcount.com/reference/transactions/assign-transaction-to-bills-invoices) [PUT Split a transaction `/partners/transactions/{uuid}/split` Splits a transaction into a parent row and child rows before bill or invoice assignment.](https://developers.getcount.com/reference/transactions/split-transaction) [DELETE Delete a transaction `/partners/transactions/{uuid}` Deletes a transaction from the workspace.](https://developers.getcount.com/reference/transactions/delete-transaction)
