Submission-API

Version 5.1 von MACH ProForms GmbH am 15.02.2021

Authentifizierung

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.

Mit dem folgenden Link wird auf eine Oberfläche weitergeleitet, bei der die Schnittstelle auf ihre Funktionalität getestet werden kann. Die erforderlichen Authentifizierungsdaten dienen zu Demonstrationszwecken und lauten wie folgt:

Beispiel: https://vertrieb.form-solutions.de/submission/swagger-ui/index.html
Mandantennummer: 88888888-8888
API-Schlüssel: npcnqwpefwAFWFAFAFqwcqcqwc23rf23rzhbnerg

Hinweis:
Die verwendete Authentifizierungsart ist eine Basis-Authentifizierung.


Base-URL

Für alle URL-Endpunkte ist ein Prefix im folgenden Stil zu verwenden:
https://<Server-Name>/submission/api/v2/


Einreichungen

Unter dem submission-Endpunkt lassen sich Informationen zu eingegangenen Formularen abrufen. Zusätzlich kann Bearbeitungsstatus zurückgemeldet werden.

Übersicht

/submission/<Mandant>/<Formularnummer>
Mittels der Mandantennummer und der Formularnummer lässt sich eine Übersicht an eingegangenen Formularen abrufen. Dabei sind nur Metadaten enthalten, z. B.

[{
 "transID":"AS_940000-gsh7ntqS",
 "userID":"22222222-2222-0126",
 "identifier":"AS_940000",
 "applicantName":"Mustermann",
 "applicantEMail":null,
 "status":"NEW",
 "options": {
   "submissionType":"REGULAR",
   "paymentType":"NONE",
   "npa":false
 },
 "payload":null,
 "pdf":null,
 "xml":null,
 "attachments":null,
 "submissionDate":1455801335305
}]

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 Stati gleichzeitig für die Filterung anzugeben. Hierzu stehen zwei Möglichkeiten zur Verfügung:

  1. ?status=NEW&status=READ
  2. ?status=NEW,READ

Gültige Statuswerte sind:

  • NEW
  • READ
  • CLOSED
  • PRELIMINARY
  • HIDDEN
  • DELETED

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.

Detailauskunft

Sollen alle Daten eines einzelnen Formulareingangs abgerufen werden, ist die URL um die Transaktions-ID zu ergänzen:
/submission/<Mandant>/<Formularnummer>/<Transaktions-ID>/metadata 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.

Der bis zum Release 4.60.0 gültige Aufruf mittels:
/submission/<Mandant>/<Formularnummer>/<Transaktions-ID> sollte mit der obige aufgeführten Endung ergänzt werden. Der damalige Aufruf behält bis auf Weiteres seine Gültigkeit.

PDF

Um ausschließlich die generierte oder befüllte PDF-Datei abzurufen, wird der Pfad mit der Endung pdf verwendet:
/submission/<Mandant>/<Formularnummer>/<Transaktions-ID>/pdf

XML

Um ausschließlich die generierte XML-Datei abzurufen, wird der Pfad mit der Endung xml verwendet:
/submission/<Mandant>/<Formularnummer>/<Transaktions-ID>/xml

<?xml version="1.0" encoding="UTF-8"?>
<!--Sonderzeichen in Feldnamen wurden ersetzt bzw. entfernt!-->
<form template="AS_940000">
...
</form>

Anhänge

Um alle Dateianhänge in einem Zip-Archiv abzurufen, wird der Pfad mit der Endung zip verwendet:
/submission/<Mandant>/<Formularnummer>/<Transaktions-ID>/zip

Statusänderung

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:

  • NEW
  • READ
  • CLOSED
  • PRELIMINARY
  • HIDDEN
  • DELETED

Hinweis:
Wird der Status auf DELETED gesetzt, werden die Inhaltsdaten (payload, pdf, xml, attachments) unwiderruflich gelöscht.


Nachricht

Unter dem message-Endpunkt lassen sich Nachrichten zu einzelnen Transaktionen austauschen.

Neue Nachricht erzeugen

Eine Nachricht kann über einen POST an eine Url mit folgendem Muster erzeugt werden:
/message/<Mandant>/<Transaktions-ID>/create
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.

Übersicht

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:

[{
 "id":"581754a5bf962e5318d90f7b",
 "transID":"AS_940000-gsh7ntqS",
 "changedDate":1477924005742,
 "status":"NEW",
 "text":null,
 "size":0,
 "files":[]
}]

Details

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>

Text

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.

Status

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:

  • NEW
  • READ
  • CLOSED
  • PRELIMINARY
  • HIDDEN
  • DELETED

Hinweis:
Wird der Status auf DELETED gesetzt, werden der Text und alle Dateianhänge unwiderruflich gelöscht.


Nachrichtenanhang

Zu jeder Nachricht können auch Dateien hinterlegt werden. Dies erfolgt unter dem file-Endpunkt.

Hinzuzufügen

Um eine neue Datei einer Nachricht hinzuzufügen, kann diese an eine URL der Form:
/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.

Übersicht

Die Dateien, die zu einer Nachricht vorhanden sind, können der Detailansicht der Nachricht entnommen werden.


Abruf

Die Metadaten der einzelnen Dateien sind unter URLs der folgenden Form abrufbar:
/file/<Mandant>/<Nachricht-ID>/<Datei-ID>.
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.

Löschen

Einzelne Dateien können über die Detail-URL auch wieder gelöscht werden. Dazu ist die HTTP-Methode DELETE zu verwenden.


Beispielanwendung

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

Ebenso steht dem Anwender mit dieser Beispielanwendung eine technische Dokumentation bereit, welche die einzelnen Ressourcen detaillierter beschreibt.