---
title: "Validate an external payroll"
method: GET
path: "/external_payrolls/{payroll}/validate"
---

# Validate an external payroll

`GET /external_payrolls/{payroll}/validate`

## Request

- Base URL: `https://sandbox.checkhq.com`
- URL: `https://sandbox.checkhq.com/external_payrolls/{payroll}/validate`
- Auth: API key in header `Authorization`
- TypeScript: <https://skmtc.dev/checkhq/apis/check-api/docs/external_payrolls/:payroll/validate/get.ts> (a function with typed inputs; its response is checked against the schema)

Runs the checks that [approving an external payroll](https://docs.checkhq.com/reference/approve-an-external-payroll) runs, without approving the payroll. Use it to find problems with a draft external payroll before you approve it. It does not approve the payroll or change its status.

Validate doesn't recalculate the payroll. Use it to check for errors quickly while you fix a payroll, and use [preview](https://docs.checkhq.com/reference/preview-an-external-payroll) to review calculated amounts before you approve.

If every check passes, the response is the external payroll object. If any check fails, the response is a `400` `validation_error`, with one entry in `input_errors` for each problem found.

Validate does not run the negative quarter-to-date tax check. That check runs only when you approve, so an approve request can still fail after a validate request succeeds.

## Path parameters

- `payroll` string, required

## Response `200`

200

- object

## Other responses

- `400`: 400

## Changes

- **2026-11-03** `5a54f5eb888b`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/checkhq/apis/check-api/changes/external_payrolls/:payroll/validate/get.md)

---

[API](https://skmtc.dev/checkhq/apis/check-api.md) - [All operations](https://skmtc.dev/checkhq/apis/check-api/llms.txt) - [OpenAPI document](https://skmtc.dev/checkhq/apis/check-api/revisions/5a54f5eb888b?raw)
