Skip to main content
Kibble invoices give you a complete billing workflow: generate a PDF invoice, email it directly to your vendor, receive USDC on Base at a unique deposit address, and track payment status in real time. You can create invoices from the 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

1

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.
2

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.
3

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.
4

You get notified

If you set a webhook_url when creating the invoice, Kibble sends a signed POST request to that URL as soon as the payment is detected.

Invoice statuses

Every invoice moves through a defined set of statuses as payment arrives. Kibble also tracks whether an invoice is overdue based on its due_date.
StatusMeaning
draftCreated but not yet emailed to the vendor
sentVendor has been emailed the invoice
paidExact amount received
partialUnderpayment received — awaiting the remaining balance
excessOverpayment received
See Invoice statuses for a full lifecycle breakdown and how to check status via the API.

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. CLI
kibble invoice
The CLI walks you through merchant details, vendor details, and line items interactively, then sends the invoice immediately. API
curl -X POST https://pay.kibble.sh/api/invoices \
  -H "Content-Type: application/json" \
  -d '{ "merchant_email": "you@example.com", ... }'
See Create an invoice for the full request reference.

Explore 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.