kibble invoice CLI command or by calling POST /api/invoices directly. Both paths return a hosted invoice URL your vendor opens to pay — no account required on their end.
How invoices work
Create the invoice
Provide your merchant details, vendor details, line items, and a due date. Kibble generates a unique deposit address and a PDF-ready invoice record.
Vendor receives the email
Kibble emails the vendor a link to the hosted invoice page at
https://pay.kibble.sh/i/{slug}. The page shows the invoice details, a QR code, and the USDC deposit address.Vendor pays in USDC
The vendor sends USDC on Base to the deposit address. The hosted page polls for on-chain confirmation every 5 seconds and updates automatically when payment lands.
Invoice statuses
Every invoice moves through a defined set of statuses as payment arrives. Kibble also tracks whether an invoice is overdue based on itsdue_date.
| Status | Meaning |
|---|---|
draft | Created but not yet emailed to the vendor |
sent | Vendor has been emailed the invoice |
paid | Exact amount received |
partial | Underpayment received — awaiting the remaining balance |
excess | Overpayment received |
Two ways to create invoices
You can create invoices from the CLI without writing any code, or call the API directly to integrate invoicing into your product. CLIExplore the invoices section
Create an invoice
Full request and response reference for
POST /api/invoices, including line items, wallet options, and draft mode.Invoice statuses
Understand the status lifecycle, the
overdue flag, and how to poll for payment confirmation.Webhooks
Receive a signed HTTP notification the moment your invoice is paid, partially paid, or overpaid.
CLI reference
Create and manage invoices from your terminal using the
kibble invoice command.