Wiki-Quellcode von Submission-API

Version 3.1 von MACH ProForms GmbH am 19.12.2020

Zeige letzte Bearbeiter
1 ## Authentifizierung
2
3 Im Folgenden aufgeführte Schnittstelle erfordert eine Authentifizierung der ausführenden Stelle.
4
5 Hierbei kommt eine preemptive Basic-Authentifizierung zum Einsatz.
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.
9
10 ___
11
12 ## Base-URL
13
14 Für alle URL-Endpunkte ist ein Prefix im folgenden Stil zu verwenden:\
15 `https://<Server-Name>/submission/api/v2/`
16
17 ___
18
19 ## Einreichungen
20
21 Unter dem `submission`-Endpunkt lassen sich Informationen zu eingegangenen Formularen abrufen. Zusätzlich kann Bearbeitungsstatus zurückgemeldet werden.
22
23 ### Übersicht
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.
27
28 ```
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
49 Wird beim Assistentenstart eine Ordnungsziffer mitgegeben enthält das Attribut payload die übergebene Ordnungsziffer als eingebettetes JSON Element.
50
51 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:
52
53 1. `?status=NEW&status=READ`
54 2. `?status=NEW,READ`
55
56 Gültige Statuswerte sind:
57
58 - NEW
59 - READ
60 - CLOSED
61 - PRELIMINARY
62 - HIDDEN
63 - DELETED
64
65 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.
66
67 ### Detailauskunft
68
69 Sollen alle Daten eines einzelnen Formulareingangs abgerufen werden, ist die URL um die Transaktions-ID zu ergänzen:\
70 `/submission/<Mandant>/<Formularnummer>/<Transaktions-ID>/metadata`
71 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.
72
73 Der bis zum Release 4.60.0 gültige Aufruf mittels:\
74 `/submission/<Mandant>/<Formularnummer>/<Transaktions-ID>`
75 sollte mit der obige aufgeführten Endung ergänzt werden. Der damalige Aufruf behält bis auf Weiteres seine Gültigkeit.
76
77 #### PDF
78
79 Um ausschließlich die generierte oder befüllte PDF-Datei abzurufen, wird der Pfad mit der Endung `pdf` verwendet:\
80 `/submission/<Mandant>/<Formularnummer>/<Transaktions-ID>/pdf`
81
82
83 #### XML
84
85 Um ausschließlich die generierte XML-Datei abzurufen, wird der Pfad mit der Endung `xml` verwendet:\
86 `/submission/<Mandant>/<Formularnummer>/<Transaktions-ID>/xml`
87
88 ```
89 <?xml version="1.0" encoding="UTF-8"?>
90 <!--Sonderzeichen in Feldnamen wurden ersetzt bzw. entfernt!-->
91 <form template="AS_940000">
92 ...
93 </form>
94 ```
95
96 #### Anhänge
97
98 Um alle Dateianhänge in einem Zip-Archiv abzurufen, wird der Pfad mit der Endung `zip` verwendet:\
99 `/submission/<Mandant>/<Formularnummer>/<Transaktions-ID>/zip`
100
101 ### Statusänderung
102
103 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:
104
105 - NEW
106 - READ
107 - CLOSED
108 - PRELIMINARY
109 - HIDDEN
110 - DELETED
111
112 > ***Hinweis:***\
113 > Wird der Status auf `DELETED` gesetzt, werden die Inhaltsdaten (payload, pdf, xml, attachments) unwiderruflich gelöscht.
114
115 ___
116
117 ## Nachricht
118
119 Unter dem `message`-Endpunkt lassen sich Nachrichten zu einzelnen Transaktionen austauschen.
120
121 ### Neue Nachricht erzeugen
122
123 Eine Nachricht kann über einen POST an eine Url mit folgendem Muster erzeugt werden:\
124 `/message/<Mandant>/<Transaktions-ID>/create`\
125 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.
126
127 ### Übersicht
128
129 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:
130
131 ```
132 [{
133 "id":"581754a5bf962e5318d90f7b",
134 "transID":"AS_940000-gsh7ntqS",
135 "changedDate":1477924005742,
136 "status":"NEW",
137 "text":null,
138 "size":0,
139 "files":[]
140 }]
141 ```
142
143 ### Details
144
145 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>`
146
147 ### Text
148
149 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.
150
151 ### Status
152
153 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:
154
155 - NEW
156 - READ
157 - CLOSED
158 - PRELIMINARY
159 - HIDDEN
160 - DELETED
161
162 > ***Hinweis:***\
163 > Wird der Status auf `DELETED` gesetzt, werden der Text und alle Dateianhänge unwiderruflich gelöscht.
164
165 ___
166
167 ## Nachrichtenanhang
168
169 Zu jeder Nachricht können auch Dateien hinterlegt werden. Dies erfolgt unter dem `file`-Endpunkt.
170
171 ### Hinzuzufügen
172
173 Um eine neue Datei einer Nachricht hinzuzufügen, kann diese an eine URL der Form:\
174 `/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.
175
176 ### Übersicht
177
178 Die Dateien, die zu einer Nachricht vorhanden sind, können der Detailansicht der Nachricht entnommen werden.
179
180 ___
181
182 ## Abruf
183
184 Die Metadaten der einzelnen Dateien sind unter URLs der folgenden Form abrufbar:\
185 `/file/<Mandant>/<Nachricht-ID>/<Datei-ID>`.\
186 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.
187
188 ### Löschen
189
190 Einzelne Dateien können über die Detail-URL auch wieder gelöscht werden. Dazu ist die HTTP-Methode DELETE zu verwenden.