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,
tous les codes pannes 2023 ne sont plus utilisables.
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
- 1 Historique des versions
- 2 Objectifs
- 3 Gestion des marques inconnues (ou dites Orphelines) version 1.2
- 4 Environnement de développement (Pre Production)
- 5 Environnement de Production
- 6 Spécifications de l’API
- 6.1 Authentification
- 6.2 Vérification des sites
- 6.3 Référentiels des données
- 6.4 Demandes de soutien
- 6.5 Gestion des demandes de remboursement
- 6.5.1 Créer une demande de remboursement - /CreateClaim POST
- 6.5.2 Ajouter une pièce jointe à la demande de remboursement - /AttachFile POST
- 6.5.3 Mettre à jour, corriger la demande de remboursement - /UpdateClaim POST
- 6.5.4 Suivre le statut de la demande de remboursement - /GetClaimStatus GET
- 6.5.5 Soumettre la demande de remboursement - /submitclaim POST version 1.1
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 transitioncalculateecosupport :
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
contacter le support support@e-reparateur.eco en demandant à avoir accès à un environnement de pré-production
si votre demande est acceptée vous recevrez par email en réponse
une clé API de Pré-Production pour réaliser votre développement
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
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é”
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 |
---|---|---|
Civilité | Title | 1 : Mrs. ; 2 : Ms. ; 3 : Mr. ; 4 : Société |
Nom | LastName |
|
Prénom | FirstName |
|
Code postal | Zip |
|
Ville | City |
|
| ||
N° de téléphone | Phone |
|
Pays | Country | code 250 pour la France |
Informations du Produit obligatoires
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 |
---|---|---|
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"eNumber=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"eNumber=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