Setup
Get your signing secret
doola provisions your tenant and generates your webhook signing secret. It is shown once at creation, so store it securely. Email engineering@doola.com to get set up or to rotate it.
Verifying the signature
doola sends aPOST with an X-Doola-Signature header: an HMAC SHA256 hex digest of the raw request body, keyed with your webhook secret. (HTTP header names are case-insensitive; many frameworks lowercase them to x-doola-signature on the way in.)
Payload
Events
| Event | Description |
|---|---|
company_formation_submitted | Formation accepted and processing started |
company_formation_completed | Formation complete, company is active |
company_formation_failed | Formation failed, check the company’s admin notes |
company_filing_date_updated | 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 endpoint was automatically disabled (see below) |
You may occasionally receive duplicate
document_* events for the same document, for example after doola re-issues a document. Handle uploads idempotently using documentId.Delivery and retries
If your endpoint does not return a2xx, doola retries up to 5 times: at 1 minute, 15 minutes, 1 hour, 12 hours, and 24 hours after the previous attempt. Treat every delivery as at least once.
After all retries fail, doola automatically disables your endpoint and sends a final partner_webhook_disabled event. Fix your endpoint and re-enable it in the Partner Portal. Re-enabling is a deliberate partner action, so you confirm the endpoint is healthy before traffic resumes.
Every delivery attempt (timestamp, event, HTTP status, attempt number) is visible in the Partner Portal.