> ## 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.

# Get Transaction

> Fetch a single transaction by id, including hidden and deleted rows.

Unlike the list endpoint, this resolves transactions the user has hidden or
deleted so the detail page can render a customized row reached by direct
URL. Scoped to the authenticated applicant; an unknown or cross-tenant id
returns 404 and never leaks another user's row.

Returns the same ``BankTransactionsReport`` shape as the list endpoint, with
a single transaction, its owning account (when still connected), and the
matching merchant logo.



## OpenAPI

````yaml GET /v2/users/transactions/{transaction_id}
openapi: 3.1.0
info:
  title: Checkr Money API
  description: >
    Read-only API for personal access token (PAT) users.


    ## Authentication


    Authenticate with `Authorization: Bearer <token>`. Tokens have a `pat_`
    prefix

    and are generated in the Truv web app under Settings → API keys.


    ## Available Endpoints


    This API exposes a subset of read-only endpoints for retrieving financial
    data,

    account links, and user profile information.
  version: 1.0.0
servers:
  - url: https://api.mytruv.com
    description: Production
security:
  - BearerAuth: []
tags:
  - name: users
    description: User profile — read-only access to the authenticated user's profile.
  - name: financial-data
    description: >-
      Financial data — balances, transactions, income, spending, liabilities,
      and balance history.
  - name: links
    description: >-
      Account links — list connected financial institutions and payroll
      providers.
paths:
  /v2/users/transactions/{transaction_id}:
    get:
      tags:
        - financial-data
      summary: Get User Bank Transaction V2
      description: >-
        Fetch a single transaction by id, including hidden and deleted rows.


        Unlike the list endpoint, this resolves transactions the user has hidden
        or

        deleted so the detail page can render a customized row reached by direct

        URL. Scoped to the authenticated applicant; an unknown or cross-tenant
        id

        returns 404 and never leaks another user's row.


        Returns the same ``BankTransactionsReport`` shape as the list endpoint,
        with

        a single transaction, its owning account (when still connected), and the

        matching merchant logo.
      operationId: getTransactionV2
      parameters:
        - name: transaction_id
          in: path
          required: true
          schema:
            type: string
            title: Transaction Id
      responses:
        '200':
          description: A single transaction by id, including hidden or deleted rows.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankTransactionsReportSchema'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    BankTransactionsReportSchema:
      properties:
        count:
          type: integer
          title: Count
          description: Total transactions matching the filters, across all pages.
        accounts:
          items:
            $ref: '#/components/schemas/Account'
          type: array
          title: Accounts
          description: Accounts the returned transactions belong to.
        transactions:
          items:
            $ref: '#/components/schemas/TransactionSchema'
          type: array
          title: Transactions
        daily_totals:
          items:
            $ref: '#/components/schemas/DailyTotal'
          type: array
          title: Daily Totals
          description: Net total per calendar day, reflecting the same filters.
        merchant_logos:
          additionalProperties:
            type:
              - string
              - 'null'
          type: object
          title: Merchant Logos
          description: Logo URL per merchant name present in the response.
        next:
          title: Next
          description: Relative URL of the next page, when paginated.
          type:
            - string
            - 'null'
        previous:
          title: Previous
          description: Relative URL of the previous page, when paginated.
          type:
            - string
            - 'null'
      type: object
      required:
        - count
        - accounts
        - transactions
      title: BankTransactionsReportSchema
      description: >-
        Response model of the v2 transaction endpoints.


        The route class returns a ``JSONResponse``, so this shapes the OpenAPI
        spec but

        never validates or serializes a payload.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    Account:
      properties:
        id:
          title: Id
          examples:
            - 24d7e80942ce4ad58a93f70ce4115f5c
          type:
            - string
            - 'null'
        created_at:
          title: Created At
          examples:
            - '2022-05-04T11:30:00Z'
          type:
            - string
            - 'null'
          format: date-time
        updated_at:
          title: Updated At
          examples:
            - '2022-05-04T12:00:00Z'
          type:
            - string
            - 'null'
          format: date-time
        type:
          $ref: '#/components/schemas/AccountType'
          examples:
            - CHECKING
        subtype:
          anyOf:
            - $ref: '#/components/schemas/AccountSubtype'
            - type: 'null'
          examples:
            - MONEY_MARKET
        mask:
          title: Mask
          examples:
            - '6789'
          type:
            - string
            - 'null'
        nickname:
          title: Nickname
          examples:
            - My account
          type:
            - string
            - 'null'
        balances:
          $ref: '#/components/schemas/AccountBalances'
      additionalProperties: true
      type: object
      required:
        - type
        - balances
      title: Account
    TransactionSchema:
      properties:
        id:
          title: Id
          examples:
            - 24d7e80942ce4ad58a93f70ce4115f5c
          type:
            - string
            - 'null'
        created_at:
          title: Created At
          examples:
            - '2022-05-04T11:30:00Z'
          type:
            - string
            - 'null'
          format: date-time
        updated_at:
          title: Updated At
          examples:
            - '2022-05-04T12:00:00Z'
          type:
            - string
            - 'null'
          format: date-time
        account_id:
          title: Account Id
          examples:
            - 68a7e80942ce4ad58a93f70ce411549a
          type:
            - string
            - 'null'
        external_id:
          type: string
          title: External Id
          examples:
            - external_key_243901
        amount:
          title: Amount
          examples:
            - '100.00'
          type:
            - string
            - 'null'
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
        currency_code:
          title: Currency Code
          examples:
            - USD
          type:
            - string
            - 'null'
        check_number:
          title: Check Number
          examples:
            - '123456'
          type:
            - string
            - 'null'
        categories:
          title: Categories
          examples:
            - - Transfer
          items:
            type: string
          type:
            - array
            - 'null'
        description:
          type: string
          title: Description
          examples:
            - Some transaction
        status:
          $ref: '#/components/schemas/Status5'
          examples:
            - POSTED
        type:
          $ref: '#/components/schemas/Type7'
          examples:
            - DEBIT
        posted_at:
          title: Posted At
          examples:
            - '2022-05-04T11:30:00Z'
          type:
            - string
            - 'null'
          format: date-time
        transacted_at:
          type: string
          format: date-time
          title: Transacted At
          examples:
            - '2022-05-04T11:30:00Z'
        memo:
          title: Memo
          examples:
            - ''
          type:
            - string
            - 'null'
        merchant_name:
          title: Merchant Name
          examples:
            - Starbucks
          type:
            - string
            - 'null'
        merchant_category_code:
          title: Merchant Category Code
          examples:
            - 5967
          type:
            - number
            - 'null'
        location:
          $ref: '#/components/schemas/Location'
        date:
          title: Date
          description: Calendar day of the transaction in the user's timezone (YYYY-MM-DD).
          examples:
            - '2026-07-14'
          type:
            - string
            - 'null'
        category_slugs:
          items:
            type: string
          type: array
          title: Category Slugs
          description: Effective categories as stable slugs.
          examples:
            - - entertainment
              - streaming_services
        is_internal_transfer:
          type: boolean
          title: Is Internal Transfer
          description: >-
            Whether the transaction moves money between the user's own accounts.
            Resolves a per-transaction override first, then a merchant rule,
            then detection.
        is_recurring:
          type: boolean
          title: Is Recurring
          description: >-
            Whether the transaction is part of a recurring series (subscription
            or bill). Resolves a per-transaction override first, then a merchant
            rule, then detection: membership in a detected series, or a charge
            at a detected merchant whose amount matches that series. An explicit
            user or rule value always wins over detection.
        note:
          title: Note
          description: >-
            User-authored free text about this transaction, or null when the
            user has written none. Distinct from `memo`, which is the bank's own
            string.
          examples:
            - Reimbursed by work
          type:
            - string
            - 'null'
        review_state:
          $ref: '#/components/schemas/ReviewState'
          description: >-
            Whether the user has settled this transaction: `unreviewed` until
            they confirm or dismiss it, then `reviewed` or `dismissed`. A
            transaction nobody has reviewed yet reports `unreviewed` rather than
            null.
          examples:
            - unreviewed
        review_reason:
          anyOf:
            - $ref: '#/components/schemas/ReviewReason'
            - type: 'null'
          description: >-
            Why this transaction is still worth asking about, for a surface that
            says so. On every row read, so a badge outside the review screens
            can be honest; null when the transaction is not in the review queue.
          examples:
            - high_amount
        category_suggestions:
          title: Category Suggestions
          description: >-
            Up to two categories to put in front of the picker, drawn from what
            this user already uses at this merchant and then across their own
            history. Stable slugs, the same form as `category_slugs` and as the
            picker's own `slug`. Only on the single-transaction read, and only
            for a transaction in the review queue.
          examples:
            - - groceries
              - shopping
          items:
            type: string
          type:
            - array
            - 'null'
        recurring_frequency:
          title: Recurring Frequency
          description: >-
            Cadence of the series this merchant belongs to, as the same short
            code the recurring endpoints use (`M`, `BW`, `SM`, `W`), which the
            client renders in words. Null when no series was detected.
            Single-transaction read only.
          examples:
            - M
          type:
            - string
            - 'null'
      additionalProperties: true
      type: object
      required:
        - external_id
        - description
        - status
        - type
        - transacted_at
        - location
        - date
        - category_slugs
        - is_internal_transfer
        - is_recurring
        - note
        - review_state
      title: TransactionSchema
      description: >-
        A transaction as the v2 endpoints return it: the bank record plus the
        effective flags.


        The fields below come from the ClickHouse read path, not from Truv's
        spec, and

        carry no default: the read path fills every one on every row, and a
        default would

        only make the spec advertise them as optional.
    DailyTotal:
      properties:
        date:
          type: string
          title: Date
        net_total:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Net Total
        transaction_count:
          type: integer
          title: Transaction Count
      type: object
      required:
        - date
        - net_total
        - transaction_count
      title: DailyTotal
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    AccountType:
      type: string
      enum:
        - CHECKING
        - SAVINGS
        - LOAN
        - CREDIT_CARD
        - INVESTMENT
        - LINE_OF_CREDIT
        - MORTGAGE
        - PROPERTY
        - CASH
        - INSURANCE
        - PREPAID
        - CHECKING_LINE_OF_CREDIT
        - ANY
      title: AccountType
      description: The account's type
    AccountSubtype:
      type: string
      enum:
        - MONEY_MARKET
        - CERTIFICATE_OF_DEPOSIT
        - AUTO
        - STUDENT
        - SMALL_BUSINESS
        - PERSONAL
        - PERSONAL_WITH_COLLATERAL
        - HOME_EQUITY
        - BOAT
        - POWERSPORTS
        - RV
        - HELOC
        - PLAN_401_K
        - PLAN_403_B
        - PLAN_529
        - IRA
        - ROLLOVER_IRA
        - ROTH_IRA
        - TAXABLE
        - NON_TAXABLE
        - BROKERAGE
        - TRUST
        - UNIFORM_GIFTS_TO_MINORS_ACT
        - PLAN_457
        - PENSION
        - EMPLOYEE_STOCK_OWNERSHIP_PLAN
        - SIMPLIFIED_EMPLOYEE_PENSION
        - SIMPLE_IRA
        - PLAN_ROTH_401_K
        - FIXED_ANNUITY
        - VARIABLE_ANNUITY
        - HSA
        - TAX_FREE_SAVINGS_ACCOUNT
        - INDIVIDUAL
        - REGISTERED_RETIREMENT_INCOME_FUND
        - CASH_MANAGEMENT_ACCOUNT
        - EMPLOYEE_STOCK_PURCHASE_PLAN
        - REGISTERED_EDUCATION_SAVINGS_PLAN
        - PROFIT_SHARING_PLAN
        - UNIFORM_TRANSFER_TO_MINORS_ACT
        - PLAN_401_A
        - SARSEP_IRA
        - FIXED_ANNUITY_TRADITIONAL_IRA
        - VARIABLE_ANNUITY_TRADITIONAL_IRA
        - SEPP_IRA
        - INHERITED_TRADITIONAL_IRA
        - FIXED_ANNUITY_ROTH_IRA
        - VARIABLE_ANNUITY_ROTH_IRA
        - INHERITED_ROTH_IRA
        - COVERDELL
        - ADVISORY_ACCOUNT
        - BROKERAGE_MARGIN
        - CHARITABLE_GIFT_ACCOUNT
        - CHURCH_ACCOUNT
        - CONSERVATORSHIP
        - CUSTODIAL
        - DEFINED_BENEFIT_PLAN
        - DEFINED_CONTRIBUTION_PLAN
        - EDUCATIONAL
        - ESTATE
        - EXECUTOR
        - GROUP_RETIREMENT_SAVINGS_PLAN
        - GUARANTEED_INVESTMENT_CERTIFICATE
        - HRA
        - INDEXED_ANNUITY
        - INVESTMENT_CLUB
        - IRREVOCABLE_TRUST
        - JOINT_TENANTS_BY_ENTIRITY
        - JOINT_TENANTS_COMMUNITY_PROPERTY
        - JOINT_TENANTS_IN_COMMON
        - JOINT_TENANTS_WITH_RIGHTS_OF_SURVIVORSHIP
        - KEOUGH_PLAN
        - LIFE_INCOME_FUND
        - LIVING_TRUST
        - LOCKED_IN_RETIREMENT_ACCOUNT
        - LOCKED_IN_RETIREMENT_INVESTMENT_FUND
        - LOCKED_IN_RETIREMENT_SAVINGS_ACCOUNT
        - MONEY_PURCHASE_PLAN
        - PARTNERSHIP
        - PLAN_409_A
        - PLAN_ROTH_403_B
        - REGISTERED_DISABILITY_SAVINGS_PLAN
        - REGISTERED_LOCKED_IN_SAVINGS_PLAN
        - REGISTERED_PENSION_PLAN
        - REGISTERED_RETIREMENT_SAVINGS_PLAN
        - REVOCABLE_TRUST
        - ROTH_CONVERSION
        - SOLE_PROPRIETORSHIP
        - SPOUSAL_IRA
        - SPOUSAL_ROTH_IRA
        - TESTAMENTARY_TRUST
        - THRIFT_SAVINGS_PLAN
        - INHERITED_ANNUITY
        - CORPORATE_ACCOUNT
        - LIMITED_LIABILITY_ACCOUNT
        - VEHICLE_INSURANCE
        - DISABILITY
        - HEALTH
        - LONG_TERM_CARE
        - PROPERTY_AND_CASUALTY
        - UNIVERSAL_LIFE
        - TERM_LIFE
        - WHOLE_LIFE
        - ACCIDENTAL_DEATH_AND_DISMEMBERMENT
        - VARIABLE_UNIVERSAL_LIFE
        - ROTH
        - ROLLOVER
        - OTHER
        - ANNUITY
        - TRANSFERRABLE_ON_DEATH
      title: AccountSubtype
      description: The account’s subtype
    AccountBalances:
      properties:
        currency_code:
          title: Currency Code
          examples:
            - USD
          type:
            - string
            - 'null'
        balance:
          title: Balance
          examples:
            - '100.00'
          type:
            - string
            - 'null'
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
        available_balance:
          title: Available Balance
          examples:
            - '50.99'
          type:
            - string
            - 'null'
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
        credit_limit:
          title: Credit Limit
          examples:
            - '200.00'
          type:
            - string
            - 'null'
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
      additionalProperties: true
      type: object
      title: AccountBalances
    Status5:
      type: string
      enum:
        - POSTED
        - PENDING
      title: Status5
    Type7:
      type: string
      enum:
        - DEBIT
        - CREDIT
      title: Type7
    Location:
      properties:
        latitude:
          title: Latitude
          examples:
            - '40.730610'
          type:
            - number
            - 'null'
        longitude:
          title: Longitude
          examples:
            - '-73.935242'
          type:
            - number
            - 'null'
      additionalProperties: true
      type: object
      title: Location
    ReviewState:
      type: string
      enum:
        - unreviewed
        - reviewed
        - dismissed
      title: ReviewState
      description: >-
        ``UNREVIEWED`` is the read-side default for a transaction with no review
        row, and is

        never written, so an absent row and an explicit unreviewed row mean the
        same thing.
    ReviewReason:
      type: string
      enum:
        - transfer_suspected
        - high_amount
        - no_category
        - new_merchant
        - catalog_seed
      title: ReviewReason
      description: >-
        Why we are asking, ordered by expected damage when the answer is wrong.


        Declaration order is the ranking: a transaction tripping several rules
        keeps the first.

        ``CATALOG_SEED`` is last and is never produced by the damage rules; it
        comes from the

        seeding slot, which only fills space the damage queue left over.
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: PAT
      description: >-
        Bearer authentication with a personal access token (prefix `pat_`).
        Generate tokens in the Truv web app under Settings → API keys.

````

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