VerificationStatus
KYC/KYB requirements, each with its state and what is still due.
npx shadcn add @lopifi/verification-statusExamples
The same component, case by case. Each stage is the shipped code with the props it shows; switch to Code for the usage.
Person, failed
One failed check makes the whole subject failed — worst state first, never an average.
How it behaves
What it renders, what it refuses to render, and why. The same paragraphs as the family spec, so the two can’t disagree.
KYC for a person, KYB for a business: the subject, every requirement (ID document, address, beneficial owners, sanctions screening …) with its state (verified | pending | needs-action | failed), and what's still due, by when, and what happens if it isn't provided. Requirements, deadlines and consequences come from the provider or the platform. The component names none of its own.
The overall state is derived, worst first. One failed requirement makes the subject failed, never an average. An empty requirement list is "No requirements on record", never "Verified".
Next due is stated in the summary line ("Next due: Beneficial owners by 24 Oct 2026"), and an overdue requirement counts its days in the negative tone. onResolve adds an action to requirements that need action or failed. Without it, no action renders.
Accessibility: the action's accessible name includes the requirement ("Provide beneficial owners"). Pending is a clock, never a spinner: it's a state, not a load.
More in Tax & compliance
See also
Where this component is specified, defined and running.
Elsewhere in the system
The live section VerificationStatus renders in, the calculators behind its figures, and the ledger payloads that feed it.
- VerificationStatus, runningThe compliance showcase — live, with theme, density, grayscale and reduced-motion switches.
- Tax & complianceControlTestResult sits beside them and speaks their idiom. Every component in this family takes an explicit asOf. "Today" is never the client clock, so a server render, a printed copy and a screenshot agree on what is late. Shared types live in src/ledger/lib/compliance.types.ts; the tax-ID checks l
Components are copied into your repository and meant to be edited. Rounding policy, fiscal calendar and compliance copy differ per company.
Release notes
Get an email when Tax & compliance changes
Your copy doesn’t update itself when we fix something here.
- One email when a Tax & compliance component needs a migration
- Nothing when nothing changes
Or install it now
npx shadcn add @lopifi/verification-status