Foreign Qualification
Foreign Qualification is fulfilled using the standalone fulfillment flow.
Partners submit baseline business and jurisdiction information when creating the order. Based on the entity type and state-specific requirements, additional information may be required to complete the filing.
Swyft evaluates each order and may request additional inputs during processing. Once all required information is received, Swyft completes the filing and returns status updates, confirmation details, and registration identifiers.
Related: Partner products overview · State requirements reference
When to use this flow
Use the standalone Foreign Qualification service cart (not the incorporation package) when you are only filing for authority in a foreign state. If the customer is also forming a new entity, use the incorporation flow and add filings as guided by your SwyftFilings representative.
Service slug and catalog
- Call Get Service Carts and find the entry whose
name/descriptioncorresponds to foreign qualification. - Use that item’s
slugas theservicepath parameter for Get Service Configuration and as theserviceproperty on Create New Order.
The examples below use the slug foreign-qualification. Replace it with the slug returned for your account.
API flow
| Step | Method | Endpoint |
|---|---|---|
| 1. List carts (once per integration) | GET | externalCart.index |
2. Configuration, input_fields, catalog | GET | externalCart.getCart |
3. NAICS list (if required by input_fields) | GET | businessClassification.index |
| 4. Create order | POST | order.store |
5. Submit order (if your cart uses submit + skus) | POST | order.submitOrder |
| 6. Post-checkout fields (optional) | GET | order.getOrderPostCheckout |
| 7. Poll order (optional) | GET | order.getOrder |
Follow Standalone Service Example for whether step 5 is required: if allows_addons is false and your order is created already Under Review, you may omit submit.
State-specific requirements (discovery)
API-driven configuration: For each target state, call Get Service Configuration with your Foreign Qualification service slug and build the order using the returned input_fields and catalog.
input_fieldsreturn the baseline required and optional keys, types, andvalidation_rulesfor that state and product. Additional inputs may be required during processing based on jurisdiction-specific or filing-specific conditions.cataloglists line items withsku,name,price, optionalfeesby state, andconditions(for example incompatible SKUs).
Do not cache field keys across states without revalidating; states differ in officer lists, consent, and supporting documents.
Example: Get Service Configuration
Request (replace {baseUrl}, {token}, and the slug):
GET {baseUrl}/service-carts/foreign-qualification?service=foreign-qualification
Authorization: Bearer {token}
Abbreviated success payload:
{
"success": true,
"data": {
"name": "Foreign Qualification",
"slug": "foreign-qualification",
"description": "Register an existing entity to transact business in another state.",
"input_fields": [
{
"name": "Entity legal name",
"key": "business_data.name",
"type": "string",
"description": "Legal name on home state records",
"validation_rules": ["required", "string", "max:255"]
},
{
"name": "Formation state",
"key": "business_data.formation_state",
"type": "enum",
"description": "State where you seek foreign qualification (two-letter code)",
"validation_rules": ["required", "exists:states,abbr"]
}
],
"catalog": [
{
"sku": "SF_FQ_EXAMPLE_SG_0",
"name": "Foreign Qualification Filing",
"item_type": "product",
"has_gov_fee": true,
"price": 149,
"fees": {
"TX": { "LLC": 750, "C Corporation": 750 }
},
"package": false
}
]
}
}
sku, fees, and field keys are illustrative; your environment returns the live catalog.
Example: Create order
Request:
POST {baseUrl}/orders
Authorization: Bearer {token}
Content-Type: application/json
{
"service": "foreign-qualification",
"email": "[email protected]",
"first_name": "Jane",
"last_name": "Doe",
"phone_number": "5551234567",
"consent_sms": false,
"business_data": {
"name": "Acme Holdings LLC",
"type": "LLC",
"formation_state": "TX",
"category": "541211",
"address": "100 Main St",
"city": "Austin",
"state": "TX",
"zip": "78701"
}
}
Jurisdiction: Set business_data.formation_state (and related address fields) to the state where the entity is seeking authority to operate.
Use the keys returned by Get Service Configuration to determine how state and jurisdiction fields should be populated for each order.
Abbreviated response:
{
"success": true,
"data": {
"message": "Order created successfully",
"order_uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
}
Example: Submit order
When the service requires explicit submission with selected SKUs:
POST {baseUrl}/orders/{order_uuid}/submit
Authorization: Bearer {token}
Content-Type: application/json
{
"order_uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"skus": ["SF_FQ_EXAMPLE_SG_0"],
"total_amount": 899.0,
"payment_method_nonce": null,
"service": "foreign-qualification"
}
Use catalog sku values from step 1; total_amount must match your pricing rules and checkout.
Fulfillment
- Order processing: After creation or submission, SwyftFilings evaluates the order and may request additional information required to complete the filing through the Customer Portal.
- Follow-up requirements: Additional inputs may be surfaced through the Customer Portal or API as required actions.
- Webhooks: Use
order_status_changeandorder_processing_status_changeto track progress. See Webhooks. - Completion: The order reaches a terminal success state when filings are accepted; documents are available to the customer per your portal configuration.
Errors and edge cases
- 422 Validation: Field keys or values that fail
validation_rulesreturnerrorskeyed by field name. - Unsupported combinations:
catalogmay includeconditions.must_not_be_added_withfor incompatible products. - Government fees:
feesin the catalog are keyed by state (and sometimes entity type); surface them in checkout before submit.