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

> Get aggregated income report from all payroll and bank sources.

Aggregates income data from all connected payroll providers and bank accounts.
Bank income is converted to the same format as payroll employment records.
Duplicate income sources (visible from both payroll and bank) are deduplicated
using fuzzy name matching, with preference given to payroll data.

Each employment record includes:
- ``data_source``: ``'payroll'`` or ``'financial_accounts'``
- ``provider``: data provider name (e.g. ``'adp'``, ``'chase'``)
- ``company``: employer / income source details, including ``logo_url`` when a company logo is available
- ``statements``: pay statements filtered to the requested date range
- ``income``, ``pay_rate``, ``pay_frequency``: compensation details



## OpenAPI

````yaml GET /v1/users/income
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:
  /v1/users/income:
    get:
      tags:
        - financial-data
      summary: Get User Income Endpoint
      description: >-
        Get aggregated income report from all payroll and bank sources.


        Aggregates income data from all connected payroll providers and bank
        accounts.

        Bank income is converted to the same format as payroll employment
        records.

        Duplicate income sources (visible from both payroll and bank) are
        deduplicated

        using fuzzy name matching, with preference given to payroll data.


        Each employment record includes:

        - ``data_source``: ``'payroll'`` or ``'financial_accounts'``

        - ``provider``: data provider name (e.g. ``'adp'``, ``'chase'``)

        - ``company``: employer / income source details, including ``logo_url``
        when a company logo is available

        - ``statements``: pay statements filtered to the requested date range

        - ``income``, ``pay_rate``, ``pay_frequency``: compensation details
      operationId: getAggregatedIncome
      parameters:
        - name: days
          in: query
          required: false
          schema:
            type: integer
            maximum: 365
            minimum: 1
            description: >-
              Number of days of income history to include (1-365). Defaults to
              90.
            default: 90
            title: Days
          description: Number of days of income history to include (1-365). Defaults to 90.
      responses:
        '200':
          description: Aggregated income report from payroll and bank sources.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnifiedIncomeReportResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    UnifiedIncomeReportResponse:
      properties:
        employments:
          items:
            $ref: '#/components/schemas/IncomeEmploymentSchema'
          type: array
          title: Employments
          description: Combined employment / income records from all connected sources.
      additionalProperties: true
      type: object
      title: UnifiedIncomeReportResponse
      description: >-
        Aggregated income report combining payroll and bank account sources.


        Employment records from payroll providers and bank transaction-based
        income

        are merged and deduplicated. Each employment includes a ``data_source``
        field

        (``'payroll'`` or ``'financial_accounts'``) to identify its origin.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    IncomeEmploymentSchema:
      properties:
        id:
          title: Id
          description: Employment identifier, stable across requests.
          type:
            - string
            - 'null'
        data_source:
          title: Data Source
          description: 'Origin of the record: ''payroll'' or ''financial_accounts''.'
          examples:
            - payroll
          type:
            - string
            - 'null'
        provider:
          title: Provider
          description: Provider that supplied the record.
          examples:
            - adp
          type:
            - string
            - 'null'
        link_id:
          title: Link Id
          description: Link the record was derived from.
          type:
            - string
            - 'null'
        company:
          anyOf:
            - $ref: '#/components/schemas/IncomeCompanySchema'
            - type: 'null'
          description: Employer.
        statements:
          items:
            $ref: '#/components/schemas/IncomeStatementSchema'
          type: array
          title: Statements
          description: Pay statements within the requested window, most recent first.
        annual_income_summary:
          items:
            additionalProperties: true
            type: object
          type: array
          title: Annual Income Summary
          description: >-
            Per-year income totals. Shape follows the provider; not normalised
            here.
        income:
          title: Income
          description: Income amount, as a decimal string.
          examples:
            - '96000.00'
          type:
            - string
            - 'null'
        income_unit:
          title: Income Unit
          description: Unit the income is expressed in.
          examples:
            - YEARLY
          type:
            - string
            - 'null'
        pay_rate:
          title: Pay Rate
          description: Pay rate, as a decimal string.
          type:
            - string
            - 'null'
        pay_frequency:
          title: Pay Frequency
          description: Pay frequency short code.
          examples:
            - BW
          type:
            - string
            - 'null'
        is_active:
          title: Is Active
          description: Whether the income is still arriving.
          type:
            - boolean
            - 'null'
        job_title:
          title: Job Title
          description: Job title. Payroll only.
          type:
            - string
            - 'null'
        job_type:
          title: Job Type
          description: Employment type. Payroll only.
          type:
            - string
            - 'null'
        start_date:
          title: Start Date
          description: ISO start date, when known.
          type:
            - string
            - 'null'
        end_date:
          title: End Date
          description: ISO end date; null while active.
          type:
            - string
            - 'null'
        original_hire_date:
          title: Original Hire Date
          description: ISO original hire date. Payroll only.
          type:
            - string
            - 'null'
        external_last_updated:
          title: External Last Updated
          description: ISO timestamp the provider last updated it.
          type:
            - string
            - 'null'
        dates_from_statements:
          title: Dates From Statements
          description: >-
            True when the dates above were derived from statements rather than
            reported.
          type:
            - boolean
            - 'null'
        manager_name:
          title: Manager Name
          description: Manager name. Payroll only.
          type:
            - string
            - 'null'
      additionalProperties: true
      type: object
      title: IncomeEmploymentSchema
      description: >-
        One income record: a payroll employment, or a bank income source shaped
        to match it.


        Every field is optional on purpose. Payroll records pass through from
        the provider, so this

        describes the keys both sources are guaranteed to agree on rather than
        the full payroll payload -

        ``extra="allow"`` keeps the provider-specific remainder legal instead of
        silently dropping it.

        Which source a record came from is the one thing always present:
        ``data_source``.
    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
    IncomeCompanySchema:
      properties:
        name:
          title: Name
          description: Employer name.
          examples:
            - Home Depot
          type:
            - string
            - 'null'
        logo_url:
          title: Logo Url
          description: Employer logo, resolved best-effort; null when unknown.
          type:
            - string
            - 'null'
      additionalProperties: true
      type: object
      title: IncomeCompanySchema
      description: Employer attached to an income record.
    IncomeStatementSchema:
      properties:
        id:
          title: Id
          description: Statement identifier, stable across requests.
          type:
            - string
            - 'null'
        pay_date:
          title: Pay Date
          description: ISO date the pay landed.
          examples:
            - '2026-08-14'
          type:
            - string
            - 'null'
        period_start:
          title: Period Start
          description: ISO start of the pay period. Payroll only.
          type:
            - string
            - 'null'
        period_end:
          title: Period End
          description: ISO end of the pay period. Payroll only.
          type:
            - string
            - 'null'
        net_pay:
          title: Net Pay
          description: Net amount, as a decimal string.
          examples:
            - '2481.55'
          type:
            - string
            - 'null'
        gross_pay:
          title: Gross Pay
          description: Gross amount. Null for bank-derived income.
          type:
            - string
            - 'null'
        check_number:
          title: Check Number
          description: Cheque number when the provider reports one.
          type:
            - string
            - 'null'
        basis_of_pay:
          title: Basis Of Pay
          description: Pay basis reported by the provider. Payroll only.
          type:
            - string
            - 'null'
        hours:
          title: Hours
          description: Hours for the period. Payroll only.
          type:
            - string
            - 'null'
      additionalProperties: true
      type: object
      title: IncomeStatementSchema
      description: >-
        A single pay statement.


        Payroll statements come through from the provider, so a provider may
        send fields beyond these;

        bank-derived statements are assembled here and leave the payroll-only
        ones null.
  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.