Skip to main content

New Hire Reporting (standalone)

Federal and state laws require employers to report all newly hired or rehired employees within 20 days of their start date to the specific state where the employee works. Employers must submit employee details (name, address, SSN, and date of hire) along with business information (name, address, and FEIN). SwyftFilings offers New Hire Reporting filing service as a standalone service so partners can order it.

Related: Service Filings overview · State requirements reference

Service slug and catalog

  1. Call Get Service and select the standalone New Hire Reporting entry (is_standalone: true).
  2. Use that slug for Get Service Configuration and Create New Order.

Examples use new-hire-reporting. Replace with the slug from your environment.

API flow

StepMethodEndpoint
1. List servicesGET/service-carts
2. Configuration and catalogGET/service-carts/{service}
3. NAICS (if required)GET/business-classifications
4. Create orderPOST/orders
5. Get order (optional)GET/orders/{order_uuid}
6. Get timely Order status changes and Requests for Information on your Webhook

State-specific requirements (discovery)

API-driven configuration: For each target state, call Get Service Configuration with your New Hire Reporting service slug for each state where the entity needs an agent. Build the order using the returned input_fields and catalog.

  • input_fields return the baseline required and optional keys, types, and validation_rules for that state and product. Additional inputs may be required during processing based on jurisdiction-specific or filing-specific conditions.
  • catalog lists line items with sku, name, price, optional fees by state, and conditions (for example incompatible SKUs).

Example: List services

GET {baseUrl}/service-carts
Authorization: Bearer {token}
{
"success": true,
"data": [
{
"slug": "new-hire-reporting",
"name": "New Hire Reporting",
"description": "State new hire reporting filing for a newly hired or rehired employee.",
"allows_addons": false,
"is_standalone": true,
"nested_services": []
}
]
}

Example: Get Service Configuration

Request (replace {baseUrl}, {token}, and the slug):

GET {baseUrl}/service-carts/new-hire-reporting?state=TX&business_type=LLC
Authorization: Bearer {token}

Abbreviated success payload:

{
"success": true,
"data": {
"name": "New Hire Reporting",
"slug": "new-hire-reporting",
"description": "State new hire reporting filing for a newly hired or rehired employee.",
"input_fields": [
{
"name": "First Name",
"key": "first_name",
"type": "string",
"description": "First name of the user",
"questionnaire_copy": "What is your first name?",
"validation_rules": [
"string",
"max:100",
"regex:/^[\\p{L}]+([\\s\\-'.]*[\\p{L}]+)*\\.?$/u"
],
"default_value": null,
"options": null,
"is_sensitive": false,
"required": true
},
{
"name": "Last Name",
"key": "last_name",
"type": "string",
"description": "Last name of the user",
"questionnaire_copy": "What is your last name?",
"validation_rules": [
"string",
"max:100",
"regex:/^[\\p{L}]+([\\s\\-'.]*[\\p{L}]+)*\\.?$/u"
],
"default_value": null,
"options": null,
"is_sensitive": false,
"required": true
},
{
"name": "Email",
"key": "email",
"type": "string",
"description": "Email address",
"questionnaire_copy": "What is your email address?",
"validation_rules": [
"email:rfc,dns",
"max:255"
],
"default_value": null,
"options": null,
"is_sensitive": false,
"required": true
},
{
"name": "Phone Number",
"key": "phone_number",
"type": "string",
"description": "Phone number",
"questionnaire_copy": "What is your phone number?",
"validation_rules": [
"string",
"size:10",
"regex:/^(?![01])\\d+$/"
],
"default_value": null,
"options": null,
"is_sensitive": false,
"required": true
},
...
],
"catalog": [
{
"sku": "SF_NHR_EXAMPLE_SG_0",
"name": "New Hire Reporting Filing",
"item_type": "product",
"has_gov_fee": false,
"price": 49,
"fees": {
"CA": { "LLC": 0 }
},
"package": false
}
]
}
}

sku and field keys are illustrative; use live catalog and input_fields from your environment. Employee identifiers such as SSN are collected only through the fields and validation rules returned by Get Service Configuration — never hard-code their shape.

Example: Create order

POST {baseUrl}/orders
Authorization: Bearer {token}
Content-Type: application/json
{
"service": "new-hire-reporting",
"email": "[email protected]",
"first_name": "Alex",
"last_name": "Nguyen",
"phone_number": "5551112222",
"consent_sms": false,
"business_data": {
"name": "Acme Payroll LLC",
"type": "LLC",
"formation_state": "CA",
"category": "541214",
"address": "500 Howard St",
"city": "San Francisco",
"state": "CA",
"zip": "94105"
},
"employee_data": {
"full_name": "Sam Rivera",
"hire_date": "2026-07-01"
}
}

Abbreviated response:

{
"success": true,
"data": {
"message": "Order created successfully",
"order_uuid": "f5a6b7c8-d9e0-1234-f012-456789012345"
}
}

Example: Submit order

{
"order_uuid": "f5a6b7c8-d9e0-1234-f012-456789012345",
"skus": ["SF_NHR_EXAMPLE_SG_0"],
"total_amount": 49.0,
"payment_method_nonce": null,
"service": "new-hire-reporting"
}

Example: Get order

GET {baseUrl}/orders/f5a6b7c8-d9e0-1234-f012-456789012345
Authorization: Bearer {token}

Abbreviated response:

{
"success": true,
"data": {
"id": 1,
"uuid": "f5a6b7c8-d9e0-1234-f012-456789012345",
"service": "new-hire-reporting",
"status": "In Progress",
"business_data": {
"name": "Acme Payroll LLC",
"type": "LLC",
"formation_state": "CA"
},
"managers_data": [],
"order_items": [
{ "submitted_at": "2026-07-01", "type": "sale", "items": ["SF_NHR_EXAMPLE_SG_0"] }
],
"required_actions": {
"rejections": [],
"questionnaires": [],
"alerts": []
},
"documents": []
}
}

Jurisdiction

Set business_data.formation_state to the state where New Hire Reporting service is required.

Use the keys returned by Get Service Configuration to determine how jurisdiction fields should be populated.

Fulfillment

  1. Order processing: After creation or submission, SwyftFilings evaluates the order and proceeds with service activation.
  2. Follow-up requirements: In some cases, additional inputs may be requested during processing depending on the service configuration.
  3. Webhooks: Use order_status_change to track progress.
  4. Completion: The order is complete once New Hire Reporting service is successfully filed.

Errors and edge cases

  • 422 Validation: Field keys or values that fail validation_rules return errors keyed by field name.
  • Entity type: Catalog conditions.applicable_biz_types may restrict certain SKUs to specific entity types.
  • Additional requirements: Some requirements identified during processing may require follow-up submission.