Änderungen von Dokument Submission-API
Zuletzt geändert von MACH ProForms GmbH am 25.06.2024
Von Version 9.1
bearbeitet von MACH ProForms GmbH
am 09.07.2021
am 09.07.2021
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Auf Version 2.1
bearbeitet von MACH ProForms GmbH
am 08.10.2020
am 08.10.2020
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Zusammenfassung
-
Seiteneigenschaften (1 geändert, 0 hinzugefügt, 0 gelöscht)
Details
- Seiteneigenschaften
-
- Inhalt
-
... ... @@ -1,68 +1,163 @@ 1 -## A llgemeines1 +## Authentifizierung 2 2 3 -Fo rm-Solutions stellt eine Schnittstelle zur Verfügung,diedie Daten aller im System hinterlegten Einreichungen ausliest. Die Architekturberuhtauf demREST-Standard. Wie bei allen von Form-Solutions angebotenen Schnittstellenunterliegtauch diese einemAuthentifizierungskonzept.Die ausgelesenen Ergebnisdaten werdenim JSON-Format zurückgeliefert. Im nachfolgenden Dokument werdeniegenauenFunktionalitäten im Einzelnen beschrieben.3 +Im Folgenden aufgeführte Schnittstelle erfordert eine Authentifizierung der ausführenden Stelle. 4 4 5 - ##Voraussetzungen5 +Hierbei kommt eine preemptive Basic-Authentifizierung zum Einsatz. 6 6 7 - Um dieSubmission-APInutzen zukönnensindfolgendeVoraussetzungenzuerfüllen:8 -- Esmussfür dieAuthentifizierungdie Mandantennummerund der API-Key vorhandensein.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. 9 9 10 - ## Verwendung der Schnittstelle10 +___ 11 11 12 - Unterdem "Submission"-Endpunkt lassen sich Informationen zu eingegangenen Formularen abrufen. Zusätzlich kann einBearbeitungsstatus zurückgemeldet werden. Mittels der Mandantennummer und der Formularnummer lässt sich eine Übersicht an eingegangenen Formularen 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 Einreichezeitpunkt, nicht die letzte Statusänderung. Weitere Verwendungsmöglichkeiten finden Sie in unserer Swagger-Dokumentation.12 +## Base-URL 13 13 14 -## Authentifizierung 14 +Für alle URL-Endpunkte ist ein Prefix im folgenden Stil zu verwenden: 15 +`https://<Server-Name>/submission/api/v2/` 15 15 16 - 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.17 +___ 17 17 18 -Die erforderlichen Authentifizierungsdaten dienen zu Demonstrationszwecken und lauten wie folgt: 19 -***Mandantennummer:*** 77777777-0000 20 -***API-Schlüssel:*** yIJNM2BS6LI0lS25Qa5xbtEK 19 +## Einreichungen 21 21 22 -> {{icon name="far fa-info-circle" size="3"/}} **Hinweis:** 23 -> Die verwendete Authentifizierungsart ist eine Basis-Authentifizierung. 21 +Unter dem `submission`-Endpunkt lassen sich Informationen zu eingegangenen Formularen abrufen. Zusätzlich kann Bearbeitungsstatus zurückgemeldet werden. 24 24 25 -## Beispielanwendung (Swagger-Dokumentation)23 +### Übersicht 26 26 27 -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 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. 28 28 29 -> ***Achtung*** 30 -> Die oben verlinkte Swagger-Dokumentation greift auf den Form-Solutions internen Vertriebsserver zu. Um die Dokumentation auf anderen Servern einzusehen muss die URL folgendem Format entsprechen: < BASIS_URL >/submission/swagger-ui/index.html 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. 31 31 32 - Ebensosteht dem Anwender mitdieser Beispielanwendung einetechnischeDokumentationzur Verfügung, welche dieeinzelnenRessourcendetaillierterbeschreibt.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: 33 33 34 -### Testdaten zu Demonstrationszwecken 52 +1. `?status=NEW&status=READ` 53 +2. `?status=NEW,READ` 35 35 36 -***organizationID:*** 77777777-0000 37 -***Identifier:*** KFAS_SubmissionAPI_Test_WithUpload 38 -***transactionID:*** KFAS_SubmissionAPI_Test_WithUpload-SxqFFZb 39 -***messageID:*** 6050a243756f151657af46a4 40 -***fileID:*** 6050a2e8756f151657af46a6 55 +Gültige Statuswerte sind: 41 41 42 -## Anwendungsbeispiele 57 +- NEW 58 +- READ 59 +- CLOSED 60 +- PRELIMINARY 61 +- HIDDEN 62 +- DELETED 43 43 44 - ###Anwendungsbeispiel164 +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. 45 45 46 -**Abholung eines Detaildatensatzes durch ein einzelnes externes System** 47 -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. 66 +### Detailauskunft 48 48 49 -### Anwendungsbeispiel 2 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. 50 50 51 -**Einsicht und Abholung von Detaildatensätzen durch ein externes System:** 52 -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. 53 -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. 72 +### Statusänderung 54 54 55 - ###Anwendungsbeispiel374 +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: 56 56 57 -**Abholung von Detaildatensätzen durch zwei externe Systeme:** 58 -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. 59 -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 +- NEW 77 +- READ 78 +- CLOSED 79 +- PRELIMINARY 80 +- HIDDEN 81 +- DELETED 60 60 61 -### Anwendungsbeispiel 4 83 +> ***Hinweis:*** 84 +> Wird der Status auf `DELETED` gesetzt, werden die Inhaltsdaten (payload, pdf, xml, attachments) unwiderruflich gelöscht. 62 62 63 -**Abholung von Detaildatensätzen durch drei externe Systeme:** 64 -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. 65 -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. 66 -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. 86 +___ 67 67 88 +## Nachricht 68 68 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 +