Skip to main content
This is the first step of company formation. It validates the KYC verification, creates a formation record, and returns a hosted checkout URL for the $349 formation fee. After the user pays, call POST /v1/formation/:id/submit to actually submit the formation.
string
required
UUID of a completed KYC verification (ready_for_formation: true).
string
required
Entity type. Currently "LLC".
string
required
2-letter US state code (e.g. "WY", "DE").
string
required
NAICS code ID from GET /v1/formation/naics-codes.
string
required
Business description (max 256 characters).
array
required
Company name options. At least 1 required, recommend 3 for availability. Each has name and entity_type_ending.
object
Optional. Defaults to the primary member’s address from KYC if not provided. If provided, must include line1, city, state, postal_code, country, phone.
The user must open the checkout_url and pay the $349 formation fee. Once paid, the payment webhook updates the formation’s payment_status to paid. After that, call POST /v1/formation/:id/submit to trigger the formation submission.
May require approval. If the user’s Account Kit gates formation, an agent (API-key) call to this endpoint (formation.create) and to POST /v1/formation/:id/submit (formation.submit, the irreversible Doola filing) returns 202 { "status": "pending_approval", "approval_id" } instead of running. A human approves it via Approvals; the step runs on replay. See Approvals.