kibble invoice flow creates a professional PDF invoice, assigns a unique deposit address for USDC payment, and emails the invoice to your vendor immediately. When the vendor pays, Kibble detects the on-chain USDC transfer and sends you a payment confirmation email with the invoice number. The entire flow runs from your terminal in under two minutes.
Prerequisites
Make sure you have Node 18 or later installed, then run:Interactive walkthrough
Enter your business address
This address appears in the “From” section of the PDF invoice. It must be non-empty.
Enter the vendor details
Provide the name, email, and optionally the address of the person or company you’re billing.
The invoice PDF is emailed to the vendor address as soon as the invoice is created. Make sure the email address is correct before proceeding.
Add line items
Add one or more line items. Each item has a description, quantity, and unit price in USDC. After each item, you’ll be asked whether to add another.The invoice total is calculated by summing
quantity × unit_price across all line items. In this example: (1 × 2500.00) + (3 × 400.00) = 3700.00 USDC.Add notes (optional)
Include any payment terms, references, or additional context. Press Enter to skip.
Choose a wallet
Select the wallet that will receive USDC when the vendor pays.If you choose BYO (bring your own), enter your Base-compatible EVM address at the next prompt.
Output reference
After the flow completes, the CLI prints four values:| Output | Description |
|---|---|
| Invoice URL | The hosted invoice page. You can share this with your vendor as an alternative to the PDF. |
| PDF URL | Direct link to download the invoice as a PDF. |
| Deposit address | The Base wallet address the vendor should send USDC to. It’s printed on the invoice automatically. |
| Total | The sum of all line items, denominated in USDC. |
Email notifications
Two emails are sent automatically:- Vendor email — sent immediately when the invoice is created. It includes the PDF attachment, the total amount due, the deposit address, and the due date.
- Merchant confirmation — sent to you when payment is detected on-chain. The subject line is
Paid: INV-XXXXwhereXXXXis the invoice number.
Complete example session
Next steps
- To create invoices programmatically without prompts, use the
--stdinflag. - To validate an invoice payload before sending it, use
--stdin --dry-run. - To set up payment-received webhooks, see Webhooks overview.