Legacy API

API WebServices SOAP v3

L'API WebServices SOAP v3 est utilisée pour interfacer un système d'information « client » à la plate-forme d'e-Attestations suivant le protocole SOAP.

Cette API WebServices présente un ensemble de méthodes permettant d'administrer (importer, suivre, archiver, etc...) les dossiers de suivi de conformité des tiers du compte client et de restituer des informations. La majorité des opérations sont synchrones.

Note : Pour les nouvelles intégrations, nous recommandons d'utiliser l'API REST qui offre plus de fonctionnalités et une meilleure expérience développeur.

Objectifs de cette documentation

Cette documentation a pour but de :

  • Documenter les Web Services SOAP v3 proposés par e-Attestations.com
  • Fournir des informations relatives à la sécurité des environnements disponibles
  • Clarifier les mécanismes de support
  • Décrire chaque méthode, les modèles associés et les erreurs liées
  • Proposer des exemples de code pour faciliter le développement

Standards

Les WebServices s'appuient sur les standards SOAP 1.1 :

StandardSource
SOAP 1.1http://www.w3.org/TR/2000/NOTE-SOAP-20000508/
WSDL 1.1http://www.w3.org/TR/2001/NOTE-wsdl-20010315
WS-I Basic Profile 1.1http://www.ws-i.org/Profiles/BasicProfile-1.1.html

L'implémentation inclut WS-Security pour l'identification de l'appelant.

Namespaces

PréfixeNamespace
S11http://schemas.xmlsoap.org/soap/envelope/
wssehttp://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd
wsuhttp://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd
srvhttp://srv.v3.ws.ea.com/

Mise en place

La souscription nécessite de contacter votre gestionnaire de compte chez e-Attestations.com. Une discussion préalable sur la configuration des documents de conformité est recommandée.

Note : L'utilisation des WebServices n'est pas multi-compte.

Votre gestionnaire informera l'équipe technique pour la création de l'organisation, et les contacts techniques recevront des invitations au Tech'Desk.

Le support Tech'Desk e-Attestations

Ce système de ticketing fournit un support technique dédié aux APIs et WebServices. Soumettez vos demandes par email :

La plateforme sécurisée permet de partager les tickets de support au sein de votre organisation.

Important : Les identifiants sont fournis uniquement via le Tech'Desk.

Collection Postman

Une collection Postman est fournie pour une intégration rapide et l'exploration de l'API. Variables requises : wsuser, wspassword, wsurl, plus un SIRET de test et un nom de dossier.

Utilisation avec newman

Shell
npx newman run "EA_WebServices_v3.postman_collection.json" \
  --global-var wsuser="<user>" \
  --global-var wspassword="<password>"

Téléchargez Postman via getpostman.com ou newman via GitHub.

Environnements

Test

https://ws.test-e-attestations.com/v3.0/EAttestationsWS?wsdl

Infrastructure partagée identique à la production. L'envoi d'emails est désactivé pour éviter les interférences de test.

Production

https://ws.e-attestations.com/v3.0/EAttestationsWS?wsdl

Pour l'utilisation avec votre compte live.

Sécurité

Les identifiants (username/password) sont transmis pour l'authentification des requêtes. Le filtrage par whitelist IP assure l'accès légitime depuis le système client.

Important : Déclarez toutes les adresses IP de votre infrastructure cliente.

Le chiffrement SSL/TLS supporte TLS 1.1 et TLS 1.2. Seul TLS 1.2 est considéré comme sécurisé par e-Attestations.

Sécurisation des flux - IP Trust

Communiquez les adresses IP des serveurs consommant les WebServices lors de la souscription. Chaque IP doit être ajoutée à la liste de confiance.

Format : Notation CIDR (exemple : 34.56.78.90/32)

Erreur HTTP 403

Indique que l'IP du serveur appelant n'est pas dans la liste de confiance. Vérifiez la déclaration de l'IP auprès d'e-Attestations via le Tech'Desk.

Réponse HTTP 403
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html>
  <head>
    <title>403 Forbidden</title>
  </head>
  <body>
    <h1>Forbidden</h1>
    <p>You don't have permission to access [...] on this server.</p>
  </body>
</html>

Authentification

Chaque appel aux WebServices nécessite des identifiants username/password valides fournis à l'ouverture du compte. Insérez-les dans le header SOAP comme UsernameToken.

Le type de mot de passe peut être PasswordDigest (recommandé — plus sécurisé, utilisant un hash du mot de passe, de la date et d'un nombre aléatoire) ou PasswordText.

Header SOAP - WS-Security UsernameToken
<S11:Envelope xmlns:S11="http://schemas.xmlsoap.org/soap/envelope/"
              xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
              xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
    <S11:Header>
        <wsse:Security>
            <wsse:UsernameToken>
                <wsse:Username>myUsername</wsse:Username>
                <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">
                   weYI3nXd8LjMNVksCKFV8t3rgHh3Rw==
                </wsse:Password>
                <wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">
                   WScqanjCEAC4mQoBE07sAQ==
                </wsse:Nonce>
                <wsu:Created>2003-07-16T01:24:32Z</wsu:Created>
            </wsse:UsernameToken>
        </wsse:Security>
    </S11:Header>
    <S11:Body>
        <!-- Contenu de la requête -->
    </S11:Body>
</S11:Envelope>

Erreur d'authentification

Réponse SOAP - Échec d'authentification
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <soap:Fault>
         <faultcode>soap:Server</faultcode>
         <faultstring>Authentication failure</faultstring>
         <detail/>
      </soap:Fault>
   </soap:Body>
</soap:Envelope>

Vérifications en cas d'échec

  • Identifiants présents dans le header SOAP
  • Type de mot de passe correctement spécifié
  • Identifiants correspondant à la plateforme appelée

Référence : Documentation OASIS WS Security

Méthodes disponibles

L'API SOAP v3 propose 11 méthodes pour gérer vos tiers et dossiers :

MéthodeDescriptionType
importDossierImport d'un dossier de suiviAsynchrone
getImportDossierResultRésultat d'un import asynchroneSynchrone
getSupplierIdentifierListListe des identifiants fournisseursSynchrone
getDossierInformations d'un dossierSynchrone
getSupplierAccountInformationInformations compte fournisseurSynchrone
getGlobalInformationStatistiques globales du compteSynchrone
getAvailableDocumentsDocuments disponiblesSynchrone
updateDossierMise à jour d'un dossierSynchrone
stopDossierArrêt du suivi d'un dossierSynchrone
updateRequiredDocumentsMise à jour des documents requisSynchrone
reactivateDossierRéactivation d'un dossierSynchrone

Format de réponse standard

Toutes les méthodes retournent un objet Result :

AttributTypeDescription
completeBooleanTrue quand le traitement est terminé
successBooleanTrue si succès, False sinon
listErrorsList<Error>Liste des erreurs en cas d'échec

Structure Error

AttributTypeDescription
codeStringCode d'erreur
additionalStringContexte supplémentaire
importDossierAsynchrone

Active le suivi de conformité pour un dossier fournisseur. Le traitement est asynchrone, retournant un processId pour suivre le résultat via getImportDossierResult. La création de codes de dossier en doublon est interdite.

Flux de traitement asynchrone

Start
Appel importDossier
→ retourne processId
Appel getImportDossierResult
avec processId
Status ?
complete=false
complete=true
success=true
End
complete=true
success=false
Error Handling

Paramètres - DossierImport

AttributTypeRequisDescription
supplierImportSupplierImportOuiInformations d'identification du fournisseur
dossierReferenceStringOuiRéférence unique du dossier par fournisseur
expirationDateDateNonDate d'expiration du dossier
descriptionStringNonDescription du dossier
purchasingCategoryStringNonCatégorie d'achat
requiredDocumentsString[]NonCodes des documents requis (défaut si vide)
supplierEmailStringNonEmail(s) de contact du fournisseur
userInChargeStringNonEmail(s) du gestionnaire interne

Paramètres - SupplierImport

AttributTypeRequisDescription
companyIDTypeStringOuiType d'identifiant (CIT001, CIT002, CIT003)
companyIDValueStringOuiValeur de l'identifiant
supplierCodeStringNonCode fournisseur interne

Requête

XML Request
<soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:srv="http://srv.v3.ws.ea.com/">
  <soapenv:Header />
  <soapenv:Body>
    <srv:importDossier>
      <dossierImport>
        <supplierImport>
          <companyIDType>CIT001</companyIDType>
          <companyIDValue>50382936800037</companyIDValue>
          <supplierCode>SC_001</supplierCode>
        </supplierImport>
        <dossierReference>REF_001</dossierReference>
        <expirationDate>2015-12-31</expirationDate>
        <description>This is my description</description>
        <purchasingCategory>Category n°1</purchasingCategory>
        <requiredDocuments>ATT_VIGI</requiredDocuments>
        <requiredDocuments>JUSTIF_IMM</requiredDocuments>
        <requiredDocuments>ASSUR_RCPRO</requiredDocuments>
        <supplierEmail>test@e-attestations.com</supplierEmail>
        <userInCharge>test@mydomain.com</userInCharge>
      </dossierImport>
    </srv:importDossier>
  </soapenv:Body>
</soapenv:Envelope>

Réponse

XML Response
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <ns1:importDossierResponse xmlns:ns1="http://srv.v3.ws.ea.com/">
      <return xmlns:ns2="http://srv.v3.ws.ea.com/">
        ff8081814f6e43ab014f6e4571630004
      </return>
    </ns1:importDossierResponse>
  </soap:Body>
</soap:Envelope>
getImportDossierResult

Récupère le statut d'un import en attente en utilisant le processId retourné par importDossier.

Paramètres

AttributTypeRequisDescription
processIdStringOuiIdentifiant de la requête d'import

Requête

XML Request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:srv="http://srv.v3.ws.ea.com/">
   <soapenv:Header/>
   <soapenv:Body>
      <srv:getImportDossierResult>
         <processId>ff8081814f6e43ab014f6e4571630004</processId>
      </srv:getImportDossierResult>
   </soapenv:Body>
</soapenv:Envelope>

Réponse - En cours

XML Response - In Progress
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <ns1:getImportDossierResultResponse xmlns:ns1="http://srv.v3.ws.ea.com/">
            <return xmlns:ns2="http://srv.v3.ws.ea.com/">
                <complete>false</complete>
                <success>false</success>
            </return>
        </ns1:getImportDossierResultResponse>
    </soap:Body>
</soap:Envelope>

Réponse - Succès

XML Response - Success
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <ns1:getImportDossierResultResponse xmlns:ns1="http://srv.v3.ws.ea.com/">
            <return xmlns:ns2="http://srv.v3.ws.ea.com/">
                <complete>true</complete>
                <success>true</success>
            </return>
        </ns1:getImportDossierResultResponse>
    </soap:Body>
</soap:Envelope>

Réponse - Échec

XML Response - Failure
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <ns1:getImportDossierResultResponse xmlns:ns1="http://srv.v3.ws.ea.com/">
            <return xmlns:ns2="http://srv.v3.ws.ea.com/">
                <complete>true</complete>
                <listErrors>
                    <additional>REF_001</additional>
                    <code>E202</code>
                </listErrors>
                <success>false</success>
            </return>
        </ns1:getImportDossierResultResponse>
    </soap:Body>
</soap:Envelope>
getSupplierIdentifierList

Retourne tous les identifiants du référentiel fournisseur avec filtrage optionnel.

Paramètres - supplierIdentifierSearch

AttributTypeRequisDescription
monitoredSupplierBooleanNonFiltrer fournisseurs suivis (true) ou non suivis (false)
stateLastChangeDateDateNonFiltrer par date de changement d'état
supplierGlobalStateBooleanNonFiltrer par état de complétude
subscriptionStateBooleanNonFiltrer par état d'inscription

Requête

XML Request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:srv="http://srv.v3.ws.ea.com/">
    <soapenv:Header/>
    <soapenv:Body>
        <srv:getSupplierIdentifierList>
            <supplierIdentifierSearch>
                <monitoredSupplier>true</monitoredSupplier>
            </supplierIdentifierSearch>
        </srv:getSupplierIdentifierList>
    </soapenv:Body>
</soapenv:Envelope>

Réponse - Succès

XML Response - Success
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <ns1:getSupplierIdentifierListResponse xmlns:ns1="http://srv.v3.ws.ea.com/">
            <return xmlns:ns2="http://srv.v3.ws.ea.com/">
                <supplierIdentifier>
                    <companyIDType>CIT001</companyIDType>
                    <companyIDValue>50382936800037</companyIDValue>
                    <supplierCode>SC_001</supplierCode>
                </supplierIdentifier>
            </return>
        </ns1:getSupplierIdentifierListResponse>
    </soap:Body>
</soap:Envelope>
getDossier

Récupère les informations de dossier pour un ou plusieurs fournisseurs avec options de filtrage flexibles.

Paramètres - DossierSearch

AttributTypeRequisDescription
supplierSearchSupplierSearchOuiIdentification du fournisseur
dossierReferenceStringNonFiltre par référence de dossier
monitoredDossierBooleanNonFiltrer dossiers actifs (true) ou inactifs (false)
stateLastChangeDateDateNonFiltrer par date de changement d'état

Paramètres - SupplierSearch

AttributTypeRequisDescription
companyIDTypeStringNon*Type d'identifiant
companyIDValueStringNon*Valeur de l'identifiant
supplierCodeStringNon*Code fournisseur interne

*Utilisez soit companyIDType+companyIDValue OU supplierCode

Requête

XML Request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:srv="http://srv.v3.ws.ea.com/">
    <soapenv:Header/>
    <soapenv:Body>
        <srv:getDossier>
            <dossierSearch>
                <supplierSearch>
                    <companyIDType>CIT001</companyIDType>
                    <companyIDValue>48088206700014</companyIDValue>
                </supplierSearch>
                <dossierReference>REF001</dossierReference>
            </dossierSearch>
        </srv:getDossier>
    </soapenv:Body>
</soapenv:Envelope>

Réponse

XML Response
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <ns1:getDossierResponse xmlns:ns1="http://srv.v3.ws.ea.com/">
      <return xmlns:ns2="http://srv.v3.ws.ea.com/">
        <result>
          <complete>true</complete>
          <success>true</success>
        </result>
        <supplier>
          <companyCountryCode>FRA</companyCountryCode>
          <companyIDType>CIT001</companyIDType>
          <companyIDValue>48088206700014</companyIDValue>
          <listDossiers>
            <description>Ma description</description>
            <dossierGlobalState>false</dossierGlobalState>
            <dossierGlobalStateLastChangeDate>2016-02-11T11:57:40.094+01:00</dossierGlobalStateLastChangeDate>
            <dossierId>57512</dossierId>
            <dossierReference>REF001</dossierReference>
            <listDocuments>
              <askingDate>2016-02-11T11:57:40.270+01:00</askingDate>
              <documentCode>JUSTIF_IMM</documentCode>
              <listFileInformation>
                <downloadLink>https://ws-test.e-attestations.com/webservices/download/[...]</downloadLink>
                <expirationDate>2018-08-02T23:59:59.999+02:00</expirationDate>
                <uploadDate>2018-02-02T01:30:17.634+01:00</uploadDate>
              </listFileInformation>
              <name>Justificatif d'immatriculation</name>
              <present>true</present>
            </listDocuments>
            <listDocuments>
              <askingDate>2016-02-11T11:57:40.515+01:00</askingDate>
              <documentCode>ATT_VIGI</documentCode>
              <name>Attestation de vigilance (6 mois)</name>
              <present>false</present>
            </listDocuments>
            <listIndicators>
              <indicatorCode>I001</indicatorCode>
              <lastChangeDate>2016-02-11T11:57:40.094+01:00</lastChangeDate>
              <state>false</state>
            </listIndicators>
            <monitoredDossier>true</monitoredDossier>
            <purchasingCategory/>
            <startingDate>2016-02-11T11:57:40.092+01:00</startingDate>
          </listDossiers>
          <monitoredSupplier>true</monitoredSupplier>
          <supplierCode>A-GRAPH</supplierCode>
          <supplierGlobalState>false</supplierGlobalState>
          <supplierGlobalStateLastChangeDate>2016-02-11T11:57:40.257+01:00</supplierGlobalStateLastChangeDate>
        </supplier>
      </return>
    </ns1:getDossierResponse>
  </soap:Body>
</soap:Envelope>

Structure de la réponse - Supplier

AttributTypeDescription
companyIDTypeStringType d'identifiant
companyIDValueStringValeur de l'identifiant
companyCountryCodeStringCode pays ISO 3166-1 alpha-3
supplierCodeStringCode fournisseur interne
monitoredSupplierBooleanSuivi si au moins un dossier actif
supplierGlobalStateBooleanTous documents présents sur tous dossiers
supplierGlobalStateLastChangeDateDateDernier changement de complétude
listDossiersList<Dossier>Dossiers correspondant aux filtres

Structure de la réponse - Dossier

AttributTypeDescription
dossierReferenceStringRéférence unique par fournisseur
dossierIdStringID système immutable
startingDateDateDate de création/début de suivi
expirationDateDateDate d'expiration (null si aucune)
stoppingDateDateDate de désactivation (si inactif)
stoppingReasonStringOUTOFBUSINESS, EXPIRATION, STOPREQUEST, UNKNOWN
descriptionStringDescription du dossier
purchasingCategoryStringCatégorie d'achat
monitoredDossierBooleanDossier actif
dossierGlobalStateBooleanTous documents demandés présents
dossierGlobalStateLastChangeDateDateDernier changement de complétude
listIndicatorsList<Indicator>Indicateurs du dossier
listDocumentsList<Document>Documents demandés

Structure - Document

AttributTypeDescription
documentCodeStringIdentifiant unique du document
nameStringNom du document
askingDateDateDate de demande
presentBooleanDocument valide et présent
listFileInformationList<FileInformation>Détails des fichiers soumis

Structure - FileInformation

AttributTypeDescription
downloadLinkStringURL de téléchargement (restriction IP)
uploadDateDateDate de soumission
expirationDateDateDate d'expiration du document
uploadUserUserInformationUtilisateur ayant soumis
getSupplierAccountInformation

Retourne les informations d'identité du compte fournisseur et les utilisateurs enregistrés sur la plateforme.

Requête

XML Request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:srv="http://srv.v3.ws.ea.com/">
   <soapenv:Header/>
   <soapenv:Body>
      <srv:getSupplierAccountInformation>
         <supplierSearch>
            <!--<companyIDType></companyIDType>-->
            <!--<companyIDValue></companyIDValue>-->
            <supplierCode>SC_001</supplierCode>
         </supplierSearch>
      </srv:getSupplierAccountInformation>
   </soapenv:Body>
</soapenv:Envelope>

Réponse - Succès

XML Response - Success
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <ns1:getSupplierAccountInformationResponse xmlns:ns1="http://srv.v3.ws.ea.com/">
         <return xmlns:ns2="http://srv.v3.ws.ea.com/">
            <result>
               <complete>true</complete>
               <success>true</success>
            </result>
            <supplierAccountInformation>
               <addressCity>PARIS 14</addressCity>
               <addressCountryCode>FRA</addressCountryCode>
               <addressPostCode>75014</addressPostCode>
               <addressStreet>VLA DE LOURCINE</addressStreet>
               <companyCountryCode>FRA</companyCountryCode>
               <companyIDType>CIT001</companyIDType>
               <companyIDValue>50382936800037</companyIDValue>
               <monitoredSupplier>false</monitoredSupplier>
               <name>E-ATTESTATIONS.COM</name>
               <outOfBusiness>false</outOfBusiness>
               <subscriptionDate>2010-11-24T10:38:32.224+01:00</subscriptionDate>
               <subscriptionState>true</subscriptionState>
               <subscriptionKey>SXBQNTXKK6VM</subscriptionKey>
               <supplierCode>SC_001</supplierCode>
               <supplierUsers>
                  <email>contact@e-attestations.com</email>
                  <firstName>Jean</firstName>
                  <internationalPhone>+33 1 58 06 00 23</internationalPhone>
                  <lastName>Dupont</lastName>
               </supplierUsers>
            </supplierAccountInformation>
         </return>
      </ns1:getSupplierAccountInformationResponse>
   </soap:Body>
</soap:Envelope>

Structure - SupplierAccountInformation

AttributTypeDescription
nameStringDénomination sociale
addressStreetStringAdresse
addressCityStringVille
addressPostCodeStringCode postal
addressCountryCodeStringCode pays
supplierUsersList<UserInformation>Utilisateurs enregistrés
subscriptionStateBooleanCompte enregistré (true) ou non (false)
subscriptionDateDateDate d'inscription
subscriptionKeyStringClé d'inscription pour l'enrôlement
outOfBusinessBooleanÉtablissement fermé
getGlobalInformation

Retourne les statistiques au niveau du compte couvrant les fournisseurs actuellement suivis. Aucun paramètre requis.

Requête

XML Request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:srv="http://srv.v3.ws.ea.com/">
   <soapenv:Header/>
   <soapenv:Body>
      <srv:getGlobalInformation/>
   </soapenv:Body>
</soapenv:Envelope>

Réponse

XML Response
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <ns1:getGlobalInformationResponse xmlns:ns1="http://srv.v3.ws.ea.com/">
         <return xmlns:ns2="http://srv.v3.ws.ea.com/">
            <listIndicatorsStatistics>
               <indicatorCode>I001</indicatorCode>
               <numberOfCompleteDossier>244</numberOfCompleteDossier>
               <numberOfCompleteSupplier>153</numberOfCompleteSupplier>
               <numberOfDossier>447</numberOfDossier>
               <numberOfSupplier>316</numberOfSupplier>
               <numberOfSubscribedSupplier>252</numberOfSubscribedSupplier>
            </listIndicatorsStatistics>
            <numberOfCompleteDossier>222</numberOfCompleteDossier>
            <numberOfCompleteSupplier>139</numberOfCompleteSupplier>
            <numberOfDossier>448</numberOfDossier>
            <numberOfSupplier>317</numberOfSupplier>
            <numberOfSubscribedSupplier>252</numberOfSubscribedSupplier>
         </return>
      </ns1:getGlobalInformationResponse>
   </soap:Body>
</soap:Envelope>
getAvailableDocuments

Retourne les types de documents configurés pour le compte : documents autorisés (disponibles à la demande) et documents par défaut (demandés par défaut si aucun n'est spécifié).

Requête

XML Request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:srv="http://srv.v3.ws.ea.com/">
   <soapenv:Header/>
   <soapenv:Body>
      <srv:getAvailableDocuments/>
   </soapenv:Body>
</soapenv:Envelope>

Réponse

XML Response
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <ns1:getAvailableDocumentsResponse xmlns:ns1="http://srv.v3.ws.ea.com/">
         <return xmlns:ns2="http://srv.v3.ws.ea.com/">
            <availableDocuments>
               <documentCode>ASSUR_RCPRO</documentCode>
               <name>Attestation d'assurance RC Pro</name>
            </availableDocuments>
            <availableDocuments>
               <documentCode>ASSUR_DECENNALE</documentCode>
               <name>Attestation d'assurance décennale</name>
            </availableDocuments>
            <availableDocuments>
               <documentCode>JUSTIF_IMM</documentCode>
               <name>Justificatif d'immatriculation</name>
            </availableDocuments>
            <availableDocuments>
               <documentCode>LST_SAL_ETR</documentCode>
               <name>Déclaration des salariés</name>
            </availableDocuments>
            <availableDocuments>
               <documentCode>ATT_MARCHE_PUBLIC</documentCode>
               <name>Attestation de marché public</name>
            </availableDocuments>
            <availableDocuments>
               <documentCode>ATT_VIGI</documentCode>
               <name>Attestation de vigilance (6 mois)</name>
            </availableDocuments>
            <defaultDocuments>
               <documentCode>JUSTIF_IMM</documentCode>
               <name>Justificatif d'immatriculation</name>
            </defaultDocuments>
            <defaultDocuments>
               <documentCode>LST_SAL_ETR</documentCode>
               <name>Déclaration des salariés</name>
            </defaultDocuments>
            <defaultDocuments>
               <documentCode>ATT_VIGI</documentCode>
               <name>Attestation de vigilance (6 mois)</name>
            </defaultDocuments>
         </return>
      </ns1:getAvailableDocumentsResponse>
   </soap:Body>
</soap:Envelope>
updateDossier

Modifie les informations d'un dossier actif : référence, description, expiration, catégorie, code fournisseur et invitations par email.

Paramètres - DataToUpdate (au moins 1 requis)

AttributTypeDescription
newDescriptionStringNouvelle description
newDossierReferenceStringNouvelle référence (non vide, espaces supprimés, majuscules)
newExpirationDateDateNouvelle date d'expiration
nilExpirationDateBooleanSupprimer la date d'expiration si true
newPurchasingCategoryStringNouvelle catégorie d'achat
newSupplierCodeStringNouveau code fournisseur
newSupplierEmailStringInviter un nouveau contact fournisseur (envoi email)

Requête

XML Request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:srv="http://srv.v3.ws.ea.com/">
   <soapenv:Header/>
   <soapenv:Body>
      <srv:updateDossier>
         <dossierUpdate>
            <dataToUpdate>
               <newDescription>This is my updated description</newDescription>
               <newDossierReference>NEW_REF_001</newDossierReference>
               <newExpirationDate>2016-12-31</newExpirationDate>
            </dataToUpdate>
            <dossierReference>REF_001</dossierReference>
            <supplierSearch>
               <supplierCode>SC_001</supplierCode>
            </supplierSearch>
         </dossierUpdate>
      </srv:updateDossier>
   </soapenv:Body>
</soapenv:Envelope>

Réponse - Succès

XML Response - Success
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <ns1:updateDossierResponse xmlns:ns1="http://srv.v3.ws.ea.com/">
         <return xmlns:ns2="http://srv.v3.ws.ea.com/">
            <complete>true</complete>
            <success>true</success>
         </return>
      </ns1:updateDossierResponse>
   </soap:Body>
</soap:Envelope>
stopDossier

Désactive un ou tous les dossiers d'un fournisseur.

Paramètres - DossierStop

AttributTypeRequisDescription
supplierSearchSupplierSearchOuiIdentification du fournisseur
dossierReferenceStringNonDossier spécifique (tous si omis)

Requête

XML Request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:srv="http://srv.v3.ws.ea.com/">
   <soapenv:Header/>
   <soapenv:Body>
      <srv:stopDossier>
         <dossierStop>
            <dossierReference>NEW_REF_001</dossierReference>
            <supplierSearch>
               <companyIDType>CIT001</companyIDType>
               <companyIDValue>50382936800037</companyIDValue>
            </supplierSearch>
         </dossierStop>
      </srv:stopDossier>
   </soapenv:Body>
</soapenv:Envelope>

Réponse - Succès

XML Response - Success
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <ns1:stopDossierResponse xmlns:ns1="http://srv.v3.ws.ea.com/">
         <return xmlns:ns2="http://srv.v3.ws.ea.com/">
            <complete>true</complete>
            <success>true</success>
         </return>
      </ns1:stopDossierResponse>
   </soap:Body>
</soap:Envelope>
updateRequiredDocuments

Remplace la liste des documents demandés pour un dossier actif. Les documents doivent être préalablement configurés.

Paramètres - RequiredDocumentsUpdate

AttributTypeRequisDescription
supplierSearchSupplierSearchOuiIdentification du fournisseur
dossierReferenceStringOuiRéférence du dossier
newRequiredDocumentsList<String>NonNouveaux codes documents (remplace les précédents)

Requête

XML Request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:srv="http://srv.v3.ws.ea.com/">
   <soapenv:Header/>
   <soapenv:Body>
      <srv:updateRequiredDocuments>
         <requiredDocumentsUpdate>
            <dossierReference>NEW_REF_001</dossierReference>
            <!-- Documents actuellement demandés-->
            <newRequiredDocuments>ATT_VIGI</newRequiredDocuments>
            <newRequiredDocuments>JUSTIF_IMM</newRequiredDocuments>
            <newRequiredDocuments>ASSUR_RCPRO</newRequiredDocuments>
            <!-- Nouveaux documents à demander -->
            <newRequiredDocuments>ATT_MARCHE_PUBLIC</newRequiredDocuments>
            <newRequiredDocuments>LST_SAL_ETR</newRequiredDocuments>
            <supplierSearch>
               <companyIDType>CIT001</companyIDType>
               <companyIDValue>50382936800037</companyIDValue>
            </supplierSearch>
         </requiredDocumentsUpdate>
      </srv:updateRequiredDocuments>
   </soapenv:Body>
</soapenv:Envelope>

Réponse - Succès

XML Response - Success
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <ns1:updateRequiredDocumentsResponse xmlns:ns1="http://srv.v3.ws.ea.com/">
         <return xmlns:ns2="http://srv.v3.ws.ea.com/">
            <complete>true</complete>
            <success>true</success>
         </return>
      </ns1:updateRequiredDocumentsResponse>
   </soap:Body>
</soap:Envelope>
reactivateDossier

Réactive un dossier désactivé avec modification optionnelle de la date d'expiration.

Paramètres - DossierReactivate

AttributTypeRequisDescription
supplierSearchSupplierSearchOuiIdentification du fournisseur
dossierReferenceStringNonRéférence du dossier à réactiver
expirationDateDateNonNouvelle expiration (conserve précédente si omis)
nilExpirationDateBooleanNonSupprimer expiration si true (priorité sur expirationDate)

Requête

XML Request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:srv="http://srv.v3.ws.ea.com/">
   <soapenv:Header/>
   <soapenv:Body>
      <srv:reActivateDossier>
         <dossierReActivate>
            <dossierReference>SUP008183</dossierReference>
            <supplierSearch>
               <companyIDType>CIT001</companyIDType>
               <companyIDValue>50879531700017</companyIDValue>
            </supplierSearch>
         </dossierReActivate>
      </srv:reActivateDossier>
   </soapenv:Body>
</soapenv:Envelope>

Réponse - Succès

XML Response - Success
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <ns1:reActivateDossierResponse xmlns:ns1="http://srv.v3.ws.ea.com/">
         <return xmlns:ns2="http://srv.v3.ws.ea.com/">
            <complete>true</complete>
            <success>true</success>
         </return>
      </ns1:reActivateDossierResponse>
   </soap:Body>
</soap:Envelope>

Nomenclature

Types d'identifiants entreprise (companyIDType)

CodeDescriptionFormat
CIT001SIRET (Identifiant établissement français)14 chiffres passant l'algorithme de Luhn
CIT002Numéro TVA (Identifiant entreprise CEE)Selon standard d'identification TVA
CIT003DUNS (Dun & Bradstreet)Identifiant commercial international

Codes d'indicateur

CodeNomDescription
I001Travail dissimuléComplétude des documents selon la configuration du compte

Codes d'erreur

Codes HTTP

CodeSignification
400Bad Request (protocole SOAP invalide)
401Unauthorized (clé API invalide)
403Forbidden (identifiants incorrects ou IP non trustée)
418I'm a teapot
500Internal Server Error
503Service Unavailable

Erreurs communes

CodeDescriptionInfo additionnelle
E001Paramètre manquantNom du paramètre
E002Paramètre inconnuNom/valeur du paramètre
E003Paramètre videNom du paramètre
E010Format incorrectNom/valeur du paramètre
E011Taille maximale dépasséeNom du paramètre / taille max
E021Date dans le passé (newExpirationDate)Nom du paramètre
E022Date dans le futurNom du paramètre
E030Domaine email invalideValeur du paramètre

Erreurs Fournisseur/Entité

CodeDescriptionInfo additionnelle
E100Aucun fournisseur ne correspond aux critères
E101Erreur de qualification établissement
E102Établissement inexistantIdentifiant (companyIDType/companyIDValue)
E103Établissement ferméIdentifiant
E104Plusieurs fournisseurs correspondentIdentifiant
E111SupplierCode différent de l'existantCode existant
E112SupplierCode déjà utilisé ailleursAutre identifiant fournisseur
E113Compte fournisseur désactivé
E121Impossible d'importer fournisseur FR avec TVAIdentifiant
E122Fournisseurs étrangers désactivés

Erreurs Dossier

CodeDescriptionInfo additionnelle
E200Aucun dossier ne correspond aux critères
E201Dossier désactivéRéférence du dossier
E202Référence déjà existante pour ce fournisseurRéférence du dossier
E203Aucun dossier avec cette référenceRéférence du dossier
E204Dossier déjà actifRéférence du dossier
E205Date de réactivation dans le passéDate d'expiration

Erreurs Document

CodeDescriptionInfo additionnelle
E301Document désactivé (non demandable)Code du document
E302Document non autorisé (pas dans la bibliothèque)Code du document

Support & Ressources

Tech'Desk

Support technique dédié aux APIs

api@eattestationscom.zohodesk.eu

WSDL

Documentation technique complète

Voir le WSDL

API REST

Notre nouvelle API recommandée

Documentation API REST

Bonnes pratiques

  • Composer les recherches fournisseur via : (companyIDType + companyIDValue) OU supplierCode
  • Gérer l'asynchrone importDossier via processId avec polling
  • Analyser Result et Error dans chaque réponse
  • Utiliser PasswordDigest pour l'authentification (plus sécurisé)
  • Implémenter un proxy/cache pour les téléchargements de fichiers (whitelist IP requise)
  • Respecter TLS 1.2 uniquement
  • Paramétrer URLs et identifiants en configuration