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_type string required

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

business_name string required
mailbox string required
default_currency string

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

tax_year_end_month integer
selected_addons array · string

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

trial_agreed boolean required

User has agreed to the 30-day free trial terms

firm_name string
firm_plan_tier string

Graduated firm plan tier (defaults to firm_starter)

ein string
logo_url string
address string
num_full_time_accountants integer
num_part_time_accountants integer
current_tools array · string
success_path string

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

cancel_path string

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

Responses

201 Successful Response

checkout_url string required
session_id string required

400 Bad Request - Invalid input

409 Conflict - Resource already exists

422 Validation Error

detail array · ValidationError ValidationError
5 fields
loc array · string | integer required
msg string required
type string required
input object
ctx object

429 Too Many Requests - Rate limit exceeded