Payroll

Get Pay Range

GET
/paychecks

Returns a paginated list of paychecks. Each paycheck captures an employee's earnings, deductions, taxes, and net pay for a single payroll run.

Optional Filters:

  • organization-id — limit to paychecks for companies belonging to these organizations
  • company-ids — limit to paychecks for employees in these companies
  • employee-ids — limit to paychecks for these employees
  • payroll-keys — limit to specific payroll runs; each key is companyId:payrollNumber (e.g., 1234:56). A payroll number is the sequential run number assigned when payroll is processed.
  • paycheck-date-from / paycheck-date-to — inclusive date bounds. Required when filtering by organization-id or company-ids only. Date range cannot exceed 365 days.

Multiple filters combine with AND logic; values within one parameter combine with OR.

Access control: Results are limited to companies your integration has access to. When organization-id is supplied, only results from organizations containing at least one accessible company are included. Inaccessible IDs in filter parameters are silently excluded; if none match, an empty list is returned.

Error Details:

  • 400 Bad Requestpaycheck-date-from is after paycheck-date-to, or the date range exceeds 365 days
X-API-KEY<token>

Your API key.

In: header

Query Parameters

api-version*string

API version

Default"3.0"
Value in"3.0"
organization-id?string

Limit results to companies belonging to this organization.

Formatuuid
company-ids?array<>

Limit results to paychecks for employees in these companies.

paycheck-date-from?string

Start of the check date range (inclusive, YYYY-MM-DD). Required when filtering by organization-id or company-ids only.

Formatdate
paycheck-date-to?string

End of the check date range (inclusive, YYYY-MM-DD). Required when filtering by organization-id or company-ids only.

Formatdate
employee-ids?array<>

Limit results to paychecks for these employees.

payroll-keys?array<string>

Limit results to specific payroll runs. Each key is in the format companyId:payrollNumber (e.g., 1234:56). A payroll number is the sequential run number assigned when payroll is processed.

page-number?integer

Page number (1-based). Defaults to 1 if not specified.

Formatint32
Range1 <= value <= 2147483647
page-size?integer

Number of items per page. Defaults to 100 if not specified. Maximum 500.

Formatint32
Range1 <= value <= 500

Response Body

curl -X GET "https://external-app-prod.netchexonline.net/paychecks?api-version=3.0"
{
  "pageNumber": 0,
  "pageSize": 0,
  "totalItemsCount": 0,
  "items": [
    {
      "companyId": 0,
      "employeeId": 0,
      "payrollNumber": 0,
      "paycheckDate": "2019-08-24",
      "payPeriodStart": "2019-08-24",
      "payPeriodEnd": "2019-08-24",
      "isVoided": true,
      "paycheckNumber": "string",
      "paycheckEarnings": [
        {
          "companyEarningId": 0,
          "laborDistributedDepartmentId": 0,
          "laborDistributedClientProject": {
            "clientId": 0,
            "projectId": 0
          },
          "laborDistributedJobCode": "string",
          "workersCompensationCode": "string",
          "flatAmount": null,
          "hoursAmount": null,
          "hoursAndRateAmount": null,
          "totalAmount": 0.1,
          "date": "2019-08-24"
        }
      ],
      "paycheckDeductions": [
        {
          "companyDeductionId": 0,
          "employerAmount": 0.1,
          "employeeAmount": 0.1
        }
      ],
      "paycheckTaxes": [
        {
          "companyTaxId": 0,
          "employerAmount": 0.1,
          "employeeAmount": 0.1
        }
      ],
      "netPay": {
        "total": 0.1,
        "directDeposits": [
          {
            "amount": 0.1,
            "accountType": "checking"
          }
        ],
        "checkDistribution": {
          "amount": 0.1,
          "isPremiumPay": true
        }
      }
    }
  ]
}
{
  "type": "string",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}
{
  "type": "string",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}
{
  "type": "string",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}

Get General Ledger Transactions GET

Returns a paginated list of general ledger journal entries for a specific company and payroll run. Each entry represents a debit or credit transaction used to record payroll costs in the company's accounting system. Use `distribution-options` to control how payroll costs are allocated to departments within each journal entry category. Each category can be independently set to `HomeDepartment` (the employee's primary assigned department), `WorkDepartment` (the department where the employee actually worked during the pay period), or `None` (no department allocation). When a category is omitted, the company's default allocation setting is used. Transaction categories available for distribution: - `salary-expenses` - `employer-tax-expenses` - `employer-tax-liabilities` - `employee-tax-liabilities` - `employer-deduction-expenses` - `employee-deduction-liabilities` - `employer-deduction-liabilities` - `workers-compensation-expenses` (only applies when `include-workers-compensation=true`) - `workers-compensation-liabilities` (only applies when `include-workers-compensation=true`) **Access control:** Results are limited to companies your integration has access to. **Error Details:** - **404 Not Found** — the specified company is not accessible, or no transactions were found for the given company and payroll number

Get Payroll Run History GET

Returns a paginated list of payroll runs. A payroll run represents a single completed payroll processing cycle for a company, capturing the check date and sequential run number. **Optional Filters:** - `organization-id` — limit to payroll runs for companies belonging to these organizations - `company-ids` — limit to payroll runs for these companies - `paycheck-date-from` / `paycheck-date-to` — limit to payroll runs with a check date within this range (inclusive). Date range cannot exceed 365 days. Multiple filters combine with AND logic; values within one parameter combine with OR. **Access control:** Results are limited to companies your integration has access to. When `organization-id` is supplied, only results from organizations containing at least one accessible company are included. Inaccessible IDs in filter parameters are silently excluded; if none match, an empty list is returned. **Error Details:** - **400 Bad Request** — `paycheck-date-from` is after `paycheck-date-to`, or the date range exceeds 365 days