curl --request GET \
--url https://api.getbreezyapp.com/v1/invoices \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.getbreezyapp.com/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.getbreezyapp.com/v1/invoices', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"data": [
{
"id": "11111111-1111-4111-8111-000000000601",
"number": "1001",
"status": "OPEN",
"account": {
"id": "11111111-1111-4111-8111-000000000101",
"name": "Example Household"
},
"job_id": "11111111-1111-4111-8111-000000000501",
"location_id": null,
"maintenance_plan_id": null,
"business_unit": {
"id": "11111111-1111-4111-8111-000000000201",
"name": "Service"
},
"job_type": {
"id": "11111111-1111-4111-8111-000000000301",
"name": "HVAC Service"
},
"job_class": "SERVICE",
"created_by": {
"id": "11111111-1111-4111-8111-000000000401",
"name": "Alex Example"
},
"created_at": "2026-08-20T16:00:00Z",
"updated_at": "2026-08-20T16:00:00Z",
"issued_at": "2026-08-20T16:00:00Z",
"due_at": "2026-08-31T07:00:00Z",
"currency": "USD",
"pricing_multiplier": 1,
"line_items": [
{
"id": "11111111-1111-4111-8111-000000000901",
"position": 1,
"name": "HVAC repair",
"description": "HVAC repair",
"quantity": 1,
"unit_price_cents": 100000,
"subtotal_cents": 100000,
"taxable": true,
"discountable": true
}
],
"discounts": [
{
"id": "11111111-1111-4111-8111-000000000911",
"name": "Service discount",
"type": "FLAT",
"amount_cents": 10000,
"rate": null
}
],
"tax": {
"name": "Sales tax",
"rate": 0.1,
"rounding": "round"
},
"amounts": {
"subtotal_cents": 100000,
"discount_cents": 10000,
"discounted_subtotal_cents": 90000,
"tax_cents": 9000,
"total_cents": 99000,
"paid_cents": 50000,
"processing_cents": 10000,
"open_balance_cents": 39000
},
"payment_applications": [
{
"payment_id": "11111111-1111-4111-8111-000000000701",
"applied_cents": 50000,
"payment_status": "PAID"
},
{
"payment_id": "11111111-1111-4111-8111-000000000702",
"applied_cents": 10000,
"payment_status": "PROCESSING"
}
],
"aging": {
"days_past_due": 8,
"bucket": "PAST_DUE_1_30"
}
},
{
"id": "11111111-1111-4111-8111-000000000602",
"number": "1002",
"status": "PAID",
"account": {
"id": "11111111-1111-4111-8111-000000000101",
"name": "Example Household"
},
"job_id": "11111111-1111-4111-8111-000000000501",
"location_id": null,
"maintenance_plan_id": null,
"business_unit": {
"id": "11111111-1111-4111-8111-000000000201",
"name": "Service"
},
"job_type": {
"id": "11111111-1111-4111-8111-000000000301",
"name": "HVAC Service"
},
"job_class": "SERVICE",
"created_by": {
"id": "11111111-1111-4111-8111-000000000401",
"name": "Alex Example"
},
"created_at": "2026-09-02T16:00:00Z",
"updated_at": "2026-09-02T18:00:00Z",
"issued_at": "2026-09-02T16:00:00Z",
"due_at": "2026-09-02T07:00:00Z",
"currency": "USD",
"pricing_multiplier": 1,
"line_items": [
{
"id": "11111111-1111-4111-8111-000000000902",
"position": 1,
"name": "Additional service",
"description": "Additional service",
"quantity": 1,
"unit_price_cents": 30000,
"subtotal_cents": 30000,
"taxable": false,
"discountable": true
}
],
"discounts": [],
"tax": {
"name": "Sales tax",
"rate": 0,
"rounding": "round"
},
"amounts": {
"subtotal_cents": 30000,
"discount_cents": 0,
"discounted_subtotal_cents": 30000,
"tax_cents": 0,
"total_cents": 30000,
"paid_cents": 30000,
"processing_cents": 0,
"open_balance_cents": 0
},
"payment_applications": [
{
"payment_id": "11111111-1111-4111-8111-000000000701",
"applied_cents": 30000,
"payment_status": "PAID"
}
],
"aging": null
}
],
"pagination": {
"next_cursor": "example-opaque-cursor"
},
"meta": {
"request_id": "example-request",
"generated_at": "2026-09-08T19:00:00Z",
"timezone": "America/Los_Angeles"
}
}{
"error": {
"code": "INVALID_REQUEST",
"message": "end_date must be later than start_date",
"request_id": "example-request",
"details": []
}
}{
"error": {
"code": "UNAUTHENTICATED",
"message": "A valid API key is required",
"request_id": "example-request",
"details": []
}
}{
"error": {
"code": "NOT_FOUND",
"message": "Resource not found",
"request_id": "example-request",
"details": []
}
}{
"error": {
"code": "METHOD_NOT_ALLOWED",
"message": "This resource supports GET",
"request_id": "example-request",
"details": []
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "Request limit exceeded",
"request_id": "example-request",
"details": []
}
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "Unable to complete request",
"request_id": "example-request",
"details": []
}
}Page complete invoices
All statuses by default. Orders by created_at then id ascending. Lines, discounts and payment applications are complete on every page. Amounts use the public invoice calculator; refunds are not inferred as invoice-level allocations.
curl --request GET \
--url https://api.getbreezyapp.com/v1/invoices \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.getbreezyapp.com/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.getbreezyapp.com/v1/invoices', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"data": [
{
"id": "11111111-1111-4111-8111-000000000601",
"number": "1001",
"status": "OPEN",
"account": {
"id": "11111111-1111-4111-8111-000000000101",
"name": "Example Household"
},
"job_id": "11111111-1111-4111-8111-000000000501",
"location_id": null,
"maintenance_plan_id": null,
"business_unit": {
"id": "11111111-1111-4111-8111-000000000201",
"name": "Service"
},
"job_type": {
"id": "11111111-1111-4111-8111-000000000301",
"name": "HVAC Service"
},
"job_class": "SERVICE",
"created_by": {
"id": "11111111-1111-4111-8111-000000000401",
"name": "Alex Example"
},
"created_at": "2026-08-20T16:00:00Z",
"updated_at": "2026-08-20T16:00:00Z",
"issued_at": "2026-08-20T16:00:00Z",
"due_at": "2026-08-31T07:00:00Z",
"currency": "USD",
"pricing_multiplier": 1,
"line_items": [
{
"id": "11111111-1111-4111-8111-000000000901",
"position": 1,
"name": "HVAC repair",
"description": "HVAC repair",
"quantity": 1,
"unit_price_cents": 100000,
"subtotal_cents": 100000,
"taxable": true,
"discountable": true
}
],
"discounts": [
{
"id": "11111111-1111-4111-8111-000000000911",
"name": "Service discount",
"type": "FLAT",
"amount_cents": 10000,
"rate": null
}
],
"tax": {
"name": "Sales tax",
"rate": 0.1,
"rounding": "round"
},
"amounts": {
"subtotal_cents": 100000,
"discount_cents": 10000,
"discounted_subtotal_cents": 90000,
"tax_cents": 9000,
"total_cents": 99000,
"paid_cents": 50000,
"processing_cents": 10000,
"open_balance_cents": 39000
},
"payment_applications": [
{
"payment_id": "11111111-1111-4111-8111-000000000701",
"applied_cents": 50000,
"payment_status": "PAID"
},
{
"payment_id": "11111111-1111-4111-8111-000000000702",
"applied_cents": 10000,
"payment_status": "PROCESSING"
}
],
"aging": {
"days_past_due": 8,
"bucket": "PAST_DUE_1_30"
}
},
{
"id": "11111111-1111-4111-8111-000000000602",
"number": "1002",
"status": "PAID",
"account": {
"id": "11111111-1111-4111-8111-000000000101",
"name": "Example Household"
},
"job_id": "11111111-1111-4111-8111-000000000501",
"location_id": null,
"maintenance_plan_id": null,
"business_unit": {
"id": "11111111-1111-4111-8111-000000000201",
"name": "Service"
},
"job_type": {
"id": "11111111-1111-4111-8111-000000000301",
"name": "HVAC Service"
},
"job_class": "SERVICE",
"created_by": {
"id": "11111111-1111-4111-8111-000000000401",
"name": "Alex Example"
},
"created_at": "2026-09-02T16:00:00Z",
"updated_at": "2026-09-02T18:00:00Z",
"issued_at": "2026-09-02T16:00:00Z",
"due_at": "2026-09-02T07:00:00Z",
"currency": "USD",
"pricing_multiplier": 1,
"line_items": [
{
"id": "11111111-1111-4111-8111-000000000902",
"position": 1,
"name": "Additional service",
"description": "Additional service",
"quantity": 1,
"unit_price_cents": 30000,
"subtotal_cents": 30000,
"taxable": false,
"discountable": true
}
],
"discounts": [],
"tax": {
"name": "Sales tax",
"rate": 0,
"rounding": "round"
},
"amounts": {
"subtotal_cents": 30000,
"discount_cents": 0,
"discounted_subtotal_cents": 30000,
"tax_cents": 0,
"total_cents": 30000,
"paid_cents": 30000,
"processing_cents": 0,
"open_balance_cents": 0
},
"payment_applications": [
{
"payment_id": "11111111-1111-4111-8111-000000000701",
"applied_cents": 30000,
"payment_status": "PAID"
}
],
"aging": null
}
],
"pagination": {
"next_cursor": "example-opaque-cursor"
},
"meta": {
"request_id": "example-request",
"generated_at": "2026-09-08T19:00:00Z",
"timezone": "America/Los_Angeles"
}
}{
"error": {
"code": "INVALID_REQUEST",
"message": "end_date must be later than start_date",
"request_id": "example-request",
"details": []
}
}{
"error": {
"code": "UNAUTHENTICATED",
"message": "A valid API key is required",
"request_id": "example-request",
"details": []
}
}{
"error": {
"code": "NOT_FOUND",
"message": "Resource not found",
"request_id": "example-request",
"details": []
}
}{
"error": {
"code": "METHOD_NOT_ALLOWED",
"message": "This resource supports GET",
"request_id": "example-request",
"details": []
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "Request limit exceeded",
"request_id": "example-request",
"details": []
}
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "Unable to complete request",
"request_id": "example-request",
"details": []
}
}Authorizations
Existing Breezy API key. Grants all published reads in its associated company. No app permission scopes.
Query Parameters
Maximum parent records or report rows. Complete children are always included.
1 <= x <= 100Repeat the original filters; any valid page size may continue. Foreign-company, tampered or mismatched cursors return INVALID_CURSOR.
1Repeat ids for a bounded ID set. Valid foreign or missing IDs contribute no list rows.
1 - 100 elementsInclusive creation instant.
Exclusive creation instant.
Inclusive parent-record updated_at filter only; not a complete change feed.
SERVICE, MAINTENANCE, ESTIMATE_REPAIR, ESTIMATE_REPLACE, INSTALL, WARRANTY, CALLBACK, SALES, UNKNOWN, null 1DRAFT, OPEN, PAID, VOIDED, UNCOLLECTABLE Inclusive company-local issue date.
Exclusive company-local issue date.