Find ledger entries
Finds the ledger entries that match the given filters, newest first.
One ledger entry is returned per booking. The VAT that Infinity books alongside an entry is folded into the entry’s vat property instead of being returned as an entry of its own, so pagination counts bookings as you see them in the ledger.
Finding ledger entries
A ledger entry is a single booking in the ledger: one amount, posted from a debit to a credit account on a date. You get one object per booking — the VAT that Infinity books alongside an entry is part of that entry, not a result of its own. Entries are returned newest first. For example, the following request returns the entries posted to the bank account in January 2025:108100 = CHF 1081.00), and amount and netAmount are always in CHF. amount is the gross amount of the entry, netAmount the part of it that is booked between the debit and the credit account. Without VAT, the two are the same.
VAT
Thevat object is present for every entry that carries a tax code, and describes the VAT exactly as it stands in the ledger:
rateandamountare the figures that were booked. With the simplified method (Saldosteuersatz),rateis the organisation’s own simplified rate, andstatutoryRateadditionally tells you the statutory rate that the tax code stands for — for example a rate of 5.3% booked for a statutory rate of 8.1%.amountis0when no VAT was booked after all, for example because the VAT amount rounded to zero. In that casedebitAccountandcreditAccountare absent as well.rateis absent only for tax codes that are no longer defined.- With reverse charge tax codes (acquisition tax,
BZB…andBZM…), the VAT is booked on top of the entry rather than being contained in it. The entry’samounttherefore equals itsnetAmount, and bothvat.debitAccountandvat.creditAccountare VAT accounts.
Foreign currencies
Entries that were posted in a currency other than CHF carry anfx object with the original amount, its currency, and the exchange rate that was used to convert it:
fx.amount × fx.exchangeRate is the amount booked in CHF. It is absent only for legacy entries that were posted without a rate.
Sources, receipts and reversals
sourcetells you which part of Infinity the entry comes from, for examplemanual,customer-invoiceorbank. See ledger entry sources for what each value means.reviewStatetells you whether a person stands behind the entry. See review state below.receiptIdscontains the ids of the receipts attached to the entry. Use them with the receipts endpoints to attach further documents.reversedByis present if the entry was reversed (Storno) and holds the id of the reversing entry. On the reversing entry itself — which has the sourcereversal—reversespoints back at the original.
Review state
With AI accounting, Infinity posts entries from synchronised bank transactions on its own and asks the organisation to review them afterwards.reviewState tells you how far an entry has come:
reviewed. Most ai-proposed entries have the source bank, but not all of them: when AI accounting matches a bank transaction to an invoice, the resulting customer-invoice or vendor-invoice payment entry awaits review as well.
Treat ai-proposed entries as provisional when you copy the ledger elsewhere. Once a person reviews an entry, it is reported as reviewed, and its updatedAt moves, so synchronising changes with updatedSince picks the transition up.
Filtering
All filters are optional and can be combined:fromandtolimit the results to a date range, inclusive. Either can be used on its own.accountreturns entries in which the account appears as debit or as credit account,debitAccountandcreditAccountonly one side of the booking.descriptionsearches the description text of the entries.taxCodereturns the entries booked with one tax code. Use the literal valuenonefor entries booked without a tax code.sourcereturns the entries from one source.reviewStatereturns the entries in one review state, for example the entries that still await review.hasReceiptreturns the entries with at least one receipt attached (true) or without any (false).updatedSincereturns the entries created or changed since a point in time.
taxCode=none:
Synchronising changes
To keep a copy of the ledger up to date, remember the highestupdatedAt you have seen and pass it as updatedSince on your next run. Entries that were posted or changed since then are returned, newest first:
updatedSince. If entries may be deleted in
Infinity, reconcile your copy periodically against a full listing of the
relevant period instead of relying on incremental changes alone.Pagination
Results are paginated withlimit (default 30, at most 200) and skip, counting ledger entries. To page through all results, increase skip by the limit until fewer results than the limit are returned.Authorizations
API token for authentication. Obtain from your Infinity account settings.
Query Parameters
Only return ledger entries dated on or after this date (YYYY-MM-DD).
Only return ledger entries dated on or before this date (YYYY-MM-DD).
Only return ledger entries posted to this account number, either as debit or as credit account.
1000 <= x <= 9999Only return ledger entries whose debit account is this account number.
1000 <= x <= 9999Only return ledger entries whose credit account is this account number.
1000 <= x <= 9999Only return ledger entries whose description contains this text.
128Only return ledger entries booked with this tax code, either a statutory code such as UN81 or a simplified code such as SS53. Set to none to only return entries that were booked without a tax code. Use GET /v1/tax-codes to list the codes available to the organisation.
Only return ledger entries that originate from this source. Which part of Infinity a ledger entry originates from:
manual: posted by hand in Infinity, or through this APIcustomer-invoice: posted by a customer invoice (Forderung), for example its positions, payments, discounts or rebatesvendor-invoice: posted by a vendor invoice (Kreditor), for example its positions or paymentsbank: posted from a synchronised bank transaction in Live Accountingvat: posted by a VAT settlement or a VAT paymentclosing: posted when a fiscal year is opened or closed, for example accruals, depreciation or the profit appropriationreversal: posted to reverse another ledger entry (Storno)salary: posted by a salary payment
manual, customer-invoice, vendor-invoice, bank, vat, closing, reversal, salary "manual"
Only return ledger entries in this review state. Use ai-proposed to find the entries that AI accounting posted and nobody has reviewed yet.
Whether a person stands behind a ledger entry:
ai-proposed: AI accounting posted the entry from a synchronised bank transaction, and nobody has reviewed it yet. Treat it as provisional: reviewing may still change or remove it.reviewed: a person posted the entry, or reviewed one that AI accounting had posted. Entries posted by hand, through this API, or by another part of Infinity are alwaysreviewed.
ai-proposed, reviewed "reviewed"
Set to true to only return ledger entries with at least one receipt attached, or to false to only return entries without any receipt.
Only return ledger entries that were created or changed at or after this point in time, given as an ISO 8601 date-time with an offset. Deleted entries are not reported.
Pagination limit for the results. Defaults to 30 if not specified. Maximum allowed value is 200.
x <= 200Pagination offset for the results
Response
Successfully returns the matching ledger entries, newest first.
The ledger entries matching the query, newest first.