FileCap API

FileCap-API-Dokumentation

1. Einleitung

Dieses Dokument beschreibt die öffentliche HTTP-API, die vom FileCap-Server bereitgestellt wird. Diese Endpunkte sind für E-Mail-Plugins, Integrationen von Drittanbietern und andere externe Systeme vorgesehen, die Dateien hochladen, Einladungen anfordern, Übertragungsmetadaten validieren oder die Serverkonfiguration auslesen müssen. Interne Endpunkte, die vom Admin-Panel, dem OWA-Add-in und Integrationen mit Partner- bzw. Lizenzservern genutzt werden, fallen nicht in den Geltungsbereich dieses Dokuments.

Die API hat sich in zwei unterschiedlichen Generationen weiterentwickelt:

  1. Legacy-API – ein Satz von .jsp URLs (z. B. process_upload.jsp), das früher das Outlook-Classic-Plugin und ähnliche Integrationen unterstützt hat. Jede JSP führt eine serverseitige Weiterleitung an einen modernen REST-Endpunkt durch; sowohl die JSP als auch der moderne Pfad funktionieren weiterhin.
  2. Moderne API – JSON-/Multipart-Endpunkte unter /FileCap/api/... die eine strukturierte ApiResult<T> Envelope. Neue Integrationen sollten auf diese Schnittstelle abzielen.

1.1 Basis-URL & Kontextverzeichnis

Alle Endpunkte werden von der FileCap-Webanwendung im Kontextstammverzeichnis bereitgestellt. /FileCap. Die Postman-Sammlung, die mit diesem Dokument geliefert wird, verwendet eine baseURL Variable, die das Schema + den Host (ohne abschließenden Schrägstrich) enthalten sollte, z. B.:

https://filecap.example.com

Die resultierenden URLs werden dann wie folgt gebildet: {{baseURL}}/FileCap/<path>.

1.2 Authentifizierung

Die meisten Endpunkte akzeptieren ein APIKey im Request-Body (Formularfeld, URL-kodierter Parameter oder JSON-Eigenschaft – die modernen Varianten akzeptieren apiKey (ebenso). Der Schlüssel wird pro FileCap-Mandanten konfiguriert und ist für jeden Integrationsaufruf erforderlich, es sei denn, der Endpunkt ist ausdrücklich öffentlich (z. B. password-rules und der validate/* Endpunkte).

Ein Teil der modernen Endpunkte akzeptiert zusätzlich ein deviceApiKey, das vom Geräte-Registrierungsprozess zurückgegeben wird (Abschnitt 9). Endpunkte, die eine Authentifizierung über das Webportal erfordern, verwenden entweder das Portal-Sitzungs-Cookie oder ein JWT-Bearer-Token (Gültigkeitsbereich transfer:free).

1.3 Antwort-Envelope (moderne API)

Moderne JSON-Endpunkte verpacken ihr Ergebnis in:

{
  "success": true,
  "value": { ... },
  "errorMessage": null
}

Im Falle eines Fehlers, Erfolg ist falsch, Wert ist null und Fehlermeldung enthält den Grund.

1.4 Antwortformat (Legacy-API)

Das Vermächtnis / *.jsp Endpunkte geben Klartext zurück:

  • wahr — Anfrage erfolgreich.
  • false|<ERROR_CODE> — Die Anfrage ist fehlgeschlagen; der Code gibt die Ursache an.

1.5 Ratenbegrenzung

Einige Endpunkte unterliegen einer Ratenbegrenzung pro Sitzung, pro JWT oder global. Die Begrenzungen sind, soweit relevant, in der Endpunkt-Referenz aufgeführt. Wird eine Begrenzung überschritten, antwortet der Server mit HTTP 429.

2. Legacy-API (JSP)

Dies sind die ursprünglichen öffentlichen Endpunkte. Sie werden aus Gründen der Abwärtskompatibilität mit bereits implementierten E-Mail-Plugins und Skripten von Drittanbietern beibehalten. Bei neuen Integrationen sollten vorzugsweise die modernen Entsprechungen aus den folgenden Kapiteln verwendet werden; die nachstehende Tabelle zeigt, welche alte URL zu welchem modernen Pfad weiterleitet.

Alte URLMethodeWeiterleiten anAnmerkungen
process_upload.jspPOST/api/transfer/v1/send-outlook-transfermultipart/form-data, text/plain-Antwort
invite.jspPOST/api/invite/oldapplication/x-www-form-urlencoded
mailPluginSettings.jspPOST/api/settings/outlook-windowsapplication/x-www-form-urlencoded → XML
checkFile.jspPOST/api/validate/fileapplication/x-www-form-urlencoded
checkTransfer.jspPOST/api/validate/transferapplication/x-www-form-urlencoded
domainCheck.jspPOST/api/validate/domainapplication/x-www-form-urlencoded

Jeder Legacy-Endpunkt wird im Folgenden ausführlich beschrieben.

2.1 Dateien hochladen — process_upload.jsp

POST{{baseURL}}/FileCap/process_upload.jsp

Content-Type: multipart/form-data

Laden Sie eine oder mehrere Dateien in einem einzigen Vorgang hoch. Weiterleiten an /api/transfer/v1/send-outlook-transfer. Gibt Klartext zurück: wahr im Erfolgsfall, false|<ERROR_CODE> im Fehlerfall.

Feldreihenfolge: Der Server überträgt den mehrteiligen Body und verarbeitet die Teile in der Reihenfolge ihres Eingangs. Der Dateimetadaten Das Feld MUSS VOR den Dateiteilen gesendet werden (Datei01, Datei02, ...). Beim Einlesen eines Dateiteils überprüft der Server dessen erwartete Größe in der Metadatenliste; im S3-Speicher wird der Upload mit der Meldung „Dateimetadaten erforderlich“ abgelehnt, wenn die Metadaten noch nicht vorliegen, und auf Portalen der FREE-Tier wird eine NullPointerException ausgelöst. Ein typischer Multipart-Body beginnt daher mit allen Textfeldern (APIKey, ids, aus, ..., Dateimetadaten) und endet mit der Binärdatei Datei01 / Datei02 / ... Teile.

Parameter

NameTypAnforderung.Beschreibung
APIKeyZeichenkettejaFileCap-Server-API-Schlüssel.
deviceApiKeyZeichenketteneinGerätebezogener API-Schlüssel, wenn die Integration als Gerät registriert ist.
idsZeichenkettejaÜberweisungs-ID. Muss für jede Überweisung eindeutig sein.
ausZeichenkettejaE-Mail-Adresse des Absenders.
fromNameZeichenketteneinAnzeigename des Absenders.
BetreffZeichenkettejaGegenstand der Übertragung.
KommentarZeichenkettejaNachrichtentext.
encryptMessagebooleschneinWenn wahr Der Nachrichtentext ist verschlüsselt (nur Klartext). Ein Passwort ist erforderlich.
rec0, rec1, ...ZeichenkettejaTO-Empfänger. Der erste ist rec0, der nächste rec1 usw.
cc0, cc1, ...ZeichenketteneinCC-Empfänger.
bcc0, bcc1, ...ZeichenketteneinBCC-Empfänger.
nameRec0, ...ZeichenketteneinAnzeigenamen für die Treffer recN Empfänger.
storeDays_valueGanzzahlneinWie lange die Übertragung auf dem FileCap-Server verbleibt.
downloadLoadable_valueGanzzahlneinMaximale Anzahl an Downloads.
PasswortZeichenketteneinErforderlich, wenn encryptMessage = true oder wenn die Richtlinien die Eingabe eines Passworts vorschreiben.
useSmsTextAuthenticationbooleschneinSMS-Verifizierung für den Empfänger aktivieren (erfordert Handynummer).
HandynummerZeichenketteneinHandynummer des Empfängers bei Verwendung der SMS-Verifizierung.
dontNotifybooleschneinWenn wahr, FileCap versendet keine Benachrichtigungs-E-Mail an den Empfänger.
nrOfFilesInTransferGanzzahlneinGeben Sie die Anzahl der Dateien in der Übertragung an.
userAgentZeichenketteneinKennung des aufrufenden Clients.
VersionZeichenketteneinVersion des aufrufenden Clients.
DateimetadatenJSON (Text)jaJSON-Array, das jeden Dateiteil beschreibt. Ein Eintrag pro Datei mit Dateiname, MIME-Typ und Größe (Bytes). Der Dateiname MUSS genau mit dem Dateinamen des entsprechenden Dateiteils übereinstimmen. WICHTIG: Dieses Feld MUSS im mehrteiligen Text VOR den Dateiteilen erscheinen (siehe Hinweis oben).
Datei01, Datei02, ...DateijaDateiteile. Die erste Datei ist Datei01, der nächste Datei02 usw. MUSS NACH dem Dateimetadaten Feld.

Antwort

Klartext.

true
false|VIRUS_FOUND

Fehlercodes

  • VIRUS_FOUND — In einer der Dateien wurde ein Virus entdeckt. Die Übertragung wurde abgebrochen.
  • NO_RECIPIENT_GIVEN — Für die Überweisung wurden keine Empfänger angegeben.
  • FILETYPE_NOT_ALLOW — Dateityp gemäß MIME- oder Erweiterungsrichtlinie nicht zulässig.
  • PASSWORT_ERFORDERLICH_ABER_NICHT_ANGEGEBEN — Gemäß den Richtlinien ist ein Passwort erforderlich, es fehlt jedoch.
  • CANNOT_SEND_MAIL — FileCap konnte die Benachrichtigungs-E-Mail nicht versenden (Mailserver/Relay falsch konfiguriert).
  • API_KEY_INVALID — Der angegebene APIKey ist ungültig.
  • GENERAL_ERROR — Unbekannter Fehler; überprüfen Sie das FileCap-Serverprotokoll auf den Stack-Trace. Oft handelt es sich um ein Netzwerk- oder Proxy-Problem.

2.2 Einladung senden — invite.jsp

POST{{baseURL}}/FileCap/invite.jsp

Content-Type: application/x-www-form-urlencoded

Senden Sie einem externen Benutzer eine FileCap-Einladung und bitten Sie ihn, Dateien für den Einladenden hochzuladen. Weiterleiten an /api/invite/old. Gibt Klartext zurück wahr / false|<ERROR_CODE>.

Parameter

NameTypAnforderung.Beschreibung
APIKeyZeichenkettejaFileCap-Server-API-Schlüssel.
deviceApiKeyZeichenketteneinAPI-Schlüssel pro Gerät.
idZeichenkettejaEinladungs-ID. MUSS mit dem Präfix beginnen iiiii.
senderEmailZeichenkettejaE-Mail-Adresse der Person, die die Einladung erhalten soll (der Einladende).
receiverEmailZeichenkettejaE-Mail-Adresse der Person, die die Dateien erhalten soll (in der Regel Ihre eigene E-Mail-Adresse).
Empfänger-HandynummerZeichenketteneinHandynummer des Empfängers, wenn eine SMS-Verifizierung erforderlich ist.
NachrichtZeichenketteneinDer Einladung ist eine frei formulierte Nachricht beigefügt.
benachrichtigenbooleschneinWenn falsch, FileCap versendet keine Benachrichtigungs-E-Mail (das aufrufende System muss dies übernehmen).

Antwort

Klartext.

true
false|CANNOT_SEND_MAIL

Fehlercodes

  • CANNOT_SEND_MAIL — Der Mailserver konnte die Einladungs-E-Mail nicht verarbeiten.
  • CANNOT_ADD_INVITE_TO_DB — FileCap konnte die Einladungs-ID nicht speichern.
  • UNKNOWN_ERROR — Es ist eine Ausnahme aufgetreten. Überprüfen Sie das Serverprotokoll.

2.3 Einstellungen für das E-Mail-Plugin — mailPluginSettings.jsp

POST{{baseURL}}/FileCap/mailPluginSettings.jsp

Content-Type: application/x-www-form-urlencoded

Fordern Sie die FileCap-Server-Einstellungen an, die von E-Mail-Plugins (Outlook Classic usw.) verwendet werden. Leitet weiter an /api/settings/outlook-windows. Gibt die Plug-in-Konfiguration als XML zurück.

Parameter

NameTypAnforderung.Beschreibung
APIKeyZeichenkettejaFileCap-Server-API-Schlüssel.
userAgentZeichenketteneinKennung des aufrufenden Clients.
VersionZeichenketteneinVersion des aufrufenden Clients.
langZeichenketteneinLokal (z. B. NL, EN).

Antwort

XML-Dokument mit Angaben zur maximalen Dateigröße, zu den zulässigen Dateiendungen, zur Passwortrichtlinie, zu den Verifizierungsmethoden, zum Branding usw.

2.4 Datei prüfen — checkFile.jsp

POST{{baseURL}}/FileCap/checkFile.jsp

Content-Type: application/x-www-form-urlencoded

Überprüfen Sie – vor dem Hochladen –, ob eine einzelne Datei gemäß den Serverrichtlinien zulässig ist (Blocklisten für Dateiendungen und MIME-Typen, Absenderbeschränkungen). Weiterleitung an /api/validate/file.

Parameter

NameTypAnforderung.Beschreibung
APIKeyZeichenkettejaFileCap-Server-API-Schlüssel.
DateinameZeichenkettejaName der Datei.
SenderZeichenkettejaE-Mail-Adresse des Absenders.
PantomimeZeichenkettejaMIME-Typ der Datei.
Datei-IDZeichenketteneinKennung der Datei.

Antwort

Klartext wahr sofern dies zulässig ist, false|<ERROR_CODE> wenn blockiert.

2.5 Überweisung prüfen — checkTransfer.jsp

POST{{baseURL}}/FileCap/checkTransfer.jsp

Content-Type: application/x-www-form-urlencoded

Eine zuvor erstellte Übertragung überprüfen (wird von E-Mail-Plugins zur Überprüfung des Status bzw. des Inhalts verwendet). Leitet weiter an /api/validate/transfer.

Parameter

NameTypAnforderung.Beschreibung
APIKeyZeichenkettejaFileCap-Server-API-Schlüssel.
deviceApiKeyZeichenketteneinAPI-Schlüssel pro Gerät.
idZeichenkettejaTransfer-ID.
E-MailZeichenketteneinE-Mail-Adresse des Empfängers; sofern angegeben, bezieht sich die Antwort auf diesen Empfänger.

Antwort

Antwort im Klartext mit dem Übertragungsstatus und der Dateiliste.

2.6 Domain prüfen — domainCheck.jsp

POST{{baseURL}}/FileCap/domainCheck.jsp

Content-Type: application/x-www-form-urlencoded

Überprüfen Sie, ob die Absenderdomäne E-Mails an die Empfängerdomäne senden darf (Whitelist / IP-Regeln). Weiterleitung an /api/validate/domain.

Parameter

NameTypAnforderung.Beschreibung
E-MailZeichenkettejaE-Mail-Adresse des Empfängers, deren Domain validiert werden muss.
SenderZeichenkettejaE-Mail-Adresse des Absenders.

Antwort

Klartext wahr / false|<ERROR_CODE>.

3. Transfer

Moderne Transfer-Endpunkte unter /FileCap/api/transfer. The send-outlook-transfer Endpoint ersetzt das alte System process_upload.jsp Flow, gibt jedoch anstelle von reinem Text ein strukturiertes JSON-Objekt vom Typ „ApiResult“ zurück. Das /transfer/v1/send-outlook-transfer „endpoint“ ist der Pfad, an den die alte JSP weiterleitet (Textantwort), und wird der Vollständigkeit halber dokumentiert.

Alle Endpunkte für den Upload mehrteiliger Dateien in diesem Kapitel (send-outlook-transfer, v1/send-outlook-transfer, send-transfer, Senden-Antworten) nutzen einen gemeinsamen Multipart-Parser. Sie alle akzeptieren – und erfordern – einen Dateimetadaten Formularfeld, das VOR den Dateiteilen übermittelt werden MUSS. Einzelheiten und die Folgen einer umgekehrten Reihenfolge finden Sie im Hinweis in Abschnitt 3.1.

3.1 Outlook-Übertragung senden (modern, JSON-Antwort)

POST{{baseURL}}/FileCap/api/transfer/send-outlook-transfer

Content-Type: multipart/form-data

Upload-Endpunkt für das „Modern Outlook“-Plugin. Gleiche Formularfelder wie process_upload.jsp; die Antwort ist ein JSON ApiResult<ApiUploadValue>. Ratenbegrenzung pro Sitzung (SendOutlookTransfer).

Feldreihenfolge: wie der Legacy-Endpunkt, der Dateimetadaten Das Formularfeld ist ein Pflichtfeld und MUSS VOR den Dateiteilen übermittelt werden. Der Server verarbeitet den Multipart-Body in der Reihenfolge des Datenstroms; für jeden Dateiteil sucht er die erwartete Größe in der Metadatenliste und lehnt den Upload ab („Dateimetadaten erforderlich“ im S3-Speicher; NullPointerException auf Portalen der FREE-Tier), wenn die Metadaten noch nicht gefunden wurden.

Beispieldatei – Metadatenwert (als einzelnes Textfeld gesendet)

[
  { "filename": "report.pdf", "mimetype": "application/pdf", "size": 102400 },
  { "filename": "photo.jpg",  "mimetype": "image/jpeg",      "size": 51200 }
]

Parameter

NameTypAnforderung.Beschreibung
APIKeyZeichenkettejaFileCap-Server-API-Schlüssel (Alias: apiKey).
deviceApiKeyZeichenketteneinAPI-Schlüssel pro Gerät.
idsZeichenkettejaTransfer-ID (alias: transferId).
ausZeichenkettejaE-Mail-Absender (Aliase: fromEmail, senderEmail, senderEmailAddress).
fromNameZeichenketteneinAnzeigename des Absenders (Alias: senderName).
BetreffZeichenkettejaBetreff der Überweisung.
KommentarZeichenkettejaNachrichtentext.
encryptMessagebooleschneinDen Nachrichtentext verschlüsseln (alias: useEncryption).
rec0, rec1, ...ZeichenkettejaTO-Empfänger (alias: Empfänger).
cc0, cc1, ...ZeichenketteneinCC-Empfänger.
bcc0, bcc1, ...ZeichenketteneinBCC-Empfänger.
maxDownloadsGanzzahlneinMaximale Anzahl an Downloads (alias: downloadLoadable_value).
maxDaysToStoreGanzzahlneinAufbewahrungsfrist in Tagen (alias: storeDays_value).
PasswortZeichenketteneinPasswort übertragen.
useSmsTextAuthenticationbooleschneinSMS-Verifizierung aktivieren (alias: enableToken).
verificationMethod1ZeichenketteneinPrimäre Überprüfungsmethode (z. B. EMAIL_ACCESS_CODE, SMS, PASSWORT, NONE).
verificationMethod2ZeichenketteneinSekundäres Verifizierungsverfahren.
dontNotifybooleschneinWenn wahr, FileCap versendet keine Benachrichtigungs-E-Mail.
nrOfFilesInTransferGanzzahlneinAnzahl der expliziten Dateien.
userAgent / VersionZeichenketteneinIdentifizierung des aufrufenden Clients.
DateimetadatenJSON (Text)jaJSON-Array, das jeden Dateiteil beschreibt. Ein Eintrag pro Datei mit Dateiname, MIME-Typ und Größe (Bytes). Der Dateiname MUSS genau mit dem entsprechenden Dateiteil übereinstimmen. WICHTIG: Muss VOR den Dateiteilen im mehrteiligen Hauptteil erscheinen.
Datei01, Datei02, ...DateijaDateiteile. MÜSSEN NACH dem Dateimetadaten Feld.

Antwort

JSON. Beispiel:

{
  "success": true,
  "value": {
    "transferId": "263478632784632748237513",
    "generatedPassword": "Ax9!kp2Qm"
  },
  "errorMessage": null
}

Anmerkungen

  • Ratenbegrenzung: SendOutlookTransfer (pro Sitzung).

3.2 Outlook-Übertragung senden (Legacy v1, Textantwort)

POST{{baseURL}}/FileCap/api/transfer/v1/send-outlook-transfer

Content-Type: multipart/form-data

Klartext-Variante des Uploads (gibt zurück wahr / false|<ERROR_CODE>). Dies ist der Endpunkt, der process_upload.jsp Weiterleitungen. Verwenden Sie diese Option, wenn der aufrufende Client das alte Format der Textantwort benötigt.

Parameter

NameTypAnforderung.Beschreibung
APIKeyZeichenkettejaFileCap-Server-API-Schlüssel.
deviceApiKeyZeichenketteneinGerätebezogener API-Schlüssel, wenn die Integration als Gerät registriert ist.
idsZeichenkettejaÜberweisungs-ID. Muss für jede Überweisung eindeutig sein.
ausZeichenkettejaE-Mail-Adresse des Absenders.
fromNameZeichenketteneinAnzeigename des Absenders.
BetreffZeichenkettejaGegenstand der Übertragung.
KommentarZeichenkettejaNachrichtentext.
encryptMessagebooleschneinWenn wahr Der Nachrichtentext ist verschlüsselt (nur Klartext). Ein Passwort ist erforderlich.
rec0, rec1, ...ZeichenkettejaTO-Empfänger. Der erste ist rec0, der nächste rec1 usw.
cc0, cc1, ...ZeichenketteneinCC-Empfänger.
bcc0, bcc1, ...ZeichenketteneinBCC-Empfänger.
nameRec0, ...ZeichenketteneinAnzeigenamen für die Treffer recN Empfänger.
storeDays_valueGanzzahlneinWie lange die Übertragung auf dem FileCap-Server verbleibt.
downloadLoadable_valueGanzzahlneinMaximale Anzahl an Downloads.
PasswortZeichenketteneinErforderlich, wenn encryptMessage = true oder wenn die Richtlinien die Eingabe eines Passworts vorschreiben.
useSmsTextAuthenticationbooleschneinSMS-Verifizierung für den Empfänger aktivieren (erfordert Handynummer).
HandynummerZeichenketteneinHandynummer des Empfängers bei Verwendung der SMS-Verifizierung.
dontNotifybooleschneinWenn wahr, FileCap versendet keine Benachrichtigungs-E-Mail an den Empfänger.
nrOfFilesInTransferGanzzahlneinGeben Sie die Anzahl der Dateien in der Übertragung an.
userAgentZeichenketteneinKennung des aufrufenden Clients.
VersionZeichenketteneinVersion des aufrufenden Clients.
DateimetadatenJSON (Text)jaJSON-Array, das jeden Dateiteil beschreibt. Ein Eintrag pro Datei mit Dateiname, MIME-Typ und Größe (Bytes). Der Dateiname MUSS genau mit dem Dateinamen des entsprechenden Dateiteils übereinstimmen. WICHTIG: Dieses Feld MUSS im mehrteiligen Text VOR den Dateiteilen erscheinen.
Datei01, Datei02, ...DateijaDateiteile. Die erste Datei ist Datei01, der nächste Datei02 usw. MUSS NACH dem Dateimetadaten Feld.

Antwort

Klartext.

true
false|API_KEY_INVALID

3.3 Upload validieren (Pre-Flight)

POST{{baseURL}}/FileCap/api/transfer/validate-upload

Content-Type: application/json

Überprüfen Sie die Metadaten eines Uploads, bevor Sie Daten übertragen. Dabei werden das Serverkontingent, zulässige Dateiendungen/MIME-Typen, die maximale Größe usw. überprüft. Der Alias-Pfad /transfer/validateUpload funktioniert auch.

Anfrage-Hauptteil

{
  "lang": "NL",
  "fileMetadataList": [
    {
      "fileName": "report.pdf",
      "fileSize": 102400,
      "mimeType": "application/pdf"
    }
  ]
}

Antwort

ApiResult<Void> — nur Erfolg und Fehlermeldung sind ausgefüllt.

3.4 Dateien validieren

POST{{baseURL}}/FileCap/api/transfer/validate-files

Content-Type: application/json

Validierung pro Datei. Gibt pro Datei einen Eintrag zurück, der angibt, ob die Datei zulässig ist, und falls nicht, welche Regel verletzt wurde.

Anfrage-Hauptteil

{
  "lang": "NL",
  "fileMetadataList": [
    { "fileName": "clean.pdf",     "fileSize": 1024, "mimeType": "application/pdf" },
    { "fileName": "forbidden.exe", "fileSize": 2048, "mimeType": "application/x-msdownload" }
  ]
}

Antwort

ApiResult<ValidateFilesResultModel>.

3.5 Empfänger überprüfen

POST{{baseURL}}/FileCap/api/transfer/validate-recipient

Content-Type: application/json

Überprüfen Sie die Absender-Empfänger-Kombination anhand von Domain-Whitelists, IP-Zulassungslisten und der emailMaySend / E-Mail-Empfang Regeln.

Anfrage-Hauptteil

{
  "senderEmailAddress": "kees@example.com",
  "recipientEmailAddress": "piet@receiver.com"
}

Antwort

ApiResult<Void>.

Fehlercodes

  • VALIDATION_ERROR_DOMAIN_INVALID — Die Empfänger- oder Absenderdomain ist nicht zulässig.
  • VALIDATION_ERROR_EMAIL_ADDRESS — Eine der E-Mail-Adressen ist fehlerhaft.

3.6 Antwort senden

POST{{baseURL}}/FileCap/api/transfer/send-reply

Content-Type: multipart/form-data

Senden Sie eine sichere Antwort auf eine bestehende Übertragung. Die ursprüngliche Übertragung wird anhand ihrer Übertragungs-ID identifiziert. Ratenbegrenzt (SendReply). Es wird derselbe Multipart-Parser wie in Abschnitt 3.1 verwendet; wenn also Dateiteile angehängt sind, wird die Dateimetadaten Das Feld MUSS vor ihnen stehen.

Parameter

NameTypAnforderung.Beschreibung
idsZeichenkettejaID der ursprünglichen Überweisung.
ausZeichenkettejaE-Mail-Absender.
BetreffZeichenkettejaBetreff der Antwort.
KommentarZeichenketteneinAuf die Nachricht antworten.
replyToAllbooleschneinAntworten Sie jedem Empfänger der ursprünglichen Überweisung.
DateimetadatenJSON (Text)ja*JSON-Array, das jeden Dateiteil beschreibt (Dateiname, MIME-Typ, Größe). Erforderlich, wenn Dateianhänge beigefügt sind. MUSS VOR den Dateianhängen stehen.
Datei01, ...DateineinOptionale Dateiteile. Nachfolgend einfügen Dateimetadaten.

Antwort

ApiResult<SentTransferInfo>.

3.7 Verbindung prüfen

POST{{baseURL}}/FileCap/api/transfer/checkConnection

Content-Type: application/json

Leichte Liveness-Prüfung. Gibt immer ApiResult.success("connected") wenn das FileCap-Portal erreichbar ist.

Antwort

Gibt immer Folgendes zurück:

{ "success": true, "value": "connected", "errorMessage": null }

4. Einladen

Endpunkte zum Versenden von FileCap-Einladungen. Der gesamte Controller unterliegt einer Ratenbegrenzung von 10 Anfragen pro Minute.

4.1 Einladung senden (modernes JSON)

POST{{baseURL}}/FileCap/api/invite

Content-Type: application/json

Moderne JSON-Variante des alten Formats invite.jsp Ablauf. Akzeptiert eine Liste von Eingeladenen in einem einzigen Anruf.

Anfrage-Hauptteil

{
  "apiKey": "HKADASD68768768ASDASDASDAD",
  "deviceApiKey": "",
  "sender": {
    "emailAddress": "kees@example.com",
    "name": "Kees Janssen"
  },
  "invitees": [
    "piet@company.com",
    "jan@partner.com"
  ],
  "message": "Please upload the requested documents."
}

Antwort

ApiResult<Void>.

Anmerkungen

  • Ratenbegrenzung: 10 Anfragen pro Minute (InviteService).

4.2 Einladung senden (altes Formular, /invite/old)

POST{{baseURL}}/FileCap/api/invite/old

Content-Type: application/x-www-form-urlencoded

Direkter Aufruf des Endpunkts, der invite.jsp leitet weiter an. Gibt Klartext zurück wahr / false|<ERROR_CODE>.

Parameter

NameTypAnforderung.Beschreibung
APIKeyZeichenkettejaFileCap-Server-API-Schlüssel.
deviceApiKeyZeichenketteneinAPI-Schlüssel pro Gerät.
idZeichenkettejaEinladungs-ID, muss mit … beginnen iiiii.
senderEmailZeichenkettejaE-Mail-Adresse des Einladenden.
receiverEmailZeichenkettejaE-Mail-Empfänger.
Empfänger-HandynummerZeichenketteneinHandynummer des Empfängers.
NachrichtZeichenketteneinOptionale Freitextnachricht.
benachrichtigenbooleschneinWenn falsch, FileCap versendet keine Benachrichtigungs-E-Mail.

Antwort

Klartext wahr / false|<ERROR_CODE>.

4.3 Einladungs-ID generieren

POST{{baseURL}}/FileCap/api/invite/generate-id

Content-Type: application/json

Generieren Sie die Einladungs-ID, die in der id Feld des alten Einladungsaufrufs (der Wert, der mit iiiii). Alias-Pfad: /invite/generateInviteId.

Anfrage-Hauptteil

{
  "apiKey": "HKADASD68768768ASDASDASDAD",
  "deviceApiKey": "",
  "sender": {
    "emailAddress": "kees@example.com"
  }
}

Antwort

ApiResult<String> — die generierte Einladungs-ID.

5. Einstellungen

Von Clients und Plugins verwendete Server-Einstellungen: Passwortrichtlinie, Optionen zur Empfängerüberprüfung, Branding, Plugin-Einstellungen.

5.1 Passwortregeln (ausführlich)

POST{{baseURL}}/FileCap/api/settings/getPasswordRules

Content-Type: application/json

Ausführliche Beschreibung der Passwortanforderungen.

Anfrage-Hauptteil

{
  "apiKey": "HKADASD68768768ASDASDASDAD",
  "lang": "NL"
}

Antwort

ApiResult<PasswordRules>:

{
  "success": true,
  "value": {
    "enabled": true,
    "title": "Password requirements",
    "rules": [
      { "description": "At least 8 characters", "requirement": ".{8,}" },
      { "description": "At least one digit", "requirement": "(?=.*\\d)" }
    ]
  }
}

Fehlercodes

  • UNEXPECTED_ERROR — Interner Serverfehler; überprüfen Sie das Serverprotokoll.

5.2 Passwortregeln (GET, öffentlich)

GET{{baseURL}}/FileCap/api/settings/password-rules?lang=NL

Öffentliche, nicht authentifizierte GET-Version. Liefert dasselbe Ergebnis. ApiResult<PasswordRules> body.

Parameter

NameTypAnforderung.Beschreibung
langZeichenketteneinLändercode (z. B. NL, EN).

5.3 Passwortrichtlinie (kurz)

POST{{baseURL}}/FileCap/api/settings/getPasswordPolicy

Content-Type: application/json

Kurze Zusammenfassung der Passwortanforderungen: Mindestlänge, Zeichenklassen, Ablaufdatum, Wiederverwendung.

Anfrage-Hauptteil

{
  "apiKey": "HKADASD68768768ASDASDASDAD"
}

Antwort

ApiResult<PasswordPolicy>.

Fehlercodes

  • UNEXPECTED_ERROR — Interner Serverfehler; überprüfen Sie das Serverprotokoll.

5.4 Einstellungen für das E-Mail-Plugin (XML)

POST{{baseURL}}/FileCap/api/settings/outlook-windows

Content-Type: application/x-www-form-urlencoded

Endpunkt, der mailPluginSettings.jsp weiterleitet. Gibt die Plug-in-Konfiguration als XML zurück.

Parameter

NameTypAnforderung.Beschreibung
APIKeyZeichenkettejaFileCap-Server-API-Schlüssel.
userAgentZeichenketteneinKennung des aufrufenden Clients.
VersionZeichenketteneinClient-Version.
langZeichenketteneinLändercode.

Antwort

XML-Dokument. Wird auch als JSON-Variante unter demselben Pfad bereitgestellt (POST application/json), das den HTTP-Status 202 zurückgibt + ApiResult<OutlookClassicSettings>, oder HTTP 401, wenn die Authentifizierung fehlschlägt.

5.5 Optionen zur Empfängerüberprüfung

POST{{baseURL}}/FileCap/api/settings/recipient-verification-options

Content-Type: application/json

Listet die Verifizierungsmethoden auf, die bei einer Überweisung angewendet werden können (z. B. NONE, EMAIL_ACCESS_CODE, SMS, PASSWORT) und welche davon gemäß den geltenden Richtlinien obligatorisch sind.

Anfrage-Hauptteil

{ "apiKey": "HKADASD68768768ASDASDASDAD" }

Antwort

ApiResult<RecipientVerificationOptions>.

Fehlercodes

  • UNEXPECTED_ERROR — Interner Serverfehler; überprüfen Sie das Serverprotokoll.

5.6 App-Einstellungen

POST{{baseURL}}/FileCap/api/settings/app-settings

Content-Type: application/json

Allgemeines Einstellungsbündel für Client-Apps: aktivierte Funktionen, maximale Upload-Größe, Branding, unterstützte Sprachen usw.

Anfrage-Hauptteil

{
  "apiKey": "HKADASD68768768ASDASDASDAD",
  "lang": "NL"
}

Antwort

ApiResult<AppSettings>.

Fehlercodes

  • UNEXPECTED_ERROR — Interner Serverfehler; überprüfen Sie das Serverprotokoll.

5.7 Einstellungen für das Webportal

GET{{baseURL}}/FileCap/api/settings?lang=NL

Rücksendungen ApiResult<WebPortalSettings> für das Webportal (Design, Ländereinstellungen, Feature-Flags). Zulässig für die Portaltypen MAIN, SUB und FREE.

Parameter

NameTypAnforderung.Beschreibung
langZeichenketteneinLändercode.

5.8 Ist ein gemeinsamer Zugangscode verfügbar?

POST{{baseURL}}/FileCap/api/settings/is-shared-access-code-available

Content-Type: application/json

Gibt einen rohen Booleschen Wert zurück (wahr / falsch) — nicht in ApiResult eingeschlossen — gibt an, ob für die jeweilige Überweisung ein gemeinsamer Zugangscode konfiguriert wurde.

Anfrage-Hauptteil

{ "transferId": "263478632784632748237513" }

Antwort

Raw-Boolean: wahr oder falsch. Rücksendungen falsch bei jedem internen Fehler.

6. Validierung

Leichte Validatoren, die von Mail-Plugins vor dem Verfassen oder Versenden einer Nachricht aufgerufen werden. Alle Endpunkte unter /api/validate Klartext zurückgeben (wahr / false|<ERROR_CODE>).

6.1 Datei prüfen (Formular)

POST{{baseURL}}/FileCap/api/validate/file

Content-Type: application/x-www-form-urlencoded

Eine einzelne Datei anhand ihres Namens und ihrer MIME-Typ-Kennung anhand der Policy-Engine validieren. Der Pfad, der checkFile.jsp weiterleitet an.

Parameter

NameTypAnforderung.Beschreibung
APIKeyZeichenkettejaFileCap-Server-API-Schlüssel.
DateinameZeichenkettejaDateiname.
SenderZeichenkettejaE-Mail-Absender.
PantomimeZeichenkettejaMIME-Typ.
Datei-IDZeichenketteneinDateikennung.

Antwort

Klartext wahr / false|<ERROR_CODE>.

6.2 Überweisung prüfen

POST{{baseURL}}/FileCap/api/validate/transfer

Content-Type: application/x-www-form-urlencoded

Pfad, der checkTransfer.jsp weiterleitet an.

Parameter

NameTypAnforderung.Beschreibung
APIKeyZeichenkettejaFileCap-Server-API-Schlüssel.
deviceApiKeyZeichenketteneinAPI-Schlüssel pro Gerät.
idZeichenkettejaTransfer-ID.
E-MailZeichenketteneinOptionale E-Mail-Adresse des Empfängers.

Antwort

Klartext wahr / false|<ERROR_CODE>.

6.3 Domain prüfen

POST{{baseURL}}/FileCap/api/validate/domain

Content-Type: application/x-www-form-urlencoded

Pfad, der domainCheck.jsp Weiterleitungen an. Überprüft die Absenderdomain anhand der Empfängerdomain.

Parameter

NameTypAnforderung.Beschreibung
E-MailZeichenkettejaE-Mail-Adresse des Empfängers.
SenderZeichenkettejaE-Mail-Absender.

Antwort

Klartext wahr / false|<ERROR_CODE>.

6.4 Der Absender darf senden

POST{{baseURL}}/FileCap/api/validate/email-may-send

Content-Type: text/plain

Gibt einen booleschen Wert für die Frage „Darf dieser Absender über FileCap senden?“ zurück. Der Textkörper enthält die reine E-Mail-Adresse als text/plain.

Antwort

Raw-Boolean: wahr / falsch.

7. Geschäftsregeln (DLP)

Endpunkte für die Richtlinie bzw. die DLP-Engine. Beide Endpunkte erfordern entweder eine DEVICE- oder eine API_KEY-Authentifizierung und unterliegen einer Ratenbegrenzung von 60 Anfragen pro Minute.

7.1 Scan-Anhang

POST{{baseURL}}/FileCap/api/business-rules/scan-attachment

Content-Type: multipart/form-data

Führen Sie einen DLP-/Business-Rules-Scan für einen einzelnen Anhang durch.

Parameter

NameTypAnforderung.Beschreibung
APIKeyZeichenkettejaFileCap-Server-API-Schlüssel.
DateiDateijaZu scannender Dateiteil.

Antwort

ApiResult<BusinessRulesScanResult> mit dem Scan-Ergebnis und etwaigen Verstößen gegen die Richtlinien.

Anmerkungen

  • Ratenbegrenzung: 60 Anfragen pro Minute (ScanAttachment).

7.2 Text scannen

POST{{baseURL}}/FileCap/api/business-rules/scan-text

Content-Type: application/json

Führen Sie einen DLP-Scan für beliebigen Text durch.

Anfrage-Hauptteil

{
  "text": "Hello, this is the message body that needs to be scanned for sensitive data."
}

Antwort

ApiResult<BusinessRulesScanResult>.

Anmerkungen

  • Ratenbegrenzung: 60 Anfragen pro Minute (ScanText).

8. Blockübertragung

Endpunkte auf der Senderseite, um eine bereits gesendete Übertragung zu überprüfen und zu widerrufen (zu blockieren). Wenn eine Übertragung erstellt wird, speichert FileCap einen Hashwert blockPassword zusammen mit der Übermittlung und den E-Mails erhält der ABSENDER eine Benachrichtigung, die einen Blockierungslink in folgender Form enthält:

https://<host>/FileCap/blockTransfer.jsp?id=<transferId>&blockId=<blockId>&email=<senderEmail>

Die JSP bereinigt die Parameter und leitet zur „Block“-Seite des Portals weiter, die die Übertragungsmetadaten über GET /api/block/info und – nach Bestätigung – Anrufe POST /api/block um die Überweisung tatsächlich zu blockieren. Die blockId Das ist das Geheimnis: Jeder, der über die Transfer-ID, die Block-ID und die E-Mail-Adresse des Absenders verfügt, kann die Überweisung blockieren; es ist weder ein API-Schlüssel noch eine Sitzung erforderlich. Bei jedem Validierungsfehler (falsche Block-ID, falscher Absender, unbekannte Transfer-ID) wird bewusst derselbe allgemeine Fehler zurückgegeben. PORTAL_BLOCK_TRANSFER_NOT_FOUND So kann der Aufrufer nicht erkennen, welches Feld fehlerhaft war.

Integrationen, die die eigenen Benachrichtigungs-E-Mails von FileCap unterdrücken (dontNotify=true (beim Hochladen) muss die blockId an den Absender selbst – ohne diese Angabe kann die Überweisung über die API nicht gesperrt werden.

8.1 Blockinformationen abrufen

GET{{baseURL}}/FileCap/api/block/info?transferId=...&blockId=...&emailAddress=...

Gibt die Metadaten zurück, die die FileCap-Weboberfläche auf der Seite zur Bestätigung des Blocks anzeigt: die TO-Empfänger der Übertragung, die Dateinamen und ein Kennzeichen, das angibt, ob der Nachrichtentext verschlüsselt war. Der Aufruf ist schreibgeschützt – er verändert weder die Übertragung, noch versendet er E-Mails oder schreibt in das Audit-Protokoll.

Validierungsreihenfolge (jeder Fehler wird zusammengefasst zu PORTAL_BLOCK_TRANSFER_NOT_FOUND (sofern nicht anders angegeben):

  1. Alle drei Parameter dürfen nicht leer sein;
  2. Die Übertragung muss vorhanden sein;
  3. SHA-Hash von blockId muss mit dem gespeicherten übereinstimmen blockPassword;
  4. E-Mail-Adresse muss ein bekannter Absender der Überweisung sein;
  5. Die Übertragung darf nicht deaktiviert sein – andernfalls PORTAL_DOWNLOAD_TRANSFER_ABGELAUFEN;
  6. Die Überweisung darf nicht bereits GESPERRT sein – andernfalls PORTAL_BLOCK_TRANSFER_ALREADY_BLOCKED.

Parameter

NameTypAnforderung.Beschreibung
transferIdZeichenkettejaDie eindeutige ID der Überweisung (die ids (Wert, der beim Hochladen angegeben wurde). Dient zum Abrufen des Übertragungsdatensatzes.
blockIdZeichenkettejaDas in der FileCap-Benachrichtigungs-E-Mail an den Absender eingebettete Block-Geheimnis (URL-Parameter blockId oder blockTransfer.jsp). Der Server berechnet einen Hashwert aus diesem Wert und vergleicht ihn mit dem blockPassword wird bei der Übertragung gespeichert.
E-Mail-AdresseZeichenkettejaDie E-Mail-Adresse des ABSENDERS der Überweisung. Wird anhand des Absenderdatensatzes der Überweisung überprüft (SenderDb.isSender). Es handelt sich nicht um die Adresse des Empfängers.

Antwort

ApiResult<TransferBlockInfo> mit drei Feldern: Empfänger (Array mit E-Mail-Adressen der TO-Empfänger), Dateien (eine Reihe von Dateinamen innerhalb der Übertragung, ohne Pfad) und hasEncryptedMessage (wahr (wenn der Nachrichtentext beim Hochladen verschlüsselt wurde). Beispiel für einen erfolgreichen Nachrichtentext:

{
  "success": true,
  "value": {
    "recipients": ["piet@company.com", "jan@partner.com"],
    "files": ["contract.pdf", "appendix.docx"],
    "hasEncryptedMessage": false
  },
  "errorMessage": null
}

8.2 Blockübertragung

POST{{baseURL}}/FileCap/api/block

Content-Type: application/json

Markieren Sie die Überweisung als gesperrt. Nach einem erfolgreichen Anruf:

  1. Der Übertragungsstatus ist auf „BLOCKED“ gesetzt – nachfolgende Download-Versuche (Webportal oder API) werden abgelehnt;
  2. an NTA audit-log entry is written ("user <sender> blocked transfer with id <transferId>");
  3. An alle Empfänger in den Feldern „An“ und „CC“ der ursprünglichen Überweisung wird eine Benachrichtigungs-E-Mail mit dem Betreff „Nachricht zurückgezogen“ gesendet.

Parameter (Felder im Request-Body)

NameTypAnforderung.Beschreibung
transferIdZeichenkettejaDie eindeutige ID der Überweisung (die ids Wert aus dem Upload-Aufruf).
blockIdZeichenkettejaDas Block-Geheimnis aus der Benachrichtigungs-E-Mail des Absenders.
E-Mail-AdresseZeichenkettejaDie E-Mail-Adresse des Absenders (abgeglichen mit dem Absenderdatensatz der Übertragung, nicht mit der Empfängeradresse).

Anfrage-Hauptteil

{
  "transferId": "263478632784632748237513",
  "blockId": "BLK-1234",
  "emailAddress": "kees@example.com"
}

Antwort

ApiResult<Void> — nur Erfolg und Fehlermeldung sind ausgefüllt. Mögliche Fehlermeldungen:

  • PORTAL_BLOCK_TRANSFER_NOT_FOUND — allgemeiner Sammelbegriff für fehlende Parameter, unbekannte Übertragung, falsche Block-ID, falsche Absender-E-Mail-Adresse oder jede andere unerwartete Ausnahme — bewusst mehrdeutig gehalten, damit der Server nicht preisgibt, welches Feld fehlerhaft war.
  • PORTAL_DOWNLOAD_TRANSFER_ABGELAUFEN — Die Übertragung ist bereits abgelaufen (Status DISABLED).
  • PORTAL_BLOCK_TRANSFER_ALREADY_BLOCKED — Die Überweisung wurde zuvor blockiert.
  • PORTAL_BLOCK_TRANSFER_ERROR — Die Aktualisierung der Datenbank ist fehlgeschlagen.

Der Aufruf ist idempotent: Ein zweiter Aufruf mit denselben Parametern gibt PORTAL_BLOCK_TRANSFER_ALREADY_BLOCKED, der zugrunde liegende Status wird nicht geändert und es wird keine zusätzliche Benachrichtigungs-E-Mail versendet. Reihenfolge der Nebeneffekte: Die Datenbankaktualisierung erfolgt vor dem Versand der Benachrichtigungs-E-Mail; sollte der Mailserver daher nicht erreichbar sein, wird die Übertragung dennoch blockiert und lediglich der E-Mail-Fehler protokolliert.

9. Geräteregistrierung

Endpunkte für die Registrierung eines externen Geräts (eines Systems eines Drittanbieters) beim FileCap-Server, damit dieses die API mit seinem eigenen gerätespezifischen API-Schlüssel aufrufen kann. Der Ablauf ist wie folgt: Registrieren → der Server sendet einen Bestätigungscode per E-Mail → Bestätigen → der Aufrufer erhält ein JWT-/Gerätetoken.

9.1 Gerät registrieren

POST{{baseURL}}/FileCap/api/user/devices/register

Content-Type: application/json

Geräteregistrierung starten. Der Server sendet einen Bestätigungscode per E-Mail an E-Mail-Adresse.

Anfrage-Hauptteil

{
  "emailAddress": "kees@example.com",
  "apiKey": "HKADASD68768768ASDASDASDAD",
  "deviceName": "My integration server",
  "lang": "NL"
}

Antwort

ApiResult<Void>.

Anmerkungen

  • Ratenbegrenzt (RegisterDevice).

9.2 Gerät überprüfen

POST{{baseURL}}/FileCap/api/user/devices/verify

Content-Type: application/json

Tauschen Sie den per E-Mail gesendeten Bestätigungscode gegen ein JWT bzw. ein Gerätetoken ein.

Anfrage-Hauptteil

{
  "email": "kees@example.com",
  "verificationCode": "123456"
}

Antwort

ApiResult<String> — das ausgegebene Token.

Anmerkungen

  • Ratenbegrenzt (VerifyDevice).
FileCap · Öffentliche API-Referenz · Endpunkte für Integration und E-Mail-Plugin