Introduction
The Tax Registration API is a REST integration provided by CorpNet for registering employers for state and federal tax accounts (unemployment insurance, withholding, and equivalents) across all 50 U.S. states. Partner systems — accounting platforms, payroll providers, business-formation services — use it to create, submit, and track tax registration orders programmatically.
Use this API to:
- Submit business and state-by-state tax registration data in a single payload.
- Track order progression and retrieve issued account numbers and tax rates.
- Register employers in any state, including California, through a unified endpoint.
API at a glance
| Property | Value |
|---|---|
| Protocol | HTTPS |
| Architecture | RESTful |
| Request / response format | JSON |
| Production base URL | https://api.corpnet.com |
| Staging base URL | https://api.staging24.corpnet.com |
| Main path prefix | /api/api-partners-v10/tax-reg-50states |
Authentication
The API uses Bearer token authentication. CorpNet issues your token directly during partner onboarding — there is no token exchange and no OAuth flow. The same token authenticates both the Tax Registration API and the Business Formation API; entitlement to each product follows your partner agreement.
Authorization: Bearer <your_api_key>See Authorization for the full auth model and error semantics.
Endpoints
| Operation | Method | Reference |
|---|---|---|
| Create a tax registration order | POST | Create a tax registration order |
| Retrieve order status and details | GET | Retrieve tax registration order details |
GET returns a status summary, not the full submitted order. Submitted business details, state info, and responsible parties are NOT retrievable via GET — partners should retain a local copy of the submission. See the Retrieve reference for the exact summary shape.
Request workflow
- Obtain a Bearer token from CorpNet (see API Key).
- Construct your order payload —
partnerOrderenvelope withorderFilingType,apiUserPid,pcid,accountInfo,businessDetails,stateInfo,responsibleParties. See the Create reference for the full request schema. - POST the payload to
/api/api-partners-v10/tax-reg-50states/. On success the API returns HTTP 201 with the full submitted order echoed back, plus the assignedorderGuid. - Store the
orderGuidfor status polling. - GET
/{orderGuid}as needed to trackorderPhase,orderStatus, and any populatedaccountNumbers/taxRates/agencyAccounts.
Common gotchas
- Validation cascades. Some fields are conditionally required (e.g.,
responsibleParty.dateOfBirthis required whentype === "INDIVIDUAL";nonProfitInfois required whenentityType === "Non-Profit Corporation"). See the Create reference for the per-field conditions. - Per-entity-type
titleenums.responsibleParty.titleis enum-validated against an undocumented per-entity-type list — LLCs acceptMember/Manager; C-Corp/S-Corp acceptDirector/President/Secretary/Treasurer/Vice President/CEO(but reject the genericOfficer). See the schema description onResponsiblePartyfor the full table. - Format-only EIN validation. The API checks
NN-NNNNNNNformat only — the EIN is not verified against the IRS database. Do client-side sanity checks before submitting. firstPayrollAmount— accepts strings, decimals, zero, and (incorrectly) negative values. Validate>= 0client-side.- Not-found returns 400, not 404. GET on a non-existent
orderGuidreturns HTTP 400 with body{"statusCode": 200, "message": "success", "data": {"partnerOrder": null}}. Detect not-found by checkingdata.partnerOrder === nullrather than trusting the status fields.
Best practices
- Use HTTPS and keep tokens server-side; never embed in client-side code.
- Validate request bodies before submission to avoid round-trip 400s.
- Use the staging environment to dry-run integrations before production.
- Log
orderGuidand submission payloads on your side — the GET endpoint won't return submitted business details on its own.
Support
For credentials, onboarding, or technical assistance, contact your CorpNet account manager or [email protected].