NAV Navbar
shell Java Javascript Python Go php

API REST/Json e-Attestations (v1.1.0)

PUBLIC - e-Attestations - Oct. 2019

Bienvenue !

##-----------------------------------------------------------------------------------------------
# e-Attestations.com Copyright (c) Since 2007
# All right reserved/Tous droits réservés
#                   _   _            _        _   _                                      
#              /\  | | | |          | |      | | (_)                                     
#   ___       /  \ | |_| |_ ___  ___| |_ __ _| |_ _  ___  _ __  ___   ___ ___  _ __ ___  
#  / _ \  __ / /\ \| __| __/ _ \/ __| __/ _` | __| |/ _ \| '_ \/ __| / __/ _ \| '_ ` _ \ 
# |  __//__ / ____ \ |_| ||  __/\__ \ || (_| | |_| | (_) | | | \__ \| (_| (_) | | | | | |
#  \___/   /_/    \_\__|\__\___||___/\__\__,_|\__|_|\___/|_| |_|___(_)___\___/|_| |_| |_|
##-----------------------------------------------------------------------------------------------

L'API REST/Json e-Attestations est utilisée pour interfacer un système d'information 'client' à la plate-forme d'e-Attestations suivant le protocole HTTP.

REST (Representational State Transfer) ou RESTful est un style d'architecture permettant de construire des applications (Web, Intranet, Web Service) en exploitant des points terminateurs (des endpoints urls) et référençant des ressources à exploiter suivant les verbes du protocole HTTP (GET, POST, PUT, DELETE etc...).

Notre API contient des URL prévisibles orientées ressources, accepte les corps de requête codés au format JSON, renvoie les réponses codées JSON et utilise les codes de réponse HTTP standard, l'authentification et les verbes.

Les applications 'clientes' utilisant l'API REST e-Attestations enrichisent le Système d'Information du client avec le catalogue des données et services d'e-Attestations de façon sécurisée et très souple.

L'API peut également être utilisée par les intégrateurs, éditeurs logiciels, des solutions SAAS ou des connecteurs.

Versions

L'API REST/Json e-Attestations est actuellement en V1.1 et est proposée à l'ensemble des partenaires et clients e-Attestations.

L'API REST/Json e-Attestations évolue régulièrment et des versions ultérieures seront mise en ligne sans interruption de service.

Notre équipe technique apporte un soin tout particulier à ne pas propovoquer de regression ou de rupture.

Objectifs de cette documentation

Collection Postman

Exemple d'utilisation de newman

 npx newman run "EA_API_REST.postman_collection.json" \
 --global-var username="<user>" \
 --global-var password="<password>" \
 --global-var server_url="https://rs.test-e-attestations.com"

Pour aller encore plus vite et faciliter l'intégration et l'exploration de notre API nous fournissons une collection Postman que vous pouvez importer dans postman et tester rapidement.

Vous devrez définir quelques variables (user, password et server_url) pour exploiter cette suite de test.

Vous pouvez aussi explorer chacun des scenarios pour foncionnellement comprendre l'usage possible de l'API.

Vous pouvez télécharger Postman via ce lien ou utiliser newman via ce lien.

Le support Tech'Desk e-Attestations

Un système de ticketing et de support TECHNIQUE dédié au API et WebServices e-Attestations où poster questions et demandes de mise en place.

Pour créer un ticket envoyez simplement un email à l'adresse api@eattestationscom.zohodesk.eu

Cette plateforme sécurisée vous permet aussi de partager dans votre organisation les tickets de support.

Note : les users et mots de passe de connexion ne sont fournis que dans le Tech'Desk.

Environnements

L'accès aux environnements est autorisé auprès d'e-Attestations.com et l'obtention d'un couple user/mot de passe transmis de façon sécurisée grace au Tech'Desk. Merci d'adresser vos demandes de user et mot de passe via ce biais uniquement (aucune partage de mot de passe par email).

e-Attestations met à disposition deux environnements :

Environnement URL
TEST https://rs.test-e-attestations.com/api/v1/
PRODUCTION https://rs.e-attestations.com/api/v1/

Disponibilité des services eAttestations

Une page de status et d'information sur la disponibilité des services eAttestations est disponible ici :

https://status.e-attestations.com

Nous vous invitons à souscrire aux mises à jour afin d'être informés.

Format des réponses

Format des réponses

{
  content: [
    {
      "companyIdType": "string",
      "companyIdValue": "string",
      "thirdpartyCode": "string"
    }],
  messages: {
    warning: [
      {
        code: "W001",
        message: "La clé d'API expire dans 3 jours"
      }
    ]
  }
}

Les réponses sont au format JSON composées des attributs optionnels suivants:

Pour plus de détails lisez la section Schemas et plus spécifiquement sur le format des Messages.

Message d'erreur protocolaire

{
    "timestamp": "2019-02-05T09:06:15.245+0000",
    "status": 404,
    "error": "Not Found",
    "message": "No message available",
    "path": "/api/v1/account/1234567/876543"
}

Nous avons développé un contrat d'interface (présenté ci dessus) qui se veut le plus pratique pour le développeur. Un format 'standard' de message d'erreur protocolaire est aussi renvoyé dans le cas :

Encoding

L'API REST doit être utilisée et consommée en UTF8.

Sécurité

OpenID Connect (OIDC)

L'API REST e-Attestations utilise OpenID Connect (OIDC) pour identifier et authentifier les clients. Toute requête vers l'API doit obligatoirement inclure un Token (Json Web Token) valide.

Ce dernier doit être envoyé dans le header 'Authorization' (cf. l'exemple qui suit).

Si l'header n'est pas renseigner la requête sera considérée comme non authentifiée (HTTP code 401).

Plus d'informations sur OpenID Connect et JWT sur :

Les échanges sont sécurisés par un chiffrement SSL/TLS. Le certificat public 'e-attestations.com' supporte les protocoles TLS depuis le 1.0, 1.1 jusqu'au 1.2 pour s'adpater à la diversité de configuration de nos clients.

Obtenir un JSON Web Token

Obtenir un JWT

curl -X POST \
  https://auth.test-e-attestations.com/auth/realms/eat_realm/protocol/openid-connect/token \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'cache-control: no-cache' \
  -d 'client_id=ea-api-edge' \
  -d 'username=<username>' \
  -d 'password=<password>' \
  -d 'grant_type=password'

L'obtention d'un token JWT repose sur l'envoi d'un requête de type POST avec transmission des user, mot de passe et quelques paramètres complémentaires au serveur d'authentification.

Vous devez transmettre une requete au format application/x-www-form-urlencoded et portant les paramètres suivants, tous obligatoires :

Le serveur d'authentification renverra un mot JSON dans lequel il faut préserver access_token.

Ce token est temporaire et vous devrez en obtenir un nouveau dès qu'il sera périmé.

Vous pouvez aussi demander un token avant chaque requete, mais ce n'est pas forcément utile ou performant.

sequenceDiagram participant Client participant API_Server participant Authorizer Client->Authorizer: Get/Renew Token loop get/renew token Authorizer->Authorizer: Verify credentials (renew JWT) end Authorizer-->Client: Retrieve JWT Client->API_Server: Request + Authorization Bearer Note right of API_Server: Check JWT
and subscription API_Server-->Client: Response

Réponse

{
    "access_token":"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI0V19kYjFzUmpISTc3SGc0SkRWclVLQXpaQlBnZjlpY2ZDcU5vQUxOZWhNIn0.eyJqdGkiOiI0ZGExNjE1NC04ZjQyLTQyNzQtOTM4Ny0wOGJiODk4MmE3MTMiLCJleHAiOjE1NTQyOTgyNTgsIm5iZiI6MCwiaWF0IjoxNTU0Mjk2NDU4LCJpc3MiOiJodHRwczovL2F1dGguZGV2LWUtYXR0ZXN0YXRpb25zLmNvbS9hdXRoL3JlYWxtcy9lYXRfcmVhbG0iLCJhdWQiOiJhY2NvdW50Iiwic3ViIjoiYzg0OGFiYmItYTIyOC00MmMxLWFkNzAtYjJiMDEwYzhlODUxIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiZWEtYXBpLWVkZ2UiLCJhdXRoX3RpbWUiOjAsInNlc3Npb25fc3RhdGUiOiI5YmEzYWFmNC0zYjU0LTQ5ZTctOTJiMC0xOTkwMGQxNWE5ZWIiLCJhY3IiOqsdqsdsdqsdqsdsaW5lX2FjY2VzcyIsInVtYV9hdXRob3JpemF0aW9uIiwiQURNSU4iLCJVU0VSIl19LCJyZXNvdXJjZV9hY2Nlc3MiOnsiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiJwcm9maWxlIGVtYWlsIiwiYWNjb3VudF9pZHMiOiIxMTg0NjYiLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwibmFtZSI6IlZpbmNlbnQgREFHT1VSWSIsInByZWZlcnJlZF91c2VybmFtZSI6InYuZGFnb3VyeUBlLWF0dGVzdGF0aW9ucy5jb20iLCJnaXZlbl9uYW1lIjoiVmluY2VudCIsImZhbWlseV9uYW1lIjoiREFHT1VSWSIsImVtYWlsIjoidi5kYWdvdXJ5QGUtYXR0ZXN0YXRpb25zLmNvbSJ9.c-smWPif1YT9dKicAAJSsNwI-xCtZWV-r6QqYFSvkgHhPsgHc0gDLenMfQBgYPN_0jKW7FBJmse7fgAB4dnrqCOGM33cQ2wfYi37aXlDqz8l_aFamkEslGnKxw9QDOYSMQz52dD34yXQZGl0OxXE01PAquqKUEtnVG0Rz2SAB0qU5tAqsdqsdsd-rKpCYwKb_6-WwH2xN1B9lgLahZexprPvH25OXUcPJ0GSXCASpnSMxR3ziiv9AtX3R48rT4T_LTLlrKblT_cdZS-Z_uGgzP0pxT9yfqxSYn05haRLTL_grBDdt31ZIDnxiMFEg2UdDB1wzlJBOuOEmw",
    "expires_in": 1800,
    "refresh_expires_in": 1800,
    "refresh_token":"eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJiYTcxZWMyOC0wOTVkLTRkOWQtOWQwYi1jYjAyMTJmNjczYjcifQ.eyJqdGkiOiI2YmQ2ZThkYS1kOWNjLTRhNzgtODg1NS1iMzMwZWU0NDg1NjEiLCJleHAiOjE1NTQyOTgyNTgsIm5iZiI6MCwiaWF0IjoxNTU0Mjk2NDUqsdqsdqsdqsdOiJodHRwczovL2F1dGguZGV2LWUtYXR0ZXN0YXRpb25zLmNvbS9hdXRoL3JlYWxtcy9lYXRfcmVhbG0iLCJhdWQiOiJodHRwczovL2F1dGguZGV2LWUtYXR0ZXN0YXRpb25zLmNvbS9hdXRoL3JlYWxtcy9lYXRfcmVhbG0iLCJzdWIiOiJjODQ4YWJiYi1hMjI4LTQyYzEtYWQ3MC1iMmIwMTBjOGU4NTEiLCJ0eXAiOiJSZWZyZXNoIiwiYXpwIjoiZWEtYXBpLWVkZ2UiLCJhdXRoX3RpbWUiOjAsInNlc3Npb25fc3RhdGUiOiI5YmqsdqsdsqsdQ5ZTctOTJiMC0xOTkwMGQxNWE5ZWIiLCJyZWFsbV9hY2Nlc3MiOnsicm9sZXMiOlsib2ZmbGluZV9hY2Nlc3MiLCJ1bWFfYXV0aG9yaXphdGlvbiIsIkFETUlOIiwiVVNFUiJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoicHJvZmlsZSBlbWFpbCJ9.fpVVA-G-Fj9MDOB5ZneAGVRhkLk26hgCeZ4dqh3rEHs",
    "token_type": "bearer",
    "not-before-policy": 1550670103,
    "session_state": "9ba3aaf4-3b54-49e7-92b0-19900d15a9eb",
    "scope": "profile email"
}

URLs d'authentification

Pour chaque environnement, une URL spécifique vous permet de récupérer le JWT :

Utilisation du JSON Web Token

La propriété "access_token" du Json Web TOKEN (JWT) est à utiliser dans tous les requetes.

Elle doit être placée dans un header 'Authorize: Bearer {access_token}'.

Authorization: Bearer TOKEN

Utilisation du JWT

curl -X GET \
  https://api.e-attestations.com/v4/account/97862/dossiers \
    -H "Authorization: Bearer <JWT_TOKEN>"

Ressources

Compte ("account")

Exemple de contenu "account_ids" du token JWT

{
  "name": ".....",
  "account_ids": "98545"
}

Exemple de contenu de '/account'

{
    "content": [
        {
            "id": 34345345,
            "creation": "2015-03-13T14:45:07.701",
            "account": "CPTDO4F2789F06D8EDF146",
            "name": "ENTREPRISE FICIVE",
            "company": "ENTREPRISE FICTIVE",
            "maxDossiers": 500,
            "subscriptionDate": "2018-09-01T16:41:56.151235",
            "subscriptionStatus": "ACTIVE"
        }
    ]
}

Le compte e-Attestations donneur d'ordres et souscripteur au service.

Chaque compte dispose d'un identifiant de compte unique avec un identifiant.

Par construction, toutes les requêtes doivent obligatoirement inclure l'identifiant du client dans l'URL d'appel à l'exception du point terminateur /account pour obtenir les informations sur votre identifiant du compte.

Les urls sont ainsi toutes prefixées par /account/{account_id}/**

L'identifiant de compte (de type string) est renvoyé dans le payload du token JWT, comme illustré ci-dessous:

De façon complémentaire vous pouvez récupérer votre identifiant de compte via l'url /account (sans aucun paramètre).

Les données du TOKEN seront utilisées pour restituer et vérifier votre compte et la souscription au service.

Des informations complémentaires sur votre souscription au service sont aussi restituées.

Tiers ("thirdparties")

Le tiers, le fournisseur, le sous-traitant, etc... est en relation avec le compte donneur d'ordres et fait l'objet de l'évaluation continue au titre de sa conformité, suivant la souscription et/ou les option du compte e-Attestations.

Dans le cadre de cette relation, le compte e-Attestations utilisateur de l'API REST/JSON est aussi appelé compte "donneur d'ordres".

Dossiers ("dossiers")

Le dossier est une materialisation de la relation donneur d'ordres / tiers. Un dossier comporte des demandes (exigences de conformité) formulées par le donneur d'ordres auxquelles correspondent des réponses le plus souvent automatiquement apportée par le plateforme e-Attestations ou par le tiers (fichiers, signatures, autres données ...).

La référence d'un dossier est une donnée renseignée par le donneur d'ordres lors de la création d'un dossier ou la modification d'un dossier. La référence d'un dossier doit être unique pour un couple tiers/donneur d'ordres. Autrement dit, un tiers ne peut avoir plus d'un dossier portant la même référence par donneur d'ordres.

Cette référence de dossier peut être modifiée à n'importe quel moment sauf s'il a été archivé.

Exigences ("requirements")

L'exigence est un ensemble de demandes relevant généralement de la captation d'une preuve pour domaine spécifique (légale, compliance 'métier', iban, qualifications professionnelles, etc...).

La preuve est apportée automatiquement par e-Attestations dans la plus part des cas.

Dans le cas où elle n'est pas déjà présente et valide (durée de validité de la preuve), le tier sera alors mis à contribution pour qu'il apporte la preuve demandée au titre de l'exigence via une application gratuite.

Cette réponse peut être :

Documents ("documents")

Les documents sont les éléments constituant une preuve répondant à la demande d'exigence de conformité. Le document est suivant un 'type de document' pour lequel une réponse est apportée par e-Attestations ou le tiers lui même.

Un document peut être une signature, une donnée, un ou plusieurs fichiers, un ensemble de données issues d'un formulaire à remplir par le déclarant.

Un document a une validité et donc une péremption que la plateforme e-Attestations surveille en continu.

Fichiers ("files")

Les fichiers attachés aux documents d'exigence de conformité sont majoritairement des PDF.

Comment créer un dossier de suivi ?

Création d'un dossier

curl --request POST \
  --url https://rs.test-e-attestations.com/api/v1/account/119631/dossiers \
  --header 'Authorization: Bearer {{token}}' \
  --header 'Content-Type: application/json' \
  --data '{\n  "companyIdType": "CIT001",\n  "companyIdValue": "50382936800045",\n  "thirdpartyCode": "",\n  "dossierReference": "DOSSIER_REST_9",\n  "description": "Dossier #5 de test importé depuis l'\''API REST",\n  "purchasingCategory": "",\n  "expirationDate": "2020-05-31",\n  "requiredDocuments": [ "JUSTIF_IMM" ],\n  "thirdpartyEmail": ["v.dagoury@e-attestations.com"],\n  "userInCharge": [\n    "v.dagoury@e-attestations.com"\n  ]\n}'

La création de dossier de suivi de la conformité des tiers est au coeur du processus de recrutement d'un tiers pour lequel vous souhaitez suivre la conformité et la principale étape permettant de démarrer le processus de suivi.

Elle est aussi la phase de recrutement de votre tiers qui sera alors informé par email qu'un dossier de suivi est encours.

Un workflow continu démarre alors pour le tiers qui devra alors déposer les preuves exigées par votre dossier.

Lors de la création d'un dossier le workflow déclenché est asynchrone et se décrit ainsi :

Mais aussi :

Le endpoint POST /account/{accountId}/dossiers permet de créer un dossier pour un tiers (thirdparty).

Vous trouverez toutes les informations complémentaire sur ce endpoint dans la section Importer un dossier.

Le traitement pouvant durer plusieurs minutes la réponse est asynchrone, comme illustré dans le schéma ci-dessous.

Lors de la création un identifiant de suivi du traitement de l'import (processId) est renvoyé. Il vous faudra l'utiliser pour connaître le résultat de l'import de façon asynchrone.

Le endpoint GET /account/{accountId}/dossier/process/{processId} permet de suivre le résultat de l'import grâce à l'identifiant du process d'import renvoyé lors de l'appel "Création d'un dossier" (POST /account/{accountId}/dossiers).

graph TB A((Start)) A --> B(POST to 'dossier' returns processId) B --processId--> C(Call Get import result endpoint for processId) C --> D{Status} D --complete=true AND success=true--> E D --complete=true AND success=false--> R D --complete=false--> C E((End)) R(Error Handling)

Il est important de bien vérifier les paramètres d'appel et de bien prendre en compte les codes d'erreurs et leur signification.

Autres définitions

Codes de type d'identifiant de compagnie

Lors de l'import ou de la recherche, une entreprise/un établissement et plus généralement une personne morale est indentifiée dans e-Attestations à l'aide d'un code qui peut être de 2 types :

L'API e-Attestations propose deux codes pour ces types d'identifiants :

Type Description
CIT001 SIRET : l'identifiant utilisé en France pour qualifier les établissements, sous forme d'un nombre de 14 chiffres vérifiant l'algorithme de Luhn Wikipedia
CIT002 Numéro TVA : identifiant utilisé par l'Union Européenne pour les entreprises soumises à l'impôt sur les sociétés. Plus d'informations sur Wikipedia

Des types d'identifiants nouveaux pourront être implémenté au fil des évolutions de l'API.

Les recherches de tiers ne sont pas limitées à ces codes de types d'identifiant.

Indicateur de complétude

L'indicateur de complétude e-Attestations permet de renseigner de façon simple que le tiers a répondu entièrement aux exigences ('requirements') au titre de la conformité exigée pour le dossier concerné.

Exemple : un dossier de surveillance d'un tiers est jugé complet pour l'indicateur "obligation de vigilance", si tous les documents relatifs à l'obligation de vigilance sont présents et validés.

Code indicateur Description
I001 Obligation de vigilance

Compte

Relatif au compte eAttestations

Information du compte

Code samples

# You can also use wget
curl -X GET https://rs.e-attestations.com/api/v1/account \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

URL obj = new URL("https://rs.e-attestations.com/api/v1/account");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://rs.e-attestations.com/api/v1/account',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://rs.e-attestations.com/api/v1/account', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://rs.e-attestations.com/api/v1/account", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://rs.e-attestations.com/api/v1/account', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET /account

Restituer les informations du compte associé au TOKEN validé dans la requete.

Les informations détaillent la souscription au service.

Example responses

200 Response

{
  "content": {
    "id": 0,
    "account": "string",
    "company": "string",
    "creation": "2019-08-24T14:15:22Z",
    "maxDossiers": 0,
    "name": "string",
    "subscriptionDate": "2019-08-24T14:15:22Z",
    "subscriptions": [
      {
        "accountId": 0,
        "endSubscriptionDate": "2019-08-24T14:15:22Z",
        "key": "string",
        "startSubscriptionDate": "2019-08-24T14:15:22Z",
        "status": "string"
      }
    ]
  },
  "messages": {
    "info": [
      {
        "code": "string",
        "message": "string"
      }
    ],
    "warning": [
      {
        "code": "string",
        "message": "string"
      }
    ],
    "error": [
      {
        "code": "string",
        "message": "string"
      }
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Les informations du compte associé au TOKEN permettent de connaitre l'id du compte et la souscription au service. Inline
400 Bad Request Requête mal formée None
401 Unauthorized Authorisation non comprise ou invalide None
404 Not Found Aucun compte avec cet identifiant (accountId). Inline
5XX Unknown Erreur inattendue None

Response Schema

Status Code 200

La réponse possède une propriété 'content' contenant les statistiques et un attribut optionel messages (info, warn ou error)

Name Type Required Restrictions Description
» content Account false none Contient les informations du compte et de sa souscription.
»» id integer(int64) false none Identifiant du compte. A utiliser dans tous les appels à l'API
»» account string false none Appellation du compte eAttestations
»» company string false none Nom de l'entité légale du compte
»» creation string(date-time) false none Date de création du compte
»» maxDossiers integer(int32) false none Limite en nombre de dossiers
»» name string false none Nom du compte
»» subscriptionDate string(date-time) false none Date de souscription au service
»» subscriptions [Subscription] false none none
»»» Subscription Subscription false none none
»»»» accountId integer(int64) false none Le compte lié à la souscription.
»»»» endSubscriptionDate string(date-time) false none Date de fin de la souscription.
»»»» key string false none Code de la souscription
»»»» startSubscriptionDate string(date-time) false none Date de début de la souscription.
»»»» status string false none Statut de la souscription.
» messages Messages false none Messages d'une réponse à un appel de l'API REST / JSON. Il contient des messages d'informations, d'avertissement et d'erreurs.
»» info [Message] false none Tableau contenant les messages d'information.
»»» code string false none Code du message.
»»» message string false none texte du message.
»» warning [Message] false none Tableau contenant les messages d'avertissement.
»» error [Message] false none Tableau contenant les messages d'erreurs.

Status Code 404

Name Type Required Restrictions Description
» messages Messages false none Messages d'une réponse à un appel de l'API REST / JSON. Il contient des messages d'informations, d'avertissement et d'erreurs.
»» info [Message] false none Tableau contenant les messages d'information.
»»» code string false none Code du message.
»»» message string false none texte du message.
»» warning [Message] false none Tableau contenant les messages d'avertissement.
»» error [Message] false none Tableau contenant les messages d'erreurs.

Statistiques globales

Code samples

# You can also use wget
curl -X GET https://rs.e-attestations.com/api/v1/account/{accountId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

URL obj = new URL("https://rs.e-attestations.com/api/v1/account/{accountId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://rs.e-attestations.com/api/v1/account/{accountId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://rs.e-attestations.com/api/v1/account/{accountId}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://rs.e-attestations.com/api/v1/account/{accountId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://rs.e-attestations.com/api/v1/account/{accountId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET /account/{accountId}

Restituer les statistiques globales du compte. Les statistiques concernent uniquement les tiers suivis. Un tiers suivi est un tiers pour lequel il existe au moins un dossier actif. Les statistiques portent sur les tiers et les dossiers et leurs complétudes.

Parameters

Name In Type Required Description
accountId path integer true Identifiant du compte.

Example responses

200 Response

{
  "content": {
    "numberOfThirdparties": 0,
    "numberOfSubscribedThirdparties": 0,
    "numberOfCompleteThirdparties": 0,
    "numberOfDossiers": 0,
    "numberOfCompleteDossiers": 0,
    "listIndicatorsStatistics": [
      {
        "indicatorCode": "string",
        "numberOfThirdparties": 0,
        "numberOfSubscribedThirdparties": 0,
        "numberOfCompleteThirdparties": 0,
        "numberOfDossiers": 0,
        "numberOfCompleteDossiers": 0
      }
    ]
  },
  "messages": {
    "info": [
      {
        "code": "string",
        "message": "string"
      }
    ],
    "warning": [
      {
        "code": "string",
        "message": "string"
      }
    ],
    "error": [
      {
        "code": "string",
        "message": "string"
      }
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Statistiques gloables et statistiques par indicateurs. Un indicateur fait référence à un sous-ensemble de documents requis. E.g. Pour l'indicateur "obligation de vigilance", les statistiques vont porter uniquement sur les documents de l'obligation de vigilance, à savoir l'attestation de vigilance, le justificatif d'immatriculation et la liste des salariés étrangers soumis à autorisation de travail. Inline
400 Bad Request Requête mal formée None
401 Unauthorized Authorisation non comprise ou invalide None
404 Not Found Aucun compte avec cet identifiant (accountId). Inline
5XX Unknown Erreur inattendue None

Response Schema

Status Code 200

La réponse possède une propriété 'content' contenant les statistiques et un attribut optionel messages (info, warn ou error)

Name Type Required Restrictions Description
» content GlobalInformation false none Ce mot JSON contient les statistiques globales et les statistiques par indicateur.
»» numberOfThirdparties integer(int64) false none Le nombre total de tiers du compte.
»» numberOfSubscribedThirdparties integer(int64) false none Le nombre total de tiers inscrits pour un donneur d'ordres.
»» numberOfCompleteThirdparties integer(int64) false none Le nombre total de tiers dont tous les dossiers actifs sont complets. Autrement dit, les tiers qui ont déposé tous les documents requis par ce donneur d'ordres.
»» numberOfDossiers integer(int64) false none Le nombre total de dossiers actifs.
»» numberOfCompleteDossiers integer(int64) false none Le nombre total de dossiers complets. Autrement dit, les dossiers pour lesquels tous les documents requis ont été déposés.
»» listIndicatorsStatistics [StatisticsIndicator] false none Tableau contenant des statistiques par indicateur (E.g. Obligation de vigilance).
»»» Indicateur de statistiques StatisticsIndicator false none Mot Json contenant des statistiques sur un indicateur (E.g. Obligation de vigilance).
»»»» indicatorCode string false none Code de l'indicateur.
»»»» numberOfThirdparties integer(int64) false none Le nombre de tiers du compte donneurs d'ordres restreint sur cet indicateur.
»»»» numberOfSubscribedThirdparties integer(int64) false none Le nombre de tiers inscrits restreints sur cet indicateur.
»»»» numberOfCompleteThirdparties integer(int64) false none Le nombre de tiers dont tous les dossiers sont complets, restreints sur cet indicateur.
»»»» numberOfDossiers integer(int64) false none Le nombre de dossiers du compte, restreints sur cet indicateur.
»»»» numberOfCompleteDossiers integer(int64) false none Le nombre de dossiers complets du compte, restreints sur cet indicateur.
» messages Messages false none Messages d'une réponse à un appel de l'API REST / JSON. Il contient des messages d'informations, d'avertissement et d'erreurs.
»» info [Message] false none Tableau contenant les messages d'information.
»»» code string false none Code du message.
»»» message string false none texte du message.
»» warning [Message] false none Tableau contenant les messages d'avertissement.
»» error [Message] false none Tableau contenant les messages d'erreurs.

Status Code 404

Name Type Required Restrictions Description
» messages Messages false none Messages d'une réponse à un appel de l'API REST / JSON. Il contient des messages d'informations, d'avertissement et d'erreurs.
»» info [Message] false none Tableau contenant les messages d'information.
»»» code string false none Code du message.
»»» message string false none texte du message.
»» warning [Message] false none Tableau contenant les messages d'avertissement.
»» error [Message] false none Tableau contenant les messages d'erreurs.

Tiers

Relatif aux tiers du compte

Liste des tiers

Code samples

# You can also use wget
curl -X GET https://rs.e-attestations.com/api/v1/account/{accountId}/thirdparties \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

URL obj = new URL("https://rs.e-attestations.com/api/v1/account/{accountId}/thirdparties");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://rs.e-attestations.com/api/v1/account/{accountId}/thirdparties',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://rs.e-attestations.com/api/v1/account/{accountId}/thirdparties', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://rs.e-attestations.com/api/v1/account/{accountId}/thirdparties", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://rs.e-attestations.com/api/v1/account/{accountId}/thirdparties', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET /account/{accountId}/thirdparties

Restituer le référentiel tiers du compte. Ce point terminateur permet de récupérer uniquement les informations d'identification des tiers. Pour obtenir des informations plus détaillées sur le tiers, il faudra utiliser le point terminateur (GET '/account/{accountId}/thirdparty/{thirdpartyId}')

Parameters

Name In Type Required Description
accountId path integer true Identifiant du compte.
monitored query boolean false Permet de filtrer sur les tiers suivis (monitored=true) ou non suivis (monitored=false)
companyIdType query string false Type d'identifiant compagnie.
name query string false Le nom du tiers
siren query string false Le siren du tiers (pour les français)
siret query string false Le siret (de l'établissement) du tiers (pour les français)
tva query string false L'identifiant intra communautaire TVA (pour les tiers de l'EU)
companyIdValue query string false Permet de filtrer par identifiant compagnie du tiers. L'identifiant peut être un SIRET ou un Numéro TVA.
stateLastChangeDate query string(date) false Filtre permettant de retourner les tiers dont le statut global a évolué depuis cette date.
thirdpartyGlobalState query boolean false Filtre permettant de retourner les tiers dont l'état de complétude global est "complet" (true) ou "incomplet" (false)
subscriptionState query boolean false Permet de filtrer sur le statut d'inscription d'un tiers. Ce paramètre permet de retourner les tiers inscrits (subscriptionState=true) ou non inscrits (subscriptionState=false)
page query integer false Paramètre de pagination indiquant le numéro de page.
pageSize query integer false Paramètre de pagination indiquant la taille de page souhaité.

Example responses

200 Response

{
  "content": [
    {
      "thirdpartyId": 0,
      "companyIdType": "string",
      "companyIdValue": "string",
      "thirdpartyCode": "string"
    }
  ],
  "page": 0,
  "pageSize": 0,
  "totalElements": 0,
  "messages": {
    "info": [
      {
        "code": "string",
        "message": "string"
      }
    ],
    "warning": [
      {
        "code": "string",
        "message": "string"
      }
    ],
    "error": [
      {
        "code": "string",
        "message": "string"
      }
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Retourne un tableau d'objets JSON. Chaque item contient les informations d'identification d'un tiers (L'identifiant eAttestations du tiers, le type d'identifiant compagnie, l'identifiant compagnie du tiers et le code tiers). Inline
400 Bad Request Requête mal formée None
401 Unauthorized Authorisation non comprise ou invalide None
404 Not Found Aucun compte avec cet identifiant (accountId). Inline
5XX Unknown Erreur inattendue None

Response Schema

Status Code 200

Name Type Required Restrictions Description
» content [ThirdpartyIdentifier] false none [Mot JSON représentant les informations d'identification d'un tiers.]
»» Identifiant tiers ThirdpartyIdentifier false none Mot JSON représentant les informations d'identification d'un tiers.
»»» thirdpartyId integer false none Identifiant eAttestations du tiers. Celui-ci est différent du companyIdValue. Le thirdpartyId est un identifiant technique qui identifie de façon unique le tiers dans la plateforme eAttestations.
»»» companyIdType string false none Type d'identifiant compagnie.
»»» companyIdValue string false none Identifiant compagnie du tiers (SIRET ou TVA intra communautaire).
»»» thirdpartyCode string false none Code tiers. Il s'agit d'un identifiant interne au client.
» page integer false none Numéro de page.
» pageSize integer false none taille de la page
» totalElements integer false none nombre total d'éléments
» messages Messages false none Messages d'une réponse à un appel de l'API REST / JSON. Il contient des messages d'informations, d'avertissement et d'erreurs.
»» info [Message] false none Tableau contenant les messages d'information.
»»» code string false none Code du message.
»»» message string false none texte du message.
»» warning [Message] false none Tableau contenant les messages d'avertissement.
»» error [Message] false none Tableau contenant les messages d'erreurs.

Status Code 404

Name Type Required Restrictions Description
» messages Messages false none Messages d'une réponse à un appel de l'API REST / JSON. Il contient des messages d'informations, d'avertissement et d'erreurs.
»» info [Message] false none Tableau contenant les messages d'information.
»»» code string false none Code du message.
»»» message string false none texte du message.
»» warning [Message] false none Tableau contenant les messages d'avertissement.
»» error [Message] false none Tableau contenant les messages d'erreurs.

Détails d'un tiers

Code samples

# You can also use wget
curl -X GET https://rs.e-attestations.com/api/v1/account/{accountId}/thirdparties/{thirdpartyId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

URL obj = new URL("https://rs.e-attestations.com/api/v1/account/{accountId}/thirdparties/{thirdpartyId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://rs.e-attestations.com/api/v1/account/{accountId}/thirdparties/{thirdpartyId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://rs.e-attestations.com/api/v1/account/{accountId}/thirdparties/{thirdpartyId}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://rs.e-attestations.com/api/v1/account/{accountId}/thirdparties/{thirdpartyId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://rs.e-attestations.com/api/v1/account/{accountId}/thirdparties/{thirdpartyId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET /account/{accountId}/thirdparties/{thirdpartyId}

Permet de restituer les informations détaillées d'un tiers. Sont remontées:

Parameters

Name In Type Required Description
accountId path integer true Identifiant du compte.
thirdpartyId path integer true Identifiant eAttestations du tiers.

Example responses

200 Response

{
  "content": {
    "thirdpartyId": 0,
    "accountId": 0,
    "companyIdType": "string",
    "companyIdValue": "string",
    "thirdpartyCode": "string",
    "monitored": true,
    "name": "string",
    "addressStreet": "string",
    "addressCity": "string",
    "addressPostCode": "string",
    "addressCountryCode": "string",
    "subscriptionState": true,
    "subscriptionDate": "2019-08-24",
    "subscriptionKey": "string",
    "outOfBusiness": true,
    "stateLastChangeDate": "2019-08-24",
    "thirdpartyGlobalState\"": true,
    "acronym": "string",
    "activityCode": "string",
    "activityLabel": "string",
    "capital": 0,
    "capitalCurrency": "string",
    "ceo": "string",
    "datecreation": "2019-08-24",
    "lastBalanceSheetDate": "2019-08-24",
    "legalCategoryCode": "string",
    "legalCategoryLabel": "string",
    "siren": "string",
    "siret": "string",
    "turnover": 0,
    "turnoverCurrency": "string",
    "tva": "string",
    "workforce": 0,
    "thirdpartyUsers": [
      {
        "firstname": "string",
        "lastname": "string",
        "email": "user@example.com",
        "phone": "string"
      }
    ]
  },
  "messages": {
    "info": [
      {
        "code": "string",
        "message": "string"
      }
    ],
    "warning": [
      {
        "code": "string",
        "message": "string"
      }
    ],
    "error": [
      {
        "code": "string",
        "message": "string"
      }
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Retourne un mot JSON contenant les informations détaillées du tiers. Inline
400 Bad Request Requête mal formée None
401 Unauthorized Authorisation non comprise ou invalide None
404 Not Found Aucun compte avec cet identifiant (accountId) ou aucun tiers avec cet identifiant(thirdpartyId). Inline
5XX Unknown Erreur inattendue None

Response Schema

Status Code 200

Name Type Required Restrictions Description
» content ThirdpartyDetails false none Mot JSON représentant les détails d'un tiers. Les informations constituant l'adresse ainsi que la dénomination sociale du tiers sont fournis par notre Data Provider à partir de l'identifiant du tiers.
»» thirdpartyId integer(int64) false none Identifiant eAttestations du tiers. Celui-ci est différent du companyIdValue. Le thirdpartyId est un identifiant technique qui identifie de façon unique le tiers dans la plateforme eAttestations.
»» accountId integer(int64) false none Identifiant du compte.
»» companyIdType string false none Type d'identifiant compagnie.
»» companyIdValue string false none Identifiant compagnie du tiers (SIRET ou TVA intra communautaire).
»» thirdpartyCode string false none Code tiers. Il s'agit d'un identifiant interne au client.
»» monitored boolean false none Indique si le tiers est suivi. Cet attribut est à true si le tiers est suivi, false sinon. Un tiers est suivi dès lors qu'il a un dossier suivi.
»» name string false none Dénomination sociale du tiers. Celle-ci est automatiquement fournie par notre data provider à partir de l'identifiant du tiers (Numéro Siret ou Numéro TVA)
»» addressStreet string false none Elément "Rue" de l'adresse du tiers.
»» addressCity string false none Elément "Ville" de l'adresse du tiers.
»» addressPostCode string false none Elément "Code postal" de l'adresse du tiers.
»» addressCountryCode string false none Elément "Pays" de l'adresse du tiers.
»» subscriptionState boolean false none Statut d'inscription du tiers. True si le tiers est inscrit, False sinon.
»» subscriptionDate string(date) false none Date d'inscription du tiers.
»» subscriptionKey string false none Clé d'inscription. Elle est demandée au tiers au moment de son adhésion. Elle doit lui être communiquée lors de relances d'inscription.
»» outOfBusiness boolean false none Indique si l'établissement est fermé. True si c'est le cas, False sinon.
»» stateLastChangeDate string(date) false none Dernière date à laquelle l'état global du tiers a changé.
»» thirdpartyGlobalState" boolean false none Etat de complétude global du tiers. Une valeur true (Complet) signifie que tous les dossiers sont dans l'état complet. Une valeur false (Incomplet) signifie qu'au moins un ou plusieurs dossiers sont dans l'état incomplet.
»» acronym string false none Acronym du tiers
»» activityCode string false none Code APE de l'activité du tiers
»» activityLabel string false none Libellé APE de l'activité du tiers
»» capital integer(int64) false none Capital connu pour le tiers
»» capitalCurrency string false none Devise du capital connu pour le tiers
»» ceo string false none Dirigeant
»» datecreation string(date) false none Date de création du tiers dans la base eAttestations
»» lastBalanceSheetDate string(date) false none Dernier date du résultat d'exploitation connu
»» legalCategoryCode string false none Code jurisique d'activité
»» legalCategoryLabel string false none Libellé jurisique d'activité
»» siren string false none Identifiant SIREN (pour les français)
»» siret string false none Identifiant SIRET de l'établissement (pour les français)
»» turnover number(double) false none Dernier chiffre d'affaire connu du tiers
»» turnoverCurrency string false none Devise du dernier chiffre d'affaire connu du tiers
»» tva string false none Identifiant intra communautaire
»» workforce integer(int32) false none Effectifs du tiers
»» thirdpartyUsers [UserInformation] false none Informations sur les utilisateurs du compte tiers.
»»» Informations utilisateur UserInformation false none Mot JSON contenant des informations sur les utilisateurs du tiers.
»»»» firstname string false none Prénom de l'utilisateur.
»»»» lastname string false none Nom de l'utilisateur.
»»»» email string(email) false none E-mail de l'utilisateur.
»»»» phone string false none Numéro de téléphone de l'utilisateur au format international.
» messages Messages false none Messages d'une réponse à un appel de l'API REST / JSON. Il contient des messages d'informations, d'avertissement et d'erreurs.
»» info [Message] false none Tableau contenant les messages d'information.
»»» code string false none Code du message.
»»» message string false none texte du message.
»» warning [Message] false none Tableau contenant les messages d'avertissement.
»» error [Message] false none Tableau contenant les messages d'erreurs.

Status Code 404

Name Type Required Restrictions Description
» messages Messages false none Messages d'une réponse à un appel de l'API REST / JSON. Il contient des messages d'informations, d'avertissement et d'erreurs.
»» info [Message] false none Tableau contenant les messages d'information.
»»» code string false none Code du message.
»»» message string false none texte du message.
»» warning [Message] false none Tableau contenant les messages d'avertissement.
»» error [Message] false none Tableau contenant les messages d'erreurs.

Dossiers

Relatif aux dossiers du compte

Importer un dossier

Code samples

# You can also use wget
curl -X POST https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

URL obj = new URL("https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

const inputBody = '{
  "companyIdType": "string",
  "companyIdValue": "string",
  "thirdpartyCode": "string",
  "dossierReference": "string",
  "description": "string",
  "purchasingCategory": "string",
  "expirationDate": "2019-08-24",
  "requiredDocuments": [
    "string"
  ],
  "thirdpartyEmail": [
    "user@example.com"
  ],
  "userInCharge": [
    "user@example.com"
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

POST /account/{accountId}/dossiers

Permet de créer un dossier pour un tiers. Un dossier permet à un donneur d'ordre de suivre un tiers sur un certain nombre de pièces demandées (appelées également Requirements).

Si le tiers n'existe pas, celui-ci est créé dans la plateforme eAttestations.

L'import de dossier est un processus asynchrone. Cet asynchronisme est induit par le processus (lui même de nature asynchone) de qualification des informations du tiers par notre Data Provider.

Ce point terminateur lance le processus d'import et renvoie un identifiant de process (processId). Le traitement pouvant durer plusieurs minutes, ainsi pour suivre l'état d'avancement du processus d'import et pour connaître son résultat, un client peut utiliser le point terminateur (GET '/account/{accountId}/dossier/{processId}') décrit ci-dessous.

Body parameter

{
  "companyIdType": "string",
  "companyIdValue": "string",
  "thirdpartyCode": "string",
  "dossierReference": "string",
  "description": "string",
  "purchasingCategory": "string",
  "expirationDate": "2019-08-24",
  "requiredDocuments": [
    "string"
  ],
  "thirdpartyEmail": [
    "user@example.com"
  ],
  "userInCharge": [
    "user@example.com"
  ]
}

Parameters

Name In Type Required Description
accountId path integer true Identifiant du compte.
body body NewDossier true Le dossier à importer. Contient les informations du dossier, mais également les informations d'identification du tiers.

Example responses

200 Response

{
  "content": {
    "processId": "string"
  },
  "messages": {
    "info": [
      {
        "code": "string",
        "message": "string"
      }
    ],
    "warning": [
      {
        "code": "string",
        "message": "string"
      }
    ],
    "error": [
      {
        "code": "string",
        "message": "string"
      }
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Renvoie un mot JSON contenant l'identifiant du process d'import. Inline
400 Bad Request Requête mal formée None
401 Unauthorized Authorisation non comprise ou invalide None
404 Not Found Aucun compte avec cet identifiant (accountId). Inline
5XX Unknown Erreur inattendue None

Response Schema

Status Code 200

Name Type Required Restrictions Description
» content DossierProcess false none Mot Json contenant l'identifiant du process d'import de dossier.
»» processId string false none Identifiant du process d'import de dossier.
» messages Messages false none Messages d'une réponse à un appel de l'API REST / JSON. Il contient des messages d'informations, d'avertissement et d'erreurs.
»» info [Message] false none Tableau contenant les messages d'information.
»»» code string false none Code du message.
»»» message string false none texte du message.
»» warning [Message] false none Tableau contenant les messages d'avertissement.
»» error [Message] false none Tableau contenant les messages d'erreurs.

Status Code 404

Name Type Required Restrictions Description
» messages Messages false none Messages d'une réponse à un appel de l'API REST / JSON. Il contient des messages d'informations, d'avertissement et d'erreurs.
»» info [Message] false none Tableau contenant les messages d'information.
»»» code string false none Code du message.
»»» message string false none texte du message.
»» warning [Message] false none Tableau contenant les messages d'avertissement.
»» error [Message] false none Tableau contenant les messages d'erreurs.

Recherche dossiers (multi-critères)

Code samples

# You can also use wget
curl -X GET https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

URL obj = new URL("https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET /account/{accountId}/dossiers

Permet de restituer les informations d'un ou plusieurs dossiers. Il est possible de combiner les filtres disponibles afin d'affiner le résultat.

Parameters

Name In Type Required Description
accountId path integer true Identifiant du compte.
thirdpartyId query integer false Identifiant eAttestations du tiers. Celui-ci est différent du companyIdValue. Le thirdpartyId est un identifiant technique qui identifie de façon unique le tiers dans la plateforme eAttestations.
companyIdType query string false Permet de filtrer par type d'identifiant compagnie du tiers.
companyIdValue query string false Permet de filtrer par l'identifiant compagnie du tiers (SIRET ou Numéro TVA).
thirdpartyCode query string false Code tiers. Il s'agit d'un identifiant interne au client.
dossierReference query string false Permet de filtrer par référence du dossier. La référence de dossier étant unique pour un tiers/dossier, si ce paramètre est renseigné, au maximum un dossier sera renvoyé.
monitored query boolean false Filtre permettant de retourner les dossiers suivis (monitored=true) ou non suivis (monitored=false)
stateLastChangeDate query string(date) false Filtre permettant de ne retourner que les dossiers dont l'état de complétude a changé depuis une date donnée.
siren query string false Le siren du tiers recherché
siret query string false Le siren du tiers recherché
tva query string false Le numéro TVA du tiers recherché
page query integer false Paramètre de pagination indiquant le numéro de page.
pageSize query integer false Paramètre de pagination indiquant la taille de page souhaité.

Example responses

200 Response

{
  "content": [
    {
      "dossierId": 0,
      "accountId": 0,
      "thirdpartyId": 0,
      "companyIdType": "string",
      "companyIdValue": "string",
      "thirdpartyCode": "string",
      "companyCountryCode": "string",
      "monitored": true,
      "dossierReference": "string",
      "description": "string",
      "purchasingCategory": "string",
      "startingDate": "2019-08-24",
      "expirationDate": "2019-08-24",
      "stoppingDate": "2019-08-24",
      "stoppingReason": "string",
      "state": true,
      "stateLastChangeDate": "2019-08-24",
      "indicators": [
        {
          "indicatorCode": "string",
          "state": true,
          "lastChangeDate": "2019-08-24"
        }
      ],
      "documents": [
        {
          "documentId": 0,
          "documentCode": "string",
          "name": "string",
          "requestDate": "2019-08-24",
          "present": true,
          "listFileInformation": [
            {
              "fileId": 0,
              "uploadDate": "2019-08-24",
              "fileUUID": "string",
              "fileCreation": "2019-08-24",
              "fileSize": 0,
              "expirationDate": "2019-08-24"
            }
          ]
        }
      ]
    }
  ],
  "messages": {
    "info": [
      {
        "code": "string",
        "message": "string"
      }
    ],
    "warning": [
      {
        "code": "string",
        "message": "string"
      }
    ],
    "error": [
      {
        "code": "string",
        "message": "string"
      }
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Retourne un tableau d'objets JSON. Chaque item contient les informations d'un dossier. Inline
400 Bad Request Requête mal formée None
401 Unauthorized Authorisation non comprise ou invalide None
404 Not Found Aucun compte avec cet identifiant (accountId). Inline
5XX Unknown Erreur inattendue None

Response Schema

Status Code 200

Name Type Required Restrictions Description
» content [Dossier] false none [Mot JSON représentant un dossier.]
»» Dossier Dossier false none Mot JSON représentant un dossier.
»»» dossierId integer(int64) false none Identifiant du dossier.
»»» accountId integer(int64) false none Identifiant du compte.
»»» thirdpartyId integer(int64) false none Identifiant eAttestations du tiers. Celui-ci est différent du companyIdValue. Le thirdpartyId est un identifiant technique qui identifie de façon unique le tiers dans la plateforme eAttestations.
»»» companyIdType string false none Type d'identifiant compagnie.
»»» companyIdValue string false none Identifiant compagnie du tiers (SIRET ou TVA intra communautaire).
»»» thirdpartyCode string false none Code tiers. Il s'agit d'un identifiant interne au client.
»»» companyCountryCode string false none Code pays du tiers. Il s'agit d'un code alpha-3 du standard ISO 3166-1.
»»» monitored boolean false none Indique si le dossier est suivi (True) ou non suivi (False)
»»» dossierReference string false none Référence du dossier.
»»» description string false none Description du dossier.
»»» purchasingCategory string false none Catégorie achat du dossier.
»»» startingDate string(date) false none Date de début de suivi du dossier.
»»» expirationDate string(date) false none Date d'expiration du suivi du dossier. A partir de cette date, le dossier passe automatiquement à l'état "non suivi".
»»» stoppingDate string(date) false none Date d'arrêt de suivi du dossier.
»»» stoppingReason string false none Détails concernant l'arrêt du dossier: OUTOFBUSINESS (entreprise radiée), EXPIRATION (le dossier a atteint sa date d'expiration), STOPREQUEST (une demande d'arrêt a été faite de manière explicite et immédiate), UNKNOWN (information absente). Non nul uniquement si dossier désactivé.
»»» state boolean false none Indicateur de complétude du dossier. True si l'ensemble des documents demandés sont présents, false sinon.
»»» stateLastChangeDate string(date) false none Date du dernier changement de l'état de complétude du dossier.
»»» indicators [DossierIndicator] false none Liste des indicateurs du dossier.
»»»» Indicateur de dossier DossierIndicator false none Un indicateur un dossier.
»»»»» indicatorCode string false none Code de l'indicateur
»»»»» state boolean false none État de l'indicateur. True si l'ensemble des documents demandés de l'indicateur sont présents, false sinon.
»»»»» lastChangeDate string(date) false none Date du dernier changement de l'état de l'indicateur.
»»» documents [Document] false none Liste des documents demandés pour le dossier.
»»»» Document ou preuve demandée pour le dossier Document false none Une exigence comme un document demandé, une signature, une donnée à apporter au dossier
»»»»» documentId integer(int64) false none Identifiant unique du document.
»»»»» documentCode string false none Code qui identifie le document.
»»»»» name string false none Nom du document.
»»»»» requestDate string(date) false none Date à laquelle le document a été demandé.
»»»»» present boolean false none Présence ou non du document. True si document présent, False sinon.
»»»»» listFileInformation [FileInformation] false none Informations du (ou des) fichiers présents pour ce document.
»»»»»» Information du document présent FileInformation false none Informations d'un fichier déposé pour un document ou une preuve.
»»»»»»» fileId integer(int64) false none Identifiant du fichier.
»»»»»»» uploadDate string(date) false none Date de dépôt du document.
»»»»»»» fileUUID string(string) false none Identifiant UUID du fichier.
»»»»»»» fileCreation string(date) false none Date de création du fichier.
»»»»»»» fileSize integer(int64) false none Taille en octet du fichier.
»»»»»»» expirationDate string(date) false none Date d'expiration du document.
» messages Messages false none Messages d'une réponse à un appel de l'API REST / JSON. Il contient des messages d'informations, d'avertissement et d'erreurs.
»» info [Message] false none Tableau contenant les messages d'information.
»»» code string false none Code du message.
»»» message string false none texte du message.
»» warning [Message] false none Tableau contenant les messages d'avertissement.
»» error [Message] false none Tableau contenant les messages d'erreurs.

Status Code 404

Name Type Required Restrictions Description
» messages Messages false none Messages d'une réponse à un appel de l'API REST / JSON. Il contient des messages d'informations, d'avertissement et d'erreurs.
»» info [Message] false none Tableau contenant les messages d'information.
»»» code string false none Code du message.
»»» message string false none texte du message.
»» warning [Message] false none Tableau contenant les messages d'avertissement.
»» error [Message] false none Tableau contenant les messages d'erreurs.

Détails d'un dossier

Code samples

# You can also use wget
curl -X GET https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

URL obj = new URL("https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET /account/{accountId}/dossiers/{dossierId}

Restituer les informations d'un dossier.

Parameters

Name In Type Required Description
accountId path integer(int64) true Identifiant du compte.
dossierId path integer(int64) true Identifiant d'un dossier.

Example responses

200 Response

{
  "content": {
    "dossierId": 0,
    "accountId": 0,
    "thirdpartyId": 0,
    "companyIdType": "string",
    "companyIdValue": "string",
    "thirdpartyCode": "string",
    "companyCountryCode": "string",
    "monitored": true,
    "dossierReference": "string",
    "description": "string",
    "purchasingCategory": "string",
    "startingDate": "2019-08-24",
    "expirationDate": "2019-08-24",
    "stoppingDate": "2019-08-24",
    "stoppingReason": "string",
    "state": true,
    "stateLastChangeDate": "2019-08-24",
    "indicators": [
      {
        "indicatorCode": "string",
        "state": true,
        "lastChangeDate": "2019-08-24"
      }
    ],
    "documents": [
      {
        "documentId": 0,
        "documentCode": "string",
        "name": "string",
        "requestDate": "2019-08-24",
        "present": true,
        "listFileInformation": [
          {
            "fileId": 0,
            "uploadDate": "2019-08-24",
            "fileUUID": "string",
            "fileCreation": "2019-08-24",
            "fileSize": 0,
            "expirationDate": "2019-08-24"
          }
        ]
      }
    ]
  },
  "messages": {
    "info": [
      {
        "code": "string",
        "message": "string"
      }
    ],
    "warning": [
      {
        "code": "string",
        "message": "string"
      }
    ],
    "error": [
      {
        "code": "string",
        "message": "string"
      }
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Retourne les informations d'un dossier. Inline
400 Bad Request Requête mal formée None
401 Unauthorized Authorisation non comprise ou invalide None
404 Not Found Aucun compte avec cet identifiant (accountId), ou aucun dossier avec cet identifiant (dossierId). Inline
5XX Unknown Erreur inattendue None

Response Schema

Status Code 200

Name Type Required Restrictions Description
» content Dossier false none Mot JSON représentant un dossier.
»» dossierId integer(int64) false none Identifiant du dossier.
»» accountId integer(int64) false none Identifiant du compte.
»» thirdpartyId integer(int64) false none Identifiant eAttestations du tiers. Celui-ci est différent du companyIdValue. Le thirdpartyId est un identifiant technique qui identifie de façon unique le tiers dans la plateforme eAttestations.
»» companyIdType string false none Type d'identifiant compagnie.
»» companyIdValue string false none Identifiant compagnie du tiers (SIRET ou TVA intra communautaire).
»» thirdpartyCode string false none Code tiers. Il s'agit d'un identifiant interne au client.
»» companyCountryCode string false none Code pays du tiers. Il s'agit d'un code alpha-3 du standard ISO 3166-1.
»» monitored boolean false none Indique si le dossier est suivi (True) ou non suivi (False)
»» dossierReference string false none Référence du dossier.
»» description string false none Description du dossier.
»» purchasingCategory string false none Catégorie achat du dossier.
»» startingDate string(date) false none Date de début de suivi du dossier.
»» expirationDate string(date) false none Date d'expiration du suivi du dossier. A partir de cette date, le dossier passe automatiquement à l'état "non suivi".
»» stoppingDate string(date) false none Date d'arrêt de suivi du dossier.
»» stoppingReason string false none Détails concernant l'arrêt du dossier: OUTOFBUSINESS (entreprise radiée), EXPIRATION (le dossier a atteint sa date d'expiration), STOPREQUEST (une demande d'arrêt a été faite de manière explicite et immédiate), UNKNOWN (information absente). Non nul uniquement si dossier désactivé.
»» state boolean false none Indicateur de complétude du dossier. True si l'ensemble des documents demandés sont présents, false sinon.
»» stateLastChangeDate string(date) false none Date du dernier changement de l'état de complétude du dossier.
»» indicators [DossierIndicator] false none Liste des indicateurs du dossier.
»»» Indicateur de dossier DossierIndicator false none Un indicateur un dossier.
»»»» indicatorCode string false none Code de l'indicateur
»»»» state boolean false none État de l'indicateur. True si l'ensemble des documents demandés de l'indicateur sont présents, false sinon.
»»»» lastChangeDate string(date) false none Date du dernier changement de l'état de l'indicateur.
»» documents [Document] false none Liste des documents demandés pour le dossier.
»»» Document ou preuve demandée pour le dossier Document false none Une exigence comme un document demandé, une signature, une donnée à apporter au dossier
»»»» documentId integer(int64) false none Identifiant unique du document.
»»»» documentCode string false none Code qui identifie le document.
»»»» name string false none Nom du document.
»»»» requestDate string(date) false none Date à laquelle le document a été demandé.
»»»» present boolean false none Présence ou non du document. True si document présent, False sinon.
»»»» listFileInformation [FileInformation] false none Informations du (ou des) fichiers présents pour ce document.
»»»»» Information du document présent FileInformation false none Informations d'un fichier déposé pour un document ou une preuve.
»»»»»» fileId integer(int64) false none Identifiant du fichier.
»»»»»» uploadDate string(date) false none Date de dépôt du document.
»»»»»» fileUUID string(string) false none Identifiant UUID du fichier.
»»»»»» fileCreation string(date) false none Date de création du fichier.
»»»»»» fileSize integer(int64) false none Taille en octet du fichier.
»»»»»» expirationDate string(date) false none Date d'expiration du document.
» messages Messages false none Messages d'une réponse à un appel de l'API REST / JSON. Il contient des messages d'informations, d'avertissement et d'erreurs.
»» info [Message] false none Tableau contenant les messages d'information.
»»» code string false none Code du message.
»»» message string false none texte du message.
»» warning [Message] false none Tableau contenant les messages d'avertissement.
»» error [Message] false none Tableau contenant les messages d'erreurs.

Status Code 404

Name Type Required Restrictions Description
» messages Messages false none Messages d'une réponse à un appel de l'API REST / JSON. Il contient des messages d'informations, d'avertissement et d'erreurs.
»» info [Message] false none Tableau contenant les messages d'information.
»»» code string false none Code du message.
»»» message string false none texte du message.
»» warning [Message] false none Tableau contenant les messages d'avertissement.
»» error [Message] false none Tableau contenant les messages d'erreurs.

Mettre à jour un dossier

Code samples

# You can also use wget
curl -X POST https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

URL obj = new URL("https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

const inputBody = '{
  "dossierReference": "string",
  "description": "string",
  "purchasingCategory": "string",
  "expirationDate": "2019-08-24",
  "thirdpartyCode": "string",
  "thirdpartyEmail": [
    "user@example.com"
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

POST /account/{accountId}/dossiers/{dossierId}

Mettre à jour les informations d’un dossier suivi (monitored=true).

Body parameter

{
  "dossierReference": "string",
  "description": "string",
  "purchasingCategory": "string",
  "expirationDate": "2019-08-24",
  "thirdpartyCode": "string",
  "thirdpartyEmail": [
    "user@example.com"
  ]
}

Parameters

Name In Type Required Description
accountId path integer(int64) true Identifiant du compte.
dossierId path integer(int64) true Identifiant du dossier.
body body DossierUpdate true données à mettre à jour dans le dossier.

Example responses

200 Response

{
  "messages": {
    "info": [
      {
        "code": "string",
        "message": "string"
      }
    ],
    "warning": [
      {
        "code": "string",
        "message": "string"
      }
    ],
    "error": [
      {
        "code": "string",
        "message": "string"
      }
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Mise à jour du dossier effectuée avec succès. Inline
400 Bad Request Erreurs dans les valeurs transmises au serveur. Voir la liste des erreurs. None
401 Unauthorized Authorisation non comprise ou invalide None
404 Not Found Aucun compte avec cet identifiant (accountId), ou aucun dossier avec cet identifiant (dossierId). Inline
5XX Unknown Erreur inattendue None

Response Schema

Status Code 200

Name Type Required Restrictions Description
» messages Messages false none Messages d'une réponse à un appel de l'API REST / JSON. Il contient des messages d'informations, d'avertissement et d'erreurs.
»» info [Message] false none Tableau contenant les messages d'information.
»»» code string false none Code du message.
»»» message string false none texte du message.
»» warning [Message] false none Tableau contenant les messages d'avertissement.
»» error [Message] false none Tableau contenant les messages d'erreurs.

Status Code 404

Name Type Required Restrictions Description
» messages Messages false none Messages d'une réponse à un appel de l'API REST / JSON. Il contient des messages d'informations, d'avertissement et d'erreurs.
»» info [Message] false none Tableau contenant les messages d'information.
»»» code string false none Code du message.
»»» message string false none texte du message.
»» warning [Message] false none Tableau contenant les messages d'avertissement.
»» error [Message] false none Tableau contenant les messages d'erreurs.

Documents d'un dossier

Code samples

# You can also use wget
curl -X GET https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}/documents \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

URL obj = new URL("https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}/documents");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}/documents',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}/documents', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}/documents", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}/documents', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET /account/{accountId}/dossiers/{dossierId}/documents

Restituer les documents d'un dossier.

Parameters

Name In Type Required Description
accountId path integer(int64) true Identifiant du compte.
dossierId path integer(int64) true Identifiant d'un dossier.

Example responses

200 Response

{
  "content": [
    {
      "documentId": 0,
      "documentCode": "string",
      "name": "string",
      "requestDate": "2019-08-24",
      "present": true,
      "listFileInformation": [
        {
          "fileId": 0,
          "uploadDate": "2019-08-24",
          "fileUUID": "string",
          "fileCreation": "2019-08-24",
          "fileSize": 0,
          "expirationDate": "2019-08-24"
        }
      ]
    }
  ],
  "messages": {
    "info": [
      {
        "code": "string",
        "message": "string"
      }
    ],
    "warning": [
      {
        "code": "string",
        "message": "string"
      }
    ],
    "error": [
      {
        "code": "string",
        "message": "string"
      }
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Retourne les documents d'un dossier. Inline
400 Bad Request Requête mal formée None
401 Unauthorized Authorisation non comprise ou invalide None
404 Not Found Aucun compte avec cet identifiant (accountId), ou aucun dossier avec cet identifiant (dossierId). Inline
5XX Unknown Erreur inattendue None

Response Schema

Status Code 200

Name Type Required Restrictions Description
» content [Document] false none [Une exigence comme un document demandé, une signature, une donnée à apporter au dossier]
»» Document ou preuve demandée pour le dossier Document false none Une exigence comme un document demandé, une signature, une donnée à apporter au dossier
»»» documentId integer(int64) false none Identifiant unique du document.
»»» documentCode string false none Code qui identifie le document.
»»» name string false none Nom du document.
»»» requestDate string(date) false none Date à laquelle le document a été demandé.
»»» present boolean false none Présence ou non du document. True si document présent, False sinon.
»»» listFileInformation [FileInformation] false none Informations du (ou des) fichiers présents pour ce document.
»»»» Information du document présent FileInformation false none Informations d'un fichier déposé pour un document ou une preuve.
»»»»» fileId integer(int64) false none Identifiant du fichier.
»»»»» uploadDate string(date) false none Date de dépôt du document.
»»»»» fileUUID string(string) false none Identifiant UUID du fichier.
»»»»» fileCreation string(date) false none Date de création du fichier.
»»»»» fileSize integer(int64) false none Taille en octet du fichier.
»»»»» expirationDate string(date) false none Date d'expiration du document.
» messages Messages false none Messages d'une réponse à un appel de l'API REST / JSON. Il contient des messages d'informations, d'avertissement et d'erreurs.
»» info [Message] false none Tableau contenant les messages d'information.
»»» code string false none Code du message.
»»» message string false none texte du message.
»» warning [Message] false none Tableau contenant les messages d'avertissement.
»» error [Message] false none Tableau contenant les messages d'erreurs.

Status Code 404

Name Type Required Restrictions Description
» messages Messages false none Messages d'une réponse à un appel de l'API REST / JSON. Il contient des messages d'informations, d'avertissement et d'erreurs.
»» info [Message] false none Tableau contenant les messages d'information.
»»» code string false none Code du message.
»»» message string false none texte du message.
»» warning [Message] false none Tableau contenant les messages d'avertissement.
»» error [Message] false none Tableau contenant les messages d'erreurs.

Détails d'un document d'un dossier

Code samples

# You can also use wget
curl -X GET https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}/documents/{documentId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

URL obj = new URL("https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}/documents/{documentId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}/documents/{documentId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}/documents/{documentId}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}/documents/{documentId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}/documents/{documentId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET /account/{accountId}/dossiers/{dossierId}/documents/{documentId}

Restituer les détails d'un document d'un dossier.

Parameters

Name In Type Required Description
accountId path integer(int64) true Identifiant du compte.
dossierId path integer(int64) true Identifiant d'un dossier.
documentId path integer(int64) true Identifiant d'un document.

Example responses

200 Response

{
  "content": {
    "documentId": 0,
    "documentCode": "string",
    "name": "string",
    "requestDate": "2019-08-24",
    "present": true,
    "listFileInformation": [
      {
        "fileId": 0,
        "uploadDate": "2019-08-24",
        "fileUUID": "string",
        "fileCreation": "2019-08-24",
        "fileSize": 0,
        "expirationDate": "2019-08-24"
      }
    ]
  },
  "messages": {
    "info": [
      {
        "code": "string",
        "message": "string"
      }
    ],
    "warning": [
      {
        "code": "string",
        "message": "string"
      }
    ],
    "error": [
      {
        "code": "string",
        "message": "string"
      }
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Retourne les détails d'un documents d'un dossier. Inline
400 Bad Request Requête mal formée None
401 Unauthorized Authorisation non comprise ou invalide None
404 Not Found Aucun compte avec cet identifiant (accountId), ou aucun dossier avec cet identifiant (dossierId) ou aucun document avec et identiant Inline
5XX Unknown Erreur inattendue None

Response Schema

Status Code 200

Name Type Required Restrictions Description
» content Document false none Une exigence comme un document demandé, une signature, une donnée à apporter au dossier
»» documentId integer(int64) false none Identifiant unique du document.
»» documentCode string false none Code qui identifie le document.
»» name string false none Nom du document.
»» requestDate string(date) false none Date à laquelle le document a été demandé.
»» present boolean false none Présence ou non du document. True si document présent, False sinon.
»» listFileInformation [FileInformation] false none Informations du (ou des) fichiers présents pour ce document.
»»» Information du document présent FileInformation false none Informations d'un fichier déposé pour un document ou une preuve.
»»»» fileId integer(int64) false none Identifiant du fichier.
»»»» uploadDate string(date) false none Date de dépôt du document.
»»»» fileUUID string(string) false none Identifiant UUID du fichier.
»»»» fileCreation string(date) false none Date de création du fichier.
»»»» fileSize integer(int64) false none Taille en octet du fichier.
»»»» expirationDate string(date) false none Date d'expiration du document.
» messages Messages false none Messages d'une réponse à un appel de l'API REST / JSON. Il contient des messages d'informations, d'avertissement et d'erreurs.
»» info [Message] false none Tableau contenant les messages d'information.
»»» code string false none Code du message.
»»» message string false none texte du message.
»» warning [Message] false none Tableau contenant les messages d'avertissement.
»» error [Message] false none Tableau contenant les messages d'erreurs.

Status Code 404

Name Type Required Restrictions Description
» messages Messages false none Messages d'une réponse à un appel de l'API REST / JSON. Il contient des messages d'informations, d'avertissement et d'erreurs.
»» info [Message] false none Tableau contenant les messages d'information.
»»» code string false none Code du message.
»»» message string false none texte du message.
»» warning [Message] false none Tableau contenant les messages d'avertissement.
»» error [Message] false none Tableau contenant les messages d'erreurs.

Arrêter le suivi d'un dossier.

Code samples

# You can also use wget
curl -X POST https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}/stop \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

URL obj = new URL("https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}/stop");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}/stop',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}/stop', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}/stop", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}/stop', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

POST /account/{accountId}/dossiers/{dossierId}/stop

Arrêter le suivi d'un dossier

Parameters

Name In Type Required Description
accountId path integer(int64) true Identifiant du compte.
dossierId path integer(int64) true Identifiant du dossier.

Example responses

200 Response

{
  "messages": {
    "info": [
      {
        "code": "string",
        "message": "string"
      }
    ],
    "warning": [
      {
        "code": "string",
        "message": "string"
      }
    ],
    "error": [
      {
        "code": "string",
        "message": "string"
      }
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Arrêt de la surveillance du dossier effectuée avec succès. Inline
400 Bad Request Requête mal formée ou Dossier déjà non suivi. None
401 Unauthorized Authorisation non comprise ou invalide None
404 Not Found Aucun compte avec cet identifiant (accountId), ou aucun dossier avec cet identifiant (dossierId). None
5XX Unknown Erreur inattendue None

Response Schema

Status Code 200

Name Type Required Restrictions Description
» messages Messages false none Messages d'une réponse à un appel de l'API REST / JSON. Il contient des messages d'informations, d'avertissement et d'erreurs.
»» info [Message] false none Tableau contenant les messages d'information.
»»» code string false none Code du message.
»»» message string false none texte du message.
»» warning [Message] false none Tableau contenant les messages d'avertissement.
»» error [Message] false none Tableau contenant les messages d'erreurs.

Réactiver un dossier

Code samples

# You can also use wget
curl -X POST https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}/reactivate \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

URL obj = new URL("https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}/reactivate");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

const inputBody = '{
  "expirationDate": "2019-08-24"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}/reactivate',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}/reactivate', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}/reactivate", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}/reactivate', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

POST /account/{accountId}/dossiers/{dossierId}/reactivate

Réactiver le suivi d'un dossier.

Body parameter

{
  "expirationDate": "2019-08-24"
}

Parameters

Name In Type Required Description
accountId path integer(int64) true Identifiant du compte.
dossierId path integer(int64) true Identifiant du dossier.
body body ReactivateDossierData true Attributs du dossier à mettre à jour lors de la réactivation du suivi.

Example responses

200 Response

{
  "messages": {
    "info": [
      {
        "code": "string",
        "message": "string"
      }
    ],
    "warning": [
      {
        "code": "string",
        "message": "string"
      }
    ],
    "error": [
      {
        "code": "string",
        "message": "string"
      }
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Réactivation du suivi du dossier avec succès. Inline
400 Bad Request Requête mal formée ou Dossier déjà suivi ou date d'expiration dans le passé. None
401 Unauthorized Authorisation non comprise ou invalide None
404 Not Found Aucun compte avec cet identifiant (accountId), ou aucun dossier avec cet identifiant (dossierId). None
5XX Unknown Erreur inattendue None

Response Schema

Status Code 200

Name Type Required Restrictions Description
» messages Messages false none Messages d'une réponse à un appel de l'API REST / JSON. Il contient des messages d'informations, d'avertissement et d'erreurs.
»» info [Message] false none Tableau contenant les messages d'information.
»»» code string false none Code du message.
»»» message string false none texte du message.
»» warning [Message] false none Tableau contenant les messages d'avertissement.
»» error [Message] false none Tableau contenant les messages d'erreurs.

Documents requis pour un dossier

Code samples

# You can also use wget
curl -X GET https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}/requirements \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

URL obj = new URL("https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}/requirements");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}/requirements',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}/requirements', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}/requirements", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}/requirements', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET /account/{accountId}/dossiers/{dossierId}/requirements

Restituer les documents demandés pour un dossier actif.

Parameters

Name In Type Required Description
accountId path integer(int64) true Identifiant du compte.
dossierId path integer(int64) true Identifiant du dossier

Example responses

200 Response

{
  "content": [
    {
      "documentId": 0,
      "accountId": 0,
      "code": "string",
      "name": "string",
      "descriptionCategoryFr": "string",
      "descriptionCategoryEn": "string",
      "descriptionFr": "string",
      "descriptionEn": "string"
    }
  ],
  "messages": {
    "info": [
      {
        "code": "string",
        "message": "string"
      }
    ],
    "warning": [
      {
        "code": "string",
        "message": "string"
      }
    ],
    "error": [
      {
        "code": "string",
        "message": "string"
      }
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Retourne un tableau JSON. Chaque item contient un document requis pour le dossier. Inline
400 Bad Request Requête mal formée None
401 Unauthorized Authorisation non comprise ou invalide None
404 Not Found Aucun compte avec cet identifiant (accountId), ou aucun dossier avec cet identifiant (dossierId). None
5XX Unknown Erreur inattendue None

Response Schema

Status Code 200

Name Type Required Restrictions Description
» content [Requirement] false none [Une exigence (un document/preuve requis/e)]
»» Requirement Requirement false none Une exigence (un document/preuve requis/e)
»»» documentId integer false none id interne
»»» accountId integer false none id du compte
»»» code string false none Code identifiant le document.
»»» name string false none Nom de l'exigence
»»» descriptionCategoryFr string false none Description de la catégorie de l'exigence en français
»»» descriptionCategoryEn string false none Description de la catégorie de de l'exigence en anglais
»»» descriptionFr string false none Description de l'exigence en français
»»» descriptionEn string false none Description de l'exigence en anglais
» messages Messages false none Messages d'une réponse à un appel de l'API REST / JSON. Il contient des messages d'informations, d'avertissement et d'erreurs.
»» info [Message] false none Tableau contenant les messages d'information.
»»» code string false none Code du message.
»»» message string false none texte du message.
»» warning [Message] false none Tableau contenant les messages d'avertissement.
»» error [Message] false none Tableau contenant les messages d'erreurs.

Mettre à jour les documents requis

Code samples

# You can also use wget
curl -X POST https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}/requirements \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

URL obj = new URL("https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}/requirements");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

const inputBody = '[
  "string"
]';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}/requirements',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}/requirements', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}/requirements", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}/requirements', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

POST /account/{accountId}/dossiers/{dossierId}/requirements

Mettre à jour les documents demandés pour un dossier actif.

Body parameter

[
  "string"
]

Parameters

Name In Type Required Description
accountId path integer(int64) true Identifiant du compte.
dossierId path integer(int64) true Identifiant du dossier
body body array[string] false Liste des requirements (documents demandés).

Example responses

200 Response

{
  "messages": {
    "info": [
      {
        "code": "string",
        "message": "string"
      }
    ],
    "warning": [
      {
        "code": "string",
        "message": "string"
      }
    ],
    "error": [
      {
        "code": "string",
        "message": "string"
      }
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Les documents requis pour le dossier ont été mis à jour avec succès. Inline
400 Bad Request Requête mal formée ou Erreurs dans les valeurs transmises au serveur. Voir la liste des erreurs. None
401 Unauthorized Authorisation non comprise ou invalide None
404 Not Found Aucun dossier ayant cet identifiant None
5XX Unknown Erreur inattendue None

Response Schema

Status Code 200

Name Type Required Restrictions Description
» messages Messages false none Messages d'une réponse à un appel de l'API REST / JSON. Il contient des messages d'informations, d'avertissement et d'erreurs.
»» info [Message] false none Tableau contenant les messages d'information.
»»» code string false none Code du message.
»»» message string false none texte du message.
»» warning [Message] false none Tableau contenant les messages d'avertissement.
»» error [Message] false none Tableau contenant les messages d'erreurs.

Statut de création d'un dossier

Code samples

# You can also use wget
curl -X GET https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/process/{processId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

URL obj = new URL("https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/process/{processId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/process/{processId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/process/{processId}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/process/{processId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/process/{processId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET /account/{accountId}/dossiers/process/{processId}

Permet de connaître le statut et le résultat d'un import de dossier à partir de l'identifiant d'import.

Parameters

Name In Type Required Description
accountId path integer(int64) true Identifiant du compte.
processId path integer(int64) true none

Example responses

200 Response

{
  "content": {
    "processId": "string",
    "complete": true,
    "success": true,
    "errors": [
      {
        "code": "string",
        "message": "string"
      }
    ]
  },
  "messages": {
    "info": [
      {
        "code": "string",
        "message": "string"
      }
    ],
    "warning": [
      {
        "code": "string",
        "message": "string"
      }
    ],
    "error": [
      {
        "code": "string",
        "message": "string"
      }
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK envoie un mot JSON indiquant le statut et le résultat de l'import. Inline
400 Bad Request Requête mal formée None
401 Unauthorized Authorisation non comprise ou invalide None
404 Not Found Aucun process avec cet identifiant None
5XX Unknown Erreur inattendue None

Response Schema

Status Code 200

Name Type Required Restrictions Description
» content DossierProcessResult false none Mot JSON contenant l'identifiant et le statut du process d'import de dossier.
»» processId string false none Identifiant du process d'import de dossier.
»» complete boolean false none True si le process d'import s'est terminé, false sinon.
»» success boolean false none True si le dossier a été importé avec succès. False sinon.
»» errors [Message] false none Erreurs survenues lors de l'import de dossier.
»»» code string false none Code du message.
»»» message string false none texte du message.
» messages Messages false none Messages d'une réponse à un appel de l'API REST / JSON. Il contient des messages d'informations, d'avertissement et d'erreurs.
»» info [Message] false none Tableau contenant les messages d'information.
»» warning [Message] false none Tableau contenant les messages d'avertissement.
»» error [Message] false none Tableau contenant les messages d'erreurs.

Statut de création de dossiers

Code samples

# You can also use wget
curl -X GET https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/processes \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

URL obj = new URL("https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/processes");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/processes',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/processes', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/processes", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/processes', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET /account/{accountId}/dossiers/processes

Permet de connaître les résultats d'import de plusieurs dossiers.

Si le paramètre fromDate est renseigné, les résultats d'imports qui seront retournée sont ceux qui ont été lancés à partir de cette date.

Par défaut, les résultats d'imports lancés dans les dernières 24h sont retrounés.

Parameters

Name In Type Required Description
accountId path integer(int64) true Identifiant du compte.
fromDate query string(date) false Date de lancement min des imports.

Example responses

200 Response

{
  "content": [
    {
      "processId": "string",
      "complete": true,
      "success": true,
      "errors": [
        {
          "code": "string",
          "message": "string"
        }
      ]
    }
  ],
  "messages": {
    "info": [
      {
        "code": "string",
        "message": "string"
      }
    ],
    "warning": [
      {
        "code": "string",
        "message": "string"
      }
    ],
    "error": [
      {
        "code": "string",
        "message": "string"
      }
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Renvoie un tableau d'objets JSON, indiquant le statut et le résultat des imports. Inline
400 Bad Request Requête mal formée None
401 Unauthorized Authorisation non comprise ou invalide None
404 Not Found Aucun process avec cet identifiant None
5XX Unknown Erreur inattendue None

Response Schema

Status Code 200

Name Type Required Restrictions Description
» content [DossierProcessResult] false none Tableau contenant des objets JSON, indiquant les statuts d'import d'un ou plusieurs dossiers.
»» DossierProcessResult DossierProcessResult false none Mot JSON contenant l'identifiant et le statut du process d'import de dossier.
»»» processId string false none Identifiant du process d'import de dossier.
»»» complete boolean false none True si le process d'import s'est terminé, false sinon.
»»» success boolean false none True si le dossier a été importé avec succès. False sinon.
»»» errors [Message] false none Erreurs survenues lors de l'import de dossier.
»»»» code string false none Code du message.
»»»» message string false none texte du message.
» messages Messages false none Messages d'une réponse à un appel de l'API REST / JSON. Il contient des messages d'informations, d'avertissement et d'erreurs.
»» info [Message] false none Tableau contenant les messages d'information.
»» warning [Message] false none Tableau contenant les messages d'avertissement.
»» error [Message] false none Tableau contenant les messages d'erreurs.

Fichiers

Relatif aux fichiers d'un document d'un dossier d'un compte

Téléchargement d'un fichier d'un document d'un dossier

Code samples

# You can also use wget
curl -X GET https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}/documents/{documentId}/files/{fileId} \
  -H 'Accept: application/octet-stream' \
  -H 'Authorization: Bearer {access-token}'

URL obj = new URL("https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}/documents/{documentId}/files/{fileId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());


const headers = {
  'Accept':'application/octet-stream',
  'Authorization':'Bearer {access-token}'
};

fetch('https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}/documents/{documentId}/files/{fileId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/octet-stream',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}/documents/{documentId}/files/{fileId}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/octet-stream"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}/documents/{documentId}/files/{fileId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/octet-stream',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://rs.e-attestations.com/api/v1/account/{accountId}/dossiers/{dossierId}/documents/{documentId}/files/{fileId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET /account/{accountId}/dossiers/{dossierId}/documents/{documentId}/files/{fileId}

Télécharger le fichier

Parameters

Name In Type Required Description
accountId path integer(int64) true Identifiant du compte.
dossierId path integer(int64) true Identifiant d'un dossier.
documentId path integer(int64) true Identifiant d'un document.
fileId path integer(int64) true Identifiant d'un fichier.

Example responses

200 Response

Responses

Status Meaning Description Schema
200 OK Retourne le fichier string
400 Bad Request Requête mal formée None
401 Unauthorized Authorisation non comprise ou invalide None
404 Not Found Aucun fichier avec cet identifiant (accountId), ou aucun dossier avec cet identifiant (dossierId) ou aucun document avec cet identiant (documentId) ou aucun fichier avec cet identiant (fileId) None
5XX Unknown Erreur inattendue None

Requirements

Relatif aux type de document de conformité exigés aux tiers

Documents requis

Code samples

# You can also use wget
curl -X GET https://rs.e-attestations.com/api/v1/account/{accountId}/requirements \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

URL obj = new URL("https://rs.e-attestations.com/api/v1/account/{accountId}/requirements");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://rs.e-attestations.com/api/v1/account/{accountId}/requirements',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://rs.e-attestations.com/api/v1/account/{accountId}/requirements', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://rs.e-attestations.com/api/v1/account/{accountId}/requirements", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://rs.e-attestations.com/api/v1/account/{accountId}/requirements', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

GET /account/{accountId}/requirements

Liste des documents requis, disponibles pour un donneur d'ordres

Parameters

Name In Type Required Description
accountId path integer(int64) true Identifiant du compte.

Example responses

200 Response

{
  "content": [
    {
      "documentId": 0,
      "accountId": 0,
      "code": "string",
      "name": "string",
      "descriptionCategoryFr": "string",
      "descriptionCategoryEn": "string",
      "descriptionFr": "string",
      "descriptionEn": "string"
    }
  ],
  "messages": {
    "info": [
      {
        "code": "string",
        "message": "string"
      }
    ],
    "warning": [
      {
        "code": "string",
        "message": "string"
      }
    ],
    "error": [
      {
        "code": "string",
        "message": "string"
      }
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Retourne un tableau JSON. Chaque item contient un document requis. Inline
400 Bad Request Requête mal formée None
401 Unauthorized Authorisation non comprise ou invalide None
404 Not Found Aucun compte avec cet identifiant (accountId). None
5XX Unknown Erreur inattendue None

Response Schema

Status Code 200

Name Type Required Restrictions Description
» content [Requirement] false none [Une exigence (un document/preuve requis/e)]
»» Requirement Requirement false none Une exigence (un document/preuve requis/e)
»»» documentId integer false none id interne
»»» accountId integer false none id du compte
»»» code string false none Code identifiant le document.
»»» name string false none Nom de l'exigence
»»» descriptionCategoryFr string false none Description de la catégorie de l'exigence en français
»»» descriptionCategoryEn string false none Description de la catégorie de de l'exigence en anglais
»»» descriptionFr string false none Description de l'exigence en français
»»» descriptionEn string false none Description de l'exigence en anglais
» messages Messages false none Messages d'une réponse à un appel de l'API REST / JSON. Il contient des messages d'informations, d'avertissement et d'erreurs.
»» info [Message] false none Tableau contenant les messages d'information.
»»» code string false none Code du message.
»»» message string false none texte du message.
»» warning [Message] false none Tableau contenant les messages d'avertissement.
»» error [Message] false none Tableau contenant les messages d'erreurs.

Schemas

Account

{
  "id": 0,
  "account": "string",
  "company": "string",
  "creation": "2019-08-24T14:15:22Z",
  "maxDossiers": 0,
  "name": "string",
  "subscriptionDate": "2019-08-24T14:15:22Z",
  "subscriptions": [
    {
      "accountId": 0,
      "endSubscriptionDate": "2019-08-24T14:15:22Z",
      "key": "string",
      "startSubscriptionDate": "2019-08-24T14:15:22Z",
      "status": "string"
    }
  ]
}

Compte eAttestations

Properties

Name Type Required Restrictions Description
id integer(int64) false none Identifiant du compte. A utiliser dans tous les appels à l'API
account string false none Appellation du compte eAttestations
company string false none Nom de l'entité légale du compte
creation string(date-time) false none Date de création du compte
maxDossiers integer(int32) false none Limite en nombre de dossiers
name string false none Nom du compte
subscriptionDate string(date-time) false none Date de souscription au service
subscriptions [Subscription] false none none

GlobalInformation

{
  "numberOfThirdparties": 0,
  "numberOfSubscribedThirdparties": 0,
  "numberOfCompleteThirdparties": 0,
  "numberOfDossiers": 0,
  "numberOfCompleteDossiers": 0,
  "listIndicatorsStatistics": [
    {
      "indicatorCode": "string",
      "numberOfThirdparties": 0,
      "numberOfSubscribedThirdparties": 0,
      "numberOfCompleteThirdparties": 0,
      "numberOfDossiers": 0,
      "numberOfCompleteDossiers": 0
    }
  ]
}

Informations globales

Properties

Name Type Required Restrictions Description
numberOfThirdparties integer(int64) false none Le nombre total de tiers du compte.
numberOfSubscribedThirdparties integer(int64) false none Le nombre total de tiers inscrits pour un donneur d'ordres.
numberOfCompleteThirdparties integer(int64) false none Le nombre total de tiers dont tous les dossiers actifs sont complets. Autrement dit, les tiers qui ont déposé tous les documents requis par ce donneur d'ordres.
numberOfDossiers integer(int64) false none Le nombre total de dossiers actifs.
numberOfCompleteDossiers integer(int64) false none Le nombre total de dossiers complets. Autrement dit, les dossiers pour lesquels tous les documents requis ont été déposés.
listIndicatorsStatistics [StatisticsIndicator] false none Tableau contenant des statistiques par indicateur (E.g. Obligation de vigilance).

StatisticsIndicator

{
  "indicatorCode": "string",
  "numberOfThirdparties": 0,
  "numberOfSubscribedThirdparties": 0,
  "numberOfCompleteThirdparties": 0,
  "numberOfDossiers": 0,
  "numberOfCompleteDossiers": 0
}

Indicateur de statistiques

Properties

Name Type Required Restrictions Description
indicatorCode string false none Code de l'indicateur.
numberOfThirdparties integer(int64) false none Le nombre de tiers du compte donneurs d'ordres restreint sur cet indicateur.
numberOfSubscribedThirdparties integer(int64) false none Le nombre de tiers inscrits restreints sur cet indicateur.
numberOfCompleteThirdparties integer(int64) false none Le nombre de tiers dont tous les dossiers sont complets, restreints sur cet indicateur.
numberOfDossiers integer(int64) false none Le nombre de dossiers du compte, restreints sur cet indicateur.
numberOfCompleteDossiers integer(int64) false none Le nombre de dossiers complets du compte, restreints sur cet indicateur.

NewDossier

{
  "companyIdType": "string",
  "companyIdValue": "string",
  "thirdpartyCode": "string",
  "dossierReference": "string",
  "description": "string",
  "purchasingCategory": "string",
  "expirationDate": "2019-08-24",
  "requiredDocuments": [
    "string"
  ],
  "thirdpartyEmail": [
    "user@example.com"
  ],
  "userInCharge": [
    "user@example.com"
  ]
}

Nouveau dossier

Properties

Name Type Required Restrictions Description
companyIdType string true none Type d'identifiant compagnie.
companyIdValue string true none Identifiant compagnie du tiers (SIRET ou TVA intra communautaire).
thirdpartyCode string false none Code tiers. Il s'agit d'un identifiant interne au donneur d'ordres.
dossierReference string true none Référence du dossier.
description string false none Description du dossier.
purchasingCategory string false none Catégorie achat du dossier.
expirationDate string(date) false none Date d'expiration du dossier. Passée cette date, le dossier n'est plus suivi (Attribut "monitored" du dossier passe à false)
requiredDocuments [string] false none Liste des documents (requirements) demandés dans ce dossier pour ce tiers. Si aucun document n'est demandé, le set de documents par défault est demandé, c'est-à-dire les documents de l'obligation de vigilance.
thirdpartyEmail [string] false none Liste des emails de contacts tiers. Si un tiers est non inscrit, ces emails serviront à envoyer les invitations.
userInCharge [string] false none Liste des emails des responsables du dossier côté donneur d'ordres. Si un email ne correspond à aucun utilisateur inscrit, une invitation à s'inscrire sur le plateforme eAttestations donneur d'ordres, est envoyé à cet Email.

DossierProcess

{
  "processId": "string"
}

Process Dossier

Properties

Name Type Required Restrictions Description
processId string false none Identifiant du process d'import de dossier.

DossierProcessResult

{
  "processId": "string",
  "complete": true,
  "success": true,
  "errors": [
    {
      "code": "string",
      "message": "string"
    }
  ]
}

DossierProcessResult

Properties

Name Type Required Restrictions Description
processId string false none Identifiant du process d'import de dossier.
complete boolean false none True si le process d'import s'est terminé, false sinon.
success boolean false none True si le dossier a été importé avec succès. False sinon.
errors [Message] false none Erreurs survenues lors de l'import de dossier.

ThirdpartyIdentifier

{
  "thirdpartyId": 0,
  "companyIdType": "string",
  "companyIdValue": "string",
  "thirdpartyCode": "string"
}

Identifiant tiers

Properties

Name Type Required Restrictions Description
thirdpartyId integer false none Identifiant eAttestations du tiers. Celui-ci est différent du companyIdValue. Le thirdpartyId est un identifiant technique qui identifie de façon unique le tiers dans la plateforme eAttestations.
companyIdType string false none Type d'identifiant compagnie.
companyIdValue string false none Identifiant compagnie du tiers (SIRET ou TVA intra communautaire).
thirdpartyCode string false none Code tiers. Il s'agit d'un identifiant interne au client.

ThirdpartyDetails

{
  "thirdpartyId": 0,
  "accountId": 0,
  "companyIdType": "string",
  "companyIdValue": "string",
  "thirdpartyCode": "string",
  "monitored": true,
  "name": "string",
  "addressStreet": "string",
  "addressCity": "string",
  "addressPostCode": "string",
  "addressCountryCode": "string",
  "subscriptionState": true,
  "subscriptionDate": "2019-08-24",
  "subscriptionKey": "string",
  "outOfBusiness": true,
  "stateLastChangeDate": "2019-08-24",
  "thirdpartyGlobalState\"": true,
  "acronym": "string",
  "activityCode": "string",
  "activityLabel": "string",
  "capital": 0,
  "capitalCurrency": "string",
  "ceo": "string",
  "datecreation": "2019-08-24",
  "lastBalanceSheetDate": "2019-08-24",
  "legalCategoryCode": "string",
  "legalCategoryLabel": "string",
  "siren": "string",
  "siret": "string",
  "turnover": 0,
  "turnoverCurrency": "string",
  "tva": "string",
  "workforce": 0,
  "thirdpartyUsers": [
    {
      "firstname": "string",
      "lastname": "string",
      "email": "user@example.com",
      "phone": "string"
    }
  ]
}

Détails d'un tiers

Properties

Name Type Required Restrictions Description
thirdpartyId integer(int64) false none Identifiant eAttestations du tiers. Celui-ci est différent du companyIdValue. Le thirdpartyId est un identifiant technique qui identifie de façon unique le tiers dans la plateforme eAttestations.
accountId integer(int64) false none Identifiant du compte.
companyIdType string false none Type d'identifiant compagnie.
companyIdValue string false none Identifiant compagnie du tiers (SIRET ou TVA intra communautaire).
thirdpartyCode string false none Code tiers. Il s'agit d'un identifiant interne au client.
monitored boolean false none Indique si le tiers est suivi. Cet attribut est à true si le tiers est suivi, false sinon. Un tiers est suivi dès lors qu'il a un dossier suivi.
name string false none Dénomination sociale du tiers. Celle-ci est automatiquement fournie par notre data provider à partir de l'identifiant du tiers (Numéro Siret ou Numéro TVA)
addressStreet string false none Elément "Rue" de l'adresse du tiers.
addressCity string false none Elément "Ville" de l'adresse du tiers.
addressPostCode string false none Elément "Code postal" de l'adresse du tiers.
addressCountryCode string false none Elément "Pays" de l'adresse du tiers.
subscriptionState boolean false none Statut d'inscription du tiers. True si le tiers est inscrit, False sinon.
subscriptionDate string(date) false none Date d'inscription du tiers.
subscriptionKey string false none Clé d'inscription. Elle est demandée au tiers au moment de son adhésion. Elle doit lui être communiquée lors de relances d'inscription.
outOfBusiness boolean false none Indique si l'établissement est fermé. True si c'est le cas, False sinon.
stateLastChangeDate string(date) false none Dernière date à laquelle l'état global du tiers a changé.
thirdpartyGlobalState" boolean false none Etat de complétude global du tiers. Une valeur true (Complet) signifie que tous les dossiers sont dans l'état complet. Une valeur false (Incomplet) signifie qu'au moins un ou plusieurs dossiers sont dans l'état incomplet.
acronym string false none Acronym du tiers
activityCode string false none Code APE de l'activité du tiers
activityLabel string false none Libellé APE de l'activité du tiers
capital integer(int64) false none Capital connu pour le tiers
capitalCurrency string false none Devise du capital connu pour le tiers
ceo string false none Dirigeant
datecreation string(date) false none Date de création du tiers dans la base eAttestations
lastBalanceSheetDate string(date) false none Dernier date du résultat d'exploitation connu
legalCategoryCode string false none Code jurisique d'activité
legalCategoryLabel string false none Libellé jurisique d'activité
siren string false none Identifiant SIREN (pour les français)
siret string false none Identifiant SIRET de l'établissement (pour les français)
turnover number(double) false none Dernier chiffre d'affaire connu du tiers
turnoverCurrency string false none Devise du dernier chiffre d'affaire connu du tiers
tva string false none Identifiant intra communautaire
workforce integer(int32) false none Effectifs du tiers
thirdpartyUsers [UserInformation] false none Informations sur les utilisateurs du compte tiers.

UserInformation

{
  "firstname": "string",
  "lastname": "string",
  "email": "user@example.com",
  "phone": "string"
}

Informations utilisateur

Properties

Name Type Required Restrictions Description
firstname string false none Prénom de l'utilisateur.
lastname string false none Nom de l'utilisateur.
email string(email) false none E-mail de l'utilisateur.
phone string false none Numéro de téléphone de l'utilisateur au format international.

DossierUpdate

{
  "dossierReference": "string",
  "description": "string",
  "purchasingCategory": "string",
  "expirationDate": "2019-08-24",
  "thirdpartyCode": "string",
  "thirdpartyEmail": [
    "user@example.com"
  ]
}

Mise à jour du dossier

Properties

Name Type Required Restrictions Description
dossierReference string false none Référence du dossier.
description string false none Description du dossier.
purchasingCategory string false none Catégorie achat du dossier.
expirationDate string(date) false none Date d'expiration du dossier. Passée cette date, le dossier n'est plus suivi (Attribut "monitored" du dossier passe à false)
thirdpartyCode string false none Code tiers. Il s'agit d'un identifiant interne au client.
thirdpartyEmail [string] false none Liste des emails de contacts tiers. Si un tiers est n'est pas inscrit, ces emails serviront à envoyer les invitations.

Dossier

{
  "dossierId": 0,
  "accountId": 0,
  "thirdpartyId": 0,
  "companyIdType": "string",
  "companyIdValue": "string",
  "thirdpartyCode": "string",
  "companyCountryCode": "string",
  "monitored": true,
  "dossierReference": "string",
  "description": "string",
  "purchasingCategory": "string",
  "startingDate": "2019-08-24",
  "expirationDate": "2019-08-24",
  "stoppingDate": "2019-08-24",
  "stoppingReason": "string",
  "state": true,
  "stateLastChangeDate": "2019-08-24",
  "indicators": [
    {
      "indicatorCode": "string",
      "state": true,
      "lastChangeDate": "2019-08-24"
    }
  ],
  "documents": [
    {
      "documentId": 0,
      "documentCode": "string",
      "name": "string",
      "requestDate": "2019-08-24",
      "present": true,
      "listFileInformation": [
        {
          "fileId": 0,
          "uploadDate": "2019-08-24",
          "fileUUID": "string",
          "fileCreation": "2019-08-24",
          "fileSize": 0,
          "expirationDate": "2019-08-24"
        }
      ]
    }
  ]
}

Dossier

Properties

Name Type Required Restrictions Description
dossierId integer(int64) false none Identifiant du dossier.
accountId integer(int64) false none Identifiant du compte.
thirdpartyId integer(int64) false none Identifiant eAttestations du tiers. Celui-ci est différent du companyIdValue. Le thirdpartyId est un identifiant technique qui identifie de façon unique le tiers dans la plateforme eAttestations.
companyIdType string false none Type d'identifiant compagnie.
companyIdValue string false none Identifiant compagnie du tiers (SIRET ou TVA intra communautaire).
thirdpartyCode string false none Code tiers. Il s'agit d'un identifiant interne au client.
companyCountryCode string false none Code pays du tiers. Il s'agit d'un code alpha-3 du standard ISO 3166-1.
monitored boolean false none Indique si le dossier est suivi (True) ou non suivi (False)
dossierReference string false none Référence du dossier.
description string false none Description du dossier.
purchasingCategory string false none Catégorie achat du dossier.
startingDate string(date) false none Date de début de suivi du dossier.
expirationDate string(date) false none Date d'expiration du suivi du dossier. A partir de cette date, le dossier passe automatiquement à l'état "non suivi".
stoppingDate string(date) false none Date d'arrêt de suivi du dossier.
stoppingReason string false none Détails concernant l'arrêt du dossier: OUTOFBUSINESS (entreprise radiée), EXPIRATION (le dossier a atteint sa date d'expiration), STOPREQUEST (une demande d'arrêt a été faite de manière explicite et immédiate), UNKNOWN (information absente). Non nul uniquement si dossier désactivé.
state boolean false none Indicateur de complétude du dossier. True si l'ensemble des documents demandés sont présents, false sinon.
stateLastChangeDate string(date) false none Date du dernier changement de l'état de complétude du dossier.
indicators [DossierIndicator] false none Liste des indicateurs du dossier.
documents [Document] false none Liste des documents demandés pour le dossier.

Requirement

{
  "documentId": 0,
  "accountId": 0,
  "code": "string",
  "name": "string",
  "descriptionCategoryFr": "string",
  "descriptionCategoryEn": "string",
  "descriptionFr": "string",
  "descriptionEn": "string"
}

Requirement

Properties

Name Type Required Restrictions Description
documentId integer false none id interne
accountId integer false none id du compte
code string false none Code identifiant le document.
name string false none Nom de l'exigence
descriptionCategoryFr string false none Description de la catégorie de l'exigence en français
descriptionCategoryEn string false none Description de la catégorie de de l'exigence en anglais
descriptionFr string false none Description de l'exigence en français
descriptionEn string false none Description de l'exigence en anglais

DossierIndicator

{
  "indicatorCode": "string",
  "state": true,
  "lastChangeDate": "2019-08-24"
}

Indicateur de dossier

Properties

Name Type Required Restrictions Description
indicatorCode string false none Code de l'indicateur
state boolean false none État de l'indicateur. True si l'ensemble des documents demandés de l'indicateur sont présents, false sinon.
lastChangeDate string(date) false none Date du dernier changement de l'état de l'indicateur.

Document

{
  "documentId": 0,
  "documentCode": "string",
  "name": "string",
  "requestDate": "2019-08-24",
  "present": true,
  "listFileInformation": [
    {
      "fileId": 0,
      "uploadDate": "2019-08-24",
      "fileUUID": "string",
      "fileCreation": "2019-08-24",
      "fileSize": 0,
      "expirationDate": "2019-08-24"
    }
  ]
}

Document ou preuve demandée pour le dossier

Properties

Name Type Required Restrictions Description
documentId integer(int64) false none Identifiant unique du document.
documentCode string false none Code qui identifie le document.
name string false none Nom du document.
requestDate string(date) false none Date à laquelle le document a été demandé.
present boolean false none Présence ou non du document. True si document présent, False sinon.
listFileInformation [FileInformation] false none Informations du (ou des) fichiers présents pour ce document.

FileInformation

{
  "fileId": 0,
  "uploadDate": "2019-08-24",
  "fileUUID": "string",
  "fileCreation": "2019-08-24",
  "fileSize": 0,
  "expirationDate": "2019-08-24"
}

Information du document présent

Properties

Name Type Required Restrictions Description
fileId integer(int64) false none Identifiant du fichier.
uploadDate string(date) false none Date de dépôt du document.
fileUUID string(string) false none Identifiant UUID du fichier.
fileCreation string(date) false none Date de création du fichier.
fileSize integer(int64) false none Taille en octet du fichier.
expirationDate string(date) false none Date d'expiration du document.

ReactivateDossierData

{
  "expirationDate": "2019-08-24"
}

Informations du dossier à mettre à jour lors de la réactivation du suivi.

Properties

Name Type Required Restrictions Description
expirationDate string(date) false none Date d'expiration du suivi du dossier. Passée cette date, le dossier n'est plus suivi (Attribut "monitored" du dossier passe à false).

Message

{
  "code": "string",
  "message": "string"
}

Un message.

Properties

Name Type Required Restrictions Description
code string false none Code du message.
message string false none texte du message.

Messages

{
  "info": [
    {
      "code": "string",
      "message": "string"
    }
  ],
  "warning": [
    {
      "code": "string",
      "message": "string"
    }
  ],
  "error": [
    {
      "code": "string",
      "message": "string"
    }
  ]
}

Messages d'une réponse à un appel de l'API REST / JSON. Il contient des messages d'informations, d'avertissement et d'erreurs.

Properties

Name Type Required Restrictions Description
info [Message] false none Tableau contenant les messages d'information.
warning [Message] false none Tableau contenant les messages d'avertissement.
error [Message] false none Tableau contenant les messages d'erreurs.

Subscription

{
  "accountId": 0,
  "endSubscriptionDate": "2019-08-24T14:15:22Z",
  "key": "string",
  "startSubscriptionDate": "2019-08-24T14:15:22Z",
  "status": "string"
}

Subscription

Properties

Name Type Required Restrictions Description
accountId integer(int64) false none Le compte lié à la souscription.
endSubscriptionDate string(date-time) false none Date de fin de la souscription.
key string false none Code de la souscription
startSubscriptionDate string(date-time) false none Date de début de la souscription.
status string false none Statut de la souscription.

undefined

Codes

Les erreurs sont renvoyées dans le corps de la réponse, dans l'attribut messages.

Les codes d'erreurs ont une nomenclature qu'il faut prendre en compte pour les interpréter.

Codes Description
E001 Paramètre manquant
E002 Paramètre inconnu
E003 Paramètre vide
E010 Format incorrect
E011 Taille maximale dépassée
E021 Date d'expiration dans le passé
E022 Date dans le futur
E030 Domaine de l’e-mail invalide
E101 Erreur lors de la qualification de l'établissement
E102 L'établissement n'existe pas.
E103 L'établissement est fermé.
E112 Le code fournisseur (thirdpartyCode) déjà utilisé pour un autre fournisseur.
E113 Compte donneur d'ordres non actif
E201 Le dossier est désactivé
E202 La référence du dossier existe déjà pour ce couple donneur d'ordres / Fournisseur
E301 Le document (requirement) est désactivé
E302 Le document (requirement) n'est pas autorisé