- ›
/formation— US LLC incorporation via Doola after KYC, checkout payment, and execute step (per published API) - ›
$249 formation fee (published)— Stripe Checkout covers Doola formation, state filing, registered agent, EIN application, and documents - ›
Two-step API— POST /v1/formation returns checkout_url; after payment, POST /v1/formation/:id/submit submits to Doola - ›
Composes with /kyc, /cards, /domain— a Company formed via /formation is the substrate other primitives attach to - ›
Entity type in public docs centers on LLC— follow the formation guide for supported states and parameters - ›
Built on Company → Employee → Primitive— the resulting Company is a first-class runtime object, not a PDF
Today we're launching /formation — a company formation primitive that lets your AI agent drive US LLC incorporation through the published flow: KYC validation, Stripe Checkout for the formation fee, then submission to Doola. The Company Formation guide is the source of truth for steps, statuses, and pricing. Use the quickstart to register an agent and call your first primitives; use the formation guide for checkout, execute, and documents.
The problem: agents can't fill out paper forms
Forming a company is the precondition for almost every autonomous business. A legal entity is what holds the bank account, owns the domain, signs the contracts, and absorbs the liability. But the formation process was built for humans with notarized signatures and physical mailboxes. Agents can't sign a paper. They can't receive a letter from the Secretary of State.
Existing programmatic formation tools — Stripe Atlas, Doola, Firstbase — all require a human founder in the loop. The agent is, at best, an assistant.
Until now. With /formation, the filing is orchestrated on behalf of an Employee. The Employee is the verified principal (via /kyc). Registered agent service and EIN application are included in the published formation fee (see the formation guide), and the resulting Company is a first-class object in the runtime — not a PDF in someone's email.
How /formation works
The workflow is:
- Verify — complete KYC for all founders via
naive verification start --members '[...]'. Each founder completes the Footprint-hosted flow untilready_for_formationis true. - Submit (creates checkout) — run
naive formation submitwithverification_id, state, NAICS id, description, and name options. The API returnscheckout_urlandawaiting_paymentuntil the fee is paid (see the formation guide). - Execute — after Stripe confirms payment, run
naive formation execute <formation-id>(API:POST /v1/formation/:id/submit) so verified PII is pulled from the Footprint vault and the filing is sent to Doola. - Compose — attach the Company to other primitives:
/cards,/domain,/brand,/email, etc.
The Company persists for the life of your account and follows the Company → Employee → Primitive model that every other Naïve primitive plugs into.
CLI: submit, pay, execute
# 1) NAICS codes
naive formation naics-codes
# 2) Submit — returns checkout URL ($249 per published docs)
naive formation submit \
--verification-id "3dcde53f-abaa-4bb6-a5b5-2d704fad6c19" \
--state WY \
--entity-type LLC \
--naics "2o8v0kcaCWyPyi3LJFsCiTCFSyk" \
--description "Faceless YouTube business" \
--names '[{"name":"Lumen Letters","entity_type_ending":"LLC"}]' \
--address '{"line1":"123 Main St","city":"San Francisco","state":"CA","postal_code":"94105","country":"US","phone":"+14155551234"}'
# 3) Operator completes Stripe Checkout from the returned URL
# 4) After payment — submit to Doola
naive formation execute <formation_id>
If anything's missing — incomplete KYC, invalid NAICS code, or invalid fields — the CLI or API returns a structured error with recovery steps. If checkout expires, the formation guide documents retry-payment / naive formation equivalents.
API: two steps after KYC
Step 1 — POST /v1/formation validates KYC and returns a checkout session (not an immediate Doola company id):
const res = await fetch("https://api.usenaive.ai/v1/formation", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.NAIVE_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
verification_id: "3dcde53f-abaa-4bb6-a5b5-2d704fad6c19",
entity_type: "LLC",
state: "WY",
naics_code_id: "2o8v0kcaCWyPyi3LJFsCiTCFSyk",
description: "Faceless YouTube business",
name_options: [
{ name: "Lumen Letters", entity_type_ending: "LLC" },
],
mailing_address: {
line1: "123 Main St", city: "San Francisco",
state: "CA", postal_code: "94105", country: "US",
phone: "+14155551234",
},
}),
});
const formation = await res.json();
// formation.id, formation.status (e.g. awaiting_payment), formation.checkout_url, formation.next_step
Step 2 — after payment_status is paid, execute:
await fetch(`https://api.usenaive.ai/v1/formation/${formation.id}/submit`, {
method: "POST",
headers: { "Authorization": `Bearer ${process.env.NAIVE_API_KEY}` },
});
The verification_id must reference a completed KYC verification where ready_for_formation is true — that ensures all founders have passed identity verification via /kyc.
EIN and documents
The published formation fee includes the EIN application and legal documents (e.g. Articles of Organization, EIN letter) when the filing completes — see the formation guide for status names (submitted, formation_completed, etc.) and the documents list/download flow.
naive formation status <formation_id>
naive formation documents <formation_id>
naive formation download <formation_id> <document_id>
If the formation fails, the formation guide covers unpaid vs paid failure paths, duplicate formations, and when to contact support.
Registered agent
Registered agent service is bundled in the published $249 formation fee alongside Doola formation and state filing (see the formation guide). Naïve orchestrates identity, payment, and runtime objects; the licensed formation partner handles the filing.
What you can build with /formation
Spawn a fleet of single-purpose LLCs — Separate LLCs per agent business so liability, taxes, and banking stay isolated. Compose /formation with /cards and /brand for the stack after the Company exists.
Provision the legal substrate for autonomous content brands — Form an LLC, attach a domain via /domain, add /brand and email when ready — the Employee operates on a real entity.
Prototype regulated-industry agents in a sandboxed entity — Stand up a disposable LLC for a high-risk experiment without commingling it with your operating entity.
Hand off ownership at exit — A Naïve Company is a real legal entity. Selling an autonomous business means transferring membership interests in an actual company, not a YAML file.
Run workflows that need a real EIN — Many vendors and filings expect an EIN; the formation package includes the EIN application per the published docs.
Get started
- Formation (authoritative): usenaive.ai/docs/getting-started/formation
- Quickstart (agent setup): usenaive.ai/docs/getting-started/quickstart
- Join the community on Discord
What is /formation?+
How does /formation work?+
What states and entity types are supported?+
How much does company formation cost?+
What's the difference between /formation and Stripe Atlas or Doola?+
Can an AI agent legally form a company?+
How do I get started with /formation?+
Co-founder of Naïve. Previously building the autonomous business stack.
@seandorje