Änderungen von Dokument Submission-API
Zuletzt geändert von MACH formsolutions am 14.04.2026
Von Version 20.1
bearbeitet von MACH formsolutions
am 14.04.2026
am 14.04.2026
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Auf Version 5.1
bearbeitet von MACH formsolutions
am 15.02.2021
am 15.02.2021
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Zusammenfassung
-
Seiteneigenschaften (1 geändert, 0 hinzugefügt, 0 gelöscht)
Details
- Seiteneigenschaften
-
- Inhalt
-
... ... @@ -1,53 +1,207 @@ 1 -## A llgemeines1 +## Authentifizierung 2 2 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. 4 -Die ausgelesenen Ergebnisdaten werden im JSON-Format zurückgeliefert. 3 +Um die Schnittstelle verwenden zu können, muss eine Authentifizierung vorgenommen werden. Für diese ist die Mandantennummer und der dafür hinterlegte API-Schlüssel notwendig, wobei die Mandantennummer als Benutzername und der API-Schlüssel als Passwort gilt. Sollte noch kein passender API-Schlüssel vorliegen, kann dieser beim Administrator des Fomularservers beantragt werden. 5 5 6 -## Voraussetzungen 5 +Mit dem folgenden Link wird auf eine Oberfläche weitergeleitet, bei der die Schnittstelle auf ihre Funktionalität getestet werden kann. 6 +Die erforderlichen Authentifizierungsdaten dienen zu Demonstrationszwecken und lauten wie folgt: 7 7 8 -Um die Submission-API nutzen zu können, sind folgende Voraussetzungen zu erfüllen: 8 +*Beispiel: [https://vertrieb.form-solutions.de/submission/swagger-ui/index.html](https://vertrieb.form-solutions.de/submission/swagger-ui/index.html)* 9 +<br> 10 +*Mandantennummer: 88888888-8888* 11 +<br> 12 +*API-Schlüssel: npcnqwpefwAFWFAFAFqwcqcqwc23rf23rzhbnerg* 9 9 10 -* Es muss für die Authentifizierung die Mandantennummer und der API-Key vorhanden sein. 14 +> ***Hinweis:*** 15 +> Die verwendete Authentifizierungsart ist eine [Basis-Authentifizierung](https://de.wikipedia.org/wiki/HTTP-Authentifizierung#Basic_Authentication). 11 11 12 - ## Verwendung der Schnittstelle17 +___ 13 13 14 - DieAPI wurde nicht für denBrowsergebrauch konzipiert. Um die Anbindung zu testen, werden externe Tools wie beispielsweise [Insomnia](https://insomnia.rest/) oder [Postman](https://www.postman.com/) empfohlen.19 +## Base-URL 15 15 16 -Unter dem "Submission"-Endpunkt lassen sich Informationen zu eingegangenen Formularen abrufen. Zusätzlich kann ein Bearbeitungsstatus zurückgemeldet werden. 17 -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. 18 -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. 19 -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. 20 -Weitere Verwendungsmöglichkeiten finden Sie in unserer Swagger-Dokumentation. 21 +Für alle URL-Endpunkte ist ein Prefix im folgenden Stil zu verwenden:\ 22 +`https://<Server-Name>/submission/api/v2/` 21 21 22 - ## Authentifizierung24 +___ 23 23 24 - Umdie Schnittstelle verwenden zu können, muss eine Authentifizierungvorgenommen 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.26 +## Einreichungen 25 25 26 - EinenAPI-KeykönnenSiebeim BetreiberdesFormularserversbeantragen.28 +Unter dem `submission`-Endpunkt lassen sich Informationen zu eingegangenen Formularen abrufen. Zusätzlich kann Bearbeitungsstatus zurückgemeldet werden. 27 27 28 -## Beispielanwendung (Swagger-Dokumentation)30 +### Übersicht 29 29 30 -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. 32 +`/submission/<Mandant>/<Formularnummer>`\ 33 +Mittels der Mandantennummer und der Formularnummer lässt sich eine Übersicht an eingegangenen Formularen abrufen. Dabei sind nur Metadaten enthalten, z. B. 31 31 32 -Die Adresse der Swagger-Anwendung der Submission-API lautet `< Formularserveradresse >/submission/api/swagger-ui/index.html` 33 -Um die Anwendung aufzurufen, setzen Sie die Adresse des jeweiligen Formularservers ein. 35 +``` 36 +[{ 37 + "transID":"AS_940000-gsh7ntqS", 38 + "userID":"22222222-2222-0126", 39 + "identifier":"AS_940000", 40 + "applicantName":"Mustermann", 41 + "applicantEMail":null, 42 + "status":"NEW", 43 + "options": { 44 + "submissionType":"REGULAR", 45 + "paymentType":"NONE", 46 + "npa":false 47 + }, 48 + "payload":null, 49 + "pdf":null, 50 + "xml":null, 51 + "attachments":null, 52 + "submissionDate":1455801335305 53 +}] 54 +``` 34 34 35 - FürFunktionstestssindgültigeAuthentifizierungsdatenfür denjeweiligenServererforderlich(MandantennummerundAPI-Key).56 +Wird beim Assistentenstart eine Ordnungsziffer mitgegeben enthält das Attribut payload die übergebene Ordnungsziffer als eingebettetes JSON Element. 36 36 37 - ##Datenabholung durch(mehrere)Systemekoordinierenmit verschiedenenStatus58 +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: 38 38 39 -### Beispiel 1: Abholung eines Detaildatensatzes durch ein einzelnes externes System 60 +1. `?status=NEW&status=READ` 61 +2. `?status=NEW,READ` 40 40 41 -G reift ein einzelnes externes System (beispielsweise eine Portalsoftware) auf einen Detaildatensatz für die weitere Verarbeitungzu, ist nacherfolgreicherÜbermittlung derStatusdes entsprechenden Datensatzesvon "NEW" auf "DELETED" zusetzen.63 +Gültige Statuswerte sind: 42 42 43 -### Beispiel 2: Einsicht und Abholung von Detaildatensätzen durch ein externes System 65 +- NEW 66 +- READ 67 +- CLOSED 68 +- PRELIMINARY 69 +- HIDDEN 70 +- DELETED 44 44 45 - Greiftein externesSystem (beispielsweise eine Portalsoftware)aufdie ÜbersichtallerEinreichungeneines spezifischen Assistenten zu, istder Statusder ermitteltenDatensätze von"NEW" auf "READ" zu setzen.Wirdein Detaildatensatz fürdieweitereVerarbeitungimexternen Systemabgerufen,istnach erfolgreicher Übermittlung der Statusdes entsprechendenDatensatzesvon "READ"auf "DELETED" zusetzen.72 +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. 46 46 47 -### Beispiel 3: Abholung vonDetaildatensätzen durch zwei externe Systeme74 +### Detailauskunft 48 48 49 -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. 76 +Sollen alle Daten eines einzelnen Formulareingangs abgerufen werden, ist die URL um die Transaktions-ID zu ergänzen:\ 77 +`/submission/<Mandant>/<Formularnummer>/<Transaktions-ID>/metadata` 78 +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. 50 50 51 -### Beispiel 4: Abholung von Detaildatensätzen durch drei externe Systeme 80 +Der bis zum Release 4.60.0 gültige Aufruf mittels:\ 81 +`/submission/<Mandant>/<Formularnummer>/<Transaktions-ID>` 82 +sollte mit der obige aufgeführten Endung ergänzt werden. Der damalige Aufruf behält bis auf Weiteres seine Gültigkeit. 52 52 53 -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. 84 +#### PDF 85 + 86 +Um ausschließlich die generierte oder befüllte PDF-Datei abzurufen, wird der Pfad mit der Endung `pdf` verwendet:\ 87 +`/submission/<Mandant>/<Formularnummer>/<Transaktions-ID>/pdf` 88 + 89 + 90 +#### XML 91 + 92 +Um ausschließlich die generierte XML-Datei abzurufen, wird der Pfad mit der Endung `xml` verwendet:\ 93 +`/submission/<Mandant>/<Formularnummer>/<Transaktions-ID>/xml` 94 + 95 +``` 96 +<?xml version="1.0" encoding="UTF-8"?> 97 +<!--Sonderzeichen in Feldnamen wurden ersetzt bzw. entfernt!--> 98 +<form template="AS_940000"> 99 +... 100 +</form> 101 +``` 102 + 103 +#### Anhänge 104 + 105 +Um alle Dateianhänge in einem Zip-Archiv abzurufen, wird der Pfad mit der Endung `zip` verwendet:\ 106 +`/submission/<Mandant>/<Formularnummer>/<Transaktions-ID>/zip` 107 + 108 +### Statusänderung 109 + 110 +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: 111 + 112 +- NEW 113 +- READ 114 +- CLOSED 115 +- PRELIMINARY 116 +- HIDDEN 117 +- DELETED 118 + 119 +> ***Hinweis:*** 120 +> Wird der Status auf `DELETED` gesetzt, werden die Inhaltsdaten (payload, pdf, xml, attachments) unwiderruflich gelöscht. 121 + 122 +___ 123 + 124 +## Nachricht 125 + 126 +Unter dem `message`-Endpunkt lassen sich Nachrichten zu einzelnen Transaktionen austauschen. 127 + 128 +### Neue Nachricht erzeugen 129 + 130 +Eine Nachricht kann über einen POST an eine Url mit folgendem Muster erzeugt werden:\ 131 +`/message/<Mandant>/<Transaktions-ID>/create`\ 132 +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. 133 + 134 +### Übersicht 135 + 136 +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: 137 + 138 +``` 139 +[{ 140 + "id":"581754a5bf962e5318d90f7b", 141 + "transID":"AS_940000-gsh7ntqS", 142 + "changedDate":1477924005742, 143 + "status":"NEW", 144 + "text":null, 145 + "size":0, 146 + "files":[] 147 +}] 148 +``` 149 + 150 +### Details 151 + 152 +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>` 153 + 154 +### Text 155 + 156 +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. 157 + 158 +### Status 159 + 160 +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: 161 + 162 +- NEW 163 +- READ 164 +- CLOSED 165 +- PRELIMINARY 166 +- HIDDEN 167 +- DELETED 168 + 169 +> ***Hinweis:*** 170 +> Wird der Status auf `DELETED` gesetzt, werden der Text und alle Dateianhänge unwiderruflich gelöscht. 171 + 172 +___ 173 + 174 +## Nachrichtenanhang 175 + 176 +Zu jeder Nachricht können auch Dateien hinterlegt werden. Dies erfolgt unter dem `file`-Endpunkt. 177 + 178 +### Hinzuzufügen 179 + 180 +Um eine neue Datei einer Nachricht hinzuzufügen, kann diese an eine URL der Form:\ 181 +`/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. 182 + 183 +### Übersicht 184 + 185 +Die Dateien, die zu einer Nachricht vorhanden sind, können der Detailansicht der Nachricht entnommen werden. 186 + 187 +___ 188 + 189 +## Abruf 190 + 191 +Die Metadaten der einzelnen Dateien sind unter URLs der folgenden Form abrufbar:\ 192 +`/file/<Mandant>/<Nachricht-ID>/<Datei-ID>`.\ 193 +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. 194 + 195 +### Löschen 196 + 197 +Einzelne Dateien können über die Detail-URL auch wieder gelöscht werden. Dazu ist die HTTP-Methode DELETE zu verwenden. 198 + 199 +___ 200 + 201 +### Beispielanwendung 202 + 203 +Um die Schnittstelle beispielhaft bedienen zu können, wird eine Demoanwendung unter folgender URL bereitgestellt: https://vertrieb.form-solutions.de/submission/swagger-ui/index.html 204 + 205 +Ebenso steht dem Anwender mit dieser Beispielanwendung eine technische Dokumentation bereit, welche die einzelnen Ressourcen detaillierter beschreibt. 206 + 207 +