Guide développeur - API GesCo Fonds Réparations EEE

Documentation à l’adresse des développeurs pour l’utilisation de l’API de pilotage des données et des traitements pour le Fonds Réparations EEE.

Avril 2024

Nous attirons votre attention qu'à partir de début Avril 2024,

  1. tous les codes pannes 2023 ne sont plus utilisables.

  2. il n’est plus nécessaire de créer une demande de soutien (Request), vous pouvez créer directement une demande de remboursement (Claim)

  • Versions déployées de l’API GesCo Fonds Réparations EEE

    • PreProd = 1.4

    • Prod = 1.3 attention la version 1.4 n’est pas encore déployée en Production

 

Historique des versions

  • version 1.4 prod Apr 2, 2024 / preprod Mar 18, 2024

    • Création d’un dossier Claims (Demande de remboursement) sans création préalable d’un dossier Request (Demande de soutien)
      Pendant encore quelques mois, les anciennes méthodes liées aux Requests (Demande de soutien) sont utilisables pour faciliter la transition

    • calculateecosupport :

      • support de la date de réparation pour valider la période de prise en charge

  • version 1.3 Dec 11, 2023

    • Création ou mise à jour de Request sans usage du SMS => mode unique autorisé

  • version 1.2 Jul 19, 2023

    • calculateecosupport :

      • support des marques inconnues

      • détection des équipements pris en charge dans le cas d’une marque inconnue par Ecologic ou Eco System

    • CreateSupportRequest

      • support des marques inconnues

    • CreateClaim / UpdateClaim

      • support des marques inconnues

  • version 1.1 May 8, 2023

    • printproducttypewithlabellist : ajout d’une méthode permettant d’obtenir les codes symptomes et réparations avec leur intitulé afin de faciliter la présentation dans l’interface utilisateur

    • calculateecosupport : prise en compte du paramètre RepairCode pour définir la prise en charge de la panne si elle est identifiée à cette étape

    • submitclaim : ajout de cette méthode pour déclencher la soumission d’un dossier de remboursement en utilisant uniquement l’ID du dossier. L’usage de UpdateClaim avec le paramètre “submit=true” est toujours possible

    • Code HTTP 206 pour les réponses aux méthodes Create et Update pour les Request (dossier de demande soutien) et Claim (dossier de demande de remboursement)

  • version 1.01 Mar 8, 2023

    • getsupportrequestStatus = affichage des erreurs encore présentes (comme pour CreateSupportRequest ou UpdateSupportRequest)

    • getclaimstatus= affichage des erreurs encore présentes dans la demande de remboursement (comme pour CreateClaim ou UpdateClaim)

    • PostMan = mise à jour de la collection

  • version 1.0 version initiale Mar 1, 2023

 

 

Objectifs

Cette API permet l’intégration des étapes de traitements et l'échange des données entre les applications métiers de réparateur et le système d’information gérant les données de soutien pour le Fond Réparations EEE.
Basée sur les standards JSON Rest, elle s’adresse aux intégrateurs et développeurs.

Diagramme de séquence

Le diagramme ci-contre, est une proposition de scénario de séquence des appels vers les méthodes de l’API.

La phase initiale consiste à récupérer les informations de référence devant être utilisée par l’application cliente.
Il est recommandé de consolider les référentiels au moins 1 fois par jour.

Une fois les informations sur le produit et l’estimation / devis pour la panne réalisée, la première étape est de s’assurer que la réparation va bien être prise en charge par Ecologic avec “CalculateEcoSupport”.

Si la réponse est positive vous avez le montant du soutien allouable à l’acte de réparation.

La demande de remboursement se crée avec “CreateClaim” et la réponse vous indique s’il vous manque des informations pour pouvoir la soumettre à la vérification (et alors si tout est OK, au paiement).

Généralement, il manque initialement les documents de type, facture, plaque de numéro de série…
Ces documents peuvent être intégrés à la demande de remboursement avec “AttachFile”.
Il est aussi possible de compléter la demande avec “UpdateClaim”.

Si la vérification est OK avec “GetClaimStatus”, vous pouvez faire un “SubmitClaim” en demandant la soumission du dossier.

Le dossier de remboursement passe ensuite dans les étapes de contrôle chez Ecologic.

Gestion des marques inconnues (ou dites Orphelines) version 1.2

L’API comme l’interface Web permet de gérer les dossiers de demandes de soutien (Request) ou de demandes de remboursement (Claim) en définissant pour un équipement donnée une marque inconnue.

Le mécanisme est testable en ligne sur le site Label QualiRepar = https://www.label-qualirepar.fr/remboursement-bonus/

Ecologic ou EcoSystems

Une marque est dites inconnue à partir du moment où elle n’est pas listée dans la réponse à la méthode printbrandlist.
Exemple :

  • produit smartphone avec le code EEE.M2.044

  • marque “SUPERPhone”

Ce couple n’est pas listé et doit être traité comme une marque inconnue.

Lorsqu’un produit est associé à une marque inconnue, pour savoir si Ecologic est en charge de celui-ci, il faut interroger la méthode calculateecosupport. La réponse peut être négative, dans ce cas, il faut faire appel à l’API d’EcoSystems.

Marques inconnues pour les Requests et les Claims

Cette définition de la marque inconnue peut être aussi appelée pour les Request et les Claims.
Voir plus en détails les ajouts spécifiques pour ces méthodes.

Environnement de développement (Pre Production)

Lexique

  • Request = demande de soutien

  • Claim =demande de remboursement

Accéder à l’environnement de développement

Pré requis

Le développement n’a de sens que s’il s’adresse à un réparateur qui dispose d’un compte sur le service e-reparateur.eco (https://www.e-reparateur.eco )

Le développeur doit contacter le support afin de se faire identifier : support@e-reparateur.eco

Procédure

  1. contacter le support support@e-reparateur.eco en demandant à avoir accès à un environnement de pré-production

  2. si votre demande est acceptée vous recevrez par email en réponse

    1. une clé API de Pré-Production pour réaliser votre développement

    2. un compte d’accès au service web e-reparateur de Pre-Production sur lequel vous pourrez gérer, vérifier, mettre à jour les différents objets du service

  3. vous pouvez contacter le support par email sur support@e-reparateur.eco

Récupération de votre clé de Pre Production

Vous pouvez aussi générer votre clé de pré-production en vous connectant sur votre compte e-reparateur de Pré-Production (sur https://preprod-ecologic.agoraplus.com/) et dans les informations de celui-ci, utiliser l’entrée “Ma Clé API” dans le menu à droite.

Veillez à bien vous assurer que la clé générée est avec le statut “Etat = Activé”

image-20240208-113252.png

 


Outils de tests

Une fois que vous avez vos accès vous pouvez tester les premiers éléments (notamment votre clé API) avec les outils suivants

SwaggerUI

SwaggerUI de l’API de Pre Production = https://preprod-apiecologic.e-reparateur.eco/apidoc/ui/index#/

Requis = disposer de votre clé d’autorisation d’usage de l’API (voir ci-dessu)

 

 

une fois votre clé entrée vous pourrez tester les méthodes de l’API

 

PostMan

Les informations contenus dans les structures JSON et les paramètres POSTMAN peuvent contenir des paramètres liés aux produits, aux code symptomes, aux code pannes qui ne sont plus valides au moment où vous réaliserez vos tests.
Donc veiller à vérifier ces paramètres notamment à partir des informations récupérées avec les méthodes d’interrogations du référentiel.

Postman est un outil standard dans le développement et la validation des API Rest.
Nous vous mettons à disposition une collection préparée pour pouvoir tester toutes les méthodes, mais il est recommandé de bien lire les informations fournies pour chacune d’entre elles.

Pour utiliser la collection disponible ci-contre, vous avez juste à réaliser l’importation du fichier json depuis l’interface de Postman.

Ensuite il vous reste à définir votre clé API de Pre Production pour réaliser les appels avec le niveau d’autorisation du site associé.
Pour cela ouvrez l’arborescence de la collection et sélectionnez “Pre Prod” et l’onglet “Authorization” pour y intégrer votre clé API

Pour utiliser une méthode sélectionnez là dans l’arborescence et adaptez les valeurs pour les paramètres et le contenu pour le body selon votre contexte

 

Collection PostMan à importer

version du Mar 25, 2024

La collection regroupe les méthodes dans des dossiers permettant de plus facilement identifier un ordre type d’usage de celles-ci.
Ce n’est qu’un exemple, il vous est possible d’organiser les appels aux méthodes différemment et de n’utiliser que celles que vous identifiez utiles.

 

 

Environnement de Production

Récupération de votre clé de Production

Vous pouvez générer votre clé de production en vous connectant sur votre compte e-reparateur de Production (sur https://www.e-reparateur.eco/) et dans les informations de celui-ci, utiliser l’entrée “Ma Clé API” dans le menu à droite.

 


Spécifications de l’API

Authentification

Appeler l’API depuis une service nécessite de disposer d’une clé d’authentification à passer dans l'entête HTTP de chacune des requêtes.

Nom de la clé d’entête = api_key

Valeur de la clé = <votre_clé_api> (GUID ex : C8E88146-AF8D-4E95-9B76-8C8FFF5A2C9B)


Vérification des sites

Récupération des informations du site associé à la clé API - /GetRepairSitesByATS GET

URL Preprod = https://preprod-apiecologic.e-reparateur.eco/api/v1/ecosupport/getrepairsitesbyats

Fonctions

Permet de récupérer les ID des sites associés à la clé API utilisée.
Ce sera l’information qu’il faudra ensuite utiliser dans certaines méthodes dans le paramètre “RepairSiteId

Ex réponse

{ "ResponseData": [ { "SiteId": "02c867c0-0000-0000-000-3cf8de2dc1c8", "Name": "Test Reparateur", "CommercialName": "ECO REPARE", "Zip": "78280", "City": "GUYANCOURT" } ], "ResponseStatus": "S", "IsValid": true, "ResponseMessage": "", "ResponseErrorMessage": "" }

Réponse avec plusieurs sites

{ "ResponseData": [ { "SiteId": "9cc23555-0000-0000-0000-3279c2f57261", "Name": "Test Reparateur 1", "CommercialName": "ECO REPARE", "Zip": "12100", "City": "MILLAU" }, { "SiteId": "0590e586-0000-0000-0000-f94f4e1cb199", "Name": "Test Reparateur 1", "CommercialName": "ECO REPARE", "Zip": "12850", "City": "ONET-LE-CHATEAU" }, { "SiteId": "b14ca037-0000-0000-0000-54a3391ee624", "Name": "Test Reparateur 1", "CommercialName": "ECO REPARE", "Zip": "12200", "City": "VILLEFRANCHE-DE-ROUERGUE" } ], "ResponseStatus": "S", "IsValid": true, "ResponseMessage": "", "ResponseErrorMessage": "" }

Référentiels des données

Les créations de dossier de demande de soutien et de remboursement nécessitent de s’appuyer sur des données de références utilisées par l’API.
Celle-ci permet par contre de récupérer ces référentiels mis à jour régulièrement (au moins 1 fois toutes les 24h).

Récupération de la liste des marques - /PrintBrandList GET

URL Preprod = https://preprod-apiecologic.e-reparateur.eco/api/v1/ecosupport/printbrandlist

URL Prod = https://apiecologic.e-reparateur.eco/api/v1/ecosupport/printbrandlist

Fonctions

Permet de récupérer la liste des marques supportées par Ecologic.
Appeler cette API vous permettra de disposer d'un code marque unique et de l'associer à votre référentiel.

Usage

entrée = pas de paramètre spécifique

Exemple de réponse

{ "ResponseData": [ { "BrandName": "Acer", "BrandId": "1689" }, { "BrandName": "ADVANCE", "BrandId": "1922" }, { "BrandName": "AEG", "BrandId": "1690" }, ... ], "ResponseStatus": "S", "IsValid": true, "ResponseMessage": "", "ResponseErrorMessage": "" }

Récupérer la liste des types de produit - /PrintProductTypeListWithLabelList GET version 1.1

URL Preprod = https://preprod-apiecologic.e-reparateur.eco/api/v1/ecosupport/printproducttypewithlabellist

URL Prod = https://apiecologic.e-reparateur.eco/api/v1/ecosupport/printproducttypewithlabellist

Fonctions

Permet de récupérer la liste des équipements avec

  • code unique de l'équipement

  • nom de l'équipement

  • date d'éligibilité au soutien

  • date de fin du soutien

  • Tableau des codes pannes

  • Tableau des codes symtomes

Exemple usage

entrée = pas de paramètre spécifique

sortie =

ProductId = Identifiant produit

ProductName  =Désignation du type de produit (ex: Four (hors micro-ondes et mini-four))

EligibilityStartDate = Date de début d'éligibilité

EligibilityEndDate = Date de fin d'éligibilité

RepairCodes = Tableau d’une liste des codes pannes IRIS pouvant être utilisés dans la demande de remboursement (Claim) avec leur libellé

IRISSymptoms = Tableau d’une liste des codes symptôme IRIS éligibles pour le type de produits et pour Ecologic à utiliser dans la demande de soutien (Request) avec leur libellé

Exemple de réponse

Récupérer la liste des types de produit - /PrintProductTypeList GET

URL Preprod = https://preprod-apiecologic.e-reparateur.eco/api/v1/ecosupport/printproducttypelist

URL Prod = https://apiecologic.e-reparateur.eco/api/v1/ecosupport/printproducttypelist

Fonctions

Permet de récupérer la liste des équipements avec

  • code unique de l'équipement

  • nom de l'équipement

  • date d'éligibilité au soutien

  • date de fin du soutien

  • Tableau des codes pannes

  • Tableau des codes symtomes

.

Exemple usage

entrée = pas de paramètre spécifique

sortie =

ProductId = Identifiant produit

ProductName  =Désignation du type de produit (ex: Four (hors micro-ondes et mini-four))

EligibilityStartDate = Date de début d'éligibilité

EligibilityEndDate = Date de fin d'éligibilité

RepairCodes = Tableau des codes pannes IRIS pouvant être utilisés dans la demande de remboursement (Claim)

IRISSymptoms[] = Liste des codes symptôme IRIS éligibles pour le type de produits et pour Ecologic à utiliser dans la demande de soutien (Request)

Exemple de réponse


Demandes de soutien

Plusieurs méthodes sont disponibles pour gérer la construction et la soumission d’une demande de soutien, tout en s’assurant que les équipements concernés y seront éligibles.

Calculer le montant du soutien - /CalculateEcoSupport GET

URL Preprod = https://preprod-apiecologic.e-reparateur.eco/api/v1/ecosupport/calculateccosupport

URL Prod = https://apiecologic.e-reparateur.eco/api/v1/ecosupport/calculateccosupport

Fonctions

Permet de connaître l'éligibilité, l'éco-organisme et le montant du soutien pour un type de produit donné, en fonction du symptôme ou du code section fourni. Cette API n'a pour seul but que de simuler la demande de soutien.

Elle n'effectue aucune demande réelle auprès d'Ecologic.

Données à transmettre

Exemple

Données en entrée

  • TotalAmountExclVAT : Montant total HT de la réparation

  • TotalAmountExclVAT_Currency : Devise

  • BrandId: Code de la marque (retourné préalablement par l'API /PrintBrandList)

  • ProductId : Code du type de produit (retourné préalablement par l'API /PrintProductTypeList) 

  • au choix

    • IRISSymptom : une des valeurs possibles du code symptome pour le produit issu du référentiel

    • repairCode : une des valeurs possibles du code panne pour le produit issu du référentiel

  • optionnel version 1.4

    • repairEndDate : Date de référence de la fin de réparation (ISO8601)

Données en sortie

  • EcoOrganizationId: Identifiant e-Reparateur de l'éco-organisme (44=Ecologic, 45=Ecosystem)

  • SupportAmount: Montant TTC du soutien

Exemple de paramètre en entrée

 

Exemple de réponse

Gestion des erreurs

Si le produit ou la marque n’est pas connu vous aurez une réponse similaire à

Si le symptôme ne correspond pas au code IRIS du produit l’erreur sera

Si la fiche de compétence (ou fiche métier) associée au produit soumis, issue de la labellisation, n’est pas associée au site faisant la demande un refus sera retourné.

Si la date de réparation repairEndDate ne correspond plus à la panne demandée

Si le produit demandé n’existe pas

 

CalculateEcoSupport - Usage des marques inconnues version 1.2

Ce qui donne par exemple les paramètres suivants

 

Si jamais le produit n’est pas pris en charge pour une marque inconnue par Ecologic, la réponse indique une erreur "ResponseMessage": "Invalid organization"

exemple

 


Gestion des demandes de remboursement

Une fois le dossier de soutien accepté et validé par le consommateur, la demande de remboursement peut être créée et gérée.

Créer une demande de remboursement - /CreateClaim POST

URL Preprod = https://preprod-apiecologic.e-reparateur.eco/api/v1/ecosupport/createclaim

URL Prod = https://apiecologic.e-reparateur.eco/api/v1/ecosupport/createclaim

Fonctions

Permet d'effectuer la demande de remboursement (Claim) en convertissant une demande de soutien (Request)

En retour de cet appel, vous obtiendrez l'ID de votre demande de remboursement (ClaimId), qu'il vous faudra utiliser pour corriger les erreurs de validation, pour ajouter les pièces jointes requises et finalement soumettre votre demande. 

Informations du consommateur obligatoires

Données

Champs

Remarque

Données

Champs

Remarque

Civilité

Title

1 : Mrs. ; 2 : Ms. ; 3 : Mr. ; 4 : Société

Nom

LastName

 

Prénom

FirstName

 

Code postal

Zip

 

Ville

City

 

E-mail

Email

 

N° de téléphone

Phone

 

Pays

Country

code 250 pour la France
ISO 3166

Informations du Produit obligatoires

Données

Champs

Remarque

Données

Champs

Remarque

Marque

BrandId

issu du référentiel

Type de produit

ProductId

issu du référentiel

Code Panne

IRISSection

issu du référentiel

Informations du Produit facultatives

Données

Champs

Remarque

Données

Champs

Remarque

Référence commerciale

CommercialRef

 

N° de série / ID

SerialNumber

 

Données en entrée

Dans les paramètres
ex : /createclaim?repairEndDate=2024-03-25T09:00:00Z&repairSiteId=02c867c0-3cef-454d-9a04-3cf8de2dc1c8&consumerInvoiceNumber=FACT_20240325-1&quoteNumber=REF_INT_20240325-1

  • RepairEndDate = Date de référence de la fin de réparation (ISO8601)

  • RepairSiteId = ID de votre compte e-reparateur.eco

  • ConsumerInvoiceNumber = numéro de référence de votre facture cliente

  • quoteNumber optionnel = numéro de référence interne chez le réparateur

Dans le body

  • IRISSection = il faut intégrer le code panne IRIS parmi ceux associés au produit dans le référentiel

 

Données en sortie

  • IsValid : indique si la création du Claim s’est passée correctement.

  • ResponseMessage / ResponseErrorMessage : indique la nature de l’erreur si la création du Claim n’est pas possible

  • ResponseData : informations liée au Claim qui vient d'être créé

    • ClaimId : Identifiant du dossier de remboursement

    • IsValid : indique si les données du dossier de remboursement sont complètes et valide (true ou false)

    • ValidationErrors : tableau des erreurs détectées si IsValid = false

 

version 1.1

 

Exemple de réponse

exemple pour une prise en charge d’un fer à repasser

 


Ajouter une pièce jointe à la demande de remboursement - /AttachFile POST

URL Preprod = https://preprod-apiecologic.e-reparateur.eco/api/v1/ecosupport/AttachFile

URL Prod = https://apiecologic.e-reparateur.eco/api/v1/ecosupport/AttachFile

Fonctions

Permet d'ajouter un document à une demande de remboursement. 

Un dossier de remboursement peut contenir plusieurs types de fichiers

Les types de fichiers qui peuvent être joints à une demande : 

Données à transmettre

exemple

Données en entrée

Dans les paramètres
ex : /AttachFile?ClaimId=16466&FileName=Facture797&FileExtension=pdf&DocumentType=Invoice

  • ClaimId = date de référence du dossier de demande de remboursement, issu de la réponse à CreateClaim

  • FileName = nom du fichier transmis (sans l’extension)

  • FileExtension = extension du fichier (voir ci contre)

    • permet de définir le type

    • extension sans le point “.”

  • DocumentType = type de document transmis à intégrer dans la demande (voir les codes identifiants ci contre)

Dans le body

  • FileContent = contenu du fichier en Base64

 

Données en sortie

  • "Code 200 -> OK"

Le statut de sortie est géré par le statut de la réponse HTTP

  • Code 200 -> OK

  • Code 400 -> Bad request

  • Code 500 -> Internal Error


Mettre à jour, corriger la demande de remboursement - /UpdateClaim POST

URL Preprod = https://preprod-apiecologic.e-reparateur.eco/api/v1/ecosupport/updateclaim

URL Prod = https://apiecologic.e-reparateur.eco/api/v1/ecosupport/updateclaim

Fonctions

Permet de mettre à jour, de corriger et de soumettre la demande de remboursement. La mise à jour n'est plus possible après la soumission de la demande.

Données à transmettre

Exemple (les données ci-dessous de l’exemple sont à mettre à jour; en effet des champs sont obsolètes)

Données en entrée

Dans les paramètres
ex : /UpdateClaim?ClaimId=5310865&repairEndDate=2023-02-24T11:00:00Z&RepairSiteId=02c867c0-3cef-454d-9a04-3cf8de2dc1c8&consumerInvoiceNumber=FACT_20230301-1&quoteNumber=REF_INT_20230301-1&Submit=false

  • ClaimId = date de référence du dossier de demande de soutien, issu de la réponse à CreateSupportRequest

  • RepairEndDate = Date de référence de la fin de réparation (ISO8601)

  • RepairSiteId = ID de votre compte e-reparateur.eco

  • ConsumerInvoiceNumber = numéro de référence de votre facture cliente

  • quoteNumber optionnel = numéro de référence interne chez le réparateur

 

Dans le body

Données en sortie

  • ClaimId : Identifiant du dossier de remboursement en cours

  • IsValid : indique si le dossier de remboursement est valide (true ou false)

  • ValidationErrors : tableau des erreurs détectées si IsValid = false

 

version 1.1

 

Exemple de réponse

Si la soumission est OK

Facture non conforme à la soumission

Exemple de facture non liée à l’utilisateur

 


Suivre le statut de la demande de remboursement - /GetClaimStatus GET

URL Preprod = https://preprod-apiecologic.e-reparateur.eco/api/v1/ecosupport/getclaimstatus

URL Prod = https://apiecologic.e-reparateur.eco/api/v1/ecosupport/getclaimstatus

Fonctions

Permet de connaitre le statut d'une demande de remboursement qui a été soumise.

Données à transmettre

Exemple

/GetClaimStatus?ClaimId=5312276

Données en entrée

Dans les paramètres
ex : /GetClaimStatus?ClaimId=5312276

  • ClaimId = date de référence du dossier de demande de soutien, issu de la réponse à CreateSupportRequest

Données en sortie

  • ValidationErrors : liste des erreurs encore présentes dans le dossier empêchant sa soumission

  • LastStatus : Dernier statut de la demande de soutien

    • “Dossier incomplet” : des pièces ou des informations doivent être ajoutées au dossier de demande de remboursement (Claim) avant de tenter de le soumettre

Exemple de réponse

Soumettre la demande de remboursement - /submitclaim POST version 1.1

URL Preprod = https://preprod-apiecologic.e-reparateur.eco/api/v1/ecosupport/submitclaim

URL Prod = https://apiecologic.e-reparateur.eco/api/v1/ecosupport/submitclaim

Fonctions

Permet de soumettre simplement un dossier

Données à transmettre

Exemple

/submitclaim?claimId=5275562

Données en entrée

Dans les paramètres
ex : /submitclaim?claimId=5275562

  • claimId = date de référence du dossier de demande de soutien, issu de la réponse à CreateSupportRequest

Données en sortie

  • ResponseData : détails sur le traitement

    • IsValid : indique si la soumission a été validée

    • ValidationErrors : liste des erreurs encore présentes dans le dossier empêchant sa soumission

 

 

Exemple de réponse

si la soumission contient des erreurs :

Si la soumission est OK