Skip to main content

Get Invoices

Retrieve a list of invoices issued by your store.

Invoices are returned newest first, by issue date. Narrow the list with the optional filters below — for example status=error to return Polish invoices that were not accepted by the government tax system, or customer=buyer@example.com to return one customer's invoices. All filters combine with AND.

Request​

GET /invoices

Query Parameters​

ParameterTypeRequiredDefaultDescription
pageintegerNo1Page number for pagination
per_pageintegerNo10Items per page (min: 1, max: 100).
sortstringNonewest issued firstSort order: issued_at or number. Prefix with - for descending.
typestringNo—Filter by document type. One of invoice, correction.
statusstringNo—Filter by status. One of issued, pending, error.
gov_statusstringNo—Filter Polish invoices by KSeF delivery status (e.g. ok, send_error). See KSeF status.
issued_fromstringNo—Only invoices issued on or after this date (inclusive), YYYY-MM-DD.
issued_tostringNo—Only invoices issued on or before this date (inclusive), YYYY-MM-DD.
numberstringNo—Partial, case-insensitive match on the invoice number.
customerstringNo—Filter by customer — either a customer UUID or an email address.
transaction_idstringNo—Only invoices for this transaction (UUID).
order_idstringNo—Only invoices for this order (UUID).

Omitting a filter or passing it empty means "no filter on that field". Passing a non-empty but unparseable value — an unknown type / status / gov_status, a malformed date, a customer that is neither a UUID nor an email, an out-of-range per_page, or an unknown sort field — returns a 400 (see Bad Request).

Ordering: Invoices default to newest issued first, with unissued (pending) invoices last, unless sort is supplied.

Counting matches: every response includes the filtered total in pagination.total. To get only a count, request per_page=1 with your filters and read pagination.total.

Example Request​

curl -X GET "https://cart.easy.tools/api/v1/invoices?status=issued&page=1" \
-H "Authorization: Bearer YOUR_API_TOKEN"

Response​

Success Response (200)​

Returns a paginated list of invoices.

{
"items": [
{
"id": "001fd355-2cd4-4bb1-9fca-cf30e5eb76a8",
"number": "EASY/2026/06/123",
"type": "invoice",
"status": "issued",
"total": 12300,
"currency": "pln",
"customer_email": "anna.kowalska@example.com",
"issued_at": "2026-06-05T10:20:00+00:00",
"remote_id": "884512"
},
{
"id": "9a1f7c33-8e0b-4a21-bb6d-2c9e5f0a1b22",
"number": "EASY-K/2026/06/12",
"type": "correction",
"status": "issued",
"total": 4100,
"currency": "pln",
"customer_email": "office@company.example",
"issued_at": "2026-06-04T14:05:00+00:00",
"remote_id": "884001"
}
],
"pagination": {
"current_page": 1,
"total_pages": 4,
"per_page": 10,
"total": 38
}
}

Response Fields​

FieldTypeNullableDescription
idstringNoUnique identifier for the invoice (UUID)
numberstringYesInvoice number. Null until the invoice has a number assigned.
typestringNoDocument type: invoice or correction.
statusstringNoDerived status: issued, pending, or error.
totalintegerNoGross total in minor units (e.g. cents)
currencystringNoLowercase ISO currency code (e.g. "pln", "eur")
customer_emailstringYesBilling email recorded on the invoice
issued_atstringYesWhen the invoice was issued (ISO 8601 format). Null while pending.
remote_idstringYesThe invoice's id with the issuing service, useful for reconciliation

To read the line items, billing details, KSeF status, PDF link, or the related transaction, order, and customer, call Get Invoice.

Pagination Object​

FieldTypeDescription
current_pageintegerCurrent page number
total_pagesintegerTotal number of pages
per_pageintegerEffective page size (echoes the per_page request parameter)
totalintegerTotal number of invoices matching the applied filters, across all pages

Error Responses​

Bad Request (400)​

Returned when a filter has a non-empty but unparseable value. The message names the offending field and the value received.

{
"message": "Invalid value for 'status': 'paid'"
}

Unauthorized Error (401)​

{
"message": "Unauthenticated."
}

Unavailable (422)​

Returned when your store does not issue invoices through EasyTools invoicing.

{
"message": "Invoices are only available for stores using Easybilling."
}