Sales invoices, customer credit notes and debit notes, newest first
const url = 'https://example.com/v1/receivables/invoices?group=only&kind=sales_invoice&sort=created_at&order=asc';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://example.com/v1/receivables/invoices?group=only&kind=sales_invoice&sort=created_at&order=asc' \ --header 'Authorization: Bearer <token>'Keyset pagination: next_cursor is the only way to ask for the next page. Requires receivables.invoice.read.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”Filters by the group badge: only keeps group companies and group transactions, none keeps the rest; omitted keeps everything. Decided from the organization’s own counterparty map as at today, like is_group_company and is_group_transaction.
Only documents with a line charged to this project.
True lists only issued documents with something outstanding (what a receipt or an offset can take).
Case-insensitive substring of the document number, the customer’s reference or the customer’s name.
Invoice date, inclusive. A draft has no invoice date, so a range leaves drafts out.
Invoice date
Default: newest created first. The cursor belongs to the order that issued it; a cursor sent with another sort or order is refused.
The previous page’s next_cursor
Responses
Section titled “Responses”One page
object
object
Frozen when issued; null on a draft.
object
object
The organization’s user-defined field values by key (GET /org/custom-fields); {} when none.
object
A decimal rate or percentage as a string, up to 10 places. Never a JSON number.
A decimal amount as a string. Never a JSON number.
A decimal amount as a string. Never a JSON number.
True when the party is currently mapped to a company of the organization’s group, so a consolidation run eliminates the dealing. Derived from the party map at read time, never stored on the transaction.
Brought in by a data migration (import M5)
The previous system’s number
object
A decimal amount as a string. Never a JSON number.
A decimal amount as a string. Never a JSON number.
A decimal amount as a string. Never a JSON number.
A decimal rate or percentage as a string, up to 10 places. Never a JSON number.
object
A decimal rate or percentage as a string, up to 10 places. Never a JSON number.
A decimal amount as a string. Never a JSON number.
A decimal amount as a string. Never a JSON number.
The tax code as it read when the line was priced.
A decimal rate or percentage as a string, up to 10 places. Never a JSON number.
A delivery line (an invoice) or sales return line (a credit note) of this customer; quantity is then in base units (O3.2).
A decimal amount as a string. Never a JSON number.
True when the lines charge two or more distinct projects.
A decimal amount as a string. Never a JSON number.
An opening document’s original total, for reference; gross_amount is what was outstanding at the cut-over.
Gross less allocations (a credit note - what it has left).
The project every project-charged line shares; null when none or when several (see multiple_projects).
object
Null on a draft; numbered when issued (R2).
Frozen when issued; null on a draft.
object
A decimal amount as a string. Never a JSON number.
Example
{ "documents": [ { "fx_rate": "4.2000000000", "gross_amount": "1234.5600", "gross_base": "1234.5600", "kind": "sales_invoice", "lines": [ { "discount_amount": "1234.5600", "net_amount": "1234.5600", "net_base": "1234.5600", "quantity": "4.2000000000", "shares": [ { "percentage": "4.2000000000" } ], "tax_amount": "1234.5600", "tax_base": "1234.5600", "tax_rate": "4.2000000000", "unit_price": "1234.5600" } ], "net_total": "1234.5600", "original_total": "1234.5600", "outstanding": "1234.5600", "semantic": "draft", "tax_total": "1234.5600" } ]}Not authenticated, or the session is no longer valid.
object
A stable refusal code the client branches on, where the status alone is not enough: owner_role_manage_required and self_lockout on the role editor’s 409s; revision_mismatch (a stale If-Match) and document_bound_elsewhere (the document backs another record) on an expense claim’s 409s.
Example generated
{ "code": "example", "detail": "example", "instance": "example", "status": 1, "title": "example", "type": "example"}The caller does not hold the permission this operation requires.
object
A stable refusal code the client branches on, where the status alone is not enough: owner_role_manage_required and self_lockout on the role editor’s 409s; revision_mismatch (a stale If-Match) and document_bound_elsewhere (the document backs another record) on an expense claim’s 409s.
Example generated
{ "code": "example", "detail": "example", "instance": "example", "status": 1, "title": "example", "type": "example"}The request is well-formed but refused by an AR rule.
object
A stable refusal code the client branches on, where the status alone is not enough: owner_role_manage_required and self_lockout on the role editor’s 409s; revision_mismatch (a stale If-Match) and document_bound_elsewhere (the document backs another record) on an expense claim’s 409s.
Example generated
{ "code": "example", "detail": "example", "instance": "example", "status": 1, "title": "example", "type": "example"}A rate limit was reached: per API key, per organization across its keys, or per source address for repeated failed key authentication. Retry after the number of seconds in Retry-After. Every answer on a key carries RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset.
object
A stable refusal code the client branches on, where the status alone is not enough: owner_role_manage_required and self_lockout on the role editor’s 409s; revision_mismatch (a stale If-Match) and document_bound_elsewhere (the document backs another record) on an expense claim’s 409s.
Example generated
{ "code": "example", "detail": "example", "instance": "example", "status": 1, "title": "example", "type": "example"}Headers
Section titled “Headers”Seconds until a retry may succeed.