Invoices
Create, send and reconcile invoices with line items, tax and e-invoicing formats.
Invoices request payment from a customer. They post to the ledger when issued and when paid, so receivables are always current.
Create an invoice
const invoice = await cl.payments.invoices.create({
customer: 'cus_Halvorsen',
currency: 'EUR',
dueInDays: 30,
lines: [
{ description: 'AMR fleet management, October 2026', quantity: 140, unitAmount: '110.00', taxRate: 'de_vat_19' },
{ description: 'Firmware rollout support', quantity: 6, unitAmount: '150.00', taxRate: 'de_vat_19' },
],
});
The invoice is created as a draft with a number assigned from your sequence, such as INV-2049.
Lifecycle
Send a draft with POST /v1/payments/invoices/{id}/send. The customer receives an email with a PDF and a payment link that accepts cards, SEPA Direct Debit and bank transfer.
Reminders
Configure reminders per workspace, for example three days before the due date, on the due date and seven days after. Reminders stop automatically when the invoice is paid.
E-invoicing
Invoices can be issued as XRechnung (Germany) or via the Peppol network for customers that require structured e-invoices. Set format: 'xrechnung' or format: 'peppol' and provide the customer's routing identifier.
Reconciliation
Incoming bank transfers are matched to open invoices by reference, amount and payer. About 99.6% match automatically. Unmatched payments wait in Payments, Reconciliation with a suggested match.