Billing Payout History
A transparent transfer log for platform sellers and affiliates, listing each payout with its ID, date, masked destination, status, and amount. Built for marketplace and affiliate dashboards where someone needs to check whether they've been paid and pull a full export without leaving the page.
Docs
Installation
A real shadcn registry command, not a copy-paste stand-in: it fetches this block plus its badge dependencies and any missing npm packages, and installs them straight into your project.
npx shadcn add https://staaarter.com/r/billing-payout-history.jsonPrefer not to use the CLI? Copy the source from the Code toggle above into src/components/blocks/billing/billing90.tsx instead.
Usage
The file also exports billing90Demo, the exact props behind the preview above. Spread it to get a working section in one line, then replace it with your own data.
import { Billing90, billing90Demo } from "@/components/blocks/billing/billing90"; export default function Page() { return <Billing90 {...billing90Demo} />; }
Props
| Prop | Type | Default | Description |
|---|---|---|---|
| title | string | "Payout history" | Heading shown above the table. |
| description | string | none | Optional one-line note under the heading, omitted if not passed. |
| payouts | PayoutRow[] | none | Rows rendered in the order given; the component does not sort them. |
| exportLabel | string | "Export CSV" | Label on the export link in the footer. |
| exportHref | string | "#" | Destination for the export link. |
| className | string | none | Extra classes for the outer container. |
Types
export type PayoutStatus = "Paid" | "Pending" | "In Transit" | "Failed"; interface PayoutRow { id: string; date: string; destination: string; status: PayoutStatus; amount: string; }
Behavior notes
- The payouts array is rendered as-is, in the order it's passed; sort or filter it before handing it to the component if you need newest-first or a status filter.
- Status uses a fixed 4-value union (Paid, Pending, In Transit, Failed) mapped to color classes in STATUS_STYLES. Add a new status by extending both the type and that map.
- destination is a plain string, so pass an already-masked value like "Bank account ending in 4242" rather than raw account details.
- The Export CSV action is a next/link, not a button, so it works with a direct download URL out of the box; swap it for a button with an onClick handler if the export needs to be generated server-side first.
- The table scrolls horizontally on narrow viewports via overflow-x-auto rather than reflowing into cards, so all five columns stay aligned at any width.
Frequently asked questions
More Billing Blocks
View all →Billing Invoice List
Invoice history table with status badges, formatted amounts, and a per-row download link, built with shadcn/ui and Tailwind CSS.
Billing Failed Payment Alert
High-contrast failed-payment alert with a message, a retry button, and an optional update-payment-method button, built with shadcn/ui and Tailwind CSS.
Billing Credit Balance
Compact credit balance card with a large total, an optional purchased-versus-promotional breakdown, a low-balance notice, and a top-up button.
Billing Payment Methods
A saved payment method list for React and Next.js with brand icons, a default badge, near-expiry warnings, and remove/set-default actions per row.
Billing Add Card
A card entry form for React and Next.js with auto-formatted fields, internal brand detection, and per-field validation feedback built with shadcn/ui and Tailwind CSS.
Billing Coupon Code
An inline promo code input for React and Next.js with a simulated loading state, an applied summary showing the discount amount, and an invalid-code message.