Skip to main content

Incorporation Service Example

An Incorporation order bundles together several services into a single order to create a business (LLC, S-Corp, C-Corp, Non-Profit). This type of order lets you add additional services to the order after the order is created, such as Initial Report, EIN, Registered Agent, etc. The next list summarizes the steps to submit an Incorporation order for a business.

StepMethodEndpoint
1. Get Service Configuration and Catalog informationGET/service-carts/{service}
2. Get Business Classification DataGET/business-classifications
3. Create orderPOST/orders
4. Submit OrderPOST/orders/{order_uuid}/submit
5. Get order information (optional)GET/orders/{order_uuid}
6. Receive and respond Information Requests and Order Rejections over Webhooks

1. Get Service Configuration and Catalog information

Calling this endpoint will return the service configuration and catalog information for the Incorporation order. Important information includes:

  • input_fields: The input fields that are required to create the Incorporation order. You can build your Front end dynamically based on this information.
  • catalog: The list of products that are available for the Incorporation order.
GET {baseUrl}/service-carts/incorporation-package?state=DE&business_type=LLC
Authorization: Bearer {token}

state and business_type are optional — pass them to resolve any state- or entity-specific eligibility rules on the bundle's nested products up front.

Abbreviated success payload:

{
"success": true,
"data": {
"name": "Incorporation Package",
"slug": "incorporation-package",
"description": "Service that bundles together multiple products to create an incorporation",
"input_fields": [
{
"name": "Business Name",
"key": "business_data.name",
"type": "string",
"description": "Business name",
"questionnaire_copy": "What is your business's legal name?",
"validation_rules": [
"string",
"max:100"
],
"default_value": null,
"options": null,
"is_sensitive": false,
"required": true
},
{
"name": "Business Type",
"key": "business_data.type",
"type": "enum",
"description": "Type of the business",
"questionnaire_copy": "What type of business entity is this? (e.g., LLC, Corporation)",
"validation_rules": [
"string",
"in:LLC,C Corporation,S Corporation,Nonprofit,Basic LLC,Partnership,Sole Proprietorship"
],
"default_value": null,
"options": {
"values": [
"LLC",
"C Corporation",
"S Corporation",
"Nonprofit"
]
},
"is_sensitive": false,
"required": true
},
{
"name": "Business Formation Date",
"key": "business_data.formation_date",
"type": "date",
"description": "Date of business formation",
"questionnaire_copy": "What is your business formation date?",
"validation_rules": [
"date_format:Y-m-d",
"before_or_equal:today"
],
"default_value": null,
"options": null,
"is_sensitive": false,
"required": true
},
{
"name": "Business Formation State",
"key": "business_data.formation_state",
"type": "enum",
"description": "State where the business was formed",
"questionnaire_copy": "What is your business formation state?",
"validation_rules": [
"string",
"size:2",
"exists:states,abbr"
],
"default_value": null,
"options": {
"message": "US postal service standard two letter state code. Example: CA, NY, etc."
},
"is_sensitive": false,
"required": true
},
...
],
"catalog": [
{
"sku": "SF_1178_SG_0",
"name": "Incorporation Basic",
"item_type": "product",
"has_gov_fee": true,
"price": 199,
"package": true,
"package_items": [
"Employer Identification Number (EIN)",
"Operating Agreement",
"Standard Processing",
"Statement of Organizer",
"Banking Resolution",
"Organizational Minutes"
],
"conditions": {
"must_not_be_added_with": ["SF_1014_SG_0", "SF_1031_SG_0"]
}
}
]
}
}

sku, package_items, and conditions are illustrative — always build against the live catalog for the target state and business type.

2. Get Business Classification Data

Calling this endpoint will return the business classification data for the Incorporation order. You will required to provide a naics code from this list to create the order data in the next step.

GET {baseUrl}/business-classifications?q=agriculture
Authorization: Bearer {token}
{
"success": true,
"data": [
{
"id": 1,
"naics": "111111",
"description": "Agriculture, forestry, fishing and hunting",
"cd_code": "07324d4e-3f71-48f0-a846-723e029c94e7"
}
]
}

Pass the q query parameter to search by NAICS code or description; omit it to return the full classification list. Use the matching naics value as business_data.category on order creation.

3. Create order

Calling this endpoint will create the Incorporation order in draft status (status = "Created"). In this status the order is just a placeholder and does not represent a valid order that need to be processed by Swyftfilings.

Make sure to store the order uuid returned in the response to use it in the next steps.

POST {baseUrl}/orders
Authorization: Bearer {token}
Content-Type: application/json
{
"service": "incorporation-package",
"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": "DE",
"category": "541211",
"address": "8 The Green",
"city": "Dover",
"state": "DE",
"zip": "19901",
"managed_by": "managers"
},
"managers_data": [
{
"title": "Managing Member",
"full_name": "Jane Doe",
"address": "8 The Green",
"city": "Dover",
"state": "DE",
"zip": "19901",
"address_complement": "",
"is_company": false
}
]
}

Abbreviated response:

{
"success": true,
"data": {
"message": "Order created successfully",
"order_uuid": "99ff4d16-4e61-499d-8e97-769de1bcca6b"
}
}

📝 Note: A required document input field is never sent in this body — files are uploaded separately via Upload order documents. A missing required document does not block order creation; the order instead moves to Action Required until the document is uploaded.

⚠️ Important: This will trigger the order processing, so after this point Swyftfilings will start processing the order and you will receive updates via Webhook according to your integration setup.

4. Get order information (optional)

Calling this endpoint will return the order information. You can use this information to display the order details to the user or you internal systems.

GET {baseUrl}/orders/99ff4d16-4e61-499d-8e97-769de1bcca6b
Authorization: Bearer {token}

Abbreviated response:

{
"success": true,
"data": {
"id": 1,
"uuid": "99ff4d16-4e61-499d-8e97-769de1bcca6b",
"service": "incorporation-package",
"status": "In Progress",
"business_data": {
"name": "Acme Holdings LLC",
"type": "LLC",
"formation_state": "DE"
},
"managers_data": [],
"order_items": [
{ "submitted_at": "2026-07-01", "type": "sale", "items": ["SF_1178_SG_0"] }
],
"required_actions": {
"rejections": [],
"questionnaires": [],
"alerts": []
},
"documents": []
}
}

status is the rolled-up value your integration tracks: In Progress, Action Required, On Hold, Completed, or Cancelled. required_actions surfaces any open rejections or questionnaires — see Respond to Order Rejections.

5. Receive and respond Information Request over Webhooks

After the order is submitted, you may receive information requests and Order Rejections from the Agent, while fulfiling the order. These requests need to be replied with the correct or added information.

🧪 Testing in Sandbox? You don't have to wait on real fulfillment to test these transitions — see Self-Service Order Status Change to cancel, complete, or open a rejection on your own test orders.