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)
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
- Cursor pagination. There is no
page/sizeenvelope. Sendpagination.nextPageCursororpreviousPageCursorback exactly as received; never construct one. A stale cursor is400 invalid-cursor— restart from the first page. 422 billing-not-configureduntil Venly links your company to a billing customer. Once linked, a company with no invoices yet gets an emptycontent.
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.
