Deprecated

API REST/JSON v1.1.0

L'API REST/JSON e-Attestations v1.1.0 permet d'interfacer un système d'information client à la plateforme e-Attestations via le protocole HTTP REST avec encodage JSON.

Cette API est obsolète (deprecated). Pour les nouvelles intégrations, veuillez utiliser l'API EDGE qui offre plus de fonctionnalités et de meilleures performances.

Vue d'ensemble

Cette API REST permet le suivi de conformité des tiers (fournisseurs, partenaires) via une architecture RESTful avec des réponses au format JSON.

Fonctionnalités principales

  • Gestion des tiers (création, consultation)
  • Création et suivi des dossiers d'évaluation
  • Téléchargement des documents et fichiers
  • Consultation des indicateurs de conformité

Environnements

Deux environnements sont disponibles pour l'intégration :

Environnement de TEST

https://rs.test-e-attestations.com/api/v1/

Pour le développement et les tests d'intégration

Environnement de PRODUCTION

https://rs.e-attestations.com/api/v1/

Pour l'utilisation en conditions réelles

Encodage

Toutes les communications avec l'API doivent utiliser l'encodage UTF-8.

Assurez-vous que vos requêtes et vos traitements de réponses utilisent UTF-8 pour éviter les problèmes d'affichage des caractères spéciaux.

Authentification OpenID Connect

L'API utilise OpenID Connect (OIDC) avec des tokens JWT (JSON Web Tokens) pour l'authentification. Vous devez obtenir un token avant d'appeler les endpoints de l'API.

Endpoints d'authentification

TEST

https://auth.test-e-attestations.com/auth/realms/eat_realm/protocol/openid-connect/token

PRODUCTION

https://auth.e-attestations.com/auth/realms/eat_realm/protocol/openid-connect/token

Requête d'authentification

HTTP Request
POST /auth/realms/eat_realm/protocol/openid-connect/token
Content-Type: application/x-www-form-urlencoded

client_id=ea-api-edge
&grant_type=password
&username=VOTRE_USERNAME
&password=VOTRE_PASSWORD

Paramètres requis

ParamètreValeurDescription
client_idea-api-edgeIdentifiant client (fixe)
grant_typepasswordType d'authentification
usernameVotre identifiantNom d'utilisateur API
passwordVotre mot de passeMot de passe API

Réponse

JSON Response
{
  "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
  "expires_in": 300,
  "refresh_expires_in": 1800,
  "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "token_type": "bearer",
  "not-before-policy": 0,
  "session_state": "abc123..."
}
Le token a une durée de validité limitée (indiquée par expires_in en secondes). Pensez à le renouveler avant expiration ou utilisez le refresh_token.

Utilisation du token

Incluez le token dans l'en-tête Authorization de toutes vos requêtes :

HTTP Header
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...
GET/account

Récupère les informations du compte associé au token valide.

Requête

HTTP Request
GET /api/v1/account
Authorization: Bearer {access_token}

Réponse

JSON Response
{
  "content": {
    "accountId": 12345,
    "accountName": "Ma Societe",
    "subscriptionStartDate": "2020-01-01",
    "subscriptionEndDate": "2025-12-31"
  },
  "messages": {
    "info": [],
    "warning": [],
    "error": []
  }
}
GET/account/{accountId}

Retourne les statistiques globales des tiers suivis pour le compte.

Paramètres

ParamètreTypeRequisDescription
accountIdIntegerOuiIdentifiant du compte (path)

Requête

HTTP Request
GET /api/v1/account/12345
Authorization: Bearer {access_token}

Réponse

JSON Response
{
  "content": {
    "accountId": 12345,
    "totalThirdparties": 150,
    "monitoredThirdparties": 120,
    "totalDossiers": 180,
    "completedDossiers": 95,
    "pendingDossiers": 85
  },
  "messages": {
    "info": [],
    "warning": [],
    "error": []
  }
}
GET/account/{accountId}/thirdparties

Liste les tiers du référentiel du compte avec filtrage optionnel.

Paramètres de requête

ParamètreTypeDescription
monitoredBooleanFiltrer par statut de suivi
companyIdTypeStringType d'identifiant (CIT001, CIT002)
nameStringNom de l'entreprise
sirenStringNuméro SIREN (9 chiffres)
siretStringNuméro SIRET (14 chiffres)
tvaStringNuméro de TVA intracommunautaire
thirdpartyGlobalStateBooleanÉtat global du tiers
pageIntegerNuméro de page (défaut: 0)
pageSizeIntegerTaille de page (défaut: 20)

Requête

HTTP Request
GET /api/v1/account/12345/thirdparties?monitored=true&page=0&pageSize=20
Authorization: Bearer {access_token}

Réponse

JSON Response
{
  "content": [
    {
      "thirdpartyId": 67890,
      "companyIdType": "CIT001",
      "companyIdValue": "12345678901234",
      "thirdpartyCode": "FOURNISSEUR-001",
      "name": "Fournisseur Example SAS",
      "monitored": true,
      "globalState": true
    }
  ],
  "messages": {
    "info": [],
    "warning": [],
    "error": []
  },
  "page": 0,
  "size": 20,
  "totalElements": 1
}
GET/account/{accountId}/thirdparties/{thirdpartyId}

Retourne les informations détaillées d'un tiers : identité, adresse, utilisateurs, statut commercial, activité et données financières.

Paramètres

ParamètreTypeRequisDescription
accountIdIntegerOuiIdentifiant du compte
thirdpartyIdIntegerOuiIdentifiant du tiers

Requête

HTTP Request
GET /api/v1/account/12345/thirdparties/67890
Authorization: Bearer {access_token}

Réponse

JSON Response
{
  "content": {
    "thirdpartyId": 67890,
    "companyIdType": "CIT001",
    "companyIdValue": "12345678901234",
    "thirdpartyCode": "FOURNISSEUR-001",
    "identity": {
      "name": "Fournisseur Example SAS",
      "legalForm": "SAS",
      "siren": "123456789",
      "siret": "12345678901234",
      "vatNumber": "FR12345678901",
      "creationDate": "2010-05-15"
    },
    "address": {
      "street": "123 Rue de la Paix",
      "postalCode": "75001",
      "city": "Paris",
      "country": "France"
    },
    "activity": {
      "mainActivity": "6201Z",
      "mainActivityLabel": "Programmation informatique"
    },
    "financial": {
      "capital": 100000,
      "currency": "EUR",
      "employees": 50
    },
    "users": [
      {
        "email": "contact@fournisseur.com",
        "firstName": "Jean",
        "lastName": "Dupont"
      }
    ],
    "businessStatus": {
      "active": true,
      "closedDate": null
    }
  },
  "messages": {
    "info": [],
    "warning": [],
    "error": []
  }
}
POST/account/{accountId}/dossiersAsynchrone

Crée un dossier de suivi pour un tiers. Le traitement est asynchrone et retourne un processId pour suivre l'avancement.

Corps de la requête

ChampTypeRequisDescription
companyIdTypeStringOuiType d'identifiant (CIT001, CIT002)
companyIdValueStringOuiValeur de l'identifiant (SIRET, TVA)
thirdpartyCodeStringNonCode interne du tiers
dossierReferenceStringNonRéférence unique du dossier
descriptionStringNonDescription du dossier
purchasingCategoryStringNonCatégorie d'achat
expirationDateDateNonDate d'expiration (YYYY-MM-DD)
requiredDocumentsArrayNonListe des codes documents requis
thirdpartyEmailArrayNonEmails du tiers pour invitation
userInChargeArrayNonEmails des responsables

Requête

HTTP Request
POST /api/v1/account/12345/dossiers
Authorization: Bearer {access_token}
Content-Type: application/json

{
  "companyIdType": "CIT001",
  "companyIdValue": "12345678901234",
  "thirdpartyCode": "FOURNISSEUR-001",
  "dossierReference": "DOS-2024-001",
  "description": "Evaluation fournisseur IT",
  "purchasingCategory": "IT",
  "expirationDate": "2025-12-31",
  "requiredDocuments": ["KBIS", "URSSAF", "ASSURANCE"],
  "thirdpartyEmail": ["contact@fournisseur.com"],
  "userInCharge": ["acheteur@masociete.com"]
}

Réponse

JSON Response
{
  "content": {
    "processId": "abc123-def456-ghi789",
    "status": "PENDING"
  },
  "messages": {
    "info": ["Dossier creation in progress"],
    "warning": [],
    "error": []
  }
}
Le processId retourné permet de suivre l'avancement de la création du dossier. Utilisez l'endpoint GET /dossiers avec ce processId pour vérifier le statut.
GET/account/{accountId}/dossiers

Recherche multi-critères des dossiers du compte.

Paramètres de requête

ParamètreTypeDescription
thirdpartyIdIntegerIdentifiant du tiers
companyIdTypeStringType d'identifiant
companyIdValueStringValeur de l'identifiant
thirdpartyCodeStringCode interne du tiers
dossierReferenceStringRéférence du dossier
monitoredBooleanStatut de suivi
stateLastChangeDateDateDate de dernière modification
pageIntegerNuméro de page
pageSizeIntegerTaille de page

Requête

HTTP Request
GET /api/v1/account/12345/dossiers?thirdpartyCode=FOURNISSEUR-001&page=0&pageSize=10
Authorization: Bearer {access_token}

Réponse

JSON Response
{
  "content": [
    {
      "dossierId": 11111,
      "thirdpartyId": 67890,
      "dossierReference": "DOS-2024-001",
      "monitored": true,
      "state": true,
      "creationDate": "2024-01-15",
      "expirationDate": "2025-12-31",
      "indicators": [
        {
          "code": "I001",
          "label": "Obligation de vigilance",
          "state": true
        }
      ],
      "documents": [
        {
          "documentId": 22222,
          "documentCode": "KBIS",
          "name": "Extrait Kbis",
          "present": true,
          "requestDate": "2024-01-15",
          "expirationDate": "2025-01-15"
        }
      ]
    }
  ],
  "messages": {
    "info": [],
    "warning": [],
    "error": []
  },
  "page": 0,
  "size": 10,
  "totalElements": 1
}
GET/account/{accountId}/dossiers/{dossierId}

Récupère les détails complets d'un dossier spécifique, incluant les documents, indicateurs et informations sur les fichiers.

Paramètres

ParamètreTypeRequisDescription
accountIdIntegerOuiIdentifiant du compte
dossierIdIntegerOuiIdentifiant du dossier

Requête

HTTP Request
GET /api/v1/account/12345/dossiers/11111
Authorization: Bearer {access_token}

Réponse

JSON Response
{
  "content": {
    "dossierId": 11111,
    "thirdpartyId": 67890,
    "dossierReference": "DOS-2024-001",
    "description": "Evaluation fournisseur IT",
    "purchasingCategory": "IT",
    "monitored": true,
    "state": true,
    "creationDate": "2024-01-15",
    "expirationDate": "2025-12-31",
    "stoppingReason": null,
    "indicators": [
      {
        "code": "I001",
        "label": "Obligation de vigilance",
        "state": true
      }
    ],
    "documents": [
      {
        "documentId": 22222,
        "documentCode": "KBIS",
        "name": "Extrait Kbis",
        "present": true,
        "requestDate": "2024-01-15",
        "expirationDate": "2025-01-15",
        "listFileInformation": [
          {
            "fileId": 33333,
            "fileUUID": "uuid-abc-123",
            "uploadDate": "2024-01-20",
            "fileSize": 125000,
            "expirationDate": "2025-01-15"
          }
        ]
      },
      {
        "documentId": 22223,
        "documentCode": "URSSAF",
        "name": "Attestation URSSAF",
        "present": false,
        "requestDate": "2024-01-15",
        "expirationDate": null,
        "listFileInformation": []
      }
    ]
  },
  "messages": {
    "info": [],
    "warning": [],
    "error": []
  }
}
POST/account/{accountId}/dossiers/{dossierId}

Met à jour un dossier existant.

Corps de la requête

ChampTypeDescription
dossierReferenceStringNouvelle référence du dossier
descriptionStringNouvelle description
purchasingCategoryStringNouvelle catégorie
expirationDateDateNouvelle date d'expiration
thirdpartyCodeStringNouveau code tiers
thirdpartyEmailArrayNouveaux emails

Requête

HTTP Request
POST /api/v1/account/12345/dossiers/11111
Authorization: Bearer {access_token}
Content-Type: application/json

{
  "dossierReference": "DOS-2024-001-V2",
  "description": "Evaluation fournisseur IT - Mise a jour",
  "expirationDate": "2026-06-30"
}

Réponse

JSON Response
{
  "content": {
    "dossierId": 11111,
    "updated": true
  },
  "messages": {
    "info": ["Dossier updated successfully"],
    "warning": [],
    "error": []
  }
}
GET/account/{accountId}/dossiers/{dossierId}/documents/{documentId}/files/{fileId}

Télécharge un fichier associé à un document. Retourne le contenu binaire du fichier.

Paramètres

ParamètreTypeDescription
accountIdIntegerIdentifiant du compte
dossierIdIntegerIdentifiant du dossier
documentIdIntegerIdentifiant du document
fileIdIntegerIdentifiant du fichier

Requête

HTTP Request
GET /api/v1/account/12345/dossiers/11111/documents/22222/files/33333
Authorization: Bearer {access_token}

Réponse

Binary Response
Content-Type: application/pdf
Content-Disposition: attachment; filename="kbis_fournisseur.pdf"

[Binary file content]
GET/account/{accountId}/requirements

Liste les documents requis configurés pour le compte.

Requête

HTTP Request
GET /api/v1/account/12345/requirements
Authorization: Bearer {access_token}

Réponse

JSON Response
{
  "content": [
    {
      "documentCode": "KBIS",
      "name": "Extrait Kbis",
      "description": "Extrait d'immatriculation au RCS",
      "validityPeriod": 90
    },
    {
      "documentCode": "URSSAF",
      "name": "Attestation URSSAF",
      "description": "Attestation de vigilance URSSAF",
      "validityPeriod": 180
    },
    {
      "documentCode": "ASSURANCE",
      "name": "Attestation d'assurance",
      "description": "Attestation RC professionnelle",
      "validityPeriod": 365
    }
  ],
  "messages": {
    "info": [],
    "warning": [],
    "error": []
  }
}

Format de réponse standard

Toutes les réponses de l'API suivent une structure JSON standardisée :

Standard Response Structure
{
  "content": { /* Données de la réponse */ },
  "messages": {
    "info": [],      // Messages d'information
    "warning": [],   // Avertissements
    "error": []      // Erreurs
  },
  "page": 0,         // Numéro de page (pagination)
  "size": 20,        // Taille de page
  "totalElements": 0 // Nombre total d'éléments
}

Types d'identifiants entreprise

CodeDescriptionFormat
CIT001SIRET14 chiffres (établissement français)
CIT002Numéro de TVAIdentifiant intracommunautaire (ex: FR12345678901)

Indicateurs de conformité

CodeLibelléDescription
I001Obligation de vigilanceIndicateur de conformité au devoir de vigilance

Raisons d'arrêt de dossier

CodeDescription
OUTOFBUSINESSEntreprise fermée ou radiée
EXPIRATIONDossier expiré
STOPREQUESTArrêt demandé manuellement
UNKNOWNRaison inconnue

Codes d'erreur HTTP

CodeStatutDescription
200OKRequête traitée avec succès
400Bad RequestRequête mal formée ou paramètres invalides
401UnauthorizedToken manquant ou invalide
403ForbiddenAccès refusé à la ressource
404Not FoundRessource non trouvée
429Too Many RequestsLimite de requêtes dépassée
500Internal Server ErrorErreur interne du serveur
503Service UnavailableService temporairement indisponible

Format des messages d'erreur

Error Response
{
  "timestamp": "2024-01-15T09:06:15.245+0000",
  "status": 404,
  "error": "Not Found",
  "message": "Dossier not found with id: 99999",
  "path": "/api/v1/account/12345/dossiers/99999"
}

Support technique

Email

Pour toute question technique

api@eattestationscom.zohodesk.eu

Status

Disponibilité des services

status.aprovall.com

Nouvelle API

Migrez vers l'API EDGE

Documentation EDGE
Rappel : Cette API v1.1 est obsolète. Pour les nouvelles intégrations ou pour bénéficier des dernières fonctionnalités, veuillez utiliser l'API EDGE.