Änderungen von Dokument Submission-API

Zuletzt geändert von MACH formsolutions am 14.04.2026

Von Version 2.1
bearbeitet von MACH formsolutions
am 08.10.2020
Änderungskommentar: Es gibt keinen Kommentar für diese Version
Auf Version 18.1
bearbeitet von MACH formsolutions
am 08.04.2026
Änderungskommentar: Es gibt keinen Kommentar für diese Version

Zusammenfassung

Details

Seiteneigenschaften
Inhalt
... ... @@ -1,163 +1,48 @@
1 -## Authentifizierung
1 +## Allgemeines
2 2  
3 -Im Folgenden aufgehrte Schnittstelle erfordert eine Authentifizierung der ausführenden Stelle.
3 +MACH formsolutions stellt eine Schnittstelle zur Verfügung, die die Daten aller im System hinterlegten Einreichungen ausliest. Die Architektur beruht auf dem REST-Standard. Wie bei allen von MACH formsolutions angebotenen Schnittstellen unterliegt auch diese einem Authentifizierungskonzept. Die ausgelesenen Ergebnisdaten werden im JSON-Format zurückgeliefert. Im nachfolgenden Dokument werden die genauen Funktionalitäten im Einzelnen beschrieben.
4 4  
5 -Hierbei kommt eine preemptive Basic-Authentifizierung zum Einsatz.
5 +## Voraussetzungen
6 6  
7 -- Als Benutzername ist die Nummer des Mandanten zu verwenden, in dessen Namen der Aufruf durchgeführt wird.
8 -- Als Passwort dient ein CMS-Key wie er auch an anderen Stellen im System zur Anwendung kommt.
7 +Um die Submission-API nutzen zu können sind folgende Voraussetzungen zu erfüllen:
9 9  
10 -___
9 +* Es muss für die Authentifizierung die Mandantennummer und der API-Key vorhanden sein.
11 11  
12 -## Base-URL
11 +## Verwendung der Schnittstelle
13 13  
14 -Für alle URL-Endpunkte ist ein Prefix im folgenden Stil zu verwenden:
15 -`https://<Server-Name>/submission/api/v2/`
13 +Die API wurde nicht für den Browsergebrauch konzipiert. Um die Anbindung zu testen, werden externe Tools wie beispielsweise [Insomnia](https://insomnia.rest/) oder [Postman](https://www.postman.com/) empfohlen.
16 16  
17 -___
15 +Unter dem "Submission"-Endpunkt lassen sich Informationen zu eingegangenen Formularen abrufen. Zusätzlich kann ein Bearbeitungsstatus zurückgemeldet werden. Mittels der Mandantennummer und der Formularnummer lässt sich eine Übersicht der eingegangenen Formulare abrufen. Dabei sind nur Metadaten enthalten. Wird beim Assistentenstart eine Ordnungsziffer mitgegeben enthält das Attribut "Payload" die übergebene Ordnungsziffer als eingebettetes JSON Element. Die Anzeige kann eingeschränkt werden, indem als Abfrage-Parameter der gewünschte Status mit angegeben wird. So kann z. B. mittels "?status=NEW" auf neue Anträge eingeschränkt werden. Ebenso ist es möglich mehrere Status gleichzeitig für die Filterung anzugeben. Zusätzlich kann der Abfragezeitraum über die Angabe eines "Last-Modified-Headers" eingeschränkt werden. Dabei handelt es sich um den Zeitpunkt der Einreichung, nicht um den Zeitpunkt der letzten Statusänderung. Weitere Verwendungsmöglichkeiten finden Sie in unserer Swagger-Dokumentation.
18 18  
19 -## Einreichungen
17 +## Authentifizierung
20 20  
21 -Unter dem `submission`-Endpunkt lassen sich Informationen zu eingegangenen Formularen abrufen. Zutzlich kann Bearbeitungsstatus zurückgemeldet werden.
19 +Um die Schnittstelle verwenden zu können, muss eine Authentifizierung vorgenommen werden. Für diese sind die Mandantennummer und ein API-Key notwendig, wobei die Mandantennummer als Benutzername und der API-Key als Passwort gilt. Die verwendete Authentifizierungsart ist eine Basis-Authentifizierung.
22 22  
23 -### Übersicht
21 +Einen API-Key können Sie beim Betreiber des Formularservers beantragen.
24 24  
25 -`/submission/<Mandant>/<Formularnummer>`
26 -Mittels der Mandantennummer und der Formularnummer lässt sich eine Übersicht an eingegangenen Formularen abrufen. Dabei sind nur Metadaten enthalten, z. B.
23 +## Beispielanwendung (Swagger-Dokumentation)
27 27  
28 -```json
29 -[{
30 - "transID":"AS_940000-gsh7ntqS",
31 - "userID":"22222222-2222-0126",
32 - "identifier":"AS_940000",
33 - "applicantName":"Mustermann",
34 - "applicantEMail":null,
35 - "status":"NEW",
36 - "options": {
37 - "submissionType":"REGULAR",
38 - "paymentType":"NONE",
39 - "npa":false
40 - },
41 - "payload":null,
42 - "pdf":null,
43 - "xml":null,
44 - "attachments":null,
45 - "submissionDate":1455801335305
46 -}]
47 -```
48 -Wird beim Assistentenstart eine Ordnungsziffer mitgegeben enthält das Attribut payload die übergebene Ordnungsziffer als eingebettetes JSON Element.
25 +Auf dem Formularserver ist mit der Swagger-Anwendung eine übersichtliche Darstellung und technische Dokumentation der Schnittstelle verfügbar. Mit dieser Anwendung kann die Funktionalität auch getestet werden.
49 49  
50 -Die Anzeige kann eingeschränkt werden, indem als Abfrage-Parameter der gewünschte Status mit angegeben wird. So kann z. B. mittels `?status=NEW` auf neue Anträge eingeschränkt werden. Ebenso ist es möglich mehrere Stati gleichzeitig für die Filterung anzugeben. Hierzu stehen zwei Möglichkeiten zur Verfügung:
27 +Die Adresse der Swagger-Anwendung der Submission-API lautet `< Formularserveradresse >/submission/swagger-ui/index.html`
28 +Um die Anwendung aufzurufen, setzen Sie die Adresse des jeweiligen Formularservers ein.
51 51  
52 -1. `?status=NEW&status=READ`
53 -2. `?status=NEW,READ`
30 +Für Funktionstests sind gültige Authentifizierungsdaten für den jeweiligen Server erforderlich (Mandantennummer und API-Key).
54 54  
55 -Gültige Statuswerte sind:
32 +## Datenabholung durch (mehrere) Systeme koordinieren durch Status
56 56  
57 -- NEW
58 -- READ
59 -- CLOSED
60 -- PRELIMINARY
61 -- HIDDEN
62 -- DELETED
34 +### Beispiel 1: Abholung eines Detaildatensatzes durch ein einzelnes externes System
63 63  
64 -Zusätzlich kann der Abfragezeitraum über die Angabe eines `Last-Modified`-Headers eingeschränkt werden. Dabei handelt es sich um den Einreichezeitpunkt, nicht die letzte Statusänderung.
36 +Greift ein einzelnes externes System (beispielsweise eine Portalsoftware) auf einen Detaildatensatz für die weitere Verarbeitung zu, ist nach erfolgreicher Übermittlung der Status des entsprechenden Datensatzes von "NEW" auf "DELETED" zu setzen.
65 65  
66 -### Detailauskunft
38 +### Beispiel 2: Einsicht und Abholung von Detaildatensätzen durch ein externes System
67 67  
68 -Sollen alle Daten eines einzelnen Formulareingangs abgerufen werden, ist die URL lediglich um die Transaktions-ID zu ergänzen:
69 -`/submission/<Mandant>/<Formularnummer>/<Transaktions-ID>`
70 -Das Ergebnis besitzt dieselbe Struktur wie bei der Übersichtsabfrage. Allerdings enthält das Attribut `payload` die kompletten Assistentendaten als eingebettetes JSON-Element und die Attribute pdf, xml und attachments enthalten die entsprechenden Einreichedaten.
40 +Greift ein externes System (beispielsweise eine Portalsoftware) auf die Übersicht aller Einreichungen eines spezifischen Assistenten zu, ist der Status der ermittelten Datensätze von "NEW" auf "READ" zu setzen. Wird ein Detaildatensatz für die weitere Verarbeitung im externen System abgerufen, ist nach erfolgreicher Übermittlung der Status des entsprechenden Datensatzes von "READ" auf "DELETED" zu setzen.
71 71  
72 -### Statusänderung
42 +### Beispiel 3: Abholung von Detaildatentzen durch zwei externe Systeme
73 73  
74 -Um den Bearbeitungsstatus eines Vorgangs kenntlich zu machen, kann der Status einer Transaktion geändert werden. Dazu wird an die Detail-URL ein POST gesendet mit dem zusätzlichen Parameter `setStatus`. Gültige Statuswerte sind:
44 +Wird ein Detaildatensatz für die weitere Verarbeitung in der Portalsoftware abgerufen, ist nach erfolgreicher Übermittlung der Status des entsprechenden Datensatzes von "NEW" auf "READ" zu setzen. Greift ein weiteres System (beispielsweise ein Fachverfahren) auf die Detaildatensätze zu, sollte stets eine Filterung auf Einreichungen mit dem Status „READ“ erfolgen. Nach erfolgreicher Übermittlung ist der Status des entsprechenden Datensatzes von „READ“ auf „DELETED“ zu setzen.
75 75  
76 -- NEW
77 -- READ
78 -- CLOSED
79 -- PRELIMINARY
80 -- HIDDEN
81 -- DELETED
46 +### Beispiel 4: Abholung von Detaildatensätzen durch drei externe Systeme
82 82  
83 -> ***Hinweis:***
84 -> Wird der Status auf `DELETED` gesetzt, werden die Inhaltsdaten (payload, pdf, xml, attachments) unwiderruflich gelöscht.
85 -
86 -___
87 -
88 -## Nachricht
89 -
90 -Unter dem `message`-Endpunkt lassen sich Nachrichten zu einzelnen Transaktionen austauschen.
91 -
92 -### Neue Nachricht erzeugen
93 -
94 -Eine Nachricht kann über einen POST an eine Url mit folgendem Muster erzeugt werden:
95 -`/message/<Mandant>/<Transaktions-ID>/create`
96 -Als Rückgabewert erhält man lediglich die Nachrichten-ID des neuen Eintrags. Enthält der POST einen Body, so wird dieser als Nachrichtentext verwendet.
97 -
98 -### Übersicht
99 -
100 -Eine Übersicht der Nachrichten zu einem einzelnen Vorgang können über `/message/<Mandant>/<Transaktions-ID>` abgerufen werden. Als Antwort erhält man ein JSON-Array in folgender Form:
101 -
102 -```json
103 -[{
104 - "id":"581754a5bf962e5318d90f7b",
105 - "transID":"AS_940000-gsh7ntqS",
106 - "changedDate":1477924005742,
107 - "status":"NEW",
108 - "text":null,
109 - "size":0,
110 - "files":[]
111 -}]
112 -```
113 -
114 -### Details
115 -
116 -Die Details zu einer einzelnen Nachricht inkl. Nachrichtentext und Verweisen auf hinterlegte Dateien können über eine URL der folgenden Form abgerufen werden: `/message/<Mandant>/<Transaktions-ID>/<Nachrichten-ID>`
117 -
118 -### Text
119 -
120 -Soll der Text einer Nachricht nachträglich hinzugefügt oder geändert werden, kann dies über einen Post an die Detail-URL bewerkstelligt werden. Der neue Text ist dabei als POST-Body zu übergeben.
121 -
122 -### Status
123 -
124 -Auch Nachrichten besitzen ein Status-Attribut. Dieses kann dadurch geändert werden, dass man eine POST-Nachricht an die Detail-URL mit einem zusätzlichen `setStatus`-Parameter sendet. Gültige Statuswerte sind:
125 -
126 -- NEW
127 -- READ
128 -- CLOSED
129 -- PRELIMINARY
130 -- HIDDEN
131 -- DELETED
132 -
133 -> ***Hinweis:***
134 -> Wird der Status auf `DELETED` gesetzt, werden der Text und alle Dateianhänge unwiderruflich gelöscht.
135 -
136 -___
137 -
138 -## Nachrichtenanhang
139 -
140 -Zu jeder Nachricht können auch Dateien hinterlegt werden. Dies erfolgt unter dem `file`-Endpunkt.
141 -
142 -### Hinzuzufügen
143 -
144 -Um eine neue Datei einer Nachricht hinzuzufügen, kann diese an eine URL der Form:
145 -`/file/<Mandant>/<Nachtrichten-ID>/add` als POST gesendet werden. Der Dateiname muss dabei als Parameter `filename` übergeben werden. Der Contenttype wird dem entsprechenden HTTP-Header entnommen.
146 -
147 -### Übersicht
148 -
149 -Die Dateien, die zu einer Nachricht vorhanden sind, können der Detailansicht der Nachricht entnommen werden.
150 -
151 -___
152 -
153 -## Abruf
154 -
155 -Die Metadaten der einzelnen Dateien sind unter URLs der folgenden Form abrufbar:
156 -`/file/<Mandant>/<Nachricht-ID>/<Datei-ID>`.
157 -Um den Inhalt abzurufen, muss die URL nur um `/data` ergänzt werden. Der Contenttype wird dabei auf den Wert gesetzt, der beim Hochladen verwendet wurde.
158 -
159 -### Löschen
160 -
161 -Einzelne Dateien können über die Detail-URL auch wieder gelöscht werden. Dazu ist die HTTP-Methode DELETE zu verwenden.
162 -
163 -
48 +Wird ein Detaildatensatz für die weitere Verarbeitung in der Portalsoftware abgerufen, ist nach erfolgreicher Übermittlung der Status des entsprechenden Datensatzes von "NEW" auf "READ" zu setzen. Greift ein zweites System (beispielsweise ein Fachverfahren) auf die Detaildatensätze zu, sollte stets eine Filterung auf Einreichungen mit dem Status „READ“ erfolgen. Nach erfolgreicher Übermittlung ist der Status des entsprechenden Datensatzes von „READ“ auf „PRELIMINARY“ zu setzen. Greift ein drittes System (beispielsweise eine Software zur Benachrichtigung des Antragstellers über das Ergebnis) auf die Detaildatensätze zu, sollte stets eine Filterung auf Einreichungen mit dem Status „PRELIMINARY“ erfolgen. Nach erfolgreicher Übermittlung ist der Status des entsprechenden Datensatzes von „PRELIMINARY“ auf „DELETED“ zu setzen.