A project is one business's app; Company forms the business behind it: a US LLC or C-Corp in any state, with the registered agent, the EIN and the formation documents, through one API, the console, the CLI or an agent. Vibiz files on your instructions. Vibiz is not a law firm and gives no legal or tax advice: the owner chooses the entity type and the state.
Company formation: cost and what is needed
vibiz_company catalog lists every US state with its state fee per entity type, plus Vibiz's service_fee_cents and expedite_fee_cents. All amounts are in cents: fees { llc: 11000 } is $110.00. The price of a filing = state fee + service fee (+ expedite fee if the EIN is expedited); vibiz_company catalog with state (e.g. "DE") returns quotes that add them up. The registered agent is included at no extra fee. Vibiz's service fee is service_fee_cents (14900 = $149.00 today) and the expedited EIN fee expedite_fee_cents (0 today); the state fee is the state's own. The catalog is the source of truth: quote from it, never from memory.
Vibiz is not a law firm and gives no legal or tax advice: say so when the user asks which entity or state to choose, and let them decide.
What a draft needs
vibiz_company draft; read problems for what still blocks submit.
entity_type(llcorc_corp) andstate: the owner chooses.- 1–3
namesin order of preference, without the ending (LLC / Inc.). industry(from the catalog) and a shortdescription(at most 50 characters).- business and mailing address: your own, or use the registered agent's (included, no extra fee).
people: name, email, address with phone; LLCownership_percentsumming to 100; C-Corp roles (president, secretary, treasurer, director) and shares; oneresponsible_partyfor the EIN.- the responsible party's SSN/ITIN is given by a person in the console or
vibiz company, never through an agent.
Development and production
Development (the default for agents) runs the whole flow for free: nothing is filed, nothing is charged (submit, then simulate formation / ein). A real filing is submitted and paid by the owner (console or vibiz company submit, which shows the price first and asks them to type the company name).
Pricing
| What | Amount |
|---|---|
| State filing fee | the state's fee for the entity type, from GET /v1/company/catalog (jurisdictions[].fees, in cents) |
| Vibiz service fee | service_fee_cents: $149.00 today (14900) |
| Expedited EIN | expedite_fee_cents: 0 today |
| Registered agent | included |
A draft carries quote: { state_fee_cents, service_fee_cents, total_cents }, what submitting would cost now; submit fixes it into price. A production submit appears on the account's usage as company.formation; a filing that fails (nothing filed) is reversed.
curl "https://app.vibiz.app/v1/company/catalog?env=development" -H "Authorization: Bearer $VIBIZ_API_KEY"
# → { "object": "company_catalog", "jurisdictions": [{ "state": "DE", "name": "Delaware", "fees": { "llc": 11000, "c_corp": 10900 } }, …],
# "service_fee_cents": 14900, "expedite_fee_cents": 0, "disclaimer": "…" }The fees above are from the catalog as an example; always read them from the catalog.
Limits
- Entities:
llcandc_corp, any US state and DC. Not offered yet: UK Ltd, Estonia OÜ, Singapore Pte. Ltd., Canada (listed undercoming_soonwith why). - One company per project and environment.
- 1–3 names, each up to 120 characters, without the ending; a description of at most 50 characters; up to 10 people, first and last name at most 50 characters each.
- LLC ownership sums to exactly 100 (two decimals at most). C-Corp: at least one president, secretary, treasurer and director, and
shareswithauthorizedandpar_value_usd. - Indiana and Illinois need your own US business and mailing address.
- An expedited EIN only when nobody has an SSN (ITINs are fine).
Lifecycle
draft ──submit──▶ submitted ──▶ filing ──▶ formed ──▶ completed
│ (EIN pending) (EIN issued)
└──▶ failedactions[] lists what the state needs from you (names_rejected, founder_address_required, a signature); signatures[] the SS-4 / Form 8821 to sign; documents[] the articles, the EIN letter and the rest.
Draft and submit
vibiz company draft --file company.json --dev
vibiz company --dev # status, problems, next step
vibiz company submit --dev # development: nothing is filed
vibiz company simulate formation # development only
vibiz company simulate eincompany.json, an LLC with one owner:
{
"entity_type": "llc",
"state": "WY",
"names": [{ "name": "Acme Bakery" }, { "name": "Acme Breads" }],
"industry": "Bakeries and Tortilla Manufacturing",
"description": "Neighborhood bakery and online orders",
"people": [
{
"first_name": "Ana",
"last_name": "Diaz",
"email": "ana@example.com",
"address": { "line1": "1 Main St", "city": "Austin", "state": "TX", "postal_code": "78701", "country": "USA", "phone": "+15125550100" },
"ownership_percent": 100,
"responsible_party": true
}
]
}Pick industry from the catalog's industries. Over HTTP: PUT /v1/projects/:id/company?env=development with that body, GET to read problems and quote, POST …/company/submit { "accept_terms": true }.
A production submit is the owner's and checks what was reviewed: { "confirm": true, "accept_terms": true, "expected_total_cents": <quote.total_cents>, "expected_updated_at": "<updated_at>" }. If the draft or the price changed since, it answers 409 and the owner reviews again. The CLI prints the price and asks the owner to type the company's name.
A live filing is paid first: from the account's credits (402 payment_required when the balance is short of the quote), or by card with POST /v1/projects/:id/company/checkout?env=production and the same body, which returns a payment page and files the company as soon as it is paid. A filing that fails is refunded to where the money came from (Billing).
What agents can and can't do
| development | production | |
|---|---|---|
| Read the catalog, draft, read | yes | yes, masked (EIN, emails, street lines, phones) |
| Submit, simulate | yes (nothing filed) | no: 403 owner_only |
| Sign, answer actions, download documents | yes | no: 403 owner_only |
| Send an SSN or ITIN | never (403) | never: a person enters it in the console or the CLI |
Errors
| Code | Status | When | Next step |
|---|---|---|---|
invalid_request | 400 | unknown state, entity or industry; more than 3 names; submit with problems (in details.problems) | fix each problems[].path |
payment_required | 402 | a live submit with less credit than the quote | add credits, or pay the filing by card (…/company/checkout) |
forbidden + owner_only | 403 | an agent submitting, signing or sending a tax id | the owner, in the console ▸ Company |
conflict | 409 | not a draft any more; the reviewed quote or draft changed | read it again and review |
not_found | 404 | no company yet | PUT a draft |
provider_unavailable | 503 | formation is not available in this environment right now | retry later |