# Vendor Onboarding block

> Three-step procurement vendor onboarding wizard with per-step validation and review summary

Multi-step vendor KYC intake: company details, compliance with repeatable beneficial owners and tax ID, then a document checklist and review summary. Per-step validation. ReUI Stepper, Frame, Badge plus shadcn Field, Input, Select, Checkbox, Tooltip.

- Type: Pro block
- Category: [Wizard](https://web.dev.reui.io/blocks/application/wizard.md)
- Page: https://web.dev.reui.io/blocks/application/wizard/wizard-2
- 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-2")`
- Built with: Badge, Button, Checkbox, Field, Frame, Input, Select, Spinner, Stepper, Textarea, Tooltip
- Installs with a ReUI Pro or Ultimate license; setup: https://web.dev.reui.io/docs/license-setup

## Best for

Vendor due diligence with add and remove beneficial owner rows, an attestation box and a document checklist that needs 2 picks

## Agent notes

- `currentStep` starts at 2 and the Stepper `onValueChange` is `setCurrentStep`, so any step opens without validation
- `handleSubmit` waits 900 ms, then shows a `toast`; no vendor file is posted anywhere, so call your API there
- `DOCUMENT_REQUIREMENTS` is a checklist of files already received, not an uploader; submit needs 2 ticked `documentIds`

## When not to use

- Inviting several teammates by email, each with a role: use [Team Invitations](https://web.dev.reui.io/blocks/application/wizard/wizard-5.md) (`get_block("wizard-5")`)
- A short billing profile with a spend limit and no compliance files: use [Billing Setup](https://web.dev.reui.io/blocks/application/wizard/wizard-1.md) (`get_block("wizard-1")`)

## 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-2
```

## 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.
