---
title: "List Counterparty Transactions"
method: GET
path: "/api/v1/counterparties/:counterpartyId/transactions"
tags: ["Counterparties"]
---

# List Counterparty Transactions

`GET /api/v1/counterparties/:counterpartyId/transactions`

## Request

- Base URL: `https://merchant-api.accruesavings.com`
- URL: `https://merchant-api.accruesavings.com/api/v1/counterparties/:counterpartyId/transactions`
- Auth: none declared. Required headers: `Client-ID`, `Authorization`
- TypeScript: <https://skmtc.dev/byaccrue/apis/accrue-merchant-api/docs/api/v1/counterparties/:counterpartyId/transactions/get.ts> (a function with typed inputs; its response is checked against the schema)

List every money movement on a counterparty's account, newest effective date first: funds arriving over bank rails, payouts to its own bank account, transfers from your other counterparties, and corrections. Together they account for the counterparty's `balance` exactly, which makes this the endpoint to reconcile a balance against. `meta.total` counts the transactions matching the filters, so page through the list with `page[offset]` until you have read `meta.total` records. A single query returns at most the newest 5,000 matching transactions, so read a longer history in `filter[effectiveAtFrom]` / `filter[effectiveAtTo]` windows of fewer than 5,000 transactions each. Both bounds of every filter range are inclusive.

## Path parameters

- `counterpartyId` string, uuid, required: ID of the counterparty to fetch transactions for.

## Query parameters

- `page[limit]` number: Maximum number of objects that will be returned. Can not be greater than 50.
- `page[offset]` number: Offset from the beginning of the list of objects. Can not be negative.
- `filter[type]` 'Deposit' | 'Payout' | 'Transfer' | 'Adjustment' | 'Other': Filter transactions by what moved the money.
- `filter[status]` 'Pending' | 'Posted' | 'Archived': Filter transactions by status.
- `filter[direction]` 'Credit' | 'Debit': `Credit` for money into the counterparty, `Debit` for money out of it.
- `filter[effectiveAtFrom]` string, date-time: Only transactions effective at or after this ISO 8601 datetime.
- `filter[effectiveAtTo]` string, date-time: Only transactions effective at or before this ISO 8601 datetime.
- `filter[minAmount]` integer: Only transactions of at least this amount, in cents.
- `filter[maxAmount]` integer: Only transactions of at most this amount, in cents.

## Headers

- `Client-ID` string, uuid, required: The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.
- `Authorization` string, uuid, required: Secure secret to access privileged endpoints.

## Response `200`

OK

- ListCounterpartyTransactionsResponse
  - `data` CounterpartyTransaction[], required
    - `id` string, uuid, required: Unique identifier for the object.
    - `type` 'CounterpartyTransaction', required
    - `attributes` object, required
      - `counterpartyId` string, uuid, required: ID of the counterparty this movement belongs to.
      - `amount` integer, required: Amount in cents. Always positive; `direction` carries the sign.
      - `currency` string, required: ISO 4217 currency code.
      - `direction` 'Credit' | 'Debit', required: Relative to the counterparty: `Credit` increased its balance, `Debit` reduced it.
      - `type` 'Deposit' | 'Payout' | 'Transfer' | 'Adjustment' | 'Other', required: What moved the money. `Deposit` is funds reaching the counterparty, `Payout` is funds sent to its own bank account, `Transfer` is a movement between two of your counterparties, and `Adjustment` is a correction or reversal. `Other` means the movement could not be classified — it is still real money on the balance, so read `description` for what it was.
      - `status` 'Pending' | 'Posted' | 'Archived', required: `Posted` counts toward the posted and available balances. A `Pending` credit counts toward the pending balance, and a `Pending` debit already reduces the available balance. `Archived` was voided before posting and counts toward none of them.
      - `description` string, nullable, required: Description of the movement. For a `Deposit` this is the description the originating bank stamped on the payment, which on ACH is the company entry description and is often a reference code rather than prose.
      - `originatorName` string, nullable, required: Who sent the money, as the originating bank named them. Only a `Deposit` carries one; every other movement is null, as is a deposit whose rail carried no originator name.
      - `metadata` object, nullable, required: Diagnostic detail recorded alongside the movement. Not a stable part of this contract — do not branch on it.
      - `effectiveAt` string, date-time, required: When the movement takes effect on the ledger (ISO 8601). This list is ordered and filtered by this field, not by `createdAt`: a backdated correction has an `effectiveAt` earlier than the moment it was recorded.
      - `postedAt` string, date-time, nullable, required: When the movement posted (ISO 8601). Null while the movement is still `Pending`.
      - `updatedAt` string, date-time, required
      - `createdAt` string, date-time, required
  - `meta` object, required
    - `total` number, required
    - `limit` number, required
    - `offset` number, required

## Other responses

- `404`: Not Found
- `500`: Internal Server Error

---

[API](https://skmtc.dev/byaccrue/apis/accrue-merchant-api.md) - [All operations](https://skmtc.dev/byaccrue/apis/accrue-merchant-api/llms.txt) - [OpenAPI document](https://skmtc.dev/byaccrue/apis/accrue-merchant-api/revisions/3e2d97ef2e6e?raw)
