Skip to content

Invoicing

The Invoicing API exposes issued invoices and the customers they bill - the same records shown in the Rho dashboard. Use it to track what is outstanding, reconcile payments, and retrieve invoice PDFs without scraping the web app.

Stable contract

The Invoicing API is part of the stable v1 contract: additive-only, with breaking changes reserved for a new API version. See Versioning and compatibility.

Every endpoint requires the invoicing:read scope.

Invoices and customers

Customers are the businesses you bill. A customer ID and its last_invoice_id are UUIDs. Deleted customers are excluded from the list endpoint unless include_deleted=true; fetching a customer by ID still returns it while the record exists.

Invoices are issued documents. List invoices by status or inclusive issue and due-date ranges, then follow page.next_page_token with the same filters to read every page. Results are ordered by creation time, newest first.

All amounts are integer minor units in the accompanying currency. For USD, 124500 represents $1,245.00.

Accounting sync status

accounting_sync_status reports the invoice's relationship to the accounting integration:

  • not_pushed - eligible to be pushed after being unskipped.
  • synced - successfully synced to the integration.
  • error - the most recent sync attempt failed. accounting_synced_at, when present, remains the timestamp of the last successful sync.
  • skip - explicitly excluded from syncing.
  • object_changed - previously synced, but changed since the last successful sync.

Invoice PDFs

When an invoice has a PDF, file_id is present. When no PDF exists, the field is omitted. Use GET /invoicing/invoices/{invoice_id}/files/{file_id} to exchange it for a fresh, short-lived download_url; do not persist that URL.

Reference

Full endpoint catalogue - paths, parameters, response shapes, and required scopes - lives in the API Reference.