Skip to main content
GET
List Invoices

Authorizations

Authorization
string
header
required

OAuth 2.0 client credentials. The access token from POST /oauth/token is sent as a bearer token. Request only the scopes you need.

zivio-tenant-id
string
header
required

Your Zivio organisation identifier. The regional API endpoints serve every Zivio organisation, so each request must identify yours.

Query Parameters

page
integer
default:1

Page number for pagination

limit
integer
default:20

Number of results per page (max 100)

Required range: x <= 100
filter[<attribute>]
object

Filterable attributes:

integer (operators: eq, not_eq, in, not_in, gt, gte, lt, lte, between): approved_by_id, cis_rate_id, client_payment_terms_in_days, credit_note_id, id, level_1_approved_by_id, line_item_sheet_id, manual_client_tax_type_id, milestone_id, payment_terms_in_days, project_id, rejected_by_id datetime (operators: eq, not_eq, gt, gte, lt, lte, between): approved_at, client_due_on, created_at, dated_on, due_on, level_1_approved_at, paid_at, rejected_at, sent_at, updated_at string (operators: eq, not_eq, in, not_in): credit_note_reason, description, external_id, external_provider, reference_number, rejected_reason, status (one of: draft = saved by supplier, not yet submitted to client; unpaid = submitted, awaiting initial approval; paid = paid by client; level_1_approved = passed first-level approval, awaiting final approval; approved = fully approved, awaiting payment; rejected = rejected by client), subtype, type (one of: invoice = all invoice types except credit notes; credit_note = credit notes only; all = every invoice type (default)) boolean (operators: eq, not_eq): cis_contractor, cis_subcontractor, is_credit_note, self_bill, vatable money (operators: eq, not_eq, in, not_in, gt, gte, lt, lte, between): cis_amount_due, cis_deductible, cis_deduction_total, net_total, tax_total, total

Note: money values are in minor currency units (e.g. pence for GBP). Use 1000000 for £10,000.00.

Note: like is a case-insensitive substring match — pass the bare term (filter[title][like]=redesign). Do not add % wildcards; they are not needed.

or[group]
object

OR condition groups. Filters within a group are ANDed; groups are ORed.

Syntax: or[group_key][<attribute>]=value or or[group_key][<attribute>][operator]=value

Examples:

  • Simple OR: or[1][state]=draft&or[2][state]=pending
  • Complex: or[1][state]=draft&or[1][budget][gte]=50000&or[2][state]=closed
  • With custom fields: or[1][cf][priority]=high&or[2][state]=pending

Group keys can be any string (1, 2, a, b, etc.) - they just need to be unique.

cf[key]
object

Custom field filters using concise syntax.

Syntax:

  • Equality: cf[key]=value
  • With operator: cf[key][operator]=value

Operators: eq (default), not_eq, in, not_in, contains, not_contains, exists, not_exists

Examples:

  • cf[priority]=high - exact match
  • cf[department][in]=eng,design - matches any
  • cf[priority][not_eq]=low - not equal
  • cf[notes][contains]=urgent - contains text
  • cf[legacy_field][exists]= - field exists (value ignored)
  • cf[deprecated][not_exists]= - field does not exist
or[group][cf][key]
object

Custom field filters within OR condition groups.

Syntax: or[group][cf][key]=value or or[group][cf][key][operator]=value

Example: or[1][cf][priority]=high&or[2][state]=pending

sort[<attribute>]
object

Sort results by attribute. Direction defaults to ascending.

Syntax: sort[<attribute>]= (ascending) or sort[<attribute>]=desc (descending)

Sortable attributes: approved_at, approved_by_id, cis_amount_due, cis_contractor, cis_deductible, cis_deduction_total, cis_rate_id, cis_subcontractor, client_due_on, client_payment_terms_in_days, created_at, credit_note_id, credit_note_reason, dated_on, description, due_on, external_id, external_provider, id, is_credit_note, level_1_approved_at, level_1_approved_by_id, line_item_sheet_id, manual_client_tax_type_id, milestone_id, net_total, paid_at, payment_terms_in_days, project_id, reference_number, rejected_at, rejected_by_id, rejected_reason, self_bill, sent_at, status, subtype, tax_total, total, type, updated_at, vatable

Examples:

  • Ascending: sort[created_at]= or sort[created_at]=asc
  • Descending: sort[created_at]=desc

Response

List of invoices

invoices
object[]