Create Stripe Checkout session for onboarding

POST/api/v1/onboarding/prepare-checkout

Collects plan and add-on selections, creates a Stripe Checkout session with a 30-day trial. Business is NOT created until /complete is called.

Operation ID: prepare_checkout_api_v1_onboarding_prepare_checkout_post·View as markdown·OpenAPI slice

Authentication

Bearer token authentication. Pass your DayZero API token in the Authorization header and the target business UUID in x-business-id.

Request body

account_typestringrequired

'self-managed', 'dz-managed', or 'advisory-firm'

business_namestringrequired
mailboxstringrequired
default_currencystring

Default business currency. Supported out of the box: USD, CAD, AUD, EUR, GBP.

tax_year_end_monthinteger
selected_addonsarray · string

Optional list of addon slugs to include on the Stripe Checkout. Capped at 50 entries.

trial_agreedbooleanrequired

User has agreed to the 30-day free trial terms

billing_intervalstring

Billing cadence for the subscription. 'year' resolves the discounted annual catalog prices; defaults to 'month'.

One of: month, year

firm_namestring
firm_plan_tierstring

Graduated firm plan tier (defaults to firm_starter)

einstring
logo_urlstring
addressstring
num_full_time_accountantsinteger
num_part_time_accountantsinteger
current_toolsarray · string
success_pathstring

Optional path-only override (no host) to land on after Stripe Checkout. Defaults to /onboarding/complete.

cancel_pathstring

Optional path-only override (no host) for cancelled checkout. Defaults to /welcome.

Responses

201Successful Response

successboolean
messagestring
codestring
dataPrepareCheckoutResponse

400Bad Request - Invalid input

409Conflict - Resource already exists

422Validation Error

detailarray · ValidationErrorValidationError
5 fields
locarray · string | integerrequired
msgstringrequired
typestringrequired
inputobject
ctxobject

429Too Many Requests - Rate limit exceeded