# Billing Setup block

> Three-step billing setup wizard card with horizontal stepper, per-step validation, review summary

Multi-step account and payment onboarding wizard in a Card: ReUI Stepper nav gates locked steps, validates each step, then shows a review summary with Badge. Uses Field, Input, InputGroup, Select, Switch, Button. For billing, checkout, onboarding.

- Type: Pro block
- Category: [Wizard](https://web.dev.reui.io/blocks/application/wizard.md)
- Page: https://web.dev.reui.io/blocks/application/wizard/wizard-1
- Docs (Base UI): https://web.dev.reui.io/docs/components/base/stepper.md
- Docs (Radix UI): https://web.dev.reui.io/docs/components/radix/stepper.md
- MCP: `get_block("wizard-1")`
- Built with: Badge, Button, Card, Field, Input, Input Group, Select, Separator, Stepper, Switch
- Installs with a ReUI Pro or Ultimate license; setup: https://web.dev.reui.io/docs/license-setup

## Best for

A narrow card for an owner profile with an @ handle, then billing email, cycle, spend limit, PO number and a billing alerts switch

## Agent notes

- `DEFAULT_WIZARD_VALUES` prefills a Kepler Works billing owner, so every step already passes validation; replace it with empty values
- `handleSubmit` on the last step only shows a `toast` and flips `isSubmitting`; post `values` to your API there
- Validation lives in `getStepErrors` for `information` and `payment`; `receiptCopies`, `taxId` and `poNumber` are never checked

## When not to use

- Line items with per row tax and a discount that add up to an invoice total: use [Send Invoice](https://web.dev.reui.io/blocks/application/wizard/wizard-3.md) (`get_block("wizard-3")`)
- A first run workspace setup with a progress bar and a live preview: use the [Onboarding blocks](https://web.dev.reui.io/blocks/application/onboarding.md)

## Third-party libraries

- Sonner v2: [API reference](https://sonner.emilkowal.ski/toast), [docs](https://sonner.emilkowal.ski/getting-started)

## Install

```bash
npx shadcn@latest add @reui/wizard-1
```

## About Wizard blocks

### When to use

- Money tasks done in steps: account billing setup, sending an invoice, a seat upgrade or a fund transfer
- Admin intake in steps: a vendor compliance file, a store product with variants or a batch of team invites
- A long form split into 3 to 5 numbered steps with previous and next buttons and a summary before submit

### When not to use

- A first run setup right after signup that collects a profile, a role and goals: use the [Onboarding blocks](https://web.dev.reui.io/blocks/application/onboarding.md)
- Only numbered step markers and panel switching around fields you already built: use [Stepper](https://web.dev.reui.io/components/stepper.md) (`get_component("stepper")`)
- A shopper paying for a cart, entering shipping and card details beside an order summary: use the [Checkout blocks](https://web.dev.reui.io/blocks/ecommerce/checkout.md)

### Agent notes

- Steps come from `WIZARD_STEPS`, `PRODUCT_STEPS` or `PAYMENT_STEPS` in the data file, and each step id has its own render branch; add both for a new step
- No step calls an API: the final button shows a sonner `toast`, sets local state such as `isIssued`, or both; post the collected values from that handler
- Each page.tsx sets a `min-h-svh` wrapper and the full screen variants size their root to the viewport too; remove both inside an app shell or dialog

Every ReUI item has a twin like this one; the index is https://web.dev.reui.io/llms.txt. Agents with the ReUI MCP (https://web.dev.reui.io/docs/mcp) get the same guidance from the getters named above.
