Skip to content

List invoices

The invoices.list operation: GET /api/v1/invoices in the REST API and the invoices_list tool in the MCP server.

GET/api/v1/invoices

Lists the brand's invoices and receipts in the mode of the request, drafts included, newest first, by status (draft, open and unpaid, paid, void, uncollectible, …), customer, subscription or issue date. Invoices that exist only: the one a subscription's next renewal will issue is invoices.upcoming.

Filters: customerId, subscriptionId, status (one or several, e.g. draft or open), and issuedFrom / issuedTo: whole days of the issue date in the seller's time zone (YYYY-MM-DD, both included; drafts have no issue date yet). Paginate with limit (1–100, default 10) and starting_after (the next_cursor of the previous page).

At a glance

  • REST: GET /api/v1/invoices
  • MCP tool: invoices_list
  • Operation ID: invoices.list
  • Scope: Brand
  • Permission: invoices:read
  • Risk tier: read
  • Dry run: Not supported
  • Idempotency: Not needed (read only)
  • Modes: Test and live
  • Pagination: limit (at most 100) and starting_after
  • Authentication: API key with the invoices:read scope
  • Since: M4

Request

Query parameters

FieldTypeRequiredDescription
customerIdcus_… IDNoInvoices of one customer (cus_…).
subscriptionIdsub_… IDNoInvoices of one subscription (sub_…).
statusone of 9 values, e.g. draft, pending_registration, issued (all in the OpenAPI document) or array of one of 9 values, e.g. draft, pending_registration, issued (all in the OpenAPI document)NoOne status, or several.
issuedFromstringNoIssued on or after this day (YYYY-MM-DD, the seller's time zone).
issuedTostringNoIssued on or before this day (YYYY-MM-DD, the seller's time zone).
limitinteger (1 to 100)NoPage size, 1 to 100 (default 10).
starting_afterinv_… IDNoThe next_cursor of the previous page.

Response

200 OK with a JSON object, a page of the list (newest first):

FieldTypeDescription
object"list"
dataarray of object
data[].idinv_… ID
data[].object"invoice"
data[].livemodeboolean
data[].entityIdent_… ID
data[].brandIdbrd_… ID
data[].numberstring or nullThe invoice number: gap-free per legal entity, mode, brand series and year (§18.2). Null for a draft: the number is taken at finalization.
data[].numberingobject or null
data[].customerIdcus_… ID or null
data[].subscriptionIdsub_… ID or null
data[].collectionMethodone of charge_automatically, send_invoice
data[].kindone of invoice, receipt or nullinvoice (business customers) or receipt (the receipt-invoice consumers get); null for a draft.
data[].statusone of 9 values, e.g. draft, pending_registration, issued (all in the OpenAPI document)draft → open (finalized) → paid, void or uncollectible. Checkout invoices are issued (paid at once), or pending_registration: a full invoice charged before the tax registration exists; the receipt went out and the formal invoice follows (§18.1).
data[].languageone of en, de, fr, hr, it, es or null
data[].issuedAtdate-time or null
data[].issueDatestring or nullThe issue date in the seller's time zone.
data[].taxPointdate-time or null
data[].taxPointDatestring or nullThe date of supply in the seller's time zone.
data[].daysUntilDueinteger or nullsend_invoice: days from the issue date to the due date.
data[].dueDatestring or nullsend_invoice: when payment is due (fixed at finalization).
data[].sellerobject or null
data[].buyerobject or null
data[].currencystring
data[].linesarray of object
data[].lines[].idstringThe tax quote's line ID.
data[].lines[].descriptionstring
data[].lines[].productIdprod_… ID or null
data[].lines[].priceIdprice_… ID or null
data[].lines[].quantityinteger
data[].lines[].taxCategoryIdone of 9 values, e.g. electronically_supplied_service, saas, ebook (all in the OpenAPI document)
data[].lines[].taxBehaviorone of inclusive, exclusive
data[].lines[].unitAmountmoneyThe net price of one unit (may be finer than the minor unit).
data[].lines[].netmoney
data[].lines[].taxobject
data[].lines[].tax.ratePpmstringParts per million as a string (19% = "190000").
data[].lines[].tax.amountmoney
data[].lines[].tax.jurisdictionIdstring or null
data[].lines[].tax.regimeIdstring or null
data[].lines[].tax.decisionone of charge, reverse_charge, exempt, not_taxable, out_of_scope, not_collected, blockedWhat happened to the tax: charge, reverse_charge, exempt, not_taxable, out_of_scope, not_collected.
data[].lines[].tax.rateKindone of standard, reduced, super_reduced, parking, zero, exempt, not_taxable or null
data[].lines[].tax.rateIdstring or null
data[].lines[].tax.pendingRegistrationboolean
data[].lines[].grossmoney
data[].lines[].kindone of licensed, metered, late_usage, proration, invoice_item or nullWhere the line came from (§16.3 order); null on checkout invoices.
data[].lines[].periodobject or null
data[].lines[].subscriptionItemIdstring or null
data[].lines[].invoiceItemIdii_… ID or null
data[].lines[].discountmoney or nullWhat discounts took off the line before tax.
data[].lines[].meteredQuantitystring or nullA metered line's usage (its quantity is 1).
data[].totalsobject or null
data[].taxCurrencyTotalsobject or nullThe tax in the seller's tax currency when the invoice is in another one (§18.3).
data[].creditAppliedmoney or nullTaken from the customer's credit balance at finalization (§16.11).
data[].amountDuemoney or nullWhat the customer pays: the gross total less the credit applied. Null on checkout invoices.
data[].notesarray of object
data[].notes[].codeone of reverse_charge, exempt, out_of_scope, registration_pending, oss_scheme
data[].notes[].textstringThe note as printed.
data[].fieldCheckobject or nullWhat the knowledge base's invoicing rules ask for that the invoice lacks (missing), and requirements Ownrecord can't check yet (unchecked).
data[].pendingRegistrationbooleanA full invoice with a line charged before the registration exists (§18.1).
data[].paymentIdsarray of pay_… ID
data[].creditNoteIdsarray of cn_… ID
data[].ledgerTxnIdsarray of txn_… ID
data[].quoteIdtq_… ID or nullThe tax quote the invoice shows (null for a draft).
data[].quoteIdsarray of tq_… IDEvery quote of the invoice: lines taxed at another date (prorations) have their own quote.
data[].pdfobject or nullNull for a draft: the PDF is rendered at finalization.
data[].finalizedAtdate-time or null
data[].paidAtdate-time or null
data[].paymentobject or nullHow the invoice was paid: bank_transfer (marked paid), processor (a card or debit payment) or credit_balance.
data[].voidedAtdate-time or null
data[].markedUncollectibleAtdate-time or null
data[].emailedAtdate-time or null
data[].sentAtdate-time or nullWhen invoices.send last emailed the invoice.
data[].draftobject or nullA draft's lines before tax (tax is quoted at finalization); null once finalized.
data[].metadataobject
data[].versionintegerPass it as expectedVersion to refuse a change if the invoice changed. Rendering the PDF and emailing the invoice change it too.
data[].createdAtdate-time
data[].updatedAtdate-time
has_moreboolean
next_cursorinv_… ID or null

Examples

A customer's invoices in October 2026

HTTP
GET /api/v1/invoices?customerId=cus_01m4tx5nj8emwbyf7y9vcf47yd&issuedFrom=2026-10-01&issuedTo=2026-10-31
Authorization: Bearer or_test_…

Response (200):

JSON
{
  "object": "list",
  "data": [
    {
      "id": "inv_01m4tx5nj8emwbyf7y9vcf47yb",
      "object": "invoice",
      "livemode": false,
      "entityId": "ent_01m4tx5nj8emwbyf7y9vcf47x2",
      "brandId": "brd_01m4tx5nj8emwbyf7y9vcf47x4",
      "number": "GEN-2026-000123",
      "numbering": {
        "series": "GEN",
        "year": 2026,
        "seq": "123"
      },
      "customerId": "cus_01m4tx5nj8emwbyf7y9vcf47yd",
      "subscriptionId": null,
      "collectionMethod": "charge_automatically",
      "kind": "receipt",
      "status": "issued",
      "language": "de",
      "issuedAt": "2026-10-14T10:00:05.000Z",
      "issueDate": "2026-10-14",
      "taxPoint": "2026-10-14T10:00:05.000Z",
      "taxPointDate": "2026-10-14",
      "daysUntilDue": null,
      "dueDate": null,
      "seller": {
        "entityId": "ent_01m4tx5nj8emwbyf7y9vcf47x2",
        "legalName": "Acme Digital d.o.o.",
        "tradingName": null,
        "address": {
          "line1": "Ilica 1",
          "line2": null,
          "city": "Zagreb",
          "postalCode": "10000",
          "region": null,
          "country": "HR"
        },
        "companyRegistryId": "080000001",
        "taxIds": [
          {
            "type": "eu_vat",
            "value": "HR12345678901",
            "regimeId": null
          }
        ],
        "brand": {
          "brandId": "brd_01m4tx5nj8emwbyf7y9vcf47x4",
          "name": "Genno",
          "primaryColor": "#0E6B5C",
          "accentColor": null,
          "supportEmail": "help@genno.example",
          "supportUrl": null
        },
        "footerText": null
      },
      "buyer": {
        "type": "b2c",
        "customerId": "cus_01m4tx5nj8emwbyf7y9vcf47yd",
        "name": "Kim Weber",
        "email": "kim@example.com",
        "address": null,
        "country": "DE",
        "taxId": null
      },
      "currency": "EUR",
      "lines": [
        {
          "id": "pro_monthly",
          "description": "Genno Pro, monthly",
          "productId": "prod_01m4tx5nj8emwbyf7y9vcf47yh",
          "priceId": "price_01m4tx5nj8emwbyf7y9vcf47yj",
          "quantity": 1,
          "taxCategoryId": "saas",
          "taxBehavior": "exclusive",
          "unitAmount": {
            "amount": "100000000",
            "currency": "EUR"
          },
          "net": {
            "amount": "100000000",
            "currency": "EUR"
          },
          "tax": {
            "ratePpm": "190000",
            "amount": {
              "amount": "19000000",
              "currency": "EUR"
            },
            "jurisdictionId": "DE",
            "regimeId": "EU_OSS_UNION",
            "decision": "charge",
            "rateKind": "standard",
            "rateId": null,
            "pendingRegistration": false
          },
          "gross": {
            "amount": "119000000",
            "currency": "EUR"
          },
          "kind": null,
          "period": null,
          "subscriptionItemId": null,
          "invoiceItemId": null,
          "discount": null,
          "meteredQuantity": null
        }
      ],
      "totals": {
        "net": {
          "amount": "100000000",
          "currency": "EUR"
        },
        "tax": {
          "amount": "19000000",
          "currency": "EUR"
        },
        "gross": {
          "amount": "119000000",
          "currency": "EUR"
        },
        "taxByRate": [
          {
            "ratePpm": "190000",
            "jurisdictionId": "DE",
            "regimeId": "EU_OSS_UNION",
            "decision": "charge",
            "net": {
              "amount": "100000000",
              "currency": "EUR"
            },
            "tax": {
              "amount": "19000000",
              "currency": "EUR"
            }
          }
        ]
      },
      "taxCurrencyTotals": null,
      "creditApplied": null,
      "amountDue": null,
      "notes": [
        {
          "code": "oss_scheme",
          "text": "Umsatzsteuer erklärt über One-Stop Shop, Union scheme."
        }
      ],
      "fieldCheck": {
        "invoicingRuleIds": [],
        "missing": [],
        "unchecked": []
      },
      "pendingRegistration": false,
      "paymentIds": ["pay_01m4tx5nj8emwbyf7y9vcf47ye"],
      "creditNoteIds": [],
      "ledgerTxnIds": ["txn_01m4tx5nj8emwbyf7y9vcf47yf"],
      "quoteId": "tq_01m4tx5nj8emwbyf7y9vcf47xq",
      "quoteIds": ["tq_01m4tx5nj8emwbyf7y9vcf47xq"],
      "pdf": {
        "status": "ready",
        "fileId": "file_01m4tx5nj8emwbyf7y9vcf47yg",
        "sha256": "4f1c3c3e6a2f0b9d8e7c6b5a4f3e2d1c0b9a8f7e6d5c4b3a2f1e0d9c8b7a6f5e",
        "size": 27265,
        "templateVersion": 1,
        "renderedAt": "2026-10-14T10:00:09.000Z",
        "url": "/api/v1/invoices/inv_01m4tx5nj8emwbyf7y9vcf47yb/pdf"
      },
      "finalizedAt": null,
      "paidAt": null,
      "payment": null,
      "voidedAt": null,
      "markedUncollectibleAt": null,
      "emailedAt": "2026-10-14T10:00:09.000Z",
      "sentAt": null,
      "draft": null,
      "metadata": {},
      "version": 2,
      "createdAt": "2026-10-14T10:00:05.000Z",
      "updatedAt": "2026-10-14T10:00:09.000Z"
    }
  ],
  "has_more": false,
  "next_cursor": null
}

Invoices waiting for a registration number, one per page

HTTP
GET /api/v1/invoices?status=pending_registration&limit=1
Authorization: Bearer or_test_…

Response (200):

JSON
{
  "object": "list",
  "data": [
    {
      "id": "inv_01m4tx5nj8emwbyf7y9vcf47yb",
      "object": "invoice",
      "livemode": false,
      "entityId": "ent_01m4tx5nj8emwbyf7y9vcf47x2",
      "brandId": "brd_01m4tx5nj8emwbyf7y9vcf47x4",
      "number": "GEN-2026-000123",
      "numbering": {
        "series": "GEN",
        "year": 2026,
        "seq": "123"
      },
      "customerId": "cus_01m4tx5nj8emwbyf7y9vcf47yd",
      "subscriptionId": null,
      "collectionMethod": "charge_automatically",
      "kind": "invoice",
      "status": "pending_registration",
      "language": "de",
      "issuedAt": "2026-10-14T10:00:05.000Z",
      "issueDate": "2026-10-14",
      "taxPoint": "2026-10-14T10:00:05.000Z",
      "taxPointDate": "2026-10-14",
      "daysUntilDue": null,
      "dueDate": null,
      "seller": {
        "entityId": "ent_01m4tx5nj8emwbyf7y9vcf47x2",
        "legalName": "Acme Digital d.o.o.",
        "tradingName": null,
        "address": {
          "line1": "Ilica 1",
          "line2": null,
          "city": "Zagreb",
          "postalCode": "10000",
          "region": null,
          "country": "HR"
        },
        "companyRegistryId": "080000001",
        "taxIds": [
          {
            "type": "eu_vat",
            "value": "HR12345678901",
            "regimeId": null
          }
        ],
        "brand": {
          "brandId": "brd_01m4tx5nj8emwbyf7y9vcf47x4",
          "name": "Genno",
          "primaryColor": "#0E6B5C",
          "accentColor": null,
          "supportEmail": "help@genno.example",
          "supportUrl": null
        },
        "footerText": null
      },
      "buyer": {
        "type": "b2c",
        "customerId": "cus_01m4tx5nj8emwbyf7y9vcf47yd",
        "name": "Kim Weber",
        "email": "kim@example.com",
        "address": null,
        "country": "DE",
        "taxId": null
      },
      "currency": "EUR",
      "lines": [
        {
          "id": "pro_monthly",
          "description": "Genno Pro, monthly",
          "productId": "prod_01m4tx5nj8emwbyf7y9vcf47yh",
          "priceId": "price_01m4tx5nj8emwbyf7y9vcf47yj",
          "quantity": 1,
          "taxCategoryId": "saas",
          "taxBehavior": "exclusive",
          "unitAmount": {
            "amount": "100000000",
            "currency": "EUR"
          },
          "net": {
            "amount": "100000000",
            "currency": "EUR"
          },
          "tax": {
            "ratePpm": "190000",
            "amount": {
              "amount": "19000000",
              "currency": "EUR"
            },
            "jurisdictionId": "DE",
            "regimeId": "EU_OSS_UNION",
            "decision": "charge",
            "rateKind": "standard",
            "rateId": null,
            "pendingRegistration": false
          },
          "gross": {
            "amount": "119000000",
            "currency": "EUR"
          },
          "kind": null,
          "period": null,
          "subscriptionItemId": null,
          "invoiceItemId": null,
          "discount": null,
          "meteredQuantity": null
        }
      ],
      "totals": {
        "net": {
          "amount": "100000000",
          "currency": "EUR"
        },
        "tax": {
          "amount": "19000000",
          "currency": "EUR"
        },
        "gross": {
          "amount": "119000000",
          "currency": "EUR"
        },
        "taxByRate": [
          {
            "ratePpm": "190000",
            "jurisdictionId": "DE",
            "regimeId": "EU_OSS_UNION",
            "decision": "charge",
            "net": {
              "amount": "100000000",
              "currency": "EUR"
            },
            "tax": {
              "amount": "19000000",
              "currency": "EUR"
            }
          }
        ]
      },
      "taxCurrencyTotals": null,
      "creditApplied": null,
      "amountDue": null,
      "notes": [
        {
          "code": "oss_scheme",
          "text": "Umsatzsteuer erklärt über One-Stop Shop, Union scheme."
        }
      ],
      "fieldCheck": {
        "invoicingRuleIds": [],
        "missing": [],
        "unchecked": []
      },
      "pendingRegistration": false,
      "paymentIds": ["pay_01m4tx5nj8emwbyf7y9vcf47ye"],
      "creditNoteIds": [],
      "ledgerTxnIds": ["txn_01m4tx5nj8emwbyf7y9vcf47yf"],
      "quoteId": "tq_01m4tx5nj8emwbyf7y9vcf47xq",
      "quoteIds": ["tq_01m4tx5nj8emwbyf7y9vcf47xq"],
      "pdf": {
        "status": "ready",
        "fileId": "file_01m4tx5nj8emwbyf7y9vcf47yg",
        "sha256": "4f1c3c3e6a2f0b9d8e7c6b5a4f3e2d1c0b9a8f7e6d5c4b3a2f1e0d9c8b7a6f5e",
        "size": 27265,
        "templateVersion": 1,
        "renderedAt": "2026-10-14T10:00:09.000Z",
        "url": "/api/v1/invoices/inv_01m4tx5nj8emwbyf7y9vcf47yb/pdf"
      },
      "finalizedAt": null,
      "paidAt": null,
      "payment": null,
      "voidedAt": null,
      "markedUncollectibleAt": null,
      "emailedAt": "2026-10-14T10:00:09.000Z",
      "sentAt": null,
      "draft": null,
      "metadata": {},
      "version": 2,
      "createdAt": "2026-10-14T10:00:05.000Z",
      "updatedAt": "2026-10-14T10:00:09.000Z"
    }
  ],
  "has_more": true,
  "next_cursor": "inv_01m4tx5nj8emwbyf7y9vcf47yb"
}

Errors

CodeHTTP statusWhenWhat to do
validation_failed400A filter or pagination value is invalid, or issuedFrom is after issuedTo.Fix the fields listed in details.issues and send the request again.
scope_required400The request names no brand (an org or entity key without Ownrecord-Brand).Call the operation with credentials or a target at its level: an organization, a legal entity, a brand or the platform (details.required_scope).
permission_denied403You can't read this brand's invoices (invoices:read; every role but billing admin has it).Ask an organization owner or admin for a role or scope that allows this action.
livemode_not_allowed403You have no live-mode access, so you can't use live invoices.Use test mode, or credentials for the target's mode. Developers need live access granted by an organization owner or admin.

It can also return these common errors: api_version_unsupported, authentication_required, api_key_invalid, resource_not_found, dry_run_not_supported, rate_limited, internal_error.