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/v1public 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? |