Invoice History Table

Billing history table displaying invoices with date, description, amount, payment status badges, and download buttons. Perfect for account billing pages and payment management dashboards.

FREE

Settings64: Invoice History Table

Billing history table for an account or settings page: a header with a billing badge, a shadcn Table of past invoices with colored status badges (paid, pending, failed) and a per-row download button, an empty state when there are no invoices, and an optional "view all" link.

Free block

This block is free. No license or account is required: install it with the CLI and use it in unlimited projects.

Installation

Radix flavor

bash
npx shadcn add "https://ui.beste.co/r/settings64"

Base UI flavor

bash
npx shadcn add "https://ui.beste.co/r-base/settings64"

This installs the block to components/beste/block/settings64.tsx and the badge, button, and table shadcn/ui primitives it depends on.

Quick start

The installed file exports settings64Demo alongside the block: the exact props behind the preview above. Spread it to get a working billing table in one line.

tsx
import { Settings64, settings64Demo } from "@/components/beste/block/settings64";

export default function BillingPage() {
  return <Settings64 {...settings64Demo} />;
}

Then replace the demo with your own props. Written out, the same setup looks like this:

tsx
import { Settings64 } from "@/components/beste/block/settings64";

export default function BillingPage() {
  return (
    <Settings64
      badge={{ label: "Billing", variant: "secondary" }}
      heading="Billing History"
      description="View and download your past invoices and payment history."
      invoices={[
        {
          date: "Jan 1, 2024",
          amount: "$29.00",
          status: "paid",
          description: "Pro Plan - Monthly",
          invoiceNumber: "INV-2024-001",
          downloadUrl: "https://beste.co",
        },
        {
          date: "Dec 1, 2023",
          amount: "$29.00",
          status: "failed",
          description: "Pro Plan - Monthly",
          invoiceNumber: "INV-2023-012",
        },
      ]}
      labels={{
        date: "Date",
        description: "Description",
        amount: "Amount",
        status: "Status",
        paid: "Paid",
        failed: "Failed",
        download: "Download",
      }}
      viewAllUrl="https://beste.co"
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string; variant?: "default" | "secondary" | "outline" }Optional badge above the heading
headingstringSection heading
descriptionstringSection intro text
invoicesInvoice[][]Rows rendered in the table, in order
labelsLabels{}Every user-visible table string, for i18n
viewAllUrlstringLink for the "view all" button below the table; button is hidden without it
classNamestringExtra classes for the outer <section>
ts
type Invoice = {
  date: string;
  amount: string;
  status: "paid" | "pending" | "failed";
  description: string;
  invoiceNumber: string;
  downloadUrl?: string;
};

type Labels = {
  date?: string;
  description?: string;
  amount?: string;
  status?: string;
  paid?: string;
  pending?: string;
  failed?: string;
  download?: string;
  noInvoices?: string;
  viewAll?: string;
};

Behavior notes

More Settings blocks

View all Settings
PRO

settings65

Invoice Detail View

Detailed invoice page with billing address, itemized line items table, subtotal, tax, total, and payment method info with print and download actions. Perfect for generating printable invoices and payment receipts.

PRO

settings59

Subscription Plan Card

Subscription management card displaying current plan details, pricing, included features, renewal date, and status badges with actions to change or cancel. Perfect for SaaS billing dashboards and account settings.