Introduction
Welcome to the Claire Automotive Support Public API !
You can use our API to access Claire API endpoints, which gives information on various sections from our database.
Endpoints description, method, url, request/response shema and their description are presented on the left. The right side contains example requests (via curl) and reponses (in JSON).
For more information on types and possible value, refer to the Models and Enumeration section.
In the future, more endpoints will be added in order to provide complete access to Claire database.
If this is your first time reading the docs, check out the Authentication section for obtaining and using API keys.
Changelog section contains all updates related to this API.
Authentication
To authorize, use this code:
# With shell, you can just pass the correct header with each request
curl "api_endpoint_here"
-H "Authorization: $your_api_key"
# Alternatively, you can place the api_key as a query parameter:
curl "api_endpoint_here?api_key=$your_api_key"
Make sure to replace
your_api_key
with your actual API key.
Claire Automotive Support API uses API keys to allow access to the API..
You can register a new API key only as a Dealer Admin, inside Claire application, on the API Keys
section.
Currently you can create as many API Keys as you want and give them a name. Once you don't want to use it you can disable it from the dashboard.
Claire API expects the API key to be included in all API requests to the server. There are two ways to include it in requests:
As a query parameter:
?api_key=&your_api_key
As a header:
Authorization: &your_api_key
Appointments
This controller provides endpoints to get the appointment details.
PublicAccount can get the appointments by the DMSNr and also get the appointment details by the appointment ID.
[DEPRECATED: Use /appointments/list] Get Appointments by DMS number
curl "API_BASE/v1/appointments?location_id=...&dms_nr=...&customer_kind=..."
-H "Authorization: $your_api_key"
[DEPRECATED: Use /appointments/list] This endpoint retrieves Appointments by the provided DMS Number. If the DMS number is of customer type, customer_kind
query parameter needs to be provided as well.
HTTP Request
GET /v1/appointments?location_id=...&dms_nr=...&customer_kind=...
The request JSON response is:
[
{
"created_on": "0001-01-01T00:00:00Z",
"updated_on": "0001-01-01T00:00:00Z",
"id": 0,
"dms_number": "",
"workorder_number": "",
"reference_number": "",
"importer_version": "",
"dms_status": "",
"car_check_started": false,
"customer_waiting": false,
"is_local": false,
"is_money": false,
"is_star": false,
"is_star_color": "",
"is_shop": false,
"is_shop_color": "",
"is_lease_company": false,
"has_extra_check": false,
"final_check_has_remarks": false,
"is_recurring": false,
"warranty_pin_count": 0,
"warranty_pin_signature_missing_count": 0,
"warranty_pin_claim_nr_missing_count": 0,
"warranty_pin_support_nr_missing_count": 0,
"recall_pin_count": 0,
"recall_pin_claim_nr_missing_count": 0,
"recall_pin_support_nr_missing_count": 0,
"remark_pin_count": 0,
"next_date": null,
"predicted_next_date": null,
"time_car_app": "0001-01-01T00:00:00Z",
"is_pinned": false,
"is_pinned_manually": false,
"status_override": 0,
"scheduled_in": null,
"scheduled_out": null,
"key_dropped_at": null,
"key_dropped_in": null,
"key_picked_up_at": null,
"key_picked_up_by_id": null,
"key_dropped_back_at": null,
"key_dropped_back_by_id": null,
"key_dropped_back_in": null,
"key_picked_up_back_at": null,
"key_picked_up_back_by_id": null,
"driver_id": null,
"owner_id": null,
"contract_id": null,
"location_id": 0,
"car_id": 0,
"vin": "",
"car_model": "",
"car_make": "",
"license_plate_number": "",
"current_km": 0,
"dms_km": 0,
"next_km": 0,
"car_apk_date": null,
"car_hu_date": null,
"driver_initials": "",
"driver_title": "",
"driver_firstname": "",
"driver_surname": "",
"contractor_initials": "",
"contractor_title": "",
"contractor_firstname": "",
"contractor_surname": "",
"owner_initials": "",
"owner_title": "",
"owner_firstname": "",
"owner_surname": "",
"company": "",
"appointment_status_identifier": 0,
"last_update": null,
"last_user": "",
"last_user_profile_picture": "",
"last_user_at": null,
"approved_not_fixed_count": 0,
"customer_driver": null,
"customer_owner": null,
"customer_contract": null,
"check_initiator": null,
"car": null,
"car_profile_picture": null,
"final_check_images": null,
"final_check_videos": null,
"status_history": null,
"interventions": null,
"customcom_key": null,
"appointment_status_name": "",
"checklists": null,
"dealer_name": "",
"dealer_commercial_name": "",
"location_name": "",
"location_phone": "",
"driver_dms_number": null,
"owner_dms_number": null,
"contract_dms_number": null,
"car_dms_number": null,
"dms_location_source": null
}
]
Request schema
Parameter | Type | Required | Description |
---|---|---|---|
location_id | DealerLocationID | true | The DealerLocationID the appointment belongs to. To obtain the list of Locations use the Locations endpoints. |
dms_nr | string | true | The DMS number of the appointment or customer. |
customer_kind | string | false | Required only if the DMS number is of a customer. Can be one of the following: driver, owner, contractor. |
Response schema
This endpoint return an array of Appointment, please refer to the JSON response column on the right, or to the Models and Enumeration section for more details.
Get Appointments by provided filters
curl "API_BASE/v1/appointments/list"
-H "Authorization: $your_api_key"
This endpoint retrieves Appointments through the provided filters. At least one filter must be used.
HTTP Request
POST /v1/appointments/list
The request Body payload is:
{
"location_id": 0,
"dms_nr": null,
"customer_kind": null,
"date": null,
"is_pinned": null
}
The request JSON response is:
{
"appointments": null
}
Request schema
Parameter | Type | Required | Description |
---|---|---|---|
location_id | DealerLocationID | true | The DealerLocationID the appointment belongs to. To obtain the list of Locations use the Locations endpoints. |
dms_nr | string | false | The DMS number of the appointment or customer. |
customer_kind | string | false | Required only if the DMS number is of a customer. Can be one of the following: driver, owner, contractor. |
date | time.Time | false | The date of the appointments. |
is_pinned | bool | false | If set to true, all pinned appointments will be returned, even if other filter(s) are set. False is not accepted |
Response schema
This endpoint return an object with the following fields, please refer to the JSON response column on the right for an example.
Parameter | Type |
---|---|
appointments | []model.Appointment |
Get a Specific Appointment
curl "API_BASE/v1/appointments/{id}"
-H "Authorization: $your_api_key"
This endpoint retrieves a specific Appointment by the provided Claire Appointment ID.
HTTP Request
GET /v1/appointments/{id}
The request JSON response is:
{
"created_on": "0001-01-01T00:00:00Z",
"updated_on": "0001-01-01T00:00:00Z",
"id": 0,
"dms_number": "",
"workorder_number": "",
"reference_number": "",
"importer_version": "",
"dms_status": "",
"car_check_started": false,
"customer_waiting": false,
"is_local": false,
"is_money": false,
"is_star": false,
"is_star_color": "",
"is_shop": false,
"is_shop_color": "",
"is_lease_company": false,
"has_extra_check": false,
"final_check_has_remarks": false,
"is_recurring": false,
"warranty_pin_count": 0,
"warranty_pin_signature_missing_count": 0,
"warranty_pin_claim_nr_missing_count": 0,
"warranty_pin_support_nr_missing_count": 0,
"recall_pin_count": 0,
"recall_pin_claim_nr_missing_count": 0,
"recall_pin_support_nr_missing_count": 0,
"remark_pin_count": 0,
"next_date": null,
"predicted_next_date": null,
"time_car_app": "0001-01-01T00:00:00Z",
"is_pinned": false,
"is_pinned_manually": false,
"status_override": 0,
"scheduled_in": null,
"scheduled_out": null,
"key_dropped_at": null,
"key_dropped_in": null,
"key_picked_up_at": null,
"key_picked_up_by_id": null,
"key_dropped_back_at": null,
"key_dropped_back_by_id": null,
"key_dropped_back_in": null,
"key_picked_up_back_at": null,
"key_picked_up_back_by_id": null,
"driver_id": null,
"owner_id": null,
"contract_id": null,
"location_id": 0,
"car_id": 0,
"vin": "",
"car_model": "",
"car_make": "",
"license_plate_number": "",
"current_km": 0,
"dms_km": 0,
"next_km": 0,
"car_apk_date": null,
"car_hu_date": null,
"driver_initials": "",
"driver_title": "",
"driver_firstname": "",
"driver_surname": "",
"contractor_initials": "",
"contractor_title": "",
"contractor_firstname": "",
"contractor_surname": "",
"owner_initials": "",
"owner_title": "",
"owner_firstname": "",
"owner_surname": "",
"company": "",
"appointment_status_identifier": 0,
"last_update": null,
"last_user": "",
"last_user_profile_picture": "",
"last_user_at": null,
"approved_not_fixed_count": 0,
"customer_driver": null,
"customer_owner": null,
"customer_contract": null,
"check_initiator": null,
"car": null,
"car_profile_picture": null,
"final_check_images": null,
"final_check_videos": null,
"status_history": null,
"interventions": null,
"customcom_key": null,
"appointment_status_name": "",
"checklists": null,
"dealer_name": "",
"dealer_commercial_name": "",
"location_name": "",
"location_phone": "",
"driver_dms_number": null,
"owner_dms_number": null,
"contract_dms_number": null,
"car_dms_number": null,
"dms_location_source": null
}
Request schema
Parameter | Type | Required | Description |
---|---|---|---|
id | AppointmentID | true | The ID of the Appointment to retrieve. |
Response schema
This endpoint return an object of type Appointment, please refer to the JSON response column on the right, or to the Models and Enumeration section for more details.
Import Appointments
curl "API_BASE/v1/appointments/import"
-H "Authorization: $your_api_key"
This endpoint allow you to create/update batches of Appointment within Claire.
One request must - not contain more than 100 appointments - not contain appointments from different locations
The location must - be within the scope of the API key used - not be connected to an API based DMS (Ex: Keyloop, NextLane, Autoflex, etc...)
Each appointment must - have a dms_nr, wo_nr, dms_created_at, time_car_app and location_id - have a car with a dms_nr, vin, model and make - have at least one customer with a dms_nr and surname - if provided, interventions must have a dms_nr and a title
This endpoint will add the appointment(s) to the dealer's queue for processing.
The result of each appointment import from the dealer's queue can be received in real time by webhook, if set-up (optional).
Setting up this webhook is achieved by creating a webhook for the trigger PublicAPIAppointmentImported, either for the location or for the dealer (doable through our dashboard or through this API if you were given the rights to). This webhook payload will always contain: - webhook_trigger_id set to the value of PublicAPIAppointmentImported ( see WebhookTriggerID Enumeration in the Models & Enumeration section ) (helpful if you want to handle multiple type of webhook triggers with one handler. - dealer_id, dealer_location_id, wo_nr This webhook payload will also contain the appointment_id on success, or appointment_import_error on failure.
It's important to note that the dms_nr and dms_created_at are used to identify what actions will be taken to import appointments and customers (not cars, see below). - If a dms_nr already exists for the given dms_created_at within Claire for the given location, the object will be updated. - If a dms_nr does not exist for the given dms_created_at within Claire for the given location, the object will be created. - If your DMS reuse the dms_nr, you must make sure to specify a different dms_created_on to differentiate them.
Cars are imported at the dealer level, not at the location level, and the vin is used to differentiate them.
All import related websocket and webhook events will be pushed to users as when Claire normally pull data from a DMS.
Note that this endpoint will return HTTP 200 OK even if some appointment(s) failed to be validated, queued or imported. If you want to know if a given appointment was imported successfully or not, you must set up the PublicAPIAppointmentImported webhook trigger.
HTTP Request
POST /v1/appointments/import
The request Body payload is:
{
"appointments": null
}
The request JSON response is:
This endpoint do not return anything, only the HTTP status code matters.
Request schema
Parameter | Type | Required | Description |
---|---|---|---|
Appointments | []validation.Appointment | true | Appointments to be imported |
Response schema
This endpoint do not return anything, only the HTTP status code matters.
Checks
This controller provides endpoints to retrieve the checks belonging to specific appointment.
To get the checks for a specific appointment, appointment ID needs to be provided.
Get Checks of a Specific Appointment
curl "API_BASE/v1/checks?appointment_id=..."
-H "Authorization: $your_api_key"
This endpoint retrieves Checks of a specific Appointment by the provided Appointment ID.
HTTP Request
GET /v1/checks?appointment_id=...
The request JSON response is:
[
{
"created_on": "0001-01-01T00:00:00Z",
"updated_on": "0001-01-01T00:00:00Z",
"id": 0,
"duration": 0,
"appointment_id": 0,
"car_id": 0,
"intervention_id": null,
"mechanic": null,
"checklist": null,
"receptionist": null,
"question_items": null
}
]
Request schema
Parameter | Type | Required | Description |
---|---|---|---|
appointment_id | AppointmentID | true | The ID of the Appointment whose checks are to be retrieved. |
Response schema
This endpoint return an array of Check, please refer to the JSON response column on the right, or to the Models and Enumeration section for more details.
Locations
This controller provides endpoints to retrieve the locations.
The locations are provided as a list and only those locations are provided which belongs to the dealer ID of the public account.
Get All Locations
curl "API_BASE/v1/locations"
-H "Authorization: $your_api_key"
This endpoint retrieves all Locations.
HTTP Request
GET /v1/locations
The request JSON response is:
[
{
"created_on": "0001-01-01T00:00:00Z",
"updated_on": "0001-01-01T00:00:00Z",
"id": 0,
"NotifierKey": "",
"dms_location_source": "",
"name": "",
"commercial_name": "",
"headline": "",
"footerline": "",
"logo": "",
"company_stamp": "",
"street": "",
"postal_code": "",
"city": "",
"country": "",
"phone_nr": "",
"DeskCheckInEnabled": false,
"IsOpenDeskCheckoutOnCarOutOfShopEnabled": false,
"IsKeyloopEventEnabled": false,
"IsShareboxEnabled": false,
"DMSLocationIDs": ""
}
]
Request schema
This request does not accept any parameters.
Response schema
This endpoint return an array of DealerLocation, please refer to the JSON response column on the right, or to the Models and Enumeration section for more details.
Tags
This controller provides endpoint to retrieves all the tags.
Get Tags
curl "API_BASE/v1/tags"
-H "Authorization: $your_api_key"
This endpoint retrieves all the tags.
HTTP Request
GET /v1/tags
The request JSON response is:
[
{
"created_on": "0001-01-01T00:00:00Z",
"updated_on": "0001-01-01T00:00:00Z",
"id": 0,
"name": "",
"color": "",
"system": false
}
]
Request schema
This request does not accept any parameters.
Response schema
This endpoint return an array of Tag, please refer to the JSON response column on the right, or to the Models and Enumeration section for more details.
Questions
This controller provides the endpoints to retrieve the question details.
This controller returns all the default questions and also the dealer questions.
Get Questions
curl "API_BASE/v1/questions"
-H "Authorization: $your_api_key"
This endpoint retrieves all the default questions plus the dealer questions.
HTTP Request
GET /v1/questions
The request JSON response is:
[
{
"created_on": "0001-01-01T00:00:00Z",
"updated_on": "0001-01-01T00:00:00Z",
"id": 0,
"question": "",
"role_id": 0,
"question_elements": null
}
]
Request schema
This request does not accept any parameters.
Response schema
This endpoint return an array of Question, please refer to the JSON response column on the right, or to the Models and Enumeration section for more details.
Car
This controller provides endpoints to retrieve the Car details.
The car details is provided based on the VIN of the Car at the dealer locations.
Get a car by VIN
curl "API_BASE/v1/car?vin=..."
-H "Authorization: $your_api_key"
This endpoint search if a car exists with the given VIN in the dealer locations
HTTP Request
GET /v1/car?vin=...
The request JSON response is:
{
"created_on": "0001-01-01T00:00:00Z",
"updated_on": "0001-01-01T00:00:00Z",
"id": 0,
"is_truck": false,
"make": "",
"model": "",
"fuel": "",
"reg_number": "",
"vin": "",
"dms_number": "",
"picture": "",
"dms_registration": null,
"rdw_first_registration": null,
"rdw_first_registration_nl": null,
"rdw_type_goedkeurings_nummer": "",
"rdw_type": "",
"rdw_variant": "",
"rdw_uitvoering": "",
"apk_date_dms": null,
"hu_date_dms": null,
"warranty_date_start": null,
"warranty_date_end": null,
"rob_lease_expiration": null,
"mcc_status": null,
"mcc_status_time": null,
"tyres_on_car": null,
"tyres_in_storage": null,
"truck_tyres": null,
"notes": null
}
Request schema
Parameter | Type | Required | Description |
---|---|---|---|
vin | string | true | VIN of the Car |
Response schema
This endpoint return an object of type Car, please refer to the JSON response column on the right, or to the Models and Enumeration section for more details.
Webhooks
Webhooks allows to setup up triggers in Claire to be notified whenever a specific change or action has been made, or when something is available.
This feature is useful to fetch new appointment data from our Public API as soon as it has been updated.
There are two ways to create a webhook.
Claire Dashboard
- Login to Claire as Dealer Admin (minimum role required to see the webhook page)
- In the main menu, choose Webhooks
- Click on the plus button in bottom-right corner
- Fill in the form accordingly i.e.
- provide a name to the webhook
- select Location (optional, if provided will be triggered only for the given location, otherwise it will be triggered for all locations of the selected Dealer)
- choose the trigger from the drop down
- provide an url which will be called by the webhook
- add necessary headers if required
Public API
To use this method, an API key is required, it can be created in the Claire dashboard
1. Login to Claire as Dealer Admin (minimum role required to see the API page) 2. In the main menu, choose Claire API 3. Click on Create API Key and enter the required fields 4. In the list you can now click on Show the API key, for the row that you just created
Contact support if needed to create an API key.
See the Create a webhook section below for more details on how to create a webhook with this API.
Whitelisting
If you have a firewall or if you want to restrict who can call the URLs defined in your webhooks, use the the following IP addresses:
- Production: 34.91.154.69
- Development: 34.91.177.194
Payload
A json object will be passed as body of the POST request made to your webhooks URLs, with the following fields:
Field | Type | Optional | Description |
---|---|---|---|
appointment_id | integer | No | The Claire appointment ID, to be used with endpoints of this API |
dealer_id | integer | No | The Claire dealer ID, to be used with endpoints of this API |
dealer_location_id | integer | No | The Claire location ID, to be used with endpoints of this API |
wo_nr | string | No | The appointment's work order number, taken from the DMS |
communication_key | string | Yes | The appointment's customer communication key. Only passed for communication related triggers. |
customer_dmsnr | string | Yes | The customer's DMS number, taken from the DMS. Only passed for communication related triggers. |
customer_type | string | Yes | The customer type, can be either 'driver', 'owner' or 'contractor'. Only passed for communication related triggers. |
Get the list of existing webhooks
curl "API_BASE/v1/webhooks/list"
-H "Authorization: $your_api_key"
This endpoint returns the list of webhooks created with the api key used as authentication
HTTP Request
GET /v1/webhooks/list
The request JSON response is:
[
{
"created_on": "0001-01-01T00:00:00Z",
"updated_on": "0001-01-01T00:00:00Z",
"id": 0,
"name": "",
"webhook_trigger_id": 0,
"dealer_id": 0,
"dealer_location_id": null,
"public_account_id": null,
"user_id": null,
"url": "",
"queued": false,
"checklist_id": null,
"active": false,
"headers": null,
"public_account": null,
"user": null,
"has_recent_error": null
}
]
Request schema
This request does not accept any parameters.
Response schema
This endpoint return an array of Webhook, please refer to the JSON response column on the right, or to the Models and Enumeration section for more details.
Create a webhook
curl "API_BASE/v1/webhooks/create"
-H "Authorization: $your_api_key"
This endpoint create a webhook that will call the given URL, every time the given trigger occurs. The URL can be called with optional headers, if given. A JSON object with three fields is passed as POST payload to the URL called - Claire Appointment ID (appointment_id) - Claire DealerLocation ID (dealer_location_id) - WorkOrder Number (wo_nr). You have a limit of webhooks per API key that can be created, contact support if you reach it.
HTTP Request
POST /v1/webhooks/create
The request Body payload is:
{
"created_on": "0001-01-01T00:00:00Z",
"updated_on": "0001-01-01T00:00:00Z",
"id": 0,
"name": "",
"webhook_trigger_id": 0,
"dealer_id": 0,
"dealer_location_id": null,
"public_account_id": null,
"user_id": null,
"url": "",
"queued": false,
"checklist_id": null,
"active": false,
"headers": null,
"public_account": null,
"user": null,
"has_recent_error": null
}
The request JSON response is:
{
"ID": 0
}
Request schema
Parameter | Type | Required | Description |
---|---|---|---|
Webhook | Webhook | true |
Response schema
This endpoint return an object with the following fields, please refer to the JSON response column on the right for an example.
Parameter | Type |
---|---|
ID | WebhookID |
Get a webhook details
curl "API_BASE/v1/webhooks/view?webhook_id=..."
-H "Authorization: $your_api_key"
This endpoint returns the webhook details, including optional headers if any, for the webhook ID provided
HTTP Request
GET /v1/webhooks/view?webhook_id=...
The request JSON response is:
{
"created_on": "0001-01-01T00:00:00Z",
"updated_on": "0001-01-01T00:00:00Z",
"id": 0,
"name": "",
"webhook_trigger_id": 0,
"dealer_id": 0,
"dealer_location_id": null,
"public_account_id": null,
"user_id": null,
"url": "",
"queued": false,
"checklist_id": null,
"active": false,
"headers": null,
"public_account": null,
"user": null,
"has_recent_error": null
}
Request schema
Parameter | Type | Required | Description |
---|---|---|---|
webhook_id | WebhookID | true | The Webhook ID to retrieve details |
Response schema
This endpoint return an object of type Webhook, please refer to the JSON response column on the right, or to the Models and Enumeration section for more details.
Update a webhook
curl "API_BASE/v1/webhooks/update"
-H "Authorization: $your_api_key"
This endpoint updates a webhook that was created with the same API key, for the same dealer, based on the webhook ID given. Headers are replaced, so make sure to provide them if you do not intend to remove them.
HTTP Request
POST /v1/webhooks/update
The request Body payload is:
{
"created_on": "0001-01-01T00:00:00Z",
"updated_on": "0001-01-01T00:00:00Z",
"id": 0,
"name": "",
"webhook_trigger_id": 0,
"dealer_id": 0,
"dealer_location_id": null,
"public_account_id": null,
"user_id": null,
"url": "",
"queued": false,
"checklist_id": null,
"active": false,
"headers": null,
"public_account": null,
"user": null,
"has_recent_error": null
}
The request JSON response is:
This endpoint do not return anything, only the HTTP status code matters.
Request schema
Parameter | Type | Required | Description |
---|---|---|---|
Webhook | Webhook | true |
Response schema
This endpoint do not return anything, only the HTTP status code matters.
Delete a webhook
curl "API_BASE/v1/webhooks/delete?webhook_id=..."
-H "Authorization: $your_api_key"
This endpoint deletes the webhook for the provided webhook ID if it was created with the same API key, for the same dealer.
HTTP Request
POST /v1/webhooks/delete?webhook_id=...
The request JSON response is:
This endpoint do not return anything, only the HTTP status code matters.
Request schema
Parameter | Type | Required | Description |
---|---|---|---|
webhook_id | WebhookID | true | The ID of the Webhook to be deleted |
Response schema
This endpoint do not return anything, only the HTTP status code matters.
Test a webhook
curl "API_BASE/v1/webhooks/test"
-H "Authorization: $your_api_key"
This endpoint triggers the webhook for the provided webhook ID if it was created with the same API key, for the same dealer.
HTTP Request
POST /v1/webhooks/test
The request Body payload is:
{
"WebhookID": 0,
"CommunicationReceiverID": null,
"Payload": {
"WebhookTriggerID": 0,
"AppointmentID": 0,
"DealerID": 0,
"DealerLocationID": 0,
"WONr": "",
"CommunicationKey": null,
"CustomerDMSNr": null,
"CustomerType": null,
"ReceptionistName": null,
"ReceptionistPhone": null,
"ReceptionistProfilePictureURL": null,
"CustomerRemarks": null,
"CorrectPhone": null,
"CorrectEmail": null,
"CustomerName": null,
"LocationVAT": null,
"ScheduledInterventions": null,
"CustomerOrder": null,
"CustomerContactItems": null,
"DMSLocationSource": "",
"IsShop": null,
"IsShopColor": null,
"ChecklistID": null,
"ChecklistName": null,
"DMSNr": null,
"AppointmentImportError": null
}
}
The request JSON response is:
This endpoint do not return anything, only the HTTP status code matters.
Request schema
Parameter | Type | Required | Description |
---|---|---|---|
Message | webhook.Message | true |
Response schema
This endpoint do not return anything, only the HTTP status code matters.
List webhook errors
curl "API_BASE/v1/webhooks/list_errors"
-H "Authorization: $your_api_key"
This endpoint returns a paginated list of errors that have occurred for a webhook. It is limited to the past 3 months.
HTTP Request
POST /v1/webhooks/list_errors
The request Body payload is:
{
"WebhookID": 0,
"Page": 0
}
The request JSON response is:
{
"items": null,
"nb_pages": 0
}
Request schema
Parameter | Type | Required | Description |
---|---|---|---|
webhook_id | WebhookID | true | The Webhook ID to retrieve list of errors |
page | int | true | Page number for the list |
Response schema
This endpoint return an object with the following fields, please refer to the JSON response column on the right for an example.
Parameter | Type |
---|---|
Items | []model.WebhookError |
NbPages | int |
Get the list of triggers
curl "API_BASE/v1/webhooks/list_triggers"
-H "Authorization: $your_api_key"
This endpoint returns the list of all the triggers that can be used to create a webhook
HTTP Request
GET /v1/webhooks/list_triggers
The request JSON response is:
[
{
"created_on": "0001-01-01T00:00:00Z",
"updated_on": "0001-01-01T00:00:00Z",
"id": 0,
"name": "",
"description": ""
}
]
Request schema
This request does not accept any parameters.
Response schema
This endpoint return an array of WebhookTrigger, please refer to the JSON response column on the right, or to the Models and Enumeration section for more details.
Models and Enumeration
CommunicationChannelID Enumeration
Value | Description |
---|---|
1 | |
2 | SMS |
3 | Webhook, used when a third party send the communication link |
InterventionElementStatus Enumeration
Value | Description |
---|---|
1 | The element is active |
2 | The element is on hold |
3 | The element is deleted |
InterventionElementType Enumeration
Value | Description |
---|---|
1 | Denote a task element |
2 | Denote a labor element |
3 | Denote a part element |
4 | Denote a text element |
5 | Denote a discount element |
6 | Denote a small part element |
7 | Denote a fee element, used to add fees to the intervention |
8 | Denote a rental element, used to include information about the rented vehicle |
9 | Denote a menu element |
MCCStatus Enumeration
Value | Description |
---|---|
0 | Brand not supported |
1 | No card |
2 | Invalid card |
3 | Invalid card bis |
4 | Expired card |
QuestionElementTemplate Enumeration
Value | Description |
---|---|
dropdown | Dropdown |
dropdown_multi | Multiple selection dropdown |
solution_element | Solution element |
textfield | Text field |
number | Number field |
textarea | Textarea |
spinner | Spinner |
datepicker | Date picker |
tyre | Tyre element |
panic | Panic element |
testdrive_mileage | Test drive mileage element |
QuestionResultStatus Enumeration
Value | Description |
---|---|
0 | OK |
1 | OK with remarks |
2 | Advised |
3 | Necessary |
4 | Not worked on |
RoleID Enumeration
Value | Description |
---|---|
10 | Top level user role (has all permissions) |
20 | Claire admin role |
25 | Support adminole role, similar to claire admin but without deleting rights |
30 | Manage dealers attached to it |
40 | Manage a single dealer |
50 | Uses the dashboard and does aanname checks |
60 | Does car checks |
70 | Allowed to use multiple locations for one dealer |
80 | Does quality controls |
90 | Perform leads, recall and warranty related tasks on allowed locations from one or more dealers |
100 | User by tablet on the counter of receptionists |
110 | Manufacturer are allowed to update certain data after their requests to access specific appointments are being granted |
Season Enumeration
Value | Description |
---|---|
-1 | No season |
0 | All season |
1 | Winter season |
2 | Summer season |
3 | Truck season |
SnoozeDepartmentID Enumeration
Value | Description |
---|---|
1 | Sales |
2 | Customer communication center |
3 | BodyRepair |
4 | External |
5 | Digital |
6 | Parts |
SnoozeStatusID Enumeration
Value | Description |
---|---|
0 | Deleted |
1 | New |
2 | In progress |
3 | Approved |
4 | Declined |
5 | Declined |
6 | Done |
SnoozeTypeID Enumeration
Value | Description |
---|---|
1 | Snoozed for the customer next visit |
2 | Snoozed to make an offer |
3 | Snoozed to make a new appointment |
4 | Snoozed to remind the customer |
StatusIdentifier Enumeration
Value | Description |
---|---|
-1 | The appointment has been cancelled |
1 | Initial status for a new appoitment |
2 | A car check is completed |
3 | Pricing calculation is done |
4 | Customer approved pricing |
5 | The car is ready |
6 | An car check is required, set by a receptionist |
7 | Initial check done by a receptionist |
8 | Receptionists are doing pricing calculations |
9 | The customer is being contacted to approve pricing |
10 | A car check has started |
11 | A quality check is completed |
12 | The customer answered through online communication |
13 | The appointment is delayed and is waiting on a back order |
50 | Not returned by the backend, shown if the receptionist need to handle the Online Check-in answer |
51 | Not returned by the backend, shown if the Online Check-in is answered and handled |
52 | Not returned by the backend, shown if the car is in the shop |
53 | Not returned by the backend, shown if repair overview was sent to customer for car ok status |
54 | Not returned by the backend, shown if repair overview was sent to customer for quality check status |
55 | Not returned by the backend, shown if the car is out of the shop |
StatusOverride Enumeration
Value | Description |
---|---|
0 | None |
1 | Canceled |
2 | Restored |
TyreLocation Enumeration
Value | Description |
---|---|
1 | On car |
2 | In storage |
3 | Removed, from car |
4 | Removed, from storage |
TyrePosition Enumeration
Value | Description |
---|---|
0 | No tyre |
1 | Car front left |
2 | Car front right |
3 | Car rear left |
4 | Car rear right |
5 | Storage front left |
6 | Storage front right |
7 | Storage rear left |
8 | Storage rear right |
9 | Car spare |
10 | Truck left |
11 | Truck right |
12 | Truck exterior left |
13 | Truck exterior right |
14 | Truck interior left |
15 | Truck interior right |
16 | Truck spare |
WebhookTriggerID Enumeration
Value | Description |
---|---|
1 | Check created |
2 | Offer ready |
3 | Customer OK |
4 | Car ready |
5 | Quality check |
6 | Online check-in is available |
7 | Online check-in is answered |
8 | Diagnose overview is available |
9 | Diagnose overview update is available |
10 | Diagnose overview is answered |
11 | Repair overview is available |
12 | Repair overview update is available |
13 | Car In Shop |
14 | Car Out of Shop |
15 | Online check-in was opened by the customer |
16 | Diagnose overview was opened by the customer |
17 | Repair overview was opened by the customer |
18 | Is Shop Updated |
19 | Appointments imported through the Public-API are queued in a sequence outside of the initiating request. This webhook event is set to receive a result for when the appointment has succeeded or failed with importing |
Appointment Model
Field | Type | Description |
---|---|---|
ID | AppointmentID | Appointment's ID |
DMSNr | string | Appointment ID in the DMS |
WONr | string | Appointment work order number |
RefNr | string | Appointment reference number in Claire |
ImporterVersion | string | Version of Claire importer used to import Appointment from DMS |
DMSStatus | string | Appointment status in DMS |
CarCheckStarted | bool | Car check has started |
CustomerWaiting | bool | The customer is waiting for the car |
IsLocal | bool | This appointment was created manually in Claire |
IsMoney | bool | A receptionist marked this appointment with the money marker |
IsStar | bool | A receptionist marked this appointment with the star marker |
IsStarColor | string | Color for the star icon |
IsShop | bool | A receptionist marked this appointment with the shop marker |
IsShopColor | string | Color for the shopping cart icon |
IsLeaseCompany | bool | The appointment’s car belongs to a lease company |
HasExtraCheck | bool | An extra check was performed |
FinalCheckHasRemarks | bool | Final check has remarks |
IsRecurring | bool | This car came in the last 28 days |
WarrantyPinCount | int | Number of pinned warranty items on the appointment |
WarrantyPinSignatureMissingCount | int | Number of pinned warranty items on the appointment that are missing a signature |
WarrantyPinClaimNrMissingCount | int | Number of pinned warranty items on the appointment that are missing a claim nr |
WarrantyPinSupportNrMissingCount | int | Number of pinned warranty items on the appointment that are missing a claim nr |
RecallPinCount | int | Number of pinned recall items on the appointment |
RecallPinClaimNrMissingCount | int | Number of pinned recall items on the appointment that are missing a claim nr |
RecallPinSupportNrMissingCount | int | Number of pinned recall items on the appointment that are missing a supportnr |
RemarkPinCount | int | Number of pinned remark items on the appointment |
NextDate | time.Time | Planned next appointment date |
PredictedNextDate | time.Time | Predicted next appointment date |
TimeCarApp | time.Time | Appointment date in Claire |
IsPinned | bool | Is the appointment pinned |
IsPinnedManually | bool | The appointment was pinned manually, preventing automatic overwriting |
StatusOverride | StatusOverride | The appointment's status was overridden manually, preventing automatic overwriting |
DueIn | time.Time | Car is scheduled to be in the shop on this date |
CarReturnTime | time.Time | Car is scheduled to be returned back to the customer on this date |
KeyDroppedAt | time.Time | Date and time the customer dropped the key in the keylocker |
KeyDroppedIn | string | Name of the keylocker in which key is dropped in |
KeyPickedUpAt | time.Time | Date and time the mechanic picked up the key in the keylocker |
KeyPickedUpByID | UserID | User ID of the mechanic who picked up the key |
KeyDroppedBackAt | time.Time | Date and time the mechanic dropped back the key in the keylocker |
KeyDroppedBackByID | UserID | User ID of the mechanic who dropped back the key |
KeyDroppedBackIn | string | Name of the keylocker in which key is dropped back in |
KeyPickedUpBackAt | time.Time | Date and time the customer picked back up the key in the keylocker |
KeyPickedUpBackByID | UserID | User ID of the receptionist who picked back up the key if they intervened |
CustomerDriverID | CustomerID | Customer (driver) ID in Claire |
CustomerOwnerID | CustomerID | Customer (owner) ID in Claire |
CustomerContractID | CustomerID | Customer (contractor) ID in Claire |
DealerLocationID | DealerLocationID | Unique DealerLocation ID of the location that the appointment occurred in |
CarID | CarID | Unique ID of the Car assigned to appointment |
VIN | string | Vehicle Identification Number |
CarModel | string | Car Model |
CarMake | string | Car Make |
RegNumber | string | License plate number |
CurrentKM | int | Current odometer status |
DMSKM | int | Odometer reading from the DMS |
NextKM | int | Planned next appointment in kilometers on the odometer |
CarAPKDate | time.Time | Dutch technical inspection DMS date |
CarHUDate | time.Time | German technical inspection DMS date |
DriverInitials | string | Driver initials |
DriverTitle | string | Driver Title (e.g. Dhr. Mvr.,) |
DriverFirstname | string | Driver's first name |
DriverSurname | string | Driver's last name |
ContractorInitials | string | Contractor's initials |
ContractorTitle | string | Contractor's Title (e.g. Dhr. Mvr.,) |
ContractorFirstname | string | Contractor's first name |
ContractorSurname | string | Contractor's last name |
OwnerInitials | string | Owner's initials |
OwnerTitle | string | Owner's Title (e.g. Dhr. Mvr.,) |
OwnerFirstname | string | Owner's first name |
OwnerSurname | string | Owner's last name |
Company | string | Contractor's company name |
AppointmentStatusIdentifier | StatusIdentifier | Current appointment's status identifier in Claire |
LastTimestamp | time.Time | Last time this appointment was updated |
LastUser | string | Name of the last user that interacted with the appointment |
LastUserProfilePicture | string | Profile picture of the last user that interacted with the appointment |
LastUserAt | time.Time | Time at which the last user interacted with the appointment |
NumApprovedItemsNotFixed | int | Number of items waiting to be fixed on the appointment |
CustomerDriver | Customer | Customer (Driver) in Claire |
CustomerOwner | Customer | Customer (Owner) in Claire |
CustomerContract | Customer | Customer (Contract) in Claire |
CheckInitiator | User | User that initiated check |
Car | Car | Car object, refer to that model for more details |
CarProfilePicture | string | Car profile picture URL |
FinalCheckImages | FinalCheckImage | Image added during the final check |
FinalCheckVideos | FinalCheckVideo | Video added during the final check |
StatusHistory | AppointmentStatusHistory | History of statuses |
Interventions | Intervention | List of initial interventions |
CustomcomReceptionistKey | string | |
AppointmentStatusName | string | Current appointment's status name |
ChecklistNames | string | List of the checklist's names performed |
DealerName | string | |
DealerCommercialName | string | |
LocationName | string | |
LocationPhone | string | |
DriverDMSNr | string | Driver ID in the DMS |
OwnerDMSNr | string | Owner ID in the DMS |
ContractDMSNr | string | Contractor ID in the DMS |
CarDMSNr | string | Car ID in the DMS |
DMSLocationSource | string | DMS Source for the location |
AppointmentStatusHistory Model
Field | Type | Description |
---|---|---|
ID | AppointmentStatusHistoryID | Claire Appointment Status History ID |
SARemarks | string | Remark when the status was set |
Timestamp | time.Time | Date and time when the status was set |
ChecklistID | ChecklistID | Claire's Checklist ID |
CheckID | CheckID | Claire's Check ID' |
Identifier | StatusIdentifier | Status identifier, refer to that enumeration for more details |
StatusName | string | Name of the status (deprecated, use Identifier) |
Car Model
Field | Type | Description |
---|---|---|
ID | CarID | Claire Car ID |
IsTruck | bool | True if its a truck |
Make | string | Car make |
Model | string | Car model |
Fuel | string | Fuel type |
RegNr | string | Registration plate |
VIN | string | Vehicle identification number |
DMSNr | string | Car ID in the DMS |
ProfilePicture | string | Car picture URL |
DMSRegistration | time.Time | DMS registration date |
RDWFirstRegistration | time.Time | First registration date |
RDWFirstRegistrationNL | time.Time | First NL registration date |
RDWTypeGoedkeuringsNummer | string | RDW type goedkeurings nummer |
RDWType | string | RDW type |
RDWVariant | string | RDW variant |
RDWUitvoering | string | RDW uitvoering |
APKDateDMS | time.Time | Dutch technical inspection DMS date |
HUDateDMS | time.Time | German technical inspection DMS date |
WarrantyDateStart | time.Time | Warranty start date |
WarrantyDateEnd | time.Time | Warranty end date |
ROBLeaseExpiration | time.Time | Expiration date of ROB Lease |
MCCStatus | MCCStatus | Car status in MCC, refer to that enumeration for more details. |
MCCStatusTime | time.Time | Last status fetch date from MCC |
TyreOnCar | CarTyres | CarTyres object for the tyres on the car, see that model for more details. |
TyreInStorage | CarTyres | CarTyres object for the tyres in storage, see that model for more details. |
TruckTyres | TruckTyres | TruckTyres object for the tyres of truck |
Notes | CarNote | Notes on the car created in claire |
CarNote Model
Field | Type | Description |
---|
CarTyres Model
Field | Type | Description |
---|---|---|
ID | CarTyresID | Claire CarTyres ID |
FRProfile | float64 | Front right tyre tread depth |
FLProfile | float64 | Front left tyre tread depth |
RRProfile | float64 | Rear right tyre tread depth |
RLProfile | float64 | Rear left tyre tread depth |
FRPicture | string | Front right tyre picture URL |
FLPicture | string | Front left tyre picture URL |
RRPicture | string | Rear right tyre picture URL |
RLPicture | string | Rear left tyre picture URL |
Location | TyreLocation | Where the tyres are location, refer to that enumeration for more details |
FrontLeftTyre | Tyre | Tyre object for the front left tyre, refer to that model for more details |
FrontRightTyre | Tyre | Tyre object for the front right tyre, refer to that model for more details |
RearLeftTyre | Tyre | Tyre object for the rear left tyre, refer to that model for more details |
RearRightTyre | Tyre | Tyre object for the rear right tyre, refer to that model for more details |
Check Model
Field | Type | Description |
---|---|---|
ID | CheckID | Claire Check ID |
Duration | int | Check duration in seconds |
AppointmentID | AppointmentID | Claire appointment ID |
CarID | CarID | |
InterventionID | InterventionID | If provided, link the intervention for which this car check was done |
Mechanic | User | User object of the mechanic who performed the check, refer to that model for more detail |
Checklist | Checklist | Checklist object for this check, refer to that model for more details |
Receptionist | User | User object of the receptionist assigned to this check, refer to that model for more detail |
QuestionResults | QuestionResult | Array of QuestionResult object, containing the result of this check, refer to that model for more detail |
Checklist Model
Field | Type | Description |
---|---|---|
ID | ChecklistID | Claire Checklist ID |
Name | string | Name of the checklist |
TagNames | string | List of tag names associated with this checklist |
Customer Model
Field | Type | Description |
---|---|---|
ID | CustomerID | Customer's ID |
MetaDMSNr | string | Some DMS can have multiple contacts for a single customer. This field, alongside dms_nr, help to identify which contact should be referenced |
DMSNr | string | Identifier in DMS |
Company | string | Company name |
IsLeaseCompany | bool | Is the company a lease company |
IsInternal | bool | Is this customer for Internal usage |
IsInternalEdited | bool | IsInternal was edited through Claire |
Passant | bool | Is the customer a walk-in without appointment |
Title | string | Salutation title of the customer |
Initials | string | Initials of the customer |
FirstName | string | First Name of the customer |
Surname | string | Surname of the customer |
Street | string | Street address of the customer |
HouseNr | string | House Number of the customer |
Postcode | string | Postcode of the customer |
Place | string | Place of the customer |
Country | string | Country of the customer |
BlockCommunication | bool | Customer has opted for no communication |
PreferredCommunicationChannel | CommunicationChannelID | Preferred communication channel opted by the customer |
EmailPrivate | string | Private Email |
EmailBusiness | string | Business Email |
TelBusinessNr | string | Business Landline Number |
TelPrivateNr | string | Private Landline Number |
TelMobilePrivate | string | Private Mobile Number |
TelMobileBusiness | string | Business Mobile Number |
Birthday | time.Time | Birthday of the customer |
DealerLocationID | DealerLocationID | Location Identifier of the customer |
DealerID | DealerID | Dealer ID of the customer |
DealerLocation Model
Field | Type | Description |
---|---|---|
ID | DealerLocationID | Claire dealer location ID |
DMSLocationSource | string | DMS Datasource for the location |
Name | string | Name |
CommercialName | string | Commercial name of the Claire Dealer Location |
Headline | string | Headline |
Footerline | string | Footerline |
Logo | string | Logo URL |
CompanyStamp | string | Official stamp of approval given by the location |
Street | string | Street |
PostalCode | string | Postal code |
City | string | City |
Country | string | Country |
PhoneNr | string | Phone number |
FinalCheckImage Model
Field | Type | Description |
---|---|---|
ID | FinalCheckImageID | |
URL | string | URL of the image |
Active | bool | The image is active |
VisibleInPDF | bool | The image is displayed in the PDF |
InterventionIndex | int | Index of the image for the intervention |
FinalCheckVideo Model
Field | Type | Description |
---|---|---|
ID | FinalCheckVideoID | |
URL | string | URL of the Video |
Active | bool | The video is active |
InterventionIndex | int | Index of the video for the intervention |
Intervention Model
Field | Type | Description |
---|---|---|
ID | InterventionID | |
DMSNr | string | Intervention ID in the DMS |
Title | string | Intervention title |
Description | string | Intervention description |
Price | float64 | Relative cost of intervention that should be covered by the Customer |
MechanicNotes | string | Mechanic's notes |
Pinned | bool | Whether the intervention is pinned in Claire |
Snoozed | bool | Whether the intervention is snoozed in Claire |
IsDeclinedByCustomer | bool | Whether the customer declined the intervention in Claire |
IsSignedByCustomer | bool | The customer has explicitly seen and signed for this intervention. Whether it's agreed or declined to be fixed, is not handled by this field |
Status | int | Intervention status |
SolutionValue | string | |
SolutionUnit | string | |
SolutionType | string | |
MechanicFixed | bool | Was the intervention fixed by a Mechanic |
CustomerOK | bool | Customer has agreed to the intervention |
IsLocal | bool | Intervention was created manually in Claire |
VisibleToCustomer | bool | Intervention is visible to the Customer |
SnoozeHistory | Snooze | |
Elements | InterventionElement | Elements of the Intervention |
Attachments | InterventionAttachment | Attachments of the Intervention |
InterventionAttachment Model
Field | Type | Description |
---|---|---|
ID | InterventionAttachmentID | |
URL | string | URL of the attachment |
Type | string | Type of the attachment |
Name | string | Name of the attachment |
InterventionID | InterventionID | ID of the intervention |
UserID | UserID | User ID of the user who added this attachment |
InterventionElement Model
Field | Type | Description |
---|---|---|
ID | InterventionElementID | Claire InterventionElement Identifier |
DMSNr | string | DMS Identifier |
Description | string | Description of the Element |
Price | float64 | Price of the Element |
Quantity | float64 | Quantity of the Element |
PrivateNote | string | Private note of the Element, not to be shown to customers |
IsLocal | bool | The element was created in Claire |
ElementType | InterventionElementType | Type of the Element |
Status | InterventionElementStatus | Status of the Element |
ParentDMSNr | string | DMS Identifier of the parent of the Element |
InterventionID | InterventionID | Identifier of the intervention that this element compose |
PublicAccount Model
Field | Type | Description |
---|
Question Model
Field | Type | Description |
---|---|---|
ID | QuestionID | Claire Question ID |
Title | string | Title of the question |
RoleID | RoleID | NULL if it is a default question available to all, otherwise the role ID of the user who created this question (meaning it is only visible to that Dealer's locations) |
QuestionElements | QuestionElement | List of question element in this question |
QuestionElement Model
Field | Type | Description |
---|---|---|
ID | QuestionElementID | Claire Question Element ID |
Name | string | Name of the question element |
Template | QuestionElementTemplate | Template of the question element, define what type of answer will be provided, refer to that enumeration for more details |
DefaultConfiguration | string | Default configuration, depending on the template can contain prefilled values or labels |
RoleID | RoleID | NULL if it is a default question element available to all, otherwise the role ID of the user who created this question element (meaning it is only visible to that Dealer's locations) |
QuestionResult Model
Field | Type | Description |
---|---|---|
ID | QuestionResultID | Claire Question Result ID |
Status | QuestionResultStatus | Item's status, refer to that enumeration for more details |
Title | string | Question's title |
Completed | bool | Question's completion |
MechanicNotes | string | Mechanic note |
MechanicFixed | bool | The mechanic fixed this item |
CustomerApproved | bool | The customer approved to fix this item |
IsSignedByCustomer | bool | The customer has explicitly seen and signed for this intervention. Whether it's agreed or declined to be fixed, is not handled by this field |
Price | float64 | Cost for this item |
TyrePosition | TyrePosition | 0 if TyreID is null |
TyreProfile | float64 | 0 if TyreID is null |
TruckAxle | int | Non-zero value for Truck Question Result Element |
Solution | string | Answer if the question template is of type solution |
SolutionValue | string | Value selected if the question template if of type solution |
SolutionType | string | Type selected if the question template if of type solution |
SolutionUnit | string | Unit selected if the question template if of type solution |
Snoozed | bool | Wheter the item is snoozed |
Pinned | bool | Wheter the item is pinned |
TyreID | TyreID | null if not a tyre question |
TimeCarApp | time.Time | Appointment date in Claire |
Tyre | Tyre | joined if TyreID is not null |
TyreReplacements | TyreReplacement | joined if any |
QuestionTags | Tag | Array of Tag objects associated to this question, refer to that model for more details |
ImageURLs | string | Array of image URL taken for this item |
VideoURLs | string | Array of video URL taken for this item |
AnswerItemNames | string | List of raw question's element's answers |
SnoozeHistory | Snooze | Each row represent a log line, showing what changed over time |
Snooze Model
Field | Type | Description |
---|---|---|
ID | SnoozeID | Snooze ID in Claire, each snooze ID represent a snooze log line |
QuestionResultID | QuestionResultID | ID of the question result snoozes, null if an intervention is snoozed |
InterventionID | InterventionID | Intervention ID of the intervention snoozed, null if a question result is snoozed |
SnoozeTypeID | SnoozeTypeID | Type of snooze, see enumeration |
SnoozeStatusID | SnoozeStatusID | Status of the snooze, see enumeration |
SnoozeDate | time.Time | Date selected when snoozed |
SnoozeDepartmentID | SnoozeDepartmentID | Department assigned, see enumeration |
Note | string | Note entered when snoozed |
UserID | UserID | ID of the user adding the snooze log line |
AppointmentID | AppointmentID | Appointment ID for this snooze |
DealerLocationID | DealerLocationID | Dealer Location ID for this snooze |
CarID | CarID | Car ID for this snooze |
Tag Model
Field | Type | Description |
---|---|---|
ID | TagID | Claire Tag ID |
Name | string | Name of the tag |
Color | string | Color of the tag |
System | bool | Wheter it is a system tag |
TruckTyres Model
Field | Type | Description |
---|---|---|
CarID | CarID | |
Axle | int | |
Position | TyrePosition | |
TyreID | TyreID | |
Profile | float64 | |
Picture | string | |
Tyre | Tyre |
Tyre Model
Field | Type | Description |
---|---|---|
ID | TyreID | Claire Tyre ID |
Manufacturer | string | Tyre manufacturer |
Description | string | Tyre description |
Width | int | Tyre width |
Height | int | Tyre height |
Size | float32 | Tyre size |
Speed | string | Tyre speed factor |
EAN | string | Tyre unique ID (EAN) |
Season | Season | Tyre season, refer to that enumeration for more details |
Deleted | bool | Whether the tyre is deleted |
CreatedByID | UserID | For manually created tyres, User ID of the creator, nil otherwise |
CreatedBy | User | created by user |
TyreReplacement Model
Field | Type | Description |
---|---|---|
ID | TyreReplacementID | Claire Tyre Replacement ID |
QuestionResultID | QuestionResultID | Claire Question Result ID |
TyreID | TyreID | Claire Tyre ID |
Price | float64 | Price of this replacement tyre |
CustomerAnswer | bool | Whether the mechanic can mount this replacement on the car or not |
Remark | string | Remarks from the receptionist or mechanic |
MechanicFixed | bool | Whether the mechanic has mounted this replacement on the car or not |
Selected | bool | Whether this replacement was selected by the customer to be mounted on the car or not |
Profile | float64 | Tyre tread profile entered by the mechanic after it was mounted on the car |
Tyre | Tyre | Tyre details for this replacement |
User Model
Field | Type | Description |
---|---|---|
ID | UserID | Claire User ID |
DMSNr | string | DMS Number of the Claire User |
FirstName | string | First name |
LastName | string | Last name |
string | Email in Claire | |
Username | string | Username in Claire |
Mobile | string | Mobile phone numer |
Phone | string | Phone numer |
Birthday | time.Time | Birthdate |
LastActive | time.Time | Last activity date in Claire |
Address1 | string | Address line 1 |
Address2 | string | Address line 2 |
ProfilePicture | string | Profile picture URL |
DealerLocationID | DealerLocationID | Default Location ID when loggin in |
Active | bool | Whether user's account is active |
Deleted | bool | Wheter user's account is deleted |
Archived | bool | Wheter user's account is archived |
Webhook Model
Field | Type | Description |
---|---|---|
ID | WebhookID | |
Name | string | Name of the webhook |
WebhookTriggerID | WebhookTriggerID | TriggerID for the webhook, see the list of triggers in the enumeration section |
DealerID | DealerID | Dealer Identifier that created this Webhook |
DealerLocationID | DealerLocationID | Location identifier |
PublicAccountID | PublicAccountID | Public Account that created this Webhook |
UserID | UserID | User that created this Webhook |
URL | string | URL to be called by the webhook |
Queued | bool | This Webhook should be sent synchronously in a queue to the URL |
ChecklistID | ChecklistID | Checklist Identifier used to trigger a Check Created event, when not provided any Check will trigger it |
Active | bool | Whether webhook is active |
Headers | WebhookHeader | webhook headers |
PublicAccount | PublicAccount | |
User | User | |
HasRecentError | bool |
WebhookError Model
Field | Type | Description |
---|---|---|
ID | WebhookErrorID | |
WebhookID | WebhookID | Webhook Identifier |
Reason | string | Reason for the error in webhook |
WebhookHeader Model
Field | Type | Description |
---|---|---|
ID | WebhookHeaderID | |
Name | string | |
Value | string | |
WebhookID | WebhookID | |
Webhook | Webhook |
WebhookTrigger Model
Field | Type | Description |
---|---|---|
ID | WebhookTriggerID | |
Name | string | |
Description | string |
Changelog
This section contains changes related to the Claire API. Changes will be included if:
- A new endpoint is added
- A new field is added to an existing endpoint
- Field description changes
- A field is deprecated
Initial release - 01.02.2019.
The following endpoints are included with initial release:
/appointments/{id}
/appointments/?customer_kind={kind}&dms_nr={dms_nr}&location_id={location_id}
/checks?appointment_id={appID}
/locations
Model updates - 05.06.2019.
Various models were updated. Most notable change is that id changed from string to integer.
Multiple updates - 02.12.2019.
Following changes have been made:
1 On the /checks
endpoint, inside question_items
object, field answer
instead of single answer, answer now contains multiple answers. The field is now of type array and renamed to answers
.
2 Second change on the /checks
endpoint is the snooze_info
object, inside question_items
object. Instead of a single object with fields title, note, type
, these are all now separate fields, as following: snooze_title, snooze_note, snooze_type
.
3 Following fields are depracated: Appointment object: car_fleet_number
User object: last_login
Car object: fleet_number
, fleet_identifier
Intervention object: section
Webhooks - 01.03.2021.
Webhooks allows you to setup triggers in Claire which can be used to notify you when a change is made on appointment. This feature is useful if you want to fetch new appointment data from PublicAPI as soon as it's updated.
To setup the webhooks follow this process:
1 Login to Claire 2 Click on "Webhooks" menu 3 Click on a "plus" button in bottom-right corner 4 Fill the form accordingly
Currently we support these triggers:
- Check created: Triggered when a check is created
- Offer ready: Triggered when an offer is ready
- Customer OK: Triggered when a customer is OK with the offer
- Car ready: Triggered when a car is ready
- Quality check: Triggered when a quality check is created
Automated Documentation - 01.04.2021
This documentation is now auto generated, a lot more details are available in each endpoint description and in the new Model and Enumeration section.
Two new endpoints /tags
and questions
have been added to retrieve the list of possible values related to question result's tags and questions.
Tyres information have been added at the Car and QuestionResult levels.
Import Appointment - 14.08.2023
New endpoint /appointments/import
has been added to create and update appointments in claire.
Refer to the relevant documentation for more details on how to use this.
List Appointments - 23-07-2024
New endpoint /appointments/list
has been added to query for appointments using a filtering engine.
The endpoint /appointments
is now deprecated and is being planned for removal. It will no longer be supported.
Customer communication
If a communication was sent to the customer (Online check-in, Diagnose overview, Repair overview) the Appointment contain a key in the customcom_key
field.
This key is valid to open the communication in read only mode, as the receptionist do.
To open a communication from a key, use the following URL: https://mycarcheck.pro/#!/{customcom_key}
by replacing the key value.
Errors
The Claire Automotive Support API uses the following error codes:
Error Code | Meaning |
---|---|
400 | Bad Request : Your request is invalid. |
401 | Unauthorized : Your API key is wrong. |
404 | Not Found : The specified endpoint could not be found. |
405 | Method Not Allowed : You tried to access server with an invalid method. |
429 | Too Many Requests : You're making too many requests. |
500 | Internal Server Error : We had a problem with our server. Try again later. |
503 | Service Unavailable : We're temporarily offline for maintenance. Please try again later. |
Rate Limiting
All Claire APIs have rate limiting implemented. A single API key can make up to 10.800 requests per hour. After reaching the rate limit, HTTP Status 429 - Too Many Requests, will be returned.
Response headers contain rate-limiting details:
X-RateLimit-Limit: Number of requests you can make in an hour
X-RateLimit-Remaining: Number of requests left for the time window
X-RateLimit-Reset: The remaining window before the rate limit resets in UTC epoch seconds
Currently there is no rate limiting per dealer, but it may be introduced in future updates.