What you can do today
- Form US companies (LLC or C-Corp) for your users. Submit a formation request via the API; doola handles state filing, registered agent, and EIN. Your user never has to interact with doola directly.
- Register and manage your customers. Create customers (idempotent) and attach one or more companies to each.
- Track formation status in real time. Poll the API or receive webhook events as a company moves through formation.
- Download company documents. Articles of Organization, EIN letter, and forwarded mail, via temporary signed links.
- Self-manage your API keys and webhook endpoint in the Partner Portal, including reviewing delivery logs.
- Browse everything in the Partner Portal, a ready-made web dashboard for your team.
Access and authentication
How do I get access?
How do I get access?
dk_live_...) and webhook signing secret, and creates Partner Portal logins for anyone on your team who needs dashboard access.What does the API key look like, and is it secure?
What does the API key look like, and is it secure?
dk_live_.... They are long, unique, and scoped to your account only, so your key can never see another partner’s data. Keys don’t expire by default, and if one is ever compromised it can be revoked and replaced without losing any of your customer or company data.Can I sign in instead of using the API key?
Can I sign in instead of using the API key?
dk_live_...) is for machine-to-machine calls such as creating customers, forming companies, and reading status. Anything else, such as managing API keys, setting your webhook URL, or reviewing delivery logs, lives in the Partner Portal.Can I manage my own API keys?
Can I manage my own API keys?
Can I have multiple team members on the portal?
Can I have multiple team members on the portal?
How is my data isolated from other partners?
How is my data isolated from other partners?
Forming companies
What entity types do you support?
What entity types do you support?
entityType field on the create-company request to LLC (the default when omitted) or CCorp. The two differ in who you list: an LLC takes members with ownership percentages, while a CCorp takes executiveMembers (officers and directors) and a ccorpValuation (authorized shares and par value per share).What information do I provide to form a company?
What information do I provide to form a company?
- The customer the company belongs to (
doolaCustomerId) - The entity type,
LLC(default) orCCorp - The US state to form in
- Up to 3 preferred company names, in order. doola uses the first one that clears the state’s availability check
- The industry (NAICS code)
- A business description
- The responsible party (the person legally responsible for the EIN application)
- For an LLC: company members and their ownership percentages (must total exactly 100%)
- For a C-Corp: executive members (at least one President, Secretary, Treasurer, and Director; President, Secretary, and Treasurer may each appear once, Director may repeat) plus the share structure (number of authorized shares and par value per share)
What states are supported?
What states are supported?
/v1/partner/references/states for the live list and /v1/partner/references/state-fees for filing fees, so you never hardcode anything in your onboarding forms.How long does formation take?
How long does formation take?
PENDING status. The actual formation work happens asynchronously in the background. Timelines vary by state and current volume. You are notified by webhook the moment the status changes, and you can check status any time via the API or the portal.Is there a sandbox?
Is there a sandbox?
https://api.test.doola.com before going to production (https://api.doola.com). Sandbox keys never trigger real state filings or charges.Tracking status and documents
What is the formation status lifecycle?
What is the formation status lifecycle?
| Status | Meaning |
|---|---|
PENDING | Received by doola, formation is being prepared |
SUBMITTED | Sent to the state for processing |
COMPLETED | Formation confirmed. EIN and documents are available |
FAILED | Something went wrong. Check adminNotes on the company and contact doola |
adminNotes field on a company carries any flags from the doola operations team (for example filing delays or IRS correspondence). Check it first if formation is taking longer than expected.What happens if formation fails?
What happens if formation fails?
FAILED. When that happens:- The company status is set to
FAILED - You receive a
company_formation_failedwebhook - The doola team is alerted internally
How do I access company documents?
How do I access company documents?
document_* webhook fires, call the documents endpoints to list a company’s documents and fetch a temporary signed download URL (valid about 1 hour). Don’t cache the URL; request a fresh one each time you need to download.Webhooks
What are webhooks and how do they work?
What are webhooks and how do they work?
POST with a JSON payload to your HTTPS endpoint, and your server responds 200 OK.Which events will I receive?
Which events will I receive?
| Event | Fires when |
|---|---|
company_formation_submitted | Formation accepted and processing started |
company_formation_completed | Formation complete, company is active |
company_formation_failed | Formation failed after all retries |
company_filing_date_updated | The filing date was updated by doola |
document_aoo_uploaded | Articles of Organization ready to download |
document_einletter_uploaded | EIN letter ready to download |
document_mail_uploaded | Business mail document uploaded |
partner_webhook_disabled | Your webhook endpoint was automatically disabled (see below) |
How are deliveries retried?
How are deliveries retried?
What if my endpoint keeps failing?
What if my endpoint keeps failing?
partner_webhook_disabled event. Once you have fixed your endpoint, re-enable delivery in the Partner Portal.Can I set or change my own webhook URL?
Can I set or change my own webhook URL?
Can I see webhook delivery logs?
Can I see webhook delivery logs?
How do I verify a webhook is really from doola?
How do I verify a webhook is really from doola?
x-doola-signature header, an HMAC-SHA256 hex digest of the raw request body, keyed with your webhook signing secret. Recompute it on your side and compare using a constant-time comparison (for example timingSafeEqual or compare_digest), never plain string equality.document_* event for the same document (for example when ops re-issues a document after an IRS correction). Handle document events idempotently using documentId.Partner Portal
What is the Partner Portal?
What is the Partner Portal?
partners-portal.doola.com) is a ready-to-use web dashboard for your team, with no technical setup, just log in. It shows a searchable list of all your companies and customers, full company details (status, EIN, filing date, state, entity type, members, addresses), a Formation / EIN / Registered Agent status stepper, downloadable documents, and any notes left by the doola team. It is also where you self-manage your API keys and webhook URL, and review delivery logs.Company and customer data is read-only in the portal. To create or change those, use the API.Is the portal white-labeled?
Is the portal white-labeled?
Can my users see their own company status?
Can my users see their own company status?
Data and privacy
doola stores the registration info you submit (email, first name, last name, country of residence, and optionally phone number) plus the company formation details. SSNs, when submitted as part of responsible-party or member information, are masked in all API responses. Only a redacted version is ever returned (for example****-**-1234). The raw value is stored securely and used only for formation.
Quick reference: available vs not
| Capability | Available? |
|---|---|
| Form LLCs via API | ✅ Yes |
| Form C-Corps via API | ✅ Yes |
| Register and list or search customers and companies | ✅ Yes |
| Download company documents | ✅ Yes |
| Real-time webhooks on key events | ✅ Yes |
| Self-service API key management | ✅ Yes |
| Self-service webhook configuration | ✅ Yes |
| Webhook delivery logs | ✅ Yes |
| Sandbox environment | ✅ Yes |
| Partner Portal | ✅ Yes |
| Multiple team members on the portal | ✅ Yes |
| Self-serve initial signup | ❌ doola provisions your account |
| Edit companies or customers through the portal | ❌ Read-only, use the API |
| Customer-facing portal | ❌ You build your own |
| White-label portal | ❌ Not standard (enterprise case by case) |
Related docs
- Company formation: entity types, required fields, status lifecycle
- Webhooks: setup, events, signature verification
- Errors: error codes and handling
- Domain objects: field-level reference