status field that reflects where it sits in the payment lifecycle, and an overdue boolean derived from the due_date. You can check both with a lightweight status endpoint or retrieve the full invoice record depending on how much data you need.
Invoice statuses
draft — created, not yet sent
draft — created, not yet sent
The invoice exists in Kibble but the vendor has not been emailed. This happens when you create an invoice with
send_now: false. The invoice stays in draft until you call POST /api/invoices/{id}/send.sent — vendor has been emailed
sent — vendor has been emailed
Kibble has sent the invoice email to the vendor’s address. The vendor can open the hosted invoice page, view the PDF, and send USDC to the deposit address.
paid — exact amount received
paid — exact amount received
The deposit address received exactly the
total_amount in USDC. This is the expected terminal state.partial — underpayment received
partial — underpayment received
The deposit address received a USDC amount less than
total_amount. The invoice remains open and the vendor can send the remaining balance to the same deposit address.excess — overpayment received
excess — overpayment received
The deposit address received more USDC than
total_amount. You will need to reconcile the difference with your vendor outside of Kibble.Status lifecycle
draft to sent when the vendor email is delivered. Once payment is detected on-chain, Kibble compares the received amount to total_amount and sets the final status to paid, partial, or excess.
Overdue detection
Theoverdue field is a boolean derived from the invoice’s due_date. It is true when today’s date is past the due_date and the invoice has not reached paid status. You can use this field to filter unpaid invoices that need follow-up.
Checking invoice status
Use the lightweight status endpoint when you only needstatus and overdue:
cURL
cURL
Immutable fields
Three fields on an invoice are written once at creation time and never updated, regardless of any subsequent changes to your account:| Field | Description |
|---|---|
merchant_name_snapshot | Your business name as it appeared when the invoice was created |
merchant_address_snapshot | Your business address as it appeared when the invoice was created |
invoice_number | The sequential invoice number (e.g., INV-0001) assigned at creation |