> ## Documentation Index
> Fetch the complete documentation index at: https://help.mytruv.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 }
      ]
    }
  ]
}
```
