Download OpenAPI specification:
REST API for searching tax forms and retrieving tax form PDFs.
This document describes the public taxform-api contract.
Security for external callers is layered:
Notes for clients:
ssnOrTaxId, accountNumber, accountName, payeeName, or a complete clientInfo (clientType and clientName).SsnOrTaxId and AccountNumber.taxYear and taxFormType are additional filters only; by themselves they are not sufficient.clientInfo is optional. If you send it, send both clientName and clientType.
Blank or partial clientInfo is ignored.POST /api/taxform/pdf defaults layout to DefaultType when omitted.Submit username and password to obtain a JWT.
On success, the JWT is returned in the Authorization response header as Bearer {token}.
| username required | string |
| password required | string <password> |
{- "username": "{{username}}",
- "password": "{{password}}"
}{ }Search tax forms using one or more primary filters.
Request rules:
ssnOrTaxId, accountNumber, accountName, payeeName, or complete clientInfo (clientType and clientName).taxFormType is optional. It narrows results; it does not make an otherwise empty search valid.clientInfo is optional. If supplied, include both clientName and clientType.| ssnOrTaxId required | string non-empty Recommended format is 9 digits with no dashes, for example |
| accountNumber | string or null <= 25 characters Account identifier. Not restricted to digits only. No minimum length is enforced by this contract. Search uses a starts-with match. Matching is based on the stored account number format. |
| accountName | string or null <= 56 characters Search uses a starts-with match. |
| payeeName | string or null <= 34 characters Search uses a contains match. |
| taxYear | integer or null <int32> Optional exact-match tax year filter. |
| taxFormType | Array of strings or null (TaxFormTypeCode) non-empty Enum: "R" "M" "W" "L" "D" "C" "A" "Z" "B" "O" "I" "S" "Q" "G" "E" "F" "K" "T" "N" "H" "U" "8" "J" Optional exact-match list of tax form type codes. |
object or null Optional client filter. If supplied, send both
Other values are not supported.
Blank or partial | |
| approvedOnly | boolean Default: false approvedOnly is optional and defaults to false. Use true to restrict results to forms that have been approved for filling.
|
{- "ssnOrTaxId": "555015555",
- "approvedOnly": true
}{- "taxFormSearchResults": [
- {
- "taxFormId": 518,
- "ssnOrTaxId": "555015555",
- "ssnOrTaxIdMasked": null,
- "ssnIsTin": false,
- "payeeName": "LAST, FIRST",
- "accountNumber": "4444",
- "printedAccountNumber": null,
- "accountName": "FOUR",
- "taxYear": 2024,
- "accountType": 3,
- "accountTypeView": "SPECIAL",
- "dataSource": null,
- "taxFormType": "W",
- "taxFormTypeView": "W-2",
- "distCode": null,
- "taxState": null,
- "formGrossAmount": 100,
- "recordStatus": "0",
- "recordStatusView": "PROCESSED",
- "originalId": null,
- "printBatchId": null,
- "batchImportMetaId": null,
- "pdfsGenerated": false,
- "lastUpdatedDate": "2025-08-19T16:38:15.129+00:00",
- "lastUpdatedBy": null,
- "clientInfo": {
- "clientName": "Example TPA",
- "clientType": "T"
}, - "imported": false,
- "editableStatus": false
}
]
}Returns the PDF for a specific tax form id.
| taxFormId required | integer <int64> Tax form id returned by the search endpoint. |
{- "status": {
- "code": "500",
- "datetime": "2026-03-11T13:14:15",
- "apiVersion": "5.01.0",
- "stackTrace": "string",
- "messages": [
- "string"
]
}
}Accepts one or more print-criteria objects and returns a single aggregated PDF.
Request rules:
taxFormId is required in each taxFormPrintCriteria item.ssnOrTaxId, accountNumber, accountName, payeeName,
taxYear, and taxFormType are validation matchers only.layout is optional; if omitted, taxform-api defaults it to DefaultType.| layout | string Default: "DefaultType" Enum: "DefaultType" "PressureSeal" "Special" Optional PDF layout selection.
If omitted, |
required | Array of objects (TaxFormPrintCriteria) non-empty |
{- "taxFormPrintCriteria": [
- {
- "taxFormId": 518
}
]
}{- "status": {
- "code": "500",
- "datetime": "2026-03-11T13:14:15",
- "apiVersion": "5.01.0",
- "stackTrace": "string",
- "messages": [
- "string"
]
}
}