Download OpenAPI specification:Download
Lineberty is a Booking System that increases user's satisfaction by reducing the time spent to wait for their turn.
Users simply have to book a ticket, either on their phone using your application, or on a terminal you’re providing at your place, then to select the time when they want to enjoy visiting your place or use your service. They receive a notification shortly before their appointment, informing them that it is soon their turn.
There is no longer any need to wait in a line! Users now have time to visit around or make more purchases thanks to the Lineberty Virtual Queueing Solution.
Create your own Validation (web)application to manage your queues, endpoints and tickets with the Lineberty Validation API.
The validation API helps your salespeople, cashiers, hosts/hostesses, etc. manage the queues and adapt it to the circumstances.
Depending on their level of empowerment, these operators can perform actions on tickets such as calling or recalling a ticket at the endpoint, search for a ticket, get a list of tickets for a given timeslot, change the state of a ticket, and much more. They can also supervise the state of the queue through counters and indicators, or manage the endpoint opening hours.
Your validation application will have to communicate with the Lineberty server to get the data needed to validate a ticket. This communication requires an API Key.
We will provide you with a private key included in a JSON file. This JSON file must be stored safe on your application server.
This private key also contains an email address associated to your account to access the Lineberty Validation API, and afterwards get the API Key.
See The Lineberty Validation API User Guide for further information.
This is the first step before accessing the resources of the API. Use this route to get a valid API Key to access the Lineberty Validation API resources with your private key. We recommend to use API Key caching to optimize the number of requests per day and resend the request once a day.
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/api_key
{- "apiKey": "QJ15bv43hKXTpVClbyMnofYOXHZdyb2Lxwv8yEpzrV1laO"
}Use theses routes to manage the operator's session (connect and disconnect, get the roles, refresh the operator's token, disconnect a user).
Use this route to connect an operator either with the combination User ID/Password or by SSO.
| endpointId required | string The ID of the endpoint. |
The parameters to login a user.
| endpointId required | string The ID of the endpoint |
| loginId | string The user's ID. |
| password | string The password associated to the User's ID. |
| ssoToken | string The token of the SSO session |
{- "endpointId": "endpointId1",
- "loginId": "email@email.com",
- "password": "aKpf9!d32cj,"
}{- "jwtToken": "QJ15bv43hKXTpVClbyMnofYOXHZdyb2Lxwv8yEpzrV1laO"
}Use this route to pre connect an operator either with the combination User ID/Password or by SSO but without associate the user to an endpoint (must absolutely be make later).
The parameters to login a user.
| loginId | string The user's ID. |
| password | string The password associated to the User's ID. |
| ssoToken | string The ID of the SSO session |
{- "loginId": "email@email.com",
- "password": "aKpf9!d32cj,"
}{- "jwtToken": "QJ15bv43hKXTpVClbyMnofYOXHZdyb2Lxwv8yEpzrV1laO"
}Use this route to get the information of the current operator.
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/operator/account
{- "personal": {
- "civility": "M",
- "firstName": "Dupont",
- "lastName": "Dupas",
- "surname": "",
}, - "contact": {
- "email": "contact@lineberty.com",
- "phone": "+33600000000",
}
}Use this route to get the roles of the current operator.
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/operator/roles
{- "companyId1": {
- "placeId1": {
- "queueId1": {
- "authorizedSetState": {
- "0": [
- 200
], - "50": [
- 200
], - "100": [
- 200
], - "200": [
- 300,
- 500
], - "300": [ ],
- "400": [ ],
- "500": [
- 700
], - "600": [ ],
- "700": [ ]
}, - "extendedAttributes": {
- "phoneNumber": {
- "create": false,
- "read": true,
- "update": true,
- "delete": false
}, - "civility": {
- "create": false,
- "read": true,
- "update": true,
- "delete": false
}, - "name": {
- "create": false,
- "read": true,
- "update": true,
- "delete": false
}
}, - "recallAllowed": true,
- "showIndicators": true,
- "hiddenModeAllowed": false,
- "bookingClosedForTodayAllowed": false,
- "pauseAllowed": false
}
}
}
}Use this routes to refresh the session token of an operator.
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/operator/session/refreshToken
{- "jwtToken": "QJ15bv43hKXTpVClbyMnofYOXHZdyb2Lxwv8yEpzrV1laO"
}If you have make a pre login you absolutely must assign an endpoint to your session else all the authentified method will not work.
The endpoint ID.
| endpointId required | string The ID of the endpoint |
{- "endpointId": "endpointId1"
}{- "jwtToken": "QJ15bv43hKXTpVClbyMnofYOXHZdyb2Lxwv8yEpzrV1laO"
}Use this route to disconnect an operator either with the combination ID/Password or by SSO.
curl -X DELETE \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/operator/session
{- "error": "OPERATOR_NOT_FOUND",
- "error_description": "string",
- "error_uri": "string"
}Use these routes to get the list of the companies, and for each company the places relating to it.
Use this route to get the list of all the companies that are associated with the API key.
| langs | Array of strings Items Enum: "fr_FR" "en_US" "es_ES" "de_DE" "zh_CN" "zh_TW" "ja_JP" "ko_KR" "th_TH" An array of locales, used to get the translated names of the data. |
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/companies
{- "companyId1": {
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "language": "en_US"
}
}Use this route to get all the places of the company.
| companyId required | string The ID of the company. |
| langs | Array of strings Items Enum: "fr_FR" "en_US" "es_ES" "de_DE" "zh_CN" "zh_TW" "ja_JP" "ko_KR" "th_TH" An array of locales, used to get the translated names of the data. |
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/companies/{companyId}/places
{- "placeId1": {
- "placeId": "placeId1",
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "address": "5 Avenue Anatole France",
- "city": "Paris",
- "country": "France",
- "zip": "75007",
- "language": "fr_FR",
- "timezone": "Europe/Paris",
- "position": {
- "lat": 48.858471,
- "lng": 2.294434
}
}, - "placeId2": {
- "placeId": "placeId2",
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "address": "5 Avenue Anatole France",
- "city": "Paris",
- "country": "France",
- "zip": "75007",
- "language": "fr_FR",
- "timezone": "Europe/Paris",
- "position": {
- "lat": 48.858471,
- "lng": 2.294434
}
}
}Use these routes to get the list of the places, and for each place the queues, endpoints and time slots relating to it.
Use this route to get all the places associated with the API key.
| langs | Array of strings Items Enum: "fr_FR" "en_US" "es_ES" "de_DE" "zh_CN" "zh_TW" "ja_JP" "ko_KR" "th_TH" An array of locales, used to get the translated names of the data. |
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/places
{- "placeId1": {
- "placeId": "placeId1",
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "address": "5 Avenue Anatole France",
- "city": "Paris",
- "country": "France",
- "zip": "75007",
- "language": "fr_FR",
- "timezone": "Europe/Paris",
- "position": {
- "lat": 48.858471,
- "lng": 2.294434
}
}, - "placeId2": {
- "placeId": "placeId2",
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "address": "5 Avenue Anatole France",
- "city": "Paris",
- "country": "France",
- "zip": "75007",
- "language": "fr_FR",
- "timezone": "Europe/Paris",
- "position": {
- "lat": 48.858471,
- "lng": 2.294434
}
}
}Use this route to get a place in particular, using its place ID.
| placeId required | string The ID of the place. |
| langs | Array of strings Items Enum: "fr_FR" "en_US" "es_ES" "de_DE" "zh_CN" "zh_TW" "ja_JP" "ko_KR" "th_TH" An array of locales, used to get the translated names of the data. |
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/places/{placeId}
{- "placeId": "placeId1",
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "address": "5 Avenue Anatole France",
- "city": "Paris",
- "country": "France",
- "zip": "75007",
- "language": "fr_FR",
- "timezone": "Europe/Paris",
- "position": {
- "lat": 48.858471,
- "lng": 2.294434
}
}Use this route to get the queue(s) of the place.
| placeId required | string The ID of the place. |
| langs | Array of strings Items Enum: "fr_FR" "en_US" "es_ES" "de_DE" "zh_CN" "zh_TW" "ja_JP" "ko_KR" "th_TH" An array of locales, used to get the translated names of the data. |
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/places/{placeId}/queues
{- "queueId1": {
- "queueId": "queueId1",
- "placeId": "placeId1",
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "language": "en_US",
- "timezone": "Europe/Paris",
- "state": {
- "pause": false,
- "bookingClosedForToday": false
}, - "position": {
- "lat": 48.858471,
- "lng": 2.294434
}, - "appointmentTypes": {
- "appointmentTypeId1": {
- "appointmentTypeId": "appointmentTypeId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}
}, - "appointmentTypeId2": {
- "appointmentTypeId": "appointmentTypeId2",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}
}
}, - "config": {
- "showIndicators": true,
- "hiddenModeAllowed": false,
- "pause": {
- "editAllowed": true
}, - "bookingClosedForToday": {
- "editAllowed": true
}, - "recall": {
- "allowed": true,
- "firstDelay": 10000,
- "delayBetweenRecall": 10000,
- "maximumRecall": 2
}, - "authorizedSetState": {
- "100": [
- 200
], - "200": [
- 300,
- 500
], - "500": [
- 700
]
}, - "extendedAttributes": {
- "phoneNumber": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^(\\\\+|00)([0-9]{1,2}\\\\-)?([0-9]{1,4})([0-9] ?){3,12}$"
}
}, - "civility": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^f|m$"
}
}, - "name": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^((?![\\\\.,\\\\|:\\\\!=%\\\\$€£\\\\(\\\\[\\\\]\\\\\\\"\\\\&@#\\\\\\\\\\\\`\\\\+\\\\-_\\\\?;§\\\\)]).){3,30}$"
}
}
}
}
}, - "queueId2": {
- "queueId": "queueId2",
- "placeId": "placeId1",
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "language": "en_US",
- "timezone": "Europe/Paris",
- "state": {
- "pause": false,
- "bookingClosedForToday": false
}, - "position": {
- "lat": 48.858471,
- "lng": 2.294434
}, - "appointmentTypes": {
- "appointmentTypeId3": {
- "appointmentTypeId": "appointmentTypeId3",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}
}, - "appointmentTypeId4": {
- "appointmentTypeId": "appointmentTypeId4",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}
}
}, - "config": {
- "showIndicators": true,
- "hiddenModeAllowed": false,
- "pause": {
- "editAllowed": true
}, - "bookingClosedForToday": {
- "editAllowed": true
}, - "recall": {
- "allowed": true,
- "firstDelay": 10000,
- "delayBetweenRecall": 10000,
- "maximumRecall": 2
}, - "authorizedSetState": {
- "100": [
- 200
], - "200": [
- 300,
- 500
], - "500": [
- 700
]
}, - "extendedAttributes": {
- "phoneNumber": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^(\\\\+|00)([0-9]{1,2}\\\\-)?([0-9]{1,4})([0-9] ?){3,12}$"
}
}, - "civility": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^f|m$"
}
}, - "name": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^((?![\\\\.,\\\\|:\\\\!=%\\\\$€£\\\\(\\\\[\\\\]\\\\\\\"\\\\&@#\\\\\\\\\\\\`\\\\+\\\\-_\\\\?;§\\\\)]).){3,30}$"
}
}
}
}
}
}Use this route to get the counter(s) of the place, or an empty array if there are no counters.
| placeId required | string The ID of the place. |
| langs | Array of strings Items Enum: "fr_FR" "en_US" "es_ES" "de_DE" "zh_CN" "zh_TW" "ja_JP" "ko_KR" "th_TH" An array of locales, used to get the translated names of the data. |
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/places/{placeId}/counters
{- "counterId1": {
- "counterId": "counterId1",
- "placeId": "placeId1",
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "language": "en_US",
- "timezone": "Europe/Paris",
- "infos": {
- "value": 2,
- "nextRestart": "2018-09-01T12:00:00:00,0000+0200"
}
}, - "counterId2": {
- "counterId": "counterId2",
- "placeId": "placeId1",
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "language": "en_US",
- "timezone": "Europe/Paris",
- "infos": {
- "value": 3,
- "nextRestart": "2018-09-01T12:00:00:00,0000+0200"
}
}
}Use this route to get the endpoint(s) of the place.
| placeId required | string The ID of the place. |
| langs | Array of strings Items Enum: "fr_FR" "en_US" "es_ES" "de_DE" "zh_CN" "zh_TW" "ja_JP" "ko_KR" "th_TH" An array of locales, used to get the translated names of the data. |
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/places/{placeId}/endpoints
{- "endpointId1": {
- "endpointId": "endpointId1",
- "queueId": "queueId1",
- "placeId": "placeId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "state": 0,
- "config": {
- "timeslotsSameAsPlace": false,
- "editTimeslotsAllowed": false,
- "deleteTimeslotsAllowed": false
}
}, - "endpointId2": {
- "endpointId": "endpointId2",
- "queueId": "queueId1",
- "placeId": "placeId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "state": 2,
- "config": {
- "timeslotsSameAsPlace": false,
- "editTimeslotsAllowed": false,
- "deleteTimeslotsAllowed": false
}
}, - "endpointId3": {
- "endpointId": "endpointId3",
- "queueId": "queueId1",
- "placeId": "placeId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "state": 2,
- "config": {
- "timeslotsSameAsPlace": false,
- "editTimeslotsAllowed": false,
- "deleteTimeslotsAllowed": false
}
}
}Use this route to get the time slot(s) of the place. By default, the time slots are those of the current day.
| placeId required | string The ID of the place. |
| startAt | string The start date of the time slot to select data. |
| endAt | string The end date of the time slot to select data. |
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/places/{placeId}/timeslots
[- {
- "startAt": "2018-09-01T12:00:00:00,0000+0200",
- "endAt": "2018-09-01T12:00:05:00,0000+0200"
}, - {
- "startAt": "2018-09-01T12:00:10:00,0000+0200",
- "endAt": "2018-09-01T12:00:15:00,0000+0200"
}
]Use these routes to get the list of the queues, the configuration of a queue in particular, the list of the endpoints relating to the queue, or even indicators on the queue. They also allow you pause or resume a queue, and to perform actions on the tickets.
Use this route to get all the queues that are associated with the API key.
| langs | Array of strings Items Enum: "fr_FR" "en_US" "es_ES" "de_DE" "zh_CN" "zh_TW" "ja_JP" "ko_KR" "th_TH" An array of locales, used to get the translated names of the data. |
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/queues
{- "queueId1": {
- "queueId": "queueId1",
- "placeId": "placeId1",
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "language": "en_US",
- "timezone": "Europe/Paris",
- "state": {
- "pause": false,
- "bookingClosedForToday": false
}, - "position": {
- "lat": 48.858471,
- "lng": 2.294434
}, - "appointmentTypes": {
- "appointmentTypeId1": {
- "appointmentTypeId": "appointmentTypeId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}
}, - "appointmentTypeId2": {
- "appointmentTypeId": "appointmentTypeId2",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}
}
}, - "config": {
- "showIndicators": true,
- "hiddenModeAllowed": false,
- "pause": {
- "editAllowed": true
}, - "bookingClosedForToday": {
- "editAllowed": true
}, - "recall": {
- "allowed": true,
- "firstDelay": 10000,
- "delayBetweenRecall": 10000,
- "maximumRecall": 2
}, - "authorizedSetState": {
- "100": [
- 200
], - "200": [
- 300,
- 500
], - "500": [
- 700
]
}, - "extendedAttributes": {
- "phoneNumber": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^(\\\\+|00)([0-9]{1,2}\\\\-)?([0-9]{1,4})([0-9] ?){3,12}$"
}
}, - "civility": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^f|m$"
}
}, - "name": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^((?![\\\\.,\\\\|:\\\\!=%\\\\$€£\\\\(\\\\[\\\\]\\\\\\\"\\\\&@#\\\\\\\\\\\\`\\\\+\\\\-_\\\\?;§\\\\)]).){3,30}$"
}
}
}
}
}, - "queueId2": {
- "queueId": "queueId2",
- "placeId": "placeId1",
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "language": "en_US",
- "timezone": "Europe/Paris",
- "state": {
- "pause": false,
- "bookingClosedForToday": false
}, - "position": {
- "lat": 48.858471,
- "lng": 2.294434
}, - "appointmentTypes": {
- "appointmentTypeId3": {
- "appointmentTypeId": "appointmentTypeId3",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}
}, - "appointmentTypeId4": {
- "appointmentTypeId": "appointmentTypeId4",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}
}
}, - "config": {
- "showIndicators": true,
- "hiddenModeAllowed": false,
- "pause": {
- "editAllowed": true
}, - "bookingClosedForToday": {
- "editAllowed": true
}, - "recall": {
- "allowed": true,
- "firstDelay": 10000,
- "delayBetweenRecall": 10000,
- "maximumRecall": 2
}, - "authorizedSetState": {
- "100": [
- 200
], - "200": [
- 300,
- 500
], - "500": [
- 700
]
}, - "extendedAttributes": {
- "phoneNumber": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^(\\\\+|00)([0-9]{1,2}\\\\-)?([0-9]{1,4})([0-9] ?){3,12}$"
}
}, - "civility": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^f|m$"
}
}, - "name": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^((?![\\\\.,\\\\|:\\\\!=%\\\\$€£\\\\(\\\\[\\\\]\\\\\\\"\\\\&@#\\\\\\\\\\\\`\\\\+\\\\-_\\\\?;§\\\\)]).){3,30}$"
}
}
}
}
}
}Use this route to get a queue in particular, using its queue ID.
| queueId required | string The ID of the queue. |
| langs | Array of strings Items Enum: "fr_FR" "en_US" "es_ES" "de_DE" "zh_CN" "zh_TW" "ja_JP" "ko_KR" "th_TH" An array of locales, used to get the translated names of the data. |
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/queues/{queueId}
{- "queueId": "queueId1",
- "placeId": "placeId1",
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "language": "en_US",
- "timezone": "Europe/Paris",
- "state": {
- "pause": false,
- "bookingClosedForToday": false
}, - "position": {
- "lat": 48.858471,
- "lng": 2.294434
}, - "appointmentTypes": {
- "appointmentTypeId1": {
- "appointmentTypeId": "appointmentTypeId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}
}, - "appointmentTypeId2": {
- "appointmentTypeId": "appointmentTypeId2",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}
}
}, - "config": {
- "showIndicators": true,
- "hiddenModeAllowed": false,
- "pause": {
- "editAllowed": true
}, - "bookingClosedForToday": {
- "editAllowed": true
}, - "recall": {
- "allowed": true,
- "firstDelay": 10000,
- "delayBetweenRecall": 10000,
- "maximumRecall": 2
}, - "authorizedSetState": {
- "100": [
- 200
], - "200": [
- 300,
- 500
], - "500": [
- 700
]
}, - "extendedAttributes": {
- "phoneNumber": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^(\\\\+|00)([0-9]{1,2}\\\\-)?([0-9]{1,4})([0-9] ?){3,12}$"
}
}, - "civility": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^f|m$"
}
}, - "name": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^((?![\\\\.,\\\\|:\\\\!=%\\\\$€£\\\\(\\\\[\\\\]\\\\\\\"\\\\&@#\\\\\\\\\\\\`\\\\+\\\\-_\\\\?;§\\\\)]).){3,30}$"
}
}
}
}
}Use this route to get the configuration of a queue in particular, using its queue ID. You will get display rules or operating rules.
| queueId required | string The ID of the queue. |
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/queues/{queueId}/config
{- "showIndicators": true,
- "hiddenModeAllowed": false,
- "pause": {
- "editAllowed": true
}, - "bookingClosedForToday": {
- "editAllowed": true
}, - "recall": {
- "allowed": true,
- "firstDelay": 10000,
- "delayBetweenRecall": 10000,
- "maximumRecall": 2
}, - "authorizedSetState": {
- "100": [
- 200
], - "200": [
- 300,
- 500
], - "500": [
- 700
]
}, - "extendedAttributes": {
- "phoneNumber": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^(\\\\+|00)([0-9]{1,2}\\\\-)?([0-9]{1,4})([0-9] ?){3,12}$"
}
}, - "civility": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^f|m$"
}
}, - "name": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^((?![\\\\.,\\\\|:\\\\!=%\\\\$€£\\\\(\\\\[\\\\]\\\\\\\"\\\\&@#\\\\\\\\\\\\`\\\\+\\\\-_\\\\?;§\\\\)]).){3,30}$"
}
}
}
}Use this route to get the list of all the endpoints of the queue.
| queueId required | string The ID of the queue. |
| langs | Array of strings Items Enum: "fr_FR" "en_US" "es_ES" "de_DE" "zh_CN" "zh_TW" "ja_JP" "ko_KR" "th_TH" An array of locales, used to get the translated names of the data. |
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/queues/{queueId}/endpoints
{- "endpointId1": {
- "endpointId": "endpointId1",
- "queueId": "queueId1",
- "placeId": "placeId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "state": 0,
- "config": {
- "timeslotsSameAsPlace": false,
- "editTimeslotsAllowed": false,
- "deleteTimeslotsAllowed": false
}
}, - "endpointId2": {
- "endpointId": "endpointId2",
- "queueId": "queueId1",
- "placeId": "placeId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "state": 2,
- "config": {
- "timeslotsSameAsPlace": false,
- "editTimeslotsAllowed": false,
- "deleteTimeslotsAllowed": false
}
}, - "endpointId3": {
- "endpointId": "endpointId3",
- "queueId": "queueId1",
- "placeId": "placeId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "state": 2,
- "config": {
- "timeslotsSameAsPlace": false,
- "editTimeslotsAllowed": false,
- "deleteTimeslotsAllowed": false
}
}
}Use this route to get the timeslots of all endpoints of the queue.
| queueId required | string The ID of the queue. |
| startAt | string The start date of the time slot to select data. |
| endAt | string The end date of the time slot to select data. |
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/queues/{queueId}/endpoints/timeslots
{- "endpointId1": {
- "endpointId": "endpointId1",
- "queueId": "queueId1",
- "placeId": "placeId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "state": 0,
- "config": {
- "timeslotsSameAsPlace": false,
- "editTimeslotsAllowed": false,
- "deleteTimeslotsAllowed": false
}
}, - "endpointId2": {
- "endpointId": "endpointId2",
- "queueId": "queueId1",
- "placeId": "placeId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "state": 2,
- "config": {
- "timeslotsSameAsPlace": false,
- "editTimeslotsAllowed": false,
- "deleteTimeslotsAllowed": false
}
}, - "endpointId3": {
- "endpointId": "endpointId3",
- "queueId": "queueId1",
- "placeId": "placeId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "state": 2,
- "config": {
- "timeslotsSameAsPlace": false,
- "editTimeslotsAllowed": false,
- "deleteTimeslotsAllowed": false
}
}
}Use this route to get the list of all the endpoints of the queue and their status in real times
| queueId required | string The ID of the queue. |
| langs | Array of strings Items Enum: "fr_FR" "en_US" "es_ES" "de_DE" "zh_CN" "zh_TW" "ja_JP" "ko_KR" "th_TH" An array of locales, used to get the translated names of the data. |
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/queues/{queueId}/endpoints/sse
{- "openedEndpoint": 1,
- "closedEndpoint": 2,
- "hiddenEndpoint": 0,
- "endpoints": {
- "endpointId1": {
- "endpointId": "endpointId1",
- "queueId": "queueId1",
- "placeId": "placeId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "state": 0,
- "config": {
- "timeslotsSameAsPlace": false,
- "editTimeslotsAllowed": false,
- "deleteTimeslotsAllowed": false
}
}, - "endpointId2": {
- "endpointId": "endpointId2",
- "queueId": "queueId1",
- "placeId": "placeId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "state": 2,
- "config": {
- "timeslotsSameAsPlace": false,
- "editTimeslotsAllowed": false,
- "deleteTimeslotsAllowed": false
}
}, - "endpointId3": {
- "endpointId": "endpointId3",
- "queueId": "queueId1",
- "placeId": "placeId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "state": 2,
- "config": {
- "timeslotsSameAsPlace": false,
- "editTimeslotsAllowed": false,
- "deleteTimeslotsAllowed": false
}
}
}
}Indicators are used to track data. Use this route to get the list of all the indicators of the queue.
| queueId required | string The ID of the queue. |
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/queues/{queueId}/indicators
{- "editedTicket": {
- "sum": "20,",
- "appointmentTypes": {
- "appointmentTypeId1": 20,
- "appointmentTypeId2": 0
}
}, - "editedPeople": {
- "sum": "40,",
- "appointmentTypes": {
- "appointmentTypeId1": 40,
- "appointmentTypeId2": 0
}
}, - "remainingTickets": {
- "sum": "10,",
- "appointmentTypes": {
- "appointmentTypeId1": 10,
- "appointmentTypeId2": 0
}
}, - "remainingPeople": {
- "sum": "20,",
- "appointmentTypes": {
- "appointmentTypeId1": 20,
- "appointmentTypeId2": 0
}
}, - "bookedTickets": {
- "sum": "0,",
- "appointmentTypes": {
- "appointmentTypeId1": 0,
- "appointmentTypeId2": 0
}
}, - "bookedPeople": {
- "sum": "0,",
- "appointmentTypes": {
- "appointmentTypeId1": 0,
- "appointmentTypeId2": 0
}
}, - "toConfirmTickets": {
- "sum": "0,",
- "appointmentTypes": {
- "appointmentTypeId1": 0,
- "appointmentTypeId2": 0
}
}, - "toConfirmPeople": {
- "sum": "0,",
- "appointmentTypes": {
- "appointmentTypeId1": 0,
- "appointmentTypeId2": 0
}
}, - "alertedTickets": {
- "sum": "0,",
- "appointmentTypes": {
- "appointmentTypeId1": 0,
- "appointmentTypeId2": 0
}
}, - "alertedPeople": {
- "sum": "0,",
- "appointmentTypes": {
- "appointmentTypeId1": 0,
- "appointmentTypeId2": 0
}
}, - "calledTickets": {
- "sum": "0,",
- "appointmentTypes": {
- "appointmentTypeId1": 0,
- "appointmentTypeId2": 0
}
}, - "calledPeople": {
- "sum": "0,",
- "appointmentTypes": {
- "appointmentTypeId1": 0,
- "appointmentTypeId2": 0
}
}, - "onHoldTickets": {
- "sum": "0,",
- "appointmentTypes": {
- "appointmentTypeId1": 0,
- "appointmentTypeId2": 0
}
}, - "onHoldPeople": {
- "sum": "0,",
- "appointmentTypes": {
- "appointmentTypeId1": 0,
- "appointmentTypeId2": 0
}
}, - "noShowTickets": {
- "sum": "3,",
- "appointmentTypes": {
- "appointmentTypeId1": 3,
- "appointmentTypeId2": 0
}
}, - "noShowPeople": {
- "sum": "6,",
- "appointmentTypes": {
- "appointmentTypeId1": 6,
- "appointmentTypeId2": 0
}
}, - "cancelTickets": {
- "sum": "2,",
- "appointmentTypes": {
- "appointmentTypeId1": 2,
- "appointmentTypeId2": 0
}
}, - "cancelPeople": {
- "sum": "4,",
- "appointmentTypes": {
- "appointmentTypeId1": 4,
- "appointmentTypeId2": 0
}
}, - "doneTickets": {
- "sum": "5,",
- "appointmentTypes": {
- "appointmentTypeId1": 0,
- "appointmentTypeId2": 0
}
}, - "donePeople": {
- "sum": "10,",
- "appointmentTypes": {
- "appointmentTypeId1": 10,
- "appointmentTypeId2": 0
}
}, - "nextDaysTickets": {
- "sum": "7,",
- "appointmentTypes": {
- "appointmentTypeId1": {
- "2019-06-16": 4,
- "2019-06-17": 3
}, - "appointmentTypeId2": null
}
}, - "nextDaysPeople": {
- "sum": "14,",
- "appointmentTypes": {
- "appointmentTypeId1": {
- "2019-06-16": 8,
- "2019-06-17": 6
}, - "appointmentTypeId2": 0
}
}, - "openedEndpoint": 1,
- "bookingOpened": true,
- "queueFull": false,
- "allFirstAvailabilities": {
- "appointmentTypeId1": {
- "1": "2018-09-01T12:00:00:00,0000+0200",
- "2": "2018-09-01T12:00:00:00,0000+0200"
}, - "appointmentTypeId2": {
- "1": "2018-09-01T12:00:00:00,0000+0200",
- "2": "2018-09-01T12:00:00:00,0000+0200"
}
}
}Use this route to suspend (pause) and then resume the queue after an unusual event (e.g. technical problem).
| queueId required | string The ID of the queue. |
| Authorization required |
To suspend or resume the queue.
| pause required | boolean Whether the queue should be paused or not. If True, the queue is paused. If False, the queue is restarted. |
{- "pause": true
}{- "queueId": "queueId1",
- "placeId": "placeId1",
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "language": "en_US",
- "timezone": "Europe/Paris",
- "state": {
- "pause": false,
- "bookingClosedForToday": false
}, - "position": {
- "lat": 48.858471,
- "lng": 2.294434
}, - "appointmentTypes": {
- "appointmentTypeId1": {
- "appointmentTypeId": "appointmentTypeId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}
}, - "appointmentTypeId2": {
- "appointmentTypeId": "appointmentTypeId2",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}
}
}, - "config": {
- "showIndicators": true,
- "hiddenModeAllowed": false,
- "pause": {
- "editAllowed": true
}, - "bookingClosedForToday": {
- "editAllowed": true
}, - "recall": {
- "allowed": true,
- "firstDelay": 10000,
- "delayBetweenRecall": 10000,
- "maximumRecall": 2
}, - "authorizedSetState": {
- "100": [
- 200
], - "200": [
- 300,
- 500
], - "500": [
- 700
]
}, - "extendedAttributes": {
- "phoneNumber": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^(\\\\+|00)([0-9]{1,2}\\\\-)?([0-9]{1,4})([0-9] ?){3,12}$"
}
}, - "civility": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^f|m$"
}
}, - "name": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^((?![\\\\.,\\\\|:\\\\!=%\\\\$€£\\\\(\\\\[\\\\]\\\\\\\"\\\\&@#\\\\\\\\\\\\`\\\\+\\\\-_\\\\?;§\\\\)]).){3,30}$"
}
}
}
}
}Use this route to suspend (close) and then resume the queue availabilities for the current day.
| queueId required | string The ID of the queue. |
| Authorization required |
To suspend or resume the queue availabilities for the current day.
| bookingClosedForToday required | boolean Whether the queue availabilities should be closed or not. If True, the queue availabilities is closed for today. If False, the queue is reopened. |
{- "bookingClosedForToday": true
}{- "queueId": "queueId1",
- "placeId": "placeId1",
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "language": "en_US",
- "timezone": "Europe/Paris",
- "state": {
- "pause": false,
- "bookingClosedForToday": false
}, - "position": {
- "lat": 48.858471,
- "lng": 2.294434
}, - "appointmentTypes": {
- "appointmentTypeId1": {
- "appointmentTypeId": "appointmentTypeId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}
}, - "appointmentTypeId2": {
- "appointmentTypeId": "appointmentTypeId2",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}
}
}, - "config": {
- "showIndicators": true,
- "hiddenModeAllowed": false,
- "pause": {
- "editAllowed": true
}, - "bookingClosedForToday": {
- "editAllowed": true
}, - "recall": {
- "allowed": true,
- "firstDelay": 10000,
- "delayBetweenRecall": 10000,
- "maximumRecall": 2
}, - "authorizedSetState": {
- "100": [
- 200
], - "200": [
- 300,
- 500
], - "500": [
- 700
]
}, - "extendedAttributes": {
- "phoneNumber": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^(\\\\+|00)([0-9]{1,2}\\\\-)?([0-9]{1,4})([0-9] ?){3,12}$"
}
}, - "civility": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^f|m$"
}
}, - "name": {
- "editAllowed": false,
- "validation": {
- "type": "string",
- "pattern": "^((?![\\\\.,\\\\|:\\\\!=%\\\\$€£\\\\(\\\\[\\\\]\\\\\\\"\\\\&@#\\\\\\\\\\\\`\\\\+\\\\-_\\\\?;§\\\\)]).){3,30}$"
}
}
}
}
}Use this route to get in real time all the current tickets (i.e. excluding those that are done or canceled) that are planned for today on the first message, then all the ticket events.
| queueId required | string The ID of the queue. |
| page | number The page number needed. 1 by default because there is at least one page. |
| pageSize | number [ 1 .. 50 ] Default: 20 The number of items to return for each page. By default, a page contains 20 items, at least 1 and up to 50. |
| Authorization required |
curl -X GET \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <TOKEN>" \ https://api-validation.lineberty.net/v1/queues/{queueId}/tickets/currents/sse
{- "totalCount": 2,
- "page": 1,
- "pageSize": 20,
- "tickets": [
- {
- "ticketId": "tiketId1",
- "label": "137",
- "queue": {
- "id": "queueId1",
- "name": "queue1"
}, - "place": {
- "id": "placeId1",
- "name": "place1"
}, - "userId": "userId1",
- "appointmentType": {
- "id": "appointmentTypeId1",
- "name": "appointmentType1"
}, - "state": 0,
- "isAnAppointment": false,
- "groupSize": 1,
- "duration": 600000,
- "ticketPosition": {
- "global": {
- "nbPeople": 0,
- "nbTickets": 0
}, - "endpoint": {
- "nbPeople": 0,
- "nbTickets": 0
}
}, - "recalledCount": 0,
- "lang": "en_US",
- "timeline": {
- "bookedAt": "2018-09-01T12:00:00:00,0000+0200",
- "inToConfirmAt": null,
- "initialBookedFor": "2018-09-01T12:00:05:00,0000+0200",
- "estimatedFor": "2018-09-01T12:00:05:00,0000+0200",
- "alertedAt": null,
- "calledAt": null,
- "recalledAt": [ ],
- "inProgressAt": null,
- "estimatedDoneAt": "2018-09-01T12:00:06:00,0000+0200",
- "onHoldAt": null,
- "noShowAt": null,
- "cancelledAt": null,
- "doneAt": null
}, - "extraInfos": {
- "rate": {
- "score": 5,
- "comment": "It was great!",
- "ratedAt": null
}, - "queueDistance": 2133,
- "sendClientPush": false,
- "sendClientSms": false,
- "sendClientMail": false
}, - "endpoint": {
- "id": null,
- "name": ""
}, - "extendedAttributes": {
- "mail": "contact@lineberty.com",
- "phone": "1(800)123-4567",
- "userPosition": {
- "lat": 48.858471,
- "lng": 2.294434
}
}
}, - {
- "ticketId": "tiketId2",
- "label": "29",
- "queue": {
- "id": "queueId2",
- "name": "queue2"
}, - "place": {
- "id": "placeId2",
- "name": "place2"
}, - "userId": "userId1",
- "appointmentType": {
- "id": "appointmentTypeId2",
- "name": "appointmentType2"
}, - "state": 0,
- "isAnAppointment": false,
- "groupSize": 3,
- "duration": 600000,
- "ticketPosition": {
- "global": {
- "nbPeople": 0,
- "nbTickets": 0
}, - "endpoint": {
- "nbPeople": 0,
- "nbTickets": 0
}
}, - "recalledCount": 0,
- "lang": "en_US",
- "timeline": {
- "bookedAt": "2018-09-01T12:00:00:00,0000+0200",
- "inToConfirmAt": null,
- "initialBookedFor": "2018-09-01T12:00:05:00,0000+0200",
- "estimatedFor": "2018-09-01T12:00:05:00,0000+0200",
- "alertedAt": null,
- "calledAt": null,
- "recalledAt": [ ],
- "inProgressAt": null,
- "estimatedDoneAt": "2018-09-01T12:00:06:00,0000+0200",
- "onHoldAt": null,
- "noShowAt": null,
- "cancelledAt": null,
- "doneAt": null
}, - "extraInfos": {
- "rate": {
- "score": 5,
- "comment": "Very nice moment!",
- "ratedAt": null
}, - "queueDistance": 2133,
- "sendClientPush": false,
- "sendClientSms": false,
- "sendClientMail": false
}, - "endpoint": {
- "id": null,
- "name": ""
}, - "extendedAttributes": {
- "mail": "contact@lineberty.com",
- "phone": "1(800)123-4567",
- "userPosition": {
- "lat": 48.858471,
- "lng": 2.294434
}
}
}
]
}Use this route to get all the current tickets (i.e. excluding those that are done or canceled) that are planned for today.
| queueId required | string The ID of the queue. |
| page | number The page number needed. 1 by default because there is at least one page. |
| pageSize | number [ 1 .. 50 ] Default: 20 The number of items to return for each page. By default, a page contains 20 items, at least 1 and up to 50. |
| Authorization required |
curl -X GET \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <TOKEN>" \ https://api-validation.lineberty.net/v1/queues/{queueId}/tickets/currents
{- "totalCount": 2,
- "page": 1,
- "pageSize": 20,
- "tickets": [
- {
- "ticketId": "tiketId1",
- "label": "137",
- "queue": {
- "id": "queueId1",
- "name": "queue1"
}, - "place": {
- "id": "placeId1",
- "name": "place1"
}, - "userId": "userId1",
- "appointmentType": {
- "id": "appointmentTypeId1",
- "name": "appointmentType1"
}, - "state": 0,
- "isAnAppointment": false,
- "groupSize": 1,
- "duration": 600000,
- "ticketPosition": {
- "global": {
- "nbPeople": 0,
- "nbTickets": 0
}, - "endpoint": {
- "nbPeople": 0,
- "nbTickets": 0
}
}, - "recalledCount": 0,
- "lang": "en_US",
- "timeline": {
- "bookedAt": "2018-09-01T12:00:00:00,0000+0200",
- "inToConfirmAt": null,
- "initialBookedFor": "2018-09-01T12:00:05:00,0000+0200",
- "estimatedFor": "2018-09-01T12:00:05:00,0000+0200",
- "alertedAt": null,
- "calledAt": null,
- "recalledAt": [ ],
- "inProgressAt": null,
- "estimatedDoneAt": "2018-09-01T12:00:06:00,0000+0200",
- "onHoldAt": null,
- "noShowAt": null,
- "cancelledAt": null,
- "doneAt": null
}, - "extraInfos": {
- "rate": {
- "score": 5,
- "comment": "It was great!",
- "ratedAt": null
}, - "queueDistance": 2133,
- "sendClientPush": false,
- "sendClientSms": false,
- "sendClientMail": false
}, - "endpoint": {
- "id": null,
- "name": ""
}, - "extendedAttributes": {
- "mail": "contact@lineberty.com",
- "phone": "1(800)123-4567",
- "userPosition": {
- "lat": 48.858471,
- "lng": 2.294434
}
}
}, - {
- "ticketId": "tiketId2",
- "label": "29",
- "queue": {
- "id": "queueId2",
- "name": "queue2"
}, - "place": {
- "id": "placeId2",
- "name": "place2"
}, - "userId": "userId1",
- "appointmentType": {
- "id": "appointmentTypeId2",
- "name": "appointmentType2"
}, - "state": 0,
- "isAnAppointment": false,
- "groupSize": 3,
- "duration": 600000,
- "ticketPosition": {
- "global": {
- "nbPeople": 0,
- "nbTickets": 0
}, - "endpoint": {
- "nbPeople": 0,
- "nbTickets": 0
}
}, - "recalledCount": 0,
- "lang": "en_US",
- "timeline": {
- "bookedAt": "2018-09-01T12:00:00:00,0000+0200",
- "inToConfirmAt": null,
- "initialBookedFor": "2018-09-01T12:00:05:00,0000+0200",
- "estimatedFor": "2018-09-01T12:00:05:00,0000+0200",
- "alertedAt": null,
- "calledAt": null,
- "recalledAt": [ ],
- "inProgressAt": null,
- "estimatedDoneAt": "2018-09-01T12:00:06:00,0000+0200",
- "onHoldAt": null,
- "noShowAt": null,
- "cancelledAt": null,
- "doneAt": null
}, - "extraInfos": {
- "rate": {
- "score": 5,
- "comment": "Very nice moment!",
- "ratedAt": null
}, - "queueDistance": 2133,
- "sendClientPush": false,
- "sendClientSms": false,
- "sendClientMail": false
}, - "endpoint": {
- "id": null,
- "name": ""
}, - "extendedAttributes": {
- "mail": "contact@lineberty.com",
- "phone": "1(800)123-4567",
- "userPosition": {
- "lat": 48.858471,
- "lng": 2.294434
}
}
}
]
}Use this route to get all the tickets that have been done or canceled during the current day.
| queueId required | string The ID of the queue. |
| page | number The page number needed. 1 by default because there is at least one page. |
| pageSize | number [ 1 .. 50 ] Default: 20 The number of items to return for each page. By default, a page contains 20 items, at least 1 and up to 50. |
| Authorization required |
curl -X GET \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <TOKEN>" \ https://api-validation.lineberty.net/v1/queues/{queueId}/tickets/history
{- "totalCount": 2,
- "page": 1,
- "pageSize": 20,
- "tickets": [
- {
- "ticketId": "tiketId1",
- "label": "137",
- "queue": {
- "id": "queueId1",
- "name": "queue1"
}, - "place": {
- "id": "placeId1",
- "name": "place1"
}, - "userId": "userId1",
- "appointmentType": {
- "id": "appointmentTypeId1",
- "name": "appointmentType1"
}, - "state": 0,
- "isAnAppointment": false,
- "groupSize": 1,
- "duration": 600000,
- "ticketPosition": {
- "global": {
- "nbPeople": 0,
- "nbTickets": 0
}, - "endpoint": {
- "nbPeople": 0,
- "nbTickets": 0
}
}, - "recalledCount": 0,
- "lang": "en_US",
- "timeline": {
- "bookedAt": "2018-09-01T12:00:00:00,0000+0200",
- "inToConfirmAt": null,
- "initialBookedFor": "2018-09-01T12:00:05:00,0000+0200",
- "estimatedFor": "2018-09-01T12:00:05:00,0000+0200",
- "alertedAt": null,
- "calledAt": null,
- "recalledAt": [ ],
- "inProgressAt": null,
- "estimatedDoneAt": "2018-09-01T12:00:06:00,0000+0200",
- "onHoldAt": null,
- "noShowAt": null,
- "cancelledAt": null,
- "doneAt": null
}, - "extraInfos": {
- "rate": {
- "score": 5,
- "comment": "It was great!",
- "ratedAt": null
}, - "queueDistance": 2133,
- "sendClientPush": false,
- "sendClientSms": false,
- "sendClientMail": false
}, - "endpoint": {
- "id": null,
- "name": ""
}, - "extendedAttributes": {
- "mail": "contact@lineberty.com",
- "phone": "1(800)123-4567",
- "userPosition": {
- "lat": 48.858471,
- "lng": 2.294434
}
}
}, - {
- "ticketId": "tiketId2",
- "label": "29",
- "queue": {
- "id": "queueId2",
- "name": "queue2"
}, - "place": {
- "id": "placeId2",
- "name": "place2"
}, - "userId": "userId1",
- "appointmentType": {
- "id": "appointmentTypeId2",
- "name": "appointmentType2"
}, - "state": 0,
- "isAnAppointment": false,
- "groupSize": 3,
- "duration": 600000,
- "ticketPosition": {
- "global": {
- "nbPeople": 0,
- "nbTickets": 0
}, - "endpoint": {
- "nbPeople": 0,
- "nbTickets": 0
}
}, - "recalledCount": 0,
- "lang": "en_US",
- "timeline": {
- "bookedAt": "2018-09-01T12:00:00:00,0000+0200",
- "inToConfirmAt": null,
- "initialBookedFor": "2018-09-01T12:00:05:00,0000+0200",
- "estimatedFor": "2018-09-01T12:00:05:00,0000+0200",
- "alertedAt": null,
- "calledAt": null,
- "recalledAt": [ ],
- "inProgressAt": null,
- "estimatedDoneAt": "2018-09-01T12:00:06:00,0000+0200",
- "onHoldAt": null,
- "noShowAt": null,
- "cancelledAt": null,
- "doneAt": null
}, - "extraInfos": {
- "rate": {
- "score": 5,
- "comment": "Very nice moment!",
- "ratedAt": null
}, - "queueDistance": 2133,
- "sendClientPush": false,
- "sendClientSms": false,
- "sendClientMail": false
}, - "endpoint": {
- "id": null,
- "name": ""
}, - "extendedAttributes": {
- "mail": "contact@lineberty.com",
- "phone": "1(800)123-4567",
- "userPosition": {
- "lat": 48.858471,
- "lng": 2.294434
}
}
}
]
}Use this route to get the list of the tickets that are booked for the next days, including those that are already canceled.
| queueId required | string The ID of the queue. |
| page | number The page number needed. 1 by default because there is at least one page. |
| pageSize | number [ 1 .. 50 ] Default: 20 The number of items to return for each page. By default, a page contains 20 items, at least 1 and up to 50. |
| startAt | string The start date of the time slot to select data. |
| endAt | string The end date of the time slot to select data. |
| Authorization required |
curl -X GET \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <TOKEN>" \ https://api-validation.lineberty.net/v1/queues/{queueId}/tickets/nextDays
{- "totalCount": 2,
- "page": 1,
- "pageSize": 20,
- "tickets": [
- {
- "ticketId": "tiketId1",
- "label": "137",
- "queue": {
- "id": "queueId1",
- "name": "queue1"
}, - "place": {
- "id": "placeId1",
- "name": "place1"
}, - "userId": "userId1",
- "appointmentType": {
- "id": "appointmentTypeId1",
- "name": "appointmentType1"
}, - "state": 0,
- "isAnAppointment": false,
- "groupSize": 1,
- "duration": 600000,
- "ticketPosition": {
- "global": {
- "nbPeople": 0,
- "nbTickets": 0
}, - "endpoint": {
- "nbPeople": 0,
- "nbTickets": 0
}
}, - "recalledCount": 0,
- "lang": "en_US",
- "timeline": {
- "bookedAt": "2018-09-01T12:00:00:00,0000+0200",
- "inToConfirmAt": null,
- "initialBookedFor": "2018-09-01T12:00:05:00,0000+0200",
- "estimatedFor": "2018-09-01T12:00:05:00,0000+0200",
- "alertedAt": null,
- "calledAt": null,
- "recalledAt": [ ],
- "inProgressAt": null,
- "estimatedDoneAt": "2018-09-01T12:00:06:00,0000+0200",
- "onHoldAt": null,
- "noShowAt": null,
- "cancelledAt": null,
- "doneAt": null
}, - "extraInfos": {
- "rate": {
- "score": 5,
- "comment": "It was great!",
- "ratedAt": null
}, - "queueDistance": 2133,
- "sendClientPush": false,
- "sendClientSms": false,
- "sendClientMail": false
}, - "endpoint": {
- "id": null,
- "name": ""
}, - "extendedAttributes": {
- "mail": "contact@lineberty.com",
- "phone": "1(800)123-4567",
- "userPosition": {
- "lat": 48.858471,
- "lng": 2.294434
}
}
}, - {
- "ticketId": "tiketId2",
- "label": "29",
- "queue": {
- "id": "queueId2",
- "name": "queue2"
}, - "place": {
- "id": "placeId2",
- "name": "place2"
}, - "userId": "userId1",
- "appointmentType": {
- "id": "appointmentTypeId2",
- "name": "appointmentType2"
}, - "state": 0,
- "isAnAppointment": false,
- "groupSize": 3,
- "duration": 600000,
- "ticketPosition": {
- "global": {
- "nbPeople": 0,
- "nbTickets": 0
}, - "endpoint": {
- "nbPeople": 0,
- "nbTickets": 0
}
}, - "recalledCount": 0,
- "lang": "en_US",
- "timeline": {
- "bookedAt": "2018-09-01T12:00:00:00,0000+0200",
- "inToConfirmAt": null,
- "initialBookedFor": "2018-09-01T12:00:05:00,0000+0200",
- "estimatedFor": "2018-09-01T12:00:05:00,0000+0200",
- "alertedAt": null,
- "calledAt": null,
- "recalledAt": [ ],
- "inProgressAt": null,
- "estimatedDoneAt": "2018-09-01T12:00:06:00,0000+0200",
- "onHoldAt": null,
- "noShowAt": null,
- "cancelledAt": null,
- "doneAt": null
}, - "extraInfos": {
- "rate": {
- "score": 5,
- "comment": "Very nice moment!",
- "ratedAt": null
}, - "queueDistance": 2133,
- "sendClientPush": false,
- "sendClientSms": false,
- "sendClientMail": false
}, - "endpoint": {
- "id": null,
- "name": ""
}, - "extendedAttributes": {
- "mail": "contact@lineberty.com",
- "phone": "1(800)123-4567",
- "userPosition": {
- "lat": 48.858471,
- "lng": 2.294434
}
}
}
]
}Use this route to filter the tickets of a queue, using various parameters such as the label, a day (today, the next days or both), or the extended attributes. This search cannot be done on past tickets.
| queueId required | string The ID of the queue. |
| Authorization required |
Search for tickets.
| label | string The label of the ticket. |
| today | boolean To load only the tickets of the current day, use TRUE. To load only the tickets of the next days, use FALSE. To load all the tickets of the queue, do not pass any parameter. |
Array of objects (ticketSearchExtendedAttribute) An array of objects containing the attributes used to filter the queue. |
{- "label": 5,
- "today": true,
- "extendedAttributes": [
- {
- "field": "name",
- "value": "Smith",
- "operator": "match"
}, - {
- "field": "phone",
- "value": "1(800)123-4567",
- "operator": "equal"
}
]
}[- {
- "ticketId": "tiketId1",
- "label": "137",
- "queue": {
- "id": "queueId1",
- "name": "queue1"
}, - "place": {
- "id": "placeId1",
- "name": "place1"
}, - "userId": "userId1",
- "appointmentType": {
- "id": "appointmentTypeId1",
- "name": "appointmentType1"
}, - "state": 0,
- "isAnAppointment": false,
- "groupSize": 1,
- "duration": 600000,
- "ticketPosition": {
- "global": {
- "nbPeople": 0,
- "nbTickets": 0
}, - "endpoint": {
- "nbPeople": 0,
- "nbTickets": 0
}
}, - "recalledCount": 0,
- "lang": "en_US",
- "timeline": {
- "bookedAt": "2018-09-01T12:00:00:00,0000+0200",
- "inToConfirmAt": null,
- "initialBookedFor": "2018-09-01T12:00:05:00,0000+0200",
- "estimatedFor": "2018-09-01T12:00:05:00,0000+0200",
- "alertedAt": null,
- "calledAt": null,
- "recalledAt": [ ],
- "inProgressAt": null,
- "estimatedDoneAt": "2018-09-01T12:00:06:00,0000+0200",
- "onHoldAt": null,
- "noShowAt": null,
- "cancelledAt": null,
- "doneAt": null
}, - "extraInfos": {
- "rate": {
- "score": 5,
- "comment": "It was great!",
- "ratedAt": null
}, - "queueDistance": 2133,
- "sendClientPush": false,
- "sendClientSms": false,
- "sendClientMail": false
}, - "endpoint": {
- "id": null,
- "name": ""
}, - "extendedAttributes": {
- "mail": "contact@lineberty.com",
- "phone": "1(800)123-4567",
- "userPosition": {
- "lat": 48.858471,
- "lng": 2.294434
}
}
}, - {
- "ticketId": "tiketId2",
- "label": "29",
- "queue": {
- "id": "queueId2",
- "name": "queue2"
}, - "place": {
- "id": "placeId2",
- "name": "place2"
}, - "userId": "userId1",
- "appointmentType": {
- "id": "appointmentTypeId2",
- "name": "appointmentType2"
}, - "state": 0,
- "isAnAppointment": false,
- "groupSize": 3,
- "duration": 600000,
- "ticketPosition": {
- "global": {
- "nbPeople": 0,
- "nbTickets": 0
}, - "endpoint": {
- "nbPeople": 0,
- "nbTickets": 0
}
}, - "recalledCount": 0,
- "lang": "en_US",
- "timeline": {
- "bookedAt": "2018-09-01T12:00:00:00,0000+0200",
- "inToConfirmAt": null,
- "initialBookedFor": "2018-09-01T12:00:05:00,0000+0200",
- "estimatedFor": "2018-09-01T12:00:05:00,0000+0200",
- "alertedAt": null,
- "calledAt": null,
- "recalledAt": [ ],
- "inProgressAt": null,
- "estimatedDoneAt": "2018-09-01T12:00:06:00,0000+0200",
- "onHoldAt": null,
- "noShowAt": null,
- "cancelledAt": null,
- "doneAt": null
}, - "extraInfos": {
- "rate": {
- "score": 0,
- "comment": "",
- "ratedAt": null
}, - "queueDistance": 2133,
- "sendClientPush": false,
- "sendClientSms": false,
- "sendClientMail": false
}, - "endpoint": {
- "id": null,
- "name": ""
}, - "extendedAttributes": {
- "mail": "contact@lineberty.com",
- "phone": "1(800)123-4567",
- "userPosition": {
- "lat": 48.858471,
- "lng": 2.294434
}
}
}
]Use these routes to get the list of the counters, and to perform increments or decrement the value of the counter.
Use this route to get all the counters that are associated with the API key.
| countersId required | Array of strings An array of counter IDs. |
| langs | Array of strings Items Enum: "fr_FR" "en_US" "es_ES" "de_DE" "zh_CN" "zh_TW" "ja_JP" "ko_KR" "th_TH" An array of locales, used to get the translated names of the data. |
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/counters
{- "counterId1": {
- "counterId": "counterId1",
- "placeId": "placeId1",
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "language": "en_US",
- "timezone": "Europe/Paris",
- "infos": {
- "value": 2,
- "nextRestart": "2018-09-01T12:00:00:00,0000+0200"
}
}, - "counterId2": {
- "counterId": "counterId2",
- "placeId": "placeId1",
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "language": "en_US",
- "timezone": "Europe/Paris",
- "infos": {
- "value": 3,
- "nextRestart": "2018-09-01T12:00:00:00,0000+0200"
}
}
}Use this route to get all the counters that are associated with the API and receive an event each time a counter is incremented/decremented.
| countersId required | Array of strings An array of counter IDs. |
| langs | Array of strings Items Enum: "fr_FR" "en_US" "es_ES" "de_DE" "zh_CN" "zh_TW" "ja_JP" "ko_KR" "th_TH" An array of locales, used to get the translated names of the data. |
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/counters/sse
{- "counterId1": {
- "counterId": "counterId1",
- "placeId": "placeId1",
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "language": "en_US",
- "timezone": "Europe/Paris",
- "infos": {
- "value": 2,
- "nextRestart": "2018-09-01T12:00:00:00,0000+0200"
}
}, - "counterId2": {
- "counterId": "counterId2",
- "placeId": "placeId1",
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "language": "en_US",
- "timezone": "Europe/Paris",
- "infos": {
- "value": 3,
- "nextRestart": "2018-09-01T12:00:00:00,0000+0200"
}
}
}Use this route to get a counter in particular, using its counter ID.
| counterId required | string The ID of the counter. |
| langs | Array of strings Items Enum: "fr_FR" "en_US" "es_ES" "de_DE" "zh_CN" "zh_TW" "ja_JP" "ko_KR" "th_TH" An array of locales, used to get the translated names of the data. |
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/counters/{counterId}
{- "counterId": "counterId1",
- "placeId": "placeId1",
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "language": "en_US",
- "timezone": "Europe/Paris",
- "infos": {
- "value": 2,
- "nextRestart": "2018-09-01T12:00:00:00,0000+0200"
}
}Use this route to increment the counter value, using its counter ID.
| counterId required | string The ID of the counter. |
| Authorization required |
The incremental value.
| incrementValue required | number The value to add to the counter. Must be a positive number. |
{- "incrementValue": 2
}{- "counterId": "counterId1",
- "placeId": "placeId1",
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "language": "en_US",
- "timezone": "Europe/Paris",
- "infos": {
- "value": 2,
- "nextRestart": "2018-09-01T12:00:00:00,0000+0200"
}
}Use this route to decrement the counter value, using its counter ID.
| counterId required | string The ID of the counter. |
| Authorization required |
The decremental value.
| decrementValue required | number The value to substract to the counter. Must be positif and can't be greater than the counter value |
{- "decrementValue": 2
}{- "counterId": "counterId1",
- "placeId": "placeId1",
- "companyId": "companyId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "language": "en_US",
- "timezone": "Europe/Paris",
- "infos": {
- "value": 2,
- "nextRestart": "2018-09-01T12:00:00:00,0000+0200"
}
}Use these routes to get the list of the tickets and to perform various actions on a ticket (recall a ticket, change its state to another, define extended attributes...).
Use this route to get a ticket, using its ticket ID.
| ticketId required | string The ID of the ticket. |
| Authorization required |
curl -X GET \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <TOKEN>" \ https://api-validation.lineberty.net/v1/tickets/{ticketId}
{- "ticketId": "tiketId1",
- "label": "137",
- "queue": {
- "id": "queueId1",
- "name": "queue1"
}, - "place": {
- "id": "placeId1",
- "name": "place1"
}, - "userId": "userId1",
- "appointmentType": {
- "id": "appointmentTypeId1",
- "name": "appointmentType1"
}, - "state": 0,
- "isAnAppointment": false,
- "groupSize": 1,
- "duration": 600000,
- "ticketPosition": {
- "global": {
- "nbPeople": 0,
- "nbTickets": 0
}, - "endpoint": {
- "nbPeople": 0,
- "nbTickets": 0
}
}, - "recalledCount": 0,
- "lang": "en_US",
- "timeline": {
- "bookedAt": "2018-09-01T12:00:00:00,0000+0200",
- "inToConfirmAt": null,
- "initialBookedFor": "2018-09-01T12:00:05:00,0000+0200",
- "estimatedFor": "2018-09-01T12:00:05:00,0000+0200",
- "alertedAt": null,
- "calledAt": null,
- "recalledAt": [ ],
- "inProgressAt": null,
- "estimatedDoneAt": "2018-09-01T12:00:06:00,0000+0200",
- "onHoldAt": null,
- "noShowAt": null,
- "cancelledAt": null,
- "doneAt": null
}, - "extraInfos": {
- "rate": {
- "score": 0,
- "comment": "",
- "ratedAt": null
}, - "queueDistance": 2133,
- "sendClientPush": false,
- "sendClientSms": false,
- "sendClientMail": false
}, - "endpoint": {
- "id": null,
- "name": ""
}, - "extendedAttributes": {
- "mail": "contact@lineberty.com",
- "phone": "1(800)123-4567",
- "userPosition": {
- "lat": 48.858471,
- "lng": 2.294434
}
}
}Use this route to recall a ticket, using its ticket ID.
| ticketId required | string The ID of the ticket. |
| Authorization required |
curl -X GET \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <TOKEN>" \ https://api-validation.lineberty.net/v1/tickets/{ticketId}/recall
{- "ticketId": "tiketId1",
- "label": "137",
- "queue": {
- "id": "queueId1",
- "name": "queue1"
}, - "place": {
- "id": "placeId1",
- "name": "place1"
}, - "userId": "userId1",
- "appointmentType": {
- "id": "appointmentTypeId1",
- "name": "appointmentType1"
}, - "state": 0,
- "isAnAppointment": false,
- "groupSize": 1,
- "duration": 600000,
- "ticketPosition": {
- "global": {
- "nbPeople": 0,
- "nbTickets": 0
}, - "endpoint": {
- "nbPeople": 0,
- "nbTickets": 0
}
}, - "recalledCount": 0,
- "lang": "en_US",
- "timeline": {
- "bookedAt": "2018-09-01T12:00:00:00,0000+0200",
- "inToConfirmAt": null,
- "initialBookedFor": "2018-09-01T12:00:05:00,0000+0200",
- "estimatedFor": "2018-09-01T12:00:05:00,0000+0200",
- "alertedAt": null,
- "calledAt": null,
- "recalledAt": [ ],
- "inProgressAt": null,
- "estimatedDoneAt": "2018-09-01T12:00:06:00,0000+0200",
- "onHoldAt": null,
- "noShowAt": null,
- "cancelledAt": null,
- "doneAt": null
}, - "extraInfos": {
- "rate": {
- "score": 0,
- "comment": "",
- "ratedAt": null
}, - "queueDistance": 2133,
- "sendClientPush": false,
- "sendClientSms": false,
- "sendClientMail": false
}, - "endpoint": {
- "id": null,
- "name": ""
}, - "extendedAttributes": {
- "mail": "contact@lineberty.com",
- "phone": "1(800)123-4567",
- "userPosition": {
- "lat": 48.858471,
- "lng": 2.294434
}
}
}Use this route to get the life of a ticket, using its ticket ID.
| ticketId required | string The ID of the ticket. |
| Authorization required |
curl -X GET \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <TOKEN>" \ https://api-validation.lineberty.net/v1/tickets/{ticketId}/life
[- {
- "action": "string",
- "time": "string",
- "operator": {
- "operatorId": "string",
- "firstName": "string",
- "lastName": "string",
- "ssoId": "string"
}
}
]Use this route to get the sms sent to a ticket, using its ticket ID.
| ticketId required | string The ID of the ticket. |
| Authorization required |
curl -X GET \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <TOKEN>" \ https://api-validation.lineberty.net/v1/tickets/{ticketId}/sms
[- {
- "content": "string",
- "state": "sending",
- "eventName": "string",
- "pushId": "string",
- "sentHour": "string",
- "receiveHour": "string"
}
]Use this route to change the state of a ticket, using its ticket ID.
| ticketId required | string The ID of the ticket. |
| Authorization required |
The new state.
| setStateTo required | number The new state of the ticket. Whether :
|
| endpointId | string The ID of the endpoint. Required to change a ticket state to CALLED or IN_PROGRESS. |
{- "setStateTo": 500,
- "endpointId": "endpointId1"
}{- "ticketId": "tiketId1",
- "label": "137",
- "queue": {
- "id": "queueId1",
- "name": "queue1"
}, - "place": {
- "id": "placeId1",
- "name": "place1"
}, - "userId": "userId1",
- "appointmentType": {
- "id": "appointmentTypeId1",
- "name": "appointmentType1"
}, - "state": 0,
- "isAnAppointment": false,
- "groupSize": 1,
- "duration": 600000,
- "ticketPosition": {
- "global": {
- "nbPeople": 0,
- "nbTickets": 0
}, - "endpoint": {
- "nbPeople": 0,
- "nbTickets": 0
}
}, - "recalledCount": 0,
- "lang": "en_US",
- "timeline": {
- "bookedAt": "2018-09-01T12:00:00:00,0000+0200",
- "inToConfirmAt": null,
- "initialBookedFor": "2018-09-01T12:00:05:00,0000+0200",
- "estimatedFor": "2018-09-01T12:00:05:00,0000+0200",
- "alertedAt": null,
- "calledAt": null,
- "recalledAt": [ ],
- "inProgressAt": null,
- "estimatedDoneAt": "2018-09-01T12:00:06:00,0000+0200",
- "onHoldAt": null,
- "noShowAt": null,
- "cancelledAt": null,
- "doneAt": null
}, - "extraInfos": {
- "rate": {
- "score": 0,
- "comment": "",
- "ratedAt": null
}, - "queueDistance": 2133,
- "sendClientPush": false,
- "sendClientSms": false,
- "sendClientMail": false
}, - "endpoint": {
- "id": null,
- "name": ""
}, - "extendedAttributes": {
- "mail": "contact@lineberty.com",
- "phone": "1(800)123-4567",
- "userPosition": {
- "lat": 48.858471,
- "lng": 2.294434
}
}
}Use this route to define additional attributes (i.e. extended attributes) for a ticket. These attributes can be intended for users, or for operators.
| ticketId required | string The ID of the ticket. |
| Authorization required |
The new value of extended attributes.
A list of extended attributes inside a JSON object, which key is the name of the extended attribute and which value is the value of the extended attribute.
{- "name": "John Smith",
- "phone": "1(800)123-4567"
}{- "ticketId": "tiketId1",
- "label": "137",
- "queue": {
- "id": "queueId1",
- "name": "queue1"
}, - "place": {
- "id": "placeId1",
- "name": "place1"
}, - "userId": "userId1",
- "appointmentType": {
- "id": "appointmentTypeId1",
- "name": "appointmentType1"
}, - "state": 0,
- "isAnAppointment": false,
- "groupSize": 1,
- "duration": 600000,
- "ticketPosition": {
- "global": {
- "nbPeople": 0,
- "nbTickets": 0
}, - "endpoint": {
- "nbPeople": 0,
- "nbTickets": 0
}
}, - "recalledCount": 0,
- "lang": "en_US",
- "timeline": {
- "bookedAt": "2018-09-01T12:00:00:00,0000+0200",
- "inToConfirmAt": null,
- "initialBookedFor": "2018-09-01T12:00:05:00,0000+0200",
- "estimatedFor": "2018-09-01T12:00:05:00,0000+0200",
- "alertedAt": null,
- "calledAt": null,
- "recalledAt": [ ],
- "inProgressAt": null,
- "estimatedDoneAt": "2018-09-01T12:00:06:00,0000+0200",
- "onHoldAt": null,
- "noShowAt": null,
- "cancelledAt": null,
- "doneAt": null
}, - "extraInfos": {
- "rate": {
- "score": 0,
- "comment": "",
- "ratedAt": null
}, - "queueDistance": 2133,
- "sendClientPush": false,
- "sendClientSms": false,
- "sendClientMail": false
}, - "endpoint": {
- "id": null,
- "name": ""
}, - "extendedAttributes": {
- "mail": "contact@lineberty.com",
- "phone": "1(800)123-4567",
- "userPosition": {
- "lat": 48.858471,
- "lng": 2.294434
}
}
}Use this route to delete additional attributes (i.e. extended attributes) for a ticket. These attributes can be intended for users, or for operators.
| ticketId required | string The ID of the ticket. |
| Authorization required |
The list of extended attributes to delete.
| extendedAttributes | Array of strings (TicketDeleteExtendedAttributeRequestBody) [ items ] |
{- "extendedAttributes": [
- [
- "phone",
- "name"
]
]
}{- "ticketId": "tiketId1",
- "label": "137",
- "queue": {
- "id": "queueId1",
- "name": "queue1"
}, - "place": {
- "id": "placeId1",
- "name": "place1"
}, - "userId": "userId1",
- "appointmentType": {
- "id": "appointmentTypeId1",
- "name": "appointmentType1"
}, - "state": 0,
- "isAnAppointment": false,
- "groupSize": 1,
- "duration": 600000,
- "ticketPosition": {
- "global": {
- "nbPeople": 0,
- "nbTickets": 0
}, - "endpoint": {
- "nbPeople": 0,
- "nbTickets": 0
}
}, - "recalledCount": 0,
- "lang": "en_US",
- "timeline": {
- "bookedAt": "2018-09-01T12:00:00:00,0000+0200",
- "inToConfirmAt": null,
- "initialBookedFor": "2018-09-01T12:00:05:00,0000+0200",
- "estimatedFor": "2018-09-01T12:00:05:00,0000+0200",
- "alertedAt": null,
- "calledAt": null,
- "recalledAt": [ ],
- "inProgressAt": null,
- "estimatedDoneAt": "2018-09-01T12:00:06:00,0000+0200",
- "onHoldAt": null,
- "noShowAt": null,
- "cancelledAt": null,
- "doneAt": null
}, - "extraInfos": {
- "rate": {
- "score": 0,
- "comment": "",
- "ratedAt": null
}, - "queueDistance": 2133,
- "sendClientPush": false,
- "sendClientSms": false,
- "sendClientMail": false
}, - "endpoint": {
- "id": null,
- "name": ""
}, - "extendedAttributes": {
- "mail": "contact@lineberty.com",
- "phone": "1(800)123-4567",
- "userPosition": {
- "lat": 48.858471,
- "lng": 2.294434
}
}
}Use these route to get the list of the endpoints and to perform actions on an endpoint (open or close the endpoint, manage time slots).
Use this route to get an endpoint, using its endpoint ID.
| endpointId required | string The ID of the endpoint. |
| langs | Array of strings Items Enum: "fr_FR" "en_US" "es_ES" "de_DE" "zh_CN" "zh_TW" "ja_JP" "ko_KR" "th_TH" An array of locales, used to get the translated names of the data. |
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/endpoints/{endpointId}
{- "endpointId": "endpointId1",
- "queueId": "queueId1",
- "placeId": "placeId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "state": 0,
- "config": {
- "timeslotsSameAsPlace": false,
- "editTimeslotsAllowed": false,
- "deleteTimeslotsAllowed": false
}
}Use this route to open or close an endpoint, using its endpoint ID.
| endpointId required | string The ID of the endpoint. |
| Authorization required |
Open or close the endpoint.
| open required | boolean Whether the endpoint is open or close. If True, the endpoint is open. If False, the endpoint is close. |
| mode | string Enum: "classic" "hidden" Specify the open mode of the endpoint, default value is 'classic'. If the mode is 'hidden' the endpoint dont need to have schedule to validate tickets |
{- "open": true
}{- "endpointId": "endpointId1",
- "queueId": "queueId1",
- "placeId": "placeId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "state": 0,
- "config": {
- "timeslotsSameAsPlace": false,
- "editTimeslotsAllowed": false,
- "deleteTimeslotsAllowed": false
}
}Use this route to logout using its endpoint ID. (hidden route - documentation not needed)
| endpointId required | string The ID of the endpoint. |
curl -X PUT \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/endoints/{endpointId}/logout
{- "endpointId": "endpointId1",
- "queueId": "queueId1",
- "placeId": "placeId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "state": 0,
- "config": {
- "timeslotsSameAsPlace": false,
- "editTimeslotsAllowed": false,
- "deleteTimeslotsAllowed": false
}
}Use this routes to get an endpoint, using its endpoint ID. Received event on opening, closing, update and time slots update of the endpoint
| endpointId required | string The ID of the endpoint. |
| langs | Array of strings Items Enum: "fr_FR" "en_US" "es_ES" "de_DE" "zh_CN" "zh_TW" "ja_JP" "ko_KR" "th_TH" An array of locales, used to get the translated names of the data. |
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/endpoints/{endpointId}/sse
{- "endpointId": "endpointId1",
- "queueId": "queueId1",
- "placeId": "placeId1",
- "name": {
- "en_US": "name_EN",
- "fr_FR": "name_FR"
}, - "state": 0,
- "config": {
- "timeslotsSameAsPlace": false,
- "editTimeslotsAllowed": false,
- "deleteTimeslotsAllowed": false
}
}Use this route to get the time slots of an endpoint, using its endpoint ID.
| endpointId required | string The ID of the endpoint. |
| startAt | string The start date of the time slot to select data. |
| endAt | string The end date of the time slot to select data. |
curl -X GET \ -H "Content-Type: application/json" \ https://api-validation.lineberty.net/v1/endpoints/{endpointId}/timeslots
[- {
- "startAt": "2018-09-01T12:00:00:00,0000+0200",
- "endAt": "2018-09-01T12:00:05:00,0000+0200"
}, - {
- "startAt": "2018-09-01T12:00:10:00,0000+0200",
- "endAt": "2018-09-01T12:00:15:00,0000+0200"
}
]Use this route to set the time slots of an endpoint, using its endpoint ID.
| endpointId required | string The ID of the endpoint. |
| Authorization required |
Sets the endpoint time slots.
| startAt required | string (IsoDate) A date (ISO-8601). |
| endAt required | string (IsoDate) A date (ISO-8601). |
required | Array of objects (TimeslotArray) An array of time slots ordered by startAt ASC. |
{- "startAt": "2018-09-01T12:00:00:00,0000+0200",
- "endAt": "2018-09-01T12:00:00:00,0000+0200",
- "newTimeslots": [
- {
- "startAt": "2018-09-01T12:00:00:00,0000+0200",
- "endAt": "2018-09-01T12:00:05:00,0000+0200"
}, - {
- "startAt": "2018-09-01T12:00:10:00,0000+0200",
- "endAt": "2018-09-01T12:00:15:00,0000+0200"
}
]
}[- {
- "startAt": "2018-09-01T12:00:00:00,0000+0200",
- "endAt": "2018-09-01T12:00:05:00,0000+0200"
}, - {
- "startAt": "2018-09-01T12:00:10:00,0000+0200",
- "endAt": "2018-09-01T12:00:15:00,0000+0200"
}
]Use this route to delete the time slots of an endpoint, using its endpoint ID.
| endpointId required | string The ID of the endpoint. |
| Authorization required |
Deletes the time slots of an endpoint.
| startAt required | string (IsoDate) A date (ISO-8601). |
| endAt required | string (IsoDate) A date (ISO-8601). |
{- "startAt": "2018-09-01T12:00:00:00,0000+0200",
- "endAt": "2018-09-01T12:00:00:00,0000+0200"
}[- {
- "startAt": "2018-09-01T12:00:00:00,0000+0200",
- "endAt": "2018-09-01T12:00:05:00,0000+0200"
}, - {
- "startAt": "2018-09-01T12:00:10:00,0000+0200",
- "endAt": "2018-09-01T12:00:15:00,0000+0200"
}
]