Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

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.

Version =

État
colourRed
title0.0

Sommaire
minLevel1
maxLevel3

Historique des versions

  • État
    colourRed
    titleversion 1.0
    version initiale (à déployer)

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

Drawio
mVer2
zoom1
simple0
inComment0
pageId3629121571
custContentId3629121595
lbox1
diagramDisplayNamediag_sequence_api_ecl.drawio
contentVer4
revision4
baseUrlhttps://ecologic-france.atlassian.net/wiki
diagramNamediag_sequence_api_ecl.drawio
pCenter0
width695.9999999999999
links
tbstyle
height1281

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)

Info

<votre_clé_api> existe

  • soit en version de PreProduction à utiliser lors des développements et des tests

  • soit en version de Production et les appels à l’API déclencheront des actions concrètes et réelles auprès du Fond Réparation EEE.

Cette clé est unique pour chaque compte e-reparateur.co.
Attention à ne pas la divulguer. Si jamais vous aviez un doute n’hésitez pas à prévenir le support = support@e-reparateur.eco

Récupération de votre clé d’authentification

Connectez vous à votre compte e-reparateur et allez dans les propriétés de votre compte.
Vous trouverez 2 clés associées à votre compte

  • une clé d’API de Pré Production

  • une clé d’API de Production

TODO = capture de l’interface e-reparateur

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
État
colourGreen
titleGET

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

URL Prod = https://apiecologic.e-reparateur.eco/api/v3/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

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

Récupérer la liste des types de produit - /PrintProductTypeList
État
colourGreen
titleGET

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

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

Fonctions

permet de récupérer la liste des types de produits supportés par Ecologic.

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.

Exemple usage

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

sortie =

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é

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

Exemple de réponse

Bloc de code
languagejson
{
  "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"
}

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
État
colour

Yellow

Green
title

POST

GET

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

URL Prod = https://apiecologic.e-reparateur.eco/api/v3/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

Bloc de code
languagejson
{
    "TotalAmountExclVAT": 120.00,
    "TotalAmountExclVAT_Currency": "EUR",
    "BrandId": 8055,
    "ProductId": 3032,
    "IRISSymtom": "001" 
 }

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) 

  • IRISSymptom : Liste des codes symptôme IRIS éligibles pour le type de produits et pour Ecologic

Données en sortie

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

  • SupportAmount: Montant TTC du soutien

Exemple de réponse

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

Effectuer la demande de soutien - /CreateSupportRequest
État
colourYellow
titlePOST

URL Preprod = https://preprod-apiecologic.e-reparateur.eco/api/v3/ecosupport/createsupportrequest

URL Prod = https://apiecologic.e-reparateur.eco/api/v3/ecosupport/createsupportrequest

Fonctions

Permet de soumettre la demande de soutien en vue d'obtenir la vérification du consommateur.

Remarque

Cette étape est obligatoire, car l'Id de la demande sera demandé lors de la demande de remboursement.

Données à transmettre

exemple

Bloc de code
languagejson
{
  "Consumer": {
    "Title": 1,
    "LastName": "Doe",
    "FirstName": "John",
    "StreetNumber": "121",
    "Address1": "Allée des roses",
    "Address2": "",
    "Address3": "",
    "Zip": "75010",
    "City": "Paris",
    "Country": "250",
    "Phone": "",
    "Email": "john.doe@@ecologic-france.com"
  },
  "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"
    }
  ]
}

Données en entrée

Dans les paramètres

  • CallDate= date de référence de l’appel à l’API

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

  • QuoteNumber= numéro du devis

Dans le body

Données en sortie

  • RequestId: Identifiant de la demande de soutien

Exemple de réponse

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

Suivre le statut de la demande de soutien - /GetSupportRequestStatus
État
colourGreen
titleGET

URL Preprod = https://preprod-apiecologic.e-reparateur.eco/api/v3/ecosupport/getsupportrequestStatus

URL Prod = https://apiecologic.e-reparateur.eco/api/v3/ecosupport/getsupportrequestStatus

Fonctions

permet de savoir si le consommateur a donné sa validation pour une demande de soutien donnée.

Données en entrée

Dans les paramètres

  • RequestId = Id de votre dossier issu de la réponse à CreateSupportRequest
    Ex : /GetSupportRequestStatus?RequestId=1564

Données en sortie

  • LastStatus: Dernier statut de la demande de soutien

    • Waiting: en attente,

    • Accepted: Acceptée,

    • Refused: Refusée

    • État
      colourPurple
      titleTODO

Exemple de réponse

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

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
État
colourYellow
titlePOST

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

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

Fonctions

permet d'effectuer la demande de remboursement.

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. 

Données à transmettre

exemple

Bloc de code
languagejson
{
  "Consumer": {
    "Title": 1,
    "LastName": "Doe",
    "FirstName": "John",
    "StreetNumber": "121",
    "Address1": "Allée des roses",
    "Address2": "",
    "Address3": "",
    "Zip": "75010",
    "City": "Paris",
    "Country": "250",
    "Phone": "",
    "Email": "john.doe@ecologic-france.com"
  },
  "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"
    }
  ]
}

Données en entrée

Dans les paramètres
ex : /CreateClaim?RequestId=1564&RepairEndDate=2022-06-27T11:50:37.913Z&RepairSiteId=54654&ConsumerInvoiceNumber=132564

  • RequestId = date de référence du dossier de demande de soutien, issue 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

Dans le body

Remarque

Vérifiez bien la liste des champs obligatoires dans le Swagger et dans le fichier YAML ou JSON de l’API 

Données en sortie

  • ClaimId : Identifiant du dossier de remboursement

Exemple de réponse

Bloc de code
languagejson
{
  "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": ""
}

Ajouter une pièce jointe à la demande de remboursement - /CreateClaim
État
colourYellow
titlePOST

URL Preprod = https://preprod-apiecologic.e-reparateur.eco/api/v3/ecosupport/createsupportrequest

URL Prod = https://apiecologic.e-reparateur.eco/api/v3/ecosupport/createsupportrequest

Fonctions

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

Un dossier de remboursement peut contenir plusieurs types de fichiers

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

Info

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.

  • Éventuellement le bordereau de validation du conso peut-être exigé dans certains cas de figure.

Données à transmettre

exemple

Bloc de code
languagejson
{
  "FileContent": "KJQFKJSQKJDKJQSJDKLFDSGDGDG5F4D65HG46G4D5FSG456FD4G4SG64FSDG5FD5G46DS5G456FD4G56FDSG654FDS56G4F6DG54FDS6G5FD6SG45FS4D6G4F56D4SG654S6G4F5D4G6S45FD4G45SFD4G65FD4SG65DF46S4"
 }

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

  • FileExtension = extension du fichier

    • permet de définir le type

    • extension sans le point “.”

  • DocumentType = type de document transmis à intégrer dans la demande

Dans le body

  • FileContent = contenu du fichier en Base64

Données en sortie

  • aucune

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 et soumettre la demande de remboursement - /UpdateClaim
État
colourYellow
titlePOST

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

URL Prod = https://apiecologic.e-reparateur.eco/api/v3/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)

Bloc de code
languagejson
{
  "Consumer": {
    "Title": 1,
    "LastName": "Doe",
    "FirstName": "John",
    "StreetNumber": "121",
    "Address1": "Allée des roses",
    "Address2": "",
    "Address3": "",
    "Zip": "75010",
    "City": "Paris",
    "Country": "250",
    "Phone": "",
    "Email": "john.doe@a@ecologic-france.com"
  },
  "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"
    }
  ]
}

Données en entrée

Dans les paramètres
ex : ClaimId=1564&RepairEndDate=2022-06-27T11:50:37.913Z&RepairSiteId=54654&Submit=false&ConsumerInvoiceNumber=132564

  • 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

  • Submit = 💡 indique si la mise à jour déclenche ou non la soumission

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

Dans le body

Remarque

Vérifiez bien la liste des champs obligatoires dans le Swagger et dans le fichier YAML ou JSON de l’API 

Données en sortie

  • ClaimId = Identifiant du dossier de remboursement

  • ErrorMessage = indique si des erreurs sont présentes dans la demande de remboursement empêchant la soumission

  • ValidationErrors = tableau des champs en erreur et information sur les erreurs

    • Field = code du champ concerné

    • ErrorMessage = erreur sur le champ concerné

Exemple de réponse

Bloc de code
languagejson
{
  "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": ""
}

Suivre le statut de la demande de remboursement - /GetClaimStatus
État
colourGreen
titleGET

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

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

Fonctions

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

Données à transmettre

Exemple

/GetClaimStatus?ClaimId=16466

Données en entrée

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

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

Données en sortie

  • LastStatus : Dernier statut de la demande de soutien

    • Waiting: en attente,

    • Accepted: Acceptée,

    • Refused: Refusée,

    • NotConform: Non conforme

    • État
      colourPurple
      titleTODO

Info

Le statut "NotConform" indique qu'une action de correction est requise par Ecologic.
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.

Exemple de réponse

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

SwaggerUI (en rédaction)

Remarque

Les éléments présentés ci-dessous ne sont pas fonctionnels et en cours de déploiement.

Swagger open api macro
swagger: '2.0'
info:
  description: Ecologic e-reparateur API Portal
  version: 2.0.0
  title: Ecologic e-reparateur API Portal
  contact:
    email: support@e-reparateur.eco
host: preprod-apiecologic.e-reparateur.eco
basePath: /v2
tags:
  - name: Ecologic e-reparateur  Web APIs
    description: Ecologic e-reparateur Web APIs
    externalDocs:
      description: Find out more
      url: http://support.e-reparateur.eco
schemes:
  - https
  - http
paths:
  /api/v2/EcoSupport/CreateSupportRequest:
    post:
      tags:
        - EcoSupport
      summary: Request for an ECO Support
      description: ''
      operationId: CreateSupportRequest
      produces:
        - application/json
        - text/json
        - application/xml
        - text/xml
      parameters:
        - name: CallDate
          in: query
          description: Date the consumer contact the repair center took in charge the appliance
          required: true
          type: string
          format: date-time
        - name: RepairSiteId
          in: query
          description: Site ID of the repair
          required: true
          type: string
        - name: QuoteNumber
          in: query
          description: Number of the quote
          required: true
          type: string
        - in: body
          name: RepairDetails
          description: Details needed for the Eco support
          required: true
          schema:
            $ref: '#/definitions/AgoraWebServices.Models.EcoSupport.RepairDetails'
      responses:
        '200':
          description: successful operation
          schema:
            $ref: '#/definitions/AgoraWebServices.Models.Response.CreateSupportRequestResponse'
        '400':
          description: Bad request
          schema:
            $ref: '#/definitions/AgoraWebServices.Models.Response.ErrorResponse'
        '500':
          description: InternalServerError
          schema:
            $ref: '#/definitions/AgoraWebServices.Models.Response.ErrorResponse'
  /api/v2/EcoSupport/GetSupportRequestStatus:
    get:
      tags:
        - EcoSupport
      summary: Get support request status
      operationId: GetSupportRequestStatus
      consumes: []
      produces:
        - application/json
        - text/json
        - application/xml
        - text/xml
      parameters:
        - name: RequestId
          in: query
          description: Identifier of the request in Agora
          required: false
          type: integer
          format: int32
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/AgoraWebServices.Models.Response.RequestStatusResponse'
        '500':
          description: InternalServerError
          schema:
            $ref: '#/definitions/AgoraWebServices.Models.Response.ErrorResponse'
  /api/v2/EcoSupport/CreateClaim:
    post:
      tags:
        - EcoSupport
      summary: Claim for reimbursment
      description: ''
      operationId: CreateClaim
      produces:
        - application/json
        - text/json
        - application/xml
        - text/xml
      parameters:
        - name: RequestId
          in: query
          description: Support request identifier, returned by e-reparateur (CreateSupportRequest)
          required: true
          type: integer
          format: int32
        - name: RepairEndDate
          in: query
          description: Date of the end of the repair
          required: true
          type: string
          format: date-time
        - name: RepairSiteId
          in: query
          description: Qualirepar ID of the repair site
          required: true
          type: string
        - name: ConsumerInvoiceNumber
          in: query
          description: Invoice number
          required: true
          type: string
        - in: body
          name: RepairDetails
          description: Details needed for the Eco support
          required: true
          schema:
            $ref: '#/definitions/AgoraWebServices.Models.EcoSupport.RepairDetails'
      responses:
        '200':
          description: successful operation
          schema:
            $ref: '#/definitions/AgoraWebServices.Models.Response.ClaimResponse'
        '400':
          description: Bad request
          schema:
            $ref: '#/definitions/AgoraWebServices.Models.Response.ErrorResponse'
        '500':
          description: InternalServerError
          schema:
            $ref: '#/definitions/AgoraWebServices.Models.Response.ErrorResponse'
  /api/v2/EcoSupport/UpdateClaim:
    post:
      tags:
        - EcoSupport
      summary: Update the claim to fix issue raised by e-reparateur 
      description: ''
      operationId: UpdateClaim
      produces:
        - application/json
        - text/json
        - application/xml
        - text/xml
      parameters:
        - name: ClaimId
          in: query
          description: Identifier of the claim provided by e-reparateur after the creation
          required: true
          type: integer
          format: int32
        - name: RepairEndDate
          in: query
          description: Date of the end of the repair
          required: true
          type: string
          format: date-time
        - name: RepairSiteId
          in: query
          description: Site ID of the repair
          required: true
          type: string
        - name: ConsumerInvoiceNumber
          in: query
          description: Invoice number
          required: true
          type: string
        - name: Submit
          in: query
          description: Submit claim if valid
          required: false
          type: boolean
        - in: body
          name: Body
          description: Repair details
          required: true
          schema:
            $ref: '#/definitions/AgoraWebServices.Models.EcoSupport.RepairDetails'
      responses:
        '200':
          description: successful operation
          schema:
            $ref: '#/definitions/AgoraWebServices.Models.Response.ClaimResponse'
        '400':
          description: Bad request
          schema:
            $ref: '#/definitions/AgoraWebServices.Models.Response.ErrorResponse'
        '500':
          description: InternalServerError
          schema:
            $ref: '#/definitions/AgoraWebServices.Models.Response.ErrorResponse'
  /api/v2/EcoSupport/AttachFile:
    post:
      tags:
        - EcoSupport
      summary: Attach a file to the claim
      description: ''
      operationId: AttachedFile
      produces:
        - application/json
        - text/json
        - application/xml
        - text/xml
      parameters:
        - name: ClaimId
          in: query
          description: Identifier of the claim provided by e-reparateur after the creation
          required: true
          type: integer
          format: int32
        - name: FileName
          in: query
          description: Date of the end of the repair
          required: true
          type: string
        - name: FileExtension
          in: query
          description: File extension
          required: true
          type: string
        - name: DocumentType
          in: query
          description: Document type. Possible values (Invoice, Nameplate)
          required: true
          type: string
        - name: FileContent
          in: body
          description: Document content in base 64.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
        '400':
          description: Bad request
        '500':
          description: InternalServerError
  /api/v2/EcoSupport/GetClaimStatus:
    get:
      tags:
        - EcoSupport
      summary: Get claim status
      operationId: GetClaimStatus
      consumes: []
      produces:
        - application/json
        - text/json
        - application/xml
        - text/xml
      parameters:
        - name: Claimid
          in: query
          description: Identifier of the request in Agora
          required: false
          type: integer
          format: int32
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/AgoraWebServices.Models.Response.ClaimStatusResponse'
        '500':
          description: InternalServerError
          schema:
            $ref: '#/definitions/AgoraWebServices.Models.Response.ErrorResponse'
  /api/v2/EcoSupport/CalculateEcoSupport:
    get:
      tags:
        - EcoSupport
      summary: Check the eligibility and Calculate the suppport
      operationId: CalculateEcoSupport
      consumes: []
      produces:
        - application/json
        - text/json
        - application/xml
        - text/xml
      parameters:
        - name: TotalAmountExclVAT
          in: query
          description: Identifier of the request in Agora
          type: number
          format: float
        - name: TotalAmountExclVAT_Currency
          in: query
          description: Identifier of the request in Agora
          type: string
        - name: BrandId
          in: query
          description: Identifier of the request in Agora
          required: false
          type: integer
          format: int32
        - name: ProductId
          in: query
          description: Identifier of the request in Agora
          required: false
          type: integer
          format: int32
        - name: IRISSymptom
          in: query
          description: Identifier of the request in Agora
          required: false
          type: string
        - name: RepairCode
          in: query
          description: Repair code or Iris Repair code
          required: false
          type: string
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/AgoraWebServices.Models.Response.CalculateSupportResponse'
        '500':
          description: InternalServerError
          schema:
            $ref: '#/definitions/AgoraWebServices.Models.Response.ErrorResponse'
  /api/v2/EcoSupport/PrintBrandList:
    get:
      tags:
        - EcoSupport
      summary: Print the list of brands
      operationId: PrintBrandList
      consumes: []
      produces:
        - application/json
        - text/json
        - application/xml
        - text/xml
      parameters: []
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/AgoraWebServices.Models.Response.PrintBrandListResponse'
        '500':
          description: InternalServerError
          schema:
            $ref: '#/definitions/AgoraWebServices.Models.Response.ErrorResponse'
  /api/v2/EcoSupport/PrintProductTypeList:
    get:
      tags:
        - EcoSupport
      summary: Print the list of product type with for each its related repair codes and symptom codes
      operationId: PrintProductTypeList
      consumes: []
      produces:
        - application/json
        - text/json
        - application/xml
        - text/xml
      parameters: []
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/AgoraWebServices.Models.Response.PrintProductTypeListResponse'
        '500':
          description: InternalServerError
          schema:
            $ref: '#/definitions/AgoraWebServices.Models.Response.ErrorResponse'
securityDefinitions:
  api_key:
    type: apiKey
    description: API Key Authentication
    name: api_key
    in: header
definitions:
  AgoraWebServices.Models.EcoSupport.RepairDetails:
    type: object
    required:
      - Consumer
      - Product
      - Quote
    properties:
      Consumer:
        type: object
        $ref: '#/definitions/AgoraWebServices.Models.EcoSupport.Consumer'
      Product:
        type: object
        $ref: '#/definitions/AgoraWebServices.Models.EcoSupport.Product'
      Quote:
        type: object
        $ref: '#/definitions/AgoraWebServices.Models.EcoSupport.CostDetails'
      SpareParts:
        type: array
        items:
          $ref: '#/definitions/AgoraWebServices.Models.EcoSupport.Sparepart'
    xml:
      name: Request
  AgoraWebServices.Models.EcoSupport.Consumer:
    type: object
    required:
      - LastName
      - Address1
      - Zip
      - City
      - Country
      - Email
    properties:
      Title:
        type: integer
        format: int32
      LastName:
        type: string
      FirstName:
        type: string
      StreetNumber:
        type: string
      Address1:
        type: string
      Address2:
        type: string
      Address3:
        type: string
      Zip:
        type: string
      City:
        type: string
      Country:
        type: string
      Phone:
        type: string
      Email:
        type: string
    xml:
      name: Consumer
  AgoraWebServices.Models.EcoSupport.Product:
    type: object
    required:
      - ProductId
      - BrandId
      - SerialNumber
      - PurchaseDate
      - IRISSymptom
    properties:
      ProductId:
        type: string
      BrandId:
        type: string
      CommercialRef:
        type: string
      SerialNumber:
        type: string
      PurchaseDate:
        type: string
        format: date
      IRISCondition:
        type: string
      IRISConditionEX:
        type: string
      IRISSymptom:
        type: string
      IRISSection:
        type: string
      IRISDefault:
        type: string
      IRISRepair:
        type: string
      FailureDescription:
        type: string
      DefectCode:
        type: string
    xml:
      name: Product
  AgoraWebServices.Models.EcoSupport.CostDetails:
    type: object
    required:
      - LaborCost
      - SparePartsCost
      - TravelCost
      - TotalAmountExclVAT
      - TotalAmountInclVAT
      - SupportAmount
    properties:
      LaborCost:
        type: object
        properties:
          Amount:
            type: number
            format: float
          Currency:
            type: string
      SparePartsCost:
        type: object
        properties:
          Amount:
            type: number
            format: float
          Currency:
            type: string
      TravelCost:
        type: object
        properties:
          Amount:
            type: number
            format: float
          Currency:
            type: string
      TotalAmountExclVAT:
        type: object
        properties:
          Amount:
            type: number
            format: float
          Currency:
            type: string
      TotalAmountInclVAT:
        type: object
        properties:
          Amount:
            type: number
            format: float
          Currency:
            type: string
      SupportAmount:
        type: object
        properties:
          Amount:
            type: number
            format: float
          Currency:
            type: string
    xml:
      name: Quote
  AgoraWebServices.Models.EcoSupport.Sparepart:
    type: object
    required:
      - Partref
      - Quantity
      - Status
    properties:
      Partref:
        type: string
      Quantity:
        type: integer
        format: int64
      Status:
        type: string
    xml:
      name: Sparepart
  Tag:
    type: object
    properties:
      id:
        type: integer
        format: int64
      name:
        type: string
    xml:
      name: Tag
  AgoraWebServices.Models.Response.CreateSupportRequestResponse:
    description: Create complete repair method response values
    type: object
    properties:
      ResponseData:
        $ref: '#/definitions/AgoraWebServices.Models.Response.SupportRequestResponseData'
        description: Response data
      ResponseStatus:
        description: 'Response status ("S" : Sucess, "E": Error, "W":Warning)'
        type: string
      IsValid:
        description: Response validity
        type: boolean
      ResponseMessage:
        description: Response message
        type: string
      ResponseErrorMessage:
        description: Response Error Message
        type: string
  AgoraWebServices.Models.Response.SupportRequestResponseData:
    description: Response data from create complete repair method
    type: object
    properties:
      EcoOrganizationId:
        format: int32
        description: Identifier of the Eco organization who will provide the suppot
        type: integer
      RequestId:
        format: int32
        description: e-reparateur internal identifier of the request
        type: integer
      IsValid:
        description: Validity
        type: boolean
      ErrorMessage:
        description: Error message
        type: string
  AgoraWebServices.Models.Response.ClaimResponse:
    description: Create complete repair method response values
    type: object
    properties:
      ResponseData:
        $ref: '#/definitions/AgoraWebServices.Models.Response.ClaimResponseData'
        description: Response data
      ResponseStatus:
        description: 'Response status ("S" : Sucess, "E": Error, "W":Warning)'
        type: string
      IsValid:
        description: Response validity
        type: boolean
      ResponseMessage:
        description: Response message
        type: string
      ResponseErrorMessage:
        description: Response Error Message
        type: string
  AgoraWebServices.Models.Response.ClaimResponseData:
    description: Response data from create complete repair method
    type: object
    properties:
      ClaimId:
        format: int32
        description: e-reparateur internal identifier of the request
        type: integer
      IsValid:
        description: Validity
        type: boolean
      ValidationErrors:
        description: Validation errors
        type: array
        items:
          $ref: '#/definitions/AgoraWebServices.Models.Return.ValidationResult'
      ErrorMessage:
        description: Error message
        type: string
  AgoraWebServices.Models.Return.ValidationResult:
    description: Validation error result values
    type: object
    properties:
      Field:
        description: Field assotiated to the error
        type: string
      ErrorMessage:
        description: Error message
        type: string
      MessageType:
        description: "Type of the error message : \r\n - E : Error\r\n - W : Warning"
        type: string
  AgoraWebServices.Models.Response.ErrorResponse:
    description: Error response object
    type: object
    properties:
      ResponseData:
        description: Response data
        type: object
      ResponseStatus:
        description: 'Response status ("S" : Sucess, "E": Error, "W":Warning)'
        type: string
      IsValid:
        description: Response validity
        type: boolean
      ResponseMessage:
        description: Response message
        type: string
      ResponseErrorMessage:
        description: Response Error Message
        type: string
  AgoraWebServices.Models.Response.RequestStatusResponse:
    description: Get request method response values
    type: object
    properties:
      ResponseData:
        description: Response data
        type: array
        items:
          $ref: '#/definitions/AgoraWebServices.Models.EcoSupport.RequestStatusResponseData'
      ResponseStatus:
        description: 'Response status ("S" : Sucess, "E": Error, "W":Warning)'
        type: string
      IsValid:
        description: Response validity
        type: boolean
      ResponseMessage:
        description: Response message
        type: string
      ResponseErrorMessage:
        description: Response Error Message
        type: string
  AgoraWebServices.Models.EcoSupport.RequestStatusResponseData:
    description: Warranty claim informations
    type: object
    properties:
      RequestId:
        format: int32
        description: Identifier in Agora
        type: integer
      LastStatus:
        description: Last status
        type: string
      Comment:
        description: Comment
        type: string
      CreateDate:
        format: date-time
        description: Creation date
        type: string
  AgoraWebServices.Models.Response.ClaimStatusResponse:
    description: Get request method response values
    type: object
    properties:
      ResponseData:
        description: Response data
        type: array
        items:
          $ref: '#/definitions/AgoraWebServices.Models.EcoSupport.ClaimStatusResponseData'
      ResponseStatus:
        description: 'Response status ("S" : Sucess, "E": Error, "W":Warning)'
        type: string
      IsValid:
        description: Response validity
        type: boolean
      ResponseMessage:
        description: Response message
        type: string
      ResponseErrorMessage:
        description: Response Error Message
        type: string
  AgoraWebServices.Models.EcoSupport.ClaimStatusResponseData:
    description: Warranty claim informations
    type: object
    properties:
      ClaimId:
        format: int32
        description: Identifier in Agora
        type: integer
      LastStatus:
        description: Last status
        type: string
      Comment:
        description: Comment
        type: string
      CreateDate:
        format: date-time
        description: Creation date
        type: string
  AgoraWebServices.Models.Response.CalculateSupportResponse:
    description: Get request method response values
    type: object
    properties:
      ResponseData:
        description: Response data
        type: array
        items:
          $ref: '#/definitions/AgoraWebServices.Models.EcoSupport.CalculateSupportResponseData'
      ResponseStatus:
        description: 'Response status ("S" : Sucess, "E": Error, "W":Warning)'
        type: string
      IsValid:
        description: Response validity
        type: boolean
      ResponseMessage:
        description: Response message
        type: string
      ResponseErrorMessage:
        description: Response Error Message
        type: string
  AgoraWebServices.Models.EcoSupport.CalculateSupportResponseData:
    description: Warranty claim informations
    type: object
    properties:
      EcoOrganizationId:
        format: int32
        description: Identifier of the Eco organization who will provide the suppot
        type: integer
      SupportAmount:
        type: object
        properties:
          Amount:
            type: number
            format: float
          Currency:
            type: string
  AgoraWebServices.Models.Response.PrintBrandListResponse:
    description: Get request method response values
    type: object
    properties:
      ResponseData:
        description: Response data
        type: array
        items:
          $ref: '#/definitions/AgoraWebServices.Models.EcoSupport.PrintBrandListResponseData'
      ResponseStatus:
        description: 'Response status ("S" : Sucess, "E": Error, "W":Warning)'
        type: string
      IsValid:
        description: Response validity
        type: boolean
      ResponseMessage:
        description: Response message
        type: string
      ResponseErrorMessage:
        description: Response Error Message
        type: string
  AgoraWebServices.Models.EcoSupport.PrintBrandListResponseData:
    description: List of brands
    type: object
    properties:
      BrandName:
        description: Brand name
        type: string
      BrandId:
        description: Brand code
        type: string
  AgoraWebServices.Models.Response.PrintProductTypeListResponse:
    description: Get request method response values
    type: object
    properties:
      ResponseData:
        description: Response data
        type: array
        items:
          $ref: '#/definitions/AgoraWebServices.Models.EcoSupport.PrintProductTypeListResponseData'
      ResponseStatus:
        description: 'Response status ("S" : Sucess, "E": Error, "W":Warning)'
        type: string
      IsValid:
        description: Response validity
        type: boolean
      ResponseMessage:
        description: Response message
        type: string
      ResponseErrorMessage:
        description: Response Error Message
        type: string
  AgoraWebServices.Models.EcoSupport.PrintProductTypeListResponseData:
    description: List of brands
    type: object
    properties:
      ProductId:
        description: Identifier of the product
        type: string
      ProductName:
        description: Name of the product type
        type: string
      EligibilityStartDate:
        description: Name of the product type
        type: string
        format: date
      EligibilityEndDate:
        description: Name of the product type
        type: string
        format: date
      RepairCodes:
        type: array
        items:
          type: object
          properties:
            RepairCode:
              description: Repair Code
              type: string
      IRISSymtoms:
        type: array
        items:
          type: object
          properties:
            IRISSymtom:
              description: IRIS code of the symptom
              type: string
externalDocs:
  description: Find out more about Swagger
  url: http://swagger.io