Document & Evidence
Un document est une demande de pièce justificative. Une evidence est la preuve fournie en réponse par le tiers ou une source externe.
Définitions
Document (Demande)
Représente une pièce demandée dans un dossier.
documentId— Identifiant uniquedocumentCode— Code du type de documentdocumentName— Libellé du documentstatusCode— Statut actuelpresent— Document fourni ou non
Evidence (Preuve)
La réponse fournie par le tiers ou une source externe.
id— Identifiant de l'evidenceresponseId— ID pour les actionsuploadDate— Date de dépôtexpirationDate— Date d'expirationformdata— Données de formulaire
Types d'evidence
Une evidence peut prendre deux formes selon le type de document demandé :
| Type | Description | Propriétés spécifiques |
|---|---|---|
| Fichier uploadé | Document PDF, image ou autre fichier déposé par le tiers | fileUUID, fileName, fileSize |
| Formulaire rempli | Réponses à un questionnaire structuré | formdata[] |
Pour les formulaires remplis, Aprovall génère automatiquement un PDF consolidant toutes les réponses du tiers, téléchargeable via l'API.
Lister les documents d'un dossier
Récupérez tous les documents demandés dans un dossier avec leur statut et leurs evidences.
Liste tous les documents d'un dossier avec leurs evidences.
Exemple de réponse
{
"content": [
{
"documentId": 11078435,
"dossierId": 1324073,
"documentCode": "ATT_URSSAF",
"documentName": "Attestation de vigilance URSSAF",
"requestDate": "2025-01-15T10:00:00.000",
"present": true,
"statusCode": "VALID",
"evidences": [
{
"id": 6876412,
"responseId": 2238768,
"uploadDate": "2025-01-20T14:30:00.000",
"fileUUID": "a4d8acd5-8254-477c-9019-fa85aef8d224",
"fileName": "attestation_urssaf.pdf",
"fileSize": 128790,
"expirationDate": "2025-07-20T23:59:59.999",
"format": "ORIGINALNUMERIQUE",
"issuer": "DO",
"transmitter": "FOURNISSEUR"
}
]
},
{
"documentId": 11031065,
"dossierId": 1324073,
"documentCode": "KBIS",
"documentName": "Extrait Kbis",
"requestDate": "2025-01-15T10:00:00.000",
"present": false,
"statusCode": "MISSING",
"evidences": []
}
]
}Détails d'un document
Récupérez les informations détaillées d'un document spécifique.
Retourne les détails d'un document et ses evidences.
Structure d'une evidence
Chaque evidence contient des métadonnées sur la preuve fournie :
| Propriété | Type | Description |
|---|---|---|
id | number | Identifiant unique de l'evidence |
responseId | number | ID de la réponse (utilisé pour approve/reject) |
uploadDate | datetime | Date et heure du dépôt |
fileUUID | string | UUID du fichier stocké |
fileName | string | Nom du fichier original |
fileSize | number | Taille du fichier en octets |
expirationDate | datetime | Date d'expiration du document |
formdata | array | Données du formulaire (si applicable) |
issuer | string | Émetteur (DO = Data Owner) |
transmitter | string | Transmetteur (FOURNISSEUR, etc.) |
metadata | object | Métadonnées de vérification (IBAN, etc.) |
aprovallCheck | object | Résultat du contrôle automatique du document. Contient extractedData, la liste des champs lus — voir la section suivante. |
Les données extraites d'un document
Certaines pièces justificatives sont lues automatiquement par la plateforme, qui en retire les champs utiles — les informations portées par une attestation d'assurance, par exemple. Ces valeurs sont exposées sur le justificatif dans aprovallCheck.extractedData, sous forme de liste d'entrées.
La liste n'est renvoyée que si vous la demandez explicitement, via le paramètre de requête withExtractedData=true. À false ou absent, elle n'est pas peuplée. Un document dépourvu de données extraites n'expose simplement pas d'entrées : la requête n'échoue jamais pour cette raison.
La structure d'une entrée
Chaque entrée décrit un champ lu sur le document. Le libellé est destiné à l'affichage ; c'est name qui identifie le champ de façon stable.
| Champ | Type | Description |
|---|---|---|
name | string | Identifiant technique du champ extrait. C'est sur lui que vous devez vous appuyer. |
type | string | Nature de la valeur : TEXT, BOOLEAN, DATE ou NUMERIC. |
label | string | Libellé lisible du champ, destiné à l'affichage. |
value | string | boolean | number | null | Valeur lue sur le document. Son type suit type : chaîne, booléen, date YYYY-MM-DD ou nombre. |
Exemple de réponse
{
"id": 90124,
"statusCode": "ACTION_REQUIRED",
"aprovallCheck": {
"extractedData": [
{
"name": "document_type",
"type": "TEXT",
"label": "Type de document",
"value": "DECLARATION_NON_CONCERNE"
},
{
"name": "is_insured",
"type": "BOOLEAN",
"label": "Entreprise assurée",
"value": false
},
{
"name": "edition_date",
"type": "DATE",
"label": "Date d'édition",
"value": "2026-04-10"
},
{
"name": "expiration_date",
"type": "DATE",
"label": "Date de fin de validité",
"value": ""
},
{
"name": "company_name",
"type": "TEXT",
"label": "Nom de l'entreprise assurée",
"value": "ACME BTP"
},
{
"name": "identifier",
"type": "TEXT",
"label": "SIRET/SIREN",
"value": "12345678900017"
},
{
"name": "Plafond",
"type": "NUMERIC",
"label": "Plafond de garantie par sinistre",
"value": null
},
{
"name": "platform_generated",
"type": "BOOLEAN",
"label": "Document généré par la plateforme",
"value": true
}
]
}
}Une entrée est toujours présente même si le champ n'a pas été trouvé sur le document : value vaut alors la chaîne vide pour un TEXT ou une DATE, et null pour un NUMERIC. Testez donc la valeur, et non la présence de l'entrée.
Les name ne suivent pas une convention unique — on trouve du snake_case en minuscules (company_name) comme des noms capitalisés (Plafond_total, Devise). Faites une correspondance explicite sur les champs qui vous intéressent plutôt que de dériver le nom.
Où l'utiliser
Le paramètre est accepté sur les cinq endpoints qui renvoient des justificatifs :
Formulaires : structure formdata
Pour les documents de type formulaire, le tableau formdata contient les réponses structurées :
{
"formdata": [
{
"type": "string",
"key": "f_158_nmr_0",
"title": "Nom ou référence de l'opération",
"order": 0,
"value": "Projet Alpha"
},
{
"type": "date",
"key": "f_158_dtd_2",
"title": "Date de réalisation",
"order": 2,
"value": "15/01/2025"
},
{
"type": "iban",
"key": "f_49_bn_0",
"title": "IBAN",
"order": 0,
"value": "FR76 0000 0000 0000 0000 0000 000"
}
]
}Types de champs
| Type | Description |
|---|---|
string | Texte libre |
date | Date au format JJ/MM/AAAA |
iban | Coordonnées bancaires IBAN |
boolean | Oui / Non |
number | Valeur numérique |
Télécharger un fichier
Plusieurs méthodes pour récupérer les fichiers des evidences :
Télécharge le fichier en binaire (PDF). Le fileId correspond à l'id de l'evidence.
Génère une URL signée temporaire pour le téléchargement.
Télécharge tous les fichiers du dossier dans une archive ZIP.
Actions sur un document
Lorsqu'un document est en statut ACTION_REQUIRED, vous pouvez l'approuver ou le rejeter via l'API.
Les actions utilisent le responseId présent dans l'objet evidence, et non le documentId.
Approuver un document
curl -X POST https://edge.aprovall.com/api/v1/account/123/responses/2238768/approve \
-H "Authorization: Bearer VOTRE_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"comment": "Document conforme"
}'| Paramètre | Obligatoire | Description |
|---|---|---|
comment | Non | Commentaire optionnel de validation |
Rejeter un document
curl -X POST https://edge.aprovall.com/api/v1/account/123/responses/2238768/reject \
-H "Authorization: Bearer VOTRE_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"comment": "Document expiré",
"shareRejectionReason": true
}'| Paramètre | Obligatoire | Description |
|---|---|---|
comment | Non | Motif du rejet |
shareRejectionReason | Oui | Si true, le tiers est notifié par email du rejet |
Ajouter un document requis
Vous pouvez ajouter des documents supplémentaires à un dossier existant (sauf pour les dossiers typés où la liste est fixée).
curl -X POST https://edge.aprovall.com/api/v1/account/123/dossiers/456/requirements \
-H "Authorization: Bearer VOTRE_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"newRequiredDocuments": ["JUSTIF_IMM", "ATT_FISC"]
}'Vérifications automatiques
Certains documents font l'objet de vérifications automatiques par Aprovall. Les résultats sont disponibles dans le champ metadata de l'evidence.
Exemple : vérification IBAN
Pour les documents IBAN, la vérification peut inclure des données SEPAmail ou Trustpair :
{
"metadata": {
"verified": "true",
"bank_data_bank": "CREDIT DU NORD",
"bank_data_bic": "NORDXXXX",
"bank_data_country": "FRANCE",
"sepa_data_sct": "YES",
"sepa_data_sdd": "YES",
"date_verification": "15/01/2025"
}
}