Staaarter

Billing Referral Payout Status

A payout status card for referral or affiliate partners, showing a status badge, the pending payout amount, an estimated payout date, and the payout destination. Switches to a failed-payout alert with an update-payment-method link when the status is failed.

By Staaarter Team
Billing
Updated May 24, 2026
Docs
Live preview

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-referral-payout-status.json

Prefer not to use the CLI? Copy the source from the Code toggle above into src/components/blocks/billing/billing112.tsx instead.

Usage

The file also exports billing112Demo, 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 { Billing112, billing112Demo } from "@/components/blocks/billing/billing112";

export default function Page() {
  return <Billing112 {...billing112Demo} />;
}

Props

PropTypeDefaultDescription
headingstring"Payout status"Card heading.
descriptionstringnoneOptional one-line note under the heading.
status"pending" | "processing" | "paid" | "failed""pending"Drives the badge color and label, and whether the failed-payout alert renders.
pendingAmountstringnonePending payout total, already formatted as currency.
estimatedPayoutDatestringnoneOptional estimated payout date; the row is omitted when not passed.
payoutDestinationstringnoneWhere the payout will land, e.g. "Bank account ****4821".
minimumThresholdstringnoneOptional minimum payout note shown under the pending amount.
updatePaymentHrefstring"#"Destination for the update-payment-method link shown when status is failed.
classNamestringnoneExtra classes for the outer container.

Behavior notes

  • status is a fixed 4-value union (pending, processing, paid, failed) mapped to badge colors in STATUS_STYLES; add a new status by extending both the type and that map.
  • The failed-payout alert with its update-payment-method link only renders when status is "failed"; every other status shows just the badge and details.
  • This is a non-client component. The status is passed in as a prop rather than tracked as local state, so a real status change requires the caller to re-fetch and re-render with a new status value.
  • estimatedPayoutDate only renders its row when passed, so an in-progress payout with no known date can omit it cleanly.

Frequently asked questions