---
title: "List journal entries"
method: GET
path: "/journal-entries"
tags: ["Journal Entries"]
---

# List journal entries

`GET /journal-entries`

## Request

- Base URL: `https://api.lumabill.ch/v1`
- URL: `https://api.lumabill.ch/v1/journal-entries`
- Auth: HTTP bearer

A Storno carries `isReversal: true` and `reversedEntryId`; the entry it reverses carries `reversedById` / `reversedBySeq`. With `includeVoided=true` the list also returns entries removed before Storno bookings existed that still hold a Buchungsnummer, marked with `deletedAt` and `voidReason`; they never count toward any balance.

## Query parameters

- `dateFrom` string, date
- `dateTo` string, date
- `fiscalYearId` string, uuid
- `referenceType` string
- `search` string
- `limit` integer
- `offset` integer
- `includeVoided` boolean

## Response `200`

A paginated list of journal entries

- object
  - `entries` JournalEntry[]
    - `id` string, uuid, required
    - `fiscalYearId` string, uuid, nullable
    - `entrySeq` integer, nullable: Buchungsnummer
    - `entryDate` string, date, required
    - `description` string
    - `referenceType` string: MANUAL, INVOICE, INVOICE_PAYMENT, EXPENSE, REVENUE, ...
    - `referenceId` string, uuid, nullable
    - `isReversal` boolean
    - `reversedEntryId` string, uuid, nullable
    - `externalSource` string, nullable: `system` on the entries the year close and the FX revaluation post (opening balance, Neubewertung). They are read-only here: PUT, DELETE, reverse and the VAT-code edit answer 400 SYSTEM_ENTRY_READ_ONLY (re-run the revaluation, or reopen and close the year again).
    - `documentUrl` string, nullable
    - `createdAt` string, date-time
    - `lines` JournalLine[], required
      - `id` string, uuid, required
      - `chartAccountId` string, uuid, required
      - `accountCode` string: Swiss chart of accounts (Kontenplan KMU) account number
      - `accountName` string
      - `side` 'DEBIT' | 'CREDIT', required
      - `amount` number, double, required: Amount in CHF (the profile base currency), always positive
      - `vatCode` string, nullable
      - `originalCurrency` 'CHF' | 'EUR' | 'USD' | 'GBP' | 'JPY' | 'CAD' | 'AUD' | 'SEK' | 'NOK' | 'DKK' | 'HUF': ISO 4217 code of a currency the API converts (ESTV/BAZG rates). The same list applies to every currency field of the API.
      - `originalAmount` number, double, nullable: Amount in `originalCurrency`. On an FW account it moves the FW saldo; it is 0 only on FX result lines (`fxKind` set), which move CHF only.
      - `exchangeRate` number, double, nullable: CHF per 1 unit of `originalCurrency`
      - `fxKind` 'realized' | 'revaluation', nullable: Set on FX result lines: `realized` (Kursdifferenz of a payment, a transfer or a zero FW saldo), `revaluation` (year-end revaluation). Never carries a VAT code (400 FX_KIND_INVALID on the VAT-code edit).
  - `total` integer
  - `voidedTotal` integer
  - `position` integer, nullable

## Other responses

- `401`: Invalid or missing API key
- `403`: Subscription required or read-only key on a write endpoint
- `429`: Rate limit exceeded
- `500`: Internal server error

---

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