Table of contents 


1.       Introduction

The purpose of this document is to describe how to integrate with AgoraPlus services for the purpose of repair management and spare part ordering process by external third-party applications. The document is intended for third- party developers to support them with a trouble-free development of integration services / APIs required by AgoraPlus solution. 


The document mainly focusses on the repair process and will give the third-party developers an understanding of the AgoraPlus Architecture, middleware involved and different touchpoints catering to complete the Repair starting from request raised by a Consumer for repair until the Claims submitted for the repair performed. 


AgoraPlus has exposed a set of REST APIs that the third-party application needs to consume to send the data/submit claims to OEMs. 

Each of the touchpoints with third party applications are further detailed in the documentation for reference during the development


2.       The repair process


The repair process involves the following entities:

  • Consumer
  • Service center
  • AgoraPlus
  • The OEM


and could include the following phases:

  • Workorder
  • Repair management
  • Claim report (for reimbursement)
  • PEX
  • Invoicing management


2.1 Workorder management


There are 2 main starting points for a repair: Directly at the workshop, mainly for SDAs (Small Household Appliances) or via a call center when the consumer calls mainly for MDAs (Large Household Appliances).

In this second scenario, when the consumer calls the OEM's call center, a ticket is created by the customer service agent in the OEM CRM and is assigned to the service partner. This last action will send a work order assigned to the technician to AgoraPlus.


To get the list of workorder freshly sent to AgoraPlus, we provide 2 web APIs:

  • [GET] /Repair/GetNewMandates:
    Returns the list of work orders with a "NEW" status. If you set the "AUTOACCEPTED" parameter to TRUE, the Web API will automatically change the status of the work order to "ACCPETED" and create the corresponding repair file.

     
  • [GET] /Repair/GetAcceptedMandates:
     Returns the list of work orders with an "ACCEPTED" status. Some companies will prefer to retrieve only the work orders that they have previously accepted manually in AgoraPlus.

Important: A work order is unalterable. For each work order with an "ACCEPTED" status, there is an associated repair file. This repair file will need to be updated throughout the repair.


2.1.1 Output


The main object is the following. It will contain a list of “NEW” or “ACCEPTED” work orders depending on the web API you called (see above)

AgoraWebServices.Models.Response.GetNewMandatesResponse {

ResponseData (Array[AgoraWebServices.Models.Response.NewMandateResponseData], optional): Response data ,

ResponseStatus (string, optional): Response status ("S" : Sucess, "E": Error, "W":Warning) ,

IsValid (boolean, optional): Response validity ,

ResponseMessage (string, optional): Response message ,

ResponseErrorMessage (string, optional): Response Error Message

}


The “NewMandateResponseData” object contains a work order (called a mandate) and its corresponding repair file if it has previously been “ACCEPTED” (InterventionId). The "IsValid, ResponseStatus, ResponseMessage" fields are returned and will be populated in case you called the "GetNewMandates" web API with the "Autoaccept" parameter set to "true". These fields will inform you of the correct creation of the repair file associated with the work order (InterventionId)

AgoraWebServices.Models.Response.NewMandateResponseData {

IsValid (boolean, optional): Response validity ,

ResponseStatus (string, optional): Response status ("S" : Sucess, "E": Error, "W":Warning) ,

ResponseMessage (string, optional): Response message ,

ResponseErrorMessage (string, optional): Response Error Message ,

Mandate (AgoraWebServices.Models.Return.MandateLightResponse, optional): Mandate data ,

InterventionId (integer, optional): Associated intervention identifier when auto accept parameter is activated

}



The "MandateLightResponse" contains all the information provided by the end consumer regarding the failure. It embeds (Device, symptom, consumer information, retailer information, etc.)

AgoraWebServices.Models.Return.MandateLightResponse {

MandateId (integer, optional): Mandate identifier in Agora ,

ManufacturerId (integer, optional): Originator identifier ,

OEMId (integer, optional): Manufacturer identifier ,

ClientCode (string, optional): Client code ,

OrderMission (string, optional): Mission order ,

InterventionTypeId (integer, optional): Intervention type identifier ,

...

}


The "InterventionTypeLight» object provaides information about the type of repair (see repair type list)

AgoraWebServices.Models.Return.InterventionTypeLight {

InterventionTypeId (integer, optional): Intervention type identifier ,

Label (string, optional): Label ,

ShortDescription (string, optional): Description ,

IsUnderWarranty (boolean, optional): Is product under warranty

}


The "ResellerLight" object contains information about the reseller from which the device was purchased.

AgoraWebServices.Models.Return.ResellerLight {

ResellerId (integer, optional): Reseller identifier ,

ResellerCode (string, optional): Reseller code ,

ResellerFileNumber (string, optional): Associated file number ,

ResellerAddress1 (string, optional): Reseller address 1 ,

...

}


The "ConsumerLight" object contains information about the end consumer

AgoraWebServices.Models.Return.ConsumerLight {

Title (string, optional): Consumer Title 1 : Mrs. ; 2 : Ms. ; 3 : Mr. ; 4 : Company ,

LastName (string, optional): Consumer last name ,

FirstName (string, optional): Consumer first name ,

Address1 (string, optional): Address first line ,

...

}


The "SuggestedPartLight" object contains a list a suggested part needed for the repair. This service s not provided by all OEMs

AgoraWebServices.Models.Return.SuggestedPartLight {

SuggestedPartRef (string, optional): Reference ,

Quantity (integer, optional): Quantity ,

Comment (string, optional): Comment ,

Label (string, optional): Label

} 


2.2 Repair management

To follow the work in progress, AgoraPlus provides a list of Web APIs dedicated to the repair workflow.

if the repair is directly taken care of by the service partner, without a work order sent beforehand, then this API should be called to create the repair file in AgoraPlus (ISO to this present in the repairer's after-sales service software)
  

  • [POST] /Repair/UpdateRepair
     The work in progress can be done in real time and should be updated at each step of the repair. The web API allows to update the entire repair file (Appliance information, consumer information, retailer, diagnosis, spare parts…)

The update of the repair is organized in 2 parts:

  • The update of repair information
  • The update of the repair statuses 

 

2.2.1 Update of repair information


At any step of the repair, you can update the repair global information:

1/ update the appliance information:

AgoraWebServices.Models.Agora.CompleteRepairState {

Brand (string, optional): Product brand ,

Family (string, optional): Product family (e.g. Coffee machine) ,

CommercialRef (string): Product commercial reference ,

TechnicalRef (string, optional): Product technical reference ,

ManufacturingCode (string): Manufacturing date ,

SerialNumber (string, optional): Product serial number ,

PurchaseDate (string, optional): Product purchase date (UTC Format if timeZoneId is specified) ,

ConsumerContract (string, optional): Consumer warranty contract number ,

GCPlusContract (string, optional): Indicates if the warranty extension is a GCPlus contract ,

...

} 

2/ Update the consumer information

AgoraWebServices.Models.Agora.Consumer {

ConsumerId (string, optional): Consumer ID (unique identifier of the consumer mainly used in countries like Chile, Peru...),

Title (integer): Consumer Title 1 : Mrs. ; 2 : Ms. ; 3 : Mr. ; 4 : Company ,

LastName (string): Consumer last name ,

FirstName (string): Consumer first name ,

Address1 (string): Consumer address 1 ,

Address2 (string, optional): Consumer address 2 ,

Address3 (string, optional): Consumer address 3 ,

Zip (string): Consumer zip code ,

Town (string): Consumer town ,

State (string, optional): Consumer state (Mainly used for United States) ,

Country (integer): Consumer country (ISO 3 digits) ,

Phone (string): Consumer Phone number ,

PhoneType (string, optional): Information concerning the phone (e.g. phone of Madame) ,

SMSCode (string, optional): Phone number with SMS capabilities (mobile) ,

ProPhone (string, optional): Business phone number ,

Email (string, optional): Email of the consumer ,

Remarks (string, optional): Remark given by the consumer ,

OptInSurvey (boolean, optional): Consumer satisfaction survey Opt in ,

LngId (integer, optional): Consumer Language Id (ex: 1036 for French)

ConsumerInvoice (integer, optional): Flag indication if the repair should be invoiced to the consumer 0 : no / 1: Yes ,

}

 

3/ Retailler information

AgoraWebServices.Models.Agora.Reseller {

Name (string, optional): Reseller name ,

Email (string, optional): Reseller email ,

Phone (string, optional): Reseller phone number

Address1 (string, optional): Reseller address 1 ,

Address2 (string, optional): Reseller address 2 ,

Address3 (string, optional): Reseller address 3 ,

Zip (string, optional): Reseller zip code, 

Town (string, optional): Reseller town ,

State (string, optional): Reseller state (Mainly used for United States) ,

Country (integer, optional): Reseller country (ISO 3 digits)  

}


4/ Repair information

AgoraWebServices.Models.Agora.Intervention {

InterventionType (integer): Type of intervention (see the list below)

RepairOriginCode (string): Repair origin code. Possible values"CONSUMER" or "RESELLER" ,

FailureDescription (string, optional): Failure description ,

FIdent (string, optional): Failure spare part reference

 

InterventionStartDate (string, optional): Repair start date (UTC Format if timeZoneId is specified) ,

InterventionEndDate (string, optional): Repair end date (UTC Format if timeZoneId is specified) ,

ProductReturnDate (string, optional): Date of return of the device (UTC Format if timeZoneId is specified)

 

IRISCondition (stringoptional): IRIS Condition ,

IRISConditionEX (string, optional): IRIS Condition EX ,

IRISSymptom (string, optional): IRIS Symptom ,

IRISSection (string, optional): IRIS Section ,

IRISDefault (string, optional): IRIS Defect code. ,

IRISRepair (string, optional): IRIS Repair code. ,

DefaultCode (string, optional): Default code (NON-IRIS). ,

...

}


5/ Spare part information

Spare parts can be added at several steps of the repair and in 2 different sections.

The first section is the repair itself, in which all the spare parts the service partner we’ll need to do the repair:

AgoraWebServices.Models.Agora.CompleteRepairState {

...

Parts (Array[AgoraWebServices.Models.Agora.Part], optional): List of spareparts needed for the repair ,

...

}

AgoraWebServices.Models.Agora.Part {

Reference (string, optional): Spare part reference. ,

Quantity (integer, optional): Quantity ordered. ,

Note (string, optional): Comment. ,

OrderNumber (string, optional): Spare part order number. ,

ToBeOrdered (boolean, optional): To be ordered?

}

 

For each spare part, it is possible to set the “order number” when it has already been ordered. It is also possible to set the attribute “ToBeOrdered” to TRUE. This will allow you to directly order the spare part for that single repair calling the /Repair/PlaceRepairSparepartOrder web API.

 

The second section is available in the status update.   It allows to notify the OEM about an issue or simply update the OEM about the in progress about a spare part order.

See the below section “Update of the work in progress, using status code”.



2.2.2 Update of the work in progress, using status code


The work in progress of the repair should be done by mapping the state of your internal service software with that of AgoraPlus.

The life cycle of a repair cannot be fixed, but the diagram below describes one of the most common workflows:

 

 

 

To report the work in progress, you will have to use the object “StateNature” which can cover 7 different types of use cases.

AgoraWebServices.Models.Agora.StateNature {

Code (string, optional): Status code,

Comment (string, optional): Comment. ,

AppointmentNumber (integer, optional): Rank of the appointment (1st appointment2nd appointment…) ,

AppointmentDate (string, optional): Start date of the appointment (UTC Format if timeZoneId is specified in associated word order). ,

AppointmentEndDate (string, optional): End date of the appointment (UTC Format if timeZoneId is specified in associated word order). ,

Parts (Array[AgoraWebServices.Models.Agora.Part], optional): Spare parts concerned by the status code (e.g code 200,201,202,204205)

}



The “StateNature” should be set in the global “CompleteRepairState” object, which can contain a list of “StateNature”

 AgoraWebServices.Models.Agora.CompleteRepairState {

...

StateNatures (Array[AgoraWebServices.Models.Agora.StateNature], optional): Repair file status (see state nature list) ,

...

}


1/ Update with appointments status

...

  "StateNatures": [

  {

    "Code""102",

    "Comment""Appointment confirmed 2022-04-02 ",

    "AppointmentNumber": 1,

    "AppointmentDate""2022-05-02T08:00:00.000Z",

    "AppointmentEndDate""2022-05-02T09:00:00.000Z",

 

  }

], ...


The list of appointment status

Status code

Description

Related information

101

CONSUMER IMPOSSIBLE TO REACH

FREE COMMENTS

102

APPOINTMENT CONFIRMED

APPOINTMENT DATES MANDATORY

103

CONSUMER ABSENT

FREE COMMENTS

104

CONSUMER HAS REFUSED THE INTERVENTION

FREE COMMENTS

105

RDV REFUSED CONSUMER CONVENIENCE

APPOINTMENT DATES MANDATORY

106

RDV NOT SCHEDULED CONSTRAINT ATS

FREE COMMENTS

107

RDV NOT SCHEDULED SECOND HOME

FREE COMMENTS

108

RDV NOT SCHEDULED, TOO MANY CONSUMER CONSTRAINTS

FREE COMMENTS

109

RDV NOT SCHEDULED PHONE MESSAGE WITHOUT RESPONSE

FREE COMMENT

110

RDV SCHEDULED CONSUMER CONVENIENCE

APPOINTMENT DATES MANDATORY

111

RDV SCHEDULED TO BE CONFIRMED BY THE CONSUMER

FREE COMMENT

 

2/ Update with spare part information

...

   "StateNatures": [

     {

       "Code""205",

       "Comment""Spare part Ordered",

       "Parts": [

        {

          "Reference""0070817965D",

          "Quantity": 1,

          "Note""Key spare part for the repair",

          "ToBeOrdered"true

        }

      ]

    }

  ], ...

Other use case to inform about a broken spare part received
 ...

  "StateNatures": [

    {

      "Code""204",

      "Comment""cracked spare part. Repair blocked",

      "Parts": [

        {

          "Reference""0070817965D",

          "Quantity": 1,

          "Note""cracked spare part"

        }

      ]

    }

  ], ...


List of spare part status code

Status code

Description

Source

200

SPAREPARTS ORDERED NOT YET RECEIVED

PART REF & ORDER NUMBER

201

SPAREPARTS RECEIVED

PART REF & ORDER NUMBER

202

SPAREPARTS NOT AVAILABLE (MANUFACTURER)

PART REF & ORDER NUMBER

203

SPAREPARTS NOT AVAILABLE (ASA)

FREE COMMENTS

204

SPAREPARTS RECEIVED DEFECTIVE OR BROKEN

PART REF & ORDER NUMBER

205

SPAREPARTS ORDERED

FREE COMMENT

206

SPARE PART EXHAUSTED

FREE COMMENT

207

SPARE PART CANCELED

FREE COMMENT

 

3/ Update with global repair information

...

   "StateNatures": [

     {

       "Code""305",

       "Comment""Repair completed"

   ], ...


List of global repair status

Status code

Description

Related information

300

TECHNICAL ISSUE NOT SOLVED

FREE COMMENTS

301

INTERVENTION NOT FINALIZED

FREE COMMENTS

302

ASK FOR AFTER SALES SOLUTION

FREE COMMENTS

303

DEVICE WORKS AS NEW

FREE COMMENTS

304

DEVICE EXCHANGED BY THE RESELLER

FREE COMMENTS

305

REPAIR FINISHED

FREE COMMENT


4/ Update with appliance situation

...

   "StateNatures": [

     {

       "Code""406",

       "Comment""Diagnosis in progress"

  ], ...

 

 

List of appliance situation status

Status code

Description

Related information

400

RETURN OF THE DEVICE TO THE WORKSHIOP

FREE COMMENTS

401

WORKSHOP REPAIRS

FREE COMMENTS

402

RDV SCHEDULED FOR DEVICE DELIVERY 

FREE COMMENTS

403

DEVICE LENDING

FREE COMMENTS

404

DEVICE LENDING FINISHED

FREE COMMENTS

405

PRODUCT RECEIVED

FREE COMMENT

406

DIAGNOSIS

FREE COMMENT


5/ Update with consumer related status

...

   "StateNatures": [

     {

       "Code""501",

      "Comment""Waiting for approval of the quotation N125559"

   ], ...
 

 

List of consumer related status

 

Status code

Description

Related information

500

WAITING FOR CONSUMER INFORMATION

FREE COMMENTS

501

WAITING FOR QUOTATION APPROVAL

FREE COMMENTS

502

ON HOLD BY THE CONSUMER

FREE COMMENTS

503

WARRANTY GOES OUT OF WAR

FREE COMMENTS

602

PRODUCT RETURNED TO THE CONSUMER

FREE COMMENT

 

6/ Update with repair not possible or out of warranty repair status

 

...

  "StateNatures": [

    {

      "Code": "901",

      "Comment": "Consumer’s just called. Appliance works as new"

   ], ...
 

Status code

Description

Related information

901

INTERVENTION REFUSED BY THE CONSUMER

FREE COMMENTS

902

CONSUMER TOO FAR

FREE COMMENTS

903

INTERVENTION OUT OF WAR DIRECTLY INVOICED TO THE CONSUMER

FREE COMMENTS

904

PHONE MESSAGE LEAVED 

FREE COMMENTS

905

OTHER

FREE COMMENTS

906

DEVICE ALREADY EXCHANGED

FREE COMMENTS

907

DEVICE WORKS AS NEW

FREE COMMENTS

908

ATS UNVAILABLE AS TEMPORARY CLOSED

FREE COMMENTS

909

NO AVAILABILTY IN TIME

FREE COMMENTS


NB: After the creation of the Claim report, Agora automatically updates the status of the related Repair file to the 601 "Closed with warranty intervention" 


2.3 Order spare parts for a repair

To order the spare parts needed for a repair, the service partner can create a dedicated order. For this, Agoraplus provides a web API which, once called, will automatically generate a single spare part order linked to the repair and transmit it to the OEM.

To track the logistic information, Agoraplus provides the following web API 

 

List of Logistic status returned back by the OEM

 

Status code

Description

Related information

202

SPARE PART UNVAILABLE

 

207

SPARE PART ORDER CANCELLED

 

208

SPARE PARTS SHIPPED

 


2.4 PEX process

When repair is not possible, the service partner must request an after-sales solution. This process must be done directly in AgoraPlus because now AgoraPlus does not provide any web API.

2.5 Claim report

At the end of the repair, if the repair is supported by the OEM (even partially), the service partner must request reimbursement for the repair carried out.

To do so, AgoraPlus provides the following web APIs:

 

2.5.1 Inputs

These 2 web APIs contains the same following objects:

 

The main object is the “WarrantyClaim” object:
 

AgoraWebServices.Models.Agora.WarrantyClaim {

ClaimType (AgoraWebServices.Models.Agora.WarrantyClaimType, optional): Report containing device and folder informations ,

ClaimDeliv (AgoraWebServices.Models.Agora.WarrantyClaimDeliv, optional): Exceptional delivery address for parts ordered under warranty ,

ClaimResal (AgoraWebServices.Models.Agora.WarrantyClaimResal, optional): Dealer contact information for the finished product ,

ClaimConso (AgoraWebServices.Models.Agora.WarrantyClaimConso, optional): Address and contact details of the consumer ,

ClaimInfos (AgoraWebServices.Models.Agora.WarrantyClaimInfos, optional): Intervention description ,

ClaimLab (AgoraWebServices.Models.Agora.WarrantyClaimLab, optional): This section is used to indicate the manufacturer participation, as the case may bein the form of a package, labor or travel expenses. ,

ClaimParts (Array[AgoraWebServices.Models.Agora.WarrantyClaimPart], optional): List of parts ordered under warranty or whose refund is requested

}


The “WarrantyClaimType” object contains all information related to the appliance and define the type of repair:

AgoraWebServices.Models.Agora.WarrantyClaimType {

ManufacturerId (integer): Manufacturer Id ,

CommercialRef (string, optional): Commercial reference ,

TechnicalRef (string, optional): Technical reference ,

SerialNumber (string, optional): Serial number ,

...

}

 

The “WarrantyClaimResal” object contains all information about the retailer

AgoraWebServices.Models.Agora.WarrantyClaimResal {

CompanyName (string, optional): Company name ,

Zip (string, optional): Zip code ,

City (string, optional): City ,

State (string, optional): State ,

Country (integer, optional): Consumer country (ISO 3 digits) ,

DistributorFileNumber (string, optional): Work order number at the retailer level

}

 

The “WarrantyClaimConso” object contains all information about the consumer

AgoraWebServices.Models.Agora.WarrantyClaimConso {

Title (integer, optional): Consumer Title 1 : Mrs. ; 2 : Ms. ; 3 : Mr. ; 4 : Company ,

LastName (string, optional): Consumer last name ,

FirstName (string, optional): Consumer first name ,

StreetNumber (string, optional): Consumer street number ,

Address1 (string, optional): Consumer address 1 ,

Address2 (string, optional): Consumer address 2 ,

...

}

 

The “WarrantyClaimInfos” object contains all information about repair

AgoraWebServices.Models.Agora.WarrantyClaimInfos {

CallDate (string, optional): Product call date ,

InterventionStartDateTime (string, optional): First RDV start time ,

InterventionEndDateTime (string, optional): First RDV end time ,

DefaultPartRef (string, optional): Origin part reference ,

IRISCondition (string, optional): IRIS condition. ,

IRISConditionEX (string, optional): IRIS extended condition. ,

IRISSymptom (string, optional): IRIS symptom. ,

IRISSection (string, optional): IRIS section. ,

...

}


The “WarrantyClaimLab” object contains all information about the labor and other fees used to calculate the cost of the reimbursement 

AgoraWebServices.Models.Agora.WarrantyClaimLab {

OriginCode (string, optional): This code corresponds to the code of the repayment plan or identifies the conditions of intervention. ,

LaborHours (integer, optional): Number of hours spent in labor ,

LaborMinutes (integer, optional): Number of minutes spent in labor ,

LaborCost (number, optional): Cost of labor valued by the repairer ,

TravelKilometers (integer, optional): Number of kilometers to travel ,

...

}

 

The “WarrantyClaimParts” object contains all the spare part used to repair the appliance in order to calculate the cost of the reimbursement 

AgoraWebServices.Models.Agora.WarrantyClaimPart {

PartReference (string, optional): Part reference used for the intervention ,

Quantity (integer, optional): Quantity used ,

Comments (string, optional): Comment or countermark at the line ,

BillNumber (string, optional): This information should be specified only for the parts of a report under warranty with request to have. Field must not be specified for warranty orders

}


These 2 APIs takes 2 important parameters as:

  • The “language” in which you expect the error and warning messages (See LCID list)
  • The “transferIsValid” parameter to indicate if you want to automatically transfer the claim when the status of the claim is “VALID” 


2.5.2 Outputs

When a claim is created, the AgoraPlus business rule engine is going to control the content of each claim and will return a list of errors and/or warnings detected. These rules are specific to each OEM.

 

The returned message is composed of the following embedded objects:

 

AgoraWebServices.Models.Response.CreateWarrantyClaimsResponse {

ResponseData (Array[AgoraWebServices.Models.Return.WarrantyClaimResult], optional): Response data ,

ResponseStatus (string, optional): Response status ("S" : Sucess, "E": Error, "W":Warning) ,

IsValid (boolean, optional): Response validity ,

ResponseMessage (string, optional): Response message ,

ResponseErrorMessage (string, optional): Response Error Message

}

 

 

AgoraWebServices.Models.Return.WarrantyClaimResult {

ReportNumber (string, optional): Associated report number ,

ClaimID (integer, optional): Claim identifier in Agora ,

IsValid (boolean, optional): Validity ,

ValidationErrors (Array[AgoraWebServices.Models.Return.ValidationResult], optional): Validation errors ,

ErrorMessage (string, optional): Error message

}

 

AgoraWebServices.Models.Return.ValidationResult {

Field (string, optional): Field associated to the error ,

ErrorMessage (string, optional): Error message ,

MessageType (string, optional): Type of the error message :

E : Error

W : Warning

}


Sample of JSON response:

{

  "ResponseStatus""S",

  "IsValid"true,

  "ResponseMessage"null,

  "ResponseErrorMessage""",

  "ResponseData": {

    "ReportNumber"null,

    "ClaimID": 5272901,

    "IsValid"false,

    "ValidationErrors": [

      {

        "Field""Serial Number",

        "ErrorMessage""The size of the field should be 19 character(s)",

        "MessageType""E"

      },

      {

        "Field""Call date",

        "ErrorMessage""Data is mandatory",

        "MessageType""E"

      },

      {

        "Field""ConsumerDto.LastName",

        "ErrorMessage""Data is mandatory",

        "MessageType""E"

      },

      {

        "Field""ConsumerDto.Address1",

        "ErrorMessage""Data is mandatory",

        "MessageType""E"

      },

      {

        "Field""ConsumerDto.Zip",

        "ErrorMessage""Data is mandatory",

        "MessageType""E"

      },

      {

        "Field""ConsumerDto.MobilePhone",

        "ErrorMessage""Data is mandatory",

        "MessageType""E"

      }

      

    ],

    "ErrorMessage"null

  }

}

 

NB: As the business rules are specific to each OEM, we highly recommend displaying the error message as they are provided by AgoraPlus and avoid any kind of automatic processing as rules can change at any time.


2.5.2 OEM Tracking response

 

Once the claim has been transferred to the OEM, you’ll have to wait for the approval of the OEM.

To track the approval, AgoraPlus provides the following web API:

 

[GET] /Repair/GetWarrantyClaims

List of the “LastStatus” codes 

Status Code

Description

NOTVALID

The Claim report is not valid and consequently the transfer to the OEM cannot be in processed

VALID

The Claim report is valid and consequently the transfer to OEM can be processed if the value of the “transferIfValid” parameter was set as true in the latest submission to AgoraPlus

NOTCONFORM

The Claim report, transferred to the OEM, has been rejected as non-compliant

CLOSEDACCEPTED

The Claim report , transferred to the OEM, is accepted and closed


 

3.       Invoicing management

At the end of the of the month, depending on the invoicing method, the OEM will send via Agoraplus to the service partner a draft invoice by email. In such a case, the service partner is expected to return to AgoraPlus the invoice number linked to this draft invoice. This action will trigger the payment.


3.1 Integration with Agora

The service center receives an email with the authorization, in PDF format, and the list, in CSV format, of all approved claim reports in the previous month. The service center, after creating the invoice in its aftersales software, sends the invoice reference to Agora.


3.2 Sending reference of your invoice

To communicate the details of the invoice to Agora, you need to: 

  • call the appropriate API by sending the invoice number and the draft invoice number



4.       Master data

AgoraPlus provides the following web APIs to update you after sales software repository.

 

4.1 Spare parts repository

To update your spare part repository, AgoraPlus provides the following web API:

[GET] /SparePart/PrintSparePartsByManufacturer

Parameters:

    The “ManufacturerId”: The Agoraplus unique OEM identifier (see the OEM List)

    The “Date”: The date of the last call you did as AgoraPlus will send only the delta.

    The “Language”  (See LCID list)


4.2 Products repository


To update your product repository, AgoraPlus provides the following web API:

Parameters:

    The “ManufacturerId”: The Agoraplus unique OEM identifier (see the OEM List)

    The “Date”: The date of the last call you did as AgoraPlus will send only the delta.

    The “Language”  (See LCID list)


4.3 Get the product BOM (Bill of materials)


The BOM is not provided as a full list but on demand.

To get the BOM of a product, you’ll need to do a sequence of 2 separate calls:

1/ Call the Product/SearchProductByRef   web API by providing the "ManufacturerId", the "KeyWord" which must correspond to the commercial or technical reference of the product and the "CountryCode" corresponding to the market in which the device is marketed.

AgoraPlus will return a list of products providing for each reference a temporary product key which must be used to obtain the BOM during the second sequence call.

2/ Call the /Product/PrintBOMData providing the temporary product key. You’ll get the BOM


5.       General instructions

AGORA APIs are a set of RESTful APIs designed to integrate AGORA functionalities with other aftersales softwares.


5.1 Authentication

Access to the AGORA API is allowed through authentication. To authenticate you need API keys entered as a parameter in the request to the web service. The service center must request the KEY API by email to  support@agoraplus.com.

NB : The provided API Key is linked to a unique AgoraPlus account, so to only one service partner.


5.2 Environments

There are two different environments, one dedicated to development and testing called "pre-production" and the other one representing the "production" environment. The two environments have their own URL and API KEY to access the web services.

Test environment url [ https://preprod-api.agoraplus.com ]

Production environment url [ https://api.agoraplus.com ]

 

Once you access to the API portal, you will have the possibility to select the API V2 documentation:



To download AGORA V3 Test: https://preprod3-solmis.agoraplus.com/Solmis.Client.Agora.application

 

5.2 Service Request


The parameters needed to make a request are described below.

5.5.1  API Key

This is the parameter used for authentication to the web service. The parameter name is api_key and the value are different in the test and production environments for each service center.

5.5.2  Accept

This is the parameter used to indicate the MIME media type that the client is able to recognize and then accept. The parameter name is Accept and its value is application/json.

5.5.3 Content type

This is the parameter used to indicate the MIME media type used for the content of the request. Used for methods in POST and PUT. The parameter name is Content-Type and its value is application/json.


5.5.4 Example

GET /api/product/printmanufacturerproducts/19/01-01-2020/English HTTP/1.1

Host: api.agoraplus.com

api_key: xxxxxxxxxxxxxxxxxxxxxxx

Accept: application/json

Content-Type: application/json


5.3 Service Response


5.3.1 Media Type

The MIME media type used for the response content is application/json and the encoding used is UTF-8.

5.3.2 Date / timestamp

The standard used to indicate dates and timestamps is ISO 8601 and the format is YYYY-MM-JJThh: mm: ssZ

5.3.3 HTTP Header - Status Codes

Code

Description

Note

200

OK

The request is OK

400 

Bad Request

Bad request: the request is incomplete, or its structure is invalid.

401

Unauthorized

Not allowed: the authentication information that was sent is either missing or invalid. Authentication is to be fixed.

403

Forbidden

Forbidden: authentication is valid, but you do not have enough privileges. The user is not granted to access to the requested resources. This status is also returned for all requests from a locked user account.

404

Not found

No results match your request

405

Method Not Allowed

Method Not Allowed: The HTTP method is not supported for this resource.

500

Internal Server Error

Internal server error: used to indicate that there has been a server-side processing failure.

503

Service Unavailable

Service Not Available: try again later. The API sends this code when the systems on which it depends are stopped or react slowly.


5.3.4 Body Message - Structure

All the services have the same body message. This is the json structure:

{

"ResponseStatus": {},

"IsValid": {},

"ResponseMessage": {},

"ResponseErrorMessage": {},

"ResponseData": {}

}


5.3.4.1 ResponseStatus

This is an alphanumeric field that indicates the status of the response.

Expected values :

  • S: Success
  • E: Error
  • W: Warning

 

5.3.4.2 IsValid

This is a boolean field that indicates the validity of the response.

Expected values :

  1. True: the response doesn’t contain error
  2. False : the response contains error


5.3.4.3 ResponseMessage

This is string field that contains a summary message.


5.3.4.4 ResponseErrorMessage

This is string field that contains an error message if the response is not valid.


5.3.4.5 ResponseMessage

This is an Array that contains the response objects. This is the real content of the response.


5.3.5 Example

{

"ResponseStatus": "S",

"IsValid": true,

"ResponseMessage": "19656 created or updated products found since 01/01/2020",

"ResponseErrorMessage": null,

"ResponseData": [  {}, {}, {}, ...]

}



6.       Reference tables

6.1 Country repository

To identity a country (CountryCode) AgoraPlus uses the ISO 3 digit (List of country codes by alpha-2, alpha-3 code (ISO 3166) (iban.com))


6.2 Language

To identify the language, AgoraPlus uses the  LCID Microsoft standard (LCID)

6.3 OEM (AgoraPlus unique identifier)

Manufacturer Id

OEM Name

1

Groupe BRANDT

2

Whirlpool (France)

4

BSH (France)

5

Miele

10

Sogedis

15

Groupe Seb

17

Beko

19

DeLonghi

22

Eberhardt

24

Schneider Consumer Services

26

Electrolux

27

Whirlpool Europe

29

BSH International

33

Haier Europe


 

6.4 Repair type

ManufacturerId*

Name

Intervention

TypeId

ShortDescription

WarrantyClaim

ConditionCode

1

GROUPE BRANDT

1

1 - Sous-garantie

WAR

1

GROUPE BRANDT

2

2 - Sous-garantie (extension)

EXTENDEDWAR

1

GROUPE BRANDT

8

8 - Hors garantie avec prise en charge totale

OUTOFWAR

1

GROUPE BRANDT

9

9 - Mise en service

OUTOFWAR

2

WHIRLPOOL

1

1 - Sous-garantie

WAR

2

WHIRLPOOL

2

2 - Sous-garantie (extension)

EXTENDEDWAR

2

WHIRLPOOL

5

5 - Hors garantie avec prise en charge de la main d’oeuvre

OUTOFWAR

2

WHIRLPOOL

6

6 - Hors garantie avec prise en charge des pièces

OUTOFWAR

2

WHIRLPOOL

7

7 - Hors garantie sans prise en charge

OUTOFWAR

2

WHIRLPOOL

8

8 - Hors garantie avec prise en charge totale

OUTOFWAR

2

WHIRLPOOL

9

9 - Mise en service

OUTOFWAR

3

ELECTROLUX

1

1 - Sous-garantie

WAR

3

ELECTROLUX

2

2 - Sous-garantie (extension)

EXTENDEDWAR

3

ELECTROLUX

5

5 - Hors garantie avec prise en charge de la main d’oeuvre

OUTOFWAR

3

ELECTROLUX

6

6 - Hors garantie avec prise en charge des pièces

OUTOFWAR

3

ELECTROLUX

7

7 - Hors garantie sans prise en charge

OUTOFWAR

3

ELECTROLUX

8

8 - Hors garantie avec prise en charge totale

OUTOFWAR

3

ELECTROLUX

9

9 - Mise en service

OUTOFWAR

4

B/S/H/

1

1 - Sous-garantie

WAR

4

B/S/H/

2

2 - Sous-garantie (extension)

EXTENDEDWAR

4

B/S/H/

5

5 - Hors garantie avec prise en charge de la main d’oeuvre

OUTOFWAR

4

B/S/H/

6

6 - Hors garantie avec prise en charge des pièces

OUTOFWAR

4

B/S/H/

7

7 - Hors garantie sans prise en charge

OUTOFWAR

4

B/S/H/

8

8 - Hors garantie avec prise en charge totale

OUTOFWAR

9

HAIER FRANCE SERVICE

1

1 - Sous-garantie

WAR

9

HAIER FRANCE SERVICE

2

2 - Sous-garantie (extension)

EXTENDEDWAR

9

HAIER FRANCE SERVICE

5

5 - Hors garantie avec prise en charge de la main d’oeuvre

OUTOFWAR

9

HAIER FRANCE SERVICE

6

6 - Hors garantie avec prise en charge des pièces

OUTOFWAR

9

HAIER FRANCE SERVICE

7

7 - Hors garantie sans prise en charge

OUTOFWAR

9

HAIER FRANCE SERVICE

8

8 - Hors garantie avec prise en charge totale

OUTOFWAR

9

HAIER FRANCE SERVICE

9

9 - Mise en service

OUTOFWAR

15

GROUPE SEB

1

1 - Sous-garantie

WAR

15

GROUPE SEB

8

8 - Hors garantie avec prise en charge totale

OUTOFWAR

17

BEKO

1

1 - Sous-garantie

WAR

17

BEKO

2

2 - Sous-garantie (extension)

EXTENDEDWAR

17

BEKO

5

5 - Hors garantie avec prise en charge de la main d’oeuvre

OUTOFWAR

17

BEKO

6

6 - Hors garantie avec prise en charge des pièces

OUTOFWAR

17

BEKO

7

7 - Hors garantie sans prise en charge

OUTOFWAR

17

BEKO

8

8 - Hors garantie avec prise en charge totale

OUTOFWAR

17

BEKO

9

9 - Mise en service

OUTOFWAR

19

DELONGHI

1

1 - Sous-garantie

WAR

19

DELONGHI

5

5 - Hors garantie avec prise en charge de la main d’oeuvre

OUTOFWAR

19

DELONGHI

6

6 - Hors garantie avec prise en charge des pièces

OUTOFWAR

19

DELONGHI

7

7 - Hors garantie sans prise en charge

OUTOFWAR

19

DELONGHI

8

8 - Hors garantie avec prise en charge totale

OUTOFWAR

22

EBERHARDT

1

1 - Sous-garantie

WAR

22

EBERHARDT

2

2 - Sous-garantie (extension)

EXTENDEDWAR

22

EBERHARDT

5

5 - Hors garantie avec prise en charge de la main d’oeuvre

OUTOFWAR

22

EBERHARDT

6

6 - Hors garantie avec prise en charge des pièces

OUTOFWAR

22

EBERHARDT

7

7 - Hors garantie sans prise en charge

OUTOFWAR

22

EBERHARDT

8

8 - Hors garantie avec prise en charge totale

OUTOFWAR

22

EBERHARDT

9

9 - Mise en service

OUTOFWAR

26

ELECTROLUX_INTERNATIONAL

1

1 - Sous-garantie

WAR

26

ELECTROLUX_INTERNATIONAL

2

2 - Sous-garantie (extension)

EXTENDEDWAR

26

ELECTROLUX_INTERNATIONAL

5

5 - Hors garantie avec prise en charge de la main d’oeuvre

OUTOFWAR

26

ELECTROLUX_INTERNATIONAL

6

6 - Hors garantie avec prise en charge des pièces

OUTOFWAR

26

ELECTROLUX_INTERNATIONAL

7

7 - Hors garantie sans prise en charge

OUTOFWAR

26

ELECTROLUX_INTERNATIONAL

8

8 - Hors garantie avec prise en charge totale

OUTOFWAR

26

ELECTROLUX_INTERNATIONAL

9

9 - Mise en service

OUTOFWAR

29

BSH_INTERNATIONAL

1

1 - Sous-garantie

WAR

29

BSH_INTERNATIONAL

2

2 - Sous-garantie (extension)

EXTENDEDWAR

29

BSH_INTERNATIONAL

7

7 - Hors garantie sans prise en charge

OUTOFWAR

29

BSH_INTERNATIONAL

8

8 - Hors garantie avec prise en charge totale

OUTOFWAR

29

BSH_INTERNATIONAL

9

9 - Mise en service

OUTOFWAR

32

PANDO

1

1 - Sous-garantie

WAR

32

PANDO

7

7 - Hors garantie sans prise en charge

OUTOFWAR

33

HAIER EUROPE

1

1 - Sous-garantie

WAR

33

HAIER EUROPE

2

2 - Sous-garantie (extension)

EXTENDEDWAR

33

HAIER EUROPE

7

7 - Hors garantie sans prise en charge

OUTOFWAR

33

HAIER EUROPE

9

9 - Mise en service

OUTOFWAR

33

HAIER EUROPE

25

Before Sales

WAR

33

HAIER EUROPE

26

Check & Care program

WAR

33

HAIER EUROPE

30

Service on demand

WAR

33

HAIER EUROPE

31

Transport damage

WAR

33

HAIER EUROPE

32

Replacement Policy

WAR

33

HAIER EUROPE

33

Washpass

WAR

33

HAIER EUROPE

34

Others Contributions

WAR

34

DELONGHI PACIFICA

1

1 - Sous-garantie

WAR

34

DELONGHI PACIFICA

5

5 - Hors garantie avec prise en charge de la main d’oeuvre

OUTOFWAR

34

DELONGHI PACIFICA

6

6 - Hors garantie avec prise en charge des pièces

OUTOFWAR

34

DELONGHI PACIFICA

7

7 - Hors garantie sans prise en charge

OUTOFWAR

34

DELONGHI PACIFICA

8

8 - Hors garantie avec prise en charge totale

OUTOFWAR

15001

GS COLOMBIA

1

1 - Sous-garantie

WAR

15001

GS COLOMBIA

8

8 - Hors garantie avec prise en charge totale

OUTOFWAR

15002

GS ARGENTINA

1

1 - Sous-garantie

WAR

15002

GS ARGENTINA

8

8 - Hors garantie avec prise en charge totale

OUTOFWAR

15003

GS TURKEY

1

1 - Sous-garantie

WAR

15003

GS TURKEY

8

8 - Hors garantie avec prise en charge totale

OUTOFWAR