Payroll

Update Employee Scheduled Deductions

PUT
/employee-scheduled-deductions

Creates or updates employee scheduled deductions in a batch. A scheduled deduction is a recurring or one-time amount withheld from an employee's paycheck for a specific deduction type. If an employee already has a deduction for the specified type, it is updated; otherwise, a new one is created.

Currently supports Voluntary deductions only.

All changes within a single request succeed or fail together (transactional). Maximum of 500 deductions per request.

Error Details:

  • 400 Bad Request — request body is empty, batch exceeds 500 items, or validation errors in individual items
X-API-KEY<token>

Your API key.

In: header

Query Parameters

api-version*string

API version

Default"3.0"
Value in"3.0"

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X PUT "https://external-app-prod.netchexonline.net/employee-scheduled-deductions?api-version=3.0" \  -H "Content-Type: application/json" \  -d '{}'
{
  "items": [
    {
      "employeeDeductionId": 0,
      "employeeId": 0,
      "companyDeductionId": 0,
      "status": "created"
    }
  ]
}
{
  "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 Pending Paycheck Earnings GET

Returns a paginated list of pending paycheck earnings. A pending paycheck earning is a one-time amount to be included in an employee's current or upcoming payroll run for a specific earning type (e.g., a bonus or additional hours). **Optional Filters:** - `organization-id` — limit to earnings for companies belonging to these organizations - `company-ids` — limit to earnings for these companies - `employee-ids` — limit to earnings for these employees. Employees belonging to companies that your integration cannot access are automatically excluded by the company-level access check; no error is returned for inaccessible employee IDs. - `company-earning-id` — limit to a specific earning type - `pending-paycheck-earning-ids` — look up specific records by ID; when supplied, date filters are ignored - `external-unique-id` + `data-source` — look up a record by the ID assigned by the originating system (both must be provided together) - `effective-date-from` / `effective-date-to` — inclusive date bounds. **Required** unless filtering by `pending-paycheck-earning-ids`. Both dates must be supplied together. 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** — `effective-date-from` is after `effective-date-to`, or the date range exceeds 365 days

Get Time Punches GET

Returns a paginated list of time punches. A time punch is a clock-in or clock-out event recorded by an employee, capturing the timestamp and optionally which department or project the time was recorded against. **Filters:** - `start-date` **Required.** Start of the date range (inclusive, YYYY-MM-DD). - `end-date` **Required.** End of the date range (inclusive, YYYY-MM-DD). - Exactly one of `organization-ids`, `company-ids`, or `employee-ids` is required; providing more than one or none returns 400. - `data-source` — optional, limit to punches from a specific data source - `project-ids` — optional, further filter by project IDs - `client-ids` — optional, further filter by client IDs 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. Inaccessible IDs in filter parameters are silently excluded. **Error Details:** - **400 Bad Request** — `start-date` or `end-date` is missing or not in YYYY-MM-DD format, `end-date` is before `start-date`, more than one scope filter is provided, or no scope filter is provided - **404 Not Found** — no time punches were found for the specified filters