> ## Documentation Index
> Fetch the complete documentation index at: https://help.checkrmoney.com/llms.txt
> Use this file to discover all available pages before exploring further.

# The Transactions object

> Bank transaction history from connected financial accounts.

The Transactions response includes account records, individual transactions, daily totals, and merchant logos. List Transactions and Get Transaction return this shape; the summary, categories, and export endpoints are described further down.

## Accounts object

| Attribute | Type | Description |
| :- | :- | :- |
| id | string | Unique identifier of account |
| created\_at | date-time | Date and time account was created |
| updated\_at | date-time | Date and time account was last updated |
| type | string | Account type (`CHECKING`, `SAVINGS`, `CREDIT_CARD`, etc.) |
| subtype | string | Account subtype (`MONEY_MARKET`, etc.) |
| mask | string | Masked account number |
| nickname | string | Alternate name for account |
| balances | object | Balance information, see [Balances object](#balances-object) |

### Balances object

| Attribute | Type | Description |
| :- | :- | :- |
| currency\_code | string | ISO 4217 currency code |
| balance | string | Current balance amount |
| available\_balance | string | Available balance amount |
| credit\_limit | string | Credit limit (for credit accounts) |

***

## Transactions object

| Attribute | Type | Description |
| :- | :- | :- |
| id | string | Unique identifier of transaction |
| created\_at | date-time | Timestamp when transaction was created |
| updated\_at | date-time | Timestamp when transaction was last updated |
| account\_id | string | ID of the associated account |
| external\_id | string | External system transaction identifier |
| amount | string | Monetary amount of transaction |
| currency\_code | string | ISO 4217 currency code |
| check\_number | string | Check number (if applicable) |
| categories | array of strings | Categories assigned to this transaction |
| description | string | Human-readable transaction description |
| merchant\_name | string | Merchant name |
| status | string | `POSTED` or `PENDING` |
| type | string | `CREDIT` or `DEBIT` |
| posted\_at | date-time | Timestamp for movement of funds |
| transacted\_at | date-time | Timestamp when transaction occurred |
| memo | string | Additional descriptive information |
| merchant\_category\_code | number | ISO 18245 category code |
| location | object | Location, see [Location object](#location-object) |
| date | string | Calendar day of the transaction in the user's timezone (YYYY-MM-DD) |
| category\_slugs | array of strings | Effective categories as stable slugs, the form the `categories` filter takes. Reflects the user's own edits and merchant rules |
| is\_internal\_transfer | boolean | Whether the transaction moves money between the user's own accounts |
| is\_recurring | boolean | Whether the transaction belongs to a recurring series, such as a subscription or bill |
| note | string | The user's own note on the transaction. May be null. Different from `memo`, which comes from the bank |
| review\_state | string | `unreviewed`, `reviewed`, or `dismissed`: whether the user has confirmed or dismissed the transaction |
| review\_reason | string | Why the transaction is waiting for review: `transfer_suspected`, `high_amount`, `no_category`, `new_merchant`, or `catalog_seed`. Null when it is not waiting for review |
| recurring\_frequency | string | Get Transaction only. Cadence of the merchant's recurring series (`M`, `BW`, `SM`, `W`). Null when no series was detected |
| category\_suggestions | array of strings | Get Transaction only, for a transaction waiting for review. Up to two category slugs the user is likely to pick |

### Location object

| Attribute | Type | Description |
| :- | :- | :- |
| latitude | number | Latitude |
| longitude | number | Longitude |

### Daily totals object

| Attribute | Type | Description |
| :- | :- | :- |
| date | string | Date (YYYY-MM-DD) |
| net\_total | string | Net total for the day |
| transaction\_count | integer | Number of transactions |

### Merchant logos

`merchant_logos` maps each merchant name in the response to a logo URL.

***

## Pagination

List Transactions returns every matching transaction in one response unless you pass `page` or `page_size`. See [Pagination](/api-reference/pagination) for details.

| Field | Type | Description |
| :- | :- | :- |
| count | integer | Total number of transactions |
| next | string | Relative URL of the next page (`null` on the last page) |
| previous | string | Relative URL of the previous page (`null` on the first page) |

***

## Endpoints

* [Get transactions](/api-reference/transactions/get-transactions) - list and filter transactions
* [Get transaction](/api-reference/transactions/get-transaction) - one transaction by ID, including hidden and deleted ones
* [Get transactions summary](/api-reference/transactions/get-transactions-summary) - totals for the same filters
* [List transaction categories](/api-reference/transactions/list-transaction-categories) - the category catalog
* [Export transactions](/api-reference/transactions/export-transactions) - the same filters as a CSV file

***

## Example response

```json theme={null}
{
  "count": 42,
  "next": null,
  "previous": null,
  "accounts": [
    {
      "id": "24d7e80942ce4ad58a93f70ce4115f5c",
      "created_at": "2022-05-04T11:30:00Z",
      "updated_at": "2022-05-04T12:00:00Z",
      "type": "CHECKING",
      "subtype": "MONEY_MARKET",
      "mask": "6789",
      "nickname": "My account",
      "balances": {
        "currency_code": "USD",
        "balance": "100.00",
        "available_balance": "50.99",
        "credit_limit": "0.00"
      }
    }
  ],
  "transactions": [
    {
      "id": "b3f1a92c58d74e6f8901234567890abc",
      "created_at": "2022-05-04T11:30:00Z",
      "updated_at": "2022-05-04T12:00:00Z",
      "account_id": "24d7e80942ce4ad58a93f70ce4115f5c",
      "external_id": "external_key_243901",
      "amount": "-4.75",
      "currency_code": "USD",
      "check_number": "",
      "categories": ["Food & Dining", "Coffee Shops"],
      "description": "Starbucks #1234",
      "merchant_name": "Starbucks",
      "status": "POSTED",
      "type": "DEBIT",
      "posted_at": "2022-05-04T11:30:00Z",
      "transacted_at": "2022-05-04T11:30:00Z",
      "memo": "",
      "merchant_category_code": 5814,
      "location": {
        "latitude": 40.730610,
        "longitude": -73.935242
      },
      "date": "2022-05-04",
      "category_slugs": ["coffee_shops"],
      "is_internal_transfer": false,
      "is_recurring": false,
      "note": null,
      "review_state": "unreviewed",
      "review_reason": null
    }
  ],
  "daily_totals": [
    {
      "date": "2022-05-04",
      "net_total": "-4.75",
      "transaction_count": 1
    }
  ],
  "merchant_logos": {
    "Starbucks": "https://logos.mytruv.com/starbucks.png"
  }
}
```

## Get Transaction

Get Transaction returns the same shape with a single transaction, its account (when still connected), and its merchant logo. Unlike the list, it also finds transactions the user has hidden or deleted. An unknown ID returns `404`.

***

## Summary object

Get Transactions Summary takes the same filters as the list and returns totals instead of rows. Amounts are strings.

| Attribute | Type | Description |
| :- | :- | :- |
| total\_count | integer | Number of matching transactions |
| total\_income | string | Sum of all `CREDIT` amounts |
| total\_spending | string | Sum of all `DEBIT` amounts |
| net\_total | string | `total_income` minus `total_spending` |
| average\_amount | string | Average transaction amount (absolute value) |
| largest\_transaction | object | Transaction with the highest absolute amount: `{id, amount, description, date}`. May be null |
| largest\_expense | object | Largest `DEBIT`, same shape. May be null |
| largest\_income | object | Largest `CREDIT`, same shape. May be null |

```json theme={null}
{
  "total_count": 211,
  "total_income": "6420.00",
  "total_spending": "4185.37",
  "net_total": "2234.63",
  "average_amount": "50.17",
  "largest_transaction": {
    "id": "b3f1a92c58d74e6f8901234567890abc",
    "amount": "3210.00",
    "description": "ACME CORP PAYROLL",
    "date": "2026-08-15"
  },
  "largest_expense": {
    "id": "c4a2b83d69e85f7a9012345678901bcd",
    "amount": "1850.00",
    "description": "Rent payment",
    "date": "2026-08-01"
  },
  "largest_income": {
    "id": "b3f1a92c58d74e6f8901234567890abc",
    "amount": "3210.00",
    "description": "ACME CORP PAYROLL",
    "date": "2026-08-15"
  }
}
```

***

## Category object

List Transaction Categories returns `categories`: the standard catalog followed by any custom categories the user has created. Use `slug` in the `categories` and `exclude_categories` filters.

| Attribute | Type | Description |
| :- | :- | :- |
| slug | string | Stable identifier, e.g. `coffee_shops` |
| display\_name | string | Label shown in Checkr Money, e.g. `Coffee Shops` |
| kind | string | `expense` (debits), `income` (credits), or `transfer` (either) |

```json theme={null}
{
  "categories": [
    { "slug": "air_travel", "display_name": "Air Travel", "kind": "expense" },
    { "slug": "paycheck", "display_name": "Paycheck", "kind": "income" },
    { "slug": "credit_card_payment", "display_name": "Credit Card Payment", "kind": "transfer" }
  ]
}
```

***

## CSV export

Export Transactions takes the same filters and sort order as the list and returns a `text/csv` file (`transactions.csv`) with up to 10,000 rows. Columns:

`date`, `type`, `amount`, `currency`, `description`, `merchant`, `categories`, `account_id`, `status`


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.