LedgerLou Docs ist für Desktop optimiert.

Bitte öffne diese Seite auf einem Gerät mit breiterem Bildschirm.

88 Endpoints · OpenAPI JSON

Alle Endpunkte außer POST /v1/auth/login, /forgot-password und /setup-password erfordern Authorization: Bearer <API-Key oder Session-Token>. Fehlercodes: 400 Validierung · 401 Nicht authentifiziert · 403 Kein Scope · 404 Nicht gefunden · 409 Konflikt

Journal

GET /v1/accounts

GET /v1/accounts

Querylimit, offset

Responseaccounts, total, offset, limit

POST /v1/accounts

POST /v1/accounts

Bodynumber, name, type, category, report_group

Responsenumber, name, type, category, report_group, is_system

GET /v1/accounts/
/entries

GET /v1/accounts/
/entries

QuerystartDate, endDate, limit

Responseentries, balance

GET /v1/accounts/search

GET /v1/accounts/search

Queryq, type

Responseaccounts

POST /v1/bookings

POST /v1/bookings

Bodybooking_date, description, lines, skip_duplicate_check, adjustment_period, fx, external_reference, custom_metadata, document_id

Responseintent_id, event_count

POST /v1/bookings/opening-balances

POST /v1/bookings/opening-balances

Bodybooking_date, balances

Responseintent_id, event_count, total_debit, total_credit

POST /v1/documents

POST /v1/documents

Bodyfile

Responseid, mime_type, original_name

GET /v1/documents/
/file

GET /v1/documents/
/file

Response — Binäre Datei mit Content-Type (z. B. application/pdf) und Content-Disposition: attachment; filename="originalname.pdf".

GET /v1/documents/
/preview

GET /v1/documents/
/preview

Response — Binäre Datei mit Content-Type (z. B. application/pdf) und Content-Disposition: inline; filename="originalname.pdf".

GET /v1/journal

GET /v1/journal

Queryaccount, startDate, endDate, search, externalReference, limit

Responseentries

GET /v1/journal/

GET /v1/journal/

Responseintent_id, entries, summary, linked_intents, metadata

POST /v1/journal/reverse

POST /v1/journal/reverse

Bodyintent_id, reason, posting_mode

Responsereversal_intent_id, original_intent_id, event_count

Bank

GET /v1/bank-accounts

GET /v1/bank-accounts

Response — (array)

POST /v1/bank-accounts

POST /v1/bank-accounts

Bodyname, iban, bic, account_number, currency

Response — angelegtes Bankkonto.

GET /v1/bank-accounts/

GET /v1/bank-accounts/

Response — Bankkonto inkl. tx_count, unreconciled_count und last_tx_date.

PUT /v1/bank-accounts/

PUT /v1/bank-accounts/

Bodyname

Response — aktualisiertes Bankkonto.

GET /v1/bank-accounts/
/reconciliation

GET /v1/bank-accounts/
/reconciliation

Response — Side-by-Side-Ansicht mit offenen vs. abgestimmten Transaktionen und aktuellem Buchungsstand. ledger.amount / unmatched_ledger.amount sind in currency, zusätzlich wird base_amount in base_currency zurückgegeben.

POST /v1/bank-accounts/
/upload

POST /v1/bank-accounts/
/upload

Bodymultipart/form-data

Response — gleiche Struktur wie JSON-Import.

GET /v1/bank-accounts/balance-history

GET /v1/bank-accounts/balance-history

Querydays

Responsehistory, currentBalance, startBalance

GET /v1/bank-transactions

GET /v1/bank-transactions

Querybank_account_id, start_date, end_date, search, status, limit, offset

Responsetransactions, total

POST /v1/bank-transactions

POST /v1/bank-transactions

Bodybank_account_id, transactions

Responsebatch_id, total_rows, imported, skipped_duplicates, errors

GET /v1/bank-transactions/

GET /v1/bank-transactions/

Responsetransaction

POST /v1/bank-transactions/
/dismiss

POST /v1/bank-transactions/
/dismiss

Responseok

GET /v1/bank-transactions/
/evidence

GET /v1/bank-transactions/
/evidence

Responseevidence

PUT /v1/bank-transactions/
/evidence

PUT /v1/bank-transactions/
/evidence

Bodyevidence_type, title, note, document_id, metadata

Response — gespeicherter Belegnachweis.

POST /v1/bank-transactions/
/reconcile

POST /v1/bank-transactions/
/reconcile

Bodyintent_id, candidate_kind, open_item_account

Responseok, mode, intent_id

POST /v1/bank-transactions/
/unmatch

POST /v1/bank-transactions/
/unmatch

Response — Ergebnis der Aufhebung.

POST /v1/bank-transactions/batch-reconcile

POST /v1/bank-transactions/batch-reconcile

Bodypairs

Responsereconciled, errors

POST /v1/bank-transactions/import-file

POST /v1/bank-transactions/import-file

Bodymultipart/form-data

Response — gleiche Struktur wie JSON-Import (batch_id, imported, skipped_duplicates).

GET /v1/bank-transactions/suggestions

GET /v1/bank-transactions/suggestions

Querybank_account_id

Response — (array)

GET /v1/bank-transactions/unreconciled-count

GET /v1/bank-transactions/unreconciled-count

Responsecount

Receivables

GET /v1/customers

GET /v1/customers

Querysearch, is_active, limit, offset

Response — (array)

POST /v1/customers

POST /v1/customers

Bodyname, tax_id, vat_id, iban, bic, address, default_account, notes

Response — angelegter Debitor.

DELETE /v1/customers/

DELETE /v1/customers/

Response — deaktivierter Debitor.

GET /v1/customers/

GET /v1/customers/

Response — Debitor inkl. open_amount.

PUT /v1/customers/

PUT /v1/customers/

Bodyname, tax_id, vat_id, iban, bic, address, default_account, notes

Response — aktualisierter Debitor.

GET /v1/outgoing-invoices

GET /v1/outgoing-invoices

Querycustomer_id, status, type, start_date, end_date, limit, offset

Response — (array)

POST /v1/outgoing-invoices

POST /v1/outgoing-invoices

Bodycustomer_id, document_id, invoice_number, invoice_date, due_date, total_net, total_tax, total_gross, currency, type, intent_id, notes, lines

Responseid

GET /v1/outgoing-invoices/

GET /v1/outgoing-invoices/

Response — Ausgangsrechnung inkl. status, remaining_amount und lines-Array.

PATCH /v1/outgoing-invoices/

PATCH /v1/outgoing-invoices/

Bodyintent_id, notes, due_date

Response — aktualisierte Ausgangsrechnung.

GET /v1/outgoing-invoices/open-items

GET /v1/outgoing-invoices/open-items

Response — (array)

Payables

GET /v1/payment-runs

GET /v1/payment-runs

Querystatus, limit, offset

Response — (array)

POST /v1/payment-runs

POST /v1/payment-runs

Bodybank_account_id, execution_date, invoice_ids, label

Responseid, status, total_amount, invoice_count, items

GET /v1/payment-runs/

GET /v1/payment-runs/

Responseid, status, items

POST /v1/payment-runs/
/approve

POST /v1/payment-runs/
/approve

Response — Zahlungslauf genehmigen

POST /v1/payment-runs/
/cancel

POST /v1/payment-runs/
/cancel

Response — Zahlungslauf stornieren

POST /v1/payment-runs/
/complete

POST /v1/payment-runs/
/complete

Response — Zahlungslauf abschließen

POST /v1/payment-runs/
/export

POST /v1/payment-runs/
/export

Responserun, sepa_xml, message_id, number_of_transactions, control_sum

GET /v1/payment-runs/eligible-invoices

GET /v1/payment-runs/eligible-invoices

Response — (array)

Periods

GET /v1/periods

GET /v1/periods

Response — (array)

POST /v1/periods/
/lock

POST /v1/periods/
/lock

Responserequest_id, period, status, created_at, message

POST /v1/periods/
/lock/
/approve

POST /v1/periods/
/lock/
/approve

Responseperiod, period_number, status, locked_by, locked_at, closing_hash, request_id, approved_by

POST /v1/periods/
/lock/
/cancel

POST /v1/periods/
/lock/
/cancel

Responseok, request_id, status

GET /v1/periods/
/lock/status

GET /v1/periods/
/lock/status

Responsehas_pending_request, request_id, requested_by, created_at

POST /v1/periods/
/reopen

POST /v1/periods/
/reopen

Responseperiod, period_number, status

POST /v1/periods/
/soft-lock

POST /v1/periods/
/soft-lock

Responseperiod, period_number, status, locked_by, locked_at

Reports

GET /v1/reports

GET /v1/reports

Querytype, startDate, endDate

Response — (array)

GET /v1/reports/datev-export

GET /v1/reports/datev-export

QuerystartDate, endDate

Response — DATEV-Export erzeugen

GET /v1/reports/monthly-revenue-expenses

GET /v1/reports/monthly-revenue-expenses

Response — (array)

Weitere Endpunkte

POST /v1/bank-match-groups

POST /v1/bank-match-groups

Bodybank_transaction_ids, allocations, adjustments

Responseok, match_group_id, intent_id, mode

POST /v1/bank-match-groups/
/unmatch

POST /v1/bank-match-groups/
/unmatch

Responseok

POST /v1/contact

POST /v1/contact

Bodyname, email, message, _honeypot

Responseok

GET /v1/inbox

GET /v1/inbox

Querystatus, limit, offset

Response — (array)

GET /v1/inbox/

GET /v1/inbox/

Responseid, document_id, status, ocr_extraction, ocr_raw, vendor_match, compliance_check, source_email, source_subject, original_name, created_at

POST /v1/inbox/
/confirm

POST /v1/inbox/
/confirm

Responseconfirmed, inbox_id

POST /v1/inbox/
/reject

POST /v1/inbox/
/reject

Bodyreason

Responserejected, inbox_id

GET /v1/inbox/address

GET /v1/inbox/address

Responseinbox_address

GET /v1/invoice-review-cases

GET /v1/invoice-review-cases

Queryqueue_state, limit, offset

Response — Array von Review-Faellen mit Queue-State, normalisiertem Rechnungsobjekt, Kreditoren-Kandidaten und eventuellen Buchungsfehlern.

GET /v1/invoice-review-cases/

GET /v1/invoice-review-cases/

Response — Review-Fall-Objekt.

PATCH /v1/invoice-review-cases/

PATCH /v1/invoice-review-cases/

Bodyvendor_id, normalized_invoice

Response — Aktualisierter Review-Fall.

POST /v1/invoice-review-cases/
/approve

POST /v1/invoice-review-cases/
/approve

ResponsereviewCaseId, intentId, invoiceId

POST /v1/invoice-review-cases/
/reject

POST /v1/invoice-review-cases/
/reject

Bodyreason

Response — Aktualisierter Review-Fall mit queue_state = "rejected".

GET /v1/invoices

GET /v1/invoices

Queryvendor_id, status, start_date, end_date, limit, offset

Response — (array)

POST /v1/invoices

POST /v1/invoices

Bodyvendor_id, document_id, invoice_number, invoice_date, due_date, total_net, total_tax, total_gross, currency, intent_id, notes, lines

Responseid

GET /v1/invoices/

GET /v1/invoices/

Response — Rechnung inkl. status, remaining_amount und lines-Array.

PATCH /v1/invoices/

PATCH /v1/invoices/

Bodyintent_id, notes, due_date

Response — aktualisierte Rechnung.

GET /v1/invoices/open-items

GET /v1/invoices/open-items

Response — (array)

POST /v1/ocr/extract

POST /v1/ocr/extract

Responsevendor_name, vendor_vat_id, vendor_iban, vendor_address, invoice_number, invoice_date, due_date, total_net, total_tax, total_gross, currency, line_items, payment_terms, reference_text, raw_markdown

GET /v1/payables/ingestion-log

GET /v1/payables/ingestion-log

Querylimit, offset, outcome

Response — (array)

GET /v1/tax-codes

GET /v1/tax-codes

Queryinclude_inactive

Responsetax_codes

POST /v1/tax-codes

POST /v1/tax-codes

Bodycode, label, description, rate, vat_account, self_assess_account

Responsecode, label, description, rate, vat_account, self_assess_account, is_system, is_active

DELETE /v1/tax-codes/

DELETE /v1/tax-codes/

Responsecode, is_active

PATCH /v1/tax-codes/

PATCH /v1/tax-codes/

Bodylabel, description, rate, vat_account, self_assess_account, is_active

Responsecode, label, is_active

GET /v1/vendors

GET /v1/vendors

Querysearch, is_active, limit, offset

Response — (array)

POST /v1/vendors

POST /v1/vendors

Bodyname, tax_id, vat_id, iban, bic, address, default_account, notes

Response — angelegter Kreditor.

DELETE /v1/vendors/

DELETE /v1/vendors/

Response — deaktivierter Kreditor.

GET /v1/vendors/

GET /v1/vendors/

Response — Kreditor inkl. open_amount.

PUT /v1/vendors/

PUT /v1/vendors/

Bodyname, tax_id, vat_id, iban, bic, address, default_account, notes

Response — aktualisierter Kreditor.