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 reservations by filter.
string Example: email=test@bookio.com Email of the reservee. | |
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. |
Successful operation
Bad request
Production server.
Staging server.
{- "result": {
- "success": true,
- "errors": [
- "string"
], - "data": {
- "pagination": {
- "total": 1234,
- "offset": 100,
- "limit": 100
}, - "reservations": [
- {
- "id": 123,
- "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",
- "facilityId": 123,
- "note": "string",
- "status": "CONFIRMED"
}
]
}
}
}
Returns a list of reservations by filter.
string Example: email=test@bookio.com Email of the reservee. | |
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. |
Successful operation
Bad request
Production server.
Staging server.
{- "result": {
- "success": true,
- "errors": [
- "string"
], - "data": {
- "pagination": {
- "total": 1234,
- "offset": 100,
- "limit": 100
}, - "reservations": [
- {
- "id": 123,
- "name": "John Audrey",
- "email": "alias@example.com",
- "phone": "+421944888777",
- "course": 123,
- "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",
- "facilityId": 123,
- "note": "string",
- "status": "CONFIRMED"
}
]
}
}
}
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. |
Successful operation
Bad request
Production server.
Staging server.
{- "result": {
- "success": true,
- "errors": [
- "string"
], - "data": {
- "pagination": {
- "total": 1234,
- "offset": 100,
- "limit": 100
}, - "blockedTimes": [
- {
- "id": 123,
- "groupId": 123,
- "dateFrom": "2018-06-29T12:00:00",
- "dateTo": "2018-06-29T12:00:00",
- "note": "string"
}
]
}
}
}
Returns active facility ids.
Successful operation
Bad request
Production server.
Staging server.
{- "result": {
- "success": true,
- "errors": [
- "string"
], - "data": {
- "count": 150,
- "facilities": [
- 0
]
}
}
}
Returns information about facility.
Successful operation
Bad request
Production server.
Staging server.
{- "result": {
- "success": true,
- "errors": [
- "string"
], - "data": {
- "id": 123,
- "name": "Test facility",
- "code": "test-facility",
- "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",
}, - "billingDetails": {
- "name": "Peter",
- "surname": "Parker",
- "company": "Bookio",
- "address": {
- "street": "Second street",
- "city": "Bratislava",
- "postcode": 82104,
- "country": {
- "name": "Slovakia",
- "code": "SVK"
}, - "gps": {
- "latitude": 48.152115,
- "longitude": 17.108769
}
}, - "regNumber": 48798213,
- "vatNumber": 2014393920,
- "phone": "+421949888777",
- "email": "test@bookio.com",
- "iban": "SK33 0200 0000 0004 9999 9999"
}, - "openingHours": [
- {
- "from": "09:00",
- "to": 1080,
- "weekday": 4
}
], - "giftCards": [
- {
- "name": "Poukazka",
- "note": "Some text",
- "price": 40,
- "currency": "EUR",
- "type": "CASH",
- "reservationCount": 1,
- "image": "imageUrl"
}
]
}
}
}
Returns workers of specified facility.
Successful operation
Bad request
Production server.
Staging server.
{- "result": {
- "success": true,
- "errors": [
- "string"
], - "data": {
- "workers": [
- {
- "id": 123,
- "name": "Peter",
- "surname": "Parker",
- "phone": "+421949666777"
}
]
}
}
}
Returns services of specified facility.
Successful operation
Bad request
Production server.
Staging server.
{- "result": {
- "success": true,
- "errors": [
- "string"
], - "data": {
- "services": [
- {
- "id": 123,
- "name": "Peter",
- "note": "Parker",
- "category": {
- "id": 123,
- "name": "test category"
}, - "duration": 70,
- "timeBefore": 10,
- "timeAfter": 0,
- "price": 30
}
]
}
}
}
Webhook is setup to point to one API url. Operations are distinguished by type
field. We are using only POST http request.
Based on the `type` field the structure of the Json will change.
Webhook is always sending an array of json objects. You can get more than 1 change at the same time. All these changes contains type
field. They are sent
chronologically in the array as they go.
All webhooks have maximum of 5 attempts (timeout, your api is down, etc ...).
Further you can find basic structure of the webhook and afterwards only the objects which will be sent within the basic webhook array.