@firmenakte/api-client 2.9.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. */
@@ -335,6 +337,8 @@ export interface BusinessDetailResponse {
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,6 +395,31 @@ export interface BusinessFacetValue {
391
395
  /** True when the request already filters this group on this value. */
392
396
  selected?: boolean;
393
397
  }
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
+ }
394
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. */
@@ -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 */
@@ -1202,6 +1325,31 @@ export interface PagedResponseOfEdiktChange {
1202
1325
  totalPages?: number;
1203
1326
  }
1204
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. */
1205
1353
  export interface PagedResponseOfGisaChange {
1206
1354
  /** The rows on this page. Empty when the page is past the end, or when countOnly was requested. */
1207
1355
  data: GisaChange[];
@@ -1634,7 +1782,7 @@ export interface ZipCodeResponse {
1634
1782
  }
1635
1783
  export declare namespace Api {
1636
1784
  /**
1637
- * @description Every saved Abfrage of the calling account, newest first.
1785
+ * @description Every saved Abfrage of the calling account, newest first. Kostet 1 Credit.
1638
1786
  * @tags Queries
1639
1787
  * @name V1QueriesList
1640
1788
  * @summary Your Abfragen
@@ -1649,7 +1797,7 @@ export declare namespace Api {
1649
1797
  type ResponseBody = QueryResponse[];
1650
1798
  }
1651
1799
  /**
1652
- * @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.
1653
1801
  * @tags Queries
1654
1802
  * @name V1QueriesCreate
1655
1803
  * @summary Save an Abfrage
@@ -1664,7 +1812,7 @@ export declare namespace Api {
1664
1812
  type ResponseBody = QueryResponse;
1665
1813
  }
1666
1814
  /**
1667
- * @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.
1668
1816
  * @tags Queries
1669
1817
  * @name V1QueriesDetail
1670
1818
  * @summary One Abfrage
@@ -1681,7 +1829,7 @@ export declare namespace Api {
1681
1829
  type ResponseBody = QueryResponse;
1682
1830
  }
1683
1831
  /**
1684
- * @description Removes one saved Abfrage from the Suchverlauf.
1832
+ * @description Removes one saved Abfrage from the Suchverlauf. Kostet 1 Credit.
1685
1833
  * @tags Queries
1686
1834
  * @name V1QueriesDelete
1687
1835
  * @summary Delete an Abfrage
@@ -1698,7 +1846,7 @@ export declare namespace Api {
1698
1846
  type ResponseBody = void;
1699
1847
  }
1700
1848
  /**
1701
- * @description Deletes every saved Abfrage of the calling account.
1849
+ * @description Deletes every saved Abfrage of the calling account. Kostet 1 Credit.
1702
1850
  * @tags Queries
1703
1851
  * @name V1QueriesAllDelete
1704
1852
  * @summary Clear the Suchverlauf
@@ -1713,7 +1861,7 @@ export declare namespace Api {
1713
1861
  type ResponseBody = void;
1714
1862
  }
1715
1863
  /**
1716
- * @description Every Liste of the calling account, oldest first.
1864
+ * @description Every Liste of the calling account, oldest first. Kostet 1 Credit.
1717
1865
  * @tags Lists
1718
1866
  * @name V1ListsList
1719
1867
  * @summary Your Listen
@@ -1728,7 +1876,7 @@ export declare namespace Api {
1728
1876
  type ResponseBody = ListResponse[];
1729
1877
  }
1730
1878
  /**
1731
- * @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.
1732
1880
  * @tags Lists
1733
1881
  * @name V1ListsCreate
1734
1882
  * @summary Create a Liste
@@ -1743,7 +1891,7 @@ export declare namespace Api {
1743
1891
  type ResponseBody = ListResponse;
1744
1892
  }
1745
1893
  /**
1746
- * @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.
1747
1895
  * @tags Lists
1748
1896
  * @name V1ListsDetail
1749
1897
  * @summary One Liste
@@ -1760,7 +1908,7 @@ export declare namespace Api {
1760
1908
  type ResponseBody = ListResponse;
1761
1909
  }
1762
1910
  /**
1763
- * @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.
1764
1912
  * @tags Lists
1765
1913
  * @name V1ListsPartialUpdate
1766
1914
  * @summary Update a Liste
@@ -1777,7 +1925,7 @@ export declare namespace Api {
1777
1925
  type ResponseBody = ListResponse;
1778
1926
  }
1779
1927
  /**
1780
- * @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.
1781
1929
  * @tags Lists
1782
1930
  * @name V1ListsDelete
1783
1931
  * @summary Delete a Liste
@@ -1794,7 +1942,7 @@ export declare namespace Api {
1794
1942
  type ResponseBody = void;
1795
1943
  }
1796
1944
  /**
1797
- * @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.
1798
1946
  * @tags Lists
1799
1947
  * @name V1ListsAddCreate
1800
1948
  * @summary Add companies to a Liste
@@ -1811,7 +1959,7 @@ export declare namespace Api {
1811
1959
  type ResponseBody = ListResponse;
1812
1960
  }
1813
1961
  /**
1814
- * @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.
1815
1963
  * @tags Lists
1816
1964
  * @name V1ListsRemoveCreate
1817
1965
  * @summary Remove companies from a Liste
@@ -1828,7 +1976,7 @@ export declare namespace Api {
1828
1976
  type ResponseBody = ListResponse;
1829
1977
  }
1830
1978
  /**
1831
- * @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.
1832
1980
  * @tags Exports
1833
1981
  * @name V1ExportsBusinessesCreate
1834
1982
  * @summary Export companies
@@ -1843,7 +1991,7 @@ export declare namespace Api {
1843
1991
  type ResponseBody = FileResult;
1844
1992
  }
1845
1993
  /**
1846
- * @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.
1847
1995
  * @tags Trades
1848
1996
  * @name V1TradesDocumentsDetail
1849
1997
  * @summary GISA PDF extract
@@ -1866,7 +2014,7 @@ export declare namespace Api {
1866
2014
  type ResponseBody = Blob;
1867
2015
  }
1868
2016
  /**
1869
- * @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.
1870
2018
  * @tags Trades
1871
2019
  * @name V1TradesList
1872
2020
  * @summary GISA trade catalog
@@ -1899,7 +2047,7 @@ export declare namespace Api {
1899
2047
  type ResponseBody = PagedResponseOfTradeCatalogItemResponse;
1900
2048
  }
1901
2049
  /**
1902
- * @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.
1903
2051
  * @tags Trades
1904
2052
  * @name V1TradesLicensesList
1905
2053
  * @summary Licenses by trade
@@ -1932,7 +2080,7 @@ export declare namespace Api {
1932
2080
  type ResponseBody = PagedResponseOfGisaLicense;
1933
2081
  }
1934
2082
  /**
1935
- * @description Returns all licenses for a specific company (FNR).
2083
+ * @description Returns all licenses for a specific company (FNR). Kostet 1 Credit.
1936
2084
  * @tags Trades
1937
2085
  * @name V1TradesCompanyDetail
1938
2086
  * @summary Company GISA licenses
@@ -1949,7 +2097,7 @@ export declare namespace Api {
1949
2097
  type ResponseBody = GisaLicense[];
1950
2098
  }
1951
2099
  /**
1952
- * @description Returns a single GISA change by id.
2100
+ * @description Returns a single GISA change by id. Kostet 1 Credit.
1953
2101
  * @tags Trades
1954
2102
  * @name V1TradesChangesDetail
1955
2103
  * @summary GISA change by id
@@ -1967,7 +2115,7 @@ export declare namespace Api {
1967
2115
  type ResponseBody = GisaChange;
1968
2116
  }
1969
2117
  /**
1970
- * @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.
1971
2119
  * @tags Trades
1972
2120
  * @name V1TradesChangesList
1973
2121
  * @summary GISA change feed
@@ -2009,7 +2157,7 @@ export declare namespace Api {
2009
2157
  type ResponseBody = PagedResponseOfGisaChange;
2010
2158
  }
2011
2159
  /**
2012
- * @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.
2013
2161
  * @tags Search
2014
2162
  * @name V1SearchList
2015
2163
  * @summary Companies and people in one ranked list
@@ -2034,7 +2182,7 @@ export declare namespace Api {
2034
2182
  type ResponseBody = SearchResponse;
2035
2183
  }
2036
2184
  /**
2037
- * @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.
2038
2186
  * @tags People
2039
2187
  * @name V1PeopleNamesList
2040
2188
  * @summary Person name index
@@ -2049,7 +2197,7 @@ export declare namespace Api {
2049
2197
  type ResponseBody = PersonNameItem[];
2050
2198
  }
2051
2199
  /**
2052
- * @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.
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.
2053
2201
  * @tags People
2054
2202
  * @name V1PeopleList
2055
2203
  * @summary People search
@@ -2101,7 +2249,7 @@ export declare namespace Api {
2101
2249
  type ResponseBody = PagedResponseOfPerson;
2102
2250
  }
2103
2251
  /**
2104
- * @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.
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.
2105
2253
  * @tags People
2106
2254
  * @name V1PeopleDetail
2107
2255
  * @summary Person detail
@@ -2118,7 +2266,7 @@ export declare namespace Api {
2118
2266
  type ResponseBody = PersonDetailResponse;
2119
2267
  }
2120
2268
  /**
2121
- * @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.
2122
2270
  * @tags Oenace
2123
2271
  * @name V1OenaceList
2124
2272
  * @summary OeNACE classification catalog
@@ -2156,7 +2304,7 @@ export declare namespace Api {
2156
2304
  type ResponseBody = PagedResponseOfOenaceCatalogItemResponse;
2157
2305
  }
2158
2306
  /**
2159
- * @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.
2160
2308
  * @tags LegalForms
2161
2309
  * @name V1LegalformsList
2162
2310
  * @summary Legal form catalog
@@ -2188,7 +2336,7 @@ export declare namespace Api {
2188
2336
  type ResponseBody = PagedResponseOfLegalFormCatalogItemResponse;
2189
2337
  }
2190
2338
  /**
2191
- * @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.
2192
2340
  * @tags Graph
2193
2341
  * @name V1GraphList
2194
2342
  * @summary Relationship graph
@@ -2208,7 +2356,7 @@ export declare namespace Api {
2208
2356
  type ResponseBody = GraphResponse;
2209
2357
  }
2210
2358
  /**
2211
- * @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.
2212
2360
  * @tags GlobalChanges
2213
2361
  * @name V1GlobalchangesList
2214
2362
  * @summary All-register change feed
@@ -2250,7 +2398,7 @@ export declare namespace Api {
2250
2398
  type ResponseBody = PagedResponseOfGlobalChange;
2251
2399
  }
2252
2400
  /**
2253
- * @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.
2254
2402
  * @tags GlobalChanges
2255
2403
  * @name V1GlobalchangesAggregatedList
2256
2404
  * @summary Aggregated watchlist changes
@@ -2279,7 +2427,7 @@ export declare namespace Api {
2279
2427
  type ResponseBody = AggregatedChangesResponse;
2280
2428
  }
2281
2429
  /**
2282
- * @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.
2283
2431
  * @tags GlobalChanges
2284
2432
  * @name V1GlobalchangesDetail
2285
2433
  * @summary Change by id
@@ -2297,7 +2445,67 @@ export declare namespace Api {
2297
2445
  type ResponseBody = ChangeDetailResponse;
2298
2446
  }
2299
2447
  /**
2300
- * @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.
2301
2509
  * @tags Edikte
2302
2510
  * @name V1EdikteChangesDetail
2303
2511
  * @summary Edikt change by id
@@ -2315,7 +2523,7 @@ export declare namespace Api {
2315
2523
  type ResponseBody = EdiktChange;
2316
2524
  }
2317
2525
  /**
2318
- * @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.
2319
2527
  * @tags Edikte
2320
2528
  * @name V1EdikteChangesList
2321
2529
  * @summary Ediktsdatei change feed
@@ -2357,7 +2565,7 @@ export declare namespace Api {
2357
2565
  type ResponseBody = PagedResponseOfEdiktChange;
2358
2566
  }
2359
2567
  /**
2360
- * @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.
2361
2569
  * @tags Documents
2362
2570
  * @name V1DocumentsDownloadDetail
2363
2571
  * @summary Firmenbuch document download
@@ -2374,7 +2582,7 @@ export declare namespace Api {
2374
2582
  type ResponseBody = void;
2375
2583
  }
2376
2584
  /**
2377
- * @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.
2378
2586
  * @tags Documents
2379
2587
  * @name V1DocumentsChangesDetail
2380
2588
  * @summary Document change by id
@@ -2392,7 +2600,7 @@ export declare namespace Api {
2392
2600
  type ResponseBody = DocumentChange;
2393
2601
  }
2394
2602
  /**
2395
- * @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.
2396
2604
  * @tags Documents
2397
2605
  * @name V1DocumentsChangesList
2398
2606
  * @summary Document change feed
@@ -2434,7 +2642,7 @@ export declare namespace Api {
2434
2642
  type ResponseBody = PagedResponseOfDocumentChange;
2435
2643
  }
2436
2644
  /**
2437
- * @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.
2438
2646
  * @tags Courts
2439
2647
  * @name V1CourtsList
2440
2648
  * @summary Court catalog
@@ -2466,7 +2674,7 @@ export declare namespace Api {
2466
2674
  type ResponseBody = PagedResponseOfCourtCatalogItemResponse;
2467
2675
  }
2468
2676
  /**
2469
- * @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.
2470
2678
  * @tags Businesses
2471
2679
  * @name V1BusinessesResolveNamesCreate
2472
2680
  * @summary Name to FNR resolution
@@ -2481,7 +2689,7 @@ export declare namespace Api {
2481
2689
  type ResponseBody = ResolveBusinessNamesResponse;
2482
2690
  }
2483
2691
  /**
2484
- * @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.
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.
2485
2693
  * @tags Businesses
2486
2694
  * @name V1BusinessesList
2487
2695
  * @summary Company search
@@ -3049,7 +3257,7 @@ export declare namespace Api {
3049
3257
  type ResponseBody = PagedResponseOfBusinessListResponse;
3050
3258
  }
3051
3259
  /**
3052
- * @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.
3053
3261
  * @tags Businesses
3054
3262
  * @name V1BusinessesNamesList
3055
3263
  * @summary Company name index
@@ -3064,7 +3272,7 @@ export declare namespace Api {
3064
3272
  type ResponseBody = BusinessNameItem[];
3065
3273
  }
3066
3274
  /**
3067
- * @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.
3068
3276
  * @tags Businesses
3069
3277
  * @name V1BusinessesCountList
3070
3278
  * @summary Company count
@@ -3079,7 +3287,7 @@ export declare namespace Api {
3079
3287
  type ResponseBody = number;
3080
3288
  }
3081
3289
  /**
3082
- * @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.
3083
3291
  * @tags Businesses
3084
3292
  * @name V1BusinessesAggregateList
3085
3293
  * @summary Grouped company counts
@@ -3661,7 +3869,7 @@ export declare namespace Api {
3661
3869
  type ResponseBody = BusinessAggregateResponse;
3662
3870
  }
3663
3871
  /**
3664
- * @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.
3665
3873
  * @tags Businesses
3666
3874
  * @name V1BusinessesFacetsList
3667
3875
  * @summary Filter-builder facet counts
@@ -4238,7 +4446,7 @@ export declare namespace Api {
4238
4446
  type ResponseBody = BusinessFacetsResponse;
4239
4447
  }
4240
4448
  /**
4241
- * @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.
4242
4450
  * @tags Businesses
4243
4451
  * @name V1BusinessesMapTopList
4244
4452
  * @summary Top company per Bundesland or city
@@ -4810,7 +5018,7 @@ export declare namespace Api {
4810
5018
  type ResponseBody = BusinessMapTopItem[];
4811
5019
  }
4812
5020
  /**
4813
- * @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.
4814
5022
  * @tags Businesses
4815
5023
  * @name V1BusinessesSimilarList
4816
5024
  * @summary Similar companies
@@ -4827,7 +5035,7 @@ export declare namespace Api {
4827
5035
  type ResponseBody = BusinessListResponse[];
4828
5036
  }
4829
5037
  /**
4830
- * @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.
4831
5039
  * @tags Businesses
4832
5040
  * @name V1BusinessesDetail
4833
5041
  * @summary Company Firmenakte
@@ -4844,7 +5052,7 @@ export declare namespace Api {
4844
5052
  type ResponseBody = BusinessDetailResponse;
4845
5053
  }
4846
5054
  /**
4847
- * @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}.
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.
4848
5056
  * @tags Businesses
4849
5057
  * @name V1BusinessesJahresabschluesseList
4850
5058
  * @summary Company annual accounts
@@ -4861,7 +5069,24 @@ export declare namespace Api {
4861
5069
  type ResponseBody = ParsedJahresabschlussDto[];
4862
5070
  }
4863
5071
  /**
4864
- * @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.
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.
4865
5090
  * @tags Businesses
4866
5091
  * @name V1BusinessesChangesDetail
4867
5092
  * @summary Firmenbuch change by id
@@ -4879,7 +5104,7 @@ export declare namespace Api {
4879
5104
  type ResponseBody = BusinessChange;
4880
5105
  }
4881
5106
  /**
4882
- * @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.
4883
5108
  * @tags Businesses
4884
5109
  * @name V1BusinessesChangesList
4885
5110
  * @summary Firmenbuch change feed
@@ -4921,7 +5146,7 @@ export declare namespace Api {
4921
5146
  type ResponseBody = PagedResponseOfBusinessChange;
4922
5147
  }
4923
5148
  /**
4924
- * @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.
4925
5150
  * @tags AssignmentFunctions
4926
5151
  * @name V1AssignmentfunctionsList
4927
5152
  * @summary Assignment function catalog
@@ -4936,7 +5161,7 @@ export declare namespace Api {
4936
5161
  type ResponseBody = AssignmentFunctionItemResponse[];
4937
5162
  }
4938
5163
  /**
4939
- * @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.
4940
5165
  * @tags Addresses
4941
5166
  * @name V1AddressesLocationsList
4942
5167
  * @summary City and ZIP combinations
@@ -4967,7 +5192,7 @@ export declare namespace Api {
4967
5192
  type ResponseBody = PagedResponseOfAddressLocationResponse;
4968
5193
  }
4969
5194
  /**
4970
- * @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.
4971
5196
  * @tags Addresses
4972
5197
  * @name V1AddressesCitiesList
4973
5198
  * @summary Cities
@@ -4998,7 +5223,7 @@ export declare namespace Api {
4998
5223
  type ResponseBody = PagedResponseOfCityResponse;
4999
5224
  }
5000
5225
  /**
5001
- * @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.
5002
5227
  * @tags Addresses
5003
5228
  * @name V1AddressesSuggestList
5004
5229
  * @summary Location autocomplete
@@ -5021,7 +5246,7 @@ export declare namespace Api {
5021
5246
  type ResponseBody = LocationSuggestionsResponse;
5022
5247
  }
5023
5248
  /**
5024
- * @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.
5025
5250
  * @tags Addresses
5026
5251
  * @name V1AddressesZipcodesList
5027
5252
  * @summary ZIP codes
@@ -5119,7 +5344,7 @@ export declare class HttpClient<SecurityDataType = unknown> {
5119
5344
  export declare class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDataType> {
5120
5345
  api: {
5121
5346
  /**
5122
- * @description Every saved Abfrage of the calling account, newest first.
5347
+ * @description Every saved Abfrage of the calling account, newest first. Kostet 1 Credit.
5123
5348
  *
5124
5349
  * @tags Queries
5125
5350
  * @name V1QueriesList
@@ -5129,7 +5354,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5129
5354
  */
5130
5355
  v1QueriesList: (params?: RequestParams) => Promise<HttpResponse<QueryResponse[], ApiError | ProblemDetails>>;
5131
5356
  /**
5132
- * @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.
5133
5358
  *
5134
5359
  * @tags Queries
5135
5360
  * @name V1QueriesCreate
@@ -5139,7 +5364,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5139
5364
  */
5140
5365
  v1QueriesCreate: (data: SaveQueryRequest, params?: RequestParams) => Promise<HttpResponse<QueryResponse, ApiError | ProblemDetails>>;
5141
5366
  /**
5142
- * @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.
5143
5368
  *
5144
5369
  * @tags Queries
5145
5370
  * @name V1QueriesDetail
@@ -5149,7 +5374,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5149
5374
  */
5150
5375
  v1QueriesDetail: (id: string, params?: RequestParams) => Promise<HttpResponse<QueryResponse, ApiError | ProblemDetails>>;
5151
5376
  /**
5152
- * @description Removes one saved Abfrage from the Suchverlauf.
5377
+ * @description Removes one saved Abfrage from the Suchverlauf. Kostet 1 Credit.
5153
5378
  *
5154
5379
  * @tags Queries
5155
5380
  * @name V1QueriesDelete
@@ -5159,7 +5384,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5159
5384
  */
5160
5385
  v1QueriesDelete: (id: string, params?: RequestParams) => Promise<HttpResponse<void, ApiError | ProblemDetails>>;
5161
5386
  /**
5162
- * @description Deletes every saved Abfrage of the calling account.
5387
+ * @description Deletes every saved Abfrage of the calling account. Kostet 1 Credit.
5163
5388
  *
5164
5389
  * @tags Queries
5165
5390
  * @name V1QueriesAllDelete
@@ -5169,7 +5394,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5169
5394
  */
5170
5395
  v1QueriesAllDelete: (params?: RequestParams) => Promise<HttpResponse<void, ApiError | ProblemDetails>>;
5171
5396
  /**
5172
- * @description Every Liste of the calling account, oldest first.
5397
+ * @description Every Liste of the calling account, oldest first. Kostet 1 Credit.
5173
5398
  *
5174
5399
  * @tags Lists
5175
5400
  * @name V1ListsList
@@ -5179,7 +5404,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5179
5404
  */
5180
5405
  v1ListsList: (params?: RequestParams) => Promise<HttpResponse<ListResponse[], ApiError | ProblemDetails>>;
5181
5406
  /**
5182
- * @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.
5183
5408
  *
5184
5409
  * @tags Lists
5185
5410
  * @name V1ListsCreate
@@ -5189,7 +5414,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5189
5414
  */
5190
5415
  v1ListsCreate: (data: CreateListRequest, params?: RequestParams) => Promise<HttpResponse<ListResponse, ApiError | ProblemDetails>>;
5191
5416
  /**
5192
- * @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.
5193
5418
  *
5194
5419
  * @tags Lists
5195
5420
  * @name V1ListsDetail
@@ -5199,7 +5424,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5199
5424
  */
5200
5425
  v1ListsDetail: (id: string, params?: RequestParams) => Promise<HttpResponse<ListResponse, ApiError | ProblemDetails>>;
5201
5426
  /**
5202
- * @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.
5203
5428
  *
5204
5429
  * @tags Lists
5205
5430
  * @name V1ListsPartialUpdate
@@ -5209,7 +5434,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5209
5434
  */
5210
5435
  v1ListsPartialUpdate: (id: string, data: UpdateListRequest, params?: RequestParams) => Promise<HttpResponse<ListResponse, ApiError | ProblemDetails>>;
5211
5436
  /**
5212
- * @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.
5213
5438
  *
5214
5439
  * @tags Lists
5215
5440
  * @name V1ListsDelete
@@ -5219,7 +5444,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5219
5444
  */
5220
5445
  v1ListsDelete: (id: string, params?: RequestParams) => Promise<HttpResponse<void, ApiError | ProblemDetails>>;
5221
5446
  /**
5222
- * @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.
5223
5448
  *
5224
5449
  * @tags Lists
5225
5450
  * @name V1ListsAddCreate
@@ -5229,7 +5454,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5229
5454
  */
5230
5455
  v1ListsAddCreate: (id: string, data: ListMembersRequest, params?: RequestParams) => Promise<HttpResponse<ListResponse, ApiError | ProblemDetails>>;
5231
5456
  /**
5232
- * @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.
5233
5458
  *
5234
5459
  * @tags Lists
5235
5460
  * @name V1ListsRemoveCreate
@@ -5239,7 +5464,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5239
5464
  */
5240
5465
  v1ListsRemoveCreate: (id: string, data: ListMembersRequest, params?: RequestParams) => Promise<HttpResponse<ListResponse, ApiError | ProblemDetails>>;
5241
5466
  /**
5242
- * @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.
5243
5468
  *
5244
5469
  * @tags Exports
5245
5470
  * @name V1ExportsBusinessesCreate
@@ -5249,7 +5474,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5249
5474
  */
5250
5475
  v1ExportsBusinessesCreate: (data: ExportBusinessesRequest, params?: RequestParams) => Promise<HttpResponse<FileResult, ApiError | ProblemDetails>>;
5251
5476
  /**
5252
- * @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.
5253
5478
  *
5254
5479
  * @tags Trades
5255
5480
  * @name V1TradesDocumentsDetail
@@ -5264,7 +5489,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5264
5489
  language?: "De" | "En";
5265
5490
  }, params?: RequestParams) => Promise<HttpResponse<Blob, ApiError | ProblemDetails>>;
5266
5491
  /**
5267
- * @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.
5268
5493
  *
5269
5494
  * @tags Trades
5270
5495
  * @name V1TradesList
@@ -5292,7 +5517,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5292
5517
  pageSize?: number;
5293
5518
  }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfTradeCatalogItemResponse, ApiError | ProblemDetails>>;
5294
5519
  /**
5295
- * @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.
5296
5521
  *
5297
5522
  * @tags Trades
5298
5523
  * @name V1TradesLicensesList
@@ -5317,7 +5542,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5317
5542
  pageSize?: number;
5318
5543
  }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfGisaLicense, ApiError | ProblemDetails>>;
5319
5544
  /**
5320
- * @description Returns all licenses for a specific company (FNR).
5545
+ * @description Returns all licenses for a specific company (FNR). Kostet 1 Credit.
5321
5546
  *
5322
5547
  * @tags Trades
5323
5548
  * @name V1TradesCompanyDetail
@@ -5327,7 +5552,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5327
5552
  */
5328
5553
  v1TradesCompanyDetail: (fnr: string, params?: RequestParams) => Promise<HttpResponse<GisaLicense[], ApiError | ProblemDetails>>;
5329
5554
  /**
5330
- * @description Returns a single GISA change by id.
5555
+ * @description Returns a single GISA change by id. Kostet 1 Credit.
5331
5556
  *
5332
5557
  * @tags Trades
5333
5558
  * @name V1TradesChangesDetail
@@ -5337,7 +5562,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5337
5562
  */
5338
5563
  v1TradesChangesDetail: (id: number, params?: RequestParams) => Promise<HttpResponse<GisaChange, ApiError | ProblemDetails>>;
5339
5564
  /**
5340
- * @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.
5341
5566
  *
5342
5567
  * @tags Trades
5343
5568
  * @name V1TradesChangesList
@@ -5374,7 +5599,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5374
5599
  pageSize?: number;
5375
5600
  }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfGisaChange, ApiError | ProblemDetails>>;
5376
5601
  /**
5377
- * @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.
5378
5603
  *
5379
5604
  * @tags Search
5380
5605
  * @name V1SearchList
@@ -5394,7 +5619,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5394
5619
  pageSize?: number;
5395
5620
  }, params?: RequestParams) => Promise<HttpResponse<SearchResponse, ApiError | ProblemDetails>>;
5396
5621
  /**
5397
- * @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.
5398
5623
  *
5399
5624
  * @tags People
5400
5625
  * @name V1PeopleNamesList
@@ -5404,7 +5629,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5404
5629
  */
5405
5630
  v1PeopleNamesList: (params?: RequestParams) => Promise<HttpResponse<PersonNameItem[], ApiError | ProblemDetails>>;
5406
5631
  /**
5407
- * @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.
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.
5408
5633
  *
5409
5634
  * @tags People
5410
5635
  * @name V1PeopleList
@@ -5451,7 +5676,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5451
5676
  pageSize?: number;
5452
5677
  }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfPerson, ApiError | ProblemDetails>>;
5453
5678
  /**
5454
- * @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.
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.
5455
5680
  *
5456
5681
  * @tags People
5457
5682
  * @name V1PeopleDetail
@@ -5461,7 +5686,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5461
5686
  */
5462
5687
  v1PeopleDetail: (personId: string, params?: RequestParams) => Promise<HttpResponse<PersonDetailResponse, ApiError | ProblemDetails>>;
5463
5688
  /**
5464
- * @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.
5465
5690
  *
5466
5691
  * @tags Oenace
5467
5692
  * @name V1OenaceList
@@ -5494,7 +5719,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5494
5719
  pageSize?: number;
5495
5720
  }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfOenaceCatalogItemResponse, ApiError | ProblemDetails>>;
5496
5721
  /**
5497
- * @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.
5498
5723
  *
5499
5724
  * @tags LegalForms
5500
5725
  * @name V1LegalformsList
@@ -5521,7 +5746,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5521
5746
  pageSize?: number;
5522
5747
  }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfLegalFormCatalogItemResponse, ApiError | ProblemDetails>>;
5523
5748
  /**
5524
- * @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.
5525
5750
  *
5526
5751
  * @tags Graph
5527
5752
  * @name V1GraphList
@@ -5536,7 +5761,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5536
5761
  fnr?: string;
5537
5762
  }, params?: RequestParams) => Promise<HttpResponse<GraphResponse, ApiError | ProblemDetails>>;
5538
5763
  /**
5539
- * @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.
5540
5765
  *
5541
5766
  * @tags GlobalChanges
5542
5767
  * @name V1GlobalchangesList
@@ -5573,7 +5798,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5573
5798
  pageSize?: number;
5574
5799
  }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfGlobalChange, ApiError | ProblemDetails>>;
5575
5800
  /**
5576
- * @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.
5577
5802
  *
5578
5803
  * @tags GlobalChanges
5579
5804
  * @name V1GlobalchangesAggregatedList
@@ -5597,7 +5822,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5597
5822
  maxResultsPerType?: number;
5598
5823
  }, params?: RequestParams) => Promise<HttpResponse<AggregatedChangesResponse, ApiError | ProblemDetails>>;
5599
5824
  /**
5600
- * @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.
5601
5826
  *
5602
5827
  * @tags GlobalChanges
5603
5828
  * @name V1GlobalchangesDetail
@@ -5607,7 +5832,54 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5607
5832
  */
5608
5833
  v1GlobalchangesDetail: (id: number, params?: RequestParams) => Promise<HttpResponse<ChangeDetailResponse, ApiError | ProblemDetails>>;
5609
5834
  /**
5610
- * @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.
5611
5883
  *
5612
5884
  * @tags Edikte
5613
5885
  * @name V1EdikteChangesDetail
@@ -5617,7 +5889,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5617
5889
  */
5618
5890
  v1EdikteChangesDetail: (id: number, params?: RequestParams) => Promise<HttpResponse<EdiktChange, ApiError | ProblemDetails>>;
5619
5891
  /**
5620
- * @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.
5621
5893
  *
5622
5894
  * @tags Edikte
5623
5895
  * @name V1EdikteChangesList
@@ -5654,7 +5926,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5654
5926
  pageSize?: number;
5655
5927
  }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfEdiktChange, ApiError | ProblemDetails>>;
5656
5928
  /**
5657
- * @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.
5658
5930
  *
5659
5931
  * @tags Documents
5660
5932
  * @name V1DocumentsDownloadDetail
@@ -5664,7 +5936,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5664
5936
  */
5665
5937
  v1DocumentsDownloadDetail: (documentKey: string, params?: RequestParams) => Promise<HttpResponse<void, string | ApiError | ProblemDetails>>;
5666
5938
  /**
5667
- * @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.
5668
5940
  *
5669
5941
  * @tags Documents
5670
5942
  * @name V1DocumentsChangesDetail
@@ -5674,7 +5946,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5674
5946
  */
5675
5947
  v1DocumentsChangesDetail: (id: number, params?: RequestParams) => Promise<HttpResponse<DocumentChange, ApiError | ProblemDetails>>;
5676
5948
  /**
5677
- * @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.
5678
5950
  *
5679
5951
  * @tags Documents
5680
5952
  * @name V1DocumentsChangesList
@@ -5711,7 +5983,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5711
5983
  pageSize?: number;
5712
5984
  }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfDocumentChange, ApiError | ProblemDetails>>;
5713
5985
  /**
5714
- * @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.
5715
5987
  *
5716
5988
  * @tags Courts
5717
5989
  * @name V1CourtsList
@@ -5738,7 +6010,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5738
6010
  pageSize?: number;
5739
6011
  }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfCourtCatalogItemResponse, ApiError | ProblemDetails>>;
5740
6012
  /**
5741
- * @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.
5742
6014
  *
5743
6015
  * @tags Businesses
5744
6016
  * @name V1BusinessesResolveNamesCreate
@@ -5748,7 +6020,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5748
6020
  */
5749
6021
  v1BusinessesResolveNamesCreate: (data: ResolveBusinessNamesRequest, params?: RequestParams) => Promise<HttpResponse<ResolveBusinessNamesResponse, ApiError | ProblemDetails>>;
5750
6022
  /**
5751
- * @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.
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.
5752
6024
  *
5753
6025
  * @tags Businesses
5754
6026
  * @name V1BusinessesList
@@ -6311,7 +6583,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
6311
6583
  "guv.ZinsenUndAehnlicheAufwendungen_lte"?: number | null;
6312
6584
  }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfBusinessListResponse, ApiError | ProblemDetails>>;
6313
6585
  /**
6314
- * @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.
6315
6587
  *
6316
6588
  * @tags Businesses
6317
6589
  * @name V1BusinessesNamesList
@@ -6321,7 +6593,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
6321
6593
  */
6322
6594
  v1BusinessesNamesList: (params?: RequestParams) => Promise<HttpResponse<BusinessNameItem[], ApiError | ProblemDetails>>;
6323
6595
  /**
6324
- * @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.
6325
6597
  *
6326
6598
  * @tags Businesses
6327
6599
  * @name V1BusinessesCountList
@@ -6331,7 +6603,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
6331
6603
  */
6332
6604
  v1BusinessesCountList: (params?: RequestParams) => Promise<HttpResponse<number, ApiError | ProblemDetails>>;
6333
6605
  /**
6334
- * @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.
6335
6607
  *
6336
6608
  * @tags Businesses
6337
6609
  * @name V1BusinessesAggregateList
@@ -6908,7 +7180,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
6908
7180
  "guv.ZinsenUndAehnlicheAufwendungen_lte"?: number | null;
6909
7181
  }, params?: RequestParams) => Promise<HttpResponse<BusinessAggregateResponse, ApiError | ProblemDetails>>;
6910
7182
  /**
6911
- * @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.
6912
7184
  *
6913
7185
  * @tags Businesses
6914
7186
  * @name V1BusinessesFacetsList
@@ -7480,7 +7752,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
7480
7752
  "guv.ZinsenUndAehnlicheAufwendungen_lte"?: number | null;
7481
7753
  }, params?: RequestParams) => Promise<HttpResponse<BusinessFacetsResponse, ApiError | ProblemDetails>>;
7482
7754
  /**
7483
- * @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.
7484
7756
  *
7485
7757
  * @tags Businesses
7486
7758
  * @name V1BusinessesMapTopList
@@ -8047,7 +8319,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
8047
8319
  "guv.ZinsenUndAehnlicheAufwendungen_lte"?: number | null;
8048
8320
  }, params?: RequestParams) => Promise<HttpResponse<BusinessMapTopItem[], ApiError | ProblemDetails>>;
8049
8321
  /**
8050
- * @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.
8051
8323
  *
8052
8324
  * @tags Businesses
8053
8325
  * @name V1BusinessesSimilarList
@@ -8057,7 +8329,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
8057
8329
  */
8058
8330
  v1BusinessesSimilarList: (fnr: string, params?: RequestParams) => Promise<HttpResponse<BusinessListResponse[], ApiError | ProblemDetails>>;
8059
8331
  /**
8060
- * @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.
8061
8333
  *
8062
8334
  * @tags Businesses
8063
8335
  * @name V1BusinessesDetail
@@ -8067,7 +8339,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
8067
8339
  */
8068
8340
  v1BusinessesDetail: (fnr: string, params?: RequestParams) => Promise<HttpResponse<BusinessDetailResponse, ApiError | ProblemDetails>>;
8069
8341
  /**
8070
- * @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}.
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.
8071
8343
  *
8072
8344
  * @tags Businesses
8073
8345
  * @name V1BusinessesJahresabschluesseList
@@ -8077,7 +8349,17 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
8077
8349
  */
8078
8350
  v1BusinessesJahresabschluesseList: (fnr: string, params?: RequestParams) => Promise<HttpResponse<ParsedJahresabschlussDto[], ApiError | ProblemDetails>>;
8079
8351
  /**
8080
- * @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.
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.
8081
8363
  *
8082
8364
  * @tags Businesses
8083
8365
  * @name V1BusinessesChangesDetail
@@ -8087,7 +8369,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
8087
8369
  */
8088
8370
  v1BusinessesChangesDetail: (id: number, params?: RequestParams) => Promise<HttpResponse<BusinessChange, ApiError | ProblemDetails>>;
8089
8371
  /**
8090
- * @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.
8091
8373
  *
8092
8374
  * @tags Businesses
8093
8375
  * @name V1BusinessesChangesList
@@ -8124,7 +8406,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
8124
8406
  pageSize?: number;
8125
8407
  }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfBusinessChange, ApiError | ProblemDetails>>;
8126
8408
  /**
8127
- * @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.
8128
8410
  *
8129
8411
  * @tags AssignmentFunctions
8130
8412
  * @name V1AssignmentfunctionsList
@@ -8134,7 +8416,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
8134
8416
  */
8135
8417
  v1AssignmentfunctionsList: (params?: RequestParams) => Promise<HttpResponse<AssignmentFunctionItemResponse[], ApiError | ProblemDetails>>;
8136
8418
  /**
8137
- * @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.
8138
8420
  *
8139
8421
  * @tags Addresses
8140
8422
  * @name V1AddressesLocationsList
@@ -8160,7 +8442,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
8160
8442
  pageSize?: number;
8161
8443
  }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfAddressLocationResponse, ApiError | ProblemDetails>>;
8162
8444
  /**
8163
- * @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.
8164
8446
  *
8165
8447
  * @tags Addresses
8166
8448
  * @name V1AddressesCitiesList
@@ -8186,7 +8468,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
8186
8468
  pageSize?: number;
8187
8469
  }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfCityResponse, ApiError | ProblemDetails>>;
8188
8470
  /**
8189
- * @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.
8190
8472
  *
8191
8473
  * @tags Addresses
8192
8474
  * @name V1AddressesSuggestList
@@ -8204,7 +8486,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
8204
8486
  top?: number;
8205
8487
  }, params?: RequestParams) => Promise<HttpResponse<LocationSuggestionsResponse, ApiError | ProblemDetails>>;
8206
8488
  /**
8207
- * @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.
8208
8490
  *
8209
8491
  * @tags Addresses
8210
8492
  * @name V1AddressesZipcodesList