Business
What does a formation through the SDK include?
What does a formation through the SDK include?
How does doola bill us for SDK formations?
How does doola bill us for SDK formations?
Who decides what the founder pays?
Who decides what the founder pays?
Will our customers know doola is involved?
Will our customers know doola is involved?
Can we use the SDK and the Partner API together?
Can we use the SDK and the Partner API together?
Can we change the wizard's steps or fields?
Can we change the wizard's steps or fields?
Payments
Does doola ever charge the founder?
Does doola ever charge the founder?
What exactly does confirming payment mean?
What exactly does confirming payment mean?
partnerReference is stored for your reference and never verified. So you decide when to call it, for example straight after a card payment, once an invoice is paid, or right away for a free offer.What if the founder never pays?
What if the founder never pays?
AWAITING_PAYMENT, and nothing is filed. Whenever the founder comes back to the SDK, they see that payment is pending and can reopen your checkout. To withdraw it for good, contact doola to cancel it.How do refunds work?
How do refunds work?
409 E_COMPANY_CANCELLED, the formation was cancelled and the payment was not applied, so refund the founder. Once you have confirmed, filing has started; contact doola about the formation if the founder wants to stop.Can the founder add Expedited EIN or other extras?
Can the founder add Expedited EIN or other extras?
Do we get a webhook when a founder submits?
Do we get a webhook when a founder submits?
company_formation_submitted, after you confirm payment. Your page learns about the submission through onFormed, so save the companyId with your order as soon as your checkout opens. See Keep your records in step.The founder’s experience
Does the founder need a doola account or password?
Does the founder need a doola account or password?
How long does it take?
How long does it take?
Can a customer form more than one company?
Can a customer form more than one company?
Can the founder change their details after submitting?
Can the founder change their details after submitting?
What if the founder leaves halfway through the wizard?
What if the founder leaves halfway through the wizard?
Can founders outside the US use it?
Can founders outside the US use it?
Does it work on phones?
Does it work on phones?
Which languages are supported?
Which languages are supported?
locale option, with no change to how you embed the SDK.Data and security
Do SSNs or signatures pass through our systems?
Do SSNs or signatures pass through our systems?
What does our security team need to allow?
What does our security team need to allow?
script-src https://js.doola.com and frame-src https://sdk.doola.com in your CSP, and the doola-js Trusted Types policy if you enforce Trusted Types. Nothing else. See Content Security Policy.What can a leaked session token do?
What can a leaked session token do?
Integration
Which frameworks does it work with?
Which frameworks does it work with?
@doola/js is framework-free: you append an element. Embed the SDK shows React, Next.js and Vue, and the session route works on any server language.How do I show the founder's company after payment?
How do I show the founder's company after payment?
element.replaceWith(doola.create()). The payment screen does not watch for your confirmation by itself, and each create() is its own iframe, so never leave the old one on the page.Can I track progress through the wizard?
Can I track progress through the wizard?
onLoaderStart when the SDK first shows something and onFormed when the founder submits.What happens when doola updates the SDK?
What happens when doola updates the SDK?
@doola/js release in the same major version. Update the package when you want new options.How do I switch to another user on the same page?
How do I switch to another user on the same page?
doola.destroy() when the first user signs out, then loadDoola() again for the next one.Are there rate limits?
Are there rate limits?
429 E_RATE_LIMITED, wait the Retry-After seconds.Troubleshooting
The SDK area stays blank
The SDK area stays blank
frame-src for https://sdk.doola.com (or https://sdk.test.doola.com with test keys), and look for render_error in onLoadError. See render_error.The founder sees 'We could not start your session'
The founder sees 'We could not start your session'
onAuthError as mint_failed. Check your route’s logs and the doola code that onFailure logs.The signing panel is empty
The signing panel is empty
A new user gets email_in_use
A new user gets email_in_use
email_in_use: forward doola’s code so an externalCustomerId conflict arrives as external_id_conflict instead, and check doolaCode in your server logs.The founder still sees Payment pending after I confirmed
The founder still sees Payment pending after I confirmed
doola.create(). The payment screen only changes when a new element mounts.onFormed fired twice for the same company
onFormed fired twice for the same company
companyId.My session route answers 401 although the user is signed in
My session route answers 401 although the user is signed in
credentials: 'include' and allow that in your CORS settings.loadDoola() rejects after a user switch
loadDoola() rejects after a user switch
doola.destroy(), then loadDoola() again.