@firmenakte/api-client 2.8.0 → 2.11.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/client.d.ts CHANGED
@@ -13,14 +13,15 @@ export declare enum InsolvencyCourtEventType {
13
13
  Closure = "closure",
14
14
  NonStatus = "nonStatus"
15
15
  }
16
- /** Which register a change came from, and therefore which typed feed and payload it belongs to: "business" the Firmenbuch, "document" a newly filed document, "edikt" the Ediktsdatei, "gisa" the trade register, "scheinunternehmen" the BMF list. "unknown" is a change we could not classify. */
16
+ /** Which register a change came from, and therefore which typed feed and payload it belongs to: "business" the Firmenbuch, "document" a newly filed document, "edikt" the Ediktsdatei, "gisa" the trade register, "foerderung" published funding, "scheinunternehmen" the BMF list. "unknown" is a change we could not classify. */
17
17
  export declare enum ChangeType {
18
18
  Business = "business",
19
19
  Edikt = "edikt",
20
20
  Document = "document",
21
21
  Gisa = "gisa",
22
22
  Scheinunternehmen = "scheinunternehmen",
23
- Unknown = "unknown"
23
+ Unknown = "unknown",
24
+ Foerderung = "foerderung"
24
25
  }
25
26
  /** The two files an export can produce. Same columns, same rows — only the serialiser differs. */
26
27
  export declare enum BusinessExportFormat {
@@ -61,11 +62,12 @@ export interface AddressLocationResponse {
61
62
  /** @format int32 */
62
63
  businessCount?: number;
63
64
  }
64
- /** Response for the aggregated changes endpoint. Contains all four change types for the requested FNRs. */
65
+ /** Response for the aggregated changes endpoint. Contains typed payloads and global reference rows for the requested FNRs. */
65
66
  export interface AggregatedChangesResponse {
66
67
  businessChanges?: BusinessChange[];
67
68
  documentChanges?: DocumentChange[];
68
69
  ediktChanges?: EdiktChange[];
70
+ foerderungChanges?: FoerderungChange[];
69
71
  globalChanges?: GlobalChange[];
70
72
  }
71
73
  export interface AssignmentFunctionItemResponse {
@@ -260,7 +262,7 @@ export interface BusinessChange {
260
262
  * @format date-time
261
263
  */
262
264
  changedDate?: string | null;
263
- /** Which register a change came from, and therefore which typed feed and payload it belongs to: "business" the Firmenbuch, "document" a newly filed document, "edikt" the Ediktsdatei, "gisa" the trade register, "scheinunternehmen" the BMF list. "unknown" is a change we could not classify. */
265
+ /** Which register a change came from, and therefore which typed feed and payload it belongs to: "business" the Firmenbuch, "document" a newly filed document, "edikt" the Ediktsdatei, "gisa" the trade register, "foerderung" published funding, "scheinunternehmen" the BMF list. "unknown" is a change we could not classify. */
264
266
  changeType?: ChangeType;
265
267
  }
266
268
  /** The complete Firmenakte of one company: Firmenbuch master data, addresses, officers, GISA licences, Ediktsdatei notices, filed documents and the parsed annual accounts. */
@@ -331,10 +333,12 @@ export interface BusinessDetailResponse {
331
333
  documents?: DocumentMetadata[];
332
334
  /** Parsed Jahresabschluesse, at most one per calendar year for the last five filing years, newest first. Each carries the documentDate of the filing it was read from. */
333
335
  parsedJahresabschluesse?: ParsedJahresabschlussDto[];
334
- /** Balance-sheet and P&L figures read from the company's most recent filed Jahresabschluss — the ones keyFigureFilters, orderBy and the map dot size all read. They come from one filing, the one named by documentKey and dated documentDate, so two companies here are only comparable if their documentDate is comparable. Every figure is nullable and null means the same thing throughout: that position was not reported in that filing (small companies file abridged accounts). Null is never a zero, and never "the company has none" — do not sum or average it as 0. Amounts are EUR; employees is a headcount. The full per-year history is parsedJahresabschluesse on the detail response. */
336
+ /** Balance-sheet and P&L figures read from the company's most recent filed Jahresabschluss — the ones keyFigureFilters, orderBy and the map dot size all read. They come from one filing, the one named by documentKey and dated documentDate, so two companies here are only comparable if their documentDate is comparable. Every figure is nullable and null means the same thing throughout: that position was not reported in that filing (small companies file abridged accounts). Null is never a zero, and never "the company has none" — do not sum or average it as 0. Amounts are EUR; employees is a headcount. GET /businesses/{fnr}/jahresabschluesse returns the full per-year history; the detail response carries the latest five years. */
335
337
  latestKeyFigures?: BusinessLatestKeyFiguresDto | null;
336
338
  /** OENACE 2008 industry classifications assigned to the company. Filter by oenaceCode on /businesses; the catalogue is GET /oenace. */
337
339
  oenaces?: OenaceDto[];
340
+ /** The Förderungen line on a Firmenakte: enough for the Überblick and the Zusammenfassung to state it without a second call, and no more. Null where the company has none. */
341
+ foerderungen?: BusinessFoerderungenSummary | null;
338
342
  }
339
343
  /** The eleven columns an export can carry, each on or off. The first nine are served by the company search, so an export is a projection of rows rather than a detail request per company; the two webscraper columns are read once for the whole export (#1270), never per company. */
340
344
  export interface BusinessExportColumns {
@@ -391,7 +395,32 @@ export interface BusinessFacetValue {
391
395
  /** True when the request already filters this group on this value. */
392
396
  selected?: boolean;
393
397
  }
394
- /** Balance-sheet and P&L figures read from the company's most recent filed Jahresabschluss — the ones keyFigureFilters, orderBy and the map dot size all read. They come from one filing, the one named by documentKey and dated documentDate, so two companies here are only comparable if their documentDate is comparable. Every figure is nullable and null means the same thing throughout: that position was not reported in that filing (small companies file abridged accounts). Null is never a zero, and never "the company has none" — do not sum or average it as 0. Amounts are EUR; employees is a headcount. The full per-year history is parsedJahresabschluesse on the detail response. */
398
+ /** The published state aid of one company. An empty list means nothing is published for it, which is the normal case — the Transparenzportal publishes from 1.500 € a year, and the COVID reports from 10.000 €. */
399
+ export interface BusinessFoerderungenResponse {
400
+ /** Newest year first, and the largest amount first within a year. */
401
+ items?: FoerderungDto[];
402
+ /** What one company's published state aid adds up to. */
403
+ summary?: FoerderungenSummaryDto;
404
+ }
405
+ /** The Förderungen line on a Firmenakte: enough for the Überblick and the Zusammenfassung to state it without a second call, and no more. Null where the company has none. */
406
+ export interface BusinessFoerderungenSummary {
407
+ /**
408
+ * Number of published payments.
409
+ * @format int32
410
+ */
411
+ count?: number;
412
+ /**
413
+ * Their sum in euro.
414
+ * @format double
415
+ */
416
+ sum?: number;
417
+ /**
418
+ * The most recent year among them.
419
+ * @format int32
420
+ */
421
+ latestYear?: number;
422
+ }
423
+ /** Balance-sheet and P&L figures read from the company's most recent filed Jahresabschluss — the ones keyFigureFilters, orderBy and the map dot size all read. They come from one filing, the one named by documentKey and dated documentDate, so two companies here are only comparable if their documentDate is comparable. Every figure is nullable and null means the same thing throughout: that position was not reported in that filing (small companies file abridged accounts). Null is never a zero, and never "the company has none" — do not sum or average it as 0. Amounts are EUR; employees is a headcount. GET /businesses/{fnr}/jahresabschluesse returns the full per-year history; the detail response carries the latest five years. */
395
424
  export interface BusinessLatestKeyFiguresDto {
396
425
  /** Firmenbuchnummer of the company these figures belong to. */
397
426
  fnr?: string;
@@ -631,9 +660,9 @@ export interface BusinessWebsiteDto {
631
660
  }
632
661
  /** Envelope for GET /api/v1/globalchanges/{id}. Exposes the resolved change type and the typed payload. */
633
662
  export interface ChangeDetailResponse {
634
- /** Discriminator: "business", "document", "edikt", "gisa", "scheinunternehmen", or "unknown". Read it before data. */
663
+ /** Discriminator: "business", "document", "edikt", "gisa", "foerderung", "scheinunternehmen", or "unknown". Read it before data. */
635
664
  changeType?: string;
636
- /** The resolved payload: a BusinessChange, DocumentChange, EdiktChange, GisaChange or ScheinunternehmenChange, according to changeType. */
665
+ /** The resolved payload: a BusinessChange, DocumentChange, EdiktChange, GisaChange, FoerderungChange or ScheinunternehmenChange, according to changeType. */
637
666
  data?: any;
638
667
  }
639
668
  export interface CityResponse {
@@ -675,7 +704,7 @@ export interface DocumentChange {
675
704
  /** @format date-time */
676
705
  changedDate?: string | null;
677
706
  document?: DocumentMetadata | null;
678
- /** Which register a change came from, and therefore which typed feed and payload it belongs to: "business" the Firmenbuch, "document" a newly filed document, "edikt" the Ediktsdatei, "gisa" the trade register, "scheinunternehmen" the BMF list. "unknown" is a change we could not classify. */
707
+ /** Which register a change came from, and therefore which typed feed and payload it belongs to: "business" the Firmenbuch, "document" a newly filed document, "edikt" the Ediktsdatei, "gisa" the trade register, "foerderung" published funding, "scheinunternehmen" the BMF list. "unknown" is a change we could not classify. */
679
708
  changeType?: ChangeType;
680
709
  }
681
710
  export interface DocumentMetadata {
@@ -732,7 +761,7 @@ export interface EdiktChange {
732
761
  /** @format date-time */
733
762
  changedDate?: string | null;
734
763
  edikt?: Edikt | null;
735
- /** Which register a change came from, and therefore which typed feed and payload it belongs to: "business" the Firmenbuch, "document" a newly filed document, "edikt" the Ediktsdatei, "gisa" the trade register, "scheinunternehmen" the BMF list. "unknown" is a change we could not classify. */
764
+ /** Which register a change came from, and therefore which typed feed and payload it belongs to: "business" the Firmenbuch, "document" a newly filed document, "edikt" the Ediktsdatei, "gisa" the trade register, "foerderung" published funding, "scheinunternehmen" the BMF list. "unknown" is a change we could not classify. */
736
765
  changeType?: ChangeType;
737
766
  }
738
767
  export interface EntityTagHeaderValue {
@@ -760,6 +789,100 @@ export interface FileResult {
760
789
  entityTag?: EntityTagHeaderValue | null;
761
790
  enableRangeProcessing?: boolean;
762
791
  }
792
+ export interface FoerderungChange {
793
+ /** @format int64 */
794
+ id?: number;
795
+ fnr?: string;
796
+ /**
797
+ * When the import detected this change, not the payment year.
798
+ * @format date-time
799
+ */
800
+ changedDate?: string | null;
801
+ /** @format int64 */
802
+ foerderungId?: number;
803
+ /** new for a newly imported payment, updated for an amount correction. */
804
+ kind?: string;
805
+ /**
806
+ * The newly reported amount in euro.
807
+ * @format double
808
+ */
809
+ betrag?: number;
810
+ /**
811
+ * The previous amount in euro; null for a new payment.
812
+ * @format double
813
+ */
814
+ betragVorher?: number | null;
815
+ massnahme?: string;
816
+ /** @format int32 */
817
+ jahr?: number;
818
+ ressort?: string | null;
819
+ /** Publication: covid, energiekrise, arf, ifg or ama. */
820
+ source?: string;
821
+ /** Which register a change came from, and therefore which typed feed and payload it belongs to: "business" the Firmenbuch, "document" a newly filed document, "edikt" the Ediktsdatei, "gisa" the trade register, "foerderung" published funding, "scheinunternehmen" the BMF list. "unknown" is a change we could not classify. */
822
+ changeType?: ChangeType;
823
+ }
824
+ /** One published state aid payment, as the Transparenzportal des BMF publishes it under § 40k TDBG. */
825
+ export interface FoerderungDto {
826
+ /** Which publication this line was read from: covid, energiekrise, arf, ifg or ama. */
827
+ source?: string;
828
+ /** Kennzahl des Unternehmensregisters — the portal's own key per Rechtsträger, stable across its data sets. The Firmenbuch does not carry it. */
829
+ kur?: string;
830
+ /** Recipient name as the portal spells it. For the COVID reports that is the name the company carried in 2020–2023, which may differ from its current one. */
831
+ empfaenger?: string;
832
+ /** Legal form as free text, the portal's own wording. Not a legalForm code. */
833
+ rechtsform?: string | null;
834
+ plz?: string | null;
835
+ /** Municipality. Only the Energiekrise and ARF reports carry one. */
836
+ gemeinde?: string | null;
837
+ /**
838
+ * The year the payment is reported for.
839
+ * @format int32
840
+ */
841
+ jahr?: number;
842
+ /** The paying ministry, e.g. "BMAW - BM für Arbeit und Wirtschaft". */
843
+ ressort?: string | null;
844
+ /** The Leistungsangebot, e.g. "Energiekostenzuschuss für Unternehmen (2022-2023)". */
845
+ massnahme?: string;
846
+ /** The portal's Leistungsangebots-ID, where the source carries one. None of the three CSV reports does. */
847
+ massnahmeId?: string | null;
848
+ /** Kind of aid, where the source names one. None of the three CSV reports does. */
849
+ leistungsart?: string | null;
850
+ wirtschaftszweig?: string | null;
851
+ /** ÖNACE 2008 code as the portal prints it, five digits. Not necessarily one of the codes on GET /oenace — the portal classifies the recipient itself. */
852
+ oenace?: string | null;
853
+ /** A remark the source prints beside the amount. None of the three CSV reports does. */
854
+ hinweis?: string | null;
855
+ /**
856
+ * Amount in euro.
857
+ * @format double
858
+ */
859
+ betrag?: number;
860
+ /**
861
+ * "Stichtag der Daten" — when the portal last recomputed the report this line comes from.
862
+ * @format date
863
+ */
864
+ stichtag?: string;
865
+ }
866
+ /** What one company's published state aid adds up to. */
867
+ export interface FoerderungenSummaryDto {
868
+ /**
869
+ * Number of published payments.
870
+ * @format int32
871
+ */
872
+ count?: number;
873
+ /**
874
+ * Their sum in euro.
875
+ * @format double
876
+ */
877
+ sum?: number;
878
+ /** The years they fall in, newest first. */
879
+ years?: number[];
880
+ /**
881
+ * The freshest "Stichtag der Daten" among them — what a citation of these figures names.
882
+ * @format date
883
+ */
884
+ stichtag?: string | null;
885
+ }
763
886
  export interface GisaChange {
764
887
  /** @format int64 */
765
888
  id?: number;
@@ -769,7 +892,7 @@ export interface GisaChange {
769
892
  stateHash?: string;
770
893
  /** @format date-time */
771
894
  changedDate?: string | null;
772
- /** Which register a change came from, and therefore which typed feed and payload it belongs to: "business" the Firmenbuch, "document" a newly filed document, "edikt" the Ediktsdatei, "gisa" the trade register, "scheinunternehmen" the BMF list. "unknown" is a change we could not classify. */
895
+ /** Which register a change came from, and therefore which typed feed and payload it belongs to: "business" the Firmenbuch, "document" a newly filed document, "edikt" the Ediktsdatei, "gisa" the trade register, "foerderung" published funding, "scheinunternehmen" the BMF list. "unknown" is a change we could not classify. */
773
896
  changeType?: ChangeType;
774
897
  }
775
898
  export interface GisaLicense {
@@ -818,7 +941,7 @@ export interface GisaTradeSummaryDto {
818
941
  export interface GlobalChange {
819
942
  /** @format int64 */
820
943
  id?: number;
821
- /** Which register a change came from, and therefore which typed feed and payload it belongs to: "business" the Firmenbuch, "document" a newly filed document, "edikt" the Ediktsdatei, "gisa" the trade register, "scheinunternehmen" the BMF list. "unknown" is a change we could not classify. */
944
+ /** Which register a change came from, and therefore which typed feed and payload it belongs to: "business" the Firmenbuch, "document" a newly filed document, "edikt" the Ediktsdatei, "gisa" the trade register, "foerderung" published funding, "scheinunternehmen" the BMF list. "unknown" is a change we could not classify. */
822
945
  changeType?: ChangeType;
823
946
  fnr?: string | null;
824
947
  /** @format date-time */
@@ -835,6 +958,8 @@ export interface GraphEdgeDto {
835
958
  isActive?: boolean;
836
959
  /** "assignment" (a person holds a function in a company), "ownership" (a company holds shares in another — source is the shareholder, target the company it holds) or "address". */
837
960
  relationshipType?: string;
961
+ /** The function codes the person holds at the company, current ones first — GF, PR, GS, AR … as in the Assignment function catalog. Empty on any edge but "assignment". */
962
+ functionCodes?: string[];
838
963
  /**
839
964
  * The shareholder's übernommene Stammeinlage. Null on any edge but "ownership", and on an ownership edge whose Firmenbuch entry carries no KAPITAL.
840
965
  * @format double
@@ -1200,6 +1325,31 @@ export interface PagedResponseOfEdiktChange {
1200
1325
  totalPages?: number;
1201
1326
  }
1202
1327
  /** One page of a list endpoint's result, plus the counters needed to fetch the rest. */
1328
+ export interface PagedResponseOfFoerderungChange {
1329
+ /** The rows on this page. Empty when the page is past the end, or when countOnly was requested. */
1330
+ data: FoerderungChange[];
1331
+ /**
1332
+ * The 1-based page this response is, echoing the page parameter.
1333
+ * @format int32
1334
+ */
1335
+ pageNumber: number;
1336
+ /**
1337
+ * The page size this response was built with, echoing the pageSize parameter.
1338
+ * @format int32
1339
+ */
1340
+ pageSize: number;
1341
+ /**
1342
+ * Total number of rows matching the filters, across all pages — not the length of data. The change feeds count it only as far as page reaches — 1000 × pageSize — where that exact value means "at least this many".
1343
+ * @format int32
1344
+ */
1345
+ totalRecords: number;
1346
+ /**
1347
+ * Number of pages at this pageSize: ceil(totalRecords / pageSize). Zero when nothing matched.
1348
+ * @format int32
1349
+ */
1350
+ totalPages?: number;
1351
+ }
1352
+ /** One page of a list endpoint's result, plus the counters needed to fetch the rest. */
1203
1353
  export interface PagedResponseOfGisaChange {
1204
1354
  /** The rows on this page. Empty when the page is past the end, or when countOnly was requested. */
1205
1355
  data: GisaChange[];
@@ -1632,7 +1782,7 @@ export interface ZipCodeResponse {
1632
1782
  }
1633
1783
  export declare namespace Api {
1634
1784
  /**
1635
- * @description Every saved Abfrage of the calling account, newest first.
1785
+ * @description Every saved Abfrage of the calling account, newest first. Kostet 1 Credit.
1636
1786
  * @tags Queries
1637
1787
  * @name V1QueriesList
1638
1788
  * @summary Your Abfragen
@@ -1647,7 +1797,7 @@ export declare namespace Api {
1647
1797
  type ResponseBody = QueryResponse[];
1648
1798
  }
1649
1799
  /**
1650
- * @description Keeps a filter set. A save whose filters match an Abfrage the account already has updates that one instead of adding a second — pass updateId to pin the row being edited.
1800
+ * @description Keeps a filter set. A save whose filters match an Abfrage the account already has updates that one instead of adding a second — pass updateId to pin the row being edited. Kostet 1 Credit.
1651
1801
  * @tags Queries
1652
1802
  * @name V1QueriesCreate
1653
1803
  * @summary Save an Abfrage
@@ -1662,7 +1812,7 @@ export declare namespace Api {
1662
1812
  type ResponseBody = QueryResponse;
1663
1813
  }
1664
1814
  /**
1665
- * @description The saved Abfrage with this id, when it belongs to the calling account.
1815
+ * @description The saved Abfrage with this id, when it belongs to the calling account. Kostet 1 Credit.
1666
1816
  * @tags Queries
1667
1817
  * @name V1QueriesDetail
1668
1818
  * @summary One Abfrage
@@ -1679,7 +1829,7 @@ export declare namespace Api {
1679
1829
  type ResponseBody = QueryResponse;
1680
1830
  }
1681
1831
  /**
1682
- * @description Removes one saved Abfrage from the Suchverlauf.
1832
+ * @description Removes one saved Abfrage from the Suchverlauf. Kostet 1 Credit.
1683
1833
  * @tags Queries
1684
1834
  * @name V1QueriesDelete
1685
1835
  * @summary Delete an Abfrage
@@ -1696,7 +1846,7 @@ export declare namespace Api {
1696
1846
  type ResponseBody = void;
1697
1847
  }
1698
1848
  /**
1699
- * @description Deletes every saved Abfrage of the calling account.
1849
+ * @description Deletes every saved Abfrage of the calling account. Kostet 1 Credit.
1700
1850
  * @tags Queries
1701
1851
  * @name V1QueriesAllDelete
1702
1852
  * @summary Clear the Suchverlauf
@@ -1711,7 +1861,7 @@ export declare namespace Api {
1711
1861
  type ResponseBody = void;
1712
1862
  }
1713
1863
  /**
1714
- * @description Every Liste of the calling account, oldest first.
1864
+ * @description Every Liste of the calling account, oldest first. Kostet 1 Credit.
1715
1865
  * @tags Lists
1716
1866
  * @name V1ListsList
1717
1867
  * @summary Your Listen
@@ -1726,7 +1876,7 @@ export declare namespace Api {
1726
1876
  type ResponseBody = ListResponse[];
1727
1877
  }
1728
1878
  /**
1729
- * @description Creates an empty Liste, or one already holding the companies you pass.
1879
+ * @description Creates an empty Liste, or one already holding the companies you pass. Kostet 1 Credit.
1730
1880
  * @tags Lists
1731
1881
  * @name V1ListsCreate
1732
1882
  * @summary Create a Liste
@@ -1741,7 +1891,7 @@ export declare namespace Api {
1741
1891
  type ResponseBody = ListResponse;
1742
1892
  }
1743
1893
  /**
1744
- * @description The Liste with this id, when it belongs to the calling account.
1894
+ * @description The Liste with this id, when it belongs to the calling account. Kostet 1 Credit.
1745
1895
  * @tags Lists
1746
1896
  * @name V1ListsDetail
1747
1897
  * @summary One Liste
@@ -1758,7 +1908,7 @@ export declare namespace Api {
1758
1908
  type ResponseBody = ListResponse;
1759
1909
  }
1760
1910
  /**
1761
- * @description A partial update: only the fields the body carries are written, and settings are merged into the stored ones rather than replacing them.
1911
+ * @description A partial update: only the fields the body carries are written, and settings are merged into the stored ones rather than replacing them. Kostet 1 Credit.
1762
1912
  * @tags Lists
1763
1913
  * @name V1ListsPartialUpdate
1764
1914
  * @summary Update a Liste
@@ -1775,7 +1925,7 @@ export declare namespace Api {
1775
1925
  type ResponseBody = ListResponse;
1776
1926
  }
1777
1927
  /**
1778
- * @description Deletes the Liste. The companies on it are not touched anywhere else.
1928
+ * @description Deletes the Liste. The companies on it are not touched anywhere else. Kostet 1 Credit.
1779
1929
  * @tags Lists
1780
1930
  * @name V1ListsDelete
1781
1931
  * @summary Delete a Liste
@@ -1792,7 +1942,7 @@ export declare namespace Api {
1792
1942
  type ResponseBody = void;
1793
1943
  }
1794
1944
  /**
1795
- * @description Appends the companies that are not on it yet, keeping the order of the ones that are. A company that had been taken off comes back off the removed set.
1945
+ * @description Appends the companies that are not on it yet, keeping the order of the ones that are. A company that had been taken off comes back off the removed set. Kostet 1 Credit.
1796
1946
  * @tags Lists
1797
1947
  * @name V1ListsAddCreate
1798
1948
  * @summary Add companies to a Liste
@@ -1809,7 +1959,7 @@ export declare namespace Api {
1809
1959
  type ResponseBody = ListResponse;
1810
1960
  }
1811
1961
  /**
1812
- * @description Takes the companies off the Liste and records them as removed.
1962
+ * @description Takes the companies off the Liste and records them as removed. Kostet 1 Credit.
1813
1963
  * @tags Lists
1814
1964
  * @name V1ListsRemoveCreate
1815
1965
  * @summary Remove companies from a Liste
@@ -1826,7 +1976,7 @@ export declare namespace Api {
1826
1976
  type ResponseBody = ListResponse;
1827
1977
  }
1828
1978
  /**
1829
- * @description Builds a CSV or an Excel workbook over the companies you name: an explicit set of FNRs, a Liste, or a saved Abfrage. Nothing is stored and no link is handed back: the CSV is written out as it is produced, the workbook is built in memory first. One export carries at most 1000 companies: a set of FNRs or a Liste that holds more is refused with a 400 rather than cut short, and a saved Abfrage exports its first 1000 matches. An export that would hold no rows answers 204 rather than an empty file.
1979
+ * @description Builds a CSV or an Excel workbook over the companies you name: an explicit set of FNRs, a Liste, or a saved Abfrage. Nothing is stored and no link is handed back: the CSV is written out as it is produced, the workbook is built in memory first. One export carries at most 1000 companies: a set of FNRs or a Liste that holds more is refused with a 400 rather than cut short, and a saved Abfrage exports its first 1000 matches. An export that would hold no rows answers 204 rather than an empty file. Kostet 3 Credits.
1830
1980
  * @tags Exports
1831
1981
  * @name V1ExportsBusinessesCreate
1832
1982
  * @summary Export companies
@@ -1841,7 +1991,7 @@ export declare namespace Api {
1841
1991
  type ResponseBody = FileResult;
1842
1992
  }
1843
1993
  /**
1844
- * @description Downloads the signed GISA PDF extract for a license (GISA-Zahl). Language defaults to German (De).
1994
+ * @description Downloads the signed GISA PDF extract for a license (GISA-Zahl). Language defaults to German (De). Kostet 3 Credits.
1845
1995
  * @tags Trades
1846
1996
  * @name V1TradesDocumentsDetail
1847
1997
  * @summary GISA PDF extract
@@ -1864,7 +2014,7 @@ export declare namespace Api {
1864
2014
  type ResponseBody = Blob;
1865
2015
  }
1866
2016
  /**
1867
- * @description Returns the global catalog of GISA Trade Definitions with pagination.
2017
+ * @description Returns the global catalog of GISA Trade Definitions with pagination. Kostet 1 Credit.
1868
2018
  * @tags Trades
1869
2019
  * @name V1TradesList
1870
2020
  * @summary GISA trade catalog
@@ -1897,7 +2047,7 @@ export declare namespace Api {
1897
2047
  type ResponseBody = PagedResponseOfTradeCatalogItemResponse;
1898
2048
  }
1899
2049
  /**
1900
- * @description Returns all company licenses for a specific trade definition with pagination.
2050
+ * @description Returns all company licenses for a specific trade definition with pagination. Kostet 1 Credit.
1901
2051
  * @tags Trades
1902
2052
  * @name V1TradesLicensesList
1903
2053
  * @summary Licenses by trade
@@ -1930,7 +2080,7 @@ export declare namespace Api {
1930
2080
  type ResponseBody = PagedResponseOfGisaLicense;
1931
2081
  }
1932
2082
  /**
1933
- * @description Returns all licenses for a specific company (FNR).
2083
+ * @description Returns all licenses for a specific company (FNR). Kostet 1 Credit.
1934
2084
  * @tags Trades
1935
2085
  * @name V1TradesCompanyDetail
1936
2086
  * @summary Company GISA licenses
@@ -1947,7 +2097,7 @@ export declare namespace Api {
1947
2097
  type ResponseBody = GisaLicense[];
1948
2098
  }
1949
2099
  /**
1950
- * @description Returns a single GISA change by id.
2100
+ * @description Returns a single GISA change by id. Kostet 1 Credit.
1951
2101
  * @tags Trades
1952
2102
  * @name V1TradesChangesDetail
1953
2103
  * @summary GISA change by id
@@ -1965,7 +2115,7 @@ export declare namespace Api {
1965
2115
  type ResponseBody = GisaChange;
1966
2116
  }
1967
2117
  /**
1968
- * @description Feed of GISA changes — one entry per change to a company's trade licences. Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on changedDate, and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss one resumes from the previous poll's watermark and de-duplicates by id. fnr is normalised before matching — trimmed, spaces and leading zeros removed, case left alone — so 034853 f and 34853f are the same company, exactly as on GET /businesses.
2118
+ * @description Feed of GISA changes — one entry per change to a company's trade licences. Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on changedDate, and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss one resumes from the previous poll's watermark and de-duplicates by id. fnr is normalised before matching — trimmed, spaces and leading zeros removed, case left alone — so 034853 f and 34853f are the same company, exactly as on GET /businesses. Kostet 1 Credit.
1969
2119
  * @tags Trades
1970
2120
  * @name V1TradesChangesList
1971
2121
  * @summary GISA change feed
@@ -2007,7 +2157,7 @@ export declare namespace Api {
2007
2157
  type ResponseBody = PagedResponseOfGisaChange;
2008
2158
  }
2009
2159
  /**
2010
- * @description The autocomplete read: /businesses and /people for one term, ranked together, so a search field costs one request per keystroke rather than two and does not have to merge two orders itself. Each row carries either business or person, whichever type names. Ordered by where the term sits in the name, then by the shorter name, then companies before people. pageSize is per side, so the answer holds up to twice as many rows. An empty search answers an empty list; use /businesses to page through the whole dataset.
2160
+ * @description The autocomplete read: /businesses and /people for one term, ranked together, so a search field costs one request per keystroke rather than two and does not have to merge two orders itself. Each row carries either business or person, whichever type names. Ordered by where the term sits in the name, then by the shorter name, then companies before people. pageSize is per side, so the answer holds up to twice as many rows. An empty search answers an empty list; use /businesses to page through the whole dataset. Kostet 1 Credit.
2011
2161
  * @tags Search
2012
2162
  * @name V1SearchList
2013
2163
  * @summary Companies and people in one ranked list
@@ -2032,7 +2182,7 @@ export declare namespace Api {
2032
2182
  type ResponseBody = SearchResponse;
2033
2183
  }
2034
2184
  /**
2035
- * @description Returns (id, name) pairs for all people with at least one business assignment. For client-side name index.
2185
+ * @description Returns (id, name) pairs for all people with at least one business assignment. For client-side name index. Kostet 1 Credit.
2036
2186
  * @tags People
2037
2187
  * @name V1PeopleNamesList
2038
2188
  * @summary Person name index
@@ -2047,7 +2197,7 @@ export declare namespace Api {
2047
2197
  type ResponseBody = PersonNameItem[];
2048
2198
  }
2049
2199
  /**
2050
- * @description Lists people who hold a function in, or a GISA licence for, an Austrian company. name and search behave identically here — both split the term on spaces and keep people whose "firstName lastName" contains every token, case-insensitively — except that search wins when both are given. Ordered by last name, then first name unless orderBy says otherwise. Combine with fnr or businessName to get the officers of one company, or with functionCode for one role. fnr, functionCode, businessName, businessCity and businessRegisteredSince_gte all describe one and the same assignment: a person comes back only if a single company of theirs satisfies every one of them. So the youngest owners of this year's new Viennese companies are one page: ?businessCity=Wien&businessRegisteredSince_gte=2026-01-01&functionCode=IN&functionCode=KP&functionCode=GS&functionCode=PG&orderBy=birthDate&orderByDescending=true&pageSize=3
2200
+ * @description Lists people who hold a function in, or a GISA licence for, an Austrian company. name and search behave identically here — both split the term on spaces and keep people whose "firstName lastName" contains every token, case-insensitively — except that search wins when both are given. Ordered by last name, then first name unless orderBy says otherwise. Combine with fnr or businessName to get the officers of one company, or with functionCode for one role. fnr, functionCode, businessName, businessCity and businessRegisteredSince_gte all describe one and the same assignment: a person comes back only if a single company of theirs satisfies every one of them. So the youngest owners of this year's new Viennese companies are one page: ?businessCity=Wien&businessRegisteredSince_gte=2026-01-01&functionCode=IN&functionCode=KP&functionCode=GS&functionCode=PG&orderBy=birthDate&orderByDescending=true&pageSize=3 A row's assignments are a sample, not the person's whole collection: at most 25, and only the ones matching the fnr, functionCode, businessName, businessCity and businessRegisteredSince_gte you sent, so ?fnr=34853f gives you that company's row and nothing else. Ask GET /people/{personId} for all of them. Kostet 1 Credit.
2051
2201
  * @tags People
2052
2202
  * @name V1PeopleList
2053
2203
  * @summary People search
@@ -2073,6 +2223,7 @@ export declare namespace Api {
2073
2223
  businessRegisteredSince_gte?: string;
2074
2224
  /** Only people assigned to this Firmenbuchnummer. Normalised before matching — trimmed, spaces and leading zeros removed — so 034853 f and 34853f are the same company. Case is not folded: pass the lower-case form the API gives you. */
2075
2225
  fnr?: string;
2226
+ /** Only people who have an Edikt of their own — a notice in the Ediktsdatei filed against the person, which the edikte collection on the row carries. An Edikt against one of their companies does not count; that is hasEdikt on /businesses. */
2076
2227
  hasEdikt?: boolean;
2077
2228
  /** Sort key; only "birthDate" is supported. Omitted, people come back by last name, then first name. People whose birth date the register does not give sort last under orderByDescending=true. */
2078
2229
  orderBy?: string;
@@ -2098,7 +2249,7 @@ export declare namespace Api {
2098
2249
  type ResponseBody = PagedResponseOfPerson;
2099
2250
  }
2100
2251
  /**
2101
- * @description Returns one person with every company function, GISA licence and Edikt attached to them. personId is the synthetic id described in the glossary — "firstname-lastname-birthdate", lower case, inner spaces replaced by hyphens and "x" for a part the register does not give, e.g. "max-mustermann-1970-01-01". It is matched exactly. Take it from a list row or from an assignment on a company rather than composing it yourself.
2252
+ * @description Returns one person with every company function, GISA licence and Edikt attached to them. personId is the synthetic id described in the glossary — "firstname-lastname-birthdate", lower case, inner spaces replaced by hyphens and "x" for a part the register does not give, e.g. "max-mustermann-1970-01-01". It is matched exactly. Take it from a list row or from an assignment on a company rather than composing it yourself. An id beginning with "--" carries neither first nor last name, and that is not a person but the bucket every nameless assignment in the register lands in. It answers 404 like any id nobody holds, and it is left out of GET /people for the same reason. Kostet 1 Credit.
2102
2253
  * @tags People
2103
2254
  * @name V1PeopleDetail
2104
2255
  * @summary Person detail
@@ -2115,7 +2266,7 @@ export declare namespace Api {
2115
2266
  type ResponseBody = PersonDetailResponse;
2116
2267
  }
2117
2268
  /**
2118
- * @description Returns the OeNACE classification catalog with company counts. Results are ordered by company count descending — most used first.
2269
+ * @description Returns the OeNACE classification catalog with company counts. Results are ordered by company count descending — most used first. Kostet 1 Credit.
2119
2270
  * @tags Oenace
2120
2271
  * @name V1OenaceList
2121
2272
  * @summary OeNACE classification catalog
@@ -2153,7 +2304,7 @@ export declare namespace Api {
2153
2304
  type ResponseBody = PagedResponseOfOenaceCatalogItemResponse;
2154
2305
  }
2155
2306
  /**
2156
- * @description Returns all legal forms with pagination and optional search, sorted by business count descending.
2307
+ * @description Returns all legal forms with pagination and optional search, sorted by business count descending. Kostet 1 Credit.
2157
2308
  * @tags LegalForms
2158
2309
  * @name V1LegalformsList
2159
2310
  * @summary Legal form catalog
@@ -2185,7 +2336,7 @@ export declare namespace Api {
2185
2336
  type ResponseBody = PagedResponseOfLegalFormCatalogItemResponse;
2186
2337
  }
2187
2338
  /**
2188
- * @description Returns the graph (nodes and edges) within 2 hops of the start entity. Exactly one of personId or fnr must be provided. The network of people and companies around one starting point — who sits on which board with whom. nodes are people ("person") and companies ("business"), each carrying the id you would pass to /people/{personId} or /businesses/{fnr}; edges are source/target pairs of those ids whose relationshipType is "assignment", a person holding a function in a company. Two further edge types the deployment can enable: "address", two companies registered at the same street address, and "ownership", a company holding shares in another — source is the shareholder, target the company it holds, and capitalAmount, currency and sharePercent carry the stake where the register gives one. Ownership edges are drawn only for companies crawled since the shareholder mapping went live, so a company not yet re-crawled reports none rather than implying it has none. The traversal depth is fixed at 2 hops and is not a parameter — a node with further connections outside that boundary carries hasMore=true, and isCentralNode marks the entity you started from. personId and fnr are mutually exclusive, not combinable: supplying both, or neither, is a 400, and an id that exists in neither register is a 404.
2339
+ * @description Returns the graph (nodes and edges) within 2 hops of the start entity. Exactly one of personId or fnr must be provided. The network of people and companies around one starting point — who sits on which board with whom. nodes are people ("person") and companies ("business"), each carrying the id you would pass to /people/{personId} or /businesses/{fnr}; edges are source/target pairs of those ids whose relationshipType is "assignment", a person holding a function in a company. Two further edge types the deployment can enable: "address", two companies registered at the same street address, and "ownership", a company holding shares in another — source is the shareholder, target the company it holds, and capitalAmount, currency and sharePercent carry the stake where the register gives one. Ownership edges are drawn only for companies crawled since the shareholder mapping went live, so a company not yet re-crawled reports none rather than implying it has none. The traversal depth is fixed at 2 hops and is not a parameter — a node with further connections outside that boundary carries hasMore=true, and isCentralNode marks the entity you started from. personId and fnr are mutually exclusive, not combinable: supplying both, or neither, is a 400, and an id that exists in neither register is a 404. Kostet 3 Credits.
2189
2340
  * @tags Graph
2190
2341
  * @name V1GraphList
2191
2342
  * @summary Relationship graph
@@ -2205,7 +2356,7 @@ export declare namespace Api {
2205
2356
  type ResponseBody = GraphResponse;
2206
2357
  }
2207
2358
  /**
2208
- * @description The single feed of every change across all registers — Firmenbuch, GISA, Ediktsdatei and the BMF Scheinunternehmen list — as lightweight reference rows. Each row carries only id, fnr, changeType and the dates; fetch the payload with GET /globalchanges/{id}, or poll one register's typed feed instead (/businesses/changes, /documents/changes, /edikte/changes, /trades/changes). Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on changedDate, and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss one resumes from the previous poll's watermark and de-duplicates by id.
2359
+ * @description The single feed of every change across all registers — Firmenbuch, GISA, Ediktsdatei and the BMF Scheinunternehmen list — as lightweight reference rows. Each row carries only id, fnr, changeType and the dates; fetch the payload with GET /globalchanges/{id}, or poll one register's typed feed instead (/businesses/changes, /documents/changes, /edikte/changes, /trades/changes). Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on changedDate, and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss one resumes from the previous poll's watermark and de-duplicates by id. Kostet 1 Credit.
2209
2360
  * @tags GlobalChanges
2210
2361
  * @name V1GlobalchangesList
2211
2362
  * @summary All-register change feed
@@ -2247,7 +2398,7 @@ export declare namespace Api {
2247
2398
  type ResponseBody = PagedResponseOfGlobalChange;
2248
2399
  }
2249
2400
  /**
2250
- * @description Changes for a watchlist of companies, all four change types in one unpaged response. Built for watchlist polling: pass up to 1000 fnr values (repeat the parameter) and one cursor, and get back four arrays — businessChanges, documentChanges, ediktChanges, globalChanges — each ordered by ascending id and capped at maxResultsPerType. Not paged: raise maxResultsPerType or advance sinceId instead. sinceId is exclusive and since is inclusive, exactly as on the paged feeds, but one sinceId covers all four arrays: an array that comes back full at maxResultsPerType has more behind it and bounds the cursor, so advance sinceId only to the lowest of the full arrays' highest ids, and to the highest id of all four once none comes back full. Passing no fnr returns four empty arrays, not the whole feed.
2401
+ * @description Changes for a watchlist of companies, all four change types in one unpaged response. Built for watchlist polling: pass up to 1000 fnr values (repeat the parameter) and one cursor, and get back four arrays — businessChanges, documentChanges, ediktChanges, globalChanges — each ordered by ascending id and capped at maxResultsPerType. Not paged: raise maxResultsPerType or advance sinceId instead. sinceId is exclusive and since is inclusive, exactly as on the paged feeds, but one sinceId covers all four arrays: an array that comes back full at maxResultsPerType has more behind it and bounds the cursor, so advance sinceId only to the lowest of the full arrays' highest ids, and to the highest id of all four once none comes back full. Passing no fnr returns four empty arrays, not the whole feed. Kostet 3 Credits.
2251
2402
  * @tags GlobalChanges
2252
2403
  * @name V1GlobalchangesAggregatedList
2253
2404
  * @summary Aggregated watchlist changes
@@ -2276,7 +2427,7 @@ export declare namespace Api {
2276
2427
  type ResponseBody = AggregatedChangesResponse;
2277
2428
  }
2278
2429
  /**
2279
- * @description Returns one change with its typed payload, whichever register it came from. The envelope is a discriminator plus the payload: changeType says which register, and data is the matching object — a BusinessChange, DocumentChange, EdiktChange, GisaChange or ScheinunternehmenChange. Since data is a union, read changeType before it.
2430
+ * @description Returns one change with its typed payload, whichever register it came from. The envelope is a discriminator plus the payload: changeType says which register, and data is the matching object — a BusinessChange, DocumentChange, EdiktChange, GisaChange, FoerderungChange or ScheinunternehmenChange. Since data is a union, read changeType before it. Kostet 1 Credit.
2280
2431
  * @tags GlobalChanges
2281
2432
  * @name V1GlobalchangesDetail
2282
2433
  * @summary Change by id
@@ -2294,7 +2445,67 @@ export declare namespace Api {
2294
2445
  type ResponseBody = ChangeDetailResponse;
2295
2446
  }
2296
2447
  /**
2297
- * @description Returns one Ediktsdatei change by id. The id is the shared change id from GET /globalchanges, so an id that exists but whose changeType is not "edikt" answers 404 here.
2448
+ * @description Kostet 1 Credit.
2449
+ * @tags Foerderungen
2450
+ * @name V1FoerderungenChangesDetail
2451
+ * @summary Funding change by id
2452
+ * @request GET:/api/v1/foerderungen/changes/{id}
2453
+ * @secure
2454
+ */
2455
+ namespace V1FoerderungenChangesDetail {
2456
+ type RequestParams = {
2457
+ /** @format int64 */
2458
+ id: number;
2459
+ };
2460
+ type RequestQuery = {};
2461
+ type RequestBody = never;
2462
+ type RequestHeaders = {};
2463
+ type ResponseBody = FoerderungChange;
2464
+ }
2465
+ /**
2466
+ * @description New payments and amount corrections for matched companies. A source's initial import is excluded. Ordered by ascending id. Poll with sinceId set to the previous watermark, deduplicate by id, and stop on a short page. since is inclusive and filters the recorded date, not the payment year. Both cursors apply together. fnr is normalised as on GET /businesses. totalRecords is capped at 1000 × pageSize; at that cap it means at least that many. Kostet 1 Credit.
2467
+ * @tags Foerderungen
2468
+ * @name V1FoerderungenChangesList
2469
+ * @summary Funding change feed
2470
+ * @request GET:/api/v1/foerderungen/changes
2471
+ * @secure
2472
+ */
2473
+ namespace V1FoerderungenChangesList {
2474
+ type RequestParams = {};
2475
+ type RequestQuery = {
2476
+ /** Only changes for this Firmenbuchnummer. Normalised before matching — trimmed, spaces and leading zeros removed — so 034853 f and 34853f are the same company. Case is not folded: pass the lower-case form the API gives you. */
2477
+ fnr?: string;
2478
+ /**
2479
+ * Only changes we recorded at or after this instant — inclusive, and ANDed with sinceId when both are sent. A timestamp is not a cursor: poll on sinceId.
2480
+ * @format date-time
2481
+ */
2482
+ since?: string;
2483
+ /**
2484
+ * Only changes with a higher id than this — exclusive, so pass back the highest id you have stored. This is the cursor to poll the feed on.
2485
+ * @format int64
2486
+ */
2487
+ sinceId?: number;
2488
+ /**
2489
+ * 1-based page number; defaults to 1 when omitted. Walk it upwards within one poll, holding sinceId fixed, until a page comes back with fewer than pageSize rows.
2490
+ * @format int32
2491
+ * @min 1
2492
+ * @max 1000
2493
+ */
2494
+ page?: number;
2495
+ /**
2496
+ * Number of items per page; defaults to 100 when omitted. A page shorter than this is the end of the feed.
2497
+ * @format int32
2498
+ * @min 1
2499
+ * @max 100
2500
+ */
2501
+ pageSize?: number;
2502
+ };
2503
+ type RequestBody = never;
2504
+ type RequestHeaders = {};
2505
+ type ResponseBody = PagedResponseOfFoerderungChange;
2506
+ }
2507
+ /**
2508
+ * @description Returns one Ediktsdatei change by id. The id is the shared change id from GET /globalchanges, so an id that exists but whose changeType is not "edikt" answers 404 here. Kostet 1 Credit.
2298
2509
  * @tags Edikte
2299
2510
  * @name V1EdikteChangesDetail
2300
2511
  * @summary Edikt change by id
@@ -2312,7 +2523,7 @@ export declare namespace Api {
2312
2523
  type ResponseBody = EdiktChange;
2313
2524
  }
2314
2525
  /**
2315
- * @description Feed of Ediktsdatei changes — insolvency and other court notices published about a company or a person. Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on the publication date, and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss an insolvency notice resumes from the previous poll's watermark and de-duplicates by id. fnr is normalised before matching — trimmed, spaces and leading zeros removed, case left alone — so 034853 f and 34853f are the same company, exactly as on GET /businesses.
2526
+ * @description Feed of Ediktsdatei changes — insolvency and other court notices published about a company or a person. Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on the publication date, and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss an insolvency notice resumes from the previous poll's watermark and de-duplicates by id. fnr is normalised before matching — trimmed, spaces and leading zeros removed, case left alone — so 034853 f and 34853f are the same company, exactly as on GET /businesses. Kostet 1 Credit.
2316
2527
  * @tags Edikte
2317
2528
  * @name V1EdikteChangesList
2318
2529
  * @summary Ediktsdatei change feed
@@ -2354,7 +2565,7 @@ export declare namespace Api {
2354
2565
  type ResponseBody = PagedResponseOfEdiktChange;
2355
2566
  }
2356
2567
  /**
2357
- * @description Downloads a Firmenbuch document (PDF/XML) by its document key.
2568
+ * @description Downloads a Firmenbuch document (PDF/XML) by its document key. Kostet 3 Credits.
2358
2569
  * @tags Documents
2359
2570
  * @name V1DocumentsDownloadDetail
2360
2571
  * @summary Firmenbuch document download
@@ -2371,7 +2582,7 @@ export declare namespace Api {
2371
2582
  type ResponseBody = void;
2372
2583
  }
2373
2584
  /**
2374
- * @description Returns one document change by id, with the document's metadata. The id is the shared change id from GET /globalchanges, so an id that exists but whose changeType is not "document" answers 404 here.
2585
+ * @description Returns one document change by id, with the document's metadata. The id is the shared change id from GET /globalchanges, so an id that exists but whose changeType is not "document" answers 404 here. Kostet 1 Credit.
2375
2586
  * @tags Documents
2376
2587
  * @name V1DocumentsChangesDetail
2377
2588
  * @summary Document change by id
@@ -2389,7 +2600,7 @@ export declare namespace Api {
2389
2600
  type ResponseBody = DocumentChange;
2390
2601
  }
2391
2602
  /**
2392
- * @description Feed of newly filed Firmenbuch documents — this is how you learn that a company has published a new Jahresabschluss. Each entry names a documentKey; fetch the file itself with GET /documents/download/{documentKey}. Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on the document date, and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss one resumes from the previous poll's watermark and de-duplicates by id. fnr is normalised before matching — trimmed, spaces and leading zeros removed, case left alone — so 034853 f and 34853f are the same company, exactly as on GET /businesses.
2603
+ * @description Feed of newly filed Firmenbuch documents — this is how you learn that a company has published a new Jahresabschluss. Each entry names a documentKey; fetch the file itself with GET /documents/download/{documentKey}. Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on the document date, and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss one resumes from the previous poll's watermark and de-duplicates by id. fnr is normalised before matching — trimmed, spaces and leading zeros removed, case left alone — so 034853 f and 34853f are the same company, exactly as on GET /businesses. Kostet 1 Credit.
2393
2604
  * @tags Documents
2394
2605
  * @name V1DocumentsChangesList
2395
2606
  * @summary Document change feed
@@ -2431,7 +2642,7 @@ export declare namespace Api {
2431
2642
  type ResponseBody = PagedResponseOfDocumentChange;
2432
2643
  }
2433
2644
  /**
2434
- * @description Returns all courts with pagination and optional search, sorted by business count descending.
2645
+ * @description Returns all courts with pagination and optional search, sorted by business count descending. Kostet 1 Credit.
2435
2646
  * @tags Courts
2436
2647
  * @name V1CourtsList
2437
2648
  * @summary Court catalog
@@ -2463,7 +2674,7 @@ export declare namespace Api {
2463
2674
  type ResponseBody = PagedResponseOfCourtCatalogItemResponse;
2464
2675
  }
2465
2676
  /**
2466
- * @description Resolve company names to FNRs by exact name match (1:1). Used for CSV import.
2677
+ * @description Resolve company names to FNRs by exact name match (1:1). Used for CSV import. Kostet 1 Credit.
2467
2678
  * @tags Businesses
2468
2679
  * @name V1BusinessesResolveNamesCreate
2469
2680
  * @summary Name to FNR resolution
@@ -2478,7 +2689,7 @@ export declare namespace Api {
2478
2689
  type ResponseBody = ResolveBusinessNamesResponse;
2479
2690
  }
2480
2691
  /**
2481
- * @description Lists companies matching the filters, one page of list rows per call. name and search are different tools. name is a case-insensitive substring match on the company name and nothing else. search splits the term on spaces and keeps only companies matching every token, where a token matches the name, the fnr, or — when the whole term is a number — a GISA licence key or GISA-Zahl; it additionally lifts companies whose name starts with the term to the top of the default (name) ordering. So name narrows a known name, search finds an unknown one. Inactive companies always sort after active ones, whatever orderBy says. inInsolvency is a Firmenbuch signal, not an Ediktsdatei or Insolvenzdatei one: it says whether the register currently lists an appointed administrator (MW, IW, AW, VW). inInsolvency=false and hasEdikt=false therefore mean "nothing on record here", never "no insolvency proceeding exists" — the proceedings are published in the Insolvenzdatei, which this API does not read. Pass countOnly=true for totalRecords without the rows, and use /businesses/aggregate to group the same filter set instead of paging through it.
2692
+ * @description Lists companies matching the filters, one page of list rows per call. name and search are different tools. name is a case-insensitive substring match on the company name and nothing else. search splits the term on spaces and keeps only companies matching every token, where a token matches the name, the fnr, or — when the whole term is a number — a GISA licence key or GISA-Zahl; it additionally lifts companies whose name starts with the term to the top of the default (name) ordering. So name narrows a known name, search finds an unknown one. Inactive companies always sort after active ones, whatever orderBy says. inInsolvency is a Firmenbuch evidence filter, not an Ediktsdatei or Insolvenzdatei one. True matches a classified open court record or an active administrator role (MW, IW, AW, VW). False includes closed evidence without an active role, missing evidence and unclassified or uncertain evidence without another opening or role. Omit the parameter to leave this state unfiltered. A false value means no current positive evidence in this dataset, not verified legal assurance that no proceeding exists. The proceedings are published in the Insolvenzdatei, which this API does not read. Examples: ?inInsolvency=true; ?inInsolvency=false&name=Graf; ?inInsolvency=true&countOnly=true. The same values combine with every other filter. Pass countOnly=true for totalRecords without the rows, and use /businesses/aggregate to group the same filter set instead of paging through it. Kostet 1 Credit.
2482
2693
  * @tags Businesses
2483
2694
  * @name V1BusinessesList
2484
2695
  * @summary Company search
@@ -2524,7 +2735,7 @@ export declare namespace Api {
2524
2735
  * @format int32
2525
2736
  */
2526
2737
  signerCount_lte?: number;
2527
- /** Filter by the compatibility inInsolvency boolean: true = classified open court evidence or an active MW/IW/AW/VW role; false also includes closed, absent and uncertain evidence. Inspect insolvencyStatus on each row; this is not the Insolvenzdatei. */
2738
+ /** Optional Firmenbuch evidence filter. Omit it for all companies. True includes a classified open court proceeding or an active MW/IW/AW/VW administrator role; an uncertain status can therefore still be true when separate open evidence remains. False includes closed evidence without an active role, no recorded evidence, and unclassified or otherwise uncertain evidence without a separate opening or active role. Absence of recorded evidence is not verified legal assurance that no proceeding exists. Inspect insolvencyStatus and insolvencySources on each row; this API does not read the Insolvenzdatei. */
2528
2739
  inInsolvency?: boolean;
2529
2740
  /** Sort by this key figure or by name. Same options as key figure filter keys. */
2530
2741
  orderBy?: "bilanz.AktivierteEigenleistungen" | "bilanz.AnlageVermoegen" | "bilanz.Bilanzgewinn" | "bilanz.BilanzSumme" | "bilanz.Eigenkapital" | "bilanz.EingefordertesStammkapital" | "bilanz.Finanzanlagen" | "bilanz.Forderungen" | "bilanz.ForderungenLieferungen" | "bilanz.Gewinnruecklagen" | "bilanz.ImmaterielleVermoegensgegenstaende" | "bilanz.Kapitalruecklagen" | "bilanz.KurzfristigeForderungen" | "bilanz.KurzfristigeVerbindlichkeiten" | "bilanz.LangfristigeForderungen" | "bilanz.LangfristigeVerbindlichkeiten" | "bilanz.LiquidesVermoegen" | "bilanz.PassiveRechnungsabgrenzungen" | "bilanz.Rechnungsabgrenzungen" | "bilanz.Rueckstellungen" | "bilanz.Sachanlagen" | "bilanz.Umlaufvermoegen" | "bilanz.Verbindlichkeiten" | "bilanz.VerbindlichkeitenLieferungen" | "bilanz.Vorraete" | "bilanz.Vortrag" | "bilanz.Wertpapiere" | "detailViews" | "employees" | "guv.Abschreibungen" | "guv.AufloesungGewinnruecklagen" | "guv.AufwendungenAusFinanzanlagen" | "guv.Bestandsveraenderung" | "guv.BetriebsErfolg" | "guv.ErgebnisVorSteuern" | "guv.ErtraegeAusBeteiligungen" | "guv.ErtraegeAusWertpapieren" | "guv.Finanzerfolg" | "guv.Jahresueberschuss" | "guv.Personalaufwand" | "guv.SonstigeBetrieblicheAufwendungen" | "guv.SonstigeBetrieblicheErtraege" | "guv.SonstigeZinsenUndAehnlicheErtraege" | "guv.SozialeAufwendungen" | "guv.Steueraufwand" | "guv.Umsatzerloese" | "guv.WarenUndMaterialeinkauf" | "guv.ZinsenUndAehnlicheAufwendungen" | "name" | "registeredSince" | "signerCount" | null;
@@ -3046,7 +3257,7 @@ export declare namespace Api {
3046
3257
  type ResponseBody = PagedResponseOfBusinessListResponse;
3047
3258
  }
3048
3259
  /**
3049
- * @description Returns all business (fnr, name) pairs for client-side name index. No pagination.
3260
+ * @description Returns all business (fnr, name) pairs for client-side name index. No pagination. Kostet 1 Credit.
3050
3261
  * @tags Businesses
3051
3262
  * @name V1BusinessesNamesList
3052
3263
  * @summary Company name index
@@ -3061,7 +3272,7 @@ export declare namespace Api {
3061
3272
  type ResponseBody = BusinessNameItem[];
3062
3273
  }
3063
3274
  /**
3064
- * @description Returns the number of companies in the dataset, as a bare integer. Unfiltered — it is the size of the whole dataset, not of a search. For a count over filters, call GET /businesses with countOnly=true and read totalRecords.
3275
+ * @description Returns the number of companies in the dataset, as a bare integer. Unfiltered — it is the size of the whole dataset, not of a search. For a count over filters, call GET /businesses with countOnly=true and read totalRecords. Kostet 1 Credit.
3065
3276
  * @tags Businesses
3066
3277
  * @name V1BusinessesCountList
3067
3278
  * @summary Company count
@@ -3076,7 +3287,7 @@ export declare namespace Api {
3076
3287
  type ResponseBody = number;
3077
3288
  }
3078
3289
  /**
3079
- * @description Counts over the same filter set as GET /businesses, grouped by one dimension — the server-side GROUP BY that a caller would otherwise page the whole result set to compute. Every /businesses filter means exactly what it means there; page, pageSize, orderBy, orderByDescending and countOnly are ignored — top and minCount cap the bucket list instead. totalRecords equals /businesses?countOnly=true for the same filter; how the buckets relate to it is documented on BusinessAggregateResponse.
3290
+ * @description Counts over the same filter set as GET /businesses, grouped by one dimension — the server-side GROUP BY that a caller would otherwise page the whole result set to compute. Every /businesses filter means exactly what it means there; page, pageSize, orderBy, orderByDescending and countOnly are ignored — top and minCount cap the bucket list instead. totalRecords equals /businesses?countOnly=true for the same filter; how the buckets relate to it is documented on BusinessAggregateResponse. Kostet 1 Credit.
3080
3291
  * @tags Businesses
3081
3292
  * @name V1BusinessesAggregateList
3082
3293
  * @summary Grouped company counts
@@ -3136,7 +3347,7 @@ export declare namespace Api {
3136
3347
  * @format int32
3137
3348
  */
3138
3349
  signerCount_lte?: number;
3139
- /** Filter by the compatibility inInsolvency boolean: true = classified open court evidence or an active MW/IW/AW/VW role; false also includes closed, absent and uncertain evidence. Inspect insolvencyStatus on each row; this is not the Insolvenzdatei. */
3350
+ /** Optional Firmenbuch evidence filter. Omit it for all companies. True includes a classified open court proceeding or an active MW/IW/AW/VW administrator role; an uncertain status can therefore still be true when separate open evidence remains. False includes closed evidence without an active role, no recorded evidence, and unclassified or otherwise uncertain evidence without a separate opening or active role. Absence of recorded evidence is not verified legal assurance that no proceeding exists. Inspect insolvencyStatus and insolvencySources on each row; this API does not read the Insolvenzdatei. */
3140
3351
  inInsolvency?: boolean;
3141
3352
  /** Sort by this key figure or by name. Same options as key figure filter keys. */
3142
3353
  orderBy?: "bilanz.AktivierteEigenleistungen" | "bilanz.AnlageVermoegen" | "bilanz.Bilanzgewinn" | "bilanz.BilanzSumme" | "bilanz.Eigenkapital" | "bilanz.EingefordertesStammkapital" | "bilanz.Finanzanlagen" | "bilanz.Forderungen" | "bilanz.ForderungenLieferungen" | "bilanz.Gewinnruecklagen" | "bilanz.ImmaterielleVermoegensgegenstaende" | "bilanz.Kapitalruecklagen" | "bilanz.KurzfristigeForderungen" | "bilanz.KurzfristigeVerbindlichkeiten" | "bilanz.LangfristigeForderungen" | "bilanz.LangfristigeVerbindlichkeiten" | "bilanz.LiquidesVermoegen" | "bilanz.PassiveRechnungsabgrenzungen" | "bilanz.Rechnungsabgrenzungen" | "bilanz.Rueckstellungen" | "bilanz.Sachanlagen" | "bilanz.Umlaufvermoegen" | "bilanz.Verbindlichkeiten" | "bilanz.VerbindlichkeitenLieferungen" | "bilanz.Vorraete" | "bilanz.Vortrag" | "bilanz.Wertpapiere" | "detailViews" | "employees" | "guv.Abschreibungen" | "guv.AufloesungGewinnruecklagen" | "guv.AufwendungenAusFinanzanlagen" | "guv.Bestandsveraenderung" | "guv.BetriebsErfolg" | "guv.ErgebnisVorSteuern" | "guv.ErtraegeAusBeteiligungen" | "guv.ErtraegeAusWertpapieren" | "guv.Finanzerfolg" | "guv.Jahresueberschuss" | "guv.Personalaufwand" | "guv.SonstigeBetrieblicheAufwendungen" | "guv.SonstigeBetrieblicheErtraege" | "guv.SonstigeZinsenUndAehnlicheErtraege" | "guv.SozialeAufwendungen" | "guv.Steueraufwand" | "guv.Umsatzerloese" | "guv.WarenUndMaterialeinkauf" | "guv.ZinsenUndAehnlicheAufwendungen" | "name" | "registeredSince" | "signerCount" | null;
@@ -3658,7 +3869,7 @@ export declare namespace Api {
3658
3869
  type ResponseBody = BusinessAggregateResponse;
3659
3870
  }
3660
3871
  /**
3661
- * @description Counts for every value of every filter group at once — what a filter builder puts on its chips. Takes the same filters as GET /businesses and means them the same way; page, pageSize, orderBy, orderByDescending and countOnly are ignored. Faceted semantics: a group is counted with all *other* active filters applied but its own lifted, so a value's count answers "how many results if I also select this", and selecting one never empties its own group. totalRecords is the current result count, with every filter applied. Each group returns its top values (top, default 10) plus every value the request already filters on, marked selected — a "Mehr" expander is a second call for that one group with a larger top, e.g. ?groups=city&top=50. city and zipCode count a business once per distinct value, so those counts can sum above totalRecords. One caveat worth knowing before wiring a chip up: the city filter matches a substring, while a city facet key is a whole city name, so selecting "Wien" also keeps "Wien-Umgebung" and can return more than the chip promised. Every other group matches its key exactly. Every group costs its own count, so ask for the groups you are rendering rather than all ten; the answer is cacheable for a day and varies on the whole query string.
3872
+ * @description Counts for every value of every filter group at once — what a filter builder puts on its chips. Takes the same filters as GET /businesses and means them the same way; page, pageSize, orderBy, orderByDescending and countOnly are ignored. Faceted semantics: a group is counted with all *other* active filters applied but its own lifted, so a value's count answers "how many results if I also select this", and selecting one never empties its own group. totalRecords is the current result count, with every filter applied. Each group returns its top values (top, default 10) plus every value the request already filters on, marked selected — a "Mehr" expander is a second call for that one group with a larger top, e.g. ?groups=city&top=50. city and zipCode count a business once per distinct value, so those counts can sum above totalRecords. One caveat worth knowing before wiring a chip up: the city filter matches a substring, while a city facet key is a whole city name, so selecting "Wien" also keeps "Wien-Umgebung" and can return more than the chip promised. Every other group matches its key exactly. Every group costs its own count, so ask for the groups you are rendering rather than all ten; the answer is cacheable for a day and varies on the whole query string. Kostet 1 Credit.
3662
3873
  * @tags Businesses
3663
3874
  * @name V1BusinessesFacetsList
3664
3875
  * @summary Filter-builder facet counts
@@ -3713,7 +3924,7 @@ export declare namespace Api {
3713
3924
  * @format int32
3714
3925
  */
3715
3926
  signerCount_lte?: number;
3716
- /** Filter by the compatibility inInsolvency boolean: true = classified open court evidence or an active MW/IW/AW/VW role; false also includes closed, absent and uncertain evidence. Inspect insolvencyStatus on each row; this is not the Insolvenzdatei. */
3927
+ /** Optional Firmenbuch evidence filter. Omit it for all companies. True includes a classified open court proceeding or an active MW/IW/AW/VW administrator role; an uncertain status can therefore still be true when separate open evidence remains. False includes closed evidence without an active role, no recorded evidence, and unclassified or otherwise uncertain evidence without a separate opening or active role. Absence of recorded evidence is not verified legal assurance that no proceeding exists. Inspect insolvencyStatus and insolvencySources on each row; this API does not read the Insolvenzdatei. */
3717
3928
  inInsolvency?: boolean;
3718
3929
  /** Sort by this key figure or by name. Same options as key figure filter keys. */
3719
3930
  orderBy?: "bilanz.AktivierteEigenleistungen" | "bilanz.AnlageVermoegen" | "bilanz.Bilanzgewinn" | "bilanz.BilanzSumme" | "bilanz.Eigenkapital" | "bilanz.EingefordertesStammkapital" | "bilanz.Finanzanlagen" | "bilanz.Forderungen" | "bilanz.ForderungenLieferungen" | "bilanz.Gewinnruecklagen" | "bilanz.ImmaterielleVermoegensgegenstaende" | "bilanz.Kapitalruecklagen" | "bilanz.KurzfristigeForderungen" | "bilanz.KurzfristigeVerbindlichkeiten" | "bilanz.LangfristigeForderungen" | "bilanz.LangfristigeVerbindlichkeiten" | "bilanz.LiquidesVermoegen" | "bilanz.PassiveRechnungsabgrenzungen" | "bilanz.Rechnungsabgrenzungen" | "bilanz.Rueckstellungen" | "bilanz.Sachanlagen" | "bilanz.Umlaufvermoegen" | "bilanz.Verbindlichkeiten" | "bilanz.VerbindlichkeitenLieferungen" | "bilanz.Vorraete" | "bilanz.Vortrag" | "bilanz.Wertpapiere" | "detailViews" | "employees" | "guv.Abschreibungen" | "guv.AufloesungGewinnruecklagen" | "guv.AufwendungenAusFinanzanlagen" | "guv.Bestandsveraenderung" | "guv.BetriebsErfolg" | "guv.ErgebnisVorSteuern" | "guv.ErtraegeAusBeteiligungen" | "guv.ErtraegeAusWertpapieren" | "guv.Finanzerfolg" | "guv.Jahresueberschuss" | "guv.Personalaufwand" | "guv.SonstigeBetrieblicheAufwendungen" | "guv.SonstigeBetrieblicheErtraege" | "guv.SonstigeZinsenUndAehnlicheErtraege" | "guv.SozialeAufwendungen" | "guv.Steueraufwand" | "guv.Umsatzerloese" | "guv.WarenUndMaterialeinkauf" | "guv.ZinsenUndAehnlicheAufwendungen" | "name" | "registeredSince" | "signerCount" | null;
@@ -4235,7 +4446,7 @@ export declare namespace Api {
4235
4446
  type ResponseBody = BusinessFacetsResponse;
4236
4447
  }
4237
4448
  /**
4238
- * @description The single largest company of every place in the viewport, by one metric — what a map draws as one pin per place instead of every dot in the box. groupBy picks the place: state (the nine Bundesländer, the default) or city (the towns in view). metric is one of detailViews (Aufrufe), bilanzSumme or employees (Mitarbeiter). minLat, maxLat, minLng and maxLng are required for groupBy=city and ignored for groupBy=state: the nine Bundesländer are the same nine wherever the map is looking, so that call takes no viewport at all — which is what lets one URL serve every pan and actually be cached, here and in the browser. Every /businesses filter additionally applies and means exactly what it means there; page, pageSize, orderBy, orderByDescending and countOnly are ignored. groupLabel is the place's name — "Tirol", "Innsbruck" — and is what the pin's card is headed with. A company carrying no value for the metric is skipped rather than counted as 0, so a place holding only such companies — like an empty one — returns nothing at all and the array is shorter than the number of places. Each item carries everything a popover card shows, so no second call per pin is needed. groupBy=city answers at most 16 pins, the biggest of the towns in view; the rest is what zooming in is for. Bundesländer are derived from the PLZ of the Geschäftsanschrift, the same rule the state filter on GET /businesses uses, because the Firmenbuch carries no Land. A company that is the biggest of two places in view wins both, each pin carrying an address that is actually on screen and in the town it won. Cached for an hour rather than the day GET /businesses gets: view counts move.
4449
+ * @description The single largest company of every place in the viewport, by one metric — what a map draws as one pin per place instead of every dot in the box. groupBy picks the place: state (the nine Bundesländer, the default) or city (the towns in view). metric is one of detailViews (Aufrufe), bilanzSumme or employees (Mitarbeiter). minLat, maxLat, minLng and maxLng are required for groupBy=city and ignored for groupBy=state: the nine Bundesländer are the same nine wherever the map is looking, so that call takes no viewport at all — which is what lets one URL serve every pan and actually be cached, here and in the browser. Every /businesses filter additionally applies and means exactly what it means there; page, pageSize, orderBy, orderByDescending and countOnly are ignored. groupLabel is the place's name — "Tirol", "Innsbruck" — and is what the pin's card is headed with. A company carrying no value for the metric is skipped rather than counted as 0, so a place holding only such companies — like an empty one — returns nothing at all and the array is shorter than the number of places. Each item carries everything a popover card shows, so no second call per pin is needed. groupBy=city answers at most 16 pins, the biggest of the towns in view; the rest is what zooming in is for. Bundesländer are derived from the PLZ of the Geschäftsanschrift, the same rule the state filter on GET /businesses uses, because the Firmenbuch carries no Land. A company that is the biggest of two places in view wins both, each pin carrying an address that is actually on screen and in the town it won. Cached for an hour rather than the day GET /businesses gets: view counts move. Kostet 1 Credit.
4239
4450
  * @tags Businesses
4240
4451
  * @name V1BusinessesMapTopList
4241
4452
  * @summary Top company per Bundesland or city
@@ -4285,7 +4496,7 @@ export declare namespace Api {
4285
4496
  * @format int32
4286
4497
  */
4287
4498
  signerCount_lte?: number;
4288
- /** Filter by the compatibility inInsolvency boolean: true = classified open court evidence or an active MW/IW/AW/VW role; false also includes closed, absent and uncertain evidence. Inspect insolvencyStatus on each row; this is not the Insolvenzdatei. */
4499
+ /** Optional Firmenbuch evidence filter. Omit it for all companies. True includes a classified open court proceeding or an active MW/IW/AW/VW administrator role; an uncertain status can therefore still be true when separate open evidence remains. False includes closed evidence without an active role, no recorded evidence, and unclassified or otherwise uncertain evidence without a separate opening or active role. Absence of recorded evidence is not verified legal assurance that no proceeding exists. Inspect insolvencyStatus and insolvencySources on each row; this API does not read the Insolvenzdatei. */
4289
4500
  inInsolvency?: boolean;
4290
4501
  /** Sort by this key figure or by name. Same options as key figure filter keys. */
4291
4502
  orderBy?: "bilanz.AktivierteEigenleistungen" | "bilanz.AnlageVermoegen" | "bilanz.Bilanzgewinn" | "bilanz.BilanzSumme" | "bilanz.Eigenkapital" | "bilanz.EingefordertesStammkapital" | "bilanz.Finanzanlagen" | "bilanz.Forderungen" | "bilanz.ForderungenLieferungen" | "bilanz.Gewinnruecklagen" | "bilanz.ImmaterielleVermoegensgegenstaende" | "bilanz.Kapitalruecklagen" | "bilanz.KurzfristigeForderungen" | "bilanz.KurzfristigeVerbindlichkeiten" | "bilanz.LangfristigeForderungen" | "bilanz.LangfristigeVerbindlichkeiten" | "bilanz.LiquidesVermoegen" | "bilanz.PassiveRechnungsabgrenzungen" | "bilanz.Rechnungsabgrenzungen" | "bilanz.Rueckstellungen" | "bilanz.Sachanlagen" | "bilanz.Umlaufvermoegen" | "bilanz.Verbindlichkeiten" | "bilanz.VerbindlichkeitenLieferungen" | "bilanz.Vorraete" | "bilanz.Vortrag" | "bilanz.Wertpapiere" | "detailViews" | "employees" | "guv.Abschreibungen" | "guv.AufloesungGewinnruecklagen" | "guv.AufwendungenAusFinanzanlagen" | "guv.Bestandsveraenderung" | "guv.BetriebsErfolg" | "guv.ErgebnisVorSteuern" | "guv.ErtraegeAusBeteiligungen" | "guv.ErtraegeAusWertpapieren" | "guv.Finanzerfolg" | "guv.Jahresueberschuss" | "guv.Personalaufwand" | "guv.SonstigeBetrieblicheAufwendungen" | "guv.SonstigeBetrieblicheErtraege" | "guv.SonstigeZinsenUndAehnlicheErtraege" | "guv.SozialeAufwendungen" | "guv.Steueraufwand" | "guv.Umsatzerloese" | "guv.WarenUndMaterialeinkauf" | "guv.ZinsenUndAehnlicheAufwendungen" | "name" | "registeredSince" | "signerCount" | null;
@@ -4807,7 +5018,7 @@ export declare namespace Api {
4807
5018
  type ResponseBody = BusinessMapTopItem[];
4808
5019
  }
4809
5020
  /**
4810
- * @description Active businesses similar to the given one (same OeNACE branch, same region preferred).
5021
+ * @description Active businesses similar to the given one (same OeNACE branch, same region preferred). Kostet 3 Credits.
4811
5022
  * @tags Businesses
4812
5023
  * @name V1BusinessesSimilarList
4813
5024
  * @summary Similar companies
@@ -4824,7 +5035,7 @@ export declare namespace Api {
4824
5035
  type ResponseBody = BusinessListResponse[];
4825
5036
  }
4826
5037
  /**
4827
- * @description Returns the whole Firmenakte of one company: master data, addresses, people, GISA licences, Edikte, documents and the parsed annual accounts. fnr is matched exactly against the stored, normalised Firmenbuchnummer — lower case, no spaces, no leading zeros and no "FN" prefix, e.g. 34853f. Nothing is normalised on the way in, so "FN 34853 f" answers 404 rather than the company. 404 also means the company is not in the dataset yet.
5038
+ * @description Returns the whole Firmenakte of one company: master data, addresses, people, GISA licences, Edikte, documents and the parsed annual accounts. fnr is matched exactly against the stored, normalised Firmenbuchnummer — lower case, no spaces, no leading zeros and no "FN" prefix, e.g. 34853f. Nothing is normalised on the way in, so "FN 34853 f" answers 404 rather than the company. 404 also means the company is not in the dataset yet. Kostet 1 Credit.
4828
5039
  * @tags Businesses
4829
5040
  * @name V1BusinessesDetail
4830
5041
  * @summary Company Firmenakte
@@ -4841,7 +5052,41 @@ export declare namespace Api {
4841
5052
  type ResponseBody = BusinessDetailResponse;
4842
5053
  }
4843
5054
  /**
4844
- * @description Returns one Firmenbuch change by id. The id is the shared change id from GET /globalchanges, so an id that exists but whose changeType is not "business" answers 404 here.
5055
+ * @description Every parsed Jahresabschluss of one company, one entry per calendar year, newest first. The Firmenakte itself (GET /businesses/{fnr}) carries only the last five years. 404 only where the company itself is unknown, exactly as on GET /businesses/{fnr}. Kostet 1 Credit.
5056
+ * @tags Businesses
5057
+ * @name V1BusinessesJahresabschluesseList
5058
+ * @summary Company annual accounts
5059
+ * @request GET:/api/v1/businesses/{fnr}/jahresabschluesse
5060
+ * @secure
5061
+ */
5062
+ namespace V1BusinessesJahresabschluesseList {
5063
+ type RequestParams = {
5064
+ fnr: string;
5065
+ };
5066
+ type RequestQuery = {};
5067
+ type RequestBody = never;
5068
+ type RequestHeaders = {};
5069
+ type ResponseBody = ParsedJahresabschlussDto[];
5070
+ }
5071
+ /**
5072
+ * @description The state aid published for one company by the Transparenzportal des BMF (§ 40k TDBG), newest year first and the largest amount first within a year, plus a summary of count, sum, the years and the freshest Stichtag. Published are Leistungen from 1.500 € per calendar year to non-natural persons; the COVID-19 reports start at 10.000 €. So an empty list means "nothing published for this company", never "this company received nothing" — and a company the portal names but that could not be matched to a Firmenbuchnummer is not here either. 404 only where the company itself is unknown, exactly as on GET /businesses/{fnr}. Kostet 1 Credit.
5073
+ * @tags Businesses
5074
+ * @name V1BusinessesFoerderungenList
5075
+ * @summary Company Foerderungen
5076
+ * @request GET:/api/v1/businesses/{fnr}/foerderungen
5077
+ * @secure
5078
+ */
5079
+ namespace V1BusinessesFoerderungenList {
5080
+ type RequestParams = {
5081
+ fnr: string;
5082
+ };
5083
+ type RequestQuery = {};
5084
+ type RequestBody = never;
5085
+ type RequestHeaders = {};
5086
+ type ResponseBody = BusinessFoerderungenResponse;
5087
+ }
5088
+ /**
5089
+ * @description Returns one Firmenbuch change by id. The id is the shared change id from GET /globalchanges, so an id that exists but whose changeType is not "business" answers 404 here. Kostet 1 Credit.
4845
5090
  * @tags Businesses
4846
5091
  * @name V1BusinessesChangesDetail
4847
5092
  * @summary Firmenbuch change by id
@@ -4859,7 +5104,7 @@ export declare namespace Api {
4859
5104
  type ResponseBody = BusinessChange;
4860
5105
  }
4861
5106
  /**
4862
- * @description Feed of Firmenbuch changes — one entry per new legal record (Eintragung). Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on changedDate — so a back-dated entry is not missed — and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss one resumes from the previous poll's watermark and de-duplicates by id. fnr is normalised before matching — trimmed, spaces and leading zeros removed, case left alone — so 034853 f and 34853f are the same company, exactly as on GET /businesses. Use GET /globalchanges for the same feed across all four registers.
5107
+ * @description Feed of Firmenbuch changes — one entry per new legal record (Eintragung). Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on changedDate — so a back-dated entry is not missed — and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss one resumes from the previous poll's watermark and de-duplicates by id. fnr is normalised before matching — trimmed, spaces and leading zeros removed, case left alone — so 034853 f and 34853f are the same company, exactly as on GET /businesses. Use GET /globalchanges for the same feed across all four registers. Kostet 1 Credit.
4863
5108
  * @tags Businesses
4864
5109
  * @name V1BusinessesChangesList
4865
5110
  * @summary Firmenbuch change feed
@@ -4901,7 +5146,7 @@ export declare namespace Api {
4901
5146
  type ResponseBody = PagedResponseOfBusinessChange;
4902
5147
  }
4903
5148
  /**
4904
- * @description Returns all assignment functions (code/text lookup) for display. Cached 24h.
5149
+ * @description Returns all assignment functions (code/text lookup) for display. Cached 24h. Kostet 1 Credit.
4905
5150
  * @tags AssignmentFunctions
4906
5151
  * @name V1AssignmentfunctionsList
4907
5152
  * @summary Assignment function catalog
@@ -4916,7 +5161,7 @@ export declare namespace Api {
4916
5161
  type ResponseBody = AssignmentFunctionItemResponse[];
4917
5162
  }
4918
5163
  /**
4919
- * @description Returns unique City+ZipCode combinations from addresses with pagination and optional search.
5164
+ * @description Returns unique City+ZipCode combinations from addresses with pagination and optional search. Kostet 1 Credit.
4920
5165
  * @tags Addresses
4921
5166
  * @name V1AddressesLocationsList
4922
5167
  * @summary City and ZIP combinations
@@ -4947,7 +5192,7 @@ export declare namespace Api {
4947
5192
  type ResponseBody = PagedResponseOfAddressLocationResponse;
4948
5193
  }
4949
5194
  /**
4950
- * @description Returns unique cities from addresses with pagination and optional search.
5195
+ * @description Returns unique cities from addresses with pagination and optional search. Kostet 1 Credit.
4951
5196
  * @tags Addresses
4952
5197
  * @name V1AddressesCitiesList
4953
5198
  * @summary Cities
@@ -4978,7 +5223,7 @@ export declare namespace Api {
4978
5223
  type ResponseBody = PagedResponseOfCityResponse;
4979
5224
  }
4980
5225
  /**
4981
- * @description Ranks cities and City+ZipCode combinations against one term and answers the best few of both, as one ranking split into two lists — what a location filter's type-ahead needs, where /addresses/locations and /addresses/cities are the paged catalogues behind it. Ordered by where the term sits in the label, then by the shorter label, then by company count, so "wien" answers Wien before Wiener Neustadt and before every 1xxx ZIP that carries it. A term shorter than two characters is ignored and the biggest groups come back instead. top caps both lists together, not each.
5226
+ * @description Ranks cities and City+ZipCode combinations against one term and answers the best few of both, as one ranking split into two lists — what a location filter's type-ahead needs, where /addresses/locations and /addresses/cities are the paged catalogues behind it. Ordered by where the term sits in the label, then by the shorter label, then by company count, so "wien" answers Wien before Wiener Neustadt and before every 1xxx ZIP that carries it. A term shorter than two characters is ignored and the biggest groups come back instead. top caps both lists together, not each. Kostet 1 Credit.
4982
5227
  * @tags Addresses
4983
5228
  * @name V1AddressesSuggestList
4984
5229
  * @summary Location autocomplete
@@ -5001,7 +5246,7 @@ export declare namespace Api {
5001
5246
  type ResponseBody = LocationSuggestionsResponse;
5002
5247
  }
5003
5248
  /**
5004
- * @description Returns unique zip codes from addresses with pagination and optional search.
5249
+ * @description Returns unique zip codes from addresses with pagination and optional search. Kostet 1 Credit.
5005
5250
  * @tags Addresses
5006
5251
  * @name V1AddressesZipcodesList
5007
5252
  * @summary ZIP codes
@@ -5099,7 +5344,7 @@ export declare class HttpClient<SecurityDataType = unknown> {
5099
5344
  export declare class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDataType> {
5100
5345
  api: {
5101
5346
  /**
5102
- * @description Every saved Abfrage of the calling account, newest first.
5347
+ * @description Every saved Abfrage of the calling account, newest first. Kostet 1 Credit.
5103
5348
  *
5104
5349
  * @tags Queries
5105
5350
  * @name V1QueriesList
@@ -5109,7 +5354,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5109
5354
  */
5110
5355
  v1QueriesList: (params?: RequestParams) => Promise<HttpResponse<QueryResponse[], ApiError | ProblemDetails>>;
5111
5356
  /**
5112
- * @description Keeps a filter set. A save whose filters match an Abfrage the account already has updates that one instead of adding a second — pass updateId to pin the row being edited.
5357
+ * @description Keeps a filter set. A save whose filters match an Abfrage the account already has updates that one instead of adding a second — pass updateId to pin the row being edited. Kostet 1 Credit.
5113
5358
  *
5114
5359
  * @tags Queries
5115
5360
  * @name V1QueriesCreate
@@ -5119,7 +5364,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5119
5364
  */
5120
5365
  v1QueriesCreate: (data: SaveQueryRequest, params?: RequestParams) => Promise<HttpResponse<QueryResponse, ApiError | ProblemDetails>>;
5121
5366
  /**
5122
- * @description The saved Abfrage with this id, when it belongs to the calling account.
5367
+ * @description The saved Abfrage with this id, when it belongs to the calling account. Kostet 1 Credit.
5123
5368
  *
5124
5369
  * @tags Queries
5125
5370
  * @name V1QueriesDetail
@@ -5129,7 +5374,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5129
5374
  */
5130
5375
  v1QueriesDetail: (id: string, params?: RequestParams) => Promise<HttpResponse<QueryResponse, ApiError | ProblemDetails>>;
5131
5376
  /**
5132
- * @description Removes one saved Abfrage from the Suchverlauf.
5377
+ * @description Removes one saved Abfrage from the Suchverlauf. Kostet 1 Credit.
5133
5378
  *
5134
5379
  * @tags Queries
5135
5380
  * @name V1QueriesDelete
@@ -5139,7 +5384,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5139
5384
  */
5140
5385
  v1QueriesDelete: (id: string, params?: RequestParams) => Promise<HttpResponse<void, ApiError | ProblemDetails>>;
5141
5386
  /**
5142
- * @description Deletes every saved Abfrage of the calling account.
5387
+ * @description Deletes every saved Abfrage of the calling account. Kostet 1 Credit.
5143
5388
  *
5144
5389
  * @tags Queries
5145
5390
  * @name V1QueriesAllDelete
@@ -5149,7 +5394,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5149
5394
  */
5150
5395
  v1QueriesAllDelete: (params?: RequestParams) => Promise<HttpResponse<void, ApiError | ProblemDetails>>;
5151
5396
  /**
5152
- * @description Every Liste of the calling account, oldest first.
5397
+ * @description Every Liste of the calling account, oldest first. Kostet 1 Credit.
5153
5398
  *
5154
5399
  * @tags Lists
5155
5400
  * @name V1ListsList
@@ -5159,7 +5404,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5159
5404
  */
5160
5405
  v1ListsList: (params?: RequestParams) => Promise<HttpResponse<ListResponse[], ApiError | ProblemDetails>>;
5161
5406
  /**
5162
- * @description Creates an empty Liste, or one already holding the companies you pass.
5407
+ * @description Creates an empty Liste, or one already holding the companies you pass. Kostet 1 Credit.
5163
5408
  *
5164
5409
  * @tags Lists
5165
5410
  * @name V1ListsCreate
@@ -5169,7 +5414,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5169
5414
  */
5170
5415
  v1ListsCreate: (data: CreateListRequest, params?: RequestParams) => Promise<HttpResponse<ListResponse, ApiError | ProblemDetails>>;
5171
5416
  /**
5172
- * @description The Liste with this id, when it belongs to the calling account.
5417
+ * @description The Liste with this id, when it belongs to the calling account. Kostet 1 Credit.
5173
5418
  *
5174
5419
  * @tags Lists
5175
5420
  * @name V1ListsDetail
@@ -5179,7 +5424,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5179
5424
  */
5180
5425
  v1ListsDetail: (id: string, params?: RequestParams) => Promise<HttpResponse<ListResponse, ApiError | ProblemDetails>>;
5181
5426
  /**
5182
- * @description A partial update: only the fields the body carries are written, and settings are merged into the stored ones rather than replacing them.
5427
+ * @description A partial update: only the fields the body carries are written, and settings are merged into the stored ones rather than replacing them. Kostet 1 Credit.
5183
5428
  *
5184
5429
  * @tags Lists
5185
5430
  * @name V1ListsPartialUpdate
@@ -5189,7 +5434,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5189
5434
  */
5190
5435
  v1ListsPartialUpdate: (id: string, data: UpdateListRequest, params?: RequestParams) => Promise<HttpResponse<ListResponse, ApiError | ProblemDetails>>;
5191
5436
  /**
5192
- * @description Deletes the Liste. The companies on it are not touched anywhere else.
5437
+ * @description Deletes the Liste. The companies on it are not touched anywhere else. Kostet 1 Credit.
5193
5438
  *
5194
5439
  * @tags Lists
5195
5440
  * @name V1ListsDelete
@@ -5199,7 +5444,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5199
5444
  */
5200
5445
  v1ListsDelete: (id: string, params?: RequestParams) => Promise<HttpResponse<void, ApiError | ProblemDetails>>;
5201
5446
  /**
5202
- * @description Appends the companies that are not on it yet, keeping the order of the ones that are. A company that had been taken off comes back off the removed set.
5447
+ * @description Appends the companies that are not on it yet, keeping the order of the ones that are. A company that had been taken off comes back off the removed set. Kostet 1 Credit.
5203
5448
  *
5204
5449
  * @tags Lists
5205
5450
  * @name V1ListsAddCreate
@@ -5209,7 +5454,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5209
5454
  */
5210
5455
  v1ListsAddCreate: (id: string, data: ListMembersRequest, params?: RequestParams) => Promise<HttpResponse<ListResponse, ApiError | ProblemDetails>>;
5211
5456
  /**
5212
- * @description Takes the companies off the Liste and records them as removed.
5457
+ * @description Takes the companies off the Liste and records them as removed. Kostet 1 Credit.
5213
5458
  *
5214
5459
  * @tags Lists
5215
5460
  * @name V1ListsRemoveCreate
@@ -5219,7 +5464,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5219
5464
  */
5220
5465
  v1ListsRemoveCreate: (id: string, data: ListMembersRequest, params?: RequestParams) => Promise<HttpResponse<ListResponse, ApiError | ProblemDetails>>;
5221
5466
  /**
5222
- * @description Builds a CSV or an Excel workbook over the companies you name: an explicit set of FNRs, a Liste, or a saved Abfrage. Nothing is stored and no link is handed back: the CSV is written out as it is produced, the workbook is built in memory first. One export carries at most 1000 companies: a set of FNRs or a Liste that holds more is refused with a 400 rather than cut short, and a saved Abfrage exports its first 1000 matches. An export that would hold no rows answers 204 rather than an empty file.
5467
+ * @description Builds a CSV or an Excel workbook over the companies you name: an explicit set of FNRs, a Liste, or a saved Abfrage. Nothing is stored and no link is handed back: the CSV is written out as it is produced, the workbook is built in memory first. One export carries at most 1000 companies: a set of FNRs or a Liste that holds more is refused with a 400 rather than cut short, and a saved Abfrage exports its first 1000 matches. An export that would hold no rows answers 204 rather than an empty file. Kostet 3 Credits.
5223
5468
  *
5224
5469
  * @tags Exports
5225
5470
  * @name V1ExportsBusinessesCreate
@@ -5229,7 +5474,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5229
5474
  */
5230
5475
  v1ExportsBusinessesCreate: (data: ExportBusinessesRequest, params?: RequestParams) => Promise<HttpResponse<FileResult, ApiError | ProblemDetails>>;
5231
5476
  /**
5232
- * @description Downloads the signed GISA PDF extract for a license (GISA-Zahl). Language defaults to German (De).
5477
+ * @description Downloads the signed GISA PDF extract for a license (GISA-Zahl). Language defaults to German (De). Kostet 3 Credits.
5233
5478
  *
5234
5479
  * @tags Trades
5235
5480
  * @name V1TradesDocumentsDetail
@@ -5244,7 +5489,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5244
5489
  language?: "De" | "En";
5245
5490
  }, params?: RequestParams) => Promise<HttpResponse<Blob, ApiError | ProblemDetails>>;
5246
5491
  /**
5247
- * @description Returns the global catalog of GISA Trade Definitions with pagination.
5492
+ * @description Returns the global catalog of GISA Trade Definitions with pagination. Kostet 1 Credit.
5248
5493
  *
5249
5494
  * @tags Trades
5250
5495
  * @name V1TradesList
@@ -5272,7 +5517,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5272
5517
  pageSize?: number;
5273
5518
  }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfTradeCatalogItemResponse, ApiError | ProblemDetails>>;
5274
5519
  /**
5275
- * @description Returns all company licenses for a specific trade definition with pagination.
5520
+ * @description Returns all company licenses for a specific trade definition with pagination. Kostet 1 Credit.
5276
5521
  *
5277
5522
  * @tags Trades
5278
5523
  * @name V1TradesLicensesList
@@ -5297,7 +5542,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5297
5542
  pageSize?: number;
5298
5543
  }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfGisaLicense, ApiError | ProblemDetails>>;
5299
5544
  /**
5300
- * @description Returns all licenses for a specific company (FNR).
5545
+ * @description Returns all licenses for a specific company (FNR). Kostet 1 Credit.
5301
5546
  *
5302
5547
  * @tags Trades
5303
5548
  * @name V1TradesCompanyDetail
@@ -5307,7 +5552,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5307
5552
  */
5308
5553
  v1TradesCompanyDetail: (fnr: string, params?: RequestParams) => Promise<HttpResponse<GisaLicense[], ApiError | ProblemDetails>>;
5309
5554
  /**
5310
- * @description Returns a single GISA change by id.
5555
+ * @description Returns a single GISA change by id. Kostet 1 Credit.
5311
5556
  *
5312
5557
  * @tags Trades
5313
5558
  * @name V1TradesChangesDetail
@@ -5317,7 +5562,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5317
5562
  */
5318
5563
  v1TradesChangesDetail: (id: number, params?: RequestParams) => Promise<HttpResponse<GisaChange, ApiError | ProblemDetails>>;
5319
5564
  /**
5320
- * @description Feed of GISA changes — one entry per change to a company's trade licences. Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on changedDate, and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss one resumes from the previous poll's watermark and de-duplicates by id. fnr is normalised before matching — trimmed, spaces and leading zeros removed, case left alone — so 034853 f and 34853f are the same company, exactly as on GET /businesses.
5565
+ * @description Feed of GISA changes — one entry per change to a company's trade licences. Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on changedDate, and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss one resumes from the previous poll's watermark and de-duplicates by id. fnr is normalised before matching — trimmed, spaces and leading zeros removed, case left alone — so 034853 f and 34853f are the same company, exactly as on GET /businesses. Kostet 1 Credit.
5321
5566
  *
5322
5567
  * @tags Trades
5323
5568
  * @name V1TradesChangesList
@@ -5354,7 +5599,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5354
5599
  pageSize?: number;
5355
5600
  }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfGisaChange, ApiError | ProblemDetails>>;
5356
5601
  /**
5357
- * @description The autocomplete read: /businesses and /people for one term, ranked together, so a search field costs one request per keystroke rather than two and does not have to merge two orders itself. Each row carries either business or person, whichever type names. Ordered by where the term sits in the name, then by the shorter name, then companies before people. pageSize is per side, so the answer holds up to twice as many rows. An empty search answers an empty list; use /businesses to page through the whole dataset.
5602
+ * @description The autocomplete read: /businesses and /people for one term, ranked together, so a search field costs one request per keystroke rather than two and does not have to merge two orders itself. Each row carries either business or person, whichever type names. Ordered by where the term sits in the name, then by the shorter name, then companies before people. pageSize is per side, so the answer holds up to twice as many rows. An empty search answers an empty list; use /businesses to page through the whole dataset. Kostet 1 Credit.
5358
5603
  *
5359
5604
  * @tags Search
5360
5605
  * @name V1SearchList
@@ -5374,7 +5619,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5374
5619
  pageSize?: number;
5375
5620
  }, params?: RequestParams) => Promise<HttpResponse<SearchResponse, ApiError | ProblemDetails>>;
5376
5621
  /**
5377
- * @description Returns (id, name) pairs for all people with at least one business assignment. For client-side name index.
5622
+ * @description Returns (id, name) pairs for all people with at least one business assignment. For client-side name index. Kostet 1 Credit.
5378
5623
  *
5379
5624
  * @tags People
5380
5625
  * @name V1PeopleNamesList
@@ -5384,7 +5629,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5384
5629
  */
5385
5630
  v1PeopleNamesList: (params?: RequestParams) => Promise<HttpResponse<PersonNameItem[], ApiError | ProblemDetails>>;
5386
5631
  /**
5387
- * @description Lists people who hold a function in, or a GISA licence for, an Austrian company. name and search behave identically here — both split the term on spaces and keep people whose "firstName lastName" contains every token, case-insensitively — except that search wins when both are given. Ordered by last name, then first name unless orderBy says otherwise. Combine with fnr or businessName to get the officers of one company, or with functionCode for one role. fnr, functionCode, businessName, businessCity and businessRegisteredSince_gte all describe one and the same assignment: a person comes back only if a single company of theirs satisfies every one of them. So the youngest owners of this year's new Viennese companies are one page: ?businessCity=Wien&businessRegisteredSince_gte=2026-01-01&functionCode=IN&functionCode=KP&functionCode=GS&functionCode=PG&orderBy=birthDate&orderByDescending=true&pageSize=3
5632
+ * @description Lists people who hold a function in, or a GISA licence for, an Austrian company. name and search behave identically here — both split the term on spaces and keep people whose "firstName lastName" contains every token, case-insensitively — except that search wins when both are given. Ordered by last name, then first name unless orderBy says otherwise. Combine with fnr or businessName to get the officers of one company, or with functionCode for one role. fnr, functionCode, businessName, businessCity and businessRegisteredSince_gte all describe one and the same assignment: a person comes back only if a single company of theirs satisfies every one of them. So the youngest owners of this year's new Viennese companies are one page: ?businessCity=Wien&businessRegisteredSince_gte=2026-01-01&functionCode=IN&functionCode=KP&functionCode=GS&functionCode=PG&orderBy=birthDate&orderByDescending=true&pageSize=3 A row's assignments are a sample, not the person's whole collection: at most 25, and only the ones matching the fnr, functionCode, businessName, businessCity and businessRegisteredSince_gte you sent, so ?fnr=34853f gives you that company's row and nothing else. Ask GET /people/{personId} for all of them. Kostet 1 Credit.
5388
5633
  *
5389
5634
  * @tags People
5390
5635
  * @name V1PeopleList
@@ -5409,6 +5654,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5409
5654
  businessRegisteredSince_gte?: string;
5410
5655
  /** Only people assigned to this Firmenbuchnummer. Normalised before matching — trimmed, spaces and leading zeros removed — so 034853 f and 34853f are the same company. Case is not folded: pass the lower-case form the API gives you. */
5411
5656
  fnr?: string;
5657
+ /** Only people who have an Edikt of their own — a notice in the Ediktsdatei filed against the person, which the edikte collection on the row carries. An Edikt against one of their companies does not count; that is hasEdikt on /businesses. */
5412
5658
  hasEdikt?: boolean;
5413
5659
  /** Sort key; only "birthDate" is supported. Omitted, people come back by last name, then first name. People whose birth date the register does not give sort last under orderByDescending=true. */
5414
5660
  orderBy?: string;
@@ -5430,7 +5676,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5430
5676
  pageSize?: number;
5431
5677
  }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfPerson, ApiError | ProblemDetails>>;
5432
5678
  /**
5433
- * @description Returns one person with every company function, GISA licence and Edikt attached to them. personId is the synthetic id described in the glossary — "firstname-lastname-birthdate", lower case, inner spaces replaced by hyphens and "x" for a part the register does not give, e.g. "max-mustermann-1970-01-01". It is matched exactly. Take it from a list row or from an assignment on a company rather than composing it yourself.
5679
+ * @description Returns one person with every company function, GISA licence and Edikt attached to them. personId is the synthetic id described in the glossary — "firstname-lastname-birthdate", lower case, inner spaces replaced by hyphens and "x" for a part the register does not give, e.g. "max-mustermann-1970-01-01". It is matched exactly. Take it from a list row or from an assignment on a company rather than composing it yourself. An id beginning with "--" carries neither first nor last name, and that is not a person but the bucket every nameless assignment in the register lands in. It answers 404 like any id nobody holds, and it is left out of GET /people for the same reason. Kostet 1 Credit.
5434
5680
  *
5435
5681
  * @tags People
5436
5682
  * @name V1PeopleDetail
@@ -5440,7 +5686,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5440
5686
  */
5441
5687
  v1PeopleDetail: (personId: string, params?: RequestParams) => Promise<HttpResponse<PersonDetailResponse, ApiError | ProblemDetails>>;
5442
5688
  /**
5443
- * @description Returns the OeNACE classification catalog with company counts. Results are ordered by company count descending — most used first.
5689
+ * @description Returns the OeNACE classification catalog with company counts. Results are ordered by company count descending — most used first. Kostet 1 Credit.
5444
5690
  *
5445
5691
  * @tags Oenace
5446
5692
  * @name V1OenaceList
@@ -5473,7 +5719,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5473
5719
  pageSize?: number;
5474
5720
  }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfOenaceCatalogItemResponse, ApiError | ProblemDetails>>;
5475
5721
  /**
5476
- * @description Returns all legal forms with pagination and optional search, sorted by business count descending.
5722
+ * @description Returns all legal forms with pagination and optional search, sorted by business count descending. Kostet 1 Credit.
5477
5723
  *
5478
5724
  * @tags LegalForms
5479
5725
  * @name V1LegalformsList
@@ -5500,7 +5746,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5500
5746
  pageSize?: number;
5501
5747
  }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfLegalFormCatalogItemResponse, ApiError | ProblemDetails>>;
5502
5748
  /**
5503
- * @description Returns the graph (nodes and edges) within 2 hops of the start entity. Exactly one of personId or fnr must be provided. The network of people and companies around one starting point — who sits on which board with whom. nodes are people ("person") and companies ("business"), each carrying the id you would pass to /people/{personId} or /businesses/{fnr}; edges are source/target pairs of those ids whose relationshipType is "assignment", a person holding a function in a company. Two further edge types the deployment can enable: "address", two companies registered at the same street address, and "ownership", a company holding shares in another — source is the shareholder, target the company it holds, and capitalAmount, currency and sharePercent carry the stake where the register gives one. Ownership edges are drawn only for companies crawled since the shareholder mapping went live, so a company not yet re-crawled reports none rather than implying it has none. The traversal depth is fixed at 2 hops and is not a parameter — a node with further connections outside that boundary carries hasMore=true, and isCentralNode marks the entity you started from. personId and fnr are mutually exclusive, not combinable: supplying both, or neither, is a 400, and an id that exists in neither register is a 404.
5749
+ * @description Returns the graph (nodes and edges) within 2 hops of the start entity. Exactly one of personId or fnr must be provided. The network of people and companies around one starting point — who sits on which board with whom. nodes are people ("person") and companies ("business"), each carrying the id you would pass to /people/{personId} or /businesses/{fnr}; edges are source/target pairs of those ids whose relationshipType is "assignment", a person holding a function in a company. Two further edge types the deployment can enable: "address", two companies registered at the same street address, and "ownership", a company holding shares in another — source is the shareholder, target the company it holds, and capitalAmount, currency and sharePercent carry the stake where the register gives one. Ownership edges are drawn only for companies crawled since the shareholder mapping went live, so a company not yet re-crawled reports none rather than implying it has none. The traversal depth is fixed at 2 hops and is not a parameter — a node with further connections outside that boundary carries hasMore=true, and isCentralNode marks the entity you started from. personId and fnr are mutually exclusive, not combinable: supplying both, or neither, is a 400, and an id that exists in neither register is a 404. Kostet 3 Credits.
5504
5750
  *
5505
5751
  * @tags Graph
5506
5752
  * @name V1GraphList
@@ -5515,7 +5761,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5515
5761
  fnr?: string;
5516
5762
  }, params?: RequestParams) => Promise<HttpResponse<GraphResponse, ApiError | ProblemDetails>>;
5517
5763
  /**
5518
- * @description The single feed of every change across all registers — Firmenbuch, GISA, Ediktsdatei and the BMF Scheinunternehmen list — as lightweight reference rows. Each row carries only id, fnr, changeType and the dates; fetch the payload with GET /globalchanges/{id}, or poll one register's typed feed instead (/businesses/changes, /documents/changes, /edikte/changes, /trades/changes). Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on changedDate, and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss one resumes from the previous poll's watermark and de-duplicates by id.
5764
+ * @description The single feed of every change across all registers — Firmenbuch, GISA, Ediktsdatei and the BMF Scheinunternehmen list — as lightweight reference rows. Each row carries only id, fnr, changeType and the dates; fetch the payload with GET /globalchanges/{id}, or poll one register's typed feed instead (/businesses/changes, /documents/changes, /edikte/changes, /trades/changes). Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on changedDate, and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss one resumes from the previous poll's watermark and de-duplicates by id. Kostet 1 Credit.
5519
5765
  *
5520
5766
  * @tags GlobalChanges
5521
5767
  * @name V1GlobalchangesList
@@ -5552,7 +5798,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5552
5798
  pageSize?: number;
5553
5799
  }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfGlobalChange, ApiError | ProblemDetails>>;
5554
5800
  /**
5555
- * @description Changes for a watchlist of companies, all four change types in one unpaged response. Built for watchlist polling: pass up to 1000 fnr values (repeat the parameter) and one cursor, and get back four arrays — businessChanges, documentChanges, ediktChanges, globalChanges — each ordered by ascending id and capped at maxResultsPerType. Not paged: raise maxResultsPerType or advance sinceId instead. sinceId is exclusive and since is inclusive, exactly as on the paged feeds, but one sinceId covers all four arrays: an array that comes back full at maxResultsPerType has more behind it and bounds the cursor, so advance sinceId only to the lowest of the full arrays' highest ids, and to the highest id of all four once none comes back full. Passing no fnr returns four empty arrays, not the whole feed.
5801
+ * @description Changes for a watchlist of companies, all four change types in one unpaged response. Built for watchlist polling: pass up to 1000 fnr values (repeat the parameter) and one cursor, and get back four arrays — businessChanges, documentChanges, ediktChanges, globalChanges — each ordered by ascending id and capped at maxResultsPerType. Not paged: raise maxResultsPerType or advance sinceId instead. sinceId is exclusive and since is inclusive, exactly as on the paged feeds, but one sinceId covers all four arrays: an array that comes back full at maxResultsPerType has more behind it and bounds the cursor, so advance sinceId only to the lowest of the full arrays' highest ids, and to the highest id of all four once none comes back full. Passing no fnr returns four empty arrays, not the whole feed. Kostet 3 Credits.
5556
5802
  *
5557
5803
  * @tags GlobalChanges
5558
5804
  * @name V1GlobalchangesAggregatedList
@@ -5576,7 +5822,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5576
5822
  maxResultsPerType?: number;
5577
5823
  }, params?: RequestParams) => Promise<HttpResponse<AggregatedChangesResponse, ApiError | ProblemDetails>>;
5578
5824
  /**
5579
- * @description Returns one change with its typed payload, whichever register it came from. The envelope is a discriminator plus the payload: changeType says which register, and data is the matching object — a BusinessChange, DocumentChange, EdiktChange, GisaChange or ScheinunternehmenChange. Since data is a union, read changeType before it.
5825
+ * @description Returns one change with its typed payload, whichever register it came from. The envelope is a discriminator plus the payload: changeType says which register, and data is the matching object — a BusinessChange, DocumentChange, EdiktChange, GisaChange, FoerderungChange or ScheinunternehmenChange. Since data is a union, read changeType before it. Kostet 1 Credit.
5580
5826
  *
5581
5827
  * @tags GlobalChanges
5582
5828
  * @name V1GlobalchangesDetail
@@ -5586,7 +5832,54 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5586
5832
  */
5587
5833
  v1GlobalchangesDetail: (id: number, params?: RequestParams) => Promise<HttpResponse<ChangeDetailResponse, ApiError | ProblemDetails>>;
5588
5834
  /**
5589
- * @description Returns one Ediktsdatei change by id. The id is the shared change id from GET /globalchanges, so an id that exists but whose changeType is not "edikt" answers 404 here.
5835
+ * @description Kostet 1 Credit.
5836
+ *
5837
+ * @tags Foerderungen
5838
+ * @name V1FoerderungenChangesDetail
5839
+ * @summary Funding change by id
5840
+ * @request GET:/api/v1/foerderungen/changes/{id}
5841
+ * @secure
5842
+ */
5843
+ v1FoerderungenChangesDetail: (id: number, params?: RequestParams) => Promise<HttpResponse<FoerderungChange, ApiError | ProblemDetails>>;
5844
+ /**
5845
+ * @description New payments and amount corrections for matched companies. A source's initial import is excluded. Ordered by ascending id. Poll with sinceId set to the previous watermark, deduplicate by id, and stop on a short page. since is inclusive and filters the recorded date, not the payment year. Both cursors apply together. fnr is normalised as on GET /businesses. totalRecords is capped at 1000 × pageSize; at that cap it means at least that many. Kostet 1 Credit.
5846
+ *
5847
+ * @tags Foerderungen
5848
+ * @name V1FoerderungenChangesList
5849
+ * @summary Funding change feed
5850
+ * @request GET:/api/v1/foerderungen/changes
5851
+ * @secure
5852
+ */
5853
+ v1FoerderungenChangesList: (query?: {
5854
+ /** Only changes for this Firmenbuchnummer. Normalised before matching — trimmed, spaces and leading zeros removed — so 034853 f and 34853f are the same company. Case is not folded: pass the lower-case form the API gives you. */
5855
+ fnr?: string;
5856
+ /**
5857
+ * Only changes we recorded at or after this instant — inclusive, and ANDed with sinceId when both are sent. A timestamp is not a cursor: poll on sinceId.
5858
+ * @format date-time
5859
+ */
5860
+ since?: string;
5861
+ /**
5862
+ * Only changes with a higher id than this — exclusive, so pass back the highest id you have stored. This is the cursor to poll the feed on.
5863
+ * @format int64
5864
+ */
5865
+ sinceId?: number;
5866
+ /**
5867
+ * 1-based page number; defaults to 1 when omitted. Walk it upwards within one poll, holding sinceId fixed, until a page comes back with fewer than pageSize rows.
5868
+ * @format int32
5869
+ * @min 1
5870
+ * @max 1000
5871
+ */
5872
+ page?: number;
5873
+ /**
5874
+ * Number of items per page; defaults to 100 when omitted. A page shorter than this is the end of the feed.
5875
+ * @format int32
5876
+ * @min 1
5877
+ * @max 100
5878
+ */
5879
+ pageSize?: number;
5880
+ }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfFoerderungChange, ApiError | ProblemDetails>>;
5881
+ /**
5882
+ * @description Returns one Ediktsdatei change by id. The id is the shared change id from GET /globalchanges, so an id that exists but whose changeType is not "edikt" answers 404 here. Kostet 1 Credit.
5590
5883
  *
5591
5884
  * @tags Edikte
5592
5885
  * @name V1EdikteChangesDetail
@@ -5596,7 +5889,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5596
5889
  */
5597
5890
  v1EdikteChangesDetail: (id: number, params?: RequestParams) => Promise<HttpResponse<EdiktChange, ApiError | ProblemDetails>>;
5598
5891
  /**
5599
- * @description Feed of Ediktsdatei changes — insolvency and other court notices published about a company or a person. Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on the publication date, and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss an insolvency notice resumes from the previous poll's watermark and de-duplicates by id. fnr is normalised before matching — trimmed, spaces and leading zeros removed, case left alone — so 034853 f and 34853f are the same company, exactly as on GET /businesses.
5892
+ * @description Feed of Ediktsdatei changes — insolvency and other court notices published about a company or a person. Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on the publication date, and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss an insolvency notice resumes from the previous poll's watermark and de-duplicates by id. fnr is normalised before matching — trimmed, spaces and leading zeros removed, case left alone — so 034853 f and 34853f are the same company, exactly as on GET /businesses. Kostet 1 Credit.
5600
5893
  *
5601
5894
  * @tags Edikte
5602
5895
  * @name V1EdikteChangesList
@@ -5633,7 +5926,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5633
5926
  pageSize?: number;
5634
5927
  }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfEdiktChange, ApiError | ProblemDetails>>;
5635
5928
  /**
5636
- * @description Downloads a Firmenbuch document (PDF/XML) by its document key.
5929
+ * @description Downloads a Firmenbuch document (PDF/XML) by its document key. Kostet 3 Credits.
5637
5930
  *
5638
5931
  * @tags Documents
5639
5932
  * @name V1DocumentsDownloadDetail
@@ -5643,7 +5936,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5643
5936
  */
5644
5937
  v1DocumentsDownloadDetail: (documentKey: string, params?: RequestParams) => Promise<HttpResponse<void, string | ApiError | ProblemDetails>>;
5645
5938
  /**
5646
- * @description Returns one document change by id, with the document's metadata. The id is the shared change id from GET /globalchanges, so an id that exists but whose changeType is not "document" answers 404 here.
5939
+ * @description Returns one document change by id, with the document's metadata. The id is the shared change id from GET /globalchanges, so an id that exists but whose changeType is not "document" answers 404 here. Kostet 1 Credit.
5647
5940
  *
5648
5941
  * @tags Documents
5649
5942
  * @name V1DocumentsChangesDetail
@@ -5653,7 +5946,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5653
5946
  */
5654
5947
  v1DocumentsChangesDetail: (id: number, params?: RequestParams) => Promise<HttpResponse<DocumentChange, ApiError | ProblemDetails>>;
5655
5948
  /**
5656
- * @description Feed of newly filed Firmenbuch documents — this is how you learn that a company has published a new Jahresabschluss. Each entry names a documentKey; fetch the file itself with GET /documents/download/{documentKey}. Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on the document date, and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss one resumes from the previous poll's watermark and de-duplicates by id. fnr is normalised before matching — trimmed, spaces and leading zeros removed, case left alone — so 034853 f and 34853f are the same company, exactly as on GET /businesses.
5949
+ * @description Feed of newly filed Firmenbuch documents — this is how you learn that a company has published a new Jahresabschluss. Each entry names a documentKey; fetch the file itself with GET /documents/download/{documentKey}. Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on the document date, and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss one resumes from the previous poll's watermark and de-duplicates by id. fnr is normalised before matching — trimmed, spaces and leading zeros removed, case left alone — so 034853 f and 34853f are the same company, exactly as on GET /businesses. Kostet 1 Credit.
5657
5950
  *
5658
5951
  * @tags Documents
5659
5952
  * @name V1DocumentsChangesList
@@ -5690,7 +5983,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5690
5983
  pageSize?: number;
5691
5984
  }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfDocumentChange, ApiError | ProblemDetails>>;
5692
5985
  /**
5693
- * @description Returns all courts with pagination and optional search, sorted by business count descending.
5986
+ * @description Returns all courts with pagination and optional search, sorted by business count descending. Kostet 1 Credit.
5694
5987
  *
5695
5988
  * @tags Courts
5696
5989
  * @name V1CourtsList
@@ -5717,7 +6010,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5717
6010
  pageSize?: number;
5718
6011
  }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfCourtCatalogItemResponse, ApiError | ProblemDetails>>;
5719
6012
  /**
5720
- * @description Resolve company names to FNRs by exact name match (1:1). Used for CSV import.
6013
+ * @description Resolve company names to FNRs by exact name match (1:1). Used for CSV import. Kostet 1 Credit.
5721
6014
  *
5722
6015
  * @tags Businesses
5723
6016
  * @name V1BusinessesResolveNamesCreate
@@ -5727,7 +6020,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5727
6020
  */
5728
6021
  v1BusinessesResolveNamesCreate: (data: ResolveBusinessNamesRequest, params?: RequestParams) => Promise<HttpResponse<ResolveBusinessNamesResponse, ApiError | ProblemDetails>>;
5729
6022
  /**
5730
- * @description Lists companies matching the filters, one page of list rows per call. name and search are different tools. name is a case-insensitive substring match on the company name and nothing else. search splits the term on spaces and keeps only companies matching every token, where a token matches the name, the fnr, or — when the whole term is a number — a GISA licence key or GISA-Zahl; it additionally lifts companies whose name starts with the term to the top of the default (name) ordering. So name narrows a known name, search finds an unknown one. Inactive companies always sort after active ones, whatever orderBy says. inInsolvency is a Firmenbuch signal, not an Ediktsdatei or Insolvenzdatei one: it says whether the register currently lists an appointed administrator (MW, IW, AW, VW). inInsolvency=false and hasEdikt=false therefore mean "nothing on record here", never "no insolvency proceeding exists" — the proceedings are published in the Insolvenzdatei, which this API does not read. Pass countOnly=true for totalRecords without the rows, and use /businesses/aggregate to group the same filter set instead of paging through it.
6023
+ * @description Lists companies matching the filters, one page of list rows per call. name and search are different tools. name is a case-insensitive substring match on the company name and nothing else. search splits the term on spaces and keeps only companies matching every token, where a token matches the name, the fnr, or — when the whole term is a number — a GISA licence key or GISA-Zahl; it additionally lifts companies whose name starts with the term to the top of the default (name) ordering. So name narrows a known name, search finds an unknown one. Inactive companies always sort after active ones, whatever orderBy says. inInsolvency is a Firmenbuch evidence filter, not an Ediktsdatei or Insolvenzdatei one. True matches a classified open court record or an active administrator role (MW, IW, AW, VW). False includes closed evidence without an active role, missing evidence and unclassified or uncertain evidence without another opening or role. Omit the parameter to leave this state unfiltered. A false value means no current positive evidence in this dataset, not verified legal assurance that no proceeding exists. The proceedings are published in the Insolvenzdatei, which this API does not read. Examples: ?inInsolvency=true; ?inInsolvency=false&name=Graf; ?inInsolvency=true&countOnly=true. The same values combine with every other filter. Pass countOnly=true for totalRecords without the rows, and use /businesses/aggregate to group the same filter set instead of paging through it. Kostet 1 Credit.
5731
6024
  *
5732
6025
  * @tags Businesses
5733
6026
  * @name V1BusinessesList
@@ -5772,7 +6065,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5772
6065
  * @format int32
5773
6066
  */
5774
6067
  signerCount_lte?: number;
5775
- /** Filter by the compatibility inInsolvency boolean: true = classified open court evidence or an active MW/IW/AW/VW role; false also includes closed, absent and uncertain evidence. Inspect insolvencyStatus on each row; this is not the Insolvenzdatei. */
6068
+ /** Optional Firmenbuch evidence filter. Omit it for all companies. True includes a classified open court proceeding or an active MW/IW/AW/VW administrator role; an uncertain status can therefore still be true when separate open evidence remains. False includes closed evidence without an active role, no recorded evidence, and unclassified or otherwise uncertain evidence without a separate opening or active role. Absence of recorded evidence is not verified legal assurance that no proceeding exists. Inspect insolvencyStatus and insolvencySources on each row; this API does not read the Insolvenzdatei. */
5776
6069
  inInsolvency?: boolean;
5777
6070
  /** Sort by this key figure or by name. Same options as key figure filter keys. */
5778
6071
  orderBy?: "bilanz.AktivierteEigenleistungen" | "bilanz.AnlageVermoegen" | "bilanz.Bilanzgewinn" | "bilanz.BilanzSumme" | "bilanz.Eigenkapital" | "bilanz.EingefordertesStammkapital" | "bilanz.Finanzanlagen" | "bilanz.Forderungen" | "bilanz.ForderungenLieferungen" | "bilanz.Gewinnruecklagen" | "bilanz.ImmaterielleVermoegensgegenstaende" | "bilanz.Kapitalruecklagen" | "bilanz.KurzfristigeForderungen" | "bilanz.KurzfristigeVerbindlichkeiten" | "bilanz.LangfristigeForderungen" | "bilanz.LangfristigeVerbindlichkeiten" | "bilanz.LiquidesVermoegen" | "bilanz.PassiveRechnungsabgrenzungen" | "bilanz.Rechnungsabgrenzungen" | "bilanz.Rueckstellungen" | "bilanz.Sachanlagen" | "bilanz.Umlaufvermoegen" | "bilanz.Verbindlichkeiten" | "bilanz.VerbindlichkeitenLieferungen" | "bilanz.Vorraete" | "bilanz.Vortrag" | "bilanz.Wertpapiere" | "detailViews" | "employees" | "guv.Abschreibungen" | "guv.AufloesungGewinnruecklagen" | "guv.AufwendungenAusFinanzanlagen" | "guv.Bestandsveraenderung" | "guv.BetriebsErfolg" | "guv.ErgebnisVorSteuern" | "guv.ErtraegeAusBeteiligungen" | "guv.ErtraegeAusWertpapieren" | "guv.Finanzerfolg" | "guv.Jahresueberschuss" | "guv.Personalaufwand" | "guv.SonstigeBetrieblicheAufwendungen" | "guv.SonstigeBetrieblicheErtraege" | "guv.SonstigeZinsenUndAehnlicheErtraege" | "guv.SozialeAufwendungen" | "guv.Steueraufwand" | "guv.Umsatzerloese" | "guv.WarenUndMaterialeinkauf" | "guv.ZinsenUndAehnlicheAufwendungen" | "name" | "registeredSince" | "signerCount" | null;
@@ -6290,7 +6583,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
6290
6583
  "guv.ZinsenUndAehnlicheAufwendungen_lte"?: number | null;
6291
6584
  }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfBusinessListResponse, ApiError | ProblemDetails>>;
6292
6585
  /**
6293
- * @description Returns all business (fnr, name) pairs for client-side name index. No pagination.
6586
+ * @description Returns all business (fnr, name) pairs for client-side name index. No pagination. Kostet 1 Credit.
6294
6587
  *
6295
6588
  * @tags Businesses
6296
6589
  * @name V1BusinessesNamesList
@@ -6300,7 +6593,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
6300
6593
  */
6301
6594
  v1BusinessesNamesList: (params?: RequestParams) => Promise<HttpResponse<BusinessNameItem[], ApiError | ProblemDetails>>;
6302
6595
  /**
6303
- * @description Returns the number of companies in the dataset, as a bare integer. Unfiltered — it is the size of the whole dataset, not of a search. For a count over filters, call GET /businesses with countOnly=true and read totalRecords.
6596
+ * @description Returns the number of companies in the dataset, as a bare integer. Unfiltered — it is the size of the whole dataset, not of a search. For a count over filters, call GET /businesses with countOnly=true and read totalRecords. Kostet 1 Credit.
6304
6597
  *
6305
6598
  * @tags Businesses
6306
6599
  * @name V1BusinessesCountList
@@ -6310,7 +6603,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
6310
6603
  */
6311
6604
  v1BusinessesCountList: (params?: RequestParams) => Promise<HttpResponse<number, ApiError | ProblemDetails>>;
6312
6605
  /**
6313
- * @description Counts over the same filter set as GET /businesses, grouped by one dimension — the server-side GROUP BY that a caller would otherwise page the whole result set to compute. Every /businesses filter means exactly what it means there; page, pageSize, orderBy, orderByDescending and countOnly are ignored — top and minCount cap the bucket list instead. totalRecords equals /businesses?countOnly=true for the same filter; how the buckets relate to it is documented on BusinessAggregateResponse.
6606
+ * @description Counts over the same filter set as GET /businesses, grouped by one dimension — the server-side GROUP BY that a caller would otherwise page the whole result set to compute. Every /businesses filter means exactly what it means there; page, pageSize, orderBy, orderByDescending and countOnly are ignored — top and minCount cap the bucket list instead. totalRecords equals /businesses?countOnly=true for the same filter; how the buckets relate to it is documented on BusinessAggregateResponse. Kostet 1 Credit.
6314
6607
  *
6315
6608
  * @tags Businesses
6316
6609
  * @name V1BusinessesAggregateList
@@ -6369,7 +6662,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
6369
6662
  * @format int32
6370
6663
  */
6371
6664
  signerCount_lte?: number;
6372
- /** Filter by the compatibility inInsolvency boolean: true = classified open court evidence or an active MW/IW/AW/VW role; false also includes closed, absent and uncertain evidence. Inspect insolvencyStatus on each row; this is not the Insolvenzdatei. */
6665
+ /** Optional Firmenbuch evidence filter. Omit it for all companies. True includes a classified open court proceeding or an active MW/IW/AW/VW administrator role; an uncertain status can therefore still be true when separate open evidence remains. False includes closed evidence without an active role, no recorded evidence, and unclassified or otherwise uncertain evidence without a separate opening or active role. Absence of recorded evidence is not verified legal assurance that no proceeding exists. Inspect insolvencyStatus and insolvencySources on each row; this API does not read the Insolvenzdatei. */
6373
6666
  inInsolvency?: boolean;
6374
6667
  /** Sort by this key figure or by name. Same options as key figure filter keys. */
6375
6668
  orderBy?: "bilanz.AktivierteEigenleistungen" | "bilanz.AnlageVermoegen" | "bilanz.Bilanzgewinn" | "bilanz.BilanzSumme" | "bilanz.Eigenkapital" | "bilanz.EingefordertesStammkapital" | "bilanz.Finanzanlagen" | "bilanz.Forderungen" | "bilanz.ForderungenLieferungen" | "bilanz.Gewinnruecklagen" | "bilanz.ImmaterielleVermoegensgegenstaende" | "bilanz.Kapitalruecklagen" | "bilanz.KurzfristigeForderungen" | "bilanz.KurzfristigeVerbindlichkeiten" | "bilanz.LangfristigeForderungen" | "bilanz.LangfristigeVerbindlichkeiten" | "bilanz.LiquidesVermoegen" | "bilanz.PassiveRechnungsabgrenzungen" | "bilanz.Rechnungsabgrenzungen" | "bilanz.Rueckstellungen" | "bilanz.Sachanlagen" | "bilanz.Umlaufvermoegen" | "bilanz.Verbindlichkeiten" | "bilanz.VerbindlichkeitenLieferungen" | "bilanz.Vorraete" | "bilanz.Vortrag" | "bilanz.Wertpapiere" | "detailViews" | "employees" | "guv.Abschreibungen" | "guv.AufloesungGewinnruecklagen" | "guv.AufwendungenAusFinanzanlagen" | "guv.Bestandsveraenderung" | "guv.BetriebsErfolg" | "guv.ErgebnisVorSteuern" | "guv.ErtraegeAusBeteiligungen" | "guv.ErtraegeAusWertpapieren" | "guv.Finanzerfolg" | "guv.Jahresueberschuss" | "guv.Personalaufwand" | "guv.SonstigeBetrieblicheAufwendungen" | "guv.SonstigeBetrieblicheErtraege" | "guv.SonstigeZinsenUndAehnlicheErtraege" | "guv.SozialeAufwendungen" | "guv.Steueraufwand" | "guv.Umsatzerloese" | "guv.WarenUndMaterialeinkauf" | "guv.ZinsenUndAehnlicheAufwendungen" | "name" | "registeredSince" | "signerCount" | null;
@@ -6887,7 +7180,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
6887
7180
  "guv.ZinsenUndAehnlicheAufwendungen_lte"?: number | null;
6888
7181
  }, params?: RequestParams) => Promise<HttpResponse<BusinessAggregateResponse, ApiError | ProblemDetails>>;
6889
7182
  /**
6890
- * @description Counts for every value of every filter group at once — what a filter builder puts on its chips. Takes the same filters as GET /businesses and means them the same way; page, pageSize, orderBy, orderByDescending and countOnly are ignored. Faceted semantics: a group is counted with all *other* active filters applied but its own lifted, so a value's count answers "how many results if I also select this", and selecting one never empties its own group. totalRecords is the current result count, with every filter applied. Each group returns its top values (top, default 10) plus every value the request already filters on, marked selected — a "Mehr" expander is a second call for that one group with a larger top, e.g. ?groups=city&top=50. city and zipCode count a business once per distinct value, so those counts can sum above totalRecords. One caveat worth knowing before wiring a chip up: the city filter matches a substring, while a city facet key is a whole city name, so selecting "Wien" also keeps "Wien-Umgebung" and can return more than the chip promised. Every other group matches its key exactly. Every group costs its own count, so ask for the groups you are rendering rather than all ten; the answer is cacheable for a day and varies on the whole query string.
7183
+ * @description Counts for every value of every filter group at once — what a filter builder puts on its chips. Takes the same filters as GET /businesses and means them the same way; page, pageSize, orderBy, orderByDescending and countOnly are ignored. Faceted semantics: a group is counted with all *other* active filters applied but its own lifted, so a value's count answers "how many results if I also select this", and selecting one never empties its own group. totalRecords is the current result count, with every filter applied. Each group returns its top values (top, default 10) plus every value the request already filters on, marked selected — a "Mehr" expander is a second call for that one group with a larger top, e.g. ?groups=city&top=50. city and zipCode count a business once per distinct value, so those counts can sum above totalRecords. One caveat worth knowing before wiring a chip up: the city filter matches a substring, while a city facet key is a whole city name, so selecting "Wien" also keeps "Wien-Umgebung" and can return more than the chip promised. Every other group matches its key exactly. Every group costs its own count, so ask for the groups you are rendering rather than all ten; the answer is cacheable for a day and varies on the whole query string. Kostet 1 Credit.
6891
7184
  *
6892
7185
  * @tags Businesses
6893
7186
  * @name V1BusinessesFacetsList
@@ -6941,7 +7234,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
6941
7234
  * @format int32
6942
7235
  */
6943
7236
  signerCount_lte?: number;
6944
- /** Filter by the compatibility inInsolvency boolean: true = classified open court evidence or an active MW/IW/AW/VW role; false also includes closed, absent and uncertain evidence. Inspect insolvencyStatus on each row; this is not the Insolvenzdatei. */
7237
+ /** Optional Firmenbuch evidence filter. Omit it for all companies. True includes a classified open court proceeding or an active MW/IW/AW/VW administrator role; an uncertain status can therefore still be true when separate open evidence remains. False includes closed evidence without an active role, no recorded evidence, and unclassified or otherwise uncertain evidence without a separate opening or active role. Absence of recorded evidence is not verified legal assurance that no proceeding exists. Inspect insolvencyStatus and insolvencySources on each row; this API does not read the Insolvenzdatei. */
6945
7238
  inInsolvency?: boolean;
6946
7239
  /** Sort by this key figure or by name. Same options as key figure filter keys. */
6947
7240
  orderBy?: "bilanz.AktivierteEigenleistungen" | "bilanz.AnlageVermoegen" | "bilanz.Bilanzgewinn" | "bilanz.BilanzSumme" | "bilanz.Eigenkapital" | "bilanz.EingefordertesStammkapital" | "bilanz.Finanzanlagen" | "bilanz.Forderungen" | "bilanz.ForderungenLieferungen" | "bilanz.Gewinnruecklagen" | "bilanz.ImmaterielleVermoegensgegenstaende" | "bilanz.Kapitalruecklagen" | "bilanz.KurzfristigeForderungen" | "bilanz.KurzfristigeVerbindlichkeiten" | "bilanz.LangfristigeForderungen" | "bilanz.LangfristigeVerbindlichkeiten" | "bilanz.LiquidesVermoegen" | "bilanz.PassiveRechnungsabgrenzungen" | "bilanz.Rechnungsabgrenzungen" | "bilanz.Rueckstellungen" | "bilanz.Sachanlagen" | "bilanz.Umlaufvermoegen" | "bilanz.Verbindlichkeiten" | "bilanz.VerbindlichkeitenLieferungen" | "bilanz.Vorraete" | "bilanz.Vortrag" | "bilanz.Wertpapiere" | "detailViews" | "employees" | "guv.Abschreibungen" | "guv.AufloesungGewinnruecklagen" | "guv.AufwendungenAusFinanzanlagen" | "guv.Bestandsveraenderung" | "guv.BetriebsErfolg" | "guv.ErgebnisVorSteuern" | "guv.ErtraegeAusBeteiligungen" | "guv.ErtraegeAusWertpapieren" | "guv.Finanzerfolg" | "guv.Jahresueberschuss" | "guv.Personalaufwand" | "guv.SonstigeBetrieblicheAufwendungen" | "guv.SonstigeBetrieblicheErtraege" | "guv.SonstigeZinsenUndAehnlicheErtraege" | "guv.SozialeAufwendungen" | "guv.Steueraufwand" | "guv.Umsatzerloese" | "guv.WarenUndMaterialeinkauf" | "guv.ZinsenUndAehnlicheAufwendungen" | "name" | "registeredSince" | "signerCount" | null;
@@ -7459,7 +7752,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
7459
7752
  "guv.ZinsenUndAehnlicheAufwendungen_lte"?: number | null;
7460
7753
  }, params?: RequestParams) => Promise<HttpResponse<BusinessFacetsResponse, ApiError | ProblemDetails>>;
7461
7754
  /**
7462
- * @description The single largest company of every place in the viewport, by one metric — what a map draws as one pin per place instead of every dot in the box. groupBy picks the place: state (the nine Bundesländer, the default) or city (the towns in view). metric is one of detailViews (Aufrufe), bilanzSumme or employees (Mitarbeiter). minLat, maxLat, minLng and maxLng are required for groupBy=city and ignored for groupBy=state: the nine Bundesländer are the same nine wherever the map is looking, so that call takes no viewport at all — which is what lets one URL serve every pan and actually be cached, here and in the browser. Every /businesses filter additionally applies and means exactly what it means there; page, pageSize, orderBy, orderByDescending and countOnly are ignored. groupLabel is the place's name — "Tirol", "Innsbruck" — and is what the pin's card is headed with. A company carrying no value for the metric is skipped rather than counted as 0, so a place holding only such companies — like an empty one — returns nothing at all and the array is shorter than the number of places. Each item carries everything a popover card shows, so no second call per pin is needed. groupBy=city answers at most 16 pins, the biggest of the towns in view; the rest is what zooming in is for. Bundesländer are derived from the PLZ of the Geschäftsanschrift, the same rule the state filter on GET /businesses uses, because the Firmenbuch carries no Land. A company that is the biggest of two places in view wins both, each pin carrying an address that is actually on screen and in the town it won. Cached for an hour rather than the day GET /businesses gets: view counts move.
7755
+ * @description The single largest company of every place in the viewport, by one metric — what a map draws as one pin per place instead of every dot in the box. groupBy picks the place: state (the nine Bundesländer, the default) or city (the towns in view). metric is one of detailViews (Aufrufe), bilanzSumme or employees (Mitarbeiter). minLat, maxLat, minLng and maxLng are required for groupBy=city and ignored for groupBy=state: the nine Bundesländer are the same nine wherever the map is looking, so that call takes no viewport at all — which is what lets one URL serve every pan and actually be cached, here and in the browser. Every /businesses filter additionally applies and means exactly what it means there; page, pageSize, orderBy, orderByDescending and countOnly are ignored. groupLabel is the place's name — "Tirol", "Innsbruck" — and is what the pin's card is headed with. A company carrying no value for the metric is skipped rather than counted as 0, so a place holding only such companies — like an empty one — returns nothing at all and the array is shorter than the number of places. Each item carries everything a popover card shows, so no second call per pin is needed. groupBy=city answers at most 16 pins, the biggest of the towns in view; the rest is what zooming in is for. Bundesländer are derived from the PLZ of the Geschäftsanschrift, the same rule the state filter on GET /businesses uses, because the Firmenbuch carries no Land. A company that is the biggest of two places in view wins both, each pin carrying an address that is actually on screen and in the town it won. Cached for an hour rather than the day GET /businesses gets: view counts move. Kostet 1 Credit.
7463
7756
  *
7464
7757
  * @tags Businesses
7465
7758
  * @name V1BusinessesMapTopList
@@ -7508,7 +7801,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
7508
7801
  * @format int32
7509
7802
  */
7510
7803
  signerCount_lte?: number;
7511
- /** Filter by the compatibility inInsolvency boolean: true = classified open court evidence or an active MW/IW/AW/VW role; false also includes closed, absent and uncertain evidence. Inspect insolvencyStatus on each row; this is not the Insolvenzdatei. */
7804
+ /** Optional Firmenbuch evidence filter. Omit it for all companies. True includes a classified open court proceeding or an active MW/IW/AW/VW administrator role; an uncertain status can therefore still be true when separate open evidence remains. False includes closed evidence without an active role, no recorded evidence, and unclassified or otherwise uncertain evidence without a separate opening or active role. Absence of recorded evidence is not verified legal assurance that no proceeding exists. Inspect insolvencyStatus and insolvencySources on each row; this API does not read the Insolvenzdatei. */
7512
7805
  inInsolvency?: boolean;
7513
7806
  /** Sort by this key figure or by name. Same options as key figure filter keys. */
7514
7807
  orderBy?: "bilanz.AktivierteEigenleistungen" | "bilanz.AnlageVermoegen" | "bilanz.Bilanzgewinn" | "bilanz.BilanzSumme" | "bilanz.Eigenkapital" | "bilanz.EingefordertesStammkapital" | "bilanz.Finanzanlagen" | "bilanz.Forderungen" | "bilanz.ForderungenLieferungen" | "bilanz.Gewinnruecklagen" | "bilanz.ImmaterielleVermoegensgegenstaende" | "bilanz.Kapitalruecklagen" | "bilanz.KurzfristigeForderungen" | "bilanz.KurzfristigeVerbindlichkeiten" | "bilanz.LangfristigeForderungen" | "bilanz.LangfristigeVerbindlichkeiten" | "bilanz.LiquidesVermoegen" | "bilanz.PassiveRechnungsabgrenzungen" | "bilanz.Rechnungsabgrenzungen" | "bilanz.Rueckstellungen" | "bilanz.Sachanlagen" | "bilanz.Umlaufvermoegen" | "bilanz.Verbindlichkeiten" | "bilanz.VerbindlichkeitenLieferungen" | "bilanz.Vorraete" | "bilanz.Vortrag" | "bilanz.Wertpapiere" | "detailViews" | "employees" | "guv.Abschreibungen" | "guv.AufloesungGewinnruecklagen" | "guv.AufwendungenAusFinanzanlagen" | "guv.Bestandsveraenderung" | "guv.BetriebsErfolg" | "guv.ErgebnisVorSteuern" | "guv.ErtraegeAusBeteiligungen" | "guv.ErtraegeAusWertpapieren" | "guv.Finanzerfolg" | "guv.Jahresueberschuss" | "guv.Personalaufwand" | "guv.SonstigeBetrieblicheAufwendungen" | "guv.SonstigeBetrieblicheErtraege" | "guv.SonstigeZinsenUndAehnlicheErtraege" | "guv.SozialeAufwendungen" | "guv.Steueraufwand" | "guv.Umsatzerloese" | "guv.WarenUndMaterialeinkauf" | "guv.ZinsenUndAehnlicheAufwendungen" | "name" | "registeredSince" | "signerCount" | null;
@@ -8026,7 +8319,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
8026
8319
  "guv.ZinsenUndAehnlicheAufwendungen_lte"?: number | null;
8027
8320
  }, params?: RequestParams) => Promise<HttpResponse<BusinessMapTopItem[], ApiError | ProblemDetails>>;
8028
8321
  /**
8029
- * @description Active businesses similar to the given one (same OeNACE branch, same region preferred).
8322
+ * @description Active businesses similar to the given one (same OeNACE branch, same region preferred). Kostet 3 Credits.
8030
8323
  *
8031
8324
  * @tags Businesses
8032
8325
  * @name V1BusinessesSimilarList
@@ -8036,7 +8329,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
8036
8329
  */
8037
8330
  v1BusinessesSimilarList: (fnr: string, params?: RequestParams) => Promise<HttpResponse<BusinessListResponse[], ApiError | ProblemDetails>>;
8038
8331
  /**
8039
- * @description Returns the whole Firmenakte of one company: master data, addresses, people, GISA licences, Edikte, documents and the parsed annual accounts. fnr is matched exactly against the stored, normalised Firmenbuchnummer — lower case, no spaces, no leading zeros and no "FN" prefix, e.g. 34853f. Nothing is normalised on the way in, so "FN 34853 f" answers 404 rather than the company. 404 also means the company is not in the dataset yet.
8332
+ * @description Returns the whole Firmenakte of one company: master data, addresses, people, GISA licences, Edikte, documents and the parsed annual accounts. fnr is matched exactly against the stored, normalised Firmenbuchnummer — lower case, no spaces, no leading zeros and no "FN" prefix, e.g. 34853f. Nothing is normalised on the way in, so "FN 34853 f" answers 404 rather than the company. 404 also means the company is not in the dataset yet. Kostet 1 Credit.
8040
8333
  *
8041
8334
  * @tags Businesses
8042
8335
  * @name V1BusinessesDetail
@@ -8046,7 +8339,27 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
8046
8339
  */
8047
8340
  v1BusinessesDetail: (fnr: string, params?: RequestParams) => Promise<HttpResponse<BusinessDetailResponse, ApiError | ProblemDetails>>;
8048
8341
  /**
8049
- * @description Returns one Firmenbuch change by id. The id is the shared change id from GET /globalchanges, so an id that exists but whose changeType is not "business" answers 404 here.
8342
+ * @description Every parsed Jahresabschluss of one company, one entry per calendar year, newest first. The Firmenakte itself (GET /businesses/{fnr}) carries only the last five years. 404 only where the company itself is unknown, exactly as on GET /businesses/{fnr}. Kostet 1 Credit.
8343
+ *
8344
+ * @tags Businesses
8345
+ * @name V1BusinessesJahresabschluesseList
8346
+ * @summary Company annual accounts
8347
+ * @request GET:/api/v1/businesses/{fnr}/jahresabschluesse
8348
+ * @secure
8349
+ */
8350
+ v1BusinessesJahresabschluesseList: (fnr: string, params?: RequestParams) => Promise<HttpResponse<ParsedJahresabschlussDto[], ApiError | ProblemDetails>>;
8351
+ /**
8352
+ * @description The state aid published for one company by the Transparenzportal des BMF (§ 40k TDBG), newest year first and the largest amount first within a year, plus a summary of count, sum, the years and the freshest Stichtag. Published are Leistungen from 1.500 € per calendar year to non-natural persons; the COVID-19 reports start at 10.000 €. So an empty list means "nothing published for this company", never "this company received nothing" — and a company the portal names but that could not be matched to a Firmenbuchnummer is not here either. 404 only where the company itself is unknown, exactly as on GET /businesses/{fnr}. Kostet 1 Credit.
8353
+ *
8354
+ * @tags Businesses
8355
+ * @name V1BusinessesFoerderungenList
8356
+ * @summary Company Foerderungen
8357
+ * @request GET:/api/v1/businesses/{fnr}/foerderungen
8358
+ * @secure
8359
+ */
8360
+ v1BusinessesFoerderungenList: (fnr: string, params?: RequestParams) => Promise<HttpResponse<BusinessFoerderungenResponse, ApiError | ProblemDetails>>;
8361
+ /**
8362
+ * @description Returns one Firmenbuch change by id. The id is the shared change id from GET /globalchanges, so an id that exists but whose changeType is not "business" answers 404 here. Kostet 1 Credit.
8050
8363
  *
8051
8364
  * @tags Businesses
8052
8365
  * @name V1BusinessesChangesDetail
@@ -8056,7 +8369,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
8056
8369
  */
8057
8370
  v1BusinessesChangesDetail: (id: number, params?: RequestParams) => Promise<HttpResponse<BusinessChange, ApiError | ProblemDetails>>;
8058
8371
  /**
8059
- * @description Feed of Firmenbuch changes — one entry per new legal record (Eintragung). Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on changedDate — so a back-dated entry is not missed — and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss one resumes from the previous poll's watermark and de-duplicates by id. fnr is normalised before matching — trimmed, spaces and leading zeros removed, case left alone — so 034853 f and 34853f are the same company, exactly as on GET /businesses. Use GET /globalchanges for the same feed across all four registers.
8372
+ * @description Feed of Firmenbuch changes — one entry per new legal record (Eintragung). Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on changedDate — so a back-dated entry is not missed — and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss one resumes from the previous poll's watermark and de-duplicates by id. fnr is normalised before matching — trimmed, spaces and leading zeros removed, case left alone — so 034853 f and 34853f are the same company, exactly as on GET /businesses. Use GET /globalchanges for the same feed across all four registers. Kostet 1 Credit.
8060
8373
  *
8061
8374
  * @tags Businesses
8062
8375
  * @name V1BusinessesChangesList
@@ -8093,7 +8406,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
8093
8406
  pageSize?: number;
8094
8407
  }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfBusinessChange, ApiError | ProblemDetails>>;
8095
8408
  /**
8096
- * @description Returns all assignment functions (code/text lookup) for display. Cached 24h.
8409
+ * @description Returns all assignment functions (code/text lookup) for display. Cached 24h. Kostet 1 Credit.
8097
8410
  *
8098
8411
  * @tags AssignmentFunctions
8099
8412
  * @name V1AssignmentfunctionsList
@@ -8103,7 +8416,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
8103
8416
  */
8104
8417
  v1AssignmentfunctionsList: (params?: RequestParams) => Promise<HttpResponse<AssignmentFunctionItemResponse[], ApiError | ProblemDetails>>;
8105
8418
  /**
8106
- * @description Returns unique City+ZipCode combinations from addresses with pagination and optional search.
8419
+ * @description Returns unique City+ZipCode combinations from addresses with pagination and optional search. Kostet 1 Credit.
8107
8420
  *
8108
8421
  * @tags Addresses
8109
8422
  * @name V1AddressesLocationsList
@@ -8129,7 +8442,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
8129
8442
  pageSize?: number;
8130
8443
  }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfAddressLocationResponse, ApiError | ProblemDetails>>;
8131
8444
  /**
8132
- * @description Returns unique cities from addresses with pagination and optional search.
8445
+ * @description Returns unique cities from addresses with pagination and optional search. Kostet 1 Credit.
8133
8446
  *
8134
8447
  * @tags Addresses
8135
8448
  * @name V1AddressesCitiesList
@@ -8155,7 +8468,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
8155
8468
  pageSize?: number;
8156
8469
  }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfCityResponse, ApiError | ProblemDetails>>;
8157
8470
  /**
8158
- * @description Ranks cities and City+ZipCode combinations against one term and answers the best few of both, as one ranking split into two lists — what a location filter's type-ahead needs, where /addresses/locations and /addresses/cities are the paged catalogues behind it. Ordered by where the term sits in the label, then by the shorter label, then by company count, so "wien" answers Wien before Wiener Neustadt and before every 1xxx ZIP that carries it. A term shorter than two characters is ignored and the biggest groups come back instead. top caps both lists together, not each.
8471
+ * @description Ranks cities and City+ZipCode combinations against one term and answers the best few of both, as one ranking split into two lists — what a location filter's type-ahead needs, where /addresses/locations and /addresses/cities are the paged catalogues behind it. Ordered by where the term sits in the label, then by the shorter label, then by company count, so "wien" answers Wien before Wiener Neustadt and before every 1xxx ZIP that carries it. A term shorter than two characters is ignored and the biggest groups come back instead. top caps both lists together, not each. Kostet 1 Credit.
8159
8472
  *
8160
8473
  * @tags Addresses
8161
8474
  * @name V1AddressesSuggestList
@@ -8173,7 +8486,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
8173
8486
  top?: number;
8174
8487
  }, params?: RequestParams) => Promise<HttpResponse<LocationSuggestionsResponse, ApiError | ProblemDetails>>;
8175
8488
  /**
8176
- * @description Returns unique zip codes from addresses with pagination and optional search.
8489
+ * @description Returns unique zip codes from addresses with pagination and optional search. Kostet 1 Credit.
8177
8490
  *
8178
8491
  * @tags Addresses
8179
8492
  * @name V1AddressesZipcodesList