---
title: "Company Settle Late"
method: POST
path: "/companies/{company_id}/reconciliation/settle-late"
tags: ["reconciliation"]
---

# Company Settle Late

`POST /companies/{company_id}/reconciliation/settle-late`

## Request

- Base URL: `https://app.zeno-works.ch` (the document declares no server; this is the origin it was published from)
- URL: `https://app.zeno-works.ch/companies/{company_id}/reconciliation/settle-late`
- Auth: none declared

Late-book up to 50 movements with one date and one reason (Nachbuchung).

Every movement is judged on its own, in its own SAVEPOINT: one that a guard refuses is
reported with its code and costs only itself, never silently re-dated. The per-movement
``rate_date`` shows each movement's own booking-rate day. ``dry_run`` writes nothing.

## Path parameters

- `company_id` string, required

## Headers

- `authorization` string, nullable

## Cookies

- `access_token` string, nullable

## Request body

- LateSettleBulkIn
  - `posting_date` string, date, required
  - `reason` string, required: The written reason (20 to 500 characters, trimmed).
  - `dry_run` boolean
  - `entry_ids` string[], required

## Response `200`

Successful Response

- LateSettleBulkOut
  - `dry_run` boolean, required
  - `results` LateSettleBulkItem[], required
    - `entry_id` string, required
    - `result` LateSettleOut: The settle's result plus what a late booking did (or, for a dry run, would do).
      - `outcome` string, required
      - `reason` string, nullable
      - `payment_id` string, nullable
      - `payment_journal_entry_id` string, nullable
      - `suspense_journal_entry_id` string, nullable
      - `allocated_amount` string, required
      - `suspense_amount` string, required
      - `bank_entry` BankEntryDetail, required
        - `id` string, required
        - `company_id` string, required
        - `bank_account_id` string, required
        - `bank_statement_id` string, required
        - `entry_index` integer, required
        - `amount` string, required
        - `currency` string, required
        - `credit_debit` 'credit' | 'debit', required
        - `booking_date` string, date, nullable
        - `value_date` string, date, nullable
        - `account_servicer_ref` string, nullable
        - `end_to_end_id` string, nullable
        - `reference` string, nullable
        - `reference_type` string, nullable
        - `remittance_info` string, nullable
        - `additional_entry_info` string, nullable
        - `counterparty_name` string, nullable
        - `counterparty_iban` string, nullable
        - `counterparty_id` string, nullable
        - `reconciliation_status` 'unmatched' | 'partially_matched' | 'matched' | 'ignored', required
        - `settlement_status` 'unsettled' | 'settled' | 'partially_settled' | 'suspense': Clean-bank settlement state of a bank entry (distinct from ``reconciliation_status``, which the matcher owns). Set by ``settle_bank_entry``.
        - `matched_amount` string, required
        - `possible_duplicate` boolean, required
        - `is_own_payment` boolean
        - `created_at` string, date-time, required
        - `has_invoice` boolean
        - `has_journal` boolean
        - `has_ledger_match` boolean
        - `needs_review` boolean
        - `journal_exportable` boolean
        - `journal_export_blocked_reason` string, nullable
        - `journal_export_soft_warning` string, nullable
        - `counterparty_hint` InvoiageCoreAccountingReconciliationSchemasReconciliationCounterpartyBrief
          - `id` string, required
          - `kind` string, required
          - `name` string, required
          - `normalized_name` string, required
          - `vat_number` string, nullable
        - `counterparty` InvoiageCoreAccountingReconciliationSchemasReconciliationCounterpartyBrief
          - `id` string, required
          - `kind` string, required
          - `name` string, required
          - `normalized_name` string, required
          - `vat_number` string, nullable
        - `match_quality` 'full' | 'strong' | 'partial' | 'weak' | 'manual' | 'imported': Graded bank-entry ↔ invoice match quality (match-quality feature, 2026-06-09). Auto bands (from how many matchable fields line up, see ``services.reconciliation``): ``full`` > ``strong`` > ``partial`` > ``weak``. ``manual`` (user-created/confirmed) and ``imported`` (asserted by a source export) are provenance values that win over any auto band.
        - `links` BankEntryLinks
          - `items` LinkedItem[]
            - `link_id` string, required
            - `item_id` string, required
            - `allocated_amount` string, required
            - `match_quality` 'full' | 'strong' | 'partial' | 'weak' | 'manual' | 'imported', required: Graded bank-entry ↔ invoice match quality (match-quality feature, 2026-06-09). Auto bands (from how many matchable fields line up, see ``services.reconciliation``): ``full`` > ``strong`` > ``partial`` > ``weak``. ``manual`` (user-created/confirmed) and ``imported`` (asserted by a source export) are provenance values that win over any auto band.
            - `match_signals` object, nullable
            - `confidence` string, nullable
            - `filename` string, nullable
            - `direction` string, nullable
          - `journal_entries` LinkedJournalEntry[]
            - `link_id` string, required
            - `journal_entry_id` string, required
            - `allocated_amount` string, required
            - `match_quality` 'full' | 'strong' | 'partial' | 'weak' | 'manual' | 'imported', required: Graded bank-entry ↔ invoice match quality (match-quality feature, 2026-06-09). Auto bands (from how many matchable fields line up, see ``services.reconciliation``): ``full`` > ``strong`` > ``partial`` > ``weak``. ``manual`` (user-created/confirmed) and ``imported`` (asserted by a source export) are provenance values that win over any auto band.
            - `match_signals` object, nullable
            - `confidence` string, nullable
            - `document_number` string, nullable
            - `description` string, nullable
          - `accounting_invoices` LinkedAccountingInvoice[]
            - `link_id` string, required
            - `accounting_invoice_id` string, required
            - `allocated_amount` string, required
            - `released_amount_currency` string, nullable
            - `match_quality` 'full' | 'strong' | 'partial' | 'weak' | 'manual' | 'imported', required: Graded bank-entry ↔ invoice match quality (match-quality feature, 2026-06-09). Auto bands (from how many matchable fields line up, see ``services.reconciliation``): ``full`` > ``strong`` > ``partial`` > ``weak``. ``manual`` (user-created/confirmed) and ``imported`` (asserted by a source export) are provenance values that win over any auto band.
            - `match_signals` object, nullable
            - `confidence` string, nullable
            - `invoice_number` string, nullable
            - `counterparty_name` string, nullable
            - `direction` 'payable' | 'receivable'
            - `currency` string, nullable
            - `open_amount` string, nullable
            - `needs_discharge` boolean
            - `published_rate` string, nullable
            - `booking_rate` string, nullable
          - `gl_open_items` LinkedGlOpenItem[]
            - `link_id` string, required
            - `gl_open_item_id` string, required
            - `allocated_amount` string, required
            - `released_amount_currency` string, nullable
            - `match_quality` 'full' | 'strong' | 'partial' | 'weak' | 'manual' | 'imported', required: Graded bank-entry ↔ invoice match quality (match-quality feature, 2026-06-09). Auto bands (from how many matchable fields line up, see ``services.reconciliation``): ``full`` > ``strong`` > ``partial`` > ``weak``. ``manual`` (user-created/confirmed) and ``imported`` (asserted by a source export) are provenance values that win over any auto band.
            - `match_signals` object, nullable
            - `confidence` string, nullable
            - `document_no` string, nullable
            - `counterparty_name` string, nullable
            - `direction` 'payable' | 'receivable'
            - `open_amount` string, nullable
            - `currency` string, nullable
            - `due_date` string, date, nullable
            - `is_credit_note` boolean
            - `needs_discharge` boolean
            - `published_rate` string, nullable
            - `booking_rate` string, nullable
          - `gl_journal_entries` LinkedGlJournalEntry[]
            - `link_id` string, required
            - `gl_journal_entry_id` string, required
            - `allocated_amount` string, required
            - `match_quality` 'full' | 'strong' | 'partial' | 'weak' | 'manual' | 'imported', required: Graded bank-entry ↔ invoice match quality (match-quality feature, 2026-06-09). Auto bands (from how many matchable fields line up, see ``services.reconciliation``): ``full`` > ``strong`` > ``partial`` > ``weak``. ``manual`` (user-created/confirmed) and ``imported`` (asserted by a source export) are provenance values that win over any auto band.
            - `match_signals` object, nullable
            - `confidence` string, nullable
            - `entry_no` integer, nullable
            - `posting_date` string, date, nullable
            - `description` string, nullable
            - `status` 'draft' | 'posted' | 'reversed'
            - `transfer_bank_entry_id` string, nullable
        - `settlement_blocker` string, nullable
        - `pays_card_bill` boolean
        - `card_clearing_account_code` string, nullable
      - `dry_run` boolean, required
      - `posting_date` string, date, required
      - `value_date` string, date, required
      - `rate_date` string, date, required
      - `period_no` integer, nullable
      - `fiscal_year_label` integer, nullable
      - `journal_entry_ids` string[]
      - `journal_entry_count` integer
      - `warnings` LateSettleWarning[]
        - `code` string, required
        - `params` object
      - `alternative` 'reopen' | 'unseal_and_reopen', nullable
    - `error_code` string, nullable
    - `error_msg` string, nullable

## Other responses

- `422`: Validation Error

---

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