---
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`

## Request

- Base URL: `https://api.ocrolus.com`
- URL: `https://api.ocrolus.com/v2/book/{book_uuid}/enriched_txns`
- Auth: OAuth 2
  - Client credentials
  - Token URL: `https://auth.ocrolus.com/oauth/token`

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: Number of transactions returned in this response page. Matches the length of the `enriched_transactions` array.
  - `offset` integer: Number of records skipped from the start. Defaults to 0.
  - `limit` integer: Maximum number of records returned per page. Defaults to 50.
  - `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` number: 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
    - `bnpl` boolean: Indicates if the transaction is a Buy Now Pay Later payment.
    - `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
    - `emd` boolean: Indicates if the transaction is an earnest money deposit.
    - `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
    - `irs_tax_refund` boolean: Indicates if the transaction is an IRS tax refund.
    - `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
    - `ssa` boolean: Indicates if the transaction is a Social Security Administration payment.
    - `state_tax` boolean: State tax transaction
    - `state_tax_refund` boolean: Indicates if the transaction is a state tax refund.
    - `sweep` boolean: Transaction associated with the movement of funds into or out of sweep accounts
    - `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
    - `va_benefits` boolean: Indicates if the transaction is a VA benefits payment.
    - `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` integer, nullable: Primary key of the matched transaction on the other side of an internal transfer. Shows null when no match exists.
    - `custom_my_tag` boolean: Custom tags appear as `custom_[tag_name]` on each transaction and are only present when the organization has created that tag.
  - `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>>.
    - `name` string, nullable: The name of the <<glossary:Document>>. Shows `null` if the Document has no name.
    - `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. This section is included in the response only when Plaid-to-PDF matching is enabled for the org.
    - `txn_pk` integer: Primary key of the transaction.
    - `txn_date` string: Date of the transaction in YYYY-MM-DD format.
    - `description` string: Description of the transaction.
    - `amount` number: Transaction amount.
    - `uploaded_doc_pk` integer: Primary key of the uploaded document.
    - `uploaded_doc_format` 'PLAID' | 'BANK_STATEMENT': Format of the uploaded document. Possible values: PLAID, BANK_STATEMENT.
    - `bank_account_pk` integer: Primary key of the bank account associated with this transaction.
    - `period_pk` integer: Primary key of the statement period associated with this transaction.
    - `severity` 'HIGH' | 'MEDIUM' | 'LOW': Severity of the mismatch. Possible values: HIGH, MEDIUM, LOW.
    - `reason_code` 'critical_category_mismatch' | 'posting_date_difference' | 'non_critical_tag': Reason for the mismatch. Possible values: critical_category_mismatch, posting_date_difference, non_critical_tag.
    - `related_txn_pk` integer: Primary key of the paired transaction in this mismatch pair.
    - `tags` string[]: List of tags applied to this transaction.
    - `counterparty` string: Counterparty name associated with this transaction.
  - `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.
  - `plaid_asset_reports` object[], nullable: Present only when the organization is permitted to see Plaid identifiers. Omitted otherwise.
    - `asset_report_id` string: Plaid asset report identifier.
    - `date_generated` string: ISO timestamp when the asset report was generated.
    - `uploaded_doc_uuid` string: UUID of the uploaded document associated with this asset report.
    - `accounts` object[]: List of accounts in this asset report.
      - `account_id` string: Plaid account identifier.
      - `bank_account_pk` integer: Primary key of the corresponding Ocrolus bank account.
      - `transactions` object[]: List of transactions in this account.
        - `transaction_id` string: Plaid transaction identifier.
        - `txn_pk` integer: Primary key of the corresponding Ocrolus transaction.
        - `iso_currency_code` string: ISO 4217 currency code.
  - `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.dev/ocrolus/apis/analyze.md) - [All operations](https://skmtc.dev/ocrolus/apis/analyze/llms.txt) - [OpenAPI document](https://skmtc.dev/ocrolus/apis/analyze/revisions/4ef40f224ab5?raw)
