> ## 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 Payroll Report object

> Full income report for one connected payroll account.

The Payroll Report is the complete income report for a single payroll connection: employment details, pay statements with earnings and deductions, and yearly totals. Use it when you need more than the combined view from [Get income](/api-reference/income/get-income), which merges every source into one list.

Pass the `id` of a payroll link from [Get links](/api-reference/links/get-links). A link that doesn't belong to the user returns `404`.

## Attributes

| Attribute | Type | Description |
| :- | :- | :- |
| id | string | Report identifier |
| status | string | Report status, e.g. `done` |
| completed\_at / finished\_at | string | When the report was completed (ISO 8601) |
| refresh\_status | string | Status of the latest data refresh |
| provider | string | Data provider |
| data\_source | string | `payroll` |
| is\_suspicious | boolean | Whether the data from the payroll source was flagged as suspicious, for example a document that looks altered |
| employments | array of objects | One entry per job, see [Employment](#employment) |

## Employment

| Attribute | Type | Description |
| :- | :- | :- |
| id | string | Employment identifier |
| company | object | Employer `name`, `address`, `phone`, and `ein` |
| job\_title | string | Job title |
| job\_type | string | `F` full time, `P` part time, `S` seasonal, `D` daily (per diem), `C` contract |
| is\_active | boolean | Whether the job is current |
| start\_date / end\_date | string | Employment date range. `end_date` is null for a current job |
| original\_hire\_date | string | First hire date with this employer |
| income | string | Income amount, in the unit given by `income_unit` |
| income\_unit | string | `YEARLY`, `MONTHLY`, `WEEKLY`, `DAILY`, or `HOURLY` |
| pay\_rate | string | Amount per pay period |
| pay\_frequency | string | `W` weekly, `BW` biweekly, `SM` semi-monthly, `M` monthly, `SA` semiannually, `A` annually, `C` commission |
| residence\_location | string | State (or city, when no state is on file) of the employee's home address. The full address is not returned |
| statements | array of objects | Pay statements from the last 90 days, see [Statements](#statements) |
| annual\_income\_summary | array of objects | Totals per year: `year`, `gross_pay`, `net_pay`, `regular`, `overtime`, `bonus`, `commission`, `other_pay` |

Bank account details, the employee profile, W-2s, and the report PDF are removed from the response. Other fields may appear as the provider returns them.

## Statements

| Attribute | Type | Description |
| :- | :- | :- |
| id | string | Statement identifier |
| pay\_date | string | Pay date (YYYY-MM-DD) |
| period\_start / period\_end | string | Pay period covered |
| gross\_pay / net\_pay | string | Gross and net pay for the period |
| gross\_pay\_ytd / net\_pay\_ytd | string | Year-to-date gross and net pay |
| regular / overtime / bonus / commission / other\_pay | string | Pay by type for the period. `_ytd` variants hold year-to-date totals. May be null |
| hours | string | Hours paid |
| basis\_of\_pay | string | How pay is calculated, e.g. `S` salary, `H` hourly, `D` daily, `C` contract |
| earnings / earnings\_ytd | array of objects | Pay line items for the period and year to date: `name`, `amount`, `category`, `rate`, `units` |
| deductions / deductions\_ytd | array of objects | Deduction line items for the period and year to date: `name`, `amount`, `category` |
| file | string | Link to the pay stub document. The link expires, so download it when you receive it rather than storing the URL |

***

## Endpoints

* [Get payroll report](/api-reference/income/get-payroll-report)

***

## Example response

```json theme={null}
{
  "id": "6f1c2d3e4a5b6c7d8e9f0a1b2c3d4e5f",
  "status": "done",
  "completed_at": "2026-09-16T14:02:11Z",
  "finished_at": "2026-09-16T14:02:11Z",
  "refresh_status": "done",
  "provider": "truv",
  "data_source": "payroll",
  "is_suspicious": false,
  "employments": [
    {
      "id": "0a9b8c7d6e5f4a3b2c1d0e9f8a7b6c5d",
      "company": {
        "name": "Acme Corp",
        "address": { "street": "123 Main St", "city": "Austin", "state": "TX", "zip": "78701", "country": "US" },
        "phone": null,
        "ein": null
      },
      "job_title": "Store Associate",
      "job_type": "F",
      "is_active": true,
      "start_date": "2022-01-15",
      "end_date": null,
      "original_hire_date": "2022-01-15",
      "income": "41600.00",
      "income_unit": "YEARLY",
      "pay_rate": "1600.00",
      "pay_frequency": "BW",
      "residence_location": "TX",
      "statements": [
        {
          "id": "1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e",
          "pay_date": "2026-09-12",
          "period_start": "2026-08-25",
          "period_end": "2026-09-07",
          "gross_pay": "1600.00",
          "net_pay": "1284.50",
          "gross_pay_ytd": "28800.00",
          "net_pay_ytd": "23121.00",
          "regular": "1600.00",
          "overtime": null,
          "hours": "80",
          "basis_of_pay": "S",
          "earnings": [],
          "deductions": [],
          "file": "https://files.example.com/paystubs/1b2c3d4e.pdf?expires=3600"
        }
      ],
      "annual_income_summary": [
        { "year": 2026, "gross_pay": "28800.00", "net_pay": "23121.00", "regular": "28800.00", "overtime": null, "bonus": null, "commission": null, "other_pay": null }
      ]
    }
  ]
}
```


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