---
title: "Enriched transactions"
method: GET
path: "/v2/book/{book_uuid}/enriched_txns"
tags: ["Cash Flow Analytics"]
---

# Enriched transactions

`GET /v2/book/{book_uuid}/enriched_txns`

This API provides categorizations for each transaction in the requested <<glossary:Book>>. It's the building block for all the Cash Flow Analytics products. It contains a comprehensive list of categories, accurate Transaction tagging, and improved revenue, expense, and transfer logic.

---

### Async processing 

This API supports asynchronous processing. To get the asynchronous result, add `async=true` in the query parameter to run the request as a background job and receive a `job_id` immediately instead of waiting for the full response inline. When `async=true`, the endpoint returns `202 Accepted` with a `job_id` instead of the analytics payload.

Async mode is required for Books with more than 100,000 transactions. Books exceeding 1,000,000 transactions are rejected with `422` (error code `1100`). Once submitted, poll
[Async job status](https://docs.ocrolus.com/reference/async-job-status) API to retrieve the result when the job is complete.

## Path parameters

- `book_uuid` string, uuid, required

## Query parameters

- `offset` integer
- `limit` integer
- `include_pending_plaid_transactions` true | false
- `async` boolean

## Response `200`

Success

- SuccessEnrichedTxnsSchema
  - `book_uuid` string, uuid — Unique identifier of the <<glossary:Book>>.
  - `filtered_total` integer — The total number of transactions retrieved after applying `offset` and `limit`.
  - `offset` integer — The starting index for paginated transactions result.
  - `limit` integer — The maximum number of transactions returned per page starting from the specified `offset` value.
  - `enriched_transactions` object[]
    - `txn_pk` integer — Unique identifier of the transaction
    - `txn_date` string — Date of the transaction in ISO 8601-compliant YYYY-MM-DD format.
    - `description` string — A brief description of the transaction.
    - `bank_account_pk` integer — The primary key of the bank account associated with the transaction.
    - `uploaded_doc_pk` integer — The primary key of the <<glossary:Document>> associated with the transaction.
    - `uploaded_doc_name` string — The name of the <<glossary:Document>> associated with the transaction.
    - `amount` string — Transaction amount. Positive values represent credits, and negative values represent debits. This amount includes dollars and cents; to avoid floating-point precision errors, consider parsing this field with a decimal data type, as opposed to a native `float` or `double`.
    - `atm` boolean — Transaction at physical ATM locations
    - `bank_branch` boolean, nullable — Transaction with a physical bank branch
    - `bank_cash_advance` boolean, nullable — Cash advance with traditional bank
    - `bank_loan` boolean, nullable — Loan transaction with a traditional bank
    - `bank` boolean, nullable — Transaction associated with a traditional bank/depository institution
    - `benefits` boolean, nullable — Transaction associated with government benefits
    - `card_rewards` boolean, nullable — Transaction associated with credit card rewards
    - `checks` boolean — Transaction with a check (physical or electronic)
    - `counterparty` string — Standardized identifier of the transaction counterparty.
    - `credit_builder` boolean — Transaction with credit builder companies
    - `credit_card` boolean — Credit card transaction
    - `crypto` boolean — Transaction associated with cryptocurrency and related companies
    - `debit_card` boolean — Debit card transaction
    - `debt_consolidator` boolean — Transaction associated with debt refinancing and consolidation companies
    - `deposits` boolean — Amount greater than zero
    - `equipment_lease` boolean — Transaction associated with equipment leasing companies
    - `expense` boolean — Withdrawals that have been included as expense
    - `factoring` boolean — Transaction associated with factoring companies
    - `federal_tax` boolean — Federal tax transaction
    - `fintech_loan` boolean — Loan transaction with a fintech company
    - `fintech_loan_source` string, nullable — The source of a loan transaction with a fintech company
    - `fintech_mca` boolean — Merchant cash advance transaction with a fintech company
    - `fintech_mca_source` string, nullable — The source of a merchant cash advance transaction with a fintech company
    - `fintech` boolean — Transaction associated with a fintech company
    - `gambling` boolean — Transaction associated with gambling like casino and lottery
    - `insurance` boolean — Transaction associated with insurance premiums or payouts
    - `internal_transfer` boolean — Transfer between accounts with the same owner
    - `investment` boolean — Transaction associated with investment and brokerage companies
    - `large_deposits` boolean — Large amount of deposite in the account
    - `merchant_service_transfer` boolean — Transfer to/from a merchant service company
    - `merchant_service` boolean — Transaction associated with payment processing companies
    - `nsf` boolean — Non-sufficient funds transactions and fees
    - `nsf_paid_or_negative_balance` boolean — Indicates a paid transaction despite insufficient funds (NSF) or an account with a negative balance
    - `nsf_returned_or_not_paid` boolean — Indicates a transaction that was returned or declined due to non-sufficient funds (NSF) and was not successfully paid
    - `other_loan` boolean — Loan transaction that does not fit into `fintech_loan` or `bank_loan`
    - `other_transfer` boolean — Transfer that does not fit into other categories
    - `outside_source_deposits` boolean — Deposits that are not `internal_transfer` or `other_transfer`
    - `overdraft` boolean — Fees associated with overdraft events
    - `paypal` boolean — Transaction with PayPal
    - `payroll_tax` boolean — Payroll tax transaction
    - `payroll` boolean — Transaction associated with payroll activities and companies
    - `probable_recurring_txns` boolean — Transactions with two or more similar occurences
    - `remote` boolean — Remote or mobile transactions
    - `returned_item` boolean — Items that were returned due to a non-sufficent funds event
    - `revenue_deduction_other` boolean — Transaction that had been removed from revenue but does not fit into other categories
    - `revenue_deduction` boolean — Deposits that have not been included in revenue
    - `revenue` boolean — Deposits that have been included in revenue
    - `reversed` boolean — Transaction that has been reversed
    - `sba` boolean — Transaction associated with the Small Business Administration
    - `state_tax` boolean — State tax transaction
    - `tolls` boolean — Transaction associated with transportation tolls (bridges, highways, etc.)
    - `truck_stop` boolean — Transaction at truck stop areas
    - `txn_five_zeros` boolean — Amount is multiple of $1000.00
    - `txn_four_zeros` boolean — Amount is multiple of $100.00
    - `venmo_zelle_cashapp` boolean — Transaction with Venmo, Zelle, or Cash App
    - `wire_transfer` boolean — Wire transfer
    - `withdrawals` boolean — Amount less than zero
    - `comment` string — Additional notes or remarks about the transaction.
    - `is_noteworthy` boolean — Indicates whether the transaction is considered noteworthy based on internal business rules and risk factors. A value of `true` highlights transactions that may require additional attention or review.
    - `page_idx` integer — The page number of the Document where this transaction was recorded
    - `unreconciled_internal_transfer` boolean — Indicates that an internal transfer transaction could not be fully reconciled because one or both associated bank accounts were not identified within the Book.
    - `reconciled_txn_pk` string, nullable — A unique primary key (PK) of the transaction representing the other side of a reconciled internal transfer. It ensures that both sides of the transfer are connected within the Book.
    - `rideshare` boolean — A fee deducted by the rideshare platform from the driver's earnings as a service charge.
    - `custom_tag` boolean — Any user defined tag based on business needs.
  - `total` integer — The total number of enriched_transactions found in this <<glossary:Book>>
  - `number_of_docs_in_book` integer — the total count of <<glossary:Document>>s uploaded to this <<glossary:Book>>
  - `number_of_docs_processed` integer — the total count of <<glossary:Document>>s in this <<glossary:Book>> that completed verification.
  - `uploaded_docs` object[] — An array of objects containing information on the <<glossary:Document>>s uploaded to this <<glossary:Book>>.
    - `pk` integer — Unique personal key for the <<glossary:Document>>.
    - `uuid` string — Universal unique identifier for the <<glossary:Document>>.
    - `status` string — Processing status of the <<glossary:Document>>.
    - `pages` integer — The total number of pages present in the <<glossary:Document>>.
    - `mixed_uploaded_doc_pk` integer — Unique personal key for the uploaded Mixed Document associated with this Document. A Mixed Document is a single or multipage PDF that contains more than one doc type.
    - `mixed_uploaded_doc_uuid` string — Universal unique identifier for the uploaded Mixed Document associated with this Document. A Mixed Document is a single or multipage PDF that contains more than one doc type.
    - `rejection_reason` string — An optional attribute that briefly explains why a Document was rejected.
  - `mismatched_transactions` object[] — List of transactions that do not reconcile between Plaid and PDF bank statement data.
    - `txn_pk` integer — Unique identifier for the transaction.
    - `txn_date` string — The date of the transaction (YYYY-MM-DD format).
    - `description` string — Details of the transaction.
    - `amount` string — The transaction amount where negative indicates debit.
    - `uploaded_doc_pk` integer — Identifier for the associated uploaded document.
    - `uploaded_doc_format` string — Format of the uploaded document (e.g., PLAID, PDF, etc.).
    - `severity` string — The risk level (High, Medium, or Low) assigned to each mismatched transaction, based on business rules that help you prioritize critical discrepancies such as NSFs, MCAs, overdrafts, and other high-risk activities.
    - `reason_code` string — The reason code indicating why a transaction was flagged as a mismatch (e.g., Posting Date Difference, Non-Critical Transaction, Critical Category Mismatch).
    - `related_txn_pk` integer — The primary key of the related transaction, if applicable.
    - `tags` string — Comma-separated tags associated with the transaction used to identify the nature of the transaction.
    - `counterparty` string — Standardized identifier of the transaction counterparty.
  - `bank_checks` object[] — List of images within the bank statement that have been processed by the system for check detection.
    - `uuid` string — Unique identifier for the check entry.
    - `bank_account_pk` integer — Primary key of the associated bank account.
    - `amount` string — Amount associated with the check.
    - `pay_to` string — Name of the check recipient.
    - `txn_date` string — Date the check was issued or processed (MM/DD/YYYY).
    - `check_number` string — Check number.
    - `memo_number` string — Reference number.
  - `pending_plaid_transactions` object[] — List of pending transactions from Plaid. This section is included in the response only when the `include_pending_plaid_transactions` query parameter is set to `true`.
    - `amount` string — The transaction amount.
    - `description` string — Details of the transaction.
    - `iso_currency_code` string — The currency code for the transaction.
    - `plaid_account_id` string — The Plaid account ID.
    - `plaid_txn_id` string — The Plaid transaction ID.
    - `txn_date` string — The date of the transaction in YYYY-MM-DD format.
    - `uploaded_doc_uuid` string — The UUID of the uploaded document.
  - `analytic_constants_version` string — The version of the constants used in analytical calculations.

## Other responses

- `202` — Accepted
- `403` — Permission Error
- `404` — No Data Found
- `422` — Book Contains More Than 100k Transactions
- `425` — Analytics Still Processing

---

[API](https://skmtc.net/ocrolus/apis/user-management.md) · [All operations](https://skmtc.net/ocrolus/apis/user-management/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/ocrolus/user-management/revisions/3571ef602d13/schema)
