Skip to main content
GET /billing/invoices lists the invoices Venly has issued to your company. It needs the view:billing scope, which is separate from everything else because the figures are commercially sensitive — ask Venly to grant it to the credential or dashboard user that needs it. Invoices never show the rates behind a charge; for those, contact Venly.
Response (200)
Invoices are read live from our billing system — Finance stores none. Only issued invoices (status: SENT) are visible; drafts and voided invoices are not. paymentStatus is the separate collection status: UNPAID, PARTIALLY_PAID, PAID or UNCOLLECTIBLE. sequenceUrl is Venly’s internal reference to the invoice, not a page you can open. To read your invoices, open the billing portal at billingUrl on your company profile, or download the PDF.

Two things that differ from other list endpoints

  1. Cursor pagination. There is no page/size envelope. Send pagination.nextPageCursor or previousPageCursor back exactly as received; never construct one. A stale cursor is 400 invalid-cursor — restart from the first page.
  2. 422 billing-not-configured until Venly links your company to a billing customer. Once linked, a company with no invoices yet gets an empty content.

The PDF

GET /billing/invoices/{invoiceId}/download returns raw PDF bytes — not the JSON envelope — with a Content-Disposition filename derived from the invoice number. Errors still arrive as JSON. A 404 always means the invoice is not yours to read. An invoice you can read whose PDF cannot be produced is 500 billing-provider-error, so a rendering fault is never mistaken for a wrong id.

Errors

Next steps

List invoices

The endpoint reference, with every field.

Your company profile

Where billingUrl — your billing portal — lives.