eBooking API - Apigee (2.5.3)
Download OpenAPI specification:Download
eBooking API documentation
Authentication & Authorization
You will need to be identified before calling any ebooking endpoints.
In order to be recognized and authorized to access our eBooking API, we put in place 2 mechanisms:
- Authentication mechanism is done with an API key dedicated to you.
Remember that the API key provided should be shared with care.
The API key must be inserted in the header of the request in the appropriate field - Authorization mechanism is done by a well-known authorization flow for REST Web API: “Client credentials” OAuth2.0 flow.
Get available slots for a dedicated centre
This endpoint allows to get available slots for a specific centre.
Authorizations:
path Parameters
centreCode required | string (CentreCodeParameterIn) <= 30 characters Example: A333 The code of the centre you want to get available slots |
Request Body schema: application/json
dateFrom | string <date> Date from which the time slots will be searched. dateFrom property is optional. If dateFrom property is not set: dateFrom will be equal to the current date. Required format: YYYY-MM-DD |
dateTo | string <date> Date until which slots will be searched. dateTo property is optional. If dateTo property is not set, a maximum of 21 days of available time slots will be sent in the response. We recommend that you limit the search interval as much as possible for good performance (7 days might be a good compromise) Required format: YYYY-MM-DD The dateTo must be greater than the dateFrom, otherwise an error will occur. |
required | Array of objects [ 1 .. 50 ] items |
object The vehicle |
Responses
Request samples
- Payload
Use dateTo and dateFrom fields to define a search interval for timeslots.
{- "dateFrom": "2022-03-15",
- "dateTo": "2022-03-22",
- "services": [
- {
- "serviceCode": "S0000418",
- "quantity": 2
}
]
}
Response samples
- 200
- 400
- 401
- 404
- 500
{- "searchLimit": {
- "current": {
- "dateFrom": "2023-10-25",
- "dateTo": "2023-11-15"
}, - "next": {
- "dateFrom": "2023-11-16",
- "dateTo": "2023-12-25"
}
}, - "servicesDuration": 60,
- "timeSlots": [
- {
- "startTime": "2022-10-04T08:00"
}, - {
- "startTime": "2022-10-04T08:30"
}, - {
- "startTime": "2022-10-04T09:00"
}
]
}
Book an appointment in a garage
This endpoint allows to book an appointment in a garage
Authorizations:
Request Body schema: application/json
centreCode required | string <= 30 characters Code of the centre in which you want to book an appointment |
timeSlot required | string <= 16 characters ^([0-9]{4})-(?:[0-9]{2})-([0-9]{2})T([01][0-9... Booking date: one of the time slots offered in the timeslots end point. Required format: YYYY-MM-DDThh:mm Example of accepted values: 2021-06-18T10:00 2021-06-18T10:00 |
externalCode | string <= 30 characters External identifier belonging to the consumer and linked to the reservation (can ease tracking) |
comments | string <= 2000 characters Comments entered when making an appointment |
required | Array of objects [ 1 .. 50 ] items |
required | object The driver informations |
required | object The vehicle |
object The tyre dimensions |
Responses
Request samples
- Payload
{- "centreCode": "A333",
- "timeSlot": "2021-03-18T10:00",
- "externalCode": "my-external-code_AB123",
- "comments": "Front tyre and rear tyre must be reversed",
- "services": [
- {
- "serviceCode": "string",
- "quantity": "2"
}
], - "driver": {
- "firstName": "John",
- "lastName": "Doe",
- "mobilePhone": "+33602030405",
- "email": "john@doe.com",
- "optIn": true
}, - "vehicle": {
- "licencePlate": "AA123BB",
- "make": "Renault",
- "model": "Clio",
- "year": "2016",
- "mileage": "10001",
- "identificationNumber": "string",
- "companyCode": "string",
- "subCompanyCode": "string"
}, - "tyreDimensions": {
- "frontTyre": {
- "brand": "MICHELIN",
- "model": "PILOT SPORT 5 XL",
- "width": "225",
- "ratio": "45",
- "rim": "17",
- "loadIndex": "91",
- "speedIndex": "V"
}, - "rearTyre": {
- "brand": "MICHELIN",
- "model": "PILOT SPORT 5 XL",
- "width": "225",
- "ratio": "45",
- "rim": "17",
- "loadIndex": "91",
- "speedIndex": "V"
}
}
}
Response samples
- 202
- 400
- 401
- 409
- 500
{- "appointmentCode": "2021061413121681887",
- "updatableUntil": "2021-05-31",
- "cancelableUntil": "2021-05-31"
}
Update the time slot of an existing appointment.
This endpoint allows to move the appointment date in the calendar of a garage
Authorizations:
path Parameters
appointmentCode required | integer <int64> (AppointmentCodeParameterIn) [ 0 .. 999999999 ] Example: 123456 The code you received with the booking appointment endpoint. |
Request Body schema: application/json
timeSlot required | string <= 16 characters ^([0-9]{4})-(?:[0-9]{2})-([0-9]{2})T([01][0-9... Booking date: one of the time slots offered in the timeslots end point. Required format: YYYY-MM-DDThh:mm Example of accepted values: 2021-06-18T10:00 2021-06-18T10:00 |
Responses
Request samples
- Payload
{- "timeSlot": "2021-03-18T10:00"
}
Response samples
- 200
- 400
- 401
- 403
- 404
- 409
- 410
{- "status": "CONFIRMED",
- "description": "Booking confirmed",
- "timeSlot": "2021-05-31T08:30"
}
Delete an existing appointment.
This endpoint allows to delete an existing appointment in the calendar of a garage
Authorizations:
path Parameters
appointmentCode required | integer <int64> (AppointmentCodeParameterIn) [ 0 .. 999999999 ] Example: 123456 The code you received with the booking appointment endpoint. |
Responses
Response samples
- 400
- 401
- 403
- 404
- 410
{- "errors": [
- {
- "error": "Appointment cancellation cutoff has expired",
- "property": "appointmentCode"
}
]
}
Get the status of an appointment.
This endpoint allows to retrieve the status of an appointment
Authorizations:
path Parameters
appointmentCode required | integer <int64> (AppointmentCodeParameterIn) [ 0 .. 999999999 ] Example: 123456 The code you received with the booking appointment endpoint. |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 410
{- "status": "CONFIRMED",
- "description": "Booking confirmed",
- "timeSlot": "2021-05-31T08:30:00",
- "updatableUntil": "2021-05-30T08:30:00",
- "cancelableUntil": "2021-05-30T08:30:00"
}
Get the first availability for a defined service for 10 centers max simultaneously
This endpoint allows to get the first availability for a defined service with a defined quantity for 10 centers max simultaneously
Authorizations:
path Parameters
serviceCode required | string <string> (ServiceCodeParameterIn) <= 30 characters Example: 1000151984 The code of the service you want to get first availability |
query Parameters
centres required | Array of strings (CentreCodeListQueryParameter) [ 1 .. 10 ] items [ items <= 30 characters ] Example: centres=A333,A332 List of centers delimited by , that need to be considered for filter |
quantity required | integer <int64> (QuantityQueryParameter) [ 1 .. 10 ] Example: quantity=2 Quantity of service that need to be considered for filter |
licencePlate | string <string> (LicencePlateQueryParameter) <= 20 characters Example: licencePlate=AA123BB Licence plate of the vehicle |
dateFrom | string <date> (DateFromQueryParameter) Example: dateFrom=2023-05-18 Date from which we compute the firstAvailabilities |
Responses
Response samples
- 200
- 400
- 404
- 500
{- "serviceAvailability": [
- {
- "centreCode": "636",
- "firstAvailability": "2022-04-13"
}, - {
- "centreCode": "492",
- "firstAvailability": "2022-04-12"
}, - {
- "centreCode": "299",
- "firstAvailability": "2022-04-11"
}
], - "errors": [ ]
}
Get the list of services available
This endpoint allows to get the list of services available in an instance
Authorizations:
Responses
Response samples
- 200
{- "services": [
- {
- "serviceCode": "1000151984",
- "description": "the service description",
- "isTyreHotel": true,
- "price": 12.55
}, - {
- "serviceCode": "1000151985",
- "description": "the service description",
- "isTyreHotel": false,
- "price": null
}
]
}
Get the list of centres available
This endpoint allows to get the list of centres available in an instance
Authorizations:
Responses
Response samples
- 200
{- "centres": [
- {
- "centreCode": "A006",
- "name": "Euromaster SERVICE",
- "address1": "Nadbrzezie 2",
- "postalCode": "31-983",
- "city": "Kraków",
- "phoneNumber": "06 89 75 48 69",
- "faxNumber": "555-123-4567",
- "mail": "name@mail.com",
- "latitude": "47.01878",
- "longitude": "4.8575",
- "googlePlaceId": "ChIJD9YcoZEb90cRmXDp8EhtANs",
- "services": [
- {
- "serviceCode": "1000151984"
}, - {
- "serviceCode": "1000151985"
}
]
}
]
}
Get the list of tyre location
This endpoint allows to get all of the tyre location
Authorizations:
query Parameters
centreCode | string <string> (CentreCodeQueryParameter) <= 30 characters Example: centreCode=A0006 Center code |
pageNumber required | integer <int32> (PageNumberQueryParameter) <= 1000 Example: pageNumber=2 The page number |
pageSize required | integer <int32> (PageSizeQueryParameter) [ 1 .. 1000 ] Example: pageSize=2 The page size |
Responses
Response samples
- 200
- 400
- 404
{- "pagination": {
- "next": "/ebooking-erm/v2/tyres-location?page=3&size=50¢reCode=A006",
- "previous": "/ebooking-erm/v2/tyres-location?page=1&size=50¢reCode=A006",
- "pageTotal": 20,
- "total": 437
}, - "tyresLocations": [
- {
- "licencePlate": "AA123BB",
- "centreCode": "A006"
}, - {
- "licencePlate": "AA456BB",
- "centreCode": "A026"
}
]
}
Get the list of tyre location for a licence plate
This endpoint allows to get the tyre location regarding a licence plate
Authorizations:
path Parameters
licencePlate required | string <string> (LicencePlateParameterIn) <= 20 characters Example: AA123BB Registration number of the vehicle |
Responses
Response samples
- 200
- 404
{- "licencePlate": "AA123BB",
- "centreCode": "A006"
}