State requirements reference
This page provides general guidance on how state and jurisdiction impact service requirements and how to integrate with Swyft’s API-driven configuration model.
For standalone services, final required inputs for a given order may be determined during fulfillment and surfaced through follow-up Rejections (Information Requests).
Use this page together with the standalone product guides, including Foreign Qualification, Withholding Tax, New Hire Reporting, Registered Agent (standalone) and SUI.
API-driven configuration
SwyftFilings does not require partners to maintain a static copy of every field for every state in application code. Instead:
- List services —
GET {baseUrl}/service-cartsreturns every service enabled for your account (slug,name,description,allows_addons,is_standalone). - Load configuration —
GET {baseUrl}/service-carts/{service}with your product's slug, optionally scoped withstateandbusiness_typequery parameters. - Read
input_fields— Returns the complete list of required keys, validation rules, and descriptions for the selected service and state combination.- Additional inputs may be required during processing based on jurisdiction-specific or filing-specific conditions.
- Some fields are only required depending on the answer to another field. When present, an
input_fieldsentry carries aconditional_requiredobject instead of (in addition to) a flatrequired: true— for example, the Foreign Qualification "Alien Affiliates" fields:This means{
"key": "alien_affiliates_data.*.name",
"required": false,
"conditional_required": {
"field": "state_specific.has_alien_affiliates",
"values": [true]
}
}alien_affiliates_data.*.nameonly needs to be submitted whenstate_specific.has_alien_affiliatesis sent astrue— order creation returns a422on that field otherwise. Useconditional_requiredto drive conditional show/require behavior in your own UI. - Some fields are instead gated on whether another field was answered at all, rather than on a specific answer value. These carry an
operator: "filled"alongside an emptyvaluesarray — for example, Hawaii's county liquor license fields:This means{
"key": "state_specific.county_liquor_license_number",
"required": false,
"conditional_required": {
"field": "state_specific.liquor_tax_start_date",
"operator": "filled",
"values": []
}
}state_specific.county_liquor_license_numberonly needs to be submitted oncestate_specific.liquor_tax_start_datehas been answered with any value — order creation returns a422on that field if it's missing once the date is set. - Some fields are gated on any one of several different sibling fields, rather than a single one. These carry an
anyarray instead of a top-levelfield/values— for example, Delaware's State Unemployment Insurance multi-state employee fields:This means{
"key": "employees_multi_state_data.*.work_states",
"required": false,
"conditional_required": {
"any": [
{ "field": "state_specific.de_primary_work_state_flag", "values": [true] },
{ "field": "state_specific.de_partial_work_in_state", "values": [true] }
]
}
}employees_multi_state_data.*.work_statesonly needs to be submitted when eitherstate_specific.de_primary_work_state_flagorstate_specific.de_partial_work_in_stateis sent astrue— each entry inanyuses the samefield/values/operatorshape as a top-level condition.
- Read
catalog— SKUs, price, state-specific fees, and conditions for that jurisdiction.
GET {baseUrl}/service-carts/foreign-qualification?state=TX&business_type=LLC
Authorization: Bearer {token}
{
"success": true,
"data": {
"name": "Foreign Qualification",
"slug": "foreign-qualification",
"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_FQ_EXAMPLE_TX_0", "name": "Foreign Qualification", "item_type": "product", "has_gov_fee": true, "price": 75, "package": false }
]
}
}
Repeat the configuration call whenever the user changes the target state or product mix. Government fees and required disclosures update with catalog and input_fields.
Which field is "the state"? Most products key their state-gated
input_fieldsandcatalogoffbusiness_data.formation_state. Foreign Qualification is the exception — its jurisdiction field isstate_of_foreign_qualification(the state the FQ filing is being requested in).business_data.formation_stateis still required and stored on FQ orders as the entity's home state, but it does not drive FQ's state-specific requirements.
Some important attributes:
is_sensitivemeans that we need to treat this field as PII (Personal Information)questionnaire_copyholds a question (in English) that correctly refers to the field.
Jurisdiction: all 50 U.S. states
Partners must pass a USPS two-letter state code for the state where the filing or registration applies (foreign qualification state, registered agent state, or SUI employer state). The table below is the canonical list of codes to use in API payloads and validation.
| Code | State | Code | State |
|---|---|---|---|
| AL | Alabama | MT | Montana |
| AK | Alaska | NE | Nebraska |
| AZ | Arizona | NV | Nevada |
| AR | Arkansas | NH | New Hampshire |
| CA | California | NJ | New Jersey |
| CO | Colorado | NM | New Mexico |
| CT | Connecticut | NY | New York |
| DE | Delaware | NC | North Carolina |
| FL | Florida | ND | North Dakota |
| GA | Georgia | OH | Ohio |
| HI | Hawaii | OK | Oklahoma |
| ID | Idaho | OR | Oregon |
| IL | Illinois | PA | Pennsylvania |
| IN | Indiana | RI | Rhode Island |
| IA | Iowa | SC | South Carolina |
| KS | Kansas | SD | South Dakota |
| KY | Kentucky | TN | Tennessee |
| LA | Louisiana | TX | Texas |
| ME | Maine | UT | Utah |
| MD | Maryland | VT | Vermont |
| MA | Massachusetts | VA | Virginia |
| MI | Michigan | WA | Washington |
| MN | Minnesota | WV | West Virginia |
| MS | Mississippi | WI | Wisconsin |
| MO | Missouri | WY | Wyoming |
Note: Washington, D.C. and U.S. territories may use different codes or flows; confirm with your SwyftFilings representative if your customers require filings outside the 50 states.
Exceptions and manual filings
Some states may impose temporary filing restrictions, expedited options, or manual review steps. If Get Service Configuration returns an error for a state or omits expected SKUs, treat that jurisdiction as unavailable in the current release and contact [email protected].
- Foreign Qualification — Delaware, Nonprofit: not offered. See Foreign Qualification: Errors and edge cases.
Fulfillment reminders
- Webhooks: Webhooks for status changes.