API Ressourcen Dokumentation
Was ist die Ressourcen-API?
Einen vollständigen allgemeinen Überblick finden Sie auf der Produktseite der Ressourcen-API.
Wie sendet man die Dokumente?
Akzeptierte Formate
Akzeptiertes Format ist PDF.
Anzahl der Seiten pro Aufruf
Die Anzahl der akzeptierten Dateien hängt vom Dokumenttyp ab:
- französische Einkommenssteuererklärung: 1 Datei
- französische Gehaltsabrechnung Beamter: 1 Datei
- Zahlungsbescheinigung der CAF FR: mehrere Dateien
Ressourcen-API-Anfragen
Parameter
Mit dem API-System können Sie die Validierung von Nachweisen automatisieren, indem Sie eine einfache HTTP-POST-Anfrage senden.
Die akzeptierten Parameter sind in der folgenden Tabelle aufgeführt:
Parameter | Typ | Format | Erforderlich | Beschreibung |
---|---|---|---|---|
api_key | String | Ja | Ihr API-Schlüssel | |
format | String | Nein | ||
fr_income_taxes_file | Datei | Nein | Dokument Einkommenssteuererklärung | |
fr_civil_servant_payslip_file | Datei | Nein | Dokument Gehaltsabrechnung Beamter | |
fr_caf_payment_certificate_file | Datei[] | Nein | Ein oder mehrere Dokumente Zahlungsbescheinigung der CAF |
Beispiele in verschiedenen Sprachen
curl
-X POST
-F "format={{ json or xml }}"
-F "api_key={{ YOUR_API_KEY }}"
-F "fr_****_file=@{{ PATH_TO_FILE }}"
https://api.app.trustdochub.com/api/resources/v1
public String sendIdFileAndGetResults(MultipartFile file) {
WebClient client = WebClient.create();
MultipartBodyBuilder builder = new MultipartBodyBuilder();
builder.part("fr_****_file", file.getResource());
builder.part("api_key", {{ YOUR_API_KEY }});
return client.post()
.uri(URI.create("https://api.app.trustdochub.com/api/resources/v1"))
.contentType(MediaType.MULTIPART_FORM_DATA)
.body(BodyInserters.fromMultipartData(builder.build()))
.retrieve()
.bodyToMono(String.class)
.block();
}
import requests
url = 'https://api.app.trustdochub.com/api/resources/v1'
data = {'api_key': '{{ YOUR_API_KEY }}'}
with open('file.txt', 'rb') as file:
response = requests.post(url, data=data, files={'fr_****_file': file})
print(response.text)
const axios = require('axios');
const FormData = require('form-data');
const fs = require('fs');
const form = new FormData();
// Pfad zur Datei
const filePath = 'pathToFile';
// Prüfen, ob Datei existiert
if (!fs.existsSync(filePath)) {
console.error('Datei nicht gefunden:', filePath);
process.exit(1);
}
// Datei zum Formular hinzufügen
form.append('fr_****_file', fs.createReadStream(filePath));
// API-Schlüssel hinzufügen
form.append('api_key', 'YOUR_API_KEY');
(async () => {
try {
const response = await axios.post(
'https://api.app.trustdochub.com/api/resources/v1',
form,
{
headers: {
...form.getHeaders(),
},
}
);
console.log('Antwort vom Server:', response.data);
} catch (error) {
if (error.response) {
console.error('Serverfehler:', error.response.status);
console.error('Fehlerdetails:', error.response.data);
} else if (error.request) {
console.error('Keine Antwort erhalten:', error.request);
} else {
console.error('Fehler bei der Anfrage:', error.message);
}
}
})();
<?php require 'vendor/autoload.php';
use GuzzleHttp\Client;
use GuzzleHttp\Exception\RequestException;
// Ziel-URL
$url = 'https://api.app.trustdochub.com/api/resources/v1';
// Pfad zur zu sendenden Datei
$filePath = '{{ path_to_file }}';
// Prüfen ob Datei existiert
if (!file_exists($filePath)) {
die('Datei nicht gefunden: ' . $filePath);
}
// API-Schlüssel
$apiKey = 'YOUR_API_KEY';
$client = new Client();
try {
$response = $client->post($url, [
'multipart' => [
[
'name' => 'fr_****_file',
'contents' => fopen($filePath, 'r'),
'filename' => basename($filePath),
'headers' => ['Content-Type' => 'application/pdf']
],
[
'name' => 'api_key',
'contents' => $apiKey
],
],
'verify' => true
]);
echo 'HTTP-Code: ' . $response->getStatusCode() . "\n";
echo 'Antwort vom Server: ' . $response->getBody();
} catch (RequestException $e) {
if ($e->hasResponse()) {
echo 'Serverfehler: ' . $e->getResponse()->getStatusCode() . "\n";
echo 'Antwort vom Server: ' . $e->getResponse()->getBody();
} else {
echo 'Fehler bei der Anfrage: ' . $e->getMessage();
}
}
Web-Oberfläche
Zentrales Element der Suite – die Web-Oberfläche ermöglicht Ihnen:
- Details Ihres Abonnements einzusehen
- Zu erfahren, wie viele Überprüfungen Ihnen in jedem Abonnement noch zur Verfügung stehen
- Auf die Historie Ihrer API-Aufrufe zuzugreifen
- JSON- und XML-Berichte für jeden Aufruf der Historie herunterzuladen
- Die entsprechenden Daten zu löschen
Verfügbare Sprachen
Die Web-Oberfläche ist in folgenden Sprachen verfügbar:
- Französisch
- Englisch
Reiter „Abonnements“
Auf der Startseite der Web-Oberfläche der Ressourcen-API finden Sie eine Liste Ihrer Abonnements mit folgenden Informationen:
- Plan-Typ (PRO, BUSINESS, CORPORATE)
- Abrechnungsrhythmus (monatlich oder jährlich)
- Aktives Abonnement: ob Ihr Abonnement aktiv ist oder nicht
- API-Schlüssel: Ihr Abonnement-API-Schlüssel
- Verbleibende Überprüfungen: Anzahl der verbleibenden Überprüfungen in diesem Zeitraum

Reiter „Ressourcen“
Der Reiter „Ressourcen“ (zugänglich, wenn ein Ressourcen-Abonnement aktiv ist) bietet Ihnen verschiedene Informationen und Werkzeuge.
Verlauf
Im Verlauf Ihrer API-Aufrufe können Sie die vollständige Historie einsehen mit folgenden Details:
- Datum des API-Aufrufs
- Typ des überprüften Dokuments
- Herunterladen des Berichts im PDF-/JSON-/XML-Format
- Löschen des API-Aufrufs und der zugehörigen Daten

Tool „Dokument prüfen“
Mit dem Tool „Dokument prüfen“ können Sie Dokumente direkt aus der Web-Oberfläche hochladen und prüfen – ganz ohne API-Aufrufe!
Beide Ansätze ergänzen sich je nach Bedarf.
Die Anzahl der pro Upload möglichen Dateien variiert je nach Dokument:
- Einkommenssteuererklärung: 1 Datei
- Gehaltsabrechnung Beamter: 1 Datei
- CAF-Zahlungsbescheinigung: mehrere Dateien
Die Ergebnisse stehen anschließend im Verlauf zur Verfügung, mit Download-Möglichkeiten als PDF-, JSON- oder XML-Bericht.

API-Antworten
JSON-Format
Sie können die Ergebnisse im JSON-Format erhalten.
Dazu fügen Sie einfach den Parameter „format=json
“ zu Ihrer Anfrage hinzu oder lassen den Parameter „format
“ ganz weg.
Im Folgenden die möglichen Antworten je nach Dokumenttyp:
Einkommensteuer
Einkommensteuer
{ "documentInfos": { "publicationDate": null, "signatureDate": "2022-06-13", "taxableIncomeReference": "44444", "sharesNumber": "1", "noticeReference": "2222222222222", "incomeYear": "2021", "declarant1": "XXXXXX YYYYYY", "taxNumberDeclarant1": "777777777777", "declarant2": null, "taxNumberDeclarant2": "null", "collectionDate": "2022-07-31" }, "certificate": { "validityStartDate": "2022-06-21", "validityEndDate": "2024-06-21", "issuerReference": "FR04", "issuerName": "AriadNEXT", "subjectReference": "FPE3", "issuer": "DIRECTION GENERALE DES FINANCES PUBLIQUES", "datesConsistency": true, "digitalSignature": true } }
Gehaltsabrechnung Beamter
Gehaltsabrechnung Beamter
{ "documentInfos": { "fullName": "MR XXXX YYYY", "employerSiret": "55555555555555", "periodStartDate": "2021-11-01", "periodEndDate": "2021-11-30", "contractStartDate": "1111-11-11", "netTaxableSalary": "2290.3", "netTaxableAccumulatedSalary": "27138.31" }, "certificate": { "validityStartDate": "2020-03-30", "validityEndDate": "2023-03-31", "issuerReference": "FR04", "issuerName": "AriadNEXT", "subjectReference": "FPE1", "issuer": "DIRECTION GENERALE DES FINANCES PUBLIQUES", "datesConsistency": true, "digitalSignature": true } }
CAF-Zahlungsbescheinigung (1 Datei / 2-seitiges Dokument)
CAF-Zahlungsbescheinigung (1 Datei / 2-seitiges Dokument)
{ "cafPaymentCertificates": [ { "documentInfos": { "documentDate": "2020-02-05", "dateOfBirth": "1980-08-14", "numberOfPages": 2, "beneficiaryNumberHeader": "8888888 M", "dateHourFooter": [ "050220202336", "050220202336" ], "beneficiaryNumberFooter": [ "8888888 M", "8888888 M" ], "barcodeNumber": [ "88888888888800000000", "88888888888800000000" ], "barcodeNumberDecoded": [ "88888888888800000000", "88888888888800000000" ] }, "documentInfosValidation": { "datesHeaderFooterValid": true, "beneficiaryNumberHeaderFooterValid": true, "beneficiaryNumberBarcodeNumberValid": true, "barcodeNumberBarcodeValid": true, "datesHeaderMetasValid": true, "datesFooterMetasValid": true } } ], "documentsValidation": null }
CAF-Zahlungsbescheinigung (2 Dateien / je 2-seitiges Dokument)
CAF-Zahlungsbescheinigung (2 Dateien / je 2-seitiges Dokument)
{ "cafPaymentCertificates": [ { "documentInfos": { "documentDate": "2020-02-05", "dateOfBirth": "1980-08-14", "numberOfPages": 2, "beneficiaryNumberHeader": "8888888 M", "dateHourFooter": [ "050220202336", "050220202336" ], "beneficiaryNumberFooter": [ "8888888 M", "8888888 M" ], "barcodeNumber": [ "88888888888800000000", "88888888888800000000" ], "barcodeNumberDecoded": [ "88888888888800000000", "88888888888800000000" ] }, "documentInfosValidation": { "datesHeaderFooterValid": true, "beneficiaryNumberHeaderFooterValid": true, "beneficiaryNumberBarcodeNumberValid": true, "barcodeNumberBarcodeValid": true, "datesHeaderMetasValid": true, "datesFooterMetasValid": true } }, { "documentInfos": { "documentDate": "2021-02-05", "dateOfBirth": "1980-08-14", "numberOfPages": 2, "beneficiaryNumberHeader": "8888888 M", "dateHourFooter": [ "050220212336", "050220212336" ], "beneficiaryNumberFooter": [ "8888888 M", "8888888 M" ], "barcodeNumber": [ "88888888888800000000", "88888888888800000000" ], "barcodeNumberDecoded": [ "88888888888800000000", "88888888888800000000" ] }, "documentInfosValidation": { "datesHeaderFooterValid": true, "beneficiaryNumberHeaderFooterValid": true, "beneficiaryNumberBarcodeNumberValid": true, "barcodeNumberBarcodeValid": true, "datesHeaderMetasValid": true, "datesFooterMetasValid": true } } ], "documentsValidation": { "datesOfBirthValid": true, "datesHeaderFooterValid": true, "beneficiaryNumberHeaderFooterValid": true, "beneficiaryNumberBarcodeNumberValid": true, "barcodeNumberBarcodeValid": true, "datesHeaderMetasValid": true, "datesFooterMetasValid": true, "modificationDateMetasValid": true } }
API-Statuscodes
Die folgenden Codes werden von der API zurückgegeben:
Code | Status | Beschreibung |
---|---|---|
200 | Verifikation OK | Die Verifikation war erfolgreich |
401 | Nicht autorisiert | Der API-Schlüssel ist ungültig |
402 | Unzureichende Guthaben | Es sind keine Verifikationsguthaben für den gewählten Zeitraum mehr verfügbar |
422 | Dokument unlesbar | Das Dokument wird nicht erkannt oder ist fehlerhaft |
Durchgeführte Prüfungen je Dokumenttyp
Nachfolgend finden Sie die Liste und Beschreibung der verschiedenen Felder und Prüfungen, die für jeden mit unseren Produkten kompatiblen Ausweisdokumenttyp durchgeführt werden.
Einkommensteuer
Einkommensteuer
Parametername | Typ | Beschreibung |
---|---|---|
documentInfos | ||
publicationDate | String | Veröffentlichungsdatum (kann null sein) |
signatureDate | String | Unterzeichnungsdatum des Dokuments |
taxableIncomeReference | String | Steuerpflichtiges Einkommen Referenz |
sharesNumber | String | Anzahl der Steuerteile |
noticeReference | String | Referenz der Steuererklärung |
incomeYear | String | Einkommensjahr |
declarant1 | String | Erklärender 1 |
taxNumberDeclarant1 | String | Steuernummer Erklärender 1 |
declarant2 | String | Erklärender 2 |
taxNumberDeclarant2 | String | Steuernummer Erklärender 2 |
collectionDate | String | Einzugsdatum |
certificate | ||
validityStartDate | String | Gültigkeitsbeginn des Signaturzertifikats |
validityEndDate | String | Gültigkeitsende des Signaturzertifikats |
issuerReference | String | Aussteller-Referenz des Signaturzertifikats |
issuerName | String | Name des Ausstellers des Signaturzertifikats |
subjectReference | String | Betreff-Referenz des Signaturzertifikats |
issuer | String | Aussteller des Signaturzertifikats |
datesConsistency | Boolean | Sind die Gültigkeitsdaten konsistent mit dem Ausstellungsdatum? |
digitalSignature | Boolean | Ist das digitale Signaturzertifikat gültig? |