What you need
Before your first request
- An API key for the environment you are targeting, provided by the doola team (looks like
dk_test_...for sandbox ordk_live_...for production). - A webhook signing secret, used to verify incoming webhook events.
- Any REST client (curl, Postman, your backend HTTP library).
Environments
| Environment | Base URL |
|---|---|
| Sandbox | https://api.test.doola.com |
| Production | https://api.doola.com |
Always build and test against sandbox first. Sandbox keys never trigger real state filings or charges.
Your first call
Authenticate every request with your API key in theAuthorization header.
doolaCustomerId. Save it: you will need it to submit a company formation.
How formation works
Formation is a two step flow, then asynchronous progress delivered over webhooks.Create a customer
Call Create customer with the person’s details. You get back a
doolaCustomerId. One customer can own many companies.Submit a company formation
Call Create company with that
doolaCustomerId and the company details. Set entityType to LLC (the default) or CCorp — see Company formation for what each one needs. This starts the formation.Key concepts
- Idempotency. The create endpoints require an
Idempotency-Keyheader. Use a unique key per logical operation. Retrying with the same key and body is safe. Reusing a key with a different body returns409 E_IDEMPOTENCY_KEY_REUSED. - Consistent errors. Every error carries a machine readable
code, so you can branch on it without parsing strings. See Errors. - Reference data. Country, state, NAICS, and fee lookups live in the API reference so your forms always submit valid values.