---
title: "Get a single invoice by its numeric id."
method: GET
path: "/core/v1/invoices/{id}"
tags: ["Finance"]
---

# Get a single invoice by its numeric id.

`GET /core/v1/invoices/{id}`

## Request

- Base URL: `https://api.klara.ch`
- URL: `https://api.klara.ch/core/v1/invoices/{id}`
- Auth: one of:
  - API key in header `X-API-KEY`
  - HTTP bearer

Returns the fully-enriched invoice document for the given <code>id</code> under the company resolved from the bearer JWT. The response includes order items enriched with inventory selection data and accounting booking-status fields (<code>bookingStatus</code>, <code>bookingDueDate</code>, <code>bookingSealed</code>) populated by <code>luz_accounting</code>. The caller must hold the <code>FINANCE</code> permission on the target company.

## Path parameters

- `id` integer, required

## Response `200`

Invoice found and returned.

- Invoice: An invoice document (creation or update). The polymorphic discriminator <code>orderType</code> is always <code>INVOICE</code>. Server-managed read-only fields (<code>vatDate</code>, <code>lastModified</code>, <code>createDate</code>, <code>bookingDueDate</code>, <code>bookingNumbers</code>, <code>businessCaseId</code>) are populated on the response.
  - `id` integer: Invoice id. Must be <code>0</code> or omitted when creating a new invoice. This endpoint only supports creation; updating an existing invoice is not supported.
  - `orderType` string: Polymorphic discriminator. Must be <code>INVOICE</code>. Allowed values: <code>INVOICE</code>.
  - `status` string: Invoice status. Allowed values: <code>DRAFT</code>, <code>INVOICED</code>, <code>SENT</code>, <code>PAID</code>, <code>CANCELLED</code>. Required. Status <code>INVOICED</code> or <code>SENT</code> triggers accounting booking.
  - `invoiceCode` string, required: Human-readable invoice code. Required and unique per company.
  - `invoiceNumber` integer: Sequential invoice number, typically obtained from <code>GET /invoices/next-invoice-number</code>.
  - `documentDate` string, date: Invoice document date (ISO 8601). Required when <code>amount</code> is greater than 0. Must fall inside the company's active Order Management subscription period.
  - `paymentDate` string, date: Payment due date (ISO 8601). Required when <code>amount</code> is greater than 0. Must be on or after <code>documentDate</code>.
  - `deliveryDate` string, date: Service delivery date (ISO 8601).
  - `issuedDate` string, date: Date the invoice was issued (ISO 8601).
  - `servicePeriodFrom` string, date: Service period start date (ISO 8601).
  - `servicePeriodTo` string, date: Service period end date (ISO 8601).
  - `servicePeriodPattern` string: Service period pattern label (e.g. <code>MONTHLY</code>, <code>YEARLY</code>).
  - `vatDate` string, date: VAT date. Server-managed (read-only).
  - `bookingDueDate` string, date: Booking due date returned by accounting. Server-managed (read-only).
  - `lastModified` string, date-time: Last modification timestamp. Server-managed (read-only).
  - `createDate` string, date-time: Creation timestamp. Server-managed (read-only).
  - `amount` number: Invoice total. When <code>usingVAT=false</code> (VAT-exclusive items) this is the gross total = net + VAT; when <code>usingVAT=true</code> (VAT-inclusive items) it is the sum of the gross item amounts (VAT already inside). <strong>Caller-supplied — the server does not recompute it.</strong>
  - `usingVAT` boolean: Controls whether each item <code>price</code>/<code>amount</code> is <strong>VAT-inclusive (gross)</strong> or <strong>VAT-exclusive (net)</strong>. This is the GUI checkbox <em>"VAT included in amount of each item"</em>. <code>true</code> = amounts already include VAT (INCLUDE_VAT); <code>false</code> = VAT is added on top of the net amounts (EXCLUDE_VAT). It does <strong>not</strong> turn VAT on or off — whether VAT applies at all is governed by the company's VAT registration. Use <code>GET /core/latest/company-configuration/including-vat</code> for the company default. <strong>The server stores the amounts you send verbatim and does not recompute them from this flag</strong> — send <code>price</code>/<code>amount</code> consistent with the chosen mode (see the create operation's VAT-handling notes).
  - `usingExportVat` boolean: Export invoice flag — the GUI <em>"Export"</em> checkbox. When <code>true</code>, the invoice is treated as an export: every <code>orderItems[].vat.rate</code> must be <code>0</code> (export/zero VAT code), so no VAT is charged. When <code>false</code> (default) the items' normal VAT rates apply. The server does not recompute item VAT from this flag — set the per-item VAT accordingly.
  - `hasCompanyVat` boolean: Whether the company is liable for VAT. <strong>Leave this out.</strong> The server derives it from the company's VAT registration for the invoice's effective VAT date (<code>deliveryDate</code> when set, otherwise <code>documentDate</code>) and a derived value always wins over a value sent here. It is documented only because it is accepted, and because sending <code>false</code> on a VAT-registered company used to book every position at 0% while returning 200 — this field is the master switch for VAT at booking time, ahead of any per-line VAT code. It is only consulted when the company has no VAT configuration for that date, where it cannot be derived at all.
  - `subject` string: Free-text invoice subject.
  - `closeAndSignature` string: Free-text closing remarks / signature block.
  - `ourReference` string: Internal sender reference.
  - `yourReference` string: Customer-side reference (e.g. PO number).
  - `companyCityAndDate` string: Header line such as 'Zurich, 28.05.2026'.
  - `postMethod` string: Distribution channel recorded on the invoice. <strong>Stored only — creating an invoice does not deliver it</strong> (no email/ePost/eBill/print&amp;send). Allowed values: <code>A_POST</code>, <code>B_POST</code>, <code>SEND_EMAIL</code>, <code>PRINT_AND_MANUAL_SEND</code>, <code>EPOST</code>, <code>EBILL</code>.
  - `delivery` string: Delivery method label (free text).
  - `ibanNumberCHF` string: CHF IBAN for payment. Validated by downstream service.
  - `ibanNumberCHW` string: WIR-franc IBAN for payment.
  - `wirAcceptanceRate` number: WIR acceptance percentage.
  - `referenceNumber` string: QR / ISR reference number.
  - `qrInvoice` boolean: When <code>true</code>, the invoice is rendered/booked as a Swiss QR-invoice. Defaults to false.
  - `fromAutoInvoicing` boolean: Indicates the invoice was generated by auto-invoicing. Defaults to false.
  - `fromInvoiceRun` boolean: Indicates the invoice was produced by a recurring invoice run. When <code>true</code>, accounting booking and inventory transactions are skipped. Defaults to false.
  - `invoiceType` string: Invoice type. Allowed values: <code>MANUAL</code>, <code>CREDIT_DEBIT</code>.
  - `originDistributionMethod` string: Origin distribution method. Allowed values: <code>A_POST</code>, <code>B_POST</code>, <code>SEND_EMAIL</code>, <code>PRINT_AND_MANUAL_SEND</code>, <code>EPOST</code>, <code>EBILL</code>.
  - `templateId` integer: Template id used to create this invoice.
  - `runHistoryId` integer: Recurring invoice run history id.
  - `settledAmount` number: Klara-Pay settled amount (online shop only).
  - `bookingNumbers` string: Accounting booking-number string. Server-managed (read-only).
  - `businessCaseId` integer: Accounting business case id. Server-managed (read-only).
  - `bookingStatus` string: Booking status (e.g. <code>OPEN</code>, <code>PARTIAL</code>, <code>PAID</code>). Server-managed (read-only).
  - `bookingMessage` string: Optional booking error/info code (e.g. <code>INVALID_SUBSCRIPTION_FOR_ACCOUNTING</code>). Server-managed (read-only).
  - `bookingSealed` boolean: Whether the booking has been finalized. Server-managed (read-only).
  - `fiscalYearHasCreatedAuto` boolean: Whether a fiscal year was auto-created during booking. Server-managed (read-only).
  - `createBy` string: Server-assigned audit user (token subject). Server-managed (read-only).

## Other responses

- `401`: No Authorization header found or invalid token<br/><br/>Failures detected by a downstream service carry that service's own <code>code</code>, which this reference does not enumerate, so the <code>code</code> field may hold a value not documented here. Treat an unrecognised code as a generic failure of the status it arrives with, and do not branch on a code this reference does not list.
- `403`: The current user is not allowed to access this company data<br/><br/>Failures detected by a downstream service carry that service's own <code>code</code>, which this reference does not enumerate, so the <code>code</code> field may hold a value not documented here. Treat an unrecognised code as a generic failure of the status it arrives with, and do not branch on a code this reference does not list.
- `404`: No invoice with the given id exists for the authenticated company.<br/><br/>Failures detected by a downstream service carry that service's own <code>code</code>, which this reference does not enumerate, so the <code>code</code> field may hold a value not documented here. Treat an unrecognised code as a generic failure of the status it arrives with, and do not branch on a code this reference does not list.
- `429`: API rate limit exceeded<br/><br/>Failures detected by a downstream service carry that service's own <code>code</code>, which this reference does not enumerate, so the <code>code</code> field may hold a value not documented here. Treat an unrecognised code as a generic failure of the status it arrives with, and do not branch on a code this reference does not list.
- `500`: Something went wrong on our side while processing the request. Please kindly contact our support.<br/><br/>Failures detected by a downstream service carry that service's own <code>code</code>, which this reference does not enumerate, so the <code>code</code> field may hold a value not documented here. Treat an unrecognised code as a generic failure of the status it arrives with, and do not branch on a code this reference does not list.

---

[API](https://skmtc.dev/klara/apis/klara-public-api.md) · [All operations](https://skmtc.dev/klara/apis/klara-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/klara/apis/klara-public-api/revisions/490b1a879fc2?raw)
