List Invoices
curl --request GET \
--url https://api.nozle.app/engine/api/v1/invoices \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.nozle.app/engine/api/v1/invoices"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.nozle.app/engine/api/v1/invoices', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.nozle.app/engine/api/v1/invoices"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}require 'uri'
require 'net/http'
url = URI("https://api.nozle.app/engine/api/v1/invoices")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.nozle.app/engine/api/v1/invoices",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}HttpResponse<String> response = Unirest.get("https://api.nozle.app/engine/api/v1/invoices")
.header("Authorization", "Bearer <token>")
.asString();List Invoices
GET
/
engine
/
api
/
v1
/
invoices
List Invoices
curl --request GET \
--url https://api.nozle.app/engine/api/v1/invoices \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.nozle.app/engine/api/v1/invoices"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.nozle.app/engine/api/v1/invoices', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.nozle.app/engine/api/v1/invoices"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}require 'uri'
require 'net/http'
url = URI("https://api.nozle.app/engine/api/v1/invoices")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.nozle.app/engine/api/v1/invoices",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}HttpResponse<String> response = Unirest.get("https://api.nozle.app/engine/api/v1/invoices")
.header("Authorization", "Bearer <token>")
.asString();Base URL:
A missing
https://api.nozle.app/engine/api/v1.
List a customer’s invoices, newest first. The response holds at most 50 invoices and has no pagination. It returns the invoices Core’s API shows, other than drafts: finalized, voided, failed and pending. Invoices still being generated are not returned. Whether an invoice is paid is in payment_status, not in status. Only the live customer with this customer_id counts: a new customer that reuses a deleted customer’s external ID does not see the deleted customer’s invoices.
Auth: secret key only. Publishable keys are always rejected.
string
required
External customer ID derived by the trusted merchant backend.
Response
Returns an object with aninvoices array. The array is empty when the customer has no invoices.
{
"invoices": [
{
"id": "invoice_uuid",
"number": "ACME-202610-001",
"status": "finalized",
"payment_status": "succeeded",
"invoice_type": "subscription",
"amount_cents": 4900,
"currency": "USD",
"issuing_date": "2026-10-01",
"payment_due_date": "2026-10-01",
"created_at": "2026-10-01T00:00:05Z"
}
]
}
| Field | Values |
|---|---|
status | finalized, voided, failed, or pending |
payment_status | pending, succeeded (paid), failed, or unknown |
invoice_type | subscription, add_on, credit, one_off, advance_charges, progressive_billing, or other for a type Engine does not know |
amount_cents | Invoice total, in the currency’s smallest unit |
issuing_date, payment_due_date | YYYY-MM-DD, or null |
customer_id returns 400. A database failure returns 500.