Download OpenAPI specification:Download
This API is documented in OpenAPI format. It's still a work in progress so please let us know about any issues at dev@bookio.com.
Token based authentication. Access to bookio API with specific channel assigned to the token.
ErrorCode | Description |
---|---|
10 | Generic validation error, errors field will give more information |
11 | Payment error, reservation cannot be marked as paid |
12 | Resource not found. |
20 | Invalid token or missing access rights |
30 | There is no capacity left |
40 | Duplicate reservation |
403 | You don't have enough permissions to access this endpoint |
404 | Not found |
666 | Unspecified internal error, this will be reported to us and we will look into it shortly |
Every request accepts parameter lang
. Example: /api/v1/some-endpoint?lang=sk
or /api/v1/some-endpoint?someParam=1&lang=en
. Controls the language of texts. Unsupported locale will fallback to "en".
Returns a list of CGM facilities.
Successful operation
Bad request
Production server.
{- "result": {
- "success": true,
- "errors": [
- "string"
], - "data": {
- "facilities": [
- {
- "id": 123,
- "name": "Stomatologia ABC",
- "address": {
- "street": "Second street",
- "city": "Bratislava",
- "postcode": 82104,
- "country": {
- "name": "Slovakia",
- "code": "SVK"
}, - "gps": {
- "latitude": 48.152115,
- "longitude": 17.108769
}
}, - "contact": {
- "phone": "+421999888777",
- "email": "test@bookio.com",
}, - "timeZone": "Europe/Bratislava"
}
]
}
}
}
Looks for calendars in specified time
date | string <date> Example: date=2018-06-29 Specific date. |
facilityId | number <int64> Example: facilityId=123 ID of the specified facility. |
Successful operation
Bad request
Production server.
{- "result": {
- "success": true,
- "data": {
- "calendars": [
- {
- "id": 123,
- "facilityId": 123,
- "name": "Hello there",
- "note": "Hello there",
- "validFrom": "2018-06-29T12:00:00",
- "validTo": "2018-06-29T12:00:00",
- "services": [
- {
- "id": 123,
- "name": "Some service",
- "note": "Some note",
- "duration": 44,
- "capacity": 1,
- "referralLetter": true,
- "hiddenInOnlineForm": true
}
], - "intervals": [
- {
- "id": 123,
- "name": "Some interval",
- "weekDays": [
- 1,
- 2,
- 3
], - "timeFrom": "18:00",
- "timeTo": "18:00",
- "allowedServices": [
- 2,
- 53,
- 5
]
}
]
}
]
}
}
}
Creates calendar from requested data.
JSON body
facilityId required | number <int64> Unique identifier |
name required | string |
note required | string |
validFrom required | string <date> Date (RFC 3339 full-date format) |
validTo required | string <date> Date (RFC 3339 full-date format) |
services required | Array of objects |
intervals required | Array of objects |
Successful operation
Bad request
Production server.
{- "facilityId": 123,
- "name": "Hello there",
- "note": "Hello there",
- "validFrom": "2018-06-29T12:00:00",
- "validTo": "2018-06-29T12:00:00",
- "services": [
- {
- "id": 123,
- "name": "Some service",
- "note": "Some note",
- "duration": 44,
- "capacity": 1,
- "referralLetter": true,
- "hiddenInOnlineForm": true
}
], - "intervals": [
- {
- "id": 123,
- "name": "Some interval",
- "weekDays": [
- 1,
- 2,
- 3
], - "timeFrom": "18:00",
- "timeTo": "18:00",
- "allowedServices": [
- 2,
- 53,
- 5
]
}
]
}
{- "result": {
- "success": true,
- "data": {
- "calendarId": 3423
}
}
}
Creates calendar from requested data.
calendarId required | number Example: 3254 Bookio calendar ID. |
JSON body
facilityId required | number <int64> Unique identifier |
name required | string |
note required | string |
validFrom required | string <date> Date (RFC 3339 full-date format) |
validTo required | string <date> Date (RFC 3339 full-date format) |
services required | Array of objects |
intervals required | Array of objects |
Successful operation
Bad request
Production server.
{- "facilityId": 123,
- "name": "Hello there",
- "note": "Hello there",
- "validFrom": "2018-06-29T12:00:00",
- "validTo": "2018-06-29T12:00:00",
- "services": [
- {
- "id": 123,
- "name": "Some service",
- "note": "Some note",
- "duration": 44,
- "capacity": 1,
- "referralLetter": true,
- "hiddenInOnlineForm": true
}
], - "intervals": [
- {
- "id": 123,
- "name": "Some interval",
- "weekDays": [
- 1,
- 2,
- 3
], - "timeFrom": "18:00",
- "timeTo": "18:00",
- "allowedServices": [
- 2,
- 53,
- 5
]
}
]
}
{- "result": {
- "success": true,
- "data": {
- "calendarId": 3423
}
}
}
Ends specified calendar at specified date.
calendarId required | number Example: 3254 Bookio calendar ID. |
JSON body
facilityId | number <int64> Unique identifier |
validTo | string <date> Date (RFC 3339 full-date format) |
Successful operation
Bad request
Production server.
{- "facilityId": 123,
- "validTo": "2018-06-29T12:00:00"
}
{- "result": {
- "success": true,
- "data": {
- "calendarId": 3423
}
}
}
Returns a list of reservations by filter.
string Example: email=test@bookio.com Email of the reservee. | |
number | string Example: number=a47b89 Bookio reservation number. |
status | string Enum: "CONFIRMED" "CANCELLED" "DID_NOT_COME" Example: status=CANCELLED Reservation status. |
offset | integer >= 0 Default: 0 Example: offset=50 Determines the offset within pagination. |
limit | integer [ 0 .. 100 ] Default: 100 Example: limit=50 Limits the result set. |
facilityId | number <int64> Example: facilityId=123 ID of the specified facility. |
from | string <date> Example: from=2018-06-29 Look for reservation beginning this date. |
to | string <date> Example: to=2018-06-29 Look for reservation ending this date. |
onlyUnsynced | boolean Example: onlyUnsynced=true Show only unsynced reservations in the final result. |
lastSync | number Example: lastSync=1671109423478 The last timestamp with milliseconds when you synced your data. |
Successful operation
Bad request
Production server.
{- "result": {
- "success": true,
- "errors": [
- "string"
], - "data": {
- "pagination": {
- "total": 1234,
- "offset": 100,
- "limit": 100
}, - "reservations": [
- {
- "id": 123,
- "externalId": 123,
- "number": "a2se8w",
- "name": "John Audrey",
- "email": "alias@example.com",
- "phone": "+421944888777",
- "service": 123,
- "duration": 2,
- "created": "2018-06-29T12:00:00",
- "dateFrom": "2018-06-29T12:00:00",
- "dateTo": "2018-06-29T12:00:00",
- "cancelTime": "2018-06-29T12:00:00",
- "cancellationReason": "string",
- "needsSync": true,
- "facilityId": 123,
- "note": "string",
- "status": "CONFIRMED"
}
]
}
}
}
Creates reservation from requested data.
JSON body
name required | string Customer's name |
surname required | string Customer's name |
email required | string Customer's email |
phone required | string Customer's phone |
dateFrom required | string <date> Date (RFC 3339 full-date format) |
locale required | string <locale> Locale (ISO 639-1 languages) |
externalId required | number <int64> Unique identifier |
serviceId required | number <int64> Unique identifier |
note | string Reservation note |
facilityId required | number <int64> Unique identifier |
Successful operation
Bad request
Production server.
{- "name": "John",
- "surname": "John",
- "email": "john@yahoo.com",
- "phone": "+421948762315",
- "dateFrom": "2018-06-29T12:00:00",
- "locale": "sk",
- "externalId": 123,
- "serviceId": 123,
- "note": "Something to notify about.",
- "facilityId": 123
}
{- "result": {
- "success": true,
- "data": {
- "reservationId": 3423,
- "externalId": 21452
}
}
}
Change status of reservation
reservationId required | number Example: 3254 Bookio reservation ID. |
JSON body
status | string Enum: "CONFIRMED" "CANCELLED" "DID_NOT_COME" Status of the reservation |
cancellationReason | string Reason of cancellation which is propagated to cancellation email |
Successful operation
Bad request
Production server.
{- "status": "CANCELLED",
- "cancellationReason": "Cant make it."
}
{- "result": {
- "success": true,
- "data": {
- "reservationId": 3423,
- "externalId": 21452
}
}
}
Change term of reservation
reservationId required | number Example: 3254 Bookio reservation ID. |
JSON body
dateFrom | string <date> Date (RFC 3339 full-date format) |
dateTo | string <date> Nullable Date (RFC 3339 full-date format) |
Successful operation
Bad request
Production server.
{- "dateFrom": "2018-06-29T12:00:00",
- "dateTo": "2018-06-29T12:00:00"
}
{- "result": {
- "success": true,
- "data": {
- "reservationId": 3423,
- "externalId": 21452
}
}
}
Confirms sync of reservation
reservationId required | number Example: 3254 Bookio reservation ID. |
JSON body
externalId | number <int64> Unique identifier |
Successful operation
Bad request
Production server.
{- "externalId": 123
}
{- "result": {
- "success": true,
- "data": {
- "reservationId": 3423,
- "externalId": 21452
}
}
}
Returns a list of reservations by filter.
dateFrom | string <date> Example: dateFrom=2018-06-29 Date from. |
dateTo | string <date> Example: dateTo=2018-06-29 Date to. |
offset | integer >= 0 Default: 0 Example: offset=50 Determines the offset within pagination. |
limit | integer [ 0 .. 100 ] Default: 100 Example: limit=50 Limits the result set. |
facilityId | number <int64> Example: facilityId=123 ID of the specified facility. |
lastSync | number Example: lastSync=1671109423478 The last timestamp with milliseconds when you synced your data. |
Successful operation
Bad request
Production server.
{- "result": {
- "success": true,
- "errors": [
- "string"
], - "data": {
- "pagination": {
- "total": 1234,
- "offset": 100,
- "limit": 100
}, - "blockedTimes": [
- {
- "id": 123,
- "externalId": 123,
- "dateFrom": "2018-06-29T12:00:00",
- "dateTo": "2018-06-29T12:00:00",
- "note": "string"
}
]
}
}
}
Creates blocked time from requested data.
JSON body
dateFrom required | string <date> Date (RFC 3339 full-date format) |
dateTo required | string <date> Date (RFC 3339 full-date format) |
externalId required | number <int64> Unique identifier |
note required | string Blocked time note |
facilityId required | number <int64> Unique identifier |
Successful operation
Bad request
Production server.
{- "dateFrom": "2018-06-29T12:00:00",
- "dateTo": "2018-06-29T12:00:00",
- "externalId": 123,
- "note": "A note.",
- "facilityId": 123
}
{- "result": {
- "success": true,
- "data": {
- "blockedTimeId": 3423,
- "externalId": 21452
}
}
}
Change term of blocked time
blockedTimeId required | number Example: 3254 Bookio blocked time ID. |
JSON body
dateFrom | string <date> Date (RFC 3339 full-date format) |
dateTo | string <date> Date (RFC 3339 full-date format) |
Successful operation
Bad request
Production server.
{- "dateFrom": "2018-06-29T12:00:00",
- "dateTo": "2018-06-29T12:00:00"
}
{- "result": {
- "success": true,
- "data": {
- "reservationId": 3423
}
}
}
Remove blocked time
blockedTimeId required | number Example: 3254 Bookio blocked time ID. |
Successful operation
Bad request
Production server.
{- "result": {
- "success": true,
- "data": {
- "blockedTimeId": 3423
}
}
}