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
1
Enter your business address
This address appears in the “From” section of the PDF invoice. It must be non-empty.
2
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.
3
Set the due date
Enter the payment due date in
YYYY-MM-DD format.4
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.5
Add notes (optional)
Include any payment terms, references, or additional context. Press Enter to skip.
6
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.
7
Invoice created and sent
Kibble generates the invoice, assigns a deposit address, emails the PDF to the vendor, and opens the invoice URL in your browser.
Output reference
After the flow completes, the CLI prints four values: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.