Présentation


AgoraGroup met à disposition des partenaires d’Ecologic et d'Ecosystem un ensemble d'interfaces digitales qui permettront aux éditeurs de logiciel et autres services IT d'implémenter le processus de demande d'éligibilité et de remboursement du montant de la subvention du fonds de réparation.


Le diagramme ci-dessous, présente les interactions entre les différents systèmes ainsi que leurs séquences d'appel.


Diagramme de séquence


Spécifications techniques


1.0 Authentification


L'exploitation des APIs nécessite de disposer d'une clé d'API que vous pouvez obtenir dès lors que vous disposez d'un compte AgoraPlus. Dans le cadre du fonds de réparation, si vous n'êtes pas client d'AgoraPlus, vous pouvez créer votre compte directement à partir du site d'Ecologic ou bien, à partir de https://myspace.agoraplus.com 


Aide en ligne: Comment ouvrir un compte AGORA (clients français)? : Support Agoraplus 


Une fois votre compte créé, il vous suffit d'envoyer un mail à [email protected] afin que notre service client génère votre clé d'API.


La clé d'API devra être transmise dans l'entête HTTP de chaque appel. 

Exemple avec Postman:



1.1 Référentiels de données 


1.1.1 Récupération de la liste des marques


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


API CALL

 Path: /PrintBrandList
 Method: GET


API RESPONSE

{
  "ResponseData": [
    {
      "BrandName": "string",
      "BrandId": "string"
    }
  ],
  "ResponseStatus": "string",
  "IsValid": true,
  "ResponseMessage": "string",
  "ResponseErrorMessage": "string"
}



1.1.2 Récupérer la liste des types de produit


Une API nommée "PrintProductTypeList" permet de récupérer la liste des types de produit supportés par Ecologic et Ecosystem et unifiés par AgoraPlus. Appeler cette API vous permettra de disposer d'un code unique pour chaque type de produit afin de l'associer à votre référentiel. Cette API restitue également pour chaque type de produit les symptômes et les codes réparation éligibles au soutien.


API CALL

 Path: /PrintProductTypeList
 Method: GET


API RESPONSE

{
  "ResponseData": [
    {
      "ProductId": "string",
      "ProductName": "string",
      "EligibilityStartDate": "2022-06-27",
      "EligibilityEndDate": "2022-06-27",
      "RepairCodes": [
        {
          "RepairCode": "string"
        }
      ],
      "IRISSymtoms": [
        {
          "IRISSymtom": "string"
        }
      ]
    }
  ],
  "ResponseStatus": "string",
  "IsValid": true,
  "ResponseMessage": "string",
  "ResponseErrorMessage": "string"
}


ProductId = Identifiant unifié Ecologic et Ecosystem du type de produit (ex: 3015)

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[] = Liste des codes réparation éligibles pour le type de produits et pour Ecosystem

IRISSymptoms[] = Liste des codes symptome IRIS éligibles pour le type de produits et pour Ecologic



1.2 Demande de soutien


1.2.1 Calculer le montant du soutien


Une API nommée "CalculateEcoSupport" 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 réparation fourni. Cette API n'a pour seul but que de simuler la demande de soutien. Elle n'effectue aucune demande auprès d'Ecologic ou Ecosystem.


API CALL

 Path: /CalculateEcoSupport
 Method: POST
 Payload: 
 {
    "TotalAmountExclVAT": 120.00,
    "TotalAmountExclVAT_Currency": "EUR",
    "BrandId": 8055,
    "ProductId": 3032,
    "IRISSymtom": "001" 
 }


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) 

RepairCode : Liste des codes réparation éligibles pour le type de produits et pour Ecosystem

IRISSymptom : Liste des codes symptome IRIS éligibles pour le type de produits et pour Ecologic


API RESPONSE

{
 "ResponseData": [
    {
      "EcoOrganizationId": 44,
      "SupportAmount": {
        "Amount": "50.00",
        "Currency": "EUR"
      }
    }
  ],
  "ResponseStatus": "string",
  "IsValid": true,
  "ResponseMessage": "string",
  "ResponseErrorMessage": "string"
}


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

SupportAmount: Montant TTC du soutien



1.2.2 Effectuer la demande de soutien


Une API nommée "CreateSupportRequest" permet de soumettre la demande de soutien en vu d'obtenir la vérification du consommateur. Bien que non obligatoire pour Ecosystem, nous avons souhaité harmoniser le process pour faciliter l'implémentation. Cette étape est donc obligatoire, car l'Id de la demande sera demandé lors de la demande de remboursement.


API CALL

 Path: /CreateSupportRequest?CallDate=2022-06-27T11:50:37.913Z&RepairSiteId=54654&QuoteNumber=132564
 Method: POST
 Payload: 
 {
  "Consumer": {
    "Title": 1,
    "LastName": "Doe",
    "FirstName": "John",
    "StreetNumber": "121",
    "Address1": "Allée des roses",
    "Address2": "",
    "Address3": "",
    "Zip": "75010",
    "City": "Paris",
    "Country": "250",
    "Phone": "",
    "Email": "[email protected]"
  },
  "Product": {
    "ProductId": "3065",
    "BrandId": "5098",
    "CommercialRef": "AR8395C",
    "SerialNumber": "4546545445646",
    "PurchaseDate": "2016-04-13",
    "IRISCondition": "6",
    "IRISConditionEX": "X47",
    "IRISSymptom": "A53",
    "IRISSection": "W10",
    "IRISDefault": "Q",
    "IRISRepair": "A",
    "FailureDescription": "formation de mousse",
    "DefectCode": ""
  },
  "Quote": {
    "LaborCost": {
      "Amount": 70.00,
      "Currency": "EUR"
    },
    "SparePartsCost": {
      "Amount": 180.00,
      "Currency": "EUR"
    },
    "TravelCost": {
      "Amount": 0.00,
      "Currency": "EUR"
    },
    "TotalAmountExclVAT": {
      "Amount": 208.34,
      "Currency": "EUR"
    },
    "TotalAmountInclVAT": {
      "Amount": 250.00,
      "Currency": "EUR"
    },
    "SupportAmount": {
      "Amount": 50.00,
      "Currency": "EUR"
    }
  },
  "SpareParts": [
    {
      "Partref": "407142415/6",
      "Quantity": 1,
      "Status": "New"
    }
  ]
}
 


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

Country: 250 pour la France (List of ISO 3166 country codes - Wikipedia )


API RESPONSE

{
  "ResponseData": {
    "EcoOrganizationId": 44,
    "RequestId": 1564,
    "IsValid": true,
    "ErrorMessage": ""
  },
  "ResponseStatus": "",
  "IsValid": true,
  "ResponseMessage": "",
  "ResponseErrorMessage": ""
}


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

RequestId: Identifiant AgoraPlus de la demande de soutien



1.2.3 Suivre le statut de la demande de soutien


Une API nommée "GetSupportRequestStatus" permet de savoir si le consommateur a donné sa validation pour une demande de soutien donnée.


API CALL

 Path: /GetSupportRequestStatus?RequestId=1564
 Method: GET



API RESPONSE

{
  "ResponseData": [
    {
      "RequestId": 1564,
      "LastStatus": "Waiting",
      "Comment": "",
      "CreateDate": "2022-06-24T15:16:22.110Z"
    }
  ],
  "ResponseStatus": "string",
  "IsValid": true,
  "ResponseMessage": "string",
  "ResponseErrorMessage": "string"
}


LastStatus: Darnier statut de la demande de soutien (Waiting: en attente, Accepted: Acceptée, Refused: Refusée)



1.3 Demande de remboursement


1.3.1 Créer la demande de remboursement


Une API nommée "CreateClaim" permet d'effectuer la demande de remboursement. Les champs obligatoires sont indiqués dans le YAML. 

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. 



API CALL

Path: /CreateClaim?RequestId=1564&RepairEndDate=2022-06-27T11:50:37.913Z&RepairSiteId=54654&ConsumerInvoiceNumber=132564
 Method: POST
 Payload: 
 {
  "Consumer": {
    "Title": 1,
    "LastName": "Doe",
    "FirstName": "John",
    "StreetNumber": "121",
    "Address1": "Allée des roses",
    "Address2": "",
    "Address3": "",
    "Zip": "75010",
    "City": "Paris",
    "Country": "250",
    "Phone": "",
    "Email": "[email protected]"
  },
  "Product": {
    "ProductId": "3065",
    "BrandId": "5098",
    "CommercialRef": "AR8395C",
    "SerialNumber": "4546545445646",
    "PurchaseDate": "2016-04-13",
    "IRISCondition": "6",
    "IRISConditionEX": "X47",
    "IRISSymptom": "A53",
    "IRISSection": "W10",
    "IRISDefault": "Q",
    "IRISRepair": "A",
    "FailureDescription": "formation de mousse",
    "DefectCode": ""
  },
  "Quote": {
    "LaborCost": {
      "Amount": 70.00,
      "Currency": "EUR"
    },
    "SparePartsCost": {
      "Amount": 180.00,
      "Currency": "EUR"
    },
    "TravelCost": {
      "Amount": 0,
      "Currency": "EUR"
    },
    "TotalAmountExclVAT": {
      "Amount": 208.34,
      "Currency": "EUR"
    },
    "TotalAmountInclVAT": {
      "Amount": 250,
      "Currency": "EUR"
    },
    "SupportAmount": {
      "Amount": 50.00,
      "Currency": "EUR"
    }
  },
  "SpareParts": [
    {
      "Partref": "407142415/6",
      "Quantity": 1,
      "Status": "New"
    }
  ]
}



API RESPONSE

{
  "ResponseData": {
    "ClaimId": 16466,
    "IsValid": false,
    "ValidationErrors": [
      {
        "Field": "Consumer.LastName",
        "ErrorMessage": "Mandatory",
        "MessageType": "E"
      },
	  {
        "Field": "Consumer.Email",
        "ErrorMessage": "Bad email format",
        "MessageType": "E"
      }
    ],
    "ErrorMessage": "Validation Errors"
  },
  "ResponseStatus": "S",
  "IsValid": true,
  "ResponseMessage": "",
  "ResponseErrorMessage": ""
}


1.3.2 Ajouter une pièce jointe à la demande de remboursement


Une API nommée "AttachedFile" permet d'ajouter un document à une demande de remboursement. 


API CALL

Path: /AttachFile?ClaimId=16466&FileName=Facture797&FileExtension=pdf&DocumentType=Invoice
 Method: POST
 Payload: 
 {
  "FileContent": "KJQFKJSQKJDKJQSJDKLFDSGDGDG5F4D65HG46G4D5FSG456FD4G4SG64FSDG5FD5G46DS5G456FD4G56FDSG654FDS56G4F6DG54FDS6G5FD6SG45FS4D6G4F56D4SG654S6G4F5D4G6S45FD4G45SFD4G65FD4SG65DF46S4"
 }


Claimid: Identifiant AgoraPlus de la demande de remboursement à laquelle doit être rattachée la pièce jointe

FileName: Nom du fichier (sans l'extension)

FileExtension: extension du fichier. Formats acceptés *.jpg, *.jpeg, *.pdf, *.png 

DocumentType: Type de document joint

 Il existe 4 types de fichiers qui peuvent être joints à une demande : 

  • Numéro de série: SerialNumber
  • Facture: Invoice 
  • Photo: Picture
  • Bon de dépose: ClaimRequest

Règles de gestion:

Les pièces jointes obligatoires sont : la facture, 1 photo minimum du produit, la photo de la plaque signalétique. Toute demande de remboursement qui ne disposerait pas de ces documents sera "non valide" et ne pourra être soumise.


API RESPONSE


Code 200 -> OK

Code 400 -> Bad request

Code 500 -> Internal Error


1.3.3 Mettre à jour, corriger et soumettre la demande de remboursement


Une API nommée "UpdateClaim" 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.


API CALL

Path: /UpdateClaim?ClaimId=1564&RepairEndDate=2022-06-27T11:50:37.913Z&RepairSiteId=54654&Submit=false&ConsumerInvoiceNumber=132564
 Method: POST
 Payload: 
 {
  "Consumer": {
    "Title": 1,
    "LastName": "Doe",
    "FirstName": "John",
    "StreetNumber": "121",
    "Address1": "Allée des roses",
    "Address2": "",
    "Address3": "",
    "Zip": "75010",
    "City": "Paris",
    "Country": "250",
    "Phone": "",
    "Email": "[email protected]"
  },
  "Product": {
    "ProductId": "3065",
    "BrandId": "5098",
    "CommercialRef": "AR8395C",
    "SerialNumber": "4546545445646",
    "PurchaseDate": "2016-04-13",
    "IRISCondition": "6",
    "IRISConditionEX": "X47",
    "IRISSymptom": "A53",
    "IRISSection": "W10",
    "IRISDefault": "Q",
    "IRISRepair": "A",
    "FailureDescription": "formation de mousse",
    "DefectCode": ""
  },
  "Quote": {
    "LaborCost": {
      "Amount": 70.00,
      "Currency": "EUR"
    },
    "SparePartsCost": {
      "Amount": 180.00,
      "Currency": "EUR"
    },
    "TravelCost": {
      "Amount": 0.00,
      "Currency": "EUR"
    },
    "TotalAmountExclVAT": {
      "Amount": 208.34,
      "Currency": "EUR"
    },
    "TotalAmountInclVAT": {
      "Amount": 250,
      "Currency": "EUR"
    },
    "SupportAmount": {
      "Amount": 50.00,
      "Currency": "EUR"
    }
  },
  "SpareParts": [
    {
      "Partref": "407142415/6",
      "Quantity": 1,
      "Status": "New"
    }
  ]
}





API RESPONSE

{
  "ResponseData": {
    "ClaimId": 16466,
    "IsValid": false,
    "ValidationErrors": [
      {
        "Field": "Consumer.LastName",
        "ErrorMessage": "Mandatory",
        "MessageType": "E"
      },
	  {
        "Field": "Consumer.Email",
        "ErrorMessage": "Bad email format",
        "MessageType": "E"
      }
    ],
    "ErrorMessage": "Validation Errors"
  },
  "ResponseStatus": "S",
  "IsValid": true,
  "ResponseMessage": "",
  "ResponseErrorMessage": ""
}


1.3.4 Suivre le statut de la demande de remboursement


Une API nommée "GetClaimStatus" permet de connaitre le statut d'une demande de remboursement qui a été soumise.


API CALL

 Path: /GetClaimStatus?ClaimId=16466
 Method: GET



API RESPONSE

{
  "ResponseData": [
    {
      "ClaimId": 16466,
      "LastStatus": "Waiting",
      "Comment": "",
      "CreateDate": "2022-06-24T15:16:22.110Z"
    }
  ],
  "ResponseStatus": "string",
  "IsValid": true,
  "ResponseMessage": "string",
  "ResponseErrorMessage": "string"
}


LastStatus: Dernier statut de la demande de soutien (Waiting: en attente, Accepted: Acceptée, Refused: Refusée, NotConform: Non conforme)
NB: Le statut "NotConform" indique qu'une action de correction est requise par Ecologic ou Ecosytem. Ce statut permet de visualiser la demande dans le champ "Comment" et de mettre à jour la demande de remboursement puis finalement de la soumettre à nouveau.




Vous trouverez ci-dessous le YAML provisoire. L'ensemble de ces APIs sera disponible sur notre portail Swagger de Test à partir du  01/07/2022

Portail Swagger de test AgoraPlus: https://preprod-api.agoraplus.com