@firmenakte/api-client 2.11.9 → 2.22.0
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/README.md +27 -0
- package/client.d.ts +1215 -1099
- package/client.d.ts.map +1 -1
- package/client.js +237 -230
- package/index.d.ts +77 -79
- package/index.d.ts.map +1 -1
- package/keyfigure-labels.d.ts +10 -6
- package/keyfigure-labels.d.ts.map +1 -1
- package/keyfigure-labels.js +10 -6
- package/package.json +13 -2
- package/v2/generated/client/client.gen.d.ts +3 -0
- package/v2/generated/client/client.gen.d.ts.map +1 -0
- package/v2/generated/client/client.gen.js +220 -0
- package/v2/generated/client/index.d.ts +11 -0
- package/v2/generated/client/index.d.ts.map +1 -0
- package/v2/generated/client/index.js +17 -0
- package/v2/generated/client/types.gen.d.ts +121 -0
- package/v2/generated/client/types.gen.d.ts.map +1 -0
- package/v2/generated/client/types.gen.js +3 -0
- package/v2/generated/client/utils.gen.d.ts +38 -0
- package/v2/generated/client/utils.gen.d.ts.map +1 -0
- package/v2/generated/client/utils.gen.js +241 -0
- package/v2/generated/client.gen.d.ts +13 -0
- package/v2/generated/client.gen.d.ts.map +1 -0
- package/v2/generated/client.gen.js +6 -0
- package/v2/generated/core/auth.gen.d.ts +26 -0
- package/v2/generated/core/auth.gen.d.ts.map +1 -0
- package/v2/generated/core/auth.gen.js +18 -0
- package/v2/generated/core/bodySerializer.gen.d.ts +26 -0
- package/v2/generated/core/bodySerializer.gen.d.ts.map +1 -0
- package/v2/generated/core/bodySerializer.gen.js +60 -0
- package/v2/generated/core/params.gen.d.ts +44 -0
- package/v2/generated/core/params.gen.d.ts.map +1 -0
- package/v2/generated/core/params.gen.js +112 -0
- package/v2/generated/core/pathSerializer.gen.d.ts +34 -0
- package/v2/generated/core/pathSerializer.gen.d.ts.map +1 -0
- package/v2/generated/core/pathSerializer.gen.js +115 -0
- package/v2/generated/core/queryKeySerializer.gen.d.ts +19 -0
- package/v2/generated/core/queryKeySerializer.gen.d.ts.map +1 -0
- package/v2/generated/core/queryKeySerializer.gen.js +98 -0
- package/v2/generated/core/serverSentEvents.gen.d.ts +72 -0
- package/v2/generated/core/serverSentEvents.gen.d.ts.map +1 -0
- package/v2/generated/core/serverSentEvents.gen.js +135 -0
- package/v2/generated/core/types.gen.d.ts +84 -0
- package/v2/generated/core/types.gen.d.ts.map +1 -0
- package/v2/generated/core/types.gen.js +3 -0
- package/v2/generated/core/utils.gen.d.ts +20 -0
- package/v2/generated/core/utils.gen.d.ts.map +1 -0
- package/v2/generated/core/utils.gen.js +93 -0
- package/v2/generated/index.d.ts +3 -0
- package/v2/generated/index.d.ts.map +1 -0
- package/v2/generated/index.js +6 -0
- package/v2/generated/sdk.gen.d.ts +674 -0
- package/v2/generated/sdk.gen.d.ts.map +1 -0
- package/v2/generated/sdk.gen.js +1433 -0
- package/v2/generated/types.gen.d.ts +9439 -0
- package/v2/generated/types.gen.d.ts.map +1 -0
- package/v2/generated/types.gen.js +3 -0
- package/v2/index.d.ts +46 -0
- package/v2/index.d.ts.map +1 -0
- package/v2/index.js +80 -0
package/client.d.ts
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
/** The standard Passiva position a WeitererPassivposten follows in the filing. */
|
|
2
|
+
export declare enum PassivpostenNach {
|
|
3
|
+
Eigenkapital = "eigenkapital",
|
|
4
|
+
Rueckstellungen = "rueckstellungen",
|
|
5
|
+
Verbindlichkeiten = "verbindlichkeiten"
|
|
6
|
+
}
|
|
1
7
|
/** Conservative Firmenbuch evidence state: open, closed, absent, uncertain or conflicting. Conflicting means a known court closure and an active administrator role coexist. Absent means no classified court event and no active role, not certified solvency. */
|
|
2
8
|
export declare enum InsolvencyEvidenceStatus {
|
|
3
9
|
Absent = "absent",
|
|
@@ -73,6 +79,9 @@ export interface AggregatedChangesResponse {
|
|
|
73
79
|
export interface AssignmentFunctionItemResponse {
|
|
74
80
|
code?: string;
|
|
75
81
|
text?: string;
|
|
82
|
+
label?: string | null;
|
|
83
|
+
roleLabel?: string | null;
|
|
84
|
+
roleLabelPlural?: string | null;
|
|
76
85
|
}
|
|
77
86
|
export interface Bilanz {
|
|
78
87
|
documentKey?: string;
|
|
@@ -134,6 +143,10 @@ export interface Bilanz {
|
|
|
134
143
|
kurzfristigeForderungen?: number | null;
|
|
135
144
|
/** @format double */
|
|
136
145
|
passiveRechnungsabgrenzungen?: number | null;
|
|
146
|
+
/** @format double */
|
|
147
|
+
investitionszuschuesse?: number | null;
|
|
148
|
+
/** The remaining Passiva positions in filing order, stored as jsonb. Null for a filing read before these positions were; an empty list when the filing has none. */
|
|
149
|
+
weiterePassivposten?: WeitererPassivposten[] | null;
|
|
137
150
|
}
|
|
138
151
|
/** The balance-sheet (Bilanz) positions of one filed Jahresabschluss, in EUR. Every figure is nullable and null means the position was not reported in that filing — abridged accounts leave most of them out — never that it is zero. The filing the figures belong to is the documentDate of the enclosing parsedJahresabschluss. */
|
|
139
152
|
export interface BilanzDto {
|
|
@@ -175,6 +188,13 @@ export interface BilanzDto {
|
|
|
175
188
|
bilanzgewinn?: number | null;
|
|
176
189
|
/** @format double */
|
|
177
190
|
vortrag?: number | null;
|
|
191
|
+
/**
|
|
192
|
+
* Investitionszuschüsse, listed on the Passivseite after the Eigenkapital.
|
|
193
|
+
* @format double
|
|
194
|
+
*/
|
|
195
|
+
investitionszuschuesse?: number | null;
|
|
196
|
+
/** The Passiva positions no other field carries — unversteuerte Rücklagen, an atypisch stille Beteiligung, Substanzgenussrechte, a freely named position — in filing order, each with its label, its amount and the standard position it follows. Empty when the filing has none; null when the filing was read before these positions were. */
|
|
197
|
+
weiterePassivposten?: WeitererPassivpostenDto[] | null;
|
|
178
198
|
/** @format double */
|
|
179
199
|
rueckstellungen?: number | null;
|
|
180
200
|
/** @format double */
|
|
@@ -219,6 +239,7 @@ export interface BusinessAssignment {
|
|
|
219
239
|
fnr?: string;
|
|
220
240
|
vnr?: string;
|
|
221
241
|
pnr?: string;
|
|
242
|
+
/** The person's Firmenakte-ID, e.g. "P-7K3M-QX91" — the id GET /people/{personId} takes. */
|
|
222
243
|
personId?: string;
|
|
223
244
|
functionCode?: string;
|
|
224
245
|
functionText?: string | null;
|
|
@@ -239,12 +260,22 @@ export interface BusinessAssignmentDetailResponse {
|
|
|
239
260
|
fnr?: string;
|
|
240
261
|
vnr?: string;
|
|
241
262
|
pnr?: string;
|
|
263
|
+
/** The person's Firmenakte-ID, e.g. "P-7K3M-QX91" — the id GET /people/{personId} takes. */
|
|
242
264
|
personId?: string;
|
|
243
265
|
functionCode?: string | null;
|
|
244
266
|
/** @format double */
|
|
245
267
|
capitalAmount?: number | null;
|
|
246
268
|
currency?: string | null;
|
|
247
269
|
person?: PersonResponse | null;
|
|
270
|
+
/** Firmenbuchnummer of the holder when the holder is itself a company, e.g. the GmbH of a GmbH & Co KG — the fnr GET /businesses/{fnr} takes. Absent for a natural person. */
|
|
271
|
+
personFnr?: string | null;
|
|
272
|
+
/** Function status on the Vienna day: current, ended, upcoming or superseded by a newer register version. Open enum. Absent inside historical filings. */
|
|
273
|
+
status?: string | null;
|
|
274
|
+
/**
|
|
275
|
+
* Date the Firmenbuch first entered this holder in this function: the execution date of the earliest stored Eintragung (vnr) among the holder's rows for the function at this company. Absent when no such Eintragung is stored, and inside historical filings.
|
|
276
|
+
* @format date
|
|
277
|
+
*/
|
|
278
|
+
since?: string | null;
|
|
248
279
|
}
|
|
249
280
|
/** One Firmenbuch change: a new legal record (Eintragung) was filed for a company. */
|
|
250
281
|
export interface BusinessChange {
|
|
@@ -267,6 +298,7 @@ export interface BusinessChange {
|
|
|
267
298
|
}
|
|
268
299
|
/** The complete Firmenakte of one company: Firmenbuch master data, addresses, officers, GISA licences, Ediktsdatei notices, filed documents and the parsed annual accounts. */
|
|
269
300
|
export interface BusinessDetailResponse {
|
|
301
|
+
ownerships?: OwnershipDto[];
|
|
270
302
|
/** Firmenbuchnummer in normalised form: lower case, no spaces, no leading zeros and no "FN" prefix, e.g. "34853f". */
|
|
271
303
|
fnr?: string;
|
|
272
304
|
/** European Unique Identifier — the EU-wide id for a company registered in a member state's business register. Null when the Firmenbuch extract carries none. */
|
|
@@ -277,7 +309,7 @@ export interface BusinessDetailResponse {
|
|
|
277
309
|
websites?: BusinessWebsiteDto[];
|
|
278
310
|
/** Current company name as registered in the Firmenbuch, including the legal-form suffix. */
|
|
279
311
|
name?: string;
|
|
280
|
-
/** Business purpose (
|
|
312
|
+
/** Business purpose (Unternehmensgegenstand) as filed with the Firmenbuch, free text. Null when none is on file. */
|
|
281
313
|
purpose?: string | null;
|
|
282
314
|
/** A company's legal form (Rechtsform), as the Firmenbuch's code and its German label. Filter by it with legalFormCode on /businesses; the full catalogue is GET /legalforms. */
|
|
283
315
|
legalForm?: LegalForm | null;
|
|
@@ -331,7 +363,7 @@ export interface BusinessDetailResponse {
|
|
|
331
363
|
rechtstatsachen?: BusinessRechtstatsacheDto[];
|
|
332
364
|
/** The five most recent Jahresabschluss PDFs filed for the company. Download one with GET /documents/download/{documentKey}. */
|
|
333
365
|
documents?: DocumentMetadata[];
|
|
334
|
-
/** Parsed Jahresabschluesse
|
|
366
|
+
/** Parsed Jahresabschluesse for the last five fiscal closing dates, newest first. XML is preferred within the same period. Each carries its documentDate. */
|
|
335
367
|
parsedJahresabschluesse?: ParsedJahresabschlussDto[];
|
|
336
368
|
/** 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. */
|
|
337
369
|
latestKeyFigures?: BusinessLatestKeyFiguresDto | null;
|
|
@@ -368,6 +400,8 @@ export interface BusinessExportColumns {
|
|
|
368
400
|
none?: boolean;
|
|
369
401
|
}
|
|
370
402
|
export interface BusinessFacetGroup {
|
|
403
|
+
/** Counting exceeded the request budget. Values are empty; existing chips remain usable. */
|
|
404
|
+
timedOut?: boolean;
|
|
371
405
|
/** The group name, echoed back. */
|
|
372
406
|
group?: string;
|
|
373
407
|
/** The largest top values of the group, largest count first, followed by any currently selected value that did not make that cut — so a chip the caller filters on is always there, with count 0 when nothing in the rest of the filter set carries it. */
|
|
@@ -672,13 +706,13 @@ export interface CityResponse {
|
|
|
672
706
|
}
|
|
673
707
|
/** The Firmenbuch court (Sitzgericht) a company is registered at. Filter by it with courtCode on /businesses; the full catalogue is GET /courts. */
|
|
674
708
|
export interface Court {
|
|
675
|
-
/**
|
|
709
|
+
/** Three-digit court code from VOLLZ/HG, e.g. "007" for Handelsgericht Wien. */
|
|
676
710
|
code?: string;
|
|
677
711
|
/** @format date-time */
|
|
678
712
|
createdAt?: string;
|
|
679
713
|
/** @format date-time */
|
|
680
714
|
updatedAt?: string;
|
|
681
|
-
/** German name of the court, e.g. "Wien". */
|
|
715
|
+
/** German name of the court, e.g. "Handelsgericht Wien". */
|
|
682
716
|
text: string;
|
|
683
717
|
}
|
|
684
718
|
export interface CourtCatalogItemResponse {
|
|
@@ -729,6 +763,8 @@ export interface Edikt {
|
|
|
729
763
|
updatedAt?: string;
|
|
730
764
|
/** @format int32 */
|
|
731
765
|
ediktArt?: number;
|
|
766
|
+
/** The German name of the Ediktart, e.g. "Offenkundige Zahlungsunfähigkeit". Filled on the company and person dossiers; null elsewhere and for an Art without a name. */
|
|
767
|
+
artLabel?: string | null;
|
|
732
768
|
displayName?: string | null;
|
|
733
769
|
hinweis?: string | null;
|
|
734
770
|
ergaenzung?: string | null;
|
|
@@ -746,6 +782,7 @@ export interface Edikt {
|
|
|
746
782
|
caseDepartment?: string | null;
|
|
747
783
|
/** @format int32 */
|
|
748
784
|
caseYear?: number | null;
|
|
785
|
+
/** The person's Firmenakte-ID, e.g. "P-7K3M-QX91" — the id GET /people/{personId} takes. Null where no person is named. */
|
|
749
786
|
personId?: string | null;
|
|
750
787
|
fnr?: string | null;
|
|
751
788
|
courtCode?: string | null;
|
|
@@ -883,7 +920,16 @@ export interface FoerderungenSummaryDto {
|
|
|
883
920
|
*/
|
|
884
921
|
stichtag?: string | null;
|
|
885
922
|
}
|
|
886
|
-
/**
|
|
923
|
+
/** A Gemeindebezirk: Wien's "Innere Stadt" under 1010. */
|
|
924
|
+
export interface GemeindeDistrictResponse {
|
|
925
|
+
/** The Gemeindecode of STATISTIK AUSTRIA: 90101 for Wien's first Bezirk. */
|
|
926
|
+
code?: string;
|
|
927
|
+
/** The Bezirk's name: "Innere Stadt". */
|
|
928
|
+
name?: string;
|
|
929
|
+
/** The PLZ the Bezirk is addressed by. */
|
|
930
|
+
zipCode?: string;
|
|
931
|
+
}
|
|
932
|
+
/** One row of the Gemeinde catalogue, the Statistik Austria Gemeindeliste the database holds. */
|
|
887
933
|
export interface GemeindeResponse {
|
|
888
934
|
/** The Gemeinde's path segment, unique across the catalogue: "klagenfurt-am-woerthersee". */
|
|
889
935
|
slug?: string;
|
|
@@ -891,12 +937,16 @@ export interface GemeindeResponse {
|
|
|
891
937
|
name?: string;
|
|
892
938
|
/** Bundesland, the same nine names the state filter on GET /businesses takes. */
|
|
893
939
|
state?: string;
|
|
940
|
+
/** The Bundesland's path segment: "kaernten", "niederoesterreich". */
|
|
941
|
+
stateSlug?: string;
|
|
894
942
|
/** The Gemeindekennziffer of STATISTIK AUSTRIA, five digits. */
|
|
895
943
|
kennziffer?: string;
|
|
896
944
|
/** The PLZ that resolve to this Gemeinde, the Gemeindeamt's first. Fold a zipCode bucket of GET /businesses/aggregate through these to count companies per Gemeinde without a second query. */
|
|
897
945
|
zipCodes?: string[];
|
|
898
946
|
/** Slugs that name this Gemeinde without being its canonical one — "klagenfurt", "sankt-poelten". A Gemeinde page redirects these to Slug; no alias is shared by two Gemeinden. */
|
|
899
947
|
aliases?: string[];
|
|
948
|
+
/** The Gemeinde's Bezirke, each addressed by one PLZ; Wien's 23, empty for every other Gemeinde. */
|
|
949
|
+
districts?: GemeindeDistrictResponse[];
|
|
900
950
|
}
|
|
901
951
|
export interface GisaChange {
|
|
902
952
|
/** @format int64 */
|
|
@@ -925,6 +975,7 @@ export interface GisaLicense {
|
|
|
925
975
|
isActive?: boolean | null;
|
|
926
976
|
/** @format int32 */
|
|
927
977
|
addressId?: number | null;
|
|
978
|
+
/** The person's Firmenakte-ID, e.g. "P-7K3M-QX91" — the id GET /people/{personId} takes. Null where no person is named. */
|
|
928
979
|
personId?: string | null;
|
|
929
980
|
}
|
|
930
981
|
export interface GisaLicenseItemDto {
|
|
@@ -967,28 +1018,32 @@ export interface GlobalChange {
|
|
|
967
1018
|
updatedAt?: string;
|
|
968
1019
|
}
|
|
969
1020
|
export interface GraphEdgeDto {
|
|
1021
|
+
/** Evidence sources for the ownership component, without duplicating functions. */
|
|
1022
|
+
ownershipSources?: string[];
|
|
1023
|
+
ownershipUncertainty?: string | null;
|
|
970
1024
|
source?: string;
|
|
971
1025
|
target?: string;
|
|
972
|
-
/** Whether the connection still holds today.
|
|
1026
|
+
/** Whether the connection still holds on today's Vienna calendar day (Europe/Vienna). For an "assignment" edge, the newest register row of each function decides: the numerically highest Vnr, then the lowest Pnr as text. The edge is active if at least one function has not ended before that day; an absent end date, an end date today and a future start all count as running. The other two kinds are always true, for two different reasons: an "ownership" edge whose holding has ended is not drawn at all, and an "address" carries no validity date, so a shared address cannot be dated. */
|
|
973
1027
|
isActive?: boolean;
|
|
974
1028
|
/** "assignment" (a person holds a function in a company), "ownership" (a company holds shares in another — source is the shareholder, target the company it holds) or "address". */
|
|
975
1029
|
relationshipType?: string;
|
|
976
1030
|
/** The function codes the person holds at the company, current ones first — GF, PR, GS, AR … as in the Assignment function catalog. Empty on any edge but "assignment". */
|
|
977
1031
|
functionCodes?: string[];
|
|
978
1032
|
/**
|
|
979
|
-
* The shareholder's übernommene Stammeinlage
|
|
1033
|
+
* The shareholder's übernommene Stammeinlage, on corporate ownership edges and the GS component of natural-person assignment edges. Null when unsupported.
|
|
980
1034
|
* @format double
|
|
981
1035
|
*/
|
|
982
1036
|
capitalAmount?: number | null;
|
|
983
1037
|
/** The currency of CapitalAmount — ATS occurs in this data, not only EUR. */
|
|
984
1038
|
currency?: string | null;
|
|
985
1039
|
/**
|
|
986
|
-
* The stake as a percentage, 0–100. Only where it is a real ownership share: a GmbH or Flexible Kapitalgesellschaft whose Gesellschafter all carry an amount in the same currency and the same Firmenbuch version.
|
|
1040
|
+
* The stake as a percentage, 0–100. Only where it is a real ownership share: a GmbH or Flexible Kapitalgesellschaft whose Gesellschafter all carry an amount in the same currency and the same Firmenbuch version, or a coherent EVI state. Also applies to the GS component of natural-person assignment edges. Null when unsupported; never a paid-in ratio.
|
|
987
1041
|
* @format double
|
|
988
1042
|
*/
|
|
989
1043
|
sharePercent?: number | null;
|
|
990
1044
|
}
|
|
991
1045
|
export interface GraphNodeDto {
|
|
1046
|
+
/** A company's fnr, or a person's Firmenakte-ID ("P-7K3M-QX91"). */
|
|
992
1047
|
id?: string;
|
|
993
1048
|
type?: string;
|
|
994
1049
|
label?: string;
|
|
@@ -1110,6 +1165,10 @@ export interface LegalRecordChangeDto {
|
|
|
1110
1165
|
type?: string;
|
|
1111
1166
|
/** Payload; shape depends on Type (string, LegalForm, Court, Address, or list of assignments). */
|
|
1112
1167
|
value?: any;
|
|
1168
|
+
/** What changed, as the company history labels it, e.g. "Rechtsform". */
|
|
1169
|
+
label?: string | null;
|
|
1170
|
+
/** The change as the heading of its history entry, e.g. "Änderung der Rechtsform". */
|
|
1171
|
+
title?: string | null;
|
|
1113
1172
|
}
|
|
1114
1173
|
export interface LegalRecordDetailDto {
|
|
1115
1174
|
fnr?: string;
|
|
@@ -1164,6 +1223,40 @@ export interface OenaceDto {
|
|
|
1164
1223
|
code?: string | null;
|
|
1165
1224
|
numericCode?: string | null;
|
|
1166
1225
|
}
|
|
1226
|
+
export interface OwnershipDto {
|
|
1227
|
+
fnr?: string;
|
|
1228
|
+
/** The person's Firmenakte-ID, e.g. "P-7K3M-QX91" — the id GET /people/{personId} takes. Null where no person is named. */
|
|
1229
|
+
personId?: string | null;
|
|
1230
|
+
holderFnr?: string | null;
|
|
1231
|
+
displayName?: string | null;
|
|
1232
|
+
functionCode?: string;
|
|
1233
|
+
/** @format double */
|
|
1234
|
+
subscribedContribution?: number | null;
|
|
1235
|
+
/** @format double */
|
|
1236
|
+
paidInContribution?: number | null;
|
|
1237
|
+
currency?: string | null;
|
|
1238
|
+
/** @format double */
|
|
1239
|
+
sharePercent?: number | null;
|
|
1240
|
+
sources?: string[];
|
|
1241
|
+
sourceUrls?: string[];
|
|
1242
|
+
evidence?: OwnershipEvidenceDto[];
|
|
1243
|
+
uncertainty?: string | null;
|
|
1244
|
+
}
|
|
1245
|
+
/** A current holding, not a synthetic Firmenbuch assignment or history entry. */
|
|
1246
|
+
export interface OwnershipEvidenceDto {
|
|
1247
|
+
source?: string;
|
|
1248
|
+
sourceUrl?: string | null;
|
|
1249
|
+
version?: string | null;
|
|
1250
|
+
/** @format date */
|
|
1251
|
+
effectiveDate?: string | null;
|
|
1252
|
+
/** @format date-time */
|
|
1253
|
+
observedAt?: string | null;
|
|
1254
|
+
/** @format double */
|
|
1255
|
+
subscribedContribution?: number | null;
|
|
1256
|
+
/** @format double */
|
|
1257
|
+
paidInContribution?: number | null;
|
|
1258
|
+
currency?: string | null;
|
|
1259
|
+
}
|
|
1167
1260
|
/** One page of a list endpoint's result, plus the counters needed to fetch the rest. */
|
|
1168
1261
|
export interface PagedResponseOfAddressLocationResponse {
|
|
1169
1262
|
/** The rows on this page. Empty when the page is past the end, or when countOnly was requested. */
|
|
@@ -1595,6 +1688,7 @@ export interface ParsedJahresabschlussDto {
|
|
|
1595
1688
|
guv?: GuvDto | null;
|
|
1596
1689
|
}
|
|
1597
1690
|
export interface Person {
|
|
1691
|
+
/** The person's Firmenakte-ID, e.g. "P-7K3M-QX91", in every public answer — the id GET /people/{personId} takes. */
|
|
1598
1692
|
id?: string;
|
|
1599
1693
|
/** @format date-time */
|
|
1600
1694
|
createdAt?: string;
|
|
@@ -1604,7 +1698,6 @@ export interface Person {
|
|
|
1604
1698
|
firstName?: string | null;
|
|
1605
1699
|
/** @maxLength 200 */
|
|
1606
1700
|
lastName?: string | null;
|
|
1607
|
-
birthDate?: string | null;
|
|
1608
1701
|
titlePrefix?: string | null;
|
|
1609
1702
|
titleSuffix?: string | null;
|
|
1610
1703
|
assignments?: BusinessAssignment[];
|
|
@@ -1616,19 +1709,23 @@ export interface PersonAssignmentItemDto {
|
|
|
1616
1709
|
fnr?: string;
|
|
1617
1710
|
vnr?: string;
|
|
1618
1711
|
pnr?: string;
|
|
1712
|
+
/** The person's Firmenakte-ID, e.g. "P-7K3M-QX91" — the id GET /people/{personId} takes. */
|
|
1619
1713
|
personId?: string;
|
|
1620
1714
|
functionCode?: string;
|
|
1621
1715
|
/** @format double */
|
|
1622
1716
|
capitalAmount?: number | null;
|
|
1623
1717
|
currency?: string | null;
|
|
1718
|
+
/** Function status on the Vienna day: current, ended, upcoming or superseded by a newer register version. Open enum. */
|
|
1719
|
+
status?: string | null;
|
|
1624
1720
|
business?: BusinessSummaryDto | null;
|
|
1625
1721
|
businessEdikte?: Edikt[];
|
|
1626
1722
|
}
|
|
1627
1723
|
export interface PersonDetailResponse {
|
|
1724
|
+
ownerships?: OwnershipDto[];
|
|
1725
|
+
/** The person's Firmenakte-ID, e.g. "P-7K3M-QX91" — the id GET /people/{personId} takes. */
|
|
1628
1726
|
id?: string;
|
|
1629
1727
|
firstName?: string | null;
|
|
1630
1728
|
lastName?: string | null;
|
|
1631
|
-
birthDate?: string | null;
|
|
1632
1729
|
titlePrefix?: string | null;
|
|
1633
1730
|
titleSuffix?: string | null;
|
|
1634
1731
|
assignments?: PersonAssignmentItemDto[];
|
|
@@ -1636,14 +1733,15 @@ export interface PersonDetailResponse {
|
|
|
1636
1733
|
edikte?: any[];
|
|
1637
1734
|
}
|
|
1638
1735
|
export interface PersonNameItem {
|
|
1736
|
+
/** The person's Firmenakte-ID, e.g. "P-7K3M-QX91" — the id GET /people/{personId} takes. */
|
|
1639
1737
|
id?: string;
|
|
1640
1738
|
name?: string;
|
|
1641
1739
|
}
|
|
1642
1740
|
export interface PersonResponse {
|
|
1741
|
+
/** The person's Firmenakte-ID, e.g. "P-7K3M-QX91" — the id GET /people/{personId} takes. */
|
|
1643
1742
|
id?: string;
|
|
1644
1743
|
firstName?: string | null;
|
|
1645
1744
|
lastName?: string | null;
|
|
1646
|
-
birthDate?: string | null;
|
|
1647
1745
|
titlePrefix?: string | null;
|
|
1648
1746
|
titleSuffix?: string | null;
|
|
1649
1747
|
}
|
|
@@ -1719,7 +1817,7 @@ export interface ScheinunternehmenKundmachung {
|
|
|
1719
1817
|
uid?: string | null;
|
|
1720
1818
|
/** Firmenbuch number for company entries; null for natural persons. */
|
|
1721
1819
|
fnr?: string | null;
|
|
1722
|
-
/**
|
|
1820
|
+
/** The person's Firmenakte-ID ("P-7K3M-QX91") for natural-person entries; null for companies. */
|
|
1723
1821
|
personId?: string | null;
|
|
1724
1822
|
displayName?: string | null;
|
|
1725
1823
|
/** @format date-time */
|
|
@@ -1740,6 +1838,7 @@ export interface ScheinunternehmenKundmachungDto {
|
|
|
1740
1838
|
guid?: string;
|
|
1741
1839
|
uid?: string | null;
|
|
1742
1840
|
fnr?: string | null;
|
|
1841
|
+
/** The person's Firmenakte-ID, e.g. "P-7K3M-QX91" — the id GET /people/{personId} takes. Null where no person is named. */
|
|
1743
1842
|
personId?: string | null;
|
|
1744
1843
|
displayName?: string | null;
|
|
1745
1844
|
/** @format date-time */
|
|
@@ -1790,6 +1889,30 @@ export interface UpdateListRequest {
|
|
|
1790
1889
|
removedFnrs?: string[] | null;
|
|
1791
1890
|
settings?: JsonDocument | null;
|
|
1792
1891
|
}
|
|
1892
|
+
/** A Passiva position outside Eigenkapital, Investitionszuschüsse, Rückstellungen, Verbindlichkeiten and passive Rechnungsabgrenzung — unversteuerte Rücklagen, an atypisch stille Beteiligung, Substanzgenussrechte or a freely named position — with the label the filing gives it. */
|
|
1893
|
+
export interface WeitererPassivposten {
|
|
1894
|
+
/** The position's label as filed, or the schema's name for it. */
|
|
1895
|
+
bezeichnung: string;
|
|
1896
|
+
/**
|
|
1897
|
+
* The amount in EUR; a position without an amount or with 0 is not listed.
|
|
1898
|
+
* @format double
|
|
1899
|
+
*/
|
|
1900
|
+
betrag: number;
|
|
1901
|
+
/** The standard Passiva position a WeitererPassivposten follows in the filing. */
|
|
1902
|
+
nach: PassivpostenNach;
|
|
1903
|
+
}
|
|
1904
|
+
/** One further Passiva position of a Bilanz. */
|
|
1905
|
+
export interface WeitererPassivpostenDto {
|
|
1906
|
+
/** The position's label as filed, or the schema's name for it. */
|
|
1907
|
+
bezeichnung: string;
|
|
1908
|
+
/**
|
|
1909
|
+
* The amount in EUR, never 0.
|
|
1910
|
+
* @format double
|
|
1911
|
+
*/
|
|
1912
|
+
betrag: number;
|
|
1913
|
+
/** The standard Passiva position a WeitererPassivposten follows in the filing. */
|
|
1914
|
+
nach: PassivpostenNach;
|
|
1915
|
+
}
|
|
1793
1916
|
export interface ZipCodeResponse {
|
|
1794
1917
|
zipCode?: string;
|
|
1795
1918
|
/** @format int32 */
|
|
@@ -2029,7 +2152,7 @@ export declare namespace Api {
|
|
|
2029
2152
|
type ResponseBody = Blob;
|
|
2030
2153
|
}
|
|
2031
2154
|
/**
|
|
2032
|
-
* @description Returns the global catalog of GISA Trade Definitions with pagination.
|
|
2155
|
+
* @description Returns the global catalog of GISA Trade Definitions with pagination. Kostet 1 Credit.
|
|
2033
2156
|
* @tags Trades
|
|
2034
2157
|
* @name V1TradesList
|
|
2035
2158
|
* @summary GISA trade catalog
|
|
@@ -2172,20 +2295,55 @@ export declare namespace Api {
|
|
|
2172
2295
|
type ResponseBody = PagedResponseOfGisaChange;
|
|
2173
2296
|
}
|
|
2174
2297
|
/**
|
|
2175
|
-
* @description
|
|
2176
|
-
* @tags
|
|
2177
|
-
* @name
|
|
2178
|
-
* @summary
|
|
2179
|
-
* @request GET:/api/v1/
|
|
2298
|
+
* @description Kostet 1 Credit.
|
|
2299
|
+
* @tags Foerderungen
|
|
2300
|
+
* @name V1FoerderungenChangesDetail
|
|
2301
|
+
* @summary Funding change by id
|
|
2302
|
+
* @request GET:/api/v1/foerderungen/changes/{id}
|
|
2180
2303
|
* @secure
|
|
2181
2304
|
*/
|
|
2182
|
-
namespace
|
|
2305
|
+
namespace V1FoerderungenChangesDetail {
|
|
2306
|
+
type RequestParams = {
|
|
2307
|
+
/** @format int64 */
|
|
2308
|
+
id: number;
|
|
2309
|
+
};
|
|
2310
|
+
type RequestQuery = {};
|
|
2311
|
+
type RequestBody = never;
|
|
2312
|
+
type RequestHeaders = {};
|
|
2313
|
+
type ResponseBody = FoerderungChange;
|
|
2314
|
+
}
|
|
2315
|
+
/**
|
|
2316
|
+
* @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.
|
|
2317
|
+
* @tags Foerderungen
|
|
2318
|
+
* @name V1FoerderungenChangesList
|
|
2319
|
+
* @summary Funding change feed
|
|
2320
|
+
* @request GET:/api/v1/foerderungen/changes
|
|
2321
|
+
* @secure
|
|
2322
|
+
*/
|
|
2323
|
+
namespace V1FoerderungenChangesList {
|
|
2183
2324
|
type RequestParams = {};
|
|
2184
2325
|
type RequestQuery = {
|
|
2185
|
-
/**
|
|
2186
|
-
|
|
2326
|
+
/** 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. */
|
|
2327
|
+
fnr?: string;
|
|
2187
2328
|
/**
|
|
2188
|
-
*
|
|
2329
|
+
* 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.
|
|
2330
|
+
* @format date-time
|
|
2331
|
+
*/
|
|
2332
|
+
since?: string;
|
|
2333
|
+
/**
|
|
2334
|
+
* 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.
|
|
2335
|
+
* @format int64
|
|
2336
|
+
*/
|
|
2337
|
+
sinceId?: number;
|
|
2338
|
+
/**
|
|
2339
|
+
* 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.
|
|
2340
|
+
* @format int32
|
|
2341
|
+
* @min 1
|
|
2342
|
+
* @max 1000
|
|
2343
|
+
*/
|
|
2344
|
+
page?: number;
|
|
2345
|
+
/**
|
|
2346
|
+
* Number of items per page; defaults to 100 when omitted. A page shorter than this is the end of the feed.
|
|
2189
2347
|
* @format int32
|
|
2190
2348
|
* @min 1
|
|
2191
2349
|
* @max 100
|
|
@@ -2194,10 +2352,70 @@ export declare namespace Api {
|
|
|
2194
2352
|
};
|
|
2195
2353
|
type RequestBody = never;
|
|
2196
2354
|
type RequestHeaders = {};
|
|
2197
|
-
type ResponseBody =
|
|
2355
|
+
type ResponseBody = PagedResponseOfFoerderungChange;
|
|
2356
|
+
}
|
|
2357
|
+
/**
|
|
2358
|
+
* @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.
|
|
2359
|
+
* @tags Edikte
|
|
2360
|
+
* @name V1EdikteChangesDetail
|
|
2361
|
+
* @summary Edikt change by id
|
|
2362
|
+
* @request GET:/api/v1/edikte/changes/{id}
|
|
2363
|
+
* @secure
|
|
2364
|
+
*/
|
|
2365
|
+
namespace V1EdikteChangesDetail {
|
|
2366
|
+
type RequestParams = {
|
|
2367
|
+
/** @format int64 */
|
|
2368
|
+
id: number;
|
|
2369
|
+
};
|
|
2370
|
+
type RequestQuery = {};
|
|
2371
|
+
type RequestBody = never;
|
|
2372
|
+
type RequestHeaders = {};
|
|
2373
|
+
type ResponseBody = EdiktChange;
|
|
2374
|
+
}
|
|
2375
|
+
/**
|
|
2376
|
+
* @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.
|
|
2377
|
+
* @tags Edikte
|
|
2378
|
+
* @name V1EdikteChangesList
|
|
2379
|
+
* @summary Ediktsdatei change feed
|
|
2380
|
+
* @request GET:/api/v1/edikte/changes
|
|
2381
|
+
* @secure
|
|
2382
|
+
*/
|
|
2383
|
+
namespace V1EdikteChangesList {
|
|
2384
|
+
type RequestParams = {};
|
|
2385
|
+
type RequestQuery = {
|
|
2386
|
+
/** 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. */
|
|
2387
|
+
fnr?: string;
|
|
2388
|
+
/**
|
|
2389
|
+
* 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.
|
|
2390
|
+
* @format date-time
|
|
2391
|
+
*/
|
|
2392
|
+
since?: string;
|
|
2393
|
+
/**
|
|
2394
|
+
* 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.
|
|
2395
|
+
* @format int64
|
|
2396
|
+
*/
|
|
2397
|
+
sinceId?: number;
|
|
2398
|
+
/**
|
|
2399
|
+
* 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.
|
|
2400
|
+
* @format int32
|
|
2401
|
+
* @min 1
|
|
2402
|
+
* @max 1000
|
|
2403
|
+
*/
|
|
2404
|
+
page?: number;
|
|
2405
|
+
/**
|
|
2406
|
+
* Number of items per page; defaults to 100 when omitted. A page shorter than this is the end of the feed.
|
|
2407
|
+
* @format int32
|
|
2408
|
+
* @min 1
|
|
2409
|
+
* @max 100
|
|
2410
|
+
*/
|
|
2411
|
+
pageSize?: number;
|
|
2412
|
+
};
|
|
2413
|
+
type RequestBody = never;
|
|
2414
|
+
type RequestHeaders = {};
|
|
2415
|
+
type ResponseBody = PagedResponseOfEdiktChange;
|
|
2198
2416
|
}
|
|
2199
2417
|
/**
|
|
2200
|
-
* @description Returns (id, name) pairs for all people with at least one business assignment. For client-side name index. Kostet 1 Credit.
|
|
2418
|
+
* @description Returns (id, name) pairs for all people with at least one business assignment. For client-side name index. id is the person's Firmenakte-ID, e.g. "P-7K3M-QX91". Kostet 1 Credit.
|
|
2201
2419
|
* @tags People
|
|
2202
2420
|
* @name V1PeopleNamesList
|
|
2203
2421
|
* @summary Person name index
|
|
@@ -2212,7 +2430,7 @@ export declare namespace Api {
|
|
|
2212
2430
|
type ResponseBody = PersonNameItem[];
|
|
2213
2431
|
}
|
|
2214
2432
|
/**
|
|
2215
|
-
* @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
|
|
2433
|
+
* @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. Combine with fnr or businessName to get the officers of one company, or with functionCode for one role. Each row's id is the person's Firmenakte-ID, the id GET /people/{personId} takes. 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 owners of this year's new Viennese companies are one query: ?businessCity=Wien&businessRegisteredSince_gte=2026-01-01&functionCode=IN&functionCode=KP&functionCode=GS&functionCode=PG 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.
|
|
2216
2434
|
* @tags People
|
|
2217
2435
|
* @name V1PeopleList
|
|
2218
2436
|
* @summary People search
|
|
@@ -2240,10 +2458,6 @@ export declare namespace Api {
|
|
|
2240
2458
|
fnr?: string;
|
|
2241
2459
|
/** Only people who have an Edikt of their own — a notice in the Ediktsdatei filed against the person, which the edikte collection on the row carries. An Edikt against one of their companies does not count; that is hasEdikt on /businesses. */
|
|
2242
2460
|
hasEdikt?: boolean;
|
|
2243
|
-
/** Sort key; only "birthDate" is supported. Omitted, people come back by last name, then first name. People whose birth date the register does not give sort last under orderByDescending=true. */
|
|
2244
|
-
orderBy?: string;
|
|
2245
|
-
/** If true, sort descending; with orderBy=birthDate that is the youngest first. */
|
|
2246
|
-
orderByDescending?: boolean;
|
|
2247
2461
|
/**
|
|
2248
2462
|
* 1-based page number; defaults to 1 when omitted.
|
|
2249
2463
|
* @format int32
|
|
@@ -2264,7 +2478,7 @@ export declare namespace Api {
|
|
|
2264
2478
|
type ResponseBody = PagedResponseOfPerson;
|
|
2265
2479
|
}
|
|
2266
2480
|
/**
|
|
2267
|
-
* @description Returns one person with every company function, GISA licence and Edikt attached to them. personId is the
|
|
2481
|
+
* @description Returns one person with every company function, GISA licence and Edikt attached to them. personId is the person's Firmenakte-ID as the glossary describes it, e.g. "P-7K3M-QX91", the id every list row, assignment and graph node carries. Take it from there rather than composing it yourself. Only that spelling answers. Any other spelling of the same Firmenakte-ID ("p7k3mqx91"), and the "vorname-nachname-…" id people carried before, answer one 308 whose relative Location is the canonical form. A Firmenakte-ID with a wrong check character, and an id nobody holds, answer 404; so does the bucket every nameless assignment in the register lands in, which is not a person. Kostet 1 Credit.
|
|
2268
2482
|
* @tags People
|
|
2269
2483
|
* @name V1PeopleDetail
|
|
2270
2484
|
* @summary Person detail
|
|
@@ -2273,6 +2487,7 @@ export declare namespace Api {
|
|
|
2273
2487
|
*/
|
|
2274
2488
|
namespace V1PeopleDetail {
|
|
2275
2489
|
type RequestParams = {
|
|
2490
|
+
/** The person's Firmenakte-ID, e.g. "P-7K3M-QX91". */
|
|
2276
2491
|
personId: string;
|
|
2277
2492
|
};
|
|
2278
2493
|
type RequestQuery = {};
|
|
@@ -2281,474 +2496,66 @@ export declare namespace Api {
|
|
|
2281
2496
|
type ResponseBody = PersonDetailResponse;
|
|
2282
2497
|
}
|
|
2283
2498
|
/**
|
|
2284
|
-
* @description
|
|
2285
|
-
* @tags
|
|
2286
|
-
* @name
|
|
2287
|
-
* @summary
|
|
2288
|
-
* @request
|
|
2499
|
+
* @description Resolve company names to FNRs by exact name match (1:1). Used for CSV import. Kostet 1 Credit.
|
|
2500
|
+
* @tags Businesses
|
|
2501
|
+
* @name V1BusinessesResolveNamesCreate
|
|
2502
|
+
* @summary Name to FNR resolution
|
|
2503
|
+
* @request POST:/api/v1/businesses/resolve-names
|
|
2289
2504
|
* @secure
|
|
2290
2505
|
*/
|
|
2291
|
-
namespace
|
|
2506
|
+
namespace V1BusinessesResolveNamesCreate {
|
|
2292
2507
|
type RequestParams = {};
|
|
2293
|
-
type RequestQuery = {
|
|
2294
|
-
|
|
2295
|
-
/**
|
|
2296
|
-
* Filter by hierarchy level (1–5). Omit to return all levels.
|
|
2297
|
-
* @format int32
|
|
2298
|
-
*/
|
|
2299
|
-
ebene?: number;
|
|
2300
|
-
/** @format int32 */
|
|
2301
|
-
minCompanyCount?: number;
|
|
2302
|
-
/**
|
|
2303
|
-
* 1-based page number; defaults to 1 when omitted.
|
|
2304
|
-
* @format int32
|
|
2305
|
-
* @min 1
|
|
2306
|
-
* @max 1000
|
|
2307
|
-
*/
|
|
2308
|
-
page?: number;
|
|
2309
|
-
/**
|
|
2310
|
-
* Number of items per page; defaults to 10 when omitted.
|
|
2311
|
-
* @format int32
|
|
2312
|
-
* @min 1
|
|
2313
|
-
* @max 100
|
|
2314
|
-
*/
|
|
2315
|
-
pageSize?: number;
|
|
2316
|
-
};
|
|
2317
|
-
type RequestBody = never;
|
|
2508
|
+
type RequestQuery = {};
|
|
2509
|
+
type RequestBody = ResolveBusinessNamesRequest;
|
|
2318
2510
|
type RequestHeaders = {};
|
|
2319
|
-
type ResponseBody =
|
|
2511
|
+
type ResponseBody = ResolveBusinessNamesResponse;
|
|
2320
2512
|
}
|
|
2321
2513
|
/**
|
|
2322
|
-
* @description
|
|
2323
|
-
* @tags
|
|
2324
|
-
* @name
|
|
2325
|
-
* @summary
|
|
2326
|
-
* @request GET:/api/v1/
|
|
2514
|
+
* @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. Place filters: the Firmenbuch records no Bundesland and no Gemeinde, only the Sitzgericht, so both state and gemeinde are derived from the PLZ of the Geschäftsanschrift: the PLZ names a Gemeinde, and state is that Gemeinde's Land, so the Innviertel PLZ 5120–5399 are in Oberösterreich. gemeinde takes the slug of a Gemeinde, and because it reads the PLZ it answers every spelling of a place at once — "Klagenfurt am Wörthersee", "Klagenfurt" and "Klagenfurt-Viktring" are one Gemeinde, where city= would be three separate filters over free text. GET /addresses/gemeinden is the catalogue of the slugs, their aliases, their Bundesland and their PLZ; a company with a foreign or unusable PLZ is in no Gemeinde and no gemeinde= filter finds it. Kostet 1 Credit.
|
|
2515
|
+
* @tags Businesses
|
|
2516
|
+
* @name V1BusinessesList
|
|
2517
|
+
* @summary Company search
|
|
2518
|
+
* @request GET:/api/v1/businesses
|
|
2327
2519
|
* @secure
|
|
2328
2520
|
*/
|
|
2329
|
-
namespace
|
|
2521
|
+
namespace V1BusinessesList {
|
|
2330
2522
|
type RequestParams = {};
|
|
2331
2523
|
type RequestQuery = {
|
|
2332
|
-
|
|
2524
|
+
fnr?: string[];
|
|
2525
|
+
name?: string;
|
|
2333
2526
|
search?: string;
|
|
2527
|
+
city?: string[];
|
|
2528
|
+
courtCode?: string[];
|
|
2529
|
+
legalFormCode?: string[];
|
|
2530
|
+
zipCode?: string[];
|
|
2531
|
+
/** Filter by Bundesland: Burgenland, Kärnten, Niederösterreich, Oberösterreich, Salzburg, Steiermark, Tirol, Vorarlberg, Wien. Derived from the PLZ of the Geschäftsanschrift; see this endpoint's description. An unknown name is a 400. */
|
|
2532
|
+
state?: string[];
|
|
2533
|
+
/** Filter by Gemeinde slug, derived from the PLZ. GET /addresses/gemeinden lists them. Unknown slug is a 400. */
|
|
2534
|
+
gemeinde?: string[];
|
|
2535
|
+
hasEdikt?: boolean;
|
|
2536
|
+
active?: boolean;
|
|
2537
|
+
/** Filter by BMF Scheinunternehmen (LSU) list: true = only businesses on the list, false = only not on the list. */
|
|
2538
|
+
isScheinunternehmen?: boolean;
|
|
2539
|
+
gisaLicenseKey?: number[];
|
|
2540
|
+
/** Filter by OeNACE code (OenaceZuord / NumericCode), e.g. ["46649"]. */
|
|
2541
|
+
oenaceCode?: string[];
|
|
2334
2542
|
/**
|
|
2335
|
-
*
|
|
2543
|
+
* Lower bound (inclusive) for the Firmenbuch registration date ("Eingetragen seit"), the earliest executionDate over the company's legal records. The Firmenbuch was digitised in 1991/92, so no value predates that however old the company actually is — it is not a founding date.
|
|
2544
|
+
* @format date-time
|
|
2545
|
+
*/
|
|
2546
|
+
registeredSince_gte?: string;
|
|
2547
|
+
/**
|
|
2548
|
+
* Upper bound (inclusive) for the Firmenbuch registration date ("Eingetragen seit"), the earliest executionDate over the company's legal records. The Firmenbuch was digitised in 1991/92, so no value predates that however old the company actually is — it is not a founding date.
|
|
2549
|
+
* @format date-time
|
|
2550
|
+
*/
|
|
2551
|
+
registeredSince_lte?: string;
|
|
2552
|
+
/**
|
|
2553
|
+
* Lower bound (inclusive) for the number of distinct people with signing authority, counting the representation functions GF, GD, GL, HB, IN, IV, KP, PR, SV, VM, VO and excluding the insolvency and liquidation ones (AB, AW, IW, MW, VW, ZW). Currently held functions only.
|
|
2336
2554
|
* @format int32
|
|
2337
|
-
* @min 1
|
|
2338
|
-
* @max 1000
|
|
2339
2555
|
*/
|
|
2340
|
-
|
|
2556
|
+
signerCount_gte?: number;
|
|
2341
2557
|
/**
|
|
2342
|
-
*
|
|
2343
|
-
* @format int32
|
|
2344
|
-
* @min 1
|
|
2345
|
-
* @max 100
|
|
2346
|
-
*/
|
|
2347
|
-
pageSize?: number;
|
|
2348
|
-
};
|
|
2349
|
-
type RequestBody = never;
|
|
2350
|
-
type RequestHeaders = {};
|
|
2351
|
-
type ResponseBody = PagedResponseOfLegalFormCatalogItemResponse;
|
|
2352
|
-
}
|
|
2353
|
-
/**
|
|
2354
|
-
* @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.
|
|
2355
|
-
* @tags Graph
|
|
2356
|
-
* @name V1GraphList
|
|
2357
|
-
* @summary Relationship graph
|
|
2358
|
-
* @request GET:/api/v1/graph
|
|
2359
|
-
* @secure
|
|
2360
|
-
*/
|
|
2361
|
-
namespace V1GraphList {
|
|
2362
|
-
type RequestParams = {};
|
|
2363
|
-
type RequestQuery = {
|
|
2364
|
-
/** Start from this person. Mutually exclusive with fnr. */
|
|
2365
|
-
personId?: string;
|
|
2366
|
-
/** Start from this company. Normalised before matching — trimmed, spaces and leading zeros removed — so 034853 f and 34853f are the same company; case is not folded. Mutually exclusive with personId. */
|
|
2367
|
-
fnr?: string;
|
|
2368
|
-
};
|
|
2369
|
-
type RequestBody = never;
|
|
2370
|
-
type RequestHeaders = {};
|
|
2371
|
-
type ResponseBody = GraphResponse;
|
|
2372
|
-
}
|
|
2373
|
-
/**
|
|
2374
|
-
* @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.
|
|
2375
|
-
* @tags GlobalChanges
|
|
2376
|
-
* @name V1GlobalchangesList
|
|
2377
|
-
* @summary All-register change feed
|
|
2378
|
-
* @request GET:/api/v1/globalchanges
|
|
2379
|
-
* @secure
|
|
2380
|
-
*/
|
|
2381
|
-
namespace V1GlobalchangesList {
|
|
2382
|
-
type RequestParams = {};
|
|
2383
|
-
type RequestQuery = {
|
|
2384
|
-
/** 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. */
|
|
2385
|
-
fnr?: string;
|
|
2386
|
-
/**
|
|
2387
|
-
* 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.
|
|
2388
|
-
* @format date-time
|
|
2389
|
-
*/
|
|
2390
|
-
since?: string;
|
|
2391
|
-
/**
|
|
2392
|
-
* 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.
|
|
2393
|
-
* @format int64
|
|
2394
|
-
*/
|
|
2395
|
-
sinceId?: number;
|
|
2396
|
-
/**
|
|
2397
|
-
* 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.
|
|
2398
|
-
* @format int32
|
|
2399
|
-
* @min 1
|
|
2400
|
-
* @max 1000
|
|
2401
|
-
*/
|
|
2402
|
-
page?: number;
|
|
2403
|
-
/**
|
|
2404
|
-
* Number of items per page; defaults to 100 when omitted. A page shorter than this is the end of the feed.
|
|
2405
|
-
* @format int32
|
|
2406
|
-
* @min 1
|
|
2407
|
-
* @max 100
|
|
2408
|
-
*/
|
|
2409
|
-
pageSize?: number;
|
|
2410
|
-
};
|
|
2411
|
-
type RequestBody = never;
|
|
2412
|
-
type RequestHeaders = {};
|
|
2413
|
-
type ResponseBody = PagedResponseOfGlobalChange;
|
|
2414
|
-
}
|
|
2415
|
-
/**
|
|
2416
|
-
* @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.
|
|
2417
|
-
* @tags GlobalChanges
|
|
2418
|
-
* @name V1GlobalchangesAggregatedList
|
|
2419
|
-
* @summary Aggregated watchlist changes
|
|
2420
|
-
* @request GET:/api/v1/globalchanges/aggregated
|
|
2421
|
-
* @secure
|
|
2422
|
-
*/
|
|
2423
|
-
namespace V1GlobalchangesAggregatedList {
|
|
2424
|
-
type RequestParams = {};
|
|
2425
|
-
type RequestQuery = {
|
|
2426
|
-
/** Firmenbuch numbers to fetch changes for. Max 1000 items. Each is 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. */
|
|
2427
|
-
fnr?: string[];
|
|
2428
|
-
/** @format date-time */
|
|
2429
|
-
since?: string;
|
|
2430
|
-
/** @format int64 */
|
|
2431
|
-
sinceId?: number;
|
|
2432
|
-
/**
|
|
2433
|
-
* Max number of changes to return per type. Default 500, max 2000.
|
|
2434
|
-
* @format int32
|
|
2435
|
-
* @min 1
|
|
2436
|
-
* @max 2000
|
|
2437
|
-
*/
|
|
2438
|
-
maxResultsPerType?: number;
|
|
2439
|
-
};
|
|
2440
|
-
type RequestBody = never;
|
|
2441
|
-
type RequestHeaders = {};
|
|
2442
|
-
type ResponseBody = AggregatedChangesResponse;
|
|
2443
|
-
}
|
|
2444
|
-
/**
|
|
2445
|
-
* @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.
|
|
2446
|
-
* @tags GlobalChanges
|
|
2447
|
-
* @name V1GlobalchangesDetail
|
|
2448
|
-
* @summary Change by id
|
|
2449
|
-
* @request GET:/api/v1/globalchanges/{id}
|
|
2450
|
-
* @secure
|
|
2451
|
-
*/
|
|
2452
|
-
namespace V1GlobalchangesDetail {
|
|
2453
|
-
type RequestParams = {
|
|
2454
|
-
/** @format int64 */
|
|
2455
|
-
id: number;
|
|
2456
|
-
};
|
|
2457
|
-
type RequestQuery = {};
|
|
2458
|
-
type RequestBody = never;
|
|
2459
|
-
type RequestHeaders = {};
|
|
2460
|
-
type ResponseBody = ChangeDetailResponse;
|
|
2461
|
-
}
|
|
2462
|
-
/**
|
|
2463
|
-
* @description Kostet 1 Credit.
|
|
2464
|
-
* @tags Foerderungen
|
|
2465
|
-
* @name V1FoerderungenChangesDetail
|
|
2466
|
-
* @summary Funding change by id
|
|
2467
|
-
* @request GET:/api/v1/foerderungen/changes/{id}
|
|
2468
|
-
* @secure
|
|
2469
|
-
*/
|
|
2470
|
-
namespace V1FoerderungenChangesDetail {
|
|
2471
|
-
type RequestParams = {
|
|
2472
|
-
/** @format int64 */
|
|
2473
|
-
id: number;
|
|
2474
|
-
};
|
|
2475
|
-
type RequestQuery = {};
|
|
2476
|
-
type RequestBody = never;
|
|
2477
|
-
type RequestHeaders = {};
|
|
2478
|
-
type ResponseBody = FoerderungChange;
|
|
2479
|
-
}
|
|
2480
|
-
/**
|
|
2481
|
-
* @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.
|
|
2482
|
-
* @tags Foerderungen
|
|
2483
|
-
* @name V1FoerderungenChangesList
|
|
2484
|
-
* @summary Funding change feed
|
|
2485
|
-
* @request GET:/api/v1/foerderungen/changes
|
|
2486
|
-
* @secure
|
|
2487
|
-
*/
|
|
2488
|
-
namespace V1FoerderungenChangesList {
|
|
2489
|
-
type RequestParams = {};
|
|
2490
|
-
type RequestQuery = {
|
|
2491
|
-
/** 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. */
|
|
2492
|
-
fnr?: string;
|
|
2493
|
-
/**
|
|
2494
|
-
* 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.
|
|
2495
|
-
* @format date-time
|
|
2496
|
-
*/
|
|
2497
|
-
since?: string;
|
|
2498
|
-
/**
|
|
2499
|
-
* 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.
|
|
2500
|
-
* @format int64
|
|
2501
|
-
*/
|
|
2502
|
-
sinceId?: number;
|
|
2503
|
-
/**
|
|
2504
|
-
* 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.
|
|
2505
|
-
* @format int32
|
|
2506
|
-
* @min 1
|
|
2507
|
-
* @max 1000
|
|
2508
|
-
*/
|
|
2509
|
-
page?: number;
|
|
2510
|
-
/**
|
|
2511
|
-
* Number of items per page; defaults to 100 when omitted. A page shorter than this is the end of the feed.
|
|
2512
|
-
* @format int32
|
|
2513
|
-
* @min 1
|
|
2514
|
-
* @max 100
|
|
2515
|
-
*/
|
|
2516
|
-
pageSize?: number;
|
|
2517
|
-
};
|
|
2518
|
-
type RequestBody = never;
|
|
2519
|
-
type RequestHeaders = {};
|
|
2520
|
-
type ResponseBody = PagedResponseOfFoerderungChange;
|
|
2521
|
-
}
|
|
2522
|
-
/**
|
|
2523
|
-
* @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.
|
|
2524
|
-
* @tags Edikte
|
|
2525
|
-
* @name V1EdikteChangesDetail
|
|
2526
|
-
* @summary Edikt change by id
|
|
2527
|
-
* @request GET:/api/v1/edikte/changes/{id}
|
|
2528
|
-
* @secure
|
|
2529
|
-
*/
|
|
2530
|
-
namespace V1EdikteChangesDetail {
|
|
2531
|
-
type RequestParams = {
|
|
2532
|
-
/** @format int64 */
|
|
2533
|
-
id: number;
|
|
2534
|
-
};
|
|
2535
|
-
type RequestQuery = {};
|
|
2536
|
-
type RequestBody = never;
|
|
2537
|
-
type RequestHeaders = {};
|
|
2538
|
-
type ResponseBody = EdiktChange;
|
|
2539
|
-
}
|
|
2540
|
-
/**
|
|
2541
|
-
* @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.
|
|
2542
|
-
* @tags Edikte
|
|
2543
|
-
* @name V1EdikteChangesList
|
|
2544
|
-
* @summary Ediktsdatei change feed
|
|
2545
|
-
* @request GET:/api/v1/edikte/changes
|
|
2546
|
-
* @secure
|
|
2547
|
-
*/
|
|
2548
|
-
namespace V1EdikteChangesList {
|
|
2549
|
-
type RequestParams = {};
|
|
2550
|
-
type RequestQuery = {
|
|
2551
|
-
/** 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. */
|
|
2552
|
-
fnr?: string;
|
|
2553
|
-
/**
|
|
2554
|
-
* 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.
|
|
2555
|
-
* @format date-time
|
|
2556
|
-
*/
|
|
2557
|
-
since?: string;
|
|
2558
|
-
/**
|
|
2559
|
-
* 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.
|
|
2560
|
-
* @format int64
|
|
2561
|
-
*/
|
|
2562
|
-
sinceId?: number;
|
|
2563
|
-
/**
|
|
2564
|
-
* 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.
|
|
2565
|
-
* @format int32
|
|
2566
|
-
* @min 1
|
|
2567
|
-
* @max 1000
|
|
2568
|
-
*/
|
|
2569
|
-
page?: number;
|
|
2570
|
-
/**
|
|
2571
|
-
* Number of items per page; defaults to 100 when omitted. A page shorter than this is the end of the feed.
|
|
2572
|
-
* @format int32
|
|
2573
|
-
* @min 1
|
|
2574
|
-
* @max 100
|
|
2575
|
-
*/
|
|
2576
|
-
pageSize?: number;
|
|
2577
|
-
};
|
|
2578
|
-
type RequestBody = never;
|
|
2579
|
-
type RequestHeaders = {};
|
|
2580
|
-
type ResponseBody = PagedResponseOfEdiktChange;
|
|
2581
|
-
}
|
|
2582
|
-
/**
|
|
2583
|
-
* @description Downloads a Firmenbuch document (PDF/XML) by its document key. Kostet 3 Credits.
|
|
2584
|
-
* @tags Documents
|
|
2585
|
-
* @name V1DocumentsDownloadDetail
|
|
2586
|
-
* @summary Firmenbuch document download
|
|
2587
|
-
* @request GET:/api/v1/documents/download/{documentKey}
|
|
2588
|
-
* @secure
|
|
2589
|
-
*/
|
|
2590
|
-
namespace V1DocumentsDownloadDetail {
|
|
2591
|
-
type RequestParams = {
|
|
2592
|
-
documentKey: string;
|
|
2593
|
-
};
|
|
2594
|
-
type RequestQuery = {};
|
|
2595
|
-
type RequestBody = never;
|
|
2596
|
-
type RequestHeaders = {};
|
|
2597
|
-
type ResponseBody = void;
|
|
2598
|
-
}
|
|
2599
|
-
/**
|
|
2600
|
-
* @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.
|
|
2601
|
-
* @tags Documents
|
|
2602
|
-
* @name V1DocumentsChangesDetail
|
|
2603
|
-
* @summary Document change by id
|
|
2604
|
-
* @request GET:/api/v1/documents/changes/{id}
|
|
2605
|
-
* @secure
|
|
2606
|
-
*/
|
|
2607
|
-
namespace V1DocumentsChangesDetail {
|
|
2608
|
-
type RequestParams = {
|
|
2609
|
-
/** @format int64 */
|
|
2610
|
-
id: number;
|
|
2611
|
-
};
|
|
2612
|
-
type RequestQuery = {};
|
|
2613
|
-
type RequestBody = never;
|
|
2614
|
-
type RequestHeaders = {};
|
|
2615
|
-
type ResponseBody = DocumentChange;
|
|
2616
|
-
}
|
|
2617
|
-
/**
|
|
2618
|
-
* @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.
|
|
2619
|
-
* @tags Documents
|
|
2620
|
-
* @name V1DocumentsChangesList
|
|
2621
|
-
* @summary Document change feed
|
|
2622
|
-
* @request GET:/api/v1/documents/changes
|
|
2623
|
-
* @secure
|
|
2624
|
-
*/
|
|
2625
|
-
namespace V1DocumentsChangesList {
|
|
2626
|
-
type RequestParams = {};
|
|
2627
|
-
type RequestQuery = {
|
|
2628
|
-
/** 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. */
|
|
2629
|
-
fnr?: string;
|
|
2630
|
-
/**
|
|
2631
|
-
* 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.
|
|
2632
|
-
* @format date-time
|
|
2633
|
-
*/
|
|
2634
|
-
since?: string;
|
|
2635
|
-
/**
|
|
2636
|
-
* 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.
|
|
2637
|
-
* @format int64
|
|
2638
|
-
*/
|
|
2639
|
-
sinceId?: number;
|
|
2640
|
-
/**
|
|
2641
|
-
* 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.
|
|
2642
|
-
* @format int32
|
|
2643
|
-
* @min 1
|
|
2644
|
-
* @max 1000
|
|
2645
|
-
*/
|
|
2646
|
-
page?: number;
|
|
2647
|
-
/**
|
|
2648
|
-
* Number of items per page; defaults to 100 when omitted. A page shorter than this is the end of the feed.
|
|
2649
|
-
* @format int32
|
|
2650
|
-
* @min 1
|
|
2651
|
-
* @max 100
|
|
2652
|
-
*/
|
|
2653
|
-
pageSize?: number;
|
|
2654
|
-
};
|
|
2655
|
-
type RequestBody = never;
|
|
2656
|
-
type RequestHeaders = {};
|
|
2657
|
-
type ResponseBody = PagedResponseOfDocumentChange;
|
|
2658
|
-
}
|
|
2659
|
-
/**
|
|
2660
|
-
* @description Returns all courts with pagination and optional search, sorted by business count descending. Kostet 1 Credit.
|
|
2661
|
-
* @tags Courts
|
|
2662
|
-
* @name V1CourtsList
|
|
2663
|
-
* @summary Court catalog
|
|
2664
|
-
* @request GET:/api/v1/courts
|
|
2665
|
-
* @secure
|
|
2666
|
-
*/
|
|
2667
|
-
namespace V1CourtsList {
|
|
2668
|
-
type RequestParams = {};
|
|
2669
|
-
type RequestQuery = {
|
|
2670
|
-
/** @maxLength 200 */
|
|
2671
|
-
search?: string;
|
|
2672
|
-
/**
|
|
2673
|
-
* 1-based page number; defaults to 1 when omitted.
|
|
2674
|
-
* @format int32
|
|
2675
|
-
* @min 1
|
|
2676
|
-
* @max 1000
|
|
2677
|
-
*/
|
|
2678
|
-
page?: number;
|
|
2679
|
-
/**
|
|
2680
|
-
* Number of items per page; defaults to 10 when omitted.
|
|
2681
|
-
* @format int32
|
|
2682
|
-
* @min 1
|
|
2683
|
-
* @max 100
|
|
2684
|
-
*/
|
|
2685
|
-
pageSize?: number;
|
|
2686
|
-
};
|
|
2687
|
-
type RequestBody = never;
|
|
2688
|
-
type RequestHeaders = {};
|
|
2689
|
-
type ResponseBody = PagedResponseOfCourtCatalogItemResponse;
|
|
2690
|
-
}
|
|
2691
|
-
/**
|
|
2692
|
-
* @description Resolve company names to FNRs by exact name match (1:1). Used for CSV import. Kostet 1 Credit.
|
|
2693
|
-
* @tags Businesses
|
|
2694
|
-
* @name V1BusinessesResolveNamesCreate
|
|
2695
|
-
* @summary Name to FNR resolution
|
|
2696
|
-
* @request POST:/api/v1/businesses/resolve-names
|
|
2697
|
-
* @secure
|
|
2698
|
-
*/
|
|
2699
|
-
namespace V1BusinessesResolveNamesCreate {
|
|
2700
|
-
type RequestParams = {};
|
|
2701
|
-
type RequestQuery = {};
|
|
2702
|
-
type RequestBody = ResolveBusinessNamesRequest;
|
|
2703
|
-
type RequestHeaders = {};
|
|
2704
|
-
type ResponseBody = ResolveBusinessNamesResponse;
|
|
2705
|
-
}
|
|
2706
|
-
/**
|
|
2707
|
-
* @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. Place filters: the Firmenbuch records no Bundesland and no Gemeinde, only the Sitzgericht, so both state and gemeinde are derived from the PLZ of the Geschäftsanschrift. state is exact except for the Innviertel PLZ 5120–5399, which are postally Salzburg but politically Oberösterreich and are counted as Salzburg. gemeinde takes the slug of a Gemeinde, and because it reads the PLZ it answers every spelling of a place at once — "Klagenfurt am Wörthersee", "Klagenfurt" and "Klagenfurt-Viktring" are one Gemeinde, where city= would be three separate filters over free text. GET /addresses/gemeinden is the catalogue of the slugs, their aliases, their Bundesland and their PLZ; a company with a foreign or unusable PLZ is in no Gemeinde and no gemeinde= filter finds it. Ohne API-Key abrufbar und kostet keine Credits.
|
|
2708
|
-
* @tags Businesses
|
|
2709
|
-
* @name V1BusinessesList
|
|
2710
|
-
* @summary Company search
|
|
2711
|
-
* @request GET:/api/v1/businesses
|
|
2712
|
-
* @secure
|
|
2713
|
-
*/
|
|
2714
|
-
namespace V1BusinessesList {
|
|
2715
|
-
type RequestParams = {};
|
|
2716
|
-
type RequestQuery = {
|
|
2717
|
-
fnr?: string[];
|
|
2718
|
-
name?: string;
|
|
2719
|
-
search?: string;
|
|
2720
|
-
city?: string[];
|
|
2721
|
-
courtCode?: string[];
|
|
2722
|
-
legalFormCode?: string[];
|
|
2723
|
-
zipCode?: string[];
|
|
2724
|
-
/** Filter by Bundesland: Burgenland, Kärnten, Niederösterreich, Oberösterreich, Salzburg, Steiermark, Tirol, Vorarlberg, Wien. Derived from the PLZ of the Geschäftsanschrift; see this endpoint's description. An unknown name is a 400. */
|
|
2725
|
-
state?: string[];
|
|
2726
|
-
/** Filter by Gemeinde slug, derived from the PLZ. GET /addresses/gemeinden lists them. Unknown slug is a 400. */
|
|
2727
|
-
gemeinde?: string[];
|
|
2728
|
-
hasEdikt?: boolean;
|
|
2729
|
-
active?: boolean;
|
|
2730
|
-
/** Filter by BMF Scheinunternehmen (LSU) list: true = only businesses on the list, false = only not on the list. */
|
|
2731
|
-
isScheinunternehmen?: boolean;
|
|
2732
|
-
gisaLicenseKey?: number[];
|
|
2733
|
-
/** Filter by OeNACE code (OenaceZuord / NumericCode), e.g. ["46649"]. */
|
|
2734
|
-
oenaceCode?: string[];
|
|
2735
|
-
/**
|
|
2736
|
-
* Lower bound (inclusive) for the Firmenbuch registration date ("Eingetragen seit"), the earliest executionDate over the company's legal records. The Firmenbuch was digitised in 1991/92, so no value predates that however old the company actually is — it is not a founding date.
|
|
2737
|
-
* @format date-time
|
|
2738
|
-
*/
|
|
2739
|
-
registeredSince_gte?: string;
|
|
2740
|
-
/**
|
|
2741
|
-
* Upper bound (inclusive) for the Firmenbuch registration date ("Eingetragen seit"), the earliest executionDate over the company's legal records. The Firmenbuch was digitised in 1991/92, so no value predates that however old the company actually is — it is not a founding date.
|
|
2742
|
-
* @format date-time
|
|
2743
|
-
*/
|
|
2744
|
-
registeredSince_lte?: string;
|
|
2745
|
-
/**
|
|
2746
|
-
* Lower bound (inclusive) for the number of distinct people with signing authority, counting the representation functions GF, GD, GL, HB, IN, IV, KP, PR, SV, VM, VO and excluding the insolvency and liquidation ones (AB, AW, IW, MW, VW, ZW). Currently held functions only.
|
|
2747
|
-
* @format int32
|
|
2748
|
-
*/
|
|
2749
|
-
signerCount_gte?: number;
|
|
2750
|
-
/**
|
|
2751
|
-
* Upper bound (inclusive) for the number of distinct people with signing authority, counting the representation functions GF, GD, GL, HB, IN, IV, KP, PR, SV, VM, VO and excluding the insolvency and liquidation ones (AB, AW, IW, MW, VW, ZW). Currently held functions only.
|
|
2558
|
+
* Upper bound (inclusive) for the number of distinct people with signing authority, counting the representation functions GF, GD, GL, HB, IN, IV, KP, PR, SV, VM, VO and excluding the insolvency and liquidation ones (AB, AW, IW, MW, VW, ZW). Currently held functions only.
|
|
2752
2559
|
* @format int32
|
|
2753
2560
|
*/
|
|
2754
2561
|
signerCount_lte?: number;
|
|
@@ -3274,7 +3081,7 @@ export declare namespace Api {
|
|
|
3274
3081
|
type ResponseBody = PagedResponseOfBusinessListResponse;
|
|
3275
3082
|
}
|
|
3276
3083
|
/**
|
|
3277
|
-
* @description Returns all business (fnr, name) pairs for client-side name index. No pagination.
|
|
3084
|
+
* @description Returns all business (fnr, name) pairs for client-side name index. No pagination. Kostet 1 Credit.
|
|
3278
3085
|
* @tags Businesses
|
|
3279
3086
|
* @name V1BusinessesNamesList
|
|
3280
3087
|
* @summary Company name index
|
|
@@ -3888,7 +3695,7 @@ export declare namespace Api {
|
|
|
3888
3695
|
type ResponseBody = BusinessAggregateResponse;
|
|
3889
3696
|
}
|
|
3890
3697
|
/**
|
|
3891
|
-
* @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.
|
|
3698
|
+
* @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.
|
|
3892
3699
|
* @tags Businesses
|
|
3893
3700
|
* @name V1BusinessesFacetsList
|
|
3894
3701
|
* @summary Filter-builder facet counts
|
|
@@ -3898,7 +3705,7 @@ export declare namespace Api {
|
|
|
3898
3705
|
namespace V1BusinessesFacetsList {
|
|
3899
3706
|
type RequestParams = {};
|
|
3900
3707
|
type RequestQuery = {
|
|
3901
|
-
/** Groups to count; all of them when omitted. One or more of city, zipCode, legalFormCode, courtCode, oenaceCode, gisaLicenseKey, active, hasEdikt, isScheinunternehmen, kennzahl. */
|
|
3708
|
+
/** Groups to count; all of them when omitted. One or more of city, zipCode, legalFormCode, courtCode, oenaceCode, gisaLicenseKey, active, hasEdikt, isScheinunternehmen, inInsolvency, kennzahl. */
|
|
3902
3709
|
groups?: string[];
|
|
3903
3710
|
/**
|
|
3904
3711
|
* Values per group, largest count first. The status and kennzahl groups are complete lists and ignore it. A "Mehr" expander is a second call for the one group with a larger top.
|
|
@@ -4467,7 +4274,7 @@ export declare namespace Api {
|
|
|
4467
4274
|
type ResponseBody = BusinessFacetsResponse;
|
|
4468
4275
|
}
|
|
4469
4276
|
/**
|
|
4470
|
-
* @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.
|
|
4277
|
+
* @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.
|
|
4471
4278
|
* @tags Businesses
|
|
4472
4279
|
* @name V1BusinessesMapTopList
|
|
4473
4280
|
* @summary Top company per Bundesland or city
|
|
@@ -5011,130 +4818,425 @@ export declare namespace Api {
|
|
|
5011
4818
|
*/
|
|
5012
4819
|
"guv.Umsatzerloese_gte"?: number | null;
|
|
5013
4820
|
/**
|
|
5014
|
-
* Upper bound (inclusive) for Filter by profit and loss item: Umsatzerloese
|
|
5015
|
-
* @format decimal
|
|
4821
|
+
* Upper bound (inclusive) for Filter by profit and loss item: Umsatzerloese
|
|
4822
|
+
* @format decimal
|
|
4823
|
+
*/
|
|
4824
|
+
"guv.Umsatzerloese_lte"?: number | null;
|
|
4825
|
+
/**
|
|
4826
|
+
* Lower bound (inclusive) for Filter by profit and loss item: WarenUndMaterialeinkauf
|
|
4827
|
+
* @format decimal
|
|
4828
|
+
*/
|
|
4829
|
+
"guv.WarenUndMaterialeinkauf_gte"?: number | null;
|
|
4830
|
+
/**
|
|
4831
|
+
* Upper bound (inclusive) for Filter by profit and loss item: WarenUndMaterialeinkauf
|
|
4832
|
+
* @format decimal
|
|
4833
|
+
*/
|
|
4834
|
+
"guv.WarenUndMaterialeinkauf_lte"?: number | null;
|
|
4835
|
+
/**
|
|
4836
|
+
* Lower bound (inclusive) for Filter by profit and loss item: ZinsenUndAehnlicheAufwendungen
|
|
4837
|
+
* @format decimal
|
|
4838
|
+
*/
|
|
4839
|
+
"guv.ZinsenUndAehnlicheAufwendungen_gte"?: number | null;
|
|
4840
|
+
/**
|
|
4841
|
+
* Upper bound (inclusive) for Filter by profit and loss item: ZinsenUndAehnlicheAufwendungen
|
|
4842
|
+
* @format decimal
|
|
4843
|
+
*/
|
|
4844
|
+
"guv.ZinsenUndAehnlicheAufwendungen_lte"?: number | null;
|
|
4845
|
+
};
|
|
4846
|
+
type RequestBody = never;
|
|
4847
|
+
type RequestHeaders = {};
|
|
4848
|
+
type ResponseBody = BusinessMapTopItem[];
|
|
4849
|
+
}
|
|
4850
|
+
/**
|
|
4851
|
+
* @description Active businesses similar to the given one (same OeNACE branch, same region preferred). Kostet 3 Credits.
|
|
4852
|
+
* @tags Businesses
|
|
4853
|
+
* @name V1BusinessesSimilarList
|
|
4854
|
+
* @summary Similar companies
|
|
4855
|
+
* @request GET:/api/v1/businesses/{fnr}/similar
|
|
4856
|
+
* @secure
|
|
4857
|
+
*/
|
|
4858
|
+
namespace V1BusinessesSimilarList {
|
|
4859
|
+
type RequestParams = {
|
|
4860
|
+
fnr: string;
|
|
4861
|
+
};
|
|
4862
|
+
type RequestQuery = {};
|
|
4863
|
+
type RequestBody = never;
|
|
4864
|
+
type RequestHeaders = {};
|
|
4865
|
+
type ResponseBody = BusinessListResponse[];
|
|
4866
|
+
}
|
|
4867
|
+
/**
|
|
4868
|
+
* @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.
|
|
4869
|
+
* @tags Businesses
|
|
4870
|
+
* @name V1BusinessesDetail
|
|
4871
|
+
* @summary Company Firmenakte
|
|
4872
|
+
* @request GET:/api/v1/businesses/{fnr}
|
|
4873
|
+
* @secure
|
|
4874
|
+
*/
|
|
4875
|
+
namespace V1BusinessesDetail {
|
|
4876
|
+
type RequestParams = {
|
|
4877
|
+
fnr: string;
|
|
4878
|
+
};
|
|
4879
|
+
type RequestQuery = {};
|
|
4880
|
+
type RequestBody = never;
|
|
4881
|
+
type RequestHeaders = {};
|
|
4882
|
+
type ResponseBody = BusinessDetailResponse;
|
|
4883
|
+
}
|
|
4884
|
+
/**
|
|
4885
|
+
* @description Every parsed Jahresabschluss of one company, one entry per fiscal closing date, newest first. The Firmenakte itself (GET /businesses/{fnr}) carries only the last five periods. 404 only where the company itself is unknown, exactly as on GET /businesses/{fnr}. Kostet 1 Credit.
|
|
4886
|
+
* @tags Businesses
|
|
4887
|
+
* @name V1BusinessesJahresabschluesseList
|
|
4888
|
+
* @summary Company annual accounts
|
|
4889
|
+
* @request GET:/api/v1/businesses/{fnr}/jahresabschluesse
|
|
4890
|
+
* @secure
|
|
4891
|
+
*/
|
|
4892
|
+
namespace V1BusinessesJahresabschluesseList {
|
|
4893
|
+
type RequestParams = {
|
|
4894
|
+
fnr: string;
|
|
4895
|
+
};
|
|
4896
|
+
type RequestQuery = {};
|
|
4897
|
+
type RequestBody = never;
|
|
4898
|
+
type RequestHeaders = {};
|
|
4899
|
+
type ResponseBody = ParsedJahresabschlussDto[];
|
|
4900
|
+
}
|
|
4901
|
+
/**
|
|
4902
|
+
* @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.
|
|
4903
|
+
* @tags Businesses
|
|
4904
|
+
* @name V1BusinessesFoerderungenList
|
|
4905
|
+
* @summary Company Foerderungen
|
|
4906
|
+
* @request GET:/api/v1/businesses/{fnr}/foerderungen
|
|
4907
|
+
* @secure
|
|
4908
|
+
*/
|
|
4909
|
+
namespace V1BusinessesFoerderungenList {
|
|
4910
|
+
type RequestParams = {
|
|
4911
|
+
fnr: string;
|
|
4912
|
+
};
|
|
4913
|
+
type RequestQuery = {};
|
|
4914
|
+
type RequestBody = never;
|
|
4915
|
+
type RequestHeaders = {};
|
|
4916
|
+
type ResponseBody = BusinessFoerderungenResponse;
|
|
4917
|
+
}
|
|
4918
|
+
/**
|
|
4919
|
+
* @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.
|
|
4920
|
+
* @tags Businesses
|
|
4921
|
+
* @name V1BusinessesChangesDetail
|
|
4922
|
+
* @summary Firmenbuch change by id
|
|
4923
|
+
* @request GET:/api/v1/businesses/changes/{id}
|
|
4924
|
+
* @secure
|
|
4925
|
+
*/
|
|
4926
|
+
namespace V1BusinessesChangesDetail {
|
|
4927
|
+
type RequestParams = {
|
|
4928
|
+
/** @format int64 */
|
|
4929
|
+
id: number;
|
|
4930
|
+
};
|
|
4931
|
+
type RequestQuery = {};
|
|
4932
|
+
type RequestBody = never;
|
|
4933
|
+
type RequestHeaders = {};
|
|
4934
|
+
type ResponseBody = BusinessChange;
|
|
4935
|
+
}
|
|
4936
|
+
/**
|
|
4937
|
+
* @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.
|
|
4938
|
+
* @tags Businesses
|
|
4939
|
+
* @name V1BusinessesChangesList
|
|
4940
|
+
* @summary Firmenbuch change feed
|
|
4941
|
+
* @request GET:/api/v1/businesses/changes
|
|
4942
|
+
* @secure
|
|
4943
|
+
*/
|
|
4944
|
+
namespace V1BusinessesChangesList {
|
|
4945
|
+
type RequestParams = {};
|
|
4946
|
+
type RequestQuery = {
|
|
4947
|
+
/** 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. */
|
|
4948
|
+
fnr?: string;
|
|
4949
|
+
/**
|
|
4950
|
+
* 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.
|
|
4951
|
+
* @format date-time
|
|
4952
|
+
*/
|
|
4953
|
+
since?: string;
|
|
4954
|
+
/**
|
|
4955
|
+
* 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.
|
|
4956
|
+
* @format int64
|
|
4957
|
+
*/
|
|
4958
|
+
sinceId?: number;
|
|
4959
|
+
/**
|
|
4960
|
+
* 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.
|
|
4961
|
+
* @format int32
|
|
4962
|
+
* @min 1
|
|
4963
|
+
* @max 1000
|
|
4964
|
+
*/
|
|
4965
|
+
page?: number;
|
|
4966
|
+
/**
|
|
4967
|
+
* Number of items per page; defaults to 100 when omitted. A page shorter than this is the end of the feed.
|
|
4968
|
+
* @format int32
|
|
4969
|
+
* @min 1
|
|
4970
|
+
* @max 100
|
|
4971
|
+
*/
|
|
4972
|
+
pageSize?: number;
|
|
4973
|
+
};
|
|
4974
|
+
type RequestBody = never;
|
|
4975
|
+
type RequestHeaders = {};
|
|
4976
|
+
type ResponseBody = PagedResponseOfBusinessChange;
|
|
4977
|
+
}
|
|
4978
|
+
/**
|
|
4979
|
+
* @description Returns unique City+ZipCode combinations from addresses with pagination and optional search. Kostet 1 Credit.
|
|
4980
|
+
* @tags Addresses
|
|
4981
|
+
* @name V1AddressesLocationsList
|
|
4982
|
+
* @summary City and ZIP combinations
|
|
4983
|
+
* @request GET:/api/v1/addresses/locations
|
|
4984
|
+
* @secure
|
|
4985
|
+
*/
|
|
4986
|
+
namespace V1AddressesLocationsList {
|
|
4987
|
+
type RequestParams = {};
|
|
4988
|
+
type RequestQuery = {
|
|
4989
|
+
search?: string;
|
|
4990
|
+
/**
|
|
4991
|
+
* 1-based page number; defaults to 1 when omitted.
|
|
4992
|
+
* @format int32
|
|
4993
|
+
* @min 1
|
|
4994
|
+
* @max 1000
|
|
4995
|
+
*/
|
|
4996
|
+
page?: number;
|
|
4997
|
+
/**
|
|
4998
|
+
* Number of items per page; defaults to 10 when omitted.
|
|
4999
|
+
* @format int32
|
|
5000
|
+
* @min 1
|
|
5001
|
+
* @max 100
|
|
5002
|
+
*/
|
|
5003
|
+
pageSize?: number;
|
|
5004
|
+
};
|
|
5005
|
+
type RequestBody = never;
|
|
5006
|
+
type RequestHeaders = {};
|
|
5007
|
+
type ResponseBody = PagedResponseOfAddressLocationResponse;
|
|
5008
|
+
}
|
|
5009
|
+
/**
|
|
5010
|
+
* @description Returns unique cities from addresses with pagination and optional search. Kostet 1 Credit.
|
|
5011
|
+
* @tags Addresses
|
|
5012
|
+
* @name V1AddressesCitiesList
|
|
5013
|
+
* @summary Cities
|
|
5014
|
+
* @request GET:/api/v1/addresses/cities
|
|
5015
|
+
* @secure
|
|
5016
|
+
*/
|
|
5017
|
+
namespace V1AddressesCitiesList {
|
|
5018
|
+
type RequestParams = {};
|
|
5019
|
+
type RequestQuery = {
|
|
5020
|
+
search?: string;
|
|
5021
|
+
/**
|
|
5022
|
+
* 1-based page number; defaults to 1 when omitted.
|
|
5023
|
+
* @format int32
|
|
5024
|
+
* @min 1
|
|
5025
|
+
* @max 1000
|
|
5016
5026
|
*/
|
|
5017
|
-
|
|
5027
|
+
page?: number;
|
|
5018
5028
|
/**
|
|
5019
|
-
*
|
|
5020
|
-
* @format
|
|
5029
|
+
* Number of items per page; defaults to 10 when omitted.
|
|
5030
|
+
* @format int32
|
|
5031
|
+
* @min 1
|
|
5032
|
+
* @max 100
|
|
5021
5033
|
*/
|
|
5022
|
-
|
|
5034
|
+
pageSize?: number;
|
|
5035
|
+
};
|
|
5036
|
+
type RequestBody = never;
|
|
5037
|
+
type RequestHeaders = {};
|
|
5038
|
+
type ResponseBody = PagedResponseOfCityResponse;
|
|
5039
|
+
}
|
|
5040
|
+
/**
|
|
5041
|
+
* @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.
|
|
5042
|
+
* @tags Addresses
|
|
5043
|
+
* @name V1AddressesSuggestList
|
|
5044
|
+
* @summary Location autocomplete
|
|
5045
|
+
* @request GET:/api/v1/addresses/suggest
|
|
5046
|
+
* @secure
|
|
5047
|
+
*/
|
|
5048
|
+
namespace V1AddressesSuggestList {
|
|
5049
|
+
type RequestParams = {};
|
|
5050
|
+
type RequestQuery = {
|
|
5051
|
+
/** The term to rank against. Shorter than two characters it is ignored entirely and the biggest groups come back instead. */
|
|
5052
|
+
search?: string;
|
|
5023
5053
|
/**
|
|
5024
|
-
*
|
|
5025
|
-
* @format
|
|
5054
|
+
* How many suggestions to answer, across both lists; defaults to 10 when omitted.
|
|
5055
|
+
* @format int32
|
|
5026
5056
|
*/
|
|
5027
|
-
|
|
5057
|
+
top?: number;
|
|
5058
|
+
};
|
|
5059
|
+
type RequestBody = never;
|
|
5060
|
+
type RequestHeaders = {};
|
|
5061
|
+
type ResponseBody = LocationSuggestionsResponse;
|
|
5062
|
+
}
|
|
5063
|
+
/**
|
|
5064
|
+
* @description Returns unique zip codes from addresses with pagination and optional search. Kostet 1 Credit.
|
|
5065
|
+
* @tags Addresses
|
|
5066
|
+
* @name V1AddressesZipcodesList
|
|
5067
|
+
* @summary ZIP codes
|
|
5068
|
+
* @request GET:/api/v1/addresses/zipcodes
|
|
5069
|
+
* @secure
|
|
5070
|
+
*/
|
|
5071
|
+
namespace V1AddressesZipcodesList {
|
|
5072
|
+
type RequestParams = {};
|
|
5073
|
+
type RequestQuery = {
|
|
5074
|
+
search?: string;
|
|
5028
5075
|
/**
|
|
5029
|
-
*
|
|
5030
|
-
* @format
|
|
5076
|
+
* 1-based page number; defaults to 1 when omitted.
|
|
5077
|
+
* @format int32
|
|
5078
|
+
* @min 1
|
|
5079
|
+
* @max 1000
|
|
5031
5080
|
*/
|
|
5032
|
-
|
|
5081
|
+
page?: number;
|
|
5033
5082
|
/**
|
|
5034
|
-
*
|
|
5035
|
-
* @format
|
|
5083
|
+
* Number of items per page; defaults to 10 when omitted.
|
|
5084
|
+
* @format int32
|
|
5085
|
+
* @min 1
|
|
5086
|
+
* @max 100
|
|
5036
5087
|
*/
|
|
5037
|
-
|
|
5088
|
+
pageSize?: number;
|
|
5038
5089
|
};
|
|
5039
5090
|
type RequestBody = never;
|
|
5040
5091
|
type RequestHeaders = {};
|
|
5041
|
-
type ResponseBody =
|
|
5092
|
+
type ResponseBody = PagedResponseOfZipCodeResponse;
|
|
5042
5093
|
}
|
|
5043
5094
|
/**
|
|
5044
|
-
* @description
|
|
5045
|
-
* @tags
|
|
5046
|
-
* @name
|
|
5047
|
-
* @summary
|
|
5048
|
-
* @request GET:/api/v1/
|
|
5095
|
+
* @description The Gemeinde catalogue: one row per Austrian Gemeinde the register can address, with its official name, its URL slug, its Bundesland and that Land's slug, the PLZ that resolve to it, the alias slugs that name it and, for Wien, its Bezirke. This is the one source for a place's identity. The city column of an address is Firmenbuch free text and carries "Klagenfurt am Wörthersee", "Klagenfurt", "Klagenfurt-Viktring" and "Klagenfurt-Wölfnitz" side by side, so it cannot be a key; a Gemeinde is derived from the PLZ of the Geschäftsanschrift instead, and GET /businesses?gemeinde=<slug> answers every one of those spellings at once. Fold the zipCode buckets of GET /businesses/aggregate through zipCodes to count companies per Gemeinde. Unpaged and without a filter on purpose: 1.893 rows that change only with a new Gebietsstand, so one cacheable answer is cheaper for every caller than paging a list they all want whole. Companies with a foreign or unusable PLZ resolve to no Gemeinde and appear under none. Kostet 1 Credit.
|
|
5096
|
+
* @tags Addresses
|
|
5097
|
+
* @name V1AddressesGemeindenList
|
|
5098
|
+
* @summary Gemeinden
|
|
5099
|
+
* @request GET:/api/v1/addresses/gemeinden
|
|
5049
5100
|
* @secure
|
|
5050
5101
|
*/
|
|
5051
|
-
namespace
|
|
5052
|
-
type RequestParams = {
|
|
5053
|
-
fnr: string;
|
|
5054
|
-
};
|
|
5102
|
+
namespace V1AddressesGemeindenList {
|
|
5103
|
+
type RequestParams = {};
|
|
5055
5104
|
type RequestQuery = {};
|
|
5056
5105
|
type RequestBody = never;
|
|
5057
5106
|
type RequestHeaders = {};
|
|
5058
|
-
type ResponseBody =
|
|
5107
|
+
type ResponseBody = GemeindeResponse[];
|
|
5059
5108
|
}
|
|
5060
5109
|
/**
|
|
5061
|
-
* @description
|
|
5062
|
-
* @tags
|
|
5063
|
-
* @name
|
|
5064
|
-
* @summary
|
|
5065
|
-
* @request GET:/api/v1/
|
|
5110
|
+
* @description Downloads a Firmenbuch document (PDF/XML) by its document key. Kostet 3 Credits.
|
|
5111
|
+
* @tags Documents
|
|
5112
|
+
* @name V1DocumentsDownloadDetail
|
|
5113
|
+
* @summary Firmenbuch document download
|
|
5114
|
+
* @request GET:/api/v1/documents/download/{documentKey}
|
|
5066
5115
|
* @secure
|
|
5067
5116
|
*/
|
|
5068
|
-
namespace
|
|
5117
|
+
namespace V1DocumentsDownloadDetail {
|
|
5069
5118
|
type RequestParams = {
|
|
5070
|
-
|
|
5119
|
+
documentKey: string;
|
|
5071
5120
|
};
|
|
5072
5121
|
type RequestQuery = {};
|
|
5073
5122
|
type RequestBody = never;
|
|
5074
5123
|
type RequestHeaders = {};
|
|
5075
|
-
type ResponseBody =
|
|
5124
|
+
type ResponseBody = void;
|
|
5076
5125
|
}
|
|
5077
5126
|
/**
|
|
5078
|
-
* @description
|
|
5079
|
-
* @tags
|
|
5080
|
-
* @name
|
|
5081
|
-
* @summary
|
|
5082
|
-
* @request GET:/api/v1/
|
|
5127
|
+
* @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.
|
|
5128
|
+
* @tags Documents
|
|
5129
|
+
* @name V1DocumentsChangesDetail
|
|
5130
|
+
* @summary Document change by id
|
|
5131
|
+
* @request GET:/api/v1/documents/changes/{id}
|
|
5083
5132
|
* @secure
|
|
5084
5133
|
*/
|
|
5085
|
-
namespace
|
|
5134
|
+
namespace V1DocumentsChangesDetail {
|
|
5086
5135
|
type RequestParams = {
|
|
5087
|
-
|
|
5136
|
+
/** @format int64 */
|
|
5137
|
+
id: number;
|
|
5088
5138
|
};
|
|
5089
5139
|
type RequestQuery = {};
|
|
5090
5140
|
type RequestBody = never;
|
|
5091
5141
|
type RequestHeaders = {};
|
|
5092
|
-
type ResponseBody =
|
|
5142
|
+
type ResponseBody = DocumentChange;
|
|
5093
5143
|
}
|
|
5094
5144
|
/**
|
|
5095
|
-
* @description
|
|
5096
|
-
* @tags
|
|
5097
|
-
* @name
|
|
5098
|
-
* @summary
|
|
5099
|
-
* @request GET:/api/v1/
|
|
5145
|
+
* @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.
|
|
5146
|
+
* @tags Documents
|
|
5147
|
+
* @name V1DocumentsChangesList
|
|
5148
|
+
* @summary Document change feed
|
|
5149
|
+
* @request GET:/api/v1/documents/changes
|
|
5100
5150
|
* @secure
|
|
5101
5151
|
*/
|
|
5102
|
-
namespace
|
|
5103
|
-
type RequestParams = {
|
|
5104
|
-
|
|
5152
|
+
namespace V1DocumentsChangesList {
|
|
5153
|
+
type RequestParams = {};
|
|
5154
|
+
type RequestQuery = {
|
|
5155
|
+
/** 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. */
|
|
5156
|
+
fnr?: string;
|
|
5157
|
+
/**
|
|
5158
|
+
* 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.
|
|
5159
|
+
* @format date-time
|
|
5160
|
+
*/
|
|
5161
|
+
since?: string;
|
|
5162
|
+
/**
|
|
5163
|
+
* 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.
|
|
5164
|
+
* @format int64
|
|
5165
|
+
*/
|
|
5166
|
+
sinceId?: number;
|
|
5167
|
+
/**
|
|
5168
|
+
* 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.
|
|
5169
|
+
* @format int32
|
|
5170
|
+
* @min 1
|
|
5171
|
+
* @max 1000
|
|
5172
|
+
*/
|
|
5173
|
+
page?: number;
|
|
5174
|
+
/**
|
|
5175
|
+
* Number of items per page; defaults to 100 when omitted. A page shorter than this is the end of the feed.
|
|
5176
|
+
* @format int32
|
|
5177
|
+
* @min 1
|
|
5178
|
+
* @max 100
|
|
5179
|
+
*/
|
|
5180
|
+
pageSize?: number;
|
|
5105
5181
|
};
|
|
5106
|
-
type RequestQuery = {};
|
|
5107
5182
|
type RequestBody = never;
|
|
5108
5183
|
type RequestHeaders = {};
|
|
5109
|
-
type ResponseBody =
|
|
5184
|
+
type ResponseBody = PagedResponseOfDocumentChange;
|
|
5110
5185
|
}
|
|
5111
5186
|
/**
|
|
5112
|
-
* @description
|
|
5113
|
-
* @tags
|
|
5114
|
-
* @name
|
|
5115
|
-
* @summary
|
|
5116
|
-
* @request GET:/api/v1/
|
|
5187
|
+
* @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.
|
|
5188
|
+
* @tags Search
|
|
5189
|
+
* @name V1SearchList
|
|
5190
|
+
* @summary Companies and people in one ranked list
|
|
5191
|
+
* @request GET:/api/v1/search
|
|
5117
5192
|
* @secure
|
|
5118
5193
|
*/
|
|
5119
|
-
namespace
|
|
5120
|
-
type RequestParams = {
|
|
5121
|
-
|
|
5122
|
-
|
|
5194
|
+
namespace V1SearchList {
|
|
5195
|
+
type RequestParams = {};
|
|
5196
|
+
type RequestQuery = {
|
|
5197
|
+
/** The term. Empty answers an empty list — this endpoint suggests, it does not list. */
|
|
5198
|
+
search?: string;
|
|
5199
|
+
/**
|
|
5200
|
+
* How many rows to take from each side before they are ranked together, so the answer holds at most twice this many; defaults to 10 when omitted.
|
|
5201
|
+
* @format int32
|
|
5202
|
+
* @min 1
|
|
5203
|
+
* @max 100
|
|
5204
|
+
*/
|
|
5205
|
+
pageSize?: number;
|
|
5123
5206
|
};
|
|
5124
|
-
type RequestQuery = {};
|
|
5125
5207
|
type RequestBody = never;
|
|
5126
5208
|
type RequestHeaders = {};
|
|
5127
|
-
type ResponseBody =
|
|
5209
|
+
type ResponseBody = SearchResponse;
|
|
5128
5210
|
}
|
|
5129
5211
|
/**
|
|
5130
|
-
* @description
|
|
5131
|
-
* @tags
|
|
5132
|
-
* @name
|
|
5133
|
-
* @summary
|
|
5134
|
-
* @request GET:/api/v1/
|
|
5212
|
+
* @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} — a person's is the Firmenakte-ID, e.g. "P-7K3M-QX91"; 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. personId answers on the canonical Firmenakte-ID; another spelling of it and a person's old "vorname-nachname-…" id answer one 308 whose relative Location carries the canonical form. Kostet 3 Credits.
|
|
5213
|
+
* @tags Graph
|
|
5214
|
+
* @name V1GraphList
|
|
5215
|
+
* @summary Relationship graph
|
|
5216
|
+
* @request GET:/api/v1/graph
|
|
5135
5217
|
* @secure
|
|
5136
5218
|
*/
|
|
5137
|
-
namespace
|
|
5219
|
+
namespace V1GraphList {
|
|
5220
|
+
type RequestParams = {};
|
|
5221
|
+
type RequestQuery = {
|
|
5222
|
+
/** Start from this person, by Firmenakte-ID ("P-7K3M-QX91"). Mutually exclusive with fnr. */
|
|
5223
|
+
personId?: string;
|
|
5224
|
+
/** Start from this company. Normalised before matching — trimmed, spaces and leading zeros removed — so 034853 f and 34853f are the same company; case is not folded. Mutually exclusive with personId. */
|
|
5225
|
+
fnr?: string;
|
|
5226
|
+
};
|
|
5227
|
+
type RequestBody = never;
|
|
5228
|
+
type RequestHeaders = {};
|
|
5229
|
+
type ResponseBody = GraphResponse;
|
|
5230
|
+
}
|
|
5231
|
+
/**
|
|
5232
|
+
* @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.
|
|
5233
|
+
* @tags GlobalChanges
|
|
5234
|
+
* @name V1GlobalchangesList
|
|
5235
|
+
* @summary All-register change feed
|
|
5236
|
+
* @request GET:/api/v1/globalchanges
|
|
5237
|
+
* @secure
|
|
5238
|
+
*/
|
|
5239
|
+
namespace V1GlobalchangesList {
|
|
5138
5240
|
type RequestParams = {};
|
|
5139
5241
|
type RequestQuery = {
|
|
5140
5242
|
/** 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. */
|
|
@@ -5166,35 +5268,74 @@ export declare namespace Api {
|
|
|
5166
5268
|
};
|
|
5167
5269
|
type RequestBody = never;
|
|
5168
5270
|
type RequestHeaders = {};
|
|
5169
|
-
type ResponseBody =
|
|
5271
|
+
type ResponseBody = PagedResponseOfGlobalChange;
|
|
5272
|
+
}
|
|
5273
|
+
/**
|
|
5274
|
+
* @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.
|
|
5275
|
+
* @tags GlobalChanges
|
|
5276
|
+
* @name V1GlobalchangesAggregatedList
|
|
5277
|
+
* @summary Aggregated watchlist changes
|
|
5278
|
+
* @request GET:/api/v1/globalchanges/aggregated
|
|
5279
|
+
* @secure
|
|
5280
|
+
*/
|
|
5281
|
+
namespace V1GlobalchangesAggregatedList {
|
|
5282
|
+
type RequestParams = {};
|
|
5283
|
+
type RequestQuery = {
|
|
5284
|
+
/** Firmenbuch numbers to fetch changes for. Max 1000 items. Each is 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. */
|
|
5285
|
+
fnr?: string[];
|
|
5286
|
+
/** @format date-time */
|
|
5287
|
+
since?: string;
|
|
5288
|
+
/** @format int64 */
|
|
5289
|
+
sinceId?: number;
|
|
5290
|
+
/**
|
|
5291
|
+
* Max number of changes to return per type. Default 500, max 2000.
|
|
5292
|
+
* @format int32
|
|
5293
|
+
* @min 1
|
|
5294
|
+
* @max 2000
|
|
5295
|
+
*/
|
|
5296
|
+
maxResultsPerType?: number;
|
|
5297
|
+
};
|
|
5298
|
+
type RequestBody = never;
|
|
5299
|
+
type RequestHeaders = {};
|
|
5300
|
+
type ResponseBody = AggregatedChangesResponse;
|
|
5170
5301
|
}
|
|
5171
5302
|
/**
|
|
5172
|
-
* @description Returns
|
|
5173
|
-
* @tags
|
|
5174
|
-
* @name
|
|
5175
|
-
* @summary
|
|
5176
|
-
* @request GET:/api/v1/
|
|
5303
|
+
* @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.
|
|
5304
|
+
* @tags GlobalChanges
|
|
5305
|
+
* @name V1GlobalchangesDetail
|
|
5306
|
+
* @summary Change by id
|
|
5307
|
+
* @request GET:/api/v1/globalchanges/{id}
|
|
5177
5308
|
* @secure
|
|
5178
5309
|
*/
|
|
5179
|
-
namespace
|
|
5180
|
-
type RequestParams = {
|
|
5310
|
+
namespace V1GlobalchangesDetail {
|
|
5311
|
+
type RequestParams = {
|
|
5312
|
+
/** @format int64 */
|
|
5313
|
+
id: number;
|
|
5314
|
+
};
|
|
5181
5315
|
type RequestQuery = {};
|
|
5182
5316
|
type RequestBody = never;
|
|
5183
5317
|
type RequestHeaders = {};
|
|
5184
|
-
type ResponseBody =
|
|
5318
|
+
type ResponseBody = ChangeDetailResponse;
|
|
5185
5319
|
}
|
|
5186
5320
|
/**
|
|
5187
|
-
* @description Returns
|
|
5188
|
-
* @tags
|
|
5189
|
-
* @name
|
|
5190
|
-
* @summary
|
|
5191
|
-
* @request GET:/api/v1/
|
|
5321
|
+
* @description Returns the OeNACE classification catalog with company counts. Results are ordered by company count descending — most used first. Kostet 1 Credit.
|
|
5322
|
+
* @tags Oenace
|
|
5323
|
+
* @name V1OenaceList
|
|
5324
|
+
* @summary OeNACE classification catalog
|
|
5325
|
+
* @request GET:/api/v1/oenace
|
|
5192
5326
|
* @secure
|
|
5193
5327
|
*/
|
|
5194
|
-
namespace
|
|
5328
|
+
namespace V1OenaceList {
|
|
5195
5329
|
type RequestParams = {};
|
|
5196
5330
|
type RequestQuery = {
|
|
5197
5331
|
search?: string;
|
|
5332
|
+
/**
|
|
5333
|
+
* Filter by hierarchy level (1–5). Omit to return all levels.
|
|
5334
|
+
* @format int32
|
|
5335
|
+
*/
|
|
5336
|
+
ebene?: number;
|
|
5337
|
+
/** @format int32 */
|
|
5338
|
+
minCompanyCount?: number;
|
|
5198
5339
|
/**
|
|
5199
5340
|
* 1-based page number; defaults to 1 when omitted.
|
|
5200
5341
|
* @format int32
|
|
@@ -5212,19 +5353,20 @@ export declare namespace Api {
|
|
|
5212
5353
|
};
|
|
5213
5354
|
type RequestBody = never;
|
|
5214
5355
|
type RequestHeaders = {};
|
|
5215
|
-
type ResponseBody =
|
|
5356
|
+
type ResponseBody = PagedResponseOfOenaceCatalogItemResponse;
|
|
5216
5357
|
}
|
|
5217
5358
|
/**
|
|
5218
|
-
* @description Returns
|
|
5219
|
-
* @tags
|
|
5220
|
-
* @name
|
|
5221
|
-
* @summary
|
|
5222
|
-
* @request GET:/api/v1/
|
|
5359
|
+
* @description Returns all legal forms with pagination and optional search, sorted by business count descending. Kostet 1 Credit.
|
|
5360
|
+
* @tags LegalForms
|
|
5361
|
+
* @name V1LegalformsList
|
|
5362
|
+
* @summary Legal form catalog
|
|
5363
|
+
* @request GET:/api/v1/legalforms
|
|
5223
5364
|
* @secure
|
|
5224
5365
|
*/
|
|
5225
|
-
namespace
|
|
5366
|
+
namespace V1LegalformsList {
|
|
5226
5367
|
type RequestParams = {};
|
|
5227
5368
|
type RequestQuery = {
|
|
5369
|
+
/** @maxLength 200 */
|
|
5228
5370
|
search?: string;
|
|
5229
5371
|
/**
|
|
5230
5372
|
* 1-based page number; defaults to 1 when omitted.
|
|
@@ -5243,42 +5385,20 @@ export declare namespace Api {
|
|
|
5243
5385
|
};
|
|
5244
5386
|
type RequestBody = never;
|
|
5245
5387
|
type RequestHeaders = {};
|
|
5246
|
-
type ResponseBody =
|
|
5247
|
-
}
|
|
5248
|
-
/**
|
|
5249
|
-
* @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. Ohne API-Key abrufbar und kostet keine Credits.
|
|
5250
|
-
* @tags Addresses
|
|
5251
|
-
* @name V1AddressesSuggestList
|
|
5252
|
-
* @summary Location autocomplete
|
|
5253
|
-
* @request GET:/api/v1/addresses/suggest
|
|
5254
|
-
* @secure
|
|
5255
|
-
*/
|
|
5256
|
-
namespace V1AddressesSuggestList {
|
|
5257
|
-
type RequestParams = {};
|
|
5258
|
-
type RequestQuery = {
|
|
5259
|
-
/** The term to rank against. Shorter than two characters it is ignored entirely and the biggest groups come back instead. */
|
|
5260
|
-
search?: string;
|
|
5261
|
-
/**
|
|
5262
|
-
* How many suggestions to answer, across both lists; defaults to 10 when omitted.
|
|
5263
|
-
* @format int32
|
|
5264
|
-
*/
|
|
5265
|
-
top?: number;
|
|
5266
|
-
};
|
|
5267
|
-
type RequestBody = never;
|
|
5268
|
-
type RequestHeaders = {};
|
|
5269
|
-
type ResponseBody = LocationSuggestionsResponse;
|
|
5388
|
+
type ResponseBody = PagedResponseOfLegalFormCatalogItemResponse;
|
|
5270
5389
|
}
|
|
5271
5390
|
/**
|
|
5272
|
-
* @description Returns
|
|
5273
|
-
* @tags
|
|
5274
|
-
* @name
|
|
5275
|
-
* @summary
|
|
5276
|
-
* @request GET:/api/v1/
|
|
5391
|
+
* @description Returns all courts with pagination and optional search, sorted by business count descending. Kostet 1 Credit.
|
|
5392
|
+
* @tags Courts
|
|
5393
|
+
* @name V1CourtsList
|
|
5394
|
+
* @summary Court catalog
|
|
5395
|
+
* @request GET:/api/v1/courts
|
|
5277
5396
|
* @secure
|
|
5278
5397
|
*/
|
|
5279
|
-
namespace
|
|
5398
|
+
namespace V1CourtsList {
|
|
5280
5399
|
type RequestParams = {};
|
|
5281
5400
|
type RequestQuery = {
|
|
5401
|
+
/** @maxLength 200 */
|
|
5282
5402
|
search?: string;
|
|
5283
5403
|
/**
|
|
5284
5404
|
* 1-based page number; defaults to 1 when omitted.
|
|
@@ -5297,22 +5417,22 @@ export declare namespace Api {
|
|
|
5297
5417
|
};
|
|
5298
5418
|
type RequestBody = never;
|
|
5299
5419
|
type RequestHeaders = {};
|
|
5300
|
-
type ResponseBody =
|
|
5420
|
+
type ResponseBody = PagedResponseOfCourtCatalogItemResponse;
|
|
5301
5421
|
}
|
|
5302
5422
|
/**
|
|
5303
|
-
* @description
|
|
5304
|
-
* @tags
|
|
5305
|
-
* @name
|
|
5306
|
-
* @summary
|
|
5307
|
-
* @request GET:/api/v1/
|
|
5423
|
+
* @description Returns all assignment functions (code/text lookup) for display. Cached 24h. Kostet 1 Credit.
|
|
5424
|
+
* @tags AssignmentFunctions
|
|
5425
|
+
* @name V1AssignmentfunctionsList
|
|
5426
|
+
* @summary Assignment function catalog
|
|
5427
|
+
* @request GET:/api/v1/assignmentfunctions
|
|
5308
5428
|
* @secure
|
|
5309
5429
|
*/
|
|
5310
|
-
namespace
|
|
5430
|
+
namespace V1AssignmentfunctionsList {
|
|
5311
5431
|
type RequestParams = {};
|
|
5312
5432
|
type RequestQuery = {};
|
|
5313
5433
|
type RequestBody = never;
|
|
5314
5434
|
type RequestHeaders = {};
|
|
5315
|
-
type ResponseBody =
|
|
5435
|
+
type ResponseBody = AssignmentFunctionItemResponse[];
|
|
5316
5436
|
}
|
|
5317
5437
|
}
|
|
5318
5438
|
export type QueryParamsType = Record<string | number, any>;
|
|
@@ -5375,7 +5495,7 @@ export declare class HttpClient<SecurityDataType = unknown> {
|
|
|
5375
5495
|
request: <T = any, E = any>({ body, secure, path, type, query, format, baseUrl, cancelToken, ...params }: FullRequestParams) => Promise<HttpResponse<T, E>>;
|
|
5376
5496
|
}
|
|
5377
5497
|
/**
|
|
5378
|
-
* @title
|
|
5498
|
+
* @title Firmenakte API
|
|
5379
5499
|
* @version v1
|
|
5380
5500
|
* @baseUrl https://api.firmenakte.at
|
|
5381
5501
|
*/
|
|
@@ -5490,255 +5610,53 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
|
|
|
5490
5610
|
* @request POST:/api/v1/lists/{id}/add
|
|
5491
5611
|
* @secure
|
|
5492
5612
|
*/
|
|
5493
|
-
v1ListsAddCreate: (id: string, data: ListMembersRequest, params?: RequestParams) => Promise<HttpResponse<ListResponse, ApiError | ProblemDetails>>;
|
|
5494
|
-
/**
|
|
5495
|
-
* @description Takes the companies off the Liste and records them as removed. Kostet 1 Credit.
|
|
5496
|
-
*
|
|
5497
|
-
* @tags Lists
|
|
5498
|
-
* @name V1ListsRemoveCreate
|
|
5499
|
-
* @summary Remove companies from a Liste
|
|
5500
|
-
* @request POST:/api/v1/lists/{id}/remove
|
|
5501
|
-
* @secure
|
|
5502
|
-
*/
|
|
5503
|
-
v1ListsRemoveCreate: (id: string, data: ListMembersRequest, params?: RequestParams) => Promise<HttpResponse<ListResponse, ApiError | ProblemDetails>>;
|
|
5504
|
-
/**
|
|
5505
|
-
* @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.
|
|
5506
|
-
*
|
|
5507
|
-
* @tags Exports
|
|
5508
|
-
* @name V1ExportsBusinessesCreate
|
|
5509
|
-
* @summary Export companies
|
|
5510
|
-
* @request POST:/api/v1/exports/businesses
|
|
5511
|
-
* @secure
|
|
5512
|
-
*/
|
|
5513
|
-
v1ExportsBusinessesCreate: (data: ExportBusinessesRequest, params?: RequestParams) => Promise<HttpResponse<FileResult, ApiError | ProblemDetails>>;
|
|
5514
|
-
/**
|
|
5515
|
-
* @description Downloads the signed GISA PDF extract for a license (GISA-Zahl). Language defaults to German (De). Kostet 3 Credits.
|
|
5516
|
-
*
|
|
5517
|
-
* @tags Trades
|
|
5518
|
-
* @name V1TradesDocumentsDetail
|
|
5519
|
-
* @summary GISA PDF extract
|
|
5520
|
-
* @request GET:/api/v1/trades/documents/{gisaZahl}
|
|
5521
|
-
* @secure
|
|
5522
|
-
*/
|
|
5523
|
-
v1TradesDocumentsDetail: (gisaZahl: number, query?: {
|
|
5524
|
-
/** @default false */
|
|
5525
|
-
historical?: boolean;
|
|
5526
|
-
/** @default "De" */
|
|
5527
|
-
language?: "De" | "En";
|
|
5528
|
-
}, params?: RequestParams) => Promise<HttpResponse<Blob, ApiError | ProblemDetails>>;
|
|
5529
|
-
/**
|
|
5530
|
-
* @description Returns the global catalog of GISA Trade Definitions with pagination. Ohne API-Key abrufbar und kostet keine Credits.
|
|
5531
|
-
*
|
|
5532
|
-
* @tags Trades
|
|
5533
|
-
* @name V1TradesList
|
|
5534
|
-
* @summary GISA trade catalog
|
|
5535
|
-
* @request GET:/api/v1/trades
|
|
5536
|
-
* @secure
|
|
5537
|
-
*/
|
|
5538
|
-
v1TradesList: (query?: {
|
|
5539
|
-
search?: string;
|
|
5540
|
-
/** @format int32 */
|
|
5541
|
-
minCompanyCount?: number;
|
|
5542
|
-
/**
|
|
5543
|
-
* 1-based page number; defaults to 1 when omitted.
|
|
5544
|
-
* @format int32
|
|
5545
|
-
* @min 1
|
|
5546
|
-
* @max 1000
|
|
5547
|
-
*/
|
|
5548
|
-
page?: number;
|
|
5549
|
-
/**
|
|
5550
|
-
* Number of items per page; defaults to 10 when omitted.
|
|
5551
|
-
* @format int32
|
|
5552
|
-
* @min 1
|
|
5553
|
-
* @max 100
|
|
5554
|
-
*/
|
|
5555
|
-
pageSize?: number;
|
|
5556
|
-
}, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfTradeCatalogItemResponse, ApiError | ProblemDetails>>;
|
|
5557
|
-
/**
|
|
5558
|
-
* @description Returns all company licenses for a specific trade definition with pagination. Kostet 1 Credit.
|
|
5559
|
-
*
|
|
5560
|
-
* @tags Trades
|
|
5561
|
-
* @name V1TradesLicensesList
|
|
5562
|
-
* @summary Licenses by trade
|
|
5563
|
-
* @request GET:/api/v1/trades/{tradeKey}/licenses
|
|
5564
|
-
* @secure
|
|
5565
|
-
*/
|
|
5566
|
-
v1TradesLicensesList: (tradeKey: number, query?: {
|
|
5567
|
-
/**
|
|
5568
|
-
* 1-based page number; defaults to 1 when omitted.
|
|
5569
|
-
* @format int32
|
|
5570
|
-
* @min 1
|
|
5571
|
-
* @max 1000
|
|
5572
|
-
*/
|
|
5573
|
-
page?: number;
|
|
5574
|
-
/**
|
|
5575
|
-
* Number of items per page; defaults to 10 when omitted.
|
|
5576
|
-
* @format int32
|
|
5577
|
-
* @min 1
|
|
5578
|
-
* @max 100
|
|
5579
|
-
*/
|
|
5580
|
-
pageSize?: number;
|
|
5581
|
-
}, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfGisaLicense, ApiError | ProblemDetails>>;
|
|
5582
|
-
/**
|
|
5583
|
-
* @description Returns all licenses for a specific company (FNR). Kostet 1 Credit.
|
|
5584
|
-
*
|
|
5585
|
-
* @tags Trades
|
|
5586
|
-
* @name V1TradesCompanyDetail
|
|
5587
|
-
* @summary Company GISA licenses
|
|
5588
|
-
* @request GET:/api/v1/trades/company/{fnr}
|
|
5589
|
-
* @secure
|
|
5590
|
-
*/
|
|
5591
|
-
v1TradesCompanyDetail: (fnr: string, params?: RequestParams) => Promise<HttpResponse<GisaLicense[], ApiError | ProblemDetails>>;
|
|
5592
|
-
/**
|
|
5593
|
-
* @description Returns a single GISA change by id. Kostet 1 Credit.
|
|
5594
|
-
*
|
|
5595
|
-
* @tags Trades
|
|
5596
|
-
* @name V1TradesChangesDetail
|
|
5597
|
-
* @summary GISA change by id
|
|
5598
|
-
* @request GET:/api/v1/trades/changes/{id}
|
|
5599
|
-
* @secure
|
|
5600
|
-
*/
|
|
5601
|
-
v1TradesChangesDetail: (id: number, params?: RequestParams) => Promise<HttpResponse<GisaChange, ApiError | ProblemDetails>>;
|
|
5602
|
-
/**
|
|
5603
|
-
* @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.
|
|
5604
|
-
*
|
|
5605
|
-
* @tags Trades
|
|
5606
|
-
* @name V1TradesChangesList
|
|
5607
|
-
* @summary GISA change feed
|
|
5608
|
-
* @request GET:/api/v1/trades/changes
|
|
5609
|
-
* @secure
|
|
5610
|
-
*/
|
|
5611
|
-
v1TradesChangesList: (query?: {
|
|
5612
|
-
/** 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. */
|
|
5613
|
-
fnr?: string;
|
|
5614
|
-
/**
|
|
5615
|
-
* 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.
|
|
5616
|
-
* @format date-time
|
|
5617
|
-
*/
|
|
5618
|
-
since?: string;
|
|
5619
|
-
/**
|
|
5620
|
-
* 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.
|
|
5621
|
-
* @format int64
|
|
5622
|
-
*/
|
|
5623
|
-
sinceId?: number;
|
|
5624
|
-
/**
|
|
5625
|
-
* 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.
|
|
5626
|
-
* @format int32
|
|
5627
|
-
* @min 1
|
|
5628
|
-
* @max 1000
|
|
5629
|
-
*/
|
|
5630
|
-
page?: number;
|
|
5631
|
-
/**
|
|
5632
|
-
* Number of items per page; defaults to 100 when omitted. A page shorter than this is the end of the feed.
|
|
5633
|
-
* @format int32
|
|
5634
|
-
* @min 1
|
|
5635
|
-
* @max 100
|
|
5636
|
-
*/
|
|
5637
|
-
pageSize?: number;
|
|
5638
|
-
}, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfGisaChange, ApiError | ProblemDetails>>;
|
|
5639
|
-
/**
|
|
5640
|
-
* @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. Ohne API-Key abrufbar und kostet keine Credits.
|
|
5641
|
-
*
|
|
5642
|
-
* @tags Search
|
|
5643
|
-
* @name V1SearchList
|
|
5644
|
-
* @summary Companies and people in one ranked list
|
|
5645
|
-
* @request GET:/api/v1/search
|
|
5646
|
-
* @secure
|
|
5647
|
-
*/
|
|
5648
|
-
v1SearchList: (query?: {
|
|
5649
|
-
/** The term. Empty answers an empty list — this endpoint suggests, it does not list. */
|
|
5650
|
-
search?: string;
|
|
5651
|
-
/**
|
|
5652
|
-
* How many rows to take from each side before they are ranked together, so the answer holds at most twice this many; defaults to 10 when omitted.
|
|
5653
|
-
* @format int32
|
|
5654
|
-
* @min 1
|
|
5655
|
-
* @max 100
|
|
5656
|
-
*/
|
|
5657
|
-
pageSize?: number;
|
|
5658
|
-
}, params?: RequestParams) => Promise<HttpResponse<SearchResponse, ApiError | ProblemDetails>>;
|
|
5613
|
+
v1ListsAddCreate: (id: string, data: ListMembersRequest, params?: RequestParams) => Promise<HttpResponse<ListResponse, ApiError | ProblemDetails>>;
|
|
5659
5614
|
/**
|
|
5660
|
-
* @description
|
|
5615
|
+
* @description Takes the companies off the Liste and records them as removed. Kostet 1 Credit.
|
|
5661
5616
|
*
|
|
5662
|
-
* @tags
|
|
5663
|
-
* @name
|
|
5664
|
-
* @summary
|
|
5665
|
-
* @request
|
|
5617
|
+
* @tags Lists
|
|
5618
|
+
* @name V1ListsRemoveCreate
|
|
5619
|
+
* @summary Remove companies from a Liste
|
|
5620
|
+
* @request POST:/api/v1/lists/{id}/remove
|
|
5666
5621
|
* @secure
|
|
5667
5622
|
*/
|
|
5668
|
-
|
|
5623
|
+
v1ListsRemoveCreate: (id: string, data: ListMembersRequest, params?: RequestParams) => Promise<HttpResponse<ListResponse, ApiError | ProblemDetails>>;
|
|
5669
5624
|
/**
|
|
5670
|
-
* @description
|
|
5625
|
+
* @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.
|
|
5671
5626
|
*
|
|
5672
|
-
* @tags
|
|
5673
|
-
* @name
|
|
5674
|
-
* @summary
|
|
5675
|
-
* @request
|
|
5627
|
+
* @tags Exports
|
|
5628
|
+
* @name V1ExportsBusinessesCreate
|
|
5629
|
+
* @summary Export companies
|
|
5630
|
+
* @request POST:/api/v1/exports/businesses
|
|
5676
5631
|
* @secure
|
|
5677
5632
|
*/
|
|
5678
|
-
|
|
5679
|
-
name?: string;
|
|
5680
|
-
search?: string;
|
|
5681
|
-
firstName?: string;
|
|
5682
|
-
lastName?: string;
|
|
5683
|
-
/** Only people holding one of these functions, e.g. IN, KP, GS and PG for the owner roles. Repeat the parameter for more than one code; they are ORed. Only a person's current role at a company counts — where the register filed several rows for them there, the newest (highest vnr) one is the one matched, so a GS later superseded by a GF no longer answers to functionCode=GS. */
|
|
5684
|
-
functionCode?: string[];
|
|
5685
|
-
businessName?: string;
|
|
5686
|
-
/** Only people assigned to a company whose Geschäftsanschrift is in this city. Matched exactly (trimmed, case-insensitively), unlike city on /businesses, which is a substring match: businessCity=Wien does not return Wiener Neustadt. */
|
|
5687
|
-
businessCity?: string;
|
|
5688
|
-
/**
|
|
5689
|
-
* Only people assigned to a company registered ("Eingetragen seit") on or after this date — the same fact as registeredSince_gte on /businesses. Companies whose registration date is unknown are excluded, as they are there.
|
|
5690
|
-
* @format date-time
|
|
5691
|
-
*/
|
|
5692
|
-
businessRegisteredSince_gte?: string;
|
|
5693
|
-
/** Only people assigned to this Firmenbuchnummer. Normalised before matching — trimmed, spaces and leading zeros removed — so 034853 f and 34853f are the same company. Case is not folded: pass the lower-case form the API gives you. */
|
|
5694
|
-
fnr?: string;
|
|
5695
|
-
/** Only people who have an Edikt of their own — a notice in the Ediktsdatei filed against the person, which the edikte collection on the row carries. An Edikt against one of their companies does not count; that is hasEdikt on /businesses. */
|
|
5696
|
-
hasEdikt?: boolean;
|
|
5697
|
-
/** Sort key; only "birthDate" is supported. Omitted, people come back by last name, then first name. People whose birth date the register does not give sort last under orderByDescending=true. */
|
|
5698
|
-
orderBy?: string;
|
|
5699
|
-
/** If true, sort descending; with orderBy=birthDate that is the youngest first. */
|
|
5700
|
-
orderByDescending?: boolean;
|
|
5701
|
-
/**
|
|
5702
|
-
* 1-based page number; defaults to 1 when omitted.
|
|
5703
|
-
* @format int32
|
|
5704
|
-
* @min 1
|
|
5705
|
-
* @max 1000
|
|
5706
|
-
*/
|
|
5707
|
-
page?: number;
|
|
5708
|
-
/**
|
|
5709
|
-
* Number of items per page; defaults to 10 when omitted.
|
|
5710
|
-
* @format int32
|
|
5711
|
-
* @min 1
|
|
5712
|
-
* @max 100
|
|
5713
|
-
*/
|
|
5714
|
-
pageSize?: number;
|
|
5715
|
-
}, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfPerson, ApiError | ProblemDetails>>;
|
|
5633
|
+
v1ExportsBusinessesCreate: (data: ExportBusinessesRequest, params?: RequestParams) => Promise<HttpResponse<FileResult, ApiError | ProblemDetails>>;
|
|
5716
5634
|
/**
|
|
5717
|
-
* @description
|
|
5635
|
+
* @description Downloads the signed GISA PDF extract for a license (GISA-Zahl). Language defaults to German (De). Kostet 3 Credits.
|
|
5718
5636
|
*
|
|
5719
|
-
* @tags
|
|
5720
|
-
* @name
|
|
5721
|
-
* @summary
|
|
5722
|
-
* @request GET:/api/v1/
|
|
5637
|
+
* @tags Trades
|
|
5638
|
+
* @name V1TradesDocumentsDetail
|
|
5639
|
+
* @summary GISA PDF extract
|
|
5640
|
+
* @request GET:/api/v1/trades/documents/{gisaZahl}
|
|
5723
5641
|
* @secure
|
|
5724
5642
|
*/
|
|
5725
|
-
|
|
5643
|
+
v1TradesDocumentsDetail: (gisaZahl: number, query?: {
|
|
5644
|
+
/** @default false */
|
|
5645
|
+
historical?: boolean;
|
|
5646
|
+
/** @default "De" */
|
|
5647
|
+
language?: "De" | "En";
|
|
5648
|
+
}, params?: RequestParams) => Promise<HttpResponse<Blob, ApiError | ProblemDetails>>;
|
|
5726
5649
|
/**
|
|
5727
|
-
* @description Returns the
|
|
5650
|
+
* @description Returns the global catalog of GISA Trade Definitions with pagination. Kostet 1 Credit.
|
|
5728
5651
|
*
|
|
5729
|
-
* @tags
|
|
5730
|
-
* @name
|
|
5731
|
-
* @summary
|
|
5732
|
-
* @request GET:/api/v1/
|
|
5652
|
+
* @tags Trades
|
|
5653
|
+
* @name V1TradesList
|
|
5654
|
+
* @summary GISA trade catalog
|
|
5655
|
+
* @request GET:/api/v1/trades
|
|
5733
5656
|
* @secure
|
|
5734
5657
|
*/
|
|
5735
|
-
|
|
5658
|
+
v1TradesList: (query?: {
|
|
5736
5659
|
search?: string;
|
|
5737
|
-
/**
|
|
5738
|
-
* Filter by hierarchy level (1–5). Omit to return all levels.
|
|
5739
|
-
* @format int32
|
|
5740
|
-
*/
|
|
5741
|
-
ebene?: number;
|
|
5742
5660
|
/** @format int32 */
|
|
5743
5661
|
minCompanyCount?: number;
|
|
5744
5662
|
/**
|
|
@@ -5755,19 +5673,17 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
|
|
|
5755
5673
|
* @max 100
|
|
5756
5674
|
*/
|
|
5757
5675
|
pageSize?: number;
|
|
5758
|
-
}, params?: RequestParams) => Promise<HttpResponse<
|
|
5676
|
+
}, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfTradeCatalogItemResponse, ApiError | ProblemDetails>>;
|
|
5759
5677
|
/**
|
|
5760
|
-
* @description Returns all
|
|
5678
|
+
* @description Returns all company licenses for a specific trade definition with pagination. Kostet 1 Credit.
|
|
5761
5679
|
*
|
|
5762
|
-
* @tags
|
|
5763
|
-
* @name
|
|
5764
|
-
* @summary
|
|
5765
|
-
* @request GET:/api/v1/
|
|
5680
|
+
* @tags Trades
|
|
5681
|
+
* @name V1TradesLicensesList
|
|
5682
|
+
* @summary Licenses by trade
|
|
5683
|
+
* @request GET:/api/v1/trades/{tradeKey}/licenses
|
|
5766
5684
|
* @secure
|
|
5767
5685
|
*/
|
|
5768
|
-
|
|
5769
|
-
/** @maxLength 200 */
|
|
5770
|
-
search?: string;
|
|
5686
|
+
v1TradesLicensesList: (tradeKey: number, query?: {
|
|
5771
5687
|
/**
|
|
5772
5688
|
* 1-based page number; defaults to 1 when omitted.
|
|
5773
5689
|
* @format int32
|
|
@@ -5782,32 +5698,37 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
|
|
|
5782
5698
|
* @max 100
|
|
5783
5699
|
*/
|
|
5784
5700
|
pageSize?: number;
|
|
5785
|
-
}, params?: RequestParams) => Promise<HttpResponse<
|
|
5701
|
+
}, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfGisaLicense, ApiError | ProblemDetails>>;
|
|
5786
5702
|
/**
|
|
5787
|
-
* @description Returns
|
|
5703
|
+
* @description Returns all licenses for a specific company (FNR). Kostet 1 Credit.
|
|
5788
5704
|
*
|
|
5789
|
-
* @tags
|
|
5790
|
-
* @name
|
|
5791
|
-
* @summary
|
|
5792
|
-
* @request GET:/api/v1/
|
|
5705
|
+
* @tags Trades
|
|
5706
|
+
* @name V1TradesCompanyDetail
|
|
5707
|
+
* @summary Company GISA licenses
|
|
5708
|
+
* @request GET:/api/v1/trades/company/{fnr}
|
|
5793
5709
|
* @secure
|
|
5794
5710
|
*/
|
|
5795
|
-
|
|
5796
|
-
/** Start from this person. Mutually exclusive with fnr. */
|
|
5797
|
-
personId?: string;
|
|
5798
|
-
/** Start from this company. Normalised before matching — trimmed, spaces and leading zeros removed — so 034853 f and 34853f are the same company; case is not folded. Mutually exclusive with personId. */
|
|
5799
|
-
fnr?: string;
|
|
5800
|
-
}, params?: RequestParams) => Promise<HttpResponse<GraphResponse, ApiError | ProblemDetails>>;
|
|
5711
|
+
v1TradesCompanyDetail: (fnr: string, params?: RequestParams) => Promise<HttpResponse<GisaLicense[], ApiError | ProblemDetails>>;
|
|
5801
5712
|
/**
|
|
5802
|
-
* @description
|
|
5713
|
+
* @description Returns a single GISA change by id. Kostet 1 Credit.
|
|
5803
5714
|
*
|
|
5804
|
-
* @tags
|
|
5805
|
-
* @name
|
|
5806
|
-
* @summary
|
|
5807
|
-
* @request GET:/api/v1/
|
|
5715
|
+
* @tags Trades
|
|
5716
|
+
* @name V1TradesChangesDetail
|
|
5717
|
+
* @summary GISA change by id
|
|
5718
|
+
* @request GET:/api/v1/trades/changes/{id}
|
|
5808
5719
|
* @secure
|
|
5809
5720
|
*/
|
|
5810
|
-
|
|
5721
|
+
v1TradesChangesDetail: (id: number, params?: RequestParams) => Promise<HttpResponse<GisaChange, ApiError | ProblemDetails>>;
|
|
5722
|
+
/**
|
|
5723
|
+
* @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.
|
|
5724
|
+
*
|
|
5725
|
+
* @tags Trades
|
|
5726
|
+
* @name V1TradesChangesList
|
|
5727
|
+
* @summary GISA change feed
|
|
5728
|
+
* @request GET:/api/v1/trades/changes
|
|
5729
|
+
* @secure
|
|
5730
|
+
*/
|
|
5731
|
+
v1TradesChangesList: (query?: {
|
|
5811
5732
|
/** 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. */
|
|
5812
5733
|
fnr?: string;
|
|
5813
5734
|
/**
|
|
@@ -5834,41 +5755,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
|
|
|
5834
5755
|
* @max 100
|
|
5835
5756
|
*/
|
|
5836
5757
|
pageSize?: number;
|
|
5837
|
-
}, params?: RequestParams) => Promise<HttpResponse<
|
|
5838
|
-
/**
|
|
5839
|
-
* @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.
|
|
5840
|
-
*
|
|
5841
|
-
* @tags GlobalChanges
|
|
5842
|
-
* @name V1GlobalchangesAggregatedList
|
|
5843
|
-
* @summary Aggregated watchlist changes
|
|
5844
|
-
* @request GET:/api/v1/globalchanges/aggregated
|
|
5845
|
-
* @secure
|
|
5846
|
-
*/
|
|
5847
|
-
v1GlobalchangesAggregatedList: (query?: {
|
|
5848
|
-
/** Firmenbuch numbers to fetch changes for. Max 1000 items. Each is 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. */
|
|
5849
|
-
fnr?: string[];
|
|
5850
|
-
/** @format date-time */
|
|
5851
|
-
since?: string;
|
|
5852
|
-
/** @format int64 */
|
|
5853
|
-
sinceId?: number;
|
|
5854
|
-
/**
|
|
5855
|
-
* Max number of changes to return per type. Default 500, max 2000.
|
|
5856
|
-
* @format int32
|
|
5857
|
-
* @min 1
|
|
5858
|
-
* @max 2000
|
|
5859
|
-
*/
|
|
5860
|
-
maxResultsPerType?: number;
|
|
5861
|
-
}, params?: RequestParams) => Promise<HttpResponse<AggregatedChangesResponse, ApiError | ProblemDetails>>;
|
|
5862
|
-
/**
|
|
5863
|
-
* @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.
|
|
5864
|
-
*
|
|
5865
|
-
* @tags GlobalChanges
|
|
5866
|
-
* @name V1GlobalchangesDetail
|
|
5867
|
-
* @summary Change by id
|
|
5868
|
-
* @request GET:/api/v1/globalchanges/{id}
|
|
5869
|
-
* @secure
|
|
5870
|
-
*/
|
|
5871
|
-
v1GlobalchangesDetail: (id: number, params?: RequestParams) => Promise<HttpResponse<ChangeDetailResponse, ApiError | ProblemDetails>>;
|
|
5758
|
+
}, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfGisaChange, ApiError | ProblemDetails>>;
|
|
5872
5759
|
/**
|
|
5873
5760
|
* @description Kostet 1 Credit.
|
|
5874
5761
|
*
|
|
@@ -5906,93 +5793,36 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
|
|
|
5906
5793
|
* @format int32
|
|
5907
5794
|
* @min 1
|
|
5908
5795
|
* @max 1000
|
|
5909
|
-
*/
|
|
5910
|
-
page?: number;
|
|
5911
|
-
/**
|
|
5912
|
-
* Number of items per page; defaults to 100 when omitted. A page shorter than this is the end of the feed.
|
|
5913
|
-
* @format int32
|
|
5914
|
-
* @min 1
|
|
5915
|
-
* @max 100
|
|
5916
|
-
*/
|
|
5917
|
-
pageSize?: number;
|
|
5918
|
-
}, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfFoerderungChange, ApiError | ProblemDetails>>;
|
|
5919
|
-
/**
|
|
5920
|
-
* @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.
|
|
5921
|
-
*
|
|
5922
|
-
* @tags Edikte
|
|
5923
|
-
* @name V1EdikteChangesDetail
|
|
5924
|
-
* @summary Edikt change by id
|
|
5925
|
-
* @request GET:/api/v1/edikte/changes/{id}
|
|
5926
|
-
* @secure
|
|
5927
|
-
*/
|
|
5928
|
-
v1EdikteChangesDetail: (id: number, params?: RequestParams) => Promise<HttpResponse<EdiktChange, ApiError | ProblemDetails>>;
|
|
5929
|
-
/**
|
|
5930
|
-
* @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.
|
|
5931
|
-
*
|
|
5932
|
-
* @tags Edikte
|
|
5933
|
-
* @name V1EdikteChangesList
|
|
5934
|
-
* @summary Ediktsdatei change feed
|
|
5935
|
-
* @request GET:/api/v1/edikte/changes
|
|
5936
|
-
* @secure
|
|
5937
|
-
*/
|
|
5938
|
-
v1EdikteChangesList: (query?: {
|
|
5939
|
-
/** 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. */
|
|
5940
|
-
fnr?: string;
|
|
5941
|
-
/**
|
|
5942
|
-
* 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.
|
|
5943
|
-
* @format date-time
|
|
5944
|
-
*/
|
|
5945
|
-
since?: string;
|
|
5946
|
-
/**
|
|
5947
|
-
* 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.
|
|
5948
|
-
* @format int64
|
|
5949
|
-
*/
|
|
5950
|
-
sinceId?: number;
|
|
5951
|
-
/**
|
|
5952
|
-
* 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.
|
|
5953
|
-
* @format int32
|
|
5954
|
-
* @min 1
|
|
5955
|
-
* @max 1000
|
|
5956
|
-
*/
|
|
5957
|
-
page?: number;
|
|
5958
|
-
/**
|
|
5959
|
-
* Number of items per page; defaults to 100 when omitted. A page shorter than this is the end of the feed.
|
|
5960
|
-
* @format int32
|
|
5961
|
-
* @min 1
|
|
5962
|
-
* @max 100
|
|
5963
|
-
*/
|
|
5964
|
-
pageSize?: number;
|
|
5965
|
-
}, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfEdiktChange, ApiError | ProblemDetails>>;
|
|
5966
|
-
/**
|
|
5967
|
-
* @description Downloads a Firmenbuch document (PDF/XML) by its document key. Kostet 3 Credits.
|
|
5968
|
-
*
|
|
5969
|
-
* @tags Documents
|
|
5970
|
-
* @name V1DocumentsDownloadDetail
|
|
5971
|
-
* @summary Firmenbuch document download
|
|
5972
|
-
* @request GET:/api/v1/documents/download/{documentKey}
|
|
5973
|
-
* @secure
|
|
5974
|
-
*/
|
|
5975
|
-
v1DocumentsDownloadDetail: (documentKey: string, params?: RequestParams) => Promise<HttpResponse<void, string | ApiError | ProblemDetails>>;
|
|
5796
|
+
*/
|
|
5797
|
+
page?: number;
|
|
5798
|
+
/**
|
|
5799
|
+
* Number of items per page; defaults to 100 when omitted. A page shorter than this is the end of the feed.
|
|
5800
|
+
* @format int32
|
|
5801
|
+
* @min 1
|
|
5802
|
+
* @max 100
|
|
5803
|
+
*/
|
|
5804
|
+
pageSize?: number;
|
|
5805
|
+
}, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfFoerderungChange, ApiError | ProblemDetails>>;
|
|
5976
5806
|
/**
|
|
5977
|
-
* @description Returns one
|
|
5807
|
+
* @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.
|
|
5978
5808
|
*
|
|
5979
|
-
* @tags
|
|
5980
|
-
* @name
|
|
5981
|
-
* @summary
|
|
5982
|
-
* @request GET:/api/v1/
|
|
5809
|
+
* @tags Edikte
|
|
5810
|
+
* @name V1EdikteChangesDetail
|
|
5811
|
+
* @summary Edikt change by id
|
|
5812
|
+
* @request GET:/api/v1/edikte/changes/{id}
|
|
5983
5813
|
* @secure
|
|
5984
5814
|
*/
|
|
5985
|
-
|
|
5815
|
+
v1EdikteChangesDetail: (id: number, params?: RequestParams) => Promise<HttpResponse<EdiktChange, ApiError | ProblemDetails>>;
|
|
5986
5816
|
/**
|
|
5987
|
-
* @description Feed of
|
|
5817
|
+
* @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.
|
|
5988
5818
|
*
|
|
5989
|
-
* @tags
|
|
5990
|
-
* @name
|
|
5991
|
-
* @summary
|
|
5992
|
-
* @request GET:/api/v1/
|
|
5819
|
+
* @tags Edikte
|
|
5820
|
+
* @name V1EdikteChangesList
|
|
5821
|
+
* @summary Ediktsdatei change feed
|
|
5822
|
+
* @request GET:/api/v1/edikte/changes
|
|
5993
5823
|
* @secure
|
|
5994
5824
|
*/
|
|
5995
|
-
|
|
5825
|
+
v1EdikteChangesList: (query?: {
|
|
5996
5826
|
/** 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. */
|
|
5997
5827
|
fnr?: string;
|
|
5998
5828
|
/**
|
|
@@ -6019,19 +5849,45 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
|
|
|
6019
5849
|
* @max 100
|
|
6020
5850
|
*/
|
|
6021
5851
|
pageSize?: number;
|
|
6022
|
-
}, params?: RequestParams) => Promise<HttpResponse<
|
|
5852
|
+
}, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfEdiktChange, ApiError | ProblemDetails>>;
|
|
6023
5853
|
/**
|
|
6024
|
-
* @description Returns all
|
|
5854
|
+
* @description Returns (id, name) pairs for all people with at least one business assignment. For client-side name index. id is the person's Firmenakte-ID, e.g. "P-7K3M-QX91". Kostet 1 Credit.
|
|
6025
5855
|
*
|
|
6026
|
-
* @tags
|
|
6027
|
-
* @name
|
|
6028
|
-
* @summary
|
|
6029
|
-
* @request GET:/api/v1/
|
|
5856
|
+
* @tags People
|
|
5857
|
+
* @name V1PeopleNamesList
|
|
5858
|
+
* @summary Person name index
|
|
5859
|
+
* @request GET:/api/v1/people/names
|
|
6030
5860
|
* @secure
|
|
6031
5861
|
*/
|
|
6032
|
-
|
|
6033
|
-
|
|
5862
|
+
v1PeopleNamesList: (params?: RequestParams) => Promise<HttpResponse<PersonNameItem[], ApiError | ProblemDetails>>;
|
|
5863
|
+
/**
|
|
5864
|
+
* @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. Combine with fnr or businessName to get the officers of one company, or with functionCode for one role. Each row's id is the person's Firmenakte-ID, the id GET /people/{personId} takes. 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 owners of this year's new Viennese companies are one query: ?businessCity=Wien&businessRegisteredSince_gte=2026-01-01&functionCode=IN&functionCode=KP&functionCode=GS&functionCode=PG 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.
|
|
5865
|
+
*
|
|
5866
|
+
* @tags People
|
|
5867
|
+
* @name V1PeopleList
|
|
5868
|
+
* @summary People search
|
|
5869
|
+
* @request GET:/api/v1/people
|
|
5870
|
+
* @secure
|
|
5871
|
+
*/
|
|
5872
|
+
v1PeopleList: (query?: {
|
|
5873
|
+
name?: string;
|
|
6034
5874
|
search?: string;
|
|
5875
|
+
firstName?: string;
|
|
5876
|
+
lastName?: string;
|
|
5877
|
+
/** Only people holding one of these functions, e.g. IN, KP, GS and PG for the owner roles. Repeat the parameter for more than one code; they are ORed. Only a person's current role at a company counts — where the register filed several rows for them there, the newest (highest vnr) one is the one matched, so a GS later superseded by a GF no longer answers to functionCode=GS. */
|
|
5878
|
+
functionCode?: string[];
|
|
5879
|
+
businessName?: string;
|
|
5880
|
+
/** Only people assigned to a company whose Geschäftsanschrift is in this city. Matched exactly (trimmed, case-insensitively), unlike city on /businesses, which is a substring match: businessCity=Wien does not return Wiener Neustadt. */
|
|
5881
|
+
businessCity?: string;
|
|
5882
|
+
/**
|
|
5883
|
+
* Only people assigned to a company registered ("Eingetragen seit") on or after this date — the same fact as registeredSince_gte on /businesses. Companies whose registration date is unknown are excluded, as they are there.
|
|
5884
|
+
* @format date-time
|
|
5885
|
+
*/
|
|
5886
|
+
businessRegisteredSince_gte?: string;
|
|
5887
|
+
/** Only people assigned to this Firmenbuchnummer. Normalised before matching — trimmed, spaces and leading zeros removed — so 034853 f and 34853f are the same company. Case is not folded: pass the lower-case form the API gives you. */
|
|
5888
|
+
fnr?: string;
|
|
5889
|
+
/** Only people who have an Edikt of their own — a notice in the Ediktsdatei filed against the person, which the edikte collection on the row carries. An Edikt against one of their companies does not count; that is hasEdikt on /businesses. */
|
|
5890
|
+
hasEdikt?: boolean;
|
|
6035
5891
|
/**
|
|
6036
5892
|
* 1-based page number; defaults to 1 when omitted.
|
|
6037
5893
|
* @format int32
|
|
@@ -6046,7 +5902,17 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
|
|
|
6046
5902
|
* @max 100
|
|
6047
5903
|
*/
|
|
6048
5904
|
pageSize?: number;
|
|
6049
|
-
}, params?: RequestParams) => Promise<HttpResponse<
|
|
5905
|
+
}, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfPerson, ApiError | ProblemDetails>>;
|
|
5906
|
+
/**
|
|
5907
|
+
* @description Returns one person with every company function, GISA licence and Edikt attached to them. personId is the person's Firmenakte-ID as the glossary describes it, e.g. "P-7K3M-QX91", the id every list row, assignment and graph node carries. Take it from there rather than composing it yourself. Only that spelling answers. Any other spelling of the same Firmenakte-ID ("p7k3mqx91"), and the "vorname-nachname-…" id people carried before, answer one 308 whose relative Location is the canonical form. A Firmenakte-ID with a wrong check character, and an id nobody holds, answer 404; so does the bucket every nameless assignment in the register lands in, which is not a person. Kostet 1 Credit.
|
|
5908
|
+
*
|
|
5909
|
+
* @tags People
|
|
5910
|
+
* @name V1PeopleDetail
|
|
5911
|
+
* @summary Person detail
|
|
5912
|
+
* @request GET:/api/v1/people/{personId}
|
|
5913
|
+
* @secure
|
|
5914
|
+
*/
|
|
5915
|
+
v1PeopleDetail: (personId: string, params?: RequestParams) => Promise<HttpResponse<PersonDetailResponse, ApiError | ProblemDetails>>;
|
|
6050
5916
|
/**
|
|
6051
5917
|
* @description Resolve company names to FNRs by exact name match (1:1). Used for CSV import. Kostet 1 Credit.
|
|
6052
5918
|
*
|
|
@@ -6058,7 +5924,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
|
|
|
6058
5924
|
*/
|
|
6059
5925
|
v1BusinessesResolveNamesCreate: (data: ResolveBusinessNamesRequest, params?: RequestParams) => Promise<HttpResponse<ResolveBusinessNamesResponse, ApiError | ProblemDetails>>;
|
|
6060
5926
|
/**
|
|
6061
|
-
* @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. Place filters: the Firmenbuch records no Bundesland and no Gemeinde, only the Sitzgericht, so both state and gemeinde are derived from the PLZ of the Geschäftsanschrift
|
|
5927
|
+
* @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. Place filters: the Firmenbuch records no Bundesland and no Gemeinde, only the Sitzgericht, so both state and gemeinde are derived from the PLZ of the Geschäftsanschrift: the PLZ names a Gemeinde, and state is that Gemeinde's Land, so the Innviertel PLZ 5120–5399 are in Oberösterreich. gemeinde takes the slug of a Gemeinde, and because it reads the PLZ it answers every spelling of a place at once — "Klagenfurt am Wörthersee", "Klagenfurt" and "Klagenfurt-Viktring" are one Gemeinde, where city= would be three separate filters over free text. GET /addresses/gemeinden is the catalogue of the slugs, their aliases, their Bundesland and their PLZ; a company with a foreign or unusable PLZ is in no Gemeinde and no gemeinde= filter finds it. Kostet 1 Credit.
|
|
6062
5928
|
*
|
|
6063
5929
|
* @tags Businesses
|
|
6064
5930
|
* @name V1BusinessesList
|
|
@@ -6623,7 +6489,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
|
|
|
6623
6489
|
"guv.ZinsenUndAehnlicheAufwendungen_lte"?: number | null;
|
|
6624
6490
|
}, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfBusinessListResponse, ApiError | ProblemDetails>>;
|
|
6625
6491
|
/**
|
|
6626
|
-
* @description Returns all business (fnr, name) pairs for client-side name index. No pagination.
|
|
6492
|
+
* @description Returns all business (fnr, name) pairs for client-side name index. No pagination. Kostet 1 Credit.
|
|
6627
6493
|
*
|
|
6628
6494
|
* @tags Businesses
|
|
6629
6495
|
* @name V1BusinessesNamesList
|
|
@@ -7222,7 +7088,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
|
|
|
7222
7088
|
"guv.ZinsenUndAehnlicheAufwendungen_lte"?: number | null;
|
|
7223
7089
|
}, params?: RequestParams) => Promise<HttpResponse<BusinessAggregateResponse, ApiError | ProblemDetails>>;
|
|
7224
7090
|
/**
|
|
7225
|
-
* @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.
|
|
7091
|
+
* @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.
|
|
7226
7092
|
*
|
|
7227
7093
|
* @tags Businesses
|
|
7228
7094
|
* @name V1BusinessesFacetsList
|
|
@@ -7231,7 +7097,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
|
|
|
7231
7097
|
* @secure
|
|
7232
7098
|
*/
|
|
7233
7099
|
v1BusinessesFacetsList: (query?: {
|
|
7234
|
-
/** Groups to count; all of them when omitted. One or more of city, zipCode, legalFormCode, courtCode, oenaceCode, gisaLicenseKey, active, hasEdikt, isScheinunternehmen, kennzahl. */
|
|
7100
|
+
/** Groups to count; all of them when omitted. One or more of city, zipCode, legalFormCode, courtCode, oenaceCode, gisaLicenseKey, active, hasEdikt, isScheinunternehmen, inInsolvency, kennzahl. */
|
|
7235
7101
|
groups?: string[];
|
|
7236
7102
|
/**
|
|
7237
7103
|
* Values per group, largest count first. The status and kennzahl groups are complete lists and ignore it. A "Mehr" expander is a second call for the one group with a larger top.
|
|
@@ -7796,7 +7662,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
|
|
|
7796
7662
|
"guv.ZinsenUndAehnlicheAufwendungen_lte"?: number | null;
|
|
7797
7663
|
}, params?: RequestParams) => Promise<HttpResponse<BusinessFacetsResponse, ApiError | ProblemDetails>>;
|
|
7798
7664
|
/**
|
|
7799
|
-
* @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.
|
|
7665
|
+
* @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.
|
|
7800
7666
|
*
|
|
7801
7667
|
* @tags Businesses
|
|
7802
7668
|
* @name V1BusinessesMapTopList
|
|
@@ -8354,76 +8220,311 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
|
|
|
8354
8220
|
*/
|
|
8355
8221
|
"guv.WarenUndMaterialeinkauf_lte"?: number | null;
|
|
8356
8222
|
/**
|
|
8357
|
-
* Lower bound (inclusive) for Filter by profit and loss item: ZinsenUndAehnlicheAufwendungen
|
|
8358
|
-
* @format decimal
|
|
8223
|
+
* Lower bound (inclusive) for Filter by profit and loss item: ZinsenUndAehnlicheAufwendungen
|
|
8224
|
+
* @format decimal
|
|
8225
|
+
*/
|
|
8226
|
+
"guv.ZinsenUndAehnlicheAufwendungen_gte"?: number | null;
|
|
8227
|
+
/**
|
|
8228
|
+
* Upper bound (inclusive) for Filter by profit and loss item: ZinsenUndAehnlicheAufwendungen
|
|
8229
|
+
* @format decimal
|
|
8230
|
+
*/
|
|
8231
|
+
"guv.ZinsenUndAehnlicheAufwendungen_lte"?: number | null;
|
|
8232
|
+
}, params?: RequestParams) => Promise<HttpResponse<BusinessMapTopItem[], ApiError | ProblemDetails>>;
|
|
8233
|
+
/**
|
|
8234
|
+
* @description Active businesses similar to the given one (same OeNACE branch, same region preferred). Kostet 3 Credits.
|
|
8235
|
+
*
|
|
8236
|
+
* @tags Businesses
|
|
8237
|
+
* @name V1BusinessesSimilarList
|
|
8238
|
+
* @summary Similar companies
|
|
8239
|
+
* @request GET:/api/v1/businesses/{fnr}/similar
|
|
8240
|
+
* @secure
|
|
8241
|
+
*/
|
|
8242
|
+
v1BusinessesSimilarList: (fnr: string, params?: RequestParams) => Promise<HttpResponse<BusinessListResponse[], ApiError | ProblemDetails>>;
|
|
8243
|
+
/**
|
|
8244
|
+
* @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.
|
|
8245
|
+
*
|
|
8246
|
+
* @tags Businesses
|
|
8247
|
+
* @name V1BusinessesDetail
|
|
8248
|
+
* @summary Company Firmenakte
|
|
8249
|
+
* @request GET:/api/v1/businesses/{fnr}
|
|
8250
|
+
* @secure
|
|
8251
|
+
*/
|
|
8252
|
+
v1BusinessesDetail: (fnr: string, params?: RequestParams) => Promise<HttpResponse<BusinessDetailResponse, ApiError | ProblemDetails>>;
|
|
8253
|
+
/**
|
|
8254
|
+
* @description Every parsed Jahresabschluss of one company, one entry per fiscal closing date, newest first. The Firmenakte itself (GET /businesses/{fnr}) carries only the last five periods. 404 only where the company itself is unknown, exactly as on GET /businesses/{fnr}. Kostet 1 Credit.
|
|
8255
|
+
*
|
|
8256
|
+
* @tags Businesses
|
|
8257
|
+
* @name V1BusinessesJahresabschluesseList
|
|
8258
|
+
* @summary Company annual accounts
|
|
8259
|
+
* @request GET:/api/v1/businesses/{fnr}/jahresabschluesse
|
|
8260
|
+
* @secure
|
|
8261
|
+
*/
|
|
8262
|
+
v1BusinessesJahresabschluesseList: (fnr: string, params?: RequestParams) => Promise<HttpResponse<ParsedJahresabschlussDto[], ApiError | ProblemDetails>>;
|
|
8263
|
+
/**
|
|
8264
|
+
* @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.
|
|
8265
|
+
*
|
|
8266
|
+
* @tags Businesses
|
|
8267
|
+
* @name V1BusinessesFoerderungenList
|
|
8268
|
+
* @summary Company Foerderungen
|
|
8269
|
+
* @request GET:/api/v1/businesses/{fnr}/foerderungen
|
|
8270
|
+
* @secure
|
|
8271
|
+
*/
|
|
8272
|
+
v1BusinessesFoerderungenList: (fnr: string, params?: RequestParams) => Promise<HttpResponse<BusinessFoerderungenResponse, ApiError | ProblemDetails>>;
|
|
8273
|
+
/**
|
|
8274
|
+
* @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.
|
|
8275
|
+
*
|
|
8276
|
+
* @tags Businesses
|
|
8277
|
+
* @name V1BusinessesChangesDetail
|
|
8278
|
+
* @summary Firmenbuch change by id
|
|
8279
|
+
* @request GET:/api/v1/businesses/changes/{id}
|
|
8280
|
+
* @secure
|
|
8281
|
+
*/
|
|
8282
|
+
v1BusinessesChangesDetail: (id: number, params?: RequestParams) => Promise<HttpResponse<BusinessChange, ApiError | ProblemDetails>>;
|
|
8283
|
+
/**
|
|
8284
|
+
* @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.
|
|
8285
|
+
*
|
|
8286
|
+
* @tags Businesses
|
|
8287
|
+
* @name V1BusinessesChangesList
|
|
8288
|
+
* @summary Firmenbuch change feed
|
|
8289
|
+
* @request GET:/api/v1/businesses/changes
|
|
8290
|
+
* @secure
|
|
8291
|
+
*/
|
|
8292
|
+
v1BusinessesChangesList: (query?: {
|
|
8293
|
+
/** 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. */
|
|
8294
|
+
fnr?: string;
|
|
8295
|
+
/**
|
|
8296
|
+
* 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.
|
|
8297
|
+
* @format date-time
|
|
8298
|
+
*/
|
|
8299
|
+
since?: string;
|
|
8300
|
+
/**
|
|
8301
|
+
* 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.
|
|
8302
|
+
* @format int64
|
|
8303
|
+
*/
|
|
8304
|
+
sinceId?: number;
|
|
8305
|
+
/**
|
|
8306
|
+
* 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.
|
|
8307
|
+
* @format int32
|
|
8308
|
+
* @min 1
|
|
8309
|
+
* @max 1000
|
|
8310
|
+
*/
|
|
8311
|
+
page?: number;
|
|
8312
|
+
/**
|
|
8313
|
+
* Number of items per page; defaults to 100 when omitted. A page shorter than this is the end of the feed.
|
|
8314
|
+
* @format int32
|
|
8315
|
+
* @min 1
|
|
8316
|
+
* @max 100
|
|
8317
|
+
*/
|
|
8318
|
+
pageSize?: number;
|
|
8319
|
+
}, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfBusinessChange, ApiError | ProblemDetails>>;
|
|
8320
|
+
/**
|
|
8321
|
+
* @description Returns unique City+ZipCode combinations from addresses with pagination and optional search. Kostet 1 Credit.
|
|
8322
|
+
*
|
|
8323
|
+
* @tags Addresses
|
|
8324
|
+
* @name V1AddressesLocationsList
|
|
8325
|
+
* @summary City and ZIP combinations
|
|
8326
|
+
* @request GET:/api/v1/addresses/locations
|
|
8327
|
+
* @secure
|
|
8328
|
+
*/
|
|
8329
|
+
v1AddressesLocationsList: (query?: {
|
|
8330
|
+
search?: string;
|
|
8331
|
+
/**
|
|
8332
|
+
* 1-based page number; defaults to 1 when omitted.
|
|
8333
|
+
* @format int32
|
|
8334
|
+
* @min 1
|
|
8335
|
+
* @max 1000
|
|
8336
|
+
*/
|
|
8337
|
+
page?: number;
|
|
8338
|
+
/**
|
|
8339
|
+
* Number of items per page; defaults to 10 when omitted.
|
|
8340
|
+
* @format int32
|
|
8341
|
+
* @min 1
|
|
8342
|
+
* @max 100
|
|
8343
|
+
*/
|
|
8344
|
+
pageSize?: number;
|
|
8345
|
+
}, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfAddressLocationResponse, ApiError | ProblemDetails>>;
|
|
8346
|
+
/**
|
|
8347
|
+
* @description Returns unique cities from addresses with pagination and optional search. Kostet 1 Credit.
|
|
8348
|
+
*
|
|
8349
|
+
* @tags Addresses
|
|
8350
|
+
* @name V1AddressesCitiesList
|
|
8351
|
+
* @summary Cities
|
|
8352
|
+
* @request GET:/api/v1/addresses/cities
|
|
8353
|
+
* @secure
|
|
8354
|
+
*/
|
|
8355
|
+
v1AddressesCitiesList: (query?: {
|
|
8356
|
+
search?: string;
|
|
8357
|
+
/**
|
|
8358
|
+
* 1-based page number; defaults to 1 when omitted.
|
|
8359
|
+
* @format int32
|
|
8360
|
+
* @min 1
|
|
8361
|
+
* @max 1000
|
|
8362
|
+
*/
|
|
8363
|
+
page?: number;
|
|
8364
|
+
/**
|
|
8365
|
+
* Number of items per page; defaults to 10 when omitted.
|
|
8366
|
+
* @format int32
|
|
8367
|
+
* @min 1
|
|
8368
|
+
* @max 100
|
|
8369
|
+
*/
|
|
8370
|
+
pageSize?: number;
|
|
8371
|
+
}, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfCityResponse, ApiError | ProblemDetails>>;
|
|
8372
|
+
/**
|
|
8373
|
+
* @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.
|
|
8374
|
+
*
|
|
8375
|
+
* @tags Addresses
|
|
8376
|
+
* @name V1AddressesSuggestList
|
|
8377
|
+
* @summary Location autocomplete
|
|
8378
|
+
* @request GET:/api/v1/addresses/suggest
|
|
8379
|
+
* @secure
|
|
8380
|
+
*/
|
|
8381
|
+
v1AddressesSuggestList: (query?: {
|
|
8382
|
+
/** The term to rank against. Shorter than two characters it is ignored entirely and the biggest groups come back instead. */
|
|
8383
|
+
search?: string;
|
|
8384
|
+
/**
|
|
8385
|
+
* How many suggestions to answer, across both lists; defaults to 10 when omitted.
|
|
8386
|
+
* @format int32
|
|
8387
|
+
*/
|
|
8388
|
+
top?: number;
|
|
8389
|
+
}, params?: RequestParams) => Promise<HttpResponse<LocationSuggestionsResponse, ApiError | ProblemDetails>>;
|
|
8390
|
+
/**
|
|
8391
|
+
* @description Returns unique zip codes from addresses with pagination and optional search. Kostet 1 Credit.
|
|
8392
|
+
*
|
|
8393
|
+
* @tags Addresses
|
|
8394
|
+
* @name V1AddressesZipcodesList
|
|
8395
|
+
* @summary ZIP codes
|
|
8396
|
+
* @request GET:/api/v1/addresses/zipcodes
|
|
8397
|
+
* @secure
|
|
8398
|
+
*/
|
|
8399
|
+
v1AddressesZipcodesList: (query?: {
|
|
8400
|
+
search?: string;
|
|
8401
|
+
/**
|
|
8402
|
+
* 1-based page number; defaults to 1 when omitted.
|
|
8403
|
+
* @format int32
|
|
8404
|
+
* @min 1
|
|
8405
|
+
* @max 1000
|
|
8359
8406
|
*/
|
|
8360
|
-
|
|
8407
|
+
page?: number;
|
|
8361
8408
|
/**
|
|
8362
|
-
*
|
|
8363
|
-
* @format
|
|
8409
|
+
* Number of items per page; defaults to 10 when omitted.
|
|
8410
|
+
* @format int32
|
|
8411
|
+
* @min 1
|
|
8412
|
+
* @max 100
|
|
8364
8413
|
*/
|
|
8365
|
-
|
|
8366
|
-
}, params?: RequestParams) => Promise<HttpResponse<
|
|
8414
|
+
pageSize?: number;
|
|
8415
|
+
}, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfZipCodeResponse, ApiError | ProblemDetails>>;
|
|
8367
8416
|
/**
|
|
8368
|
-
* @description
|
|
8417
|
+
* @description The Gemeinde catalogue: one row per Austrian Gemeinde the register can address, with its official name, its URL slug, its Bundesland and that Land's slug, the PLZ that resolve to it, the alias slugs that name it and, for Wien, its Bezirke. This is the one source for a place's identity. The city column of an address is Firmenbuch free text and carries "Klagenfurt am Wörthersee", "Klagenfurt", "Klagenfurt-Viktring" and "Klagenfurt-Wölfnitz" side by side, so it cannot be a key; a Gemeinde is derived from the PLZ of the Geschäftsanschrift instead, and GET /businesses?gemeinde=<slug> answers every one of those spellings at once. Fold the zipCode buckets of GET /businesses/aggregate through zipCodes to count companies per Gemeinde. Unpaged and without a filter on purpose: 1.893 rows that change only with a new Gebietsstand, so one cacheable answer is cheaper for every caller than paging a list they all want whole. Companies with a foreign or unusable PLZ resolve to no Gemeinde and appear under none. Kostet 1 Credit.
|
|
8369
8418
|
*
|
|
8370
|
-
* @tags
|
|
8371
|
-
* @name
|
|
8372
|
-
* @summary
|
|
8373
|
-
* @request GET:/api/v1/
|
|
8419
|
+
* @tags Addresses
|
|
8420
|
+
* @name V1AddressesGemeindenList
|
|
8421
|
+
* @summary Gemeinden
|
|
8422
|
+
* @request GET:/api/v1/addresses/gemeinden
|
|
8374
8423
|
* @secure
|
|
8375
8424
|
*/
|
|
8376
|
-
|
|
8425
|
+
v1AddressesGemeindenList: (params?: RequestParams) => Promise<HttpResponse<GemeindeResponse[], ApiError | ProblemDetails>>;
|
|
8377
8426
|
/**
|
|
8378
|
-
* @description
|
|
8427
|
+
* @description Downloads a Firmenbuch document (PDF/XML) by its document key. Kostet 3 Credits.
|
|
8379
8428
|
*
|
|
8380
|
-
* @tags
|
|
8381
|
-
* @name
|
|
8382
|
-
* @summary
|
|
8383
|
-
* @request GET:/api/v1/
|
|
8429
|
+
* @tags Documents
|
|
8430
|
+
* @name V1DocumentsDownloadDetail
|
|
8431
|
+
* @summary Firmenbuch document download
|
|
8432
|
+
* @request GET:/api/v1/documents/download/{documentKey}
|
|
8384
8433
|
* @secure
|
|
8385
8434
|
*/
|
|
8386
|
-
|
|
8435
|
+
v1DocumentsDownloadDetail: (documentKey: string, params?: RequestParams) => Promise<HttpResponse<void, string | ApiError | ProblemDetails>>;
|
|
8387
8436
|
/**
|
|
8388
|
-
* @description
|
|
8437
|
+
* @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.
|
|
8389
8438
|
*
|
|
8390
|
-
* @tags
|
|
8391
|
-
* @name
|
|
8392
|
-
* @summary
|
|
8393
|
-
* @request GET:/api/v1/
|
|
8439
|
+
* @tags Documents
|
|
8440
|
+
* @name V1DocumentsChangesDetail
|
|
8441
|
+
* @summary Document change by id
|
|
8442
|
+
* @request GET:/api/v1/documents/changes/{id}
|
|
8394
8443
|
* @secure
|
|
8395
8444
|
*/
|
|
8396
|
-
|
|
8445
|
+
v1DocumentsChangesDetail: (id: number, params?: RequestParams) => Promise<HttpResponse<DocumentChange, ApiError | ProblemDetails>>;
|
|
8397
8446
|
/**
|
|
8398
|
-
* @description
|
|
8447
|
+
* @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.
|
|
8399
8448
|
*
|
|
8400
|
-
* @tags
|
|
8401
|
-
* @name
|
|
8402
|
-
* @summary
|
|
8403
|
-
* @request GET:/api/v1/
|
|
8449
|
+
* @tags Documents
|
|
8450
|
+
* @name V1DocumentsChangesList
|
|
8451
|
+
* @summary Document change feed
|
|
8452
|
+
* @request GET:/api/v1/documents/changes
|
|
8404
8453
|
* @secure
|
|
8405
8454
|
*/
|
|
8406
|
-
|
|
8455
|
+
v1DocumentsChangesList: (query?: {
|
|
8456
|
+
/** 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. */
|
|
8457
|
+
fnr?: string;
|
|
8458
|
+
/**
|
|
8459
|
+
* 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.
|
|
8460
|
+
* @format date-time
|
|
8461
|
+
*/
|
|
8462
|
+
since?: string;
|
|
8463
|
+
/**
|
|
8464
|
+
* 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.
|
|
8465
|
+
* @format int64
|
|
8466
|
+
*/
|
|
8467
|
+
sinceId?: number;
|
|
8468
|
+
/**
|
|
8469
|
+
* 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.
|
|
8470
|
+
* @format int32
|
|
8471
|
+
* @min 1
|
|
8472
|
+
* @max 1000
|
|
8473
|
+
*/
|
|
8474
|
+
page?: number;
|
|
8475
|
+
/**
|
|
8476
|
+
* Number of items per page; defaults to 100 when omitted. A page shorter than this is the end of the feed.
|
|
8477
|
+
* @format int32
|
|
8478
|
+
* @min 1
|
|
8479
|
+
* @max 100
|
|
8480
|
+
*/
|
|
8481
|
+
pageSize?: number;
|
|
8482
|
+
}, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfDocumentChange, ApiError | ProblemDetails>>;
|
|
8407
8483
|
/**
|
|
8408
|
-
* @description
|
|
8484
|
+
* @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.
|
|
8409
8485
|
*
|
|
8410
|
-
* @tags
|
|
8411
|
-
* @name
|
|
8412
|
-
* @summary
|
|
8413
|
-
* @request GET:/api/v1/
|
|
8486
|
+
* @tags Search
|
|
8487
|
+
* @name V1SearchList
|
|
8488
|
+
* @summary Companies and people in one ranked list
|
|
8489
|
+
* @request GET:/api/v1/search
|
|
8414
8490
|
* @secure
|
|
8415
8491
|
*/
|
|
8416
|
-
|
|
8492
|
+
v1SearchList: (query?: {
|
|
8493
|
+
/** The term. Empty answers an empty list — this endpoint suggests, it does not list. */
|
|
8494
|
+
search?: string;
|
|
8495
|
+
/**
|
|
8496
|
+
* How many rows to take from each side before they are ranked together, so the answer holds at most twice this many; defaults to 10 when omitted.
|
|
8497
|
+
* @format int32
|
|
8498
|
+
* @min 1
|
|
8499
|
+
* @max 100
|
|
8500
|
+
*/
|
|
8501
|
+
pageSize?: number;
|
|
8502
|
+
}, params?: RequestParams) => Promise<HttpResponse<SearchResponse, ApiError | ProblemDetails>>;
|
|
8417
8503
|
/**
|
|
8418
|
-
* @description
|
|
8504
|
+
* @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} — a person's is the Firmenakte-ID, e.g. "P-7K3M-QX91"; 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. personId answers on the canonical Firmenakte-ID; another spelling of it and a person's old "vorname-nachname-…" id answer one 308 whose relative Location carries the canonical form. Kostet 3 Credits.
|
|
8419
8505
|
*
|
|
8420
|
-
* @tags
|
|
8421
|
-
* @name
|
|
8422
|
-
* @summary
|
|
8423
|
-
* @request GET:/api/v1/
|
|
8506
|
+
* @tags Graph
|
|
8507
|
+
* @name V1GraphList
|
|
8508
|
+
* @summary Relationship graph
|
|
8509
|
+
* @request GET:/api/v1/graph
|
|
8424
8510
|
* @secure
|
|
8425
8511
|
*/
|
|
8426
|
-
|
|
8512
|
+
v1GraphList: (query?: {
|
|
8513
|
+
/** Start from this person, by Firmenakte-ID ("P-7K3M-QX91"). Mutually exclusive with fnr. */
|
|
8514
|
+
personId?: string;
|
|
8515
|
+
/** Start from this company. Normalised before matching — trimmed, spaces and leading zeros removed — so 034853 f and 34853f are the same company; case is not folded. Mutually exclusive with personId. */
|
|
8516
|
+
fnr?: string;
|
|
8517
|
+
}, params?: RequestParams) => Promise<HttpResponse<GraphResponse, ApiError | ProblemDetails>>;
|
|
8518
|
+
/**
|
|
8519
|
+
* @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.
|
|
8520
|
+
*
|
|
8521
|
+
* @tags GlobalChanges
|
|
8522
|
+
* @name V1GlobalchangesList
|
|
8523
|
+
* @summary All-register change feed
|
|
8524
|
+
* @request GET:/api/v1/globalchanges
|
|
8525
|
+
* @secure
|
|
8526
|
+
*/
|
|
8527
|
+
v1GlobalchangesList: (query?: {
|
|
8427
8528
|
/** 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. */
|
|
8428
8529
|
fnr?: string;
|
|
8429
8530
|
/**
|
|
@@ -8450,28 +8551,59 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
|
|
|
8450
8551
|
* @max 100
|
|
8451
8552
|
*/
|
|
8452
8553
|
pageSize?: number;
|
|
8453
|
-
}, params?: RequestParams) => Promise<HttpResponse<
|
|
8554
|
+
}, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfGlobalChange, ApiError | ProblemDetails>>;
|
|
8454
8555
|
/**
|
|
8455
|
-
* @description
|
|
8556
|
+
* @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.
|
|
8456
8557
|
*
|
|
8457
|
-
* @tags
|
|
8458
|
-
* @name
|
|
8459
|
-
* @summary
|
|
8460
|
-
* @request GET:/api/v1/
|
|
8558
|
+
* @tags GlobalChanges
|
|
8559
|
+
* @name V1GlobalchangesAggregatedList
|
|
8560
|
+
* @summary Aggregated watchlist changes
|
|
8561
|
+
* @request GET:/api/v1/globalchanges/aggregated
|
|
8461
8562
|
* @secure
|
|
8462
8563
|
*/
|
|
8463
|
-
|
|
8564
|
+
v1GlobalchangesAggregatedList: (query?: {
|
|
8565
|
+
/** Firmenbuch numbers to fetch changes for. Max 1000 items. Each is 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. */
|
|
8566
|
+
fnr?: string[];
|
|
8567
|
+
/** @format date-time */
|
|
8568
|
+
since?: string;
|
|
8569
|
+
/** @format int64 */
|
|
8570
|
+
sinceId?: number;
|
|
8571
|
+
/**
|
|
8572
|
+
* Max number of changes to return per type. Default 500, max 2000.
|
|
8573
|
+
* @format int32
|
|
8574
|
+
* @min 1
|
|
8575
|
+
* @max 2000
|
|
8576
|
+
*/
|
|
8577
|
+
maxResultsPerType?: number;
|
|
8578
|
+
}, params?: RequestParams) => Promise<HttpResponse<AggregatedChangesResponse, ApiError | ProblemDetails>>;
|
|
8464
8579
|
/**
|
|
8465
|
-
* @description Returns
|
|
8580
|
+
* @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.
|
|
8466
8581
|
*
|
|
8467
|
-
* @tags
|
|
8468
|
-
* @name
|
|
8469
|
-
* @summary
|
|
8470
|
-
* @request GET:/api/v1/
|
|
8582
|
+
* @tags GlobalChanges
|
|
8583
|
+
* @name V1GlobalchangesDetail
|
|
8584
|
+
* @summary Change by id
|
|
8585
|
+
* @request GET:/api/v1/globalchanges/{id}
|
|
8471
8586
|
* @secure
|
|
8472
8587
|
*/
|
|
8473
|
-
|
|
8588
|
+
v1GlobalchangesDetail: (id: number, params?: RequestParams) => Promise<HttpResponse<ChangeDetailResponse, ApiError | ProblemDetails>>;
|
|
8589
|
+
/**
|
|
8590
|
+
* @description Returns the OeNACE classification catalog with company counts. Results are ordered by company count descending — most used first. Kostet 1 Credit.
|
|
8591
|
+
*
|
|
8592
|
+
* @tags Oenace
|
|
8593
|
+
* @name V1OenaceList
|
|
8594
|
+
* @summary OeNACE classification catalog
|
|
8595
|
+
* @request GET:/api/v1/oenace
|
|
8596
|
+
* @secure
|
|
8597
|
+
*/
|
|
8598
|
+
v1OenaceList: (query?: {
|
|
8474
8599
|
search?: string;
|
|
8600
|
+
/**
|
|
8601
|
+
* Filter by hierarchy level (1–5). Omit to return all levels.
|
|
8602
|
+
* @format int32
|
|
8603
|
+
*/
|
|
8604
|
+
ebene?: number;
|
|
8605
|
+
/** @format int32 */
|
|
8606
|
+
minCompanyCount?: number;
|
|
8475
8607
|
/**
|
|
8476
8608
|
* 1-based page number; defaults to 1 when omitted.
|
|
8477
8609
|
* @format int32
|
|
@@ -8486,17 +8618,18 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
|
|
|
8486
8618
|
* @max 100
|
|
8487
8619
|
*/
|
|
8488
8620
|
pageSize?: number;
|
|
8489
|
-
}, params?: RequestParams) => Promise<HttpResponse<
|
|
8621
|
+
}, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfOenaceCatalogItemResponse, ApiError | ProblemDetails>>;
|
|
8490
8622
|
/**
|
|
8491
|
-
* @description Returns
|
|
8623
|
+
* @description Returns all legal forms with pagination and optional search, sorted by business count descending. Kostet 1 Credit.
|
|
8492
8624
|
*
|
|
8493
|
-
* @tags
|
|
8494
|
-
* @name
|
|
8495
|
-
* @summary
|
|
8496
|
-
* @request GET:/api/v1/
|
|
8625
|
+
* @tags LegalForms
|
|
8626
|
+
* @name V1LegalformsList
|
|
8627
|
+
* @summary Legal form catalog
|
|
8628
|
+
* @request GET:/api/v1/legalforms
|
|
8497
8629
|
* @secure
|
|
8498
8630
|
*/
|
|
8499
|
-
|
|
8631
|
+
v1LegalformsList: (query?: {
|
|
8632
|
+
/** @maxLength 200 */
|
|
8500
8633
|
search?: string;
|
|
8501
8634
|
/**
|
|
8502
8635
|
* 1-based page number; defaults to 1 when omitted.
|
|
@@ -8512,35 +8645,18 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
|
|
|
8512
8645
|
* @max 100
|
|
8513
8646
|
*/
|
|
8514
8647
|
pageSize?: number;
|
|
8515
|
-
}, params?: RequestParams) => Promise<HttpResponse<
|
|
8516
|
-
/**
|
|
8517
|
-
* @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. Ohne API-Key abrufbar und kostet keine Credits.
|
|
8518
|
-
*
|
|
8519
|
-
* @tags Addresses
|
|
8520
|
-
* @name V1AddressesSuggestList
|
|
8521
|
-
* @summary Location autocomplete
|
|
8522
|
-
* @request GET:/api/v1/addresses/suggest
|
|
8523
|
-
* @secure
|
|
8524
|
-
*/
|
|
8525
|
-
v1AddressesSuggestList: (query?: {
|
|
8526
|
-
/** The term to rank against. Shorter than two characters it is ignored entirely and the biggest groups come back instead. */
|
|
8527
|
-
search?: string;
|
|
8528
|
-
/**
|
|
8529
|
-
* How many suggestions to answer, across both lists; defaults to 10 when omitted.
|
|
8530
|
-
* @format int32
|
|
8531
|
-
*/
|
|
8532
|
-
top?: number;
|
|
8533
|
-
}, params?: RequestParams) => Promise<HttpResponse<LocationSuggestionsResponse, ApiError | ProblemDetails>>;
|
|
8648
|
+
}, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfLegalFormCatalogItemResponse, ApiError | ProblemDetails>>;
|
|
8534
8649
|
/**
|
|
8535
|
-
* @description Returns
|
|
8650
|
+
* @description Returns all courts with pagination and optional search, sorted by business count descending. Kostet 1 Credit.
|
|
8536
8651
|
*
|
|
8537
|
-
* @tags
|
|
8538
|
-
* @name
|
|
8539
|
-
* @summary
|
|
8540
|
-
* @request GET:/api/v1/
|
|
8652
|
+
* @tags Courts
|
|
8653
|
+
* @name V1CourtsList
|
|
8654
|
+
* @summary Court catalog
|
|
8655
|
+
* @request GET:/api/v1/courts
|
|
8541
8656
|
* @secure
|
|
8542
8657
|
*/
|
|
8543
|
-
|
|
8658
|
+
v1CourtsList: (query?: {
|
|
8659
|
+
/** @maxLength 200 */
|
|
8544
8660
|
search?: string;
|
|
8545
8661
|
/**
|
|
8546
8662
|
* 1-based page number; defaults to 1 when omitted.
|
|
@@ -8556,17 +8672,17 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
|
|
|
8556
8672
|
* @max 100
|
|
8557
8673
|
*/
|
|
8558
8674
|
pageSize?: number;
|
|
8559
|
-
}, params?: RequestParams) => Promise<HttpResponse<
|
|
8675
|
+
}, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfCourtCatalogItemResponse, ApiError | ProblemDetails>>;
|
|
8560
8676
|
/**
|
|
8561
|
-
* @description
|
|
8677
|
+
* @description Returns all assignment functions (code/text lookup) for display. Cached 24h. Kostet 1 Credit.
|
|
8562
8678
|
*
|
|
8563
|
-
* @tags
|
|
8564
|
-
* @name
|
|
8565
|
-
* @summary
|
|
8566
|
-
* @request GET:/api/v1/
|
|
8679
|
+
* @tags AssignmentFunctions
|
|
8680
|
+
* @name V1AssignmentfunctionsList
|
|
8681
|
+
* @summary Assignment function catalog
|
|
8682
|
+
* @request GET:/api/v1/assignmentfunctions
|
|
8567
8683
|
* @secure
|
|
8568
8684
|
*/
|
|
8569
|
-
|
|
8685
|
+
v1AssignmentfunctionsList: (params?: RequestParams) => Promise<HttpResponse<AssignmentFunctionItemResponse[], ApiError | ProblemDetails>>;
|
|
8570
8686
|
};
|
|
8571
8687
|
}
|
|
8572
8688
|
export {};
|