Formation runs against an account, and on a platform every user has one. This is what the program looks like once it is running.
You create each of these once, with a POST /accounts when the user signs up. Forming a company is a second call against that id.
Marcus is the only live row. He maps to this demo's sandbox account biz_hMI9nMwxmq3TOE and forming against him sends a real request.
Every stage after that begins when somebody pays $500, which the sandbox cannot do, so the other four are drawn from the documented shapes rather than live data.
Its legal name, what kind of entity it is, which state registers it, and where it lives.
Every member of your user's company, their share, and which one signs for the filing.
One call from your server, against your user's account. No draft to create first, no session to open.
{
"business_name": "Ridgemont Detailing",
"entity_type": "llc",
"entity_suffix": "LLC",
"formation_state": "WY",
"business_type": "brick_and_mortar",
"industry_group": "automotive",
"industry_type": "car_wash",
"use_registered_agent": true,
"founders": [
{
"first_name": "Marcus",
"last_name": "Webb",
"email": "marcus@ridgemont.example",
"phone": "+12125550100",
"is_primary": true,
"date_of_birth": "1990-04-12",
"ownership_percentage": 100,
"address": {
"line1": "907 Ridgemont Dr",
"city": "Austin",
"state": "TX",
"postal_code": "78704",
"country": "US"
}
}
]
}Junk means a broken email, a phone that is not E.164, a founder born in 2024, and a postal code of ZZZZZ. Whop takes all four.
Whop answers with one sentence at a time, so a broken application takes as many round trips as it has mistakes.
Nothing sent yet. The panel above holds the exact request.
You do not pay for the formation. You pass the checkout on, and the filing starts when they settle it.
In production the response carries a Whop checkout link for $500. You show it to your user, and once they pay it the filing is real: state registration, EIN, Articles of Organization, the lot.
Nobody can pay here, because this demo runs on Whop's sandbox and the sandbox cannot form companies. Everything above this line was a real API call.
{
"checkout_url": "https://whop.com/checkout/ch_xxxxxxxxxxxxxxx/",
"checkout_session_id": "ch_xxxxxxxxxxxxxxx",
"total": 50000,
"currency": "usd"
}total is in cents, and it is a flat fee: $400 for the formation plus $100 for the first year of registered agent. Read it off the response rather than hardcoding it, because it has moved once already.
- 1
draftWhere the application sits until your user pays. - 2
processingPaid. Whop files with the state and applies for the EIN. - 3
filedThe state has the paperwork. Documents start appearing. - 4
completedRegistered, EIN issued, Articles of Organization downloadable.
Read company_formation when you retrieve their account, or listen for account.updated rather than polling every user you have.