Documentación de la API recursos
¿Qué es la API recursos?
Encontrará una descripción completa en la página de producto de API Ressources.
¿Cómo se envían los documentos?
Formatos aceptados
El formato aceptado es PDF.
Número de páginas por llamada
El número de ficheros aceptados depende del tipo de documento:
- FR impuesto sobre la renta: 1 expediente único
- nómina de los funcionarios FR: 1 expediente único
- Certificado de pago CAF FR: varios ficheros
Solicitudes de recursos API
Parámetros
El sistema API permite automatizar la validación de credenciales de recursos mediante una simple solicitud HTTP POST.
Los parámetros aceptados se enumeran en la tabla siguiente:
Parámetro | Tipo | Formato | Obligatorio | Descripción |
---|---|---|---|---|
clave_api | Cadena | Sí | Su clave API | |
formato | Cadena | No | ||
archivo_impuestos_ingresos | Archivo | No | Documento del impuesto sobre la renta | |
es_civil_servant_payslip_file | Archivo | No | Documento de nómina de funcionario | |
es_caf_archivo_certificado_de_pago | Archivo[] | No | Uno o varios certificados de pago CAF |
Ejemplos en distintos idiomas
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();
// Chemin vers le fichier que vous souhaitez envoyer
const filePath = 'pathToFile';
// Vérifier si le fichier existe
if (!fs.existsSync(filePath)) {
console.error('Le fichier spécifié est introuvable :', filePath);
process.exit(1);
}
// Ajouter le fichier au formulaire
form.append('fr_****_file', fs.createReadStream(filePath));
// Ajouter le paramètre api_key
form.append('api_key', 'votre_clé_api'); // Remplacez par votre clé API réelle
(async () => {
try {
const response = await axios.post(
'https://api.app.trustdochub.com/api/resources/v1',
form,
{
headers: {
...form.getHeaders(),
// Si l'API nécessite une autorisation supplémentaire, ajoutez-la ici
// 'Authorization': 'Bearer votre_token',
},
}
);
console.log('Réponse du serveur :', response.data);
} catch (error) {
if (error.response) {
// La requête a été faite et le serveur a répondu avec un statut d'erreur
console.error('Erreur du serveur :', error.response.status);
console.error('Détails de l'erreur :', error.response.data);
} else if (error.request) {
// La requête a été faite mais aucune réponse n'a été reçue
console.error('Aucune réponse reçue :', error.request);
} else {
// Erreur lors de la configuration de la requête
console.error('Erreur lors de la configuration de la requête :', error.message);
}
}
})();
<?php require 'vendor/autoload.php';
use GuzzleHttpClient;
use GuzzleHttpExceptionRequestException;
// URL cible
$url = 'https://api.app.trustdochub.com/api/resources/v1';
// Chemin vers le fichier à envoyer
$filePath = '{{ path_to_file }}';
// Vérifier si le fichier existe
if (!file_exists($filePath)) { die('Fichier introuvable : ' . $filePath); }
// Clé API
$apiKey = 'votre_clé_api'; // Remplacez par votre clé API
// Créer un client Guzzle
$client = new Client(); try { $response = $client->post($url, [
'multipart' => [
[
'name' => 'fr_****_file',
'contents' => fopen($filePath, 'r'),
'filename' => 'specimen_passeport.webp',
'headers' => ['Content-Type' => 'image/webp']
],
[
'name' => 'api_key',
'contents' => $apiKey
]
],
'verify' => true // Vérifier le certificat SSL
]);
// Afficher le code de statut HTTP
echo 'Code HTTP : ' . $response->getStatusCode() . "n";
// Afficher la réponse du serveur
echo 'Réponse du serveur : ' . $response->getBody();
} catch (RequestException $e) {
if ($e->hasResponse()) {
echo 'Erreur du serveur : ' . $e->getResponse()->getStatusCode() . "n";
echo 'Réponse du serveur : ' . $e->getResponse()->getBody();
} else {
echo 'Erreur lors de la requête : ' . $e->getMessage();
}
}
Interfaz web
Elemento central del paquete, la interfaz web permite :
- Ver los detalles de su suscripción
- Sepa cuántos cheques le quedan de cada abono
- Acceda a su historial de llamadas a la API
- Descarga de informes JSON y XML para cada llamada del historial
- Borrar los datos correspondientes
Idiomas disponibles
La interfaz web está disponible en los siguientes idiomas:
- Francés
- Inglés
Ficha Suscripciones
Encontrará la lista de sus suscripciones en la página de inicio de la interfaz web de la API de Recursos, con la siguiente información:
- Tipo de plan (PRO, BUSINESS, CORPORATE)
- Frecuencia (mensual o anual)
- Suscripción activa: ¿su suscripción está activa o no?
- Clave API: la clave API para su suscripción
- Verificaciones restantes: número de verificaciones restantes en su suscripción, durante el periodo

Ficha Recursos
La pestaña de recursos (accesible si está activa la suscripción a Recursos) le da acceso a una serie de información y herramientas.
Historia
El historial de llamadas a la API le permite ver el historial completo de las llamadas realizadas, con la siguiente información:
- fecha de la llamada a la API
- tipo de documento controlado
- descargar el informe en formato PDF / JSON / XML
- Supresión de la llamada a la API y de los datos correspondientes

Herramienta «Comprobar documento
La herramienta «Comprobar un documento» permite enviar documentos para su comprobación directamente desde la interfaz web, por lo que no es necesario realizar llamadas a la API.
Ambos enfoques son complementarios, en función de las necesidades.
El número de archivos que pueden enviarse (por envío) varía en función del documento:
- impuesto sobre la renta: 1 expediente único
- nómina de funcionario: 1 expediente único
- Aviso de pago CAF: varios expedientes
A continuación, los resultados estarán disponibles en el historial y podrán descargarse en forma de informe PDF, JSON o XML.

Respuestas de la API
Formato JSON
Puede obtener los resultados en formato JSON.
Para ello, basta con añadir el parámetro «format=json» a la solicitud, u omitir el parámetro «format».
He aquí las posibles respuestas basadas en los documentos:
Impuesto sobre la renta
Impuesto sobre la renta
{ "documentInfos": { "publicationDate": null, "signatureDate": "2022-06-13", "taxableIncomeReference": "44444", "sharesNumber": "1", "noticeReference": "2222222222222", "incomeYear": "2021", "declarante1": "XXXXXX YYYYYY", "taxNumberDeclarant1": "777777777777", "declarante2": null, "taxNumberDeclarant2": "null", "collectionDate": "2022-07-31" }, "certificado": { "validityStartDate": "2022-06-21", "validityEndDate": "2024-06-21", "issuerReference": "FR04", "issuerName": "AriadNEXT", "subjectReference": "FPE3", "issuer": "DIRECTION GENERALE DES FINANCES PUBLIQUES", "datesConsistency": true, "digitalSignature": true } }
Nómina de funcionario
Nómina de funcionario
{ "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" }, "certificado": { "validityStartDate": "2020-03-30", "validityEndDate": "2023-03-31", "issuerReference": "FR04", "issuerName": "AriadNEXT", "subjectReference": "FPE1", "issuer": "DIRECTION GENERALE DES FINANCES PUBLIQUES", "datesConsistency": true, "digitalSignature": true } }
Certificado de pago del CAF (1 único archivo / documento de 2 páginas)
Certificado de pago del CAF (1 único archivo / documento de 2 páginas)
{
"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
}
Certificado de pago CAF (2 ficheros / documentos de 2 páginas)
Certificado de pago CAF (2 ficheros / documentos de 2 páginas)
{
"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
}
}
Formato XML
El segundo tipo de formato disponible para las respuestas es XML.
Para ello, basta con añadir el parámetro «format» «xml» a la solicitud.
He aquí las posibles respuestas basadas en los documentos:
Impuesto sobre la renta
Impuesto sobre la renta
2022-06-13
44444
1
2222222222222
2021
XXXXX YYYYYY
777777777777
null
2022-07-31
2022-06-21
2024-06-21
FR04
AriadNEXT
FPE3
DIRECCIÓN GENERAL DE FINANZAS PÚBLICAS
verdadero
verdadero
Nómina de funcionario
Nómina de funcionario
MR XXXX YYYY
55555555555555
2021-11-01
2021-11-30
1111-11-11
2290.3
27138.31
2020-03-30
2023-03-31
FR04
AriadNEXT
FPE1
DIRECCIÓN GENERAL DE FINANZAS PÚBLICAS
verdadero
verdadero
Certificado de pago del CAF (1 único archivo / documento de 2 páginas)
Certificado de pago del CAF (1 único archivo / documento de 2 páginas)
2020-02-05
1980-08-14
2
8888888 M
050220202336
050220202336
8888888 M
8888888 M
88888888888800000000
88888888888800000000
88888888888800000000
88888888888800000000
verdadero
verdadero
true
verdadero
verdadero
verdadero
Certificado de pago CAF (2 ficheros / documentos de 2 páginas)
Certificado de pago CAF (2 ficheros / documentos de 2 páginas)
2020-02-05
1980-08-14
2
8888888 M
050220202336
050220202336
8888888 M
8888888 M
88888888888800000000
88888888888800000000
88888888888800000000
88888888888800000000
verdadero
verdadero
true
verdadero
verdadero
verdadero
2021-02-05
1980-08-14
2
8888888 M
050220212336
050220212336
8888888 M
8888888 M
88888888888800000000
88888888888800000000
88888888888800000000
88888888888800000000
verdadero
verdadero
true
verdadero
verdadero
verdadero
verdadero
verdadero
verdadero
verdadero
verdadero
verdadero
verdadero
verdadero
Códigos de estado del PLC
La API devuelve los siguientes códigos:
Código | Tipo | Descripción |
---|---|---|
200 | Comprobar ok | La comprobación fue bien |
401 | No autorizada | La clave API no es correcta |
402 | Crédito insuficiente | No hay más créditos de auditoría para el período dado |
422 | Documento ilegible | El documento no se reconoce o es incorrecto |
Controles efectuados en cada tipo de documento
A continuación encontrará una lista y una descripción de los distintos campos y controles efectuados en cada tipo de documento de identidad compatible con nuestros productos.
Impuesto sobre la renta
Impuesto sobre la renta
Nombre del parámetro | Tipo | Descripción |
---|---|---|
documentInfos | | |
fecha de publicación | Cadena | Fecha de publicación (puede ser nula) |
fechafirma | Cadena | Fecha de firma del documento |
taxableIncomeReference | Cadena | Ingresos fiscales de referencia |
accionesNúmero | Cadena | Número de unidades en el hogar fiscal |
avisoReferencia | Cadena | Aviso de referencia |
ingresosAño | Cadena | Año de ingresos |
declarante1 | Cadena | Declarante 1 |
númerodeimpuestoDeclarante1 | Cadena | Número de identificación fiscal que declara 1 |
declarante2 | Cadena | Declarante 2 |
declarante2 | Cadena | Número de identificación fiscal del declarante 2 |
collectionDate | Cadena | Fecha de recogida |
certificado | | |
validityStartDate | Cadena | Fecha de inicio de validez del certificado de firma digital |
validityEndDate | Cadena | Fecha de fin de validez del certificado de firma digital |
emisorReferencia | Cadena | Referencia del emisor del certificado de firma digital |
issuerName | Cadena | Nombre del emisor del certificado de firma digital |
asuntoReferencia | Cadena | Referencia sobre el certificado de firma digital |
emisor | Cadena | Emisor del certificado de firma digital |
fechasConsistencia | Booleano | ¿Coinciden las fechas de inicio y fin de validez con la fecha de emisión del documento? |
firma digital | Booleano | ¿Es válido el certificado de firma digital? |
Nómina de funcionario
Nómina de funcionario
Nombre del parámetro | Tipo | Descripción |
---|---|---|
documentInfos | ||
fullName | Cadena | Nombre y apellidos del beneficiario |
employSiret | Cadena | SIRET del empleador |
periodStartDate | Cadena | Fecha de inicio del período del documento |
periodEndDate | Cadena | Fecha de finalización del período del documento |
contractStartDate | Matriz | Fecha de inicio del contrato del beneficiario (no suele cumplimentarse) |
salario neto imponible | Cadena | Sueldo neto del mes |
netTaxableAccumulatedSalary | Cadena | Total neto del año |
certificado | ||
validityStartDate | Cadena | Fecha de inicio de validez del certificado de firma digital |
validityEndDate | Cadena | Fecha de fin de validez del certificado de firma digital |
emisorReferencia | Cadena | Referencia del emisor del certificado de firma digital |
issuerName | Cadena | Nombre del emisor del certificado de firma digital |
asuntoReferencia | Cadena | Referencia sobre el certificado de firma digital |
emisor | Cadena | Emisor del certificado de firma digital |
fechasConsistencia | Booleano | ¿Coinciden las fechas de inicio y fin de validez con la fecha de emisión del documento? |
firma digital | Booleano | ¿Es válido el certificado de firma digital? |
Certificado de pago CAF (sólo 1 expediente)
Certificado de pago CAF (sólo 1 expediente)
Nombre del parámetro | Tipo | Descripción |
---|---|---|
documentInfos | ||
fechaDocumento | Cadena | Fecha del documento |
fechaDeNacimiento | Cadena | Fecha de nacimiento del beneficiario |
númeroDePáginas | Cadena | Número de páginas del fichero |
beneficiaryNumberHeader | Cadena | Número de prestación de cabecera |
fechaHoraPie | Cadena | Fechas y horas al final de la página |
barcodeNumber | Cadena | Número bajo el código de barras |
barcodeNumberDecoded | Cadena | Número de código de barras descodificado |
documentoInfosValidación | ||
datesHeaderFooterValid | Booleano | ¿Fechas coherentes entre la cabecera y el pie de página? |
beneficiaryNumberHeaderFooterValid | Booleano | ¿Es coherente el número de destinatario entre la cabecera y el pie de página? |
beneficiaryNumberBarcodeNumberValid | Booleano | ¿Es coherente el número de destinatario entre la cabecera y el número bajo el código de barras? |
barcodeNumberBarcodeValid | Booleano | ¿Coinciden el número que figura bajo el código de barras y el número del código de barras descodificado? |
datesHeaderMetasValid | Booleano | ¿Son coherentes las fechas en el encabezamiento y las metas? |
datesFooterMetasValid | Booleano | ¿Fechas en el pie de página y en metas coherentes? |
Certificado de pago CAF (varios ficheros)
Certificado de pago CAF (varios ficheros)
Nombre del parámetro | Tipo | Descripción |
---|---|---|
documentInfos | ||
fechaDocumento | Cadena | Fecha del documento |
fechaDeNacimiento | Cadena | Fecha de nacimiento del beneficiario |
númeroDePáginas | Cadena | Número de páginas del fichero |
beneficiaryNumberHeader | Cadena | Número de prestación de cabecera |
fechaHoraPie | Cadena | Fechas y horas al final de la página |
barcodeNumber | Cadena | Número bajo el código de barras |
barcodeNumberDecoded | Cadena | Número de código de barras descodificado |
documentoInfosValidación | ||
datesHeaderFooterValid | Booleano | ¿Fechas coherentes entre la cabecera y el pie de página? |
beneficiaryNumberHeaderFooterValid | Booleano | ¿Es coherente el número de destinatario entre la cabecera y el pie de página? |
beneficiaryNumberBarcodeNumberValid | Booleano | ¿Es coherente el número de destinatario entre la cabecera y el número bajo el código de barras? |
barcodeNumberBarcodeValid | Booleano | ¿Coinciden el número que figura bajo el código de barras y el número del código de barras descodificado? |
datesHeaderMetasValid | Booleano | ¿Son coherentes las fechas en el encabezamiento y las metas? |
datesFooterMetasValid | Booleano | ¿Fechas en el pie de página y en metas coherentes? |
documentosValidación | ||
datesOfBirthValid | Booleano | ¿Las fechas de nacimiento coinciden en todos los expedientes? |
datesHeaderFooterValid | Booleano | ¿Las fechas de encabezado y pie de página son coherentes entre archivos? |
beneficiaryNumberHeaderFooterValid | Booleano | ¿Los números de destinatario de cabecera y pie de página son coherentes entre archivos? |
beneficiaryNumberBarcodeNumberValid | Booleano | ¿Es coherente el número de beneficiario entre la cabecera y el número bajo el código de barras entre los ficheros? |
barcodeNumberBarcodeValid | Booleano | ¿Coinciden entre sí el número que figura bajo el código de barras y el número del código de barras descodificado? |
datesHeaderMetasValid | Booleano | ¿Coinciden las fechas de la cabecera y las metas de un archivo a otro? |
datesFooterMetasValid | Booleano | ¿Las fechas del pie de página y los metadatos son coherentes entre archivos? |
modificationDateMetasValid | Booleano | ¿La fecha de modificación de las metaetiquetas del documento PDF es cero? |