openapi: 3.0.3
info:
title: Docplanner Integrations API
description: |
Welcome to Docplanner Integrations [REST](https://en.wikipedia.org/wiki/Representational_state_transfer) API!
This API gives You the ability to build Your own application and integrate it with Docplanner services.
version: 1.14.0
x-logo:
url: https://docplanner.tech/logo.svg
backgroundColor: '#012c6d'
altText: Docplanner Tech
x-changelog:
1.14.0: |
* Introducing new optional **apply_on_coupled_addresses** field in **AddCalendarBreakRequest** for creating the same break on the doctor's coupled addresses in the facility
* **moveCalendarBreak** and **deleteCalendarBreak** now move and remove those coupled breaks together with the break they follow
1.13.0: |
* **moveBooking** may now move a booking to an **address_id** belonging to a different doctor within the same facility, reassigning the booking to that doctor. An address outside the facility named in the path is still rejected with **403**
* **moveBooking** returns **422 Unprocessable Entity** when the booking still holds money and the target address is billed through a different payment account. Cancel the booking and create a new one instead. A payment that was fully refunded or charged back holds no money, so it does not restrict the move
1.12.0: |
* Documenting **price** in **AddAddressServiceRequest** and **UpdateAddressServiceRequest** as a number with up to 2 decimal places; invalid price formats now return a **400 Bad Request** error
1.11.0: |
* Introducing new **removeAddressIntegration** endpoint for DocplannerPMS API clients
1.10.0: |
* Introducing new optional **custom_name** field in **AddAddressServiceRequest** and **UpdateAddressServiceRequest** for creating and updating address services with custom display names
1.9.3: |
* Adding maximum date range validation of 180 days to **getSlots** endpoint. Requests exceeding this range will return a **400 Bad Request** error
1.9.2: |
* Introducing new optional **specialization_id** query parameter in **getServices** endpoint
1.9.1: |
* Making **price** and **description** fields in **UpdateAddressServiceRequest** nullable as they are not required
1.9.0: |
* Introducing new **confirmBooking** endpoint
1.8.1: |
* Introducing new **insurance_number** field in **Patient** schema for booking related notifications and endpoints
1.8.0: |
* Introducing new **address_service.public_insurance_flow** scope for **getBookings** endpoint
* Introducing new **address_service.public_insurance_flow** scope for **getBooking** endpoint
* Introducing new **address_service.public_insurance_flow** scope for **getAddressServices** endpoint
* Introducing new **address_service.public_insurance_flow** scope for **getAddressService** endpoint
1.7.1: |
* Introducing new optional **insurance_plans** field in **addAddressInsuranceProvider** endpoint
1.6.1: |
* Introducing new **address_service.custom_name** scope for **getAddressService** and **getAddressServices** endpoints.
1.5.0: |
* Introducing new optional **allowed_patients** field with **minimum_age** and **maximum_age** properties in **AddAddressServiceRequest**, **UpdateAddressServiceRequest**, and **AddressService** schema for age restrictions
1.4.8: |
* Improved error message clarity for calendar breaks endpoints.
1.4.7: |
* Fixed **addAddressService** and **addCalendarBreak** response not having body
1.4.6: |
* Documentation: Added IP whitelisting endpoints information for partners receiving webhooks
1.4.5: "* Marking **name**, **city_name** and **street** fields in **Address** schema as nullable \n"
1.4.4: |
* Fixed **license_number** field name in **DoctorsWithLicenseNumbers** example for **getDoctors** endpoint
1.4.3: |
* Add **city_name** field information for **Addresses** endpoints.
1.4.2: |
* Fixed issue with **getBooking** endpoint in PHP SDK
1.4.1: |
* Introducing new **booking.confirmation** scope for **getBookings** endpoint
1.4.0: |
* Introducing new **booking.moving** scope for **getBooking** endpoint
1.3.3: |
* Fixing **insurance** schema in booking callback notifications
1.3.2: |
* Introducing new optional **is_recurring** field in **bookSlot** endpoint
1.3.1: |
* Making **price** in **AddAddressServiceRequest** field nullable as it's not required
1.3.0: |
* Introducing new optional **insurance_provider_id** and **insurance_plan_id** fields in **bookSlot** endpoint
1.2.0: |
* Introducing new optional is_visible field in updateAddressService endpoint
1.0.40: |
* Marking **address_service** and **insurance** fields in **getBooking** endpoint response as nullable * Marking **address_service** field in **getSlots** endpoint response as nullable * Marking **address_service** and **insurance** fields in booking related callback notifications as nullable
1.0.39: |
* Deprecated **videocall_url** field in **getBookings** endpoint
1.0.38: |
* Deprecated **send_notifications** field in **BookSlot** and **CancelBookingRequest**
1.0.37: |
* Adding 422 response status code in **bookSlot** endpoint
1.0.36: |
* Adding **booking-payment-status-changed** callback
1.0.35: |
* Introducing new optional **comment** field on **bookSlot** endpoint
1.0.34: |
* PHP SDK without dependencies on GuzzleHttp building query method.
1.0.33: |
* Fixed **Error** schema
1.0.32: |
* Added **address-assigned** and **address-unassigned** callbacks
1.0.31: |
* Added optional pagination to **getBookings** endpoint
1.0.30: |
* Changed **errors* field type in the **Error** schema
1.0.29: |
* Adding **address-commercial-type-changed** callback
1.0.28: |
* Introducing new optional **marketing_consent** and **data_privacy_consent** fields on **bookSlot** endpoint
1.0.27: |
* Introducing new optional **label** field on **bookSlot** endpoint
1.0.26: |
* Introducing **address.insurance_support** scope for **getAddress** and **getAddresses** endpoints * Introducing **updateAddress** endpoint for changing insurance support type of an address
1.0.25: |
* Introducing **getCalendar** endpoint for getting calendar status
1.0.24: |
* Introducing **address.commercial_type** scope for **getAddress**, **getAddresses** and **getDoctor** endpoints
1.0.23: |
* Added "address-service-created", "address-service-deleted", "address-service-changed" callbacks
1.0.22: |
* Introducing **doctor.profile_url** scope for **getDoctor** and **getDoctors** endpoints
1.0.21: |
* Added missing **insuranceProviderId** property to **getInsurancePlans** operation * Renamed **insurance_provider** parameter to **insurance_provider_id** in **deleteAddressInsuranceProvider** operation * Renamed **OAuth 2.0** security scheme to **oauth2** * Fixed minor syntax error * Renamed invalid **docplanner.it** domain to **miodottore.it** in the description
1.0.20: |
* New (optional) property **default_duration** for **AddAddressServiceRequest** and **UpdateAddressServiceRequest**
1.0.19: |
* Added "booking-confirmed" callback
1.0.18: |
* Added support for insurance plans
1.0.17.1: |
* Added missing is_visible property to **AddAddressServiceRequest** example payload
1.0.17: |
* Introduced **Pull Multiple Notifications** endpoint
1.0.16: |
* New (optional) property **is_visible** for **AddAddressServiceRequest**
1.0.15: |
* New (optional) property **reason** for **CancelBookingRequest** (it is now possible to set a reason why booking was canceled)
1.0.14.1: |
* Added missing is_visible property to responses and examples
1.0.14: |
* Added support for custom services and is_visible property of AddressService
1.0.13: |
* Creating calendar in **addCalendarBreak** when it's missing.
1.0.12: |
* Returning whole Booking on moveBooking action.
1.0.11: |
* Added **insurance_accepted** and **insurance_providers** fields to **ReplaceSlotsRequest** (support for insurances configuration)
1.0.10: |
* Introducing **doctor.license_numbers** scope for **getDoctor** and **getDoctors** endpoints
1.0.9: |
* Added Calendars API * Added methods to enable and disable calendar on the address
1.0.8: |
* New (optional) property **send_notifications** for **CancelBookingRequest** (it is now possible to set if the patient should get notifications on canceling the visit)
1.0.7: |
* Buried notifications can be released: added **releaseNotifications** method
1.0.6: |
* Making **patient.surname** field optional in *BookSlotRequest*
1.0.5: |
* Removing **slot-changed** notification callback.
1.0.4: |
* New (optional) property **address_id** for **MoveBookingRequest** (it is now possible to move booking to another address) * Changed **address_service_id** and **start** properties of **MoveBookingRequest** so they are required (documentation was missing it, they were already required in the API)
1.0.3: |
* New (optional) property **description** for **AddCalendarBreakRequest** * New property **description** for **CalendarBreak**
1.0.2: |
* Calendar breaks can be moved: adding **moveCalendarBreak** method for **CalendarBreaksApi** * New notification callback **break-moved**
1.0.1: |
* Notification callbacks * IDs are now strings instead of integers
servers:
- url: https://www.{domain}/api/v3/integration
description: \{domain} - locale of docplanner marketplace ex. znanylekarz.pl
security:
- oauth2:
- integration
tags:
- name: Fundamentals
description: |
Be sure to check out our [General Guide](https://integrations.docplanner.com/guide/) for more descriptive definitions, example use cases, and the overall logic of this API.
## Domain
Every API resource can be accessed via a URL of the structure given below:
https://www.{domain}/api/v3/integration/{resource}
`NOTE! Every request has to be made using HTTPS connection!`
Every request is based on a locale in which you want your integration in. The list of supported locales can be found below:
| Country |
Locale |
{domain} |
| Argentina |
ar |
doctoraliar.com |
| Brazil |
br |
doctoralia.com.br |
| Chile |
cl |
doctoralia.cl |
| Colombia |
co |
doctoralia.co |
| Czech Republic |
cz |
znamylekar.cz |
| Spain |
es |
doctoralia.es |
| Italy |
it |
miodottore.it |
| Mexico |
mx |
doctoralia.mx |
| Peru |
pe |
doctoralia.pe |
| Portugal |
pt |
doctoralia.com.pt |
| Turkey |
tr |
doktortakvimi.com |
| Poland |
pl |
znanylekarz.pl |
| Germany |
de |
jameda.de |
## IP Whitelisting
When integrating with Docplanner, we may initiate outbound connections to your systems for webhooks and API callbacks. To ensure reliable delivery, you must whitelist our IP addresses.
Our IP addresses are dynamic and may change over time. Fetch the updated list periodically (daily recommended) from one of these endpoints:
- JSON format: `https://www.{domain}/public/docs/public-ips.json`
- Plain text format: `https://www.{domain}/public/docs/public-ips.txt`
**Example JSON response:**
{
"API": [
"10.0.xxx.xx",
"10.10.xxx.xx",
"172.20.xxx.xxx",
"172.31.xxx.xxx",
]
}
**Example TXT response:**
10.0.xxx.xx
10.10.xxx.xx
172.20.xxx.xxx
172.31.xxx.xxx
## Http verbs
We use [RESTful](https://en.wikipedia.org/wiki/Representational_state_transfer) architecture therefore every [HTTP method](https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods) has a special meaning:
| Verb |
Description |
| GET |
Retrieve resources |
| POST |
Creates resources or execute custom actions |
| PUT |
Replace resources |
| PATCH |
Partial update of resources |
| DELETE |
Delete resources |
## Expanding
When you need to load additional data or data related to the resource being requested, rather than making repeated calls, we allow related data to be returned and loaded alongside the original resource.
One or more resources can be included by using our standard *`with`* parameter. The *`with`* query parameter will take a list of one or more resources related to the primary resource and return those resources as well.
Consult an endpoint’s parameter description in order to verify which related resources are supported.
## Body
We use architecture called [HATEOAS](https://en.wikipedia.org/wiki/HATEOAS) to represent all data presented in the API.
HATEOAS defines how entity data is constructed and how relations are linked or embedded into the response.
We follow a few simple rules:
- every key in the response is lowercase with optional underscores
- every response can have `_links` section defining links to related entities or actions
- every response can have `_embedded` section including related entities
- all relational links are relative
## Date and time
Every date and time has to be in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format presented below:
```
// format
--T::+
// date
2020 December 01, 00:00 CET +1
// ISO8601
2020-12-01T00:00:00+01:00
// ISO8601 encoded in request
2020-12-01T00%3A00%3A00%2B01%3A00
```
All request must have a desired timezone. We internally convert the timezone from a request to the timezone based on the locale the request is sent to.
## Pagination
Paginated representations contain a few additional fields alongside fields belonging to returned data
| Field |
Description |
| page |
Current page of results |
| limit |
Number of items in current page |
| pages |
Total number of pages |
| total |
Total number of items |
Also, a few relations are defined in the `_links` section:
| Relation |
Description |
| self |
Link to the current page of results |
| first |
Link to the first page of results |
| last |
Link to the last page of results |
| next |
Link to the next page of results |
| previous |
Link to the previous page of results |
Here is a example of how a paginated response looks like:
```
{
"results": [
{
"id": 1
},
{
"id": 2
},
{
"id": 3
}
],
"page": 1,
"limit": 3,
"pages": 1000,
"total": 3000,
"_links": {
"self": {
"href": "\/some-endpoint?&page=1&limit=3"
},
"first": {
"href": "\/some-endpoint?&page=1&limit=3"
},
"last": {
"href": "\/some-endpoint?&page=13310&limit=3"
},
"next": {
"href": "\/some-endpoint?&page=2&limit=3"
}
}
}
```
## Errors
API uses conventional [HTTP response codes](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes) to indicate the success or failure of an API request.
| HTTP status code |
Description |
| 200 - OK |
Everything worked as expected |
| 400 - Bad Request |
Validation error message |
| 403 - Forbidden |
You don't have the access rights to perform this action |
| 404 - Not Found |
We couldn't find the resource you were asking for |
| 409 - Conflict |
This response is sent when a request conflicts with the current state of the server |
| 429 - Too many requests |
You have sent too many requests in a given amount of time |
| 5XX - Server error |
An error occurred on our servers |
Pro tip: Inside the error message you will have a more descriptive error message
## Rate Limiting
To prevent DOS/DDOS attacks or API abuse, we have introduced rate limiting.
**GET** action limit is `8000 requests per hour`.
**PUT**/**POST**/**PATCH**/**DELETE** actions are limited to `40 requests per minute` (max 2400 requests per hour).
We can adjust limits on per-client basis, so if you are consistently running into the current limits, please let us know.
If your limits reaches zero, subsequent requests will receive the `429 Too Many Requests` response code until the request reset time has been reached.
## Rate Limiting Headers
We inform You of the state of rate limiter using HTTP headers.
| RateLimit Header |
Description |
| X-RateLimit-Limit |
Request limit for the current time span |
| X-RateLimit-Reset |
Rate limiter reset date in in ISO8601 format |
| X-RateLimit-Used |
Number of requests made in current time span |
| X-RateLimit-Remaining |
Number of requests remaining in current time span |
`NOTE! No rate limiter specific headers in response means that the rate limiter is disabled`
x-traitTag: true
- name: Facilities
description: More information on how we define what a Facility is, its use cases and more can be found [here](https://integrations.docplanner.com/guide/api-objects/resources.html#facilities).
- name: Doctors
description: More information on how we define what a Doctors is, its use cases and more can be found [here](https://integrations.docplanner.com/guide/api-objects/resources.html#doctors).
- name: Addresses
description: More information on how we define what a Addresses is, its use cases and more can be found [here](https://integrations.docplanner.com/guide/api-objects/resources.html#addresses).
- name: Services
description: More information on how we define what a Services is, its use cases and more can be found [here](https://integrations.docplanner.com/guide/api-objects/resources.html#services).
- name: Insurances
description: More information on how we define what a Insurances is, its use cases and more can be found [here](https://integrations.docplanner.com/guide/api-objects/resources.html#insurances).
- name: Calendars
description: Simple operations on the calendar belonging to the address
- name: Calendar Breaks
description: More information on how we define what a Calendar Breaks is, its use cases and more can be found [here](https://integrations.docplanner.com/guide/api-objects/resources.html#calendar-breaks).
- name: Slots
description: More information on how we define what a Slots is, its use cases and more can be found [here](https://integrations.docplanner.com/guide/api-objects/resources.html#slots).
- name: Bookings
description: |
More information on how we define what a Bookings is, its use cases and more can be found [here](https://integrations.docplanner.com/guide/api-objects/resources.html#bookings).
## addBooking
In order to add a new booking use **POST** `bookSlot` endpoint from `Slots` section.
- name: Patient Presence
description: More information on how we define what a Patient Presence is, its use cases and more can be found [here](https://integrations.docplanner.com/guide/api-objects/patient-presence.html).
- name: API Notification Callbacks
description: More information on how we define what a API Notification Callbacks is, its use cases and more can be found [here](https://integrations.docplanner.com/guide/callbacks/push-vs-pull.html).
paths:
/facilities:
get:
operationId: getFacilities
description: Get a list of facilities
tags:
- Facilities
responses:
'200':
description: List of facilities
content:
application/vnd.docplanner+json; charset=UTF-8:
schema:
$ref: '#/components/schemas/Facilities'
examples:
Facilities:
$ref: '#/components/examples/Facilities'
/facilities/{facility_id}:
parameters:
- $ref: '#/components/parameters/facilityId'
get:
operationId: getFacility
description: |
Get a single facility
Extensions:
* `facility.doctors` - with this parameter in url, query results will return a list of all the doctors in a given facility
tags:
- Facilities
parameters:
- $ref: '#/components/parameters/facilityWith'
responses:
'200':
description: Facility data
content:
application/vnd.docplanner+json; charset=UTF-8:
schema:
$ref: '#/components/schemas/Facility'
examples:
Facility:
$ref: '#/components/examples/Facility'
Facility with facility.doctors:
$ref: '#/components/examples/FacilityWithDoctors'
'403':
description: You are not authorized to see this resource
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Facility:
$ref: '#/components/examples/FacilityNotAuthorized'
'404':
description: Resource not found
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Object not found:
$ref: '#/components/examples/ObjectNotFound'
/facilities/{facility_id}/doctors:
parameters:
- $ref: '#/components/parameters/facilityId'
get:
operationId: getDoctors
description: |
Get a list of doctors in a facility
Extensions:
* `doctor.profile_url` - with this parameter in url, query results will contain urls to doctors profiles
* `doctor.specializations` - with this parameter in url, query results will contain specialization of doctors
* `doctor.license_numbers` - with this parameter in url, query results will contain license numbers of doctors
tags:
- Doctors
parameters:
- $ref: '#/components/parameters/doctorsWith'
responses:
'200':
description: List of doctors
content:
application/vnd.docplanner+json; charset=UTF-8:
schema:
$ref: '#/components/schemas/Doctors'
examples:
Doctors:
$ref: '#/components/examples/Doctors'
Doctors with doctor.profile_url:
$ref: '#/components/examples/DoctorsWithProfileUrl'
Doctors with doctor.specializations:
$ref: '#/components/examples/DoctorsWithSpecializations'
Doctors with doctor.license_numbers:
$ref: '#/components/examples/DoctorsWithLicenseNumbers'
'403':
description: You are not authorized to see this resource
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Facility:
$ref: '#/components/examples/FacilityNotAuthorized'
'404':
description: Resource not found
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Object not found:
$ref: '#/components/examples/ObjectNotFound'
/facilities/{facility_id}/doctors/{doctor_id}:
parameters:
- $ref: '#/components/parameters/facilityId'
- $ref: '#/components/parameters/doctorId'
get:
operationId: getDoctor
description: |2
Get a single doctor in a facility
Extensions:
* `doctor.profile_url` - with this parameter in url, query results will contain urls to doctors profiles
* `doctor.addresses` - with this parameter in url, query results will return a list of all the doctor addresses in a given facility
* `doctor.license_numbers` - with this parameter in url, query results will contain license numbers of doctors
* `address.booking_extra_fields` - with this parameter in url, query results will return required parameters requested from patient in the booking flow
* `address.online_only` - with this parameter in url, query results will return additional parameter indicating if an address is dedicated to video consultations
* `address.visit_payment` - with this parameter in url, query results will return additional parameter indicating when visit payments are enabled
* `address.commercial_type` - with this parameter in url, query results will return additional parameter indicating address commercial type
tags:
- Doctors
parameters:
- $ref: '#/components/parameters/doctorWith'
responses:
'200':
description: Doctor data
content:
application/vnd.docplanner+json; charset=UTF-8:
schema:
$ref: '#/components/schemas/Doctor'
examples:
Doctor:
$ref: '#/components/examples/Doctor'
Doctor with doctor.profile_url:
$ref: '#/components/examples/DoctorWithProfileUrl'
Doctor with doctor.license_numbers:
$ref: '#/components/examples/DoctorWithLicenseNumbers'
Doctor with doctor.addresses:
$ref: '#/components/examples/DoctorWithAddresses'
Doctor with doctor.addresses and address.online_only:
$ref: '#/components/examples/DoctorWithOnlineOnlyAddresses'
Doctor with doctor.addresses and address.visit_payment:
$ref: '#/components/examples/DoctorWithVisitPaymentAddresses'
Doctor with doctor.addresses and address.booking_extra_fields:
$ref: '#/components/examples/DoctorWithAddressBookingExtraFields'
Doctor with doctor.addresses and address.commercial_type:
$ref: '#/components/examples/DoctorWithAddressCommercialType'
'403':
description: You are not authorized to see this resource
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Facility:
$ref: '#/components/examples/FacilityNotAuthorized'
Doctor:
$ref: '#/components/examples/DoctorNotAuthorized'
'404':
description: Resource not found
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Object not found:
$ref: '#/components/examples/ObjectNotFound'
/facilities/{facility_id}/doctors/{doctor_id}/addresses:
parameters:
- $ref: '#/components/parameters/facilityId'
- $ref: '#/components/parameters/doctorId'
get:
operationId: getAddresses
description: |
Get a list of addresses of a doctor
Extensions:
* `address.online_only` - with this parameter in url, query results will return additional parameter indicating if returned addresses are dedicated to video consultations
* `address.visit_payment` - with this parameter in url, query results will return additional parameter indicating if visit payments are enabled
* `address.commercial_type` - with this parameter in url, query results will return additional parameter indicating address commercial type
* `address.insurance_support` - with this parameter in url, query results will return additional parameter indicating insurance support type of an address
tags:
- Addresses
parameters:
- $ref: '#/components/parameters/addressesWith'
responses:
'200':
description: List of addresses
content:
application/vnd.docplanner+json; charset=UTF-8:
schema:
$ref: '#/components/schemas/Addresses'
examples:
Addresses:
$ref: '#/components/examples/Addresses'
Addresses with address.online_only:
$ref: '#/components/examples/AddressesWithOnlineOnly'
Addresses with address.visit_payment:
$ref: '#/components/examples/AddressesWithVisitPayment'
Addresses with address.commercial_type:
$ref: '#/components/examples/AddressesWithCommercialType'
Addresses with address.insurance_support:
$ref: '#/components/examples/AddressesWithInsuranceSupport'
'403':
description: You are not authorized to see this resource
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Facility:
$ref: '#/components/examples/FacilityNotAuthorized'
Doctor:
$ref: '#/components/examples/DoctorNotAuthorized'
'404':
description: Resource not found
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Object not found:
$ref: '#/components/examples/ObjectNotFound'
/facilities/{facility_id}/doctors/{doctor_id}/addresses/{address_id}:
parameters:
- $ref: '#/components/parameters/facilityId'
- $ref: '#/components/parameters/doctorId'
- $ref: '#/components/parameters/addressId'
get:
operationId: getAddress
description: |
Get a single address of a doctor
Extensions:
* `address.online_only` - with this parameter in url, query results will return additional parameter indicating if an address is dedicated to video consultations
* `address.visit_payment` - with this parameter in url, query results will return additional parameter indicating if visit payment isr enabled
* `address.commercial_type` - with this parameter in url, query results will return additional parameter indicating address commercial type
* `address.insurance_support` - with this parameter in url, query results will return additional parameter indicating insurance support type of an address
tags:
- Addresses
parameters:
- $ref: '#/components/parameters/addressesWith'
responses:
'200':
description: Address data
content:
application/vnd.docplanner+json; charset=UTF-8:
schema:
$ref: '#/components/schemas/Address'
examples:
Address:
$ref: '#/components/examples/Address'
Address with address.online_only:
$ref: '#/components/examples/AddressWithOnlineOnly'
Address with address.visit_payment:
$ref: '#/components/examples/AddressWithVisitPayment'
Address with address.commercial_type:
$ref: '#/components/examples/AddressWithCommercialType'
Address with address.insurance_support:
$ref: '#/components/examples/AddressWithInsuranceSupport'
'403':
description: You are not authorized to see this resource
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Facility:
$ref: '#/components/examples/FacilityNotAuthorized'
Doctor:
$ref: '#/components/examples/DoctorNotAuthorized'
Address:
$ref: '#/components/examples/AddressNotAuthorized'
'404':
description: Resource not found
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Object not found:
$ref: '#/components/examples/ObjectNotFound'
patch:
operationId: updateAddress
description: |
Get a single address of a doctor
tags:
- Addresses
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateAddressRequest'
examples:
Update address:
$ref: '#/components/examples/UpdateAddress'
responses:
'200':
description: Address updated
content:
application/vnd.docplanner+json; charset=UTF-8:
schema:
$ref: '#/components/schemas/Address'
examples:
Address with insurance support:
$ref: '#/components/examples/AddressWithInsuranceSupport'
'400':
description: Validation of the submitted values wasn't successful
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Invalid request argument:
$ref: '#/components/examples/InvalidArgumentsError'
'403':
description: You are not authorized to see this resource
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Facility:
$ref: '#/components/examples/FacilityNotAuthorized'
Doctor:
$ref: '#/components/examples/DoctorNotAuthorized'
Address:
$ref: '#/components/examples/AddressNotAuthorized'
Address does not belong to facility:
$ref: '#/components/examples/AddressDoesNotBelongToFacility'
Address does not belong to doctor:
$ref: '#/components/examples/AddressDoesNotBelongToDoctor'
Calendar edition:
$ref: '#/components/examples/CalendarEditionNotAuthorized'
'404':
description: Resource not found
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Object not found:
$ref: '#/components/examples/ObjectNotFound'
/facilities/{facility_id}/doctors/{doctor_id}/addresses/{address_id}/integration:
parameters:
- $ref: '#/components/parameters/facilityId'
- $ref: '#/components/parameters/doctorId'
- $ref: '#/components/parameters/addressId'
delete:
operationId: removeAddressIntegration
description: "Remove the integration mark from a single address. \nAfter this call, Docplanner will no longer treat the address as integrated with the API client's system. The address itself is not deleted. \n**Endpoint is dedicated for DocplannerPMS API clients only.**\n"
tags:
- Addresses
responses:
'202':
description: Address integration removal accepted
'403':
description: You are not authorized to see this resource
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Feature not enabled:
$ref: '#/components/examples/FeatureNotAuthorized'
Facility:
$ref: '#/components/examples/FacilityNotAuthorized'
Doctor:
$ref: '#/components/examples/DoctorNotAuthorized'
Address:
$ref: '#/components/examples/AddressNotAuthorized'
Address does not belong to facility:
$ref: '#/components/examples/AddressDoesNotBelongToFacility'
Address does not belong to doctor:
$ref: '#/components/examples/AddressDoesNotBelongToDoctor'
'404':
description: Resource not found
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Object not found:
$ref: '#/components/examples/ObjectNotFound'
/services:
get:
operationId: getServices
description: |
Services returned in this endpoint are dictionary services.
Services returned here are from a dictionary (item_services).
Extensions:
* `services.only_diagnostics` - with this parameter in url, query results will return only dictionary of services dedicated to integration with diagnostics marketplace
tags:
- Services
parameters:
- $ref: '#/components/parameters/servicesWith'
- $ref: '#/components/parameters/servicesSpecializationId'
responses:
'200':
description: List of services
content:
application/vnd.docplanner+json; charset=UTF-8:
schema:
$ref: '#/components/schemas/Services'
examples:
Services:
$ref: '#/components/examples/Services'
/facilities/{facility_id}/doctors/{doctor_id}/addresses/{address_id}/services:
parameters:
- $ref: '#/components/parameters/facilityId'
- $ref: '#/components/parameters/doctorId'
- $ref: '#/components/parameters/addressId'
get:
operationId: getAddressServices
description: |
Services returned in this endpoint are address services.
Services returned here are from specified address (address_services).
Extensions:
* `address_service.allowed_patients` - with this parameter in url, query results will return additional parameter indicating which type of patients are allowed to book a given service
* `address_service.custom_name` - with this parameter in url, query results will return additional field with a custom name of an address service
* `address_service.public_insurance_flow` - with this parameter in url, query results will return information if public insurance flow is supported
tags:
- Services
parameters:
- $ref: '#/components/parameters/startForAddressServices'
- $ref: '#/components/parameters/addressServicesWith'
responses:
'200':
description: List of services
content:
application/vnd.docplanner+json; charset=UTF-8:
schema:
$ref: '#/components/schemas/AddressServices'
examples:
Services:
$ref: '#/components/examples/AddressServices'
Services with start date:
$ref: '#/components/examples/AddressServicesWithStartDate'
Services with allowed patients:
$ref: '#/components/examples/AddressServicesWithAllowedPatients'
Services with address_service.custom_name:
$ref: '#/components/examples/AddressServicesWithCustomName'
Services with address_service.public_insurance_flow:
$ref: '#/components/examples/AddressServicesWithPublicInsuranceFlow'
'403':
description: You are not authorized to see this resource
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Facility:
$ref: '#/components/examples/FacilityNotAuthorized'
Doctor:
$ref: '#/components/examples/DoctorNotAuthorized'
Address:
$ref: '#/components/examples/AddressNotAuthorized'
'404':
description: Resource not found
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Object not found:
$ref: '#/components/examples/ObjectNotFound'
post:
operationId: addAddressService
description: |
Adds new service to an address of the doctor
Services added here are specific to this address (address_services).
tags:
- Services
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AddAddressServiceRequest'
examples:
Add address service:
$ref: '#/components/examples/AddAddressService'
responses:
'201':
description: Service added to address
headers:
Location:
schema:
type: string
description: Resource URL for the address service
content:
application/vnd.docplanner+json; charset=UTF-8:
schema:
$ref: '#/components/schemas/AddressService'
examples:
Address service:
$ref: '#/components/examples/AddressService'
'400':
description: Validation of the submitted values wasn't successful
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Validation error:
$ref: '#/components/examples/AddressServiceValidationError'
'403':
description: You are not authorized to see this resource
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
facility:
$ref: '#/components/examples/FacilityNotAuthorized'
doctor:
$ref: '#/components/examples/DoctorNotAuthorized'
address:
$ref: '#/components/examples/AddressNotAuthorized'
'404':
description: Resource not found
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Object not found:
$ref: '#/components/examples/ObjectNotFound'
'409':
description: Request would result in creating conflicted or duplicated resources
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Address service:
$ref: '#/components/examples/AddressServiceAlreadyExists'
/facilities/{facility_id}/doctors/{doctor_id}/addresses/{address_id}/services/{address_service_id}:
parameters:
- $ref: '#/components/parameters/facilityId'
- $ref: '#/components/parameters/doctorId'
- $ref: '#/components/parameters/addressId'
- $ref: '#/components/parameters/addressServiceId'
get:
operationId: getAddressService
description: |
Service returned in this endpoint is an address service.
Service returned here is from a specified address (address_services).
Extensions:
* `address_service.allowed_patients` - with this parameter in url, query results will return additional parameter indicating which type of patients are allowed to book a given service
* `address_service.custom_name` - with this parameter in url, query results will return additional field with a custom name of an address service
* `address_service.public_insurance_flow` - with this parameter in url, query results will return information if public insurance flow is supported
tags:
- Services
parameters:
- $ref: '#/components/parameters/addressServiceWith'
responses:
'200':
description: Address service
content:
application/vnd.docplanner+json; charset=UTF-8:
schema:
$ref: '#/components/schemas/AddressService'
examples:
Address service:
$ref: '#/components/examples/AddressService'
Address service with allowed patients:
$ref: '#/components/examples/AddressServiceWithAllowedPatients'
Address service with address_service.custom_name:
$ref: '#/components/examples/AddressServiceWithCustomName'
Address service with address_service.public_insurance_flow:
$ref: '#/components/examples/AddressServiceWithPublicInsuranceFlow'
'403':
description: You are not authorized to see this resource
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Facility:
$ref: '#/components/examples/FacilityNotAuthorized'
Doctor:
$ref: '#/components/examples/DoctorNotAuthorized'
Address:
$ref: '#/components/examples/AddressNotAuthorized'
Service does not belong to address:
$ref: '#/components/examples/AddressServiceMismatch'
'404':
description: Resource not found
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Object not found:
$ref: '#/components/examples/ObjectNotFound'
patch:
operationId: updateAddressService
description: |
Service updated in this endpoint is an address service from this specified address (address_services).
tags:
- Services
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateAddressServiceRequest'
examples:
Update address service:
$ref: '#/components/examples/PatchAddressService'
responses:
'200':
description: Address service
content:
application/vnd.docplanner+json; charset=UTF-8:
schema:
$ref: '#/components/schemas/AddressService'
examples:
Address service updated:
$ref: '#/components/examples/PatchAddressServiceResponse'
'400':
description: Validation of the submitted values wasn't successful
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Address service validation error:
$ref: '#/components/examples/AddressServiceValidationError'
'403':
description: You are not authorized to see this resource
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Facility:
$ref: '#/components/examples/FacilityNotAuthorized'
Doctor:
$ref: '#/components/examples/DoctorNotAuthorized'
Address:
$ref: '#/components/examples/AddressNotAuthorized'
Service does not belong to address:
$ref: '#/components/examples/AddressServiceMismatch'
'404':
description: Resource not found
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Object not found:
$ref: '#/components/examples/ObjectNotFound'
delete:
operationId: deleteAddressService
description: |
Service deleted in this endpoint is an address service from this specified address (address_services).
tags:
- Services
responses:
'204':
description: Successfully deleted address service
'403':
description: You are not authorized to see this resource
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Facility:
$ref: '#/components/examples/FacilityNotAuthorized'
Doctor:
$ref: '#/components/examples/DoctorNotAuthorized'
Address:
$ref: '#/components/examples/AddressNotAuthorized'
Service does not belong to address:
$ref: '#/components/examples/AddressServiceMismatch'
'404':
description: Resource not found
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Object not found:
$ref: '#/components/examples/ObjectNotFound'
/insurance-providers:
get:
operationId: getInsuranceProviders
description: Get a list of available insurance providers
tags:
- Insurances
responses:
'200':
description: List of insurance providers
content:
application/vnd.docplanner+json; charset=UTF-8:
schema:
$ref: '#/components/schemas/InsuranceProviders'
examples:
Dictionary insurance providers list:
$ref: '#/components/examples/DictionaryInsuranceProviders'
/insurance-providers/{insurance_provider_id}/plans:
parameters:
- $ref: '#/components/parameters/insuranceProviderId'
get:
operationId: getInsurancePlans
description: Get a list of available insurance plans for a given insurance provider
tags:
- Insurances
responses:
'200':
description: List of insurance plans
content:
application/vnd.docplanner+json; charset=UTF-8:
schema:
$ref: '#/components/schemas/InsurancePlans'
examples:
Dictionary insurance plans list:
$ref: '#/components/examples/DictionaryInsurancePlans'
/facilities/{facility_id}/doctors/{doctor_id}/addresses/{address_id}/insurance-providers:
parameters:
- $ref: '#/components/parameters/facilityId'
- $ref: '#/components/parameters/doctorId'
- $ref: '#/components/parameters/addressId'
get:
operationId: getAddressInsuranceProviders
description: Get a list of insurance providers for a specific address
tags:
- Insurances
responses:
'200':
description: List of address insurance providers with insurance plans
content:
application/vnd.docplanner+json; charset=UTF-8:
schema:
$ref: '#/components/schemas/AddressInsuranceProviders'
examples:
Insurance providers list:
$ref: '#/components/examples/AddressInsuranceProviders'
'403':
description: You are not authorized to see this resource
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Facility:
$ref: '#/components/examples/FacilityNotAuthorized'
Doctor:
$ref: '#/components/examples/DoctorNotAuthorized'
Address:
$ref: '#/components/examples/AddressNotAuthorized'
'404':
description: Resource not found
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Object not found:
$ref: '#/components/examples/ObjectNotFound'
post:
operationId: addAddressInsuranceProvider
description: Adds new insurance provider to an address of the doctor
tags:
- Insurances
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AddAddressInsuranceProviderRequest'
examples:
Add address insurance provider:
$ref: '#/components/examples/AddAddressInsuranceProvider'
Add address insurance provider with plans:
$ref: '#/components/examples/AddAddressInsuranceProviderWithPlans'
responses:
'204':
description: Successfully added insurance provider to address
'400':
description: Validation of the submitted values wasn't successful
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Validation error:
$ref: '#/components/examples/AddAddressInsuranceValidationError'
'403':
description: You are not authorized to see this resource
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Facility:
$ref: '#/components/examples/FacilityNotAuthorized'
Doctor:
$ref: '#/components/examples/DoctorNotAuthorized'
Address:
$ref: '#/components/examples/AddressNotAuthorized'
'404':
description: Resource not found
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Insurance provider not from dictionary:
$ref: '#/components/examples/InsuranceProviderNotFromDictionary'
Object not found:
$ref: '#/components/examples/ObjectNotFound'
put:
operationId: updateOrCreateAddressInsuranceProvider
description: Updates or creates insurance provider for a given doctor address
tags:
- Insurances
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateOrCreateAddressInsuranceProviderRequest'
examples:
Update or create address insurance provider:
$ref: '#/components/examples/UpdateOrCreateAddressInsuranceProvider'
responses:
'204':
description: Successfully updated or created insurance provider for an address
'403':
description: You are not authorized to see this resource
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Facility:
$ref: '#/components/examples/FacilityNotAuthorized'
Doctor:
$ref: '#/components/examples/DoctorNotAuthorized'
Address:
$ref: '#/components/examples/AddressNotAuthorized'
'404':
description: Resource not found
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Insurance provider not from dictionary:
$ref: '#/components/examples/InsuranceProviderNotFromDictionary'
Object not found:
$ref: '#/components/examples/ObjectNotFound'
/facilities/{facility_id}/doctors/{doctor_id}/addresses/{address_id}/insurance-providers/{insurance_provider_id}:
parameters:
- $ref: '#/components/parameters/facilityId'
- $ref: '#/components/parameters/doctorId'
- $ref: '#/components/parameters/addressId'
- $ref: '#/components/parameters/insuranceProviderId'
delete:
operationId: deleteAddressInsuranceProvider
description: Delete an insurance provider from doctor’s address
tags:
- Insurances
responses:
'204':
description: Successfully added insurance provider to address
'400':
description: Validation of the submitted values wasn't successful
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Validation error:
$ref: '#/components/examples/DeleteAddressInsuranceValidationError'
'403':
description: You are not authorized to see this resource
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Facility:
$ref: '#/components/examples/FacilityNotAuthorized'
Doctor:
$ref: '#/components/examples/DoctorNotAuthorized'
Address:
$ref: '#/components/examples/AddressNotAuthorized'
'404':
description: Resource not found
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Insurance provider not from dictionary:
$ref: '#/components/examples/InsuranceProviderNotFromDictionary'
Object not found:
$ref: '#/components/examples/ObjectNotFound'
/facilities/{facility_id}/doctors/{doctor_id}/addresses/{address_id}/calendar:
parameters:
- $ref: '#/components/parameters/facilityId'
- $ref: '#/components/parameters/doctorId'
- $ref: '#/components/parameters/addressId'
get:
operationId: getCalendar
description: Gets calendar of the address
tags:
- Calendars
responses:
'200':
description: Calendar
content:
application/vnd.docplanner+json; charset=UTF-8:
schema:
$ref: '#/components/schemas/Calendar'
examples:
Calendar enabled:
$ref: '#/components/examples/CalendarEnabled'
Calendar disabled:
$ref: '#/components/examples/CalendarDisabled'
'403':
description: You are not authorized to see this resource
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Facility:
$ref: '#/components/examples/FacilityNotAuthorized'
Doctor:
$ref: '#/components/examples/DoctorNotAuthorized'
Address:
$ref: '#/components/examples/AddressNotAuthorized'
Address does not belong to facility:
$ref: '#/components/examples/AddressDoesNotBelongToFacility'
Address does not belong to doctor:
$ref: '#/components/examples/AddressDoesNotBelongToDoctor'
'404':
description: Resource not found
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Object not found:
$ref: '#/components/examples/ObjectNotFound'
Calendar not found:
$ref: '#/components/examples/CalendarNotFound'
/facilities/{facility_id}/doctors/{doctor_id}/addresses/{address_id}/calendar/enable:
parameters:
- $ref: '#/components/parameters/facilityId'
- $ref: '#/components/parameters/doctorId'
- $ref: '#/components/parameters/addressId'
post:
operationId: enableCalendar
description: Enable calendar on the address
tags:
- Calendars
responses:
'200':
description: Calendar has been enabled
'400':
description: Address is disabled
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Disabled address:
$ref: '#/components/examples/AddressDisabled'
'403':
description: You are not authorized to see this resource
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Facility:
$ref: '#/components/examples/FacilityNotAuthorized'
Doctor:
$ref: '#/components/examples/DoctorNotAuthorized'
Address:
$ref: '#/components/examples/AddressNotAuthorized'
Calendar edition:
$ref: '#/components/examples/CalendarEditionNotAuthorized'
'409':
description: Calendar is already enabled
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Already enabled calendar:
$ref: '#/components/examples/CalendarAlreadyEnabled'
'422':
description: Request cannot be processed
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Doctor/address is not commercial:
$ref: '#/components/examples/DoctorOrAddressNotCommercial'
/facilities/{facility_id}/doctors/{doctor_id}/addresses/{address_id}/calendar/disable:
parameters:
- $ref: '#/components/parameters/facilityId'
- $ref: '#/components/parameters/doctorId'
- $ref: '#/components/parameters/addressId'
post:
operationId: disableCalendar
description: Disable calendar on the address
tags:
- Calendars
responses:
'200':
description: Calendar has been disabled
'403':
description: You are not authorized to see this resource
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Facility:
$ref: '#/components/examples/FacilityNotAuthorized'
Doctor:
$ref: '#/components/examples/DoctorNotAuthorized'
Address:
$ref: '#/components/examples/AddressNotAuthorized'
Calendar edition:
$ref: '#/components/examples/CalendarEditionNotAuthorized'
'409':
description: Calendar is already disabled
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Already disabled calendar:
$ref: '#/components/examples/CalendarAlreadyDisabled'
/facilities/{facility_id}/doctors/{doctor_id}/addresses/{address_id}/breaks:
parameters:
- $ref: '#/components/parameters/facilityId'
- $ref: '#/components/parameters/doctorId'
- $ref: '#/components/parameters/addressId'
get:
parameters:
- name: since
in: query
required: true
schema:
type: string
format: date-time
example: '2021-05-16T14:00:00+01:00'
- name: till
in: query
required: true
schema:
type: string
format: date-time
example: '2021-05-16T15:00:00+01:00'
operationId: getCalendarBreaks
description: Get the list of calendar breaks
tags:
- Calendar Breaks
responses:
'200':
description: List of calendar breaks
content:
application/vnd.docplanner+json; charset=UTF-8:
schema:
$ref: '#/components/schemas/CalendarBreaks'
examples:
Calendar break:
$ref: '#/components/examples/CalendarBreak'
'403':
description: You are not authorized to see this resource
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Facility:
$ref: '#/components/examples/FacilityNotAuthorized'
Doctor:
$ref: '#/components/examples/DoctorNotAuthorized'
Address:
$ref: '#/components/examples/AddressNotAuthorized'
'404':
description: Resource not found
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Calendar not found for this address:
$ref: '#/components/examples/CalendarNotFoundForAddress'
Object not found:
$ref: '#/components/examples/ObjectNotFound'
Invalid date parameter:
$ref: '#/components/examples/InvalidDate'
post:
operationId: addCalendarBreak
description: Add a new break to the calendar
tags:
- Calendar Breaks
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AddCalendarBreakRequest'
responses:
'201':
description: Break added to the calendar
headers:
Location:
schema:
type: string
description: Resource URL for the new calendar break
content:
application/vnd.docplanner+json; charset=UTF-8:
schema:
$ref: '#/components/schemas/CalendarBreak'
examples:
Calendar break:
$ref: '#/components/examples/CalendarBreak'
'400':
description: Validation of the submitted values wasn't successful
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Parameter required (since):
$ref: '#/components/examples/ParameterRequiredSince'
Parameter required (till):
$ref: '#/components/examples/ParameterRequiredTill'
'403':
description: You are not authorized to see this resource
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Facility:
$ref: '#/components/examples/FacilityNotAuthorized'
Doctor:
$ref: '#/components/examples/DoctorNotAuthorized'
Address:
$ref: '#/components/examples/AddressNotAuthorized'
Calendar edition:
$ref: '#/components/examples/CalendarEditionNotAuthorized'
'404':
description: Resource not found
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Object not found:
$ref: '#/components/examples/ObjectNotFound'
'409':
description: Request would result in creating conflicted or duplicated resources
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Calendar break:
$ref: '#/components/examples/CalendarBreakAlreadyExists'
'422':
description: Request cannot be processed
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Invalid date range given:
$ref: '#/components/examples/InvalidDateRange'
Doctor/address is not commercial:
$ref: '#/components/examples/DoctorOrAddressNotCommercial'
/facilities/{facility_id}/doctors/{doctor_id}/addresses/{address_id}/breaks/{break_id}:
parameters:
- $ref: '#/components/parameters/facilityId'
- $ref: '#/components/parameters/doctorId'
- $ref: '#/components/parameters/addressId'
- $ref: '#/components/parameters/breakId'
get:
operationId: getCalendarBreak
description: View a specific calendar break
tags:
- Calendar Breaks
responses:
'200':
description: Calendar break
content:
application/vnd.docplanner+json; charset=UTF-8:
schema:
$ref: '#/components/schemas/CalendarBreak'
examples:
Calendar break:
$ref: '#/components/examples/CalendarBreak'
'403':
description: You are not authorized to see this resource
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Facility:
$ref: '#/components/examples/FacilityNotAuthorized'
Doctor:
$ref: '#/components/examples/DoctorNotAuthorized'
Address:
$ref: '#/components/examples/AddressNotAuthorized'
'404':
description: Resource not found
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Calendar not found for this address:
$ref: '#/components/examples/CalendarNotFoundForAddress'
Break not found:
$ref: '#/components/examples/BreakNotFoundForGivenAddress'
Object not found:
$ref: '#/components/examples/ObjectNotFound'
patch:
operationId: moveCalendarBreak
description: |
Move the calendar break
If the break was created with **apply_on_coupled_addresses**, the breaks created alongside it on the doctor's coupled addresses in this facility are moved to the same new time range.
tags:
- Calendar Breaks
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/MoveCalendarBreakRequest'
responses:
'204':
description: Successfully moved calendar break
'400':
description: Validation of the submitted values wasn't successful
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Parameter required (since):
$ref: '#/components/examples/ParameterRequiredSince'
Parameter required (till):
$ref: '#/components/examples/ParameterRequiredTill'
'403':
description: You are not authorized to see this resource
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Facility:
$ref: '#/components/examples/FacilityNotAuthorized'
Doctor:
$ref: '#/components/examples/DoctorNotAuthorized'
Address:
$ref: '#/components/examples/AddressNotAuthorized'
Calendar edition:
$ref: '#/components/examples/CalendarEditionNotAuthorized'
'404':
description: Resource not found
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Calendar not found for this address:
$ref: '#/components/examples/CalendarNotFoundForAddress'
Break not found:
$ref: '#/components/examples/BreakNotFoundForGivenAddress'
Object not found:
$ref: '#/components/examples/ObjectNotFound'
'422':
description: Request cannot be processed
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Same date range:
$ref: '#/components/examples/SameDateRange'
Till cannot be earlier than since:
$ref: '#/components/examples/TillEarlierThanSince'
delete:
operationId: deleteCalendarBreak
description: |
Delete the calendar break
If the break was created with **apply_on_coupled_addresses**, the breaks created alongside it on the doctor's coupled addresses in this facility are removed as well.
tags:
- Calendar Breaks
responses:
'204':
description: Successfully removed calendar break
'403':
description: You are not authorized to see this resource
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Facility:
$ref: '#/components/examples/FacilityNotAuthorized'
Doctor:
$ref: '#/components/examples/DoctorNotAuthorized'
Address:
$ref: '#/components/examples/AddressNotAuthorized'
Calendar edition:
$ref: '#/components/examples/CalendarEditionNotAuthorized'
'404':
description: Resource not found
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Calendar not found for this address:
$ref: '#/components/examples/CalendarNotFoundForAddress'
Break not found:
$ref: '#/components/examples/BreakNotFoundForGivenAddress'
Object not found:
$ref: '#/components/examples/ObjectNotFound'
/facilities/{facility_id}/doctors/{doctor_id}/addresses/{address_id}/slots:
parameters:
- $ref: '#/components/parameters/facilityId'
- $ref: '#/components/parameters/doctorId'
- $ref: '#/components/parameters/addressId'
get:
parameters:
- $ref: '#/components/parameters/startRequired'
- $ref: '#/components/parameters/endRequired'
- $ref: '#/components/parameters/slotsWith'
operationId: getSlots
description: |
List of free slots for the address within specified date range. The date range between start and end must not exceed 180 days; requests exceeding this limit will return a 400 error.
Extensions:
* `slot.services` - with this parameter in url, query results will return address services attached to given slots
tags:
- Slots
responses:
'200':
description: List of slots
content:
application/vnd.docplanner+json; charset=UTF-8:
schema:
$ref: '#/components/schemas/Slots'
examples:
Slots:
$ref: '#/components/examples/Slots'
Slots with slot.services:
$ref: '#/components/examples/SlotsWithServices'
'400':
description: Validation of the submitted values wasn't successful
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Date range exceeds maximum:
$ref: '#/components/examples/DateRangeExceedsMaximum'
'403':
description: You are not authorized to see this resource
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Facility:
$ref: '#/components/examples/FacilityNotAuthorized'
Doctor:
$ref: '#/components/examples/DoctorNotAuthorized'
Address:
$ref: '#/components/examples/AddressNotAuthorized'
'404':
description: Resource not found
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
There are no slots on given address:
$ref: '#/components/examples/NoSlotsOnAddress'
Break not found:
$ref: '#/components/examples/BreakNotFoundForGivenAddress'
Object not found:
$ref: '#/components/examples/ObjectNotFound'
put:
operationId: replaceSlots
description: "Overrides all existing slots for given date ranges. Can be used for adding, replacing or even removing the slots (check description for address_services in a request body). \n\nIf a duplicate request (with the same address and payload) is received:\n* it will be rejected with a 429 \"Too Many Requests\" status code if the original request was not fully processed yet \n* it will be ignored with a 201 status code for 3 minutes after the original request finished processing\n"
tags:
- Slots
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ReplaceSlotsRequest'
examples:
New slots:
$ref: '#/components/examples/ReplaceSlots'
responses:
'201':
description: Successfully replaced slots
'400':
description: Validation of the submitted values wasn't successful
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Validation error:
$ref: '#/components/examples/PutSlotsValidationError'
Address service does not exist:
$ref: '#/components/examples/AddressServiceDoesNotExist'
Slots from further than 12 weeks:
$ref: '#/components/examples/SlotsFromFurtherThen12Weeks'
Insurance provider does not exist:
$ref: '#/components/examples/InsuranceProviderDoesNotExist'
Insurance providers missing when with-insurance-only:
$ref: '#/components/examples/InsuranceProvidersMissing'
Insurance providers not supported when without-insurance-only:
$ref: '#/components/examples/InsuranceProvidersNotSupported'
Slot exceeds a single day boundary:
$ref: '#/components/examples/SlotExceedsSingleDayBoundary'
Slot duration is less than 1 minute:
$ref: '#/components/examples/SlotDurationIsLessThanOneMinute'
'403':
description: You are not authorized to see this resource
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Facility:
$ref: '#/components/examples/FacilityNotAuthorized'
Doctor:
$ref: '#/components/examples/DoctorNotAuthorized'
Address:
$ref: '#/components/examples/AddressNotAuthorized'
Calendar edition:
$ref: '#/components/examples/CalendarEditionNotAuthorized'
'404':
description: Resource not found
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Object not found:
$ref: '#/components/examples/ObjectNotFound'
'422':
description: Request cannot be processed
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Doctor/address is not commercial:
$ref: '#/components/examples/DoctorOrAddressNotCommercial'
'429':
description: Too many requests
/facilities/{facility_id}/doctors/{doctor_id}/addresses/{address_id}/slots/{start}/book:
parameters:
- $ref: '#/components/parameters/facilityId'
- $ref: '#/components/parameters/doctorId'
- $ref: '#/components/parameters/addressId'
- $ref: '#/components/parameters/startRequiredPath'
post:
operationId: bookSlot
description: Book a slot
tags:
- Slots
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BookSlotRequest'
examples:
Slot booked:
$ref: '#/components/examples/BookSlot'
responses:
'200':
description: Booking
content:
application/vnd.docplanner+json; charset=UTF-8:
schema:
$ref: '#/components/schemas/Booking'
examples:
Booked slot:
$ref: '#/components/examples/Slot'
'400':
description: Validation of the submitted values wasn't successful
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Validation error:
$ref: '#/components/examples/PostBookValidationError'
'403':
description: You are not authorized to see this resource
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Facility:
$ref: '#/components/examples/FacilityNotAuthorized'
Doctor:
$ref: '#/components/examples/DoctorNotAuthorized'
Address:
$ref: '#/components/examples/AddressNotAuthorized'
'404':
description: Resource not found
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Unable to book for this address:
$ref: '#/components/examples/UnableToBookForAddress'
Service does not exist:
$ref: '#/components/examples/ServiceDoesNotExist'
Unable to book with requested slot:
$ref: '#/components/examples/UnableToPerformBookingWithSlot'
Unable to book with requested service:
$ref: '#/components/examples/UnableToPerformBookingWithService'
Object not found:
$ref: '#/components/examples/ObjectNotFound'
'422':
description: Request cannot be processed
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Doctor/address is not commercial:
$ref: '#/components/examples/DoctorOrAddressNotCommercial'
/facilities/{facility_id}/doctors/{doctor_id}/addresses/{address_id}/slots/{date}:
parameters:
- $ref: '#/components/parameters/facilityId'
- $ref: '#/components/parameters/doctorId'
- $ref: '#/components/parameters/addressId'
- name: date
in: path
required: true
schema:
type: string
format: date
example: '2021-05-16'
delete:
operationId: deleteSlots
description: Delete slots for the given date
tags:
- Slots
responses:
'204':
description: Successfully deleted slots for the given date
'403':
description: You are not authorized to see this resource
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Facility:
$ref: '#/components/examples/FacilityNotAuthorized'
Doctor:
$ref: '#/components/examples/DoctorNotAuthorized'
Address:
$ref: '#/components/examples/AddressNotAuthorized'
Calendar edition:
$ref: '#/components/examples/CalendarEditionNotAuthorized'
'404':
description: Resource not found
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Object not found:
$ref: '#/components/examples/ObjectNotFound'
/facilities/{facility_id}/doctors/{doctor_id}/addresses/{address_id}/bookings:
parameters:
- $ref: '#/components/parameters/facilityId'
- $ref: '#/components/parameters/doctorId'
- $ref: '#/components/parameters/addressId'
- $ref: '#/components/parameters/startRequired'
- $ref: '#/components/parameters/endRequired'
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/limit'
get:
operationId: getBookings
description: |
Get bookings list of a doctor in the facility Passing the `page` parameter in the query string will enable pagination.
Extensions:
* `booking.patient` - with this parameter in url, query results will return patient data for every booking
* `booking.address_service` - with this parameter in url, query results will return address service for every booking
* `booking.presence` - with this parameter in url, query results will return additional information weather patient was present for every booking
* `booking.confirmation` - with this parameter in url, query results will return if visit was confirmed for every booking
* `address_service.public_insurance_flow` - with this parameter in url, query results will return information if public insurance flow is supported on bookings addresses
tags:
- Bookings
parameters:
- $ref: '#/components/parameters/bookingsWith'
responses:
'200':
description: Successfully retrieved bookings list
content:
application/vnd.docplanner+json; charset=UTF-8:
schema:
$ref: '#/components/schemas/Bookings'
examples:
Bookings:
$ref: '#/components/examples/Bookings'
Bookings when visit payments is enabled:
$ref: '#/components/examples/BookingsVisitPaymentsEnabled'
Bookings with booking.patient:
$ref: '#/components/examples/BookingsWithPatient'
Bookings with booking.address_service:
$ref: '#/components/examples/BookingsWithAddressService'
Bookings with booking.presence:
$ref: '#/components/examples/BookingsWithPresence'
Bookings with booking.confirmation:
$ref: '#/components/examples/BookingsWithConfirmation'
Bookings with pagination enabled:
$ref: '#/components/examples/BookingsPaginated'
Bookings with address_service.public_insurance_flow:
$ref: '#/components/examples/BookingsWithPublicInsuranceFlow'
'403':
description: You are not authorized to see this resource
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Facility:
$ref: '#/components/examples/FacilityNotAuthorized'
Doctor:
$ref: '#/components/examples/DoctorNotAuthorized'
Address:
$ref: '#/components/examples/AddressNotAuthorized'
'404':
description: Resource not found
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Object not found:
$ref: '#/components/examples/ObjectNotFound'
/facilities/{facility_id}/doctors/{doctor_id}/addresses/{address_id}/bookings/{booking_id}:
parameters:
- $ref: '#/components/parameters/facilityId'
- $ref: '#/components/parameters/doctorId'
- $ref: '#/components/parameters/addressId'
- $ref: '#/components/parameters/bookingId'
get:
operationId: getBooking
description: |
View specific booking.
Extensions:
* `booking.moving` - with this parameter in url, query results will return moving data (origin and newest booking ids) as long as the booking was created after 2nd April 2025 (otherwise it will return null); for bookings that were not moved, origin and newest booking ids will be equal the id of a booking requested
* `address_service.public_insurance_flow` - with this parameter in url, query results will return information if public insurance flow is supported on booking address
tags:
- Bookings
parameters:
- $ref: '#/components/parameters/bookingWith'
responses:
'200':
description: Successfully retrieved booking
content:
application/vnd.docplanner+json; charset=UTF-8:
schema:
$ref: '#/components/schemas/Booking'
examples:
Booking:
$ref: '#/components/examples/Booking'
Booking when visit payments is enabled:
$ref: '#/components/examples/BookingVisitPaymentsEnabled'
Booking when videocall is enabled:
$ref: '#/components/examples/BookingVideocallEnabled'
Booking with booking.moving when booking was moved (for bookings created after 2nd April 2025):
$ref: '#/components/examples/BookingWithMovingMoved'
Booking with booking.moving when booking was not moved (for bookings created after 2nd April 2025):
$ref: '#/components/examples/BookingWithMovingNotMoved'
Booking with booking.moving (for bookings created before 2nd April 2025):
$ref: '#/components/examples/BookingWithMovingNoDataAvailable'
Booking with address_service.public_insurance_flow:
$ref: '#/components/examples/BookingWithPublicInsuranceFlow'
'403':
description: You are not authorized to see this resource
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Facility:
$ref: '#/components/examples/FacilityNotAuthorized'
Doctor:
$ref: '#/components/examples/DoctorNotAuthorized'
Address:
$ref: '#/components/examples/AddressNotAuthorized'
'404':
description: Resource not found
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Object not found:
$ref: '#/components/examples/ObjectNotFound'
delete:
operationId: cancelBooking
description: Cancel the booking
tags:
- Bookings
requestBody:
required: false
content:
application/json:
schema:
$ref: '#/components/schemas/CancelBookingRequest'
examples:
Cancel booking with notifying the patient and reason:
$ref: '#/components/examples/CancelBookingWithPatientNotificationAndReason'
responses:
'204':
description: Successfully canceled the booking
'400':
description: Validation of the submitted values wasn't successful
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Validation error:
$ref: '#/components/examples/DeleteBookingValidationError'
Unable to cancel booking for given address:
$ref: '#/components/examples/UnableToCancelForAddress'
'403':
description: You are not authorized to see this resource
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Facility:
$ref: '#/components/examples/FacilityNotAuthorized'
Doctor:
$ref: '#/components/examples/DoctorNotAuthorized'
'404':
description: Resource not found
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Object not found:
$ref: '#/components/examples/ObjectNotFound'
/facilities/{facility_id}/doctors/{doctor_id}/addresses/{address_id}/bookings/{booking_id}/move:
parameters:
- $ref: '#/components/parameters/facilityId'
- $ref: '#/components/parameters/doctorId'
- $ref: '#/components/parameters/addressId'
- $ref: '#/components/parameters/bookingId'
post:
operationId: moveBooking
description: |
Move a booking for a doctor
The optional **address_id** in the body may name an address of a **different doctor within the same facility**, which reassigns the booking to that doctor. The doctor is taken from the address, so no separate field is needed, and the `Location` header of the response names the doctor the booking now belongs to. An address outside the facility named in the path is still rejected with `403`. Omitting **address_id**, or naming another address of the same doctor, behaves as it always has.
A booking that still holds money can only be moved to an address billed through the same payment account. When it is not, the request is rejected with `422` and nothing changes — cancel the booking and create a new one instead. A booking whose payment was fully refunded or charged back holds no money, so this restriction does not apply to it.
Extensions:
* `address_service.public_insurance_flow` - with this parameter in url, query results will return information if public insurance flow is supported on booking address
tags:
- Bookings
parameters:
- $ref: '#/components/parameters/moveBookingWith'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/MoveBookingRequest'
examples:
Move booking:
$ref: '#/components/examples/MoveBooking'
Move booking (to other address):
$ref: '#/components/examples/MoveBookingToOtherAddress'
responses:
'201':
description: Successfully moved the booking
headers:
Location:
schema:
type: string
description: Resource URL for the new booking
content:
application/vnd.docplanner+json; charset=UTF-8:
schema:
$ref: '#/components/schemas/Booking'
examples:
Booking:
$ref: '#/components/examples/Booking'
Booking with address_service.public_insurance_flow:
$ref: '#/components/examples/BookingWithPublicInsuranceFlow'
'400':
description: Validation of the submitted values wasn't successful
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Validation error:
$ref: '#/components/examples/MoveBookingValidationError'
Service does not belong to the address:
$ref: '#/components/examples/ServiceDoesNotBelongToAddress'
Service does not exist:
$ref: '#/components/examples/ServiceDoesNotExist'
Address does not exist:
$ref: '#/components/examples/AddressDoesNotExist'
'403':
description: You are not authorized to see this resource
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Facility:
$ref: '#/components/examples/FacilityNotAuthorized'
Doctor:
$ref: '#/components/examples/DoctorNotAuthorized'
Address:
$ref: '#/components/examples/AddressNotAuthorized'
Address does not belong to facility:
$ref: '#/components/examples/AddressDoesNotBelongToFacility'
Address does not belong to doctor:
$ref: '#/components/examples/AddressDoesNotBelongToDoctor'
Booking does not belong to address:
$ref: '#/components/examples/BookingDoesNotBelongToAddress'
'404':
description: Resource not found
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Object not found:
$ref: '#/components/examples/ObjectNotFound'
'409':
description: Request would result in creating conflicted or duplicated resources
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Visit already moved or deleted:
$ref: '#/components/examples/VisitAlreadyMovedOrDeleted'
'422':
description: The booking still holds money and the target address is billed through a different payment account
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Target address bills through another payment account:
$ref: '#/components/examples/BookingCannotCrossPaymentAccounts'
/facilities/{facility_id}/doctors/{doctor_id}/addresses/{address_id}/bookings/{booking_id}/confirm:
parameters:
- $ref: '#/components/parameters/facilityId'
- $ref: '#/components/parameters/doctorId'
- $ref: '#/components/parameters/addressId'
- $ref: '#/components/parameters/bookingId'
put:
operationId: confirmBooking
description: Confirm the booking
tags:
- Bookings
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ConfirmBookingRequest'
examples:
Confirm booking:
$ref: '#/components/examples/ConfirmBooking'
responses:
'204':
description: Successfully confirmed the booking
'400':
description: Validation of the submitted values wasn't successful
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Validation error:
$ref: '#/components/examples/ConfirmBookingValidationError'
Integration not authorized for address:
$ref: '#/components/examples/ConfirmBookingInvalidIntegration'
'403':
description: You are not authorized to see this resource
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Facility:
$ref: '#/components/examples/FacilityNotAuthorized'
Doctor:
$ref: '#/components/examples/DoctorNotAuthorized'
Address:
$ref: '#/components/examples/AddressNotAuthorized'
Address does not belong to facility:
$ref: '#/components/examples/AddressDoesNotBelongToFacility'
Address does not belong to doctor:
$ref: '#/components/examples/AddressDoesNotBelongToDoctor'
Booking does not belong to address:
$ref: '#/components/examples/BookingDoesNotBelongToAddress'
'404':
description: Resource not found
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Object not found:
$ref: '#/components/examples/ObjectNotFound'
'409':
description: Request would result in creating conflicted or duplicated resources
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Visit already confirmed:
$ref: '#/components/examples/ConfirmBookingAlreadyConfirmed'
Visit has been canceled:
$ref: '#/components/examples/ConfirmBookingVisitCanceled'
Visit has been deleted:
$ref: '#/components/examples/ConfirmBookingVisitDeleted'
Visit is in the past:
$ref: '#/components/examples/ConfirmBookingPastVisit'
/facilities/{facility_id}/doctors/{doctor_id}/opinion-request:
parameters:
- $ref: '#/components/parameters/facilityId'
- $ref: '#/components/parameters/doctorId'
put:
operationId: requestOpinion
description: After the visit was booked via clinics software, by calling this endpoint you can request SMS asking patient to leave an opinion. We do not store patient and visit information
tags:
- Bookings
requestBody:
description: Phone number of the patient
content:
application/json:
schema:
$ref: '#/components/schemas/OpinionRequest'
examples:
OpinionRequest:
$ref: '#/components/examples/OpinionRequest'
responses:
'200':
description: Successfully put opinion request
'400':
description: Validation of the submitted values wasn't successful
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Validation error:
$ref: '#/components/examples/OpinionRequestValidationError'
'403':
description: You are not authorized to see this resource
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Facility:
$ref: '#/components/examples/FacilityNotAuthorized'
Doctor not from given facility:
$ref: '#/components/examples/DoctorDoesNotBelongToFacility'
Requested visit not found:
$ref: '#/components/examples/VisitNotFound'
'404':
description: Resource not found
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Object not found:
$ref: '#/components/examples/ObjectNotFound'
'409':
description: Request would result in creating conflicted or duplicated resources
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Opinion already exists:
$ref: '#/components/examples/OpinionAlreadyExist'
'422':
description: Request cannot be processed
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Cannot send request for opinion:
$ref: '#/components/examples/CannotSendRequestForOpinion'
/facilities/{facility_id}/doctors/{doctor_id}/addresses/{address_id}/bookings/{booking_id}/presence/patient:
parameters:
- $ref: '#/components/parameters/facilityId'
- $ref: '#/components/parameters/doctorId'
- $ref: '#/components/parameters/addressId'
- $ref: '#/components/parameters/bookingId'
post:
operationId: markPatientPresence
description: Mark the presence of the patient on the visit
tags:
- Patient Presence
responses:
'204':
description: Successfully marked the presence
'400':
description: Validation of the submitted values wasn't successful
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Validation error:
$ref: '#/components/examples/PostPresenceValidationError'
'403':
description: You are not authorized to see this resource
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Facility:
$ref: '#/components/examples/FacilityNotAuthorized'
Doctor:
$ref: '#/components/examples/DoctorNotAuthorized'
Address:
$ref: '#/components/examples/AddressNotAuthorized'
'404':
description: Resource not found
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Object not found:
$ref: '#/components/examples/ObjectNotFound'
Visit does not belong to given doctor:
$ref: '#/components/examples/VisitDoesNotBelongToDoctor'
'409':
description: Request would result in creating conflicted or duplicated resources
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Visit marked as canceled:
$ref: '#/components/examples/VisitMarkedAsCanceled'
delete:
operationId: markPatientAbsence
description: Mark the absence of the patient on the visit
tags:
- Patient Presence
responses:
'204':
description: Successfully marked the absence
'400':
description: Validation of the submitted values wasn't successful
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Validation error:
$ref: '#/components/examples/DeletePresenceValidationError'
'403':
description: You are not authorized to see this resource
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Facility:
$ref: '#/components/examples/FacilityNotAuthorized'
Doctor:
$ref: '#/components/examples/DoctorNotAuthorized'
Address:
$ref: '#/components/examples/AddressNotAuthorized'
'404':
description: Resource not found
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Object not found:
$ref: '#/components/examples/ObjectNotFound'
Visit does not belong to given doctor:
$ref: '#/components/examples/VisitDoesNotBelongToDoctor'
'409':
description: Request would result in creating conflicted or duplicated resources
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Visit marked as canceled:
$ref: '#/components/examples/VisitMarkedAsCanceled'
/{client-endpoint-url}:
post:
operationId: Push Notifications
description: 'Pushing Notifications - To be able to use this method, client should give us an endpoint url, and we will be pushing notifications to this endpoint in real time. HTTP POST method will be used to push event data to endpoint. Note: Regardless of the response status (500, 200, 400) from the client endpoint, the events will be pushed only once. You can find every possible event notification requests below.'
tags:
- API Notification Callbacks
security: []
callbacks:
Slot booking:
slot-booking:
post:
summary: Slot booking
description: (optional) When patient is about to book a visit our system sends a notification to the specified 3rd party webhook, if 3rd party responds with 2xx HTTP Status Codes to the request the visit will be approved anything except 2xx HTTP Status Codes will not allow booking. Note that this notification is optional and will be enabled on request of the 3rd.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SlotBookingNotification'
examples:
Slot-booking notification body:
$ref: '#/components/examples/SlotBookingNotification'
Slot-booking notification body when visit payments are enabled:
$ref: '#/components/examples/SlotBookingWhenVisitPaymentNotification'
responses:
'200':
description: Your server returns this code when booking request is approved
'400':
description: Your server returns this code when booking request is denied
'500':
description: Your server returns this code when booking request is denied
Slot booked:
slot-booked:
post:
summary: Slot booked
description: When patient books a visit from a doctor or doctor books a visit from their calendar.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SlotBookedNotification'
examples:
Slot-booked notification body:
$ref: '#/components/examples/SlotBookedNotification'
Slot-booked notification body when visit booked by doctor:
$ref: '#/components/examples/SlotBookedByDoctorNotification'
Slot-booked notification body when visit payments enabled:
$ref: '#/components/examples/SlotBookedWhenVisitPaymentNotification'
Slot-booked notification body when videocalls enabled:
$ref: '#/components/examples/SlotBookedWhenVideocallNotification'
responses:
'200':
description: Your server returns this code if it accepts the callback
Booking canceled:
booking-canceled:
post:
summary: Booking canceled
description: When patient or doctor cancels a visit.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BookingCanceledNotification'
examples:
Booking-canceled notification body:
$ref: '#/components/examples/BookingCanceledNotification'
Booking-canceled notification body when visit canceled by doctor:
$ref: '#/components/examples/BookingCanceledByDoctorNotification'
responses:
'200':
description: Your server returns this code if it accepts the callback
Booking moved:
booking-moved:
post:
summary: Booking moved
description: When doctor or patient changes the date or hour of the booking.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BookingMovedNotification'
examples:
Booking-moved notification body:
$ref: '#/components/examples/BookingMovedNotification'
responses:
'200':
description: Your server returns this code if it accepts the callback
Booking moving:
booking-moving:
post:
summary: Booking moving
description: When patient is about to change a date or hour of a visit our system sends a notification to the specified 3rd party webhook, if 3rd party responds with 2xx HTTP Status Codes to the request the visit will be moved. Anything except 2xx HTTP Status Codes will not allow moving. This notification is optional and will be enabled on request of the 3rd party.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BookingMovingNotification'
examples:
Booking-moving notification body:
$ref: '#/components/examples/BookingMovingNotification'
responses:
'200':
description: Your server returns this code when booking moving request is approved
'400':
description: Your server returns this code when booking moving request is denied
'500':
description: Your server returns this code when booking moving request is denied
Booking confirmed:
booking-confirmed:
post:
summary: Booking confirmed
description: When patient (or doctor) confirms the booking.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BookingConfirmedNotification'
examples:
Booking confirmed notification body:
$ref: '#/components/examples/BookingConfirmedNotification'
responses:
'200':
description: Your server returns this code if it accepts the callback
Booking payment status changed:
booking-payment-status-changed:
post:
summary: Booking payment status changed
description: When status of a booking payment has changed.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BookingPaymentStatusChangedNotification'
examples:
Booking payment status changed notification body:
$ref: '#/components/examples/BookingPaymentStatusChangedNotification'
responses:
'200':
description: Your server returns this code if it accepts the callback
Break created:
break-created:
post:
summary: Break created
description: When doctor created a break on their calendar.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BreakCreatedNotification'
examples:
Break-created notification body:
$ref: '#/components/examples/BreakCreatedNotification'
responses:
'200':
description: Your server returns this code if it accepts the callback
Break removed:
break-removed:
post:
summary: Break removed
description: When doctor deleted the break from their calendar.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BreakRemovedNotification'
examples:
Break-removed notification body:
$ref: '#/components/examples/BreakRemovedNotification'
responses:
'200':
description: Your server returns this code if it accepts the callback
Break moved:
break-moved:
post:
summary: Break moved
description: When doctor changed break dates.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BreakMovedNotification'
examples:
Break-moved notification body:
$ref: '#/components/examples/BreakMovedNotification'
responses:
'200':
description: Your server returns this code if it accepts the callback
Presence marked:
presence-marked:
post:
summary: Presence marked
description: When presence was marked by doctor or patient.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PresenceMarkedNotification'
examples:
Presence-marked notification body:
$ref: '#/components/examples/PresenceMarkedNotification'
responses:
'200':
description: Your server returns this code if it accepts the callback
Address service created:
address-service-created:
post:
summary: Address service created
description: When new address service is created.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AddressServiceCreatedNotification'
examples:
Address-service-created notification body:
$ref: '#/components/examples/AddressServiceCreatedNotification'
responses:
'200':
description: Your server returns this code if it accepts the callback
Address service deleted:
address-service-deleted:
post:
summary: Address service deleted
description: When the address service is deleted.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AddressServiceDeletedNotification'
examples:
Address-service-deleted notification body:
$ref: '#/components/examples/AddressServiceDeletedNotification'
responses:
'200':
description: Your server returns this code if it accepts the callback
Address service changed:
address-service-changed:
post:
summary: Address service changed
description: When the address service is modified.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AddressServiceChangedNotification'
examples:
Address-service-changed notification body:
$ref: '#/components/examples/AddressServiceChangedNotification'
responses:
'200':
description: Your server returns this code if it accepts the callback
Address commercial type changed:
address-commercial-type-changed:
post:
summary: Address commercial type changed
description: When the address commercial type is modified.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AddressCommercialTypeChangedNotification'
examples:
Address-commercial-type-changed notification body:
$ref: '#/components/examples/AddressCommercialTypeChangedNotification'
responses:
'200':
description: Your server returns this code if it accepts the callback
Address assigned:
address-assigned:
post:
summary: Address assigned
description: When the address is assigned to the doctor.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AddressAssignedNotification'
examples:
Address-assigned notification body:
$ref: '#/components/examples/AddressAssignedNotification'
responses:
'200':
description: Your server returns this code if it accepts the callback
Address unassigned:
address-unassigned:
post:
summary: Address unassigned
description: When the address is unassigned from the doctor.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AddressUnassignedNotification'
examples:
Address-unassigned notification body:
$ref: '#/components/examples/AddressUnassignedNotification'
responses:
'200':
description: Your server returns this code if it accepts the callback
responses:
'200':
description: Your server returns this code if it accepts the callback
/notifications:
get:
operationId: Pull Notification
description: 'Pulling Notifications - You can pull notifications via this endpoint. This page will respond to you with the earliest notification you haven’t been pulled yet. First In First Out (FIFO) principle applied here. This endpoint will respond with one notification per request until there aren’t any notifications left in the notification queue. Important: Notifications that are not pulled in 72 hours are marked as expired and deleted from the system.'
tags:
- API Notification Callbacks
responses:
'200':
description: Notification from the the notification queue.
content:
application/vnd.docplanner+json; charset=UTF-8:
schema:
$ref: '#/components/schemas/Notification'
examples:
Slot-booking notification body:
$ref: '#/components/examples/SlotBookingNotification'
Slot-booking notification body when visit payments are enabled:
$ref: '#/components/examples/SlotBookingWhenVisitPaymentNotification'
Slot-booked notification body:
$ref: '#/components/examples/SlotBookedNotification'
Slot-booked notification body when visit booked by doctor:
$ref: '#/components/examples/SlotBookedByDoctorNotification'
Slot-booked notification body when visit payments enabled:
$ref: '#/components/examples/SlotBookedWhenVisitPaymentNotification'
Slot-booked notification body when videocalls enabled:
$ref: '#/components/examples/SlotBookedWhenVideocallNotification'
Booking-canceled notification body:
$ref: '#/components/examples/BookingCanceledNotification'
Booking-canceled notification body when visit canceled by doctor:
$ref: '#/components/examples/BookingCanceledByDoctorNotification'
Booking-moved notification body:
$ref: '#/components/examples/BookingMovedNotification'
Booking-moving notification body:
$ref: '#/components/examples/BookingMovingNotification'
Booking-payment-status-changed notification body:
$ref: '#/components/examples/BookingPaymentStatusChangedNotification'
Break-created notification body:
$ref: '#/components/examples/BreakCreatedNotification'
Break-removed notification body:
$ref: '#/components/examples/BreakRemovedNotification'
Break-moved notification body:
$ref: '#/components/examples/BreakMovedNotification'
Presence-marked notification body:
$ref: '#/components/examples/PresenceMarkedNotification'
Address-service-created notification body:
$ref: '#/components/examples/AddressServiceCreatedNotification'
Address-service-deleted notification body:
$ref: '#/components/examples/AddressServiceDeletedNotification'
Address-service-changed notification body:
$ref: '#/components/examples/AddressServiceChangedNotification'
Address-commercial-type-changed notification body:
$ref: '#/components/examples/AddressCommercialTypeChangedNotification'
'404':
description: Notification queue is empty.
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
No notifications found:
$ref: '#/components/examples/NotificationNotFound'
/notifications/multiple:
parameters:
- $ref: '#/components/parameters/multipleNotificationsLimit'
get:
operationId: Pull Multiple Notification
description: 'Pulling Notifications - You can pull multiple notifications via this endpoint. This page will respond to you with the earliest notifications you haven’t been pulled yet in the quantity limited by `limit` parameter. First In First Out (FIFO) principle applied here. This endpoint will respond with the collection of notifications and amount of remaining notifications. Important: Notifications that are not pulled in 72 hours are marked as expired and deleted from the system.'
tags:
- API Notification Callbacks
responses:
'200':
description: Collection of notifications from the notification queue.
content:
application/vnd.docplanner+json; charset=UTF-8:
schema:
$ref: '#/components/schemas/PullMultipleNotificationsResponse'
examples:
Pulling multiple notifications:
$ref: '#/components/examples/PullingMultipleNotifications'
Pulling all of remaining notifications:
$ref: '#/components/examples/PullingAllOfRemainingNotifications'
'404':
description: Notification queue is empty.
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
No notifications found:
$ref: '#/components/examples/NotificationNotFound'
/notifications/release:
post:
operationId: Release Notifications
description: Action allowing to trigger re-dispatching all the notifications that were not processed correctly. Call to this endpoint should be repeated periodically to ensure consistency between systems. Docplanner API allows to perform notifications release once per hour. Endpoint can be used only if Docplanner system is pushing events to the external endpoints.
tags:
- API Notification Callbacks
responses:
'204':
description: Successfully queued notifications
'403':
description: You cannot perform this action because API client is not using PUSH communication model or API client is not enabled.
content:
application/vnd.error+docplanner+json:
schema:
$ref: '#/components/schemas/Error'
examples:
Missing notifications URL setup:
$ref: '#/components/examples/NotificationsReleaseForbiddenError'
'429':
description: You have reached the limit of 1 request per hour
headers:
Retry-After:
schema:
type: integer
description: Time (in seconds) until the next call is available
components:
securitySchemes:
oauth2:
name: OAuth 2.0
type: oauth2
flows:
clientCredentials:
tokenUrl: https://www.{domain}/oauth/v2/token
scopes:
integration: API integration
description: |
The API utilizes the industry-standard [OAuth 2.0](https://tools.ietf.org/html/rfc6749) protocol.
All requests to our API must be authenticated and must include a valid access token.
`NOTE! Our SSO Api version is v2 while our Integration Api version is v3`
You can get a token for testing purposes with cURL
```
curl -u {client_id}:{client_secret} https://www.{domain}/oauth/v2/token -d 'grant_type=client_credentials&scope=integration'
```
A response example you can expect
```
{
"access_token": "03807cb390319329bdf6c777d4dfae9c0d3b3c35",
"expires_in": 3600,
"token_type": "bearer",
"scope": null
}
```
And then with every request in the `request header` you should add your bearer token like so:
```
Authorization: Bearer {access_token}
```
parameters:
facilityId:
name: facility_id
in: path
description: ID of the Facility
example: 1
required: true
schema:
type: string
facilityWith:
name: with
in: query
required: false
style: simple
schema:
type: array
uniqueItems: true
items:
$ref: '#/components/schemas/FacilityScopes'
doctorsWith:
name: with
in: query
required: false
style: simple
schema:
type: array
uniqueItems: true
items:
$ref: '#/components/schemas/DoctorsScopes'
doctorId:
name: doctor_id
in: path
description: ID of a doctor in a facility
example: 123
required: true
schema:
type: string
doctorWith:
name: with
in: query
required: false
style: simple
schema:
type: array
uniqueItems: true
items:
$ref: '#/components/schemas/DoctorScopes'
addressesWith:
name: with
in: query
required: false
style: simple
schema:
type: array
uniqueItems: true
items:
$ref: '#/components/schemas/AddressesScopes'
addressId:
name: address_id
in: path
description: ID of a doctor`s address in a facility
example: 123
required: true
schema:
type: string
addressWith:
name: with
in: query
required: false
style: simple
schema:
type: array
uniqueItems: true
items:
$ref: '#/components/schemas/AddressScopes'
servicesWith:
name: with
in: query
required: false
style: simple
schema:
type: array
uniqueItems: true
items:
$ref: '#/components/schemas/ServicesScopes'
servicesSpecializationId:
name: specialization_id
in: query
description: Filters services by specialization. When provided, only services associated with the given specialization are returned.
example: 12
required: false
schema:
type: integer
addressServicesWith:
name: with
in: query
required: false
style: simple
schema:
type: array
uniqueItems: true
items:
$ref: '#/components/schemas/AddressServicesScopes'
addressServiceId:
name: address_service_id
in: path
description: ID of an address service
example: 123
required: true
schema:
type: string
addressServiceWith:
name: with
in: query
required: false
style: simple
schema:
type: array
uniqueItems: true
items:
$ref: '#/components/schemas/AddressServiceScopes'
insuranceProviderId:
name: insurance_provider_id
in: path
description: ID of an insurance provider from DP dictionary
example: 123
required: true
schema:
type: string
startForAddressServices:
name: start
in: query
description: Slot start date (parameter must be urlencoded before sending request). Limits results to only those linked to slots that start on that date.
required: false
schema:
type: string
format: date-time
example: '2021-05-16T14:00:00+01:00'
startRequired:
name: start
in: query
description: Slot start date (parameter must be urlencoded before sending request)
required: true
schema:
type: string
format: date-time
example: '2021-05-16T14:00:00+01:00'
startRequiredPath:
name: start
in: path
description: Slot start date (parameter must be urlencoded before sending request)
required: true
schema:
type: string
format: date-time
example: '2021-05-16T14:00:00+01:00'
endRequired:
name: end
in: query
description: Slot end date (parameter must be urlencoded before sending request)
required: true
schema:
type: string
format: date-time
example: '2021-05-16T15:00:00+01:00'
slotsWith:
name: with
in: query
required: false
style: simple
schema:
type: array
uniqueItems: true
items:
$ref: '#/components/schemas/SlotsScopes'
bookingsWith:
name: with
in: query
required: false
style: simple
schema:
type: array
uniqueItems: true
items:
$ref: '#/components/schemas/BookingsScopes'
bookingWith:
name: with
in: query
required: false
style: simple
schema:
type: array
uniqueItems: true
items:
$ref: '#/components/schemas/BookingScopes'
moveBookingWith:
name: with
in: query
required: false
style: simple
schema:
type: array
uniqueItems: true
items:
$ref: '#/components/schemas/MoveBookingScopes'
breakId:
name: break_id
in: path
description: ID of the Calendar Break
required: true
schema:
type: string
example: 123
bookingId:
name: booking_id
in: path
description: ID of the Booking
required: true
schema:
type: string
example: 123
multipleNotificationsLimit:
name: limit
in: query
description: Maximum number of notifications pulled. Can take value from 1 to 100. If not provided the default value of 1 is applied.
required: false
schema:
type: integer
example: 5
page:
name: page
in: query
description: Page number to use for pagination. If not provided the pagination is not applied.
required: false
schema:
type: integer
example: 1
limit:
name: limit
in: query
description: Maximum number of items per page. If not provided the default value of 100 is applied if pagination is used.
required: false
schema:
type: integer
example: 100
schemas:
Facility:
type: object
properties:
id:
type: string
example: 1
name:
type: string
example: Sample Clinic 1
doctors:
$ref: '#/components/schemas/Doctors'
FacilityScopes:
type: string
enum:
- facility.doctors
Facilities:
type: object
properties:
_items:
type: array
items:
$ref: '#/components/schemas/Facility'
Doctor:
type: object
properties:
id:
type: string
example: 123
name:
type: string
example: Sample
surname:
type: string
example: Doctor 123
addresses:
$ref: '#/components/schemas/Addresses'
specialization:
$ref: '#/components/schemas/Specializations'
license_numbers:
$ref: '#/components/schemas/LicenseNumbers'
DoctorsScopes:
type: string
enum:
- doctor.profile_url
- doctor.specializations
- doctor.license_numbers
Doctors:
type: object
properties:
_items:
type: array
items:
$ref: '#/components/schemas/Doctor'
DoctorScopes:
type: string
enum:
- doctor.profile_url
- doctor.addresses
- doctor.license_numbers
- address.booking_extra_fields
- address.online_only
- address.visit_payment
- address.commercial_type
Specialization:
type: object
properties:
id:
type: string
example: 12
name:
type: string
example: Specialization example
Specializations:
type: object
properties:
_items:
type: array
items:
$ref: '#/components/schemas/Specialization'
LicenseNumber:
type: object
properties:
id:
type: string
example: 12
license_number:
type: string
example: License number
LicenseNumbers:
type: object
properties:
_items:
type: array
items:
$ref: '#/components/schemas/LicenseNumber'
Address:
type: object
properties:
id:
type: string
example: 333
name:
type: string
example: Test hospital
nullable: true
city_name:
type: string
example: Testing city
nullable: true
post_code:
type: string
example: XX-XXX
nullable: true
street:
type: string
example: Testing street
nullable: true
is_online_only:
type: boolean
example: false
visit_payment:
type: boolean
example: false
booking_extra_fields:
type: object
properties:
gender:
type: boolean
example: true
nin:
type: boolean
example: true
birth_date:
type: boolean
example: true
commercial_type:
type: string
enum:
- premium
- saas-only
- basic
example: basic
insurance_support:
type: string
enum:
- private
- insurance
- private_and_insurance
example: private
AddressScopes:
type: string
enum:
- address.online_only
- address.visit_payment
- address.commercial_type
- address.insurance_support
Addresses:
type: object
properties:
_items:
type: array
items:
$ref: '#/components/schemas/Address'
AddressesScopes:
type: string
enum:
- address.online_only
- address.visit_payment
- address.commercial_type
- address.insurance_support
UpdateAddressRequest:
type: object
properties:
insurance_support:
type: string
enum:
- private
- insurance
- private_and_insurance
Service:
type: object
properties:
id:
type: string
example: 1
name:
type: string
example: Regular visit
Services:
type: object
properties:
_items:
type: array
items:
$ref: '#/components/schemas/Service'
ServicesScopes:
type: string
enum:
- services.only_diagnostics
AllowedPatientsData:
type: object
properties:
minimum_age:
type: integer
example: 18
description: Minimum age of patients allowed for this service
nullable: true
maximum_age:
type: integer
example: 65
description: Maximum age of patients allowed for this service
nullable: true
AddressService:
type: object
properties:
id:
type: string
example: 468628
name:
type: string
example: EEG
price:
type: integer
example: 500
nullable: true
description: Integer part of the price (decimals truncated)
is_price_from:
type: boolean
example: true
description: If true, the price is the minimum price of the service
is_default:
type: boolean
example: false
service_id:
type: string
nullable: true
example: null
description:
type: string
nullable: true
example: null
duration:
type: integer
example: 30
is_visible:
type: boolean
example: true
allowed_patients:
nullable: true
allOf:
- $ref: '#/components/schemas/AllowedPatientsData'
custom_name:
type: string
nullable: true
example: Custom Service Name
AddressServiceScopes:
type: string
enum:
- address_service.allowed_patients
- address_service.custom_name
- address_service.public_insurance_flow
AddressServices:
type: object
properties:
_items:
type: array
items:
$ref: '#/components/schemas/AddressService'
AddressServicesScopes:
type: string
enum:
- address_service.allowed_patients
- address_service.custom_name
- address_service.public_insurance_flow
AddAddressServiceRequest:
type: object
properties:
service_id:
type: string
example: 123
description: ID of a service
is_price_from:
type: boolean
example: true
description: If true, the price is the minimum price of the service
price:
type: number
example: 169.9
description: Service price. Maximum 2 decimal places; additional decimals are truncated. Invalid formats are rejected with 400 Bad Request
nullable: true
description:
type: string
example: Address service description
nullable: true
is_visible:
type: boolean
example: true
default_duration:
type: integer
example: 20
nullable: true
allowed_patients:
nullable: true
allOf:
- $ref: '#/components/schemas/AllowedPatientsData'
custom_name:
type: string
example: Custom USG Name
nullable: true
minLength: 1
description: A custom display name for the service. Cannot be an empty string.
required:
- service_id
UpdateAddressServiceRequest:
type: object
properties:
is_price_from:
type: boolean
example: true
description: If true, the price is the minimum price of the service
price:
type: number
example: 169.9
description: Service price. Maximum 2 decimal places; additional decimals are truncated. Invalid formats are rejected with 400 Bad Request
nullable: true
description:
type: string
example: Address service description
nullable: true
default_duration:
type: integer
example: 20
is_visible:
type: boolean
example: true
allowed_patients:
nullable: true
allOf:
- $ref: '#/components/schemas/AllowedPatientsData'
custom_name:
type: string
example: Custom USG Name
nullable: true
minLength: 1
description: A custom display name for the service. Cannot be an empty string. Send null to clear the custom name.
InsuranceProvider:
type: object
properties:
insurance_provider_id:
type: string
example: 1
name:
type: string
example: Insurance Provider Sample
InsuranceProviders:
type: object
properties:
_items:
type: array
items:
$ref: '#/components/schemas/InsuranceProvider'
AddressInsuranceProvider:
type: object
properties:
insurance_provider_id:
type: string
example: 1
name:
type: string
example: Insurance Provider with plans Sample
insurance_plans:
$ref: '#/components/schemas/InsurancePlans'
AddressInsuranceProviders:
type: object
properties:
_items:
type: array
items:
$ref: '#/components/schemas/AddressInsuranceProvider'
InsurancePlan:
type: object
properties:
insurance_plan_id:
type: string
example: 1
name:
type: string
example: Insurance Plan Sample
InsurancePlans:
type: object
properties:
_items:
type: array
items:
$ref: '#/components/schemas/InsurancePlan'
AddAddressInsuranceProviderRequest:
type: object
properties:
insurance_provider_id:
type: string
example: 1
description: ID of an insurance provider from DP dictionary
insurance_plans:
type: array
items:
type: object
properties:
insurance_plan_id:
type: string
example: 999
description: ID of an insurance plan from DP dictionary
required:
- insurance_provider_id
UpdateOrCreateAddressInsuranceProviderRequest:
type: object
properties:
insurance_provider_id:
type: string
example: 1
description: ID of an insurance provider from DP dictionary
insurance_plans:
type: array
items:
type: object
properties:
insurance_plan_id:
type: string
example: 999
description: ID of an insurance plan from DP dictionary
required:
- insurance_provider_id
Calendar:
type: object
properties:
status:
type: string
example: enabled
enum:
- enabled
- disabled
CalendarBreak:
type: object
properties:
id:
type: string
example: 1714456
since:
type: string
format: date-time
example: '2021-05-16T14:00:00+01:00'
till:
type: string
format: date-time
example: '2021-05-16T15:00:00+01:00'
description:
type: string
example: Optional description
nullable: true
CalendarBreaks:
type: object
properties:
_items:
type: array
items:
$ref: '#/components/schemas/CalendarBreak'
AddCalendarBreakRequest:
type: object
properties:
since:
type: string
format: date-time
example: '2021-05-16T14:00:00+01:00'
till:
type: string
format: date-time
example: '2021-05-16T15:00:00+01:00'
description:
type: string
example: Optional reason for adding this particular break
apply_on_coupled_addresses:
type: boolean
default: false
description: |
When true, the same break is also created on the coupled addresses of this doctor in this facility - the online-only ones for an offline address and the other way round. Those breaks are moved and removed together with this one. The response describes only the break created on the requested address.
example: true
required:
- since
- till
MoveCalendarBreakRequest:
type: object
properties:
since:
type: string
format: date-time
example: '2021-05-16T14:00:00+01:00'
till:
type: string
format: date-time
example: '2021-05-16T15:00:00+01:00'
required:
- since
- till
Slot:
type: object
properties:
start:
type: string
format: date-time
example: '2021-05-16T14:00:00+01:00'
address_services:
nullable: true
allOf:
- $ref: '#/components/schemas/AddressServices'
Slots:
type: object
properties:
_items:
type: array
items:
$ref: '#/components/schemas/Slot'
SlotsScopes:
type: string
enum:
- slot.services
BookSlotRequest:
type: object
properties:
address_service_id:
type: string
example: 123
is_returning:
type: boolean
example: false
patient:
$ref: '#/components/schemas/Patient'
duration:
type: integer
example: 20
label:
type: string
example: label
default: null
nullable: true
comment:
type: string
example: comment
default: null
nullable: true
insurance_provider_id:
type: string
example: 14
default: null
nullable: true
insurance_plan_id:
type: string
example: 2
default: null
nullable: true
is_recurring:
type: boolean
example: true
default: false
description: Whether the visit should be marked as recurrent (there will be no confirmation notification sent to the patient)
required:
- address_service_id
- patient
- duration
ReplaceSlotsRequest:
type: object
properties:
slots:
type: array
items:
type: object
properties:
address_services:
description: If set to null or empty collection, it will **remove** all the slots from a given time range
type: array
nullable: true
items:
type: object
properties:
address_service_id:
type: string
example: 305686
duration:
type: integer
example: 30
required:
- address_service_id
- duration
start:
type: string
format: date-time
example: '2021-05-16T14:00:00+01:00'
end:
type: string
format: date-time
example: '2021-05-16T16:00:00+01:00'
insurance_accepted:
type: string
nullable: true
enum:
- with-and-without-insurance
- without-insurance-only
- with-insurance-only
default: with-and-without-insurance
example: with-and-without-insurance
description: Accepted insurance configuration. If **with-insurance-only** is passed, **insurance_providers** field MUST NOT be empty. If **without-insurance-only** is passed, **insurance_providers** MUST be empty
insurance_providers:
type: array
nullable: true
items:
type: integer
example: 52
required:
- start
- end
required:
- slots
Booking:
type: object
properties:
id:
type: string
example: '2134124'
status:
type: string
example: booked
start_at:
type: string
format: date-time
example: '2021-05-16T14:00:00+01:00'
end_at:
type: string
format: date-time
example: '2021-05-16T14:30:00+01:00'
duration:
type: integer
example: 30
booked_by:
type: string
enum:
- user
- doctor
- integration
canceled_by:
type: string
enum:
- ''
- user
- doctor
- integration
booked_at:
type: string
format: date-time
example: '2021-05-12T12:00:00+01:00'
canceled_at:
type: string
format: date-time
example: '2021-05-16T14:30:00+01:00'
nullable: true
moving:
nullable: true
allOf:
- $ref: '#/components/schemas/BookingMoving'
patient:
$ref: '#/components/schemas/BookingPatient'
address_service:
nullable: true
allOf:
- $ref: '#/components/schemas/AddressService'
comment:
type: string
nullable: true
presence:
type: string
enum:
- present
- absent
nullable: true
insurance:
nullable: true
allOf:
- $ref: '#/components/schemas/Insurance'
visit_payment:
type: boolean
nullable: true
visit_payment_status:
type: string
nullable: true
videocall_url:
type: string
nullable: true
Bookings:
type: object
properties:
_items:
type: array
items:
$ref: '#/components/schemas/Booking'
page:
type: integer
example: 1
nullable: true
limit:
type: integer
example: 100
nullable: true
pages:
type: integer
example: 11
nullable: true
total:
type: integer
example: 106
nullable: true
BookingsScopes:
type: string
enum:
- booking.patient
- booking.address_service
- booking.presence
- address_service.public_insurance_flow
BookingScopes:
type: string
enum:
- booking.moving
- address_service.public_insurance_flow
MoveBookingScopes:
type: string
enum:
- address_service.public_insurance_flow
Insurance:
type: object
properties:
id:
type: string
name:
type: string
plan:
type: string
nullable: true
plan_id:
type: string
nullable: true
BookingPatient:
type: object
properties:
name:
type: string
example: Abraham
surname:
type: string
example: Lincoln
email:
type: string
example: example@example.com
nullable: true
phone:
type: string
example: '+48123123123'
nullable: true
birth_date:
type: string
format: date
example: '1985-01-01'
nullable: true
nin:
type: string
example: '894237492'
nullable: true
gender:
type: string
enum:
- m
- f
nullable: true
is_returning:
type: boolean
example: false
insurance_number:
type: string
example: CARD-7654321
nullable: true
BookingMoving:
type: object
properties:
origin_booking_id:
type: string
example: '2134124'
newest_booking_id:
type: string
example: '2134125'
CancelBookingRequest:
type: object
properties:
reason:
type: string
example: Doctor will not be present on that day
description: Reason why visit was canceled
ConfirmBookingRequest:
type: object
properties:
confirmed_by:
type: string
enum:
- user
- admin
example: user
description: Who confirmed the booking
required:
- confirmed_by
MoveBookingRequest:
type: object
properties:
address_service_id:
type: string
example: 112
start:
type: string
format: date-time
example: '2021-05-26T16:00:00+01:00'
duration:
type: integer
example: 30
address_id:
type: string
example: 12345789
required:
- address_service_id
Patient:
type: object
properties:
name:
type: string
example: Abraham
surname:
type: string
example: Lincoln
email:
type: string
example: example@example.com
nullable: true
phone:
type: string
example: '+48123123123'
nullable: true
birth_date:
type: string
format: date
example: '1985-01-01'
nullable: true
nin:
type: string
example: '894237492'
nullable: true
gender:
type: string
enum:
- m
- f
nullable: true
marketing_consent:
type: boolean
example: true
default: null
nullable: true
data_privacy_consent:
type: boolean
example: true
default: null
nullable: true
required:
- name
- phone
OpinionRequest:
type: object
properties:
phone:
type: string
example: '123456789'
required:
- phone
AddressServiceNotification:
type: object
properties:
id:
type: string
example: 101
name:
type: string
example: USG
price:
type: integer
example: 50
description: Integer part of the price (decimals truncated)
is_price_from:
type: boolean
example: false
description: If true, the price is the minimum price of the service
is_visible:
type: boolean
example: true
VisitBookingRequestNotification:
type: object
properties:
booking_at:
type: string
format: date-time
example: '2021-05-12T10:18:34+01:00'
booking_by:
type: string
enum:
- user
- doctor
- integration
duration:
type: integer
example: 30
start_at:
type: string
format: date-time
example: '2021-05-26T16:00:00+01:00'
end_at:
type: string
format: date-time
example: '2021-05-26T16:30:00+01:00'
address_service:
nullable: true
allOf:
- $ref: '#/components/schemas/AddressServiceNotification'
patient:
$ref: '#/components/schemas/Patient'
signature:
type: string
example: 699c9b15-a72f-741b-cd24-fdef7b00551e
comment:
type: string
example: Additional information about the visit
visit_payment:
type: boolean
example: true
SlotBookingNotification:
type: object
properties:
name:
type: string
example: slot-booking
data:
type: object
properties:
facility:
$ref: '#/components/schemas/Facility'
doctor:
$ref: '#/components/schemas/Doctor'
address:
$ref: '#/components/schemas/Address'
visit_booking_request:
$ref: '#/components/schemas/VisitBookingRequestNotification'
created_at:
type: string
format: date-time
example: '2021-05-12T10:18:34+01:00'
InsuranceNotification:
type: object
properties:
id:
type: string
example: 1
name:
type: string
example: Sample Insurance 1
plan:
type: string
example: ''
plan_id:
type: string
example: ''
BookingNotification:
type: object
properties:
id:
type: string
example: '2134124'
status:
type: string
example: booked
start_at:
type: string
format: date-time
example: '2021-05-26T16:00:00+01:00'
end_at:
type: string
format: date-time
example: '2021-05-26T16:30:00+01:00'
duration:
type: integer
example: 30
booked_by:
type: string
enum:
- user
- doctor
- integration
canceled_by:
type: string
enum:
- ''
- user
- doctor
- integration
booked_at:
type: string
format: date-time
example: '2021-05-12T10:18:34+01:00'
canceled_at:
type: string
format: date-time
example: '2021-05-16T10:18:34+01:00'
nullable: true
address_service:
nullable: true
allOf:
- $ref: '#/components/schemas/AddressServiceNotification'
patient:
$ref: '#/components/schemas/Patient'
signature:
type: string
example: 699c9b15-a72f-741b-cd24-fdef7b00551e
comment:
type: string
example: Additional information about the visit
insurance:
nullable: true
allOf:
- $ref: '#/components/schemas/InsuranceNotification'
visit_payment:
type: boolean
example: true
videocall_url:
type: string
example: http://url-to-video-call
SlotBookedNotification:
type: object
properties:
name:
type: string
example: slot-booked
data:
type: object
properties:
facility:
$ref: '#/components/schemas/Facility'
doctor:
$ref: '#/components/schemas/Doctor'
address:
$ref: '#/components/schemas/Address'
visit_booking:
$ref: '#/components/schemas/BookingNotification'
created_at:
type: string
format: date-time
example: '2021-05-12T10:18:34+01:00'
BookingCanceledNotification:
type: object
properties:
name:
type: string
example: booking-canceled
data:
type: object
properties:
facility:
$ref: '#/components/schemas/Facility'
doctor:
$ref: '#/components/schemas/Doctor'
address:
$ref: '#/components/schemas/Address'
visit_booking:
$ref: '#/components/schemas/BookingNotification'
created_at:
type: string
format: date-time
example: '2021-05-12T10:18:34+01:00'
BookingMovedNotification:
type: object
properties:
name:
type: string
example: booking-moved
data:
type: object
properties:
facility:
$ref: '#/components/schemas/Facility'
doctor:
$ref: '#/components/schemas/Doctor'
address:
$ref: '#/components/schemas/Address'
old_visit_booking:
$ref: '#/components/schemas/BookingNotification'
new_visit_booking:
$ref: '#/components/schemas/BookingNotification'
created_at:
type: string
format: date-time
example: '2021-05-12T10:18:34+01:00'
BookingMovingNotification:
type: object
properties:
name:
type: string
example: booking-moving
data:
type: object
properties:
facility:
$ref: '#/components/schemas/Facility'
doctor:
$ref: '#/components/schemas/Doctor'
address:
$ref: '#/components/schemas/Address'
canceling_booking:
$ref: '#/components/schemas/BookingNotification'
creating_booking:
$ref: '#/components/schemas/VisitBookingRequestNotification'
created_at:
type: string
format: date-time
example: '2021-05-12T10:18:34+01:00'
BookingConfirmedNotification:
type: object
properties:
name:
type: string
example: booking-confirmed
data:
type: object
properties:
facility:
$ref: '#/components/schemas/Facility'
doctor:
$ref: '#/components/schemas/Doctor'
address:
$ref: '#/components/schemas/Address'
visit_booking:
$ref: '#/components/schemas/BookingNotification'
created_at:
type: string
format: date-time
example: '2021-05-12T10:18:34+01:00'
BookingPaymentStatusChangedNotification:
type: object
properties:
name:
type: string
example: booking-payment-status-changed
data:
type: object
properties:
facility:
$ref: '#/components/schemas/Facility'
doctor:
$ref: '#/components/schemas/Doctor'
address:
$ref: '#/components/schemas/Address'
visit_booking:
$ref: '#/components/schemas/BookingNotification'
visit_payment_status:
type: object
properties:
status_from:
type: string
enum:
- paid
- waiting_for_confirmation
- not-paid
- refunded
- charged_back
example: not-paid
status_to:
type: string
enum:
- paid
- waiting_for_confirmation
- not-paid
- refunded
- charged_back
example: paid
changed_at:
type: string
format: date-time
example: '2021-05-12T10:18:34+01:00'
created_at:
type: string
format: date-time
example: '2021-05-12T10:18:34+01:00'
BreakNotification:
type: object
properties:
id:
type: string
example: '2573784'
since:
type: string
format: date-time
example: '2021-05-14T10:00:00+01:00'
till:
type: string
format: date-time
example: '2021-05-14T12:00:00+01:00'
BreakCreatedNotification:
type: object
properties:
name:
type: string
example: break-created
data:
type: object
properties:
facility:
$ref: '#/components/schemas/Facility'
doctor:
$ref: '#/components/schemas/Doctor'
address:
$ref: '#/components/schemas/Address'
break:
$ref: '#/components/schemas/BreakNotification'
created_at:
type: string
format: date-time
example: '2021-05-12T10:18:34+01:00'
BreakRemovedNotification:
type: object
properties:
name:
type: string
example: break-removed
data:
type: object
properties:
facility:
$ref: '#/components/schemas/Facility'
doctor:
$ref: '#/components/schemas/Doctor'
address:
$ref: '#/components/schemas/Address'
break:
$ref: '#/components/schemas/BreakNotification'
created_at:
type: string
format: date-time
example: '2021-05-12T10:18:34+01:00'
BreakMovedNotification:
type: object
properties:
name:
type: string
example: break-moved
data:
type: object
properties:
facility:
$ref: '#/components/schemas/Facility'
doctor:
$ref: '#/components/schemas/Doctor'
address:
$ref: '#/components/schemas/Address'
break:
$ref: '#/components/schemas/BreakNotification'
created_at:
type: string
format: date-time
example: '2021-05-12T10:18:34+01:00'
PresenceMarkedNotification:
type: object
properties:
name:
type: string
example: presence-marked
data:
type: object
properties:
facility:
$ref: '#/components/schemas/Facility'
doctor:
$ref: '#/components/schemas/Doctor'
address:
$ref: '#/components/schemas/Address'
visit_booking:
$ref: '#/components/schemas/BookingNotification'
presence:
type: string
enum:
- ABSENT
- PRESENT
example: ABSENT
created_at:
type: string
format: date-time
example: '2021-05-12T10:18:34+01:00'
AddressServiceCreatedNotification:
type: object
properties:
name:
type: string
example: address-service-created
data:
type: object
properties:
facility:
$ref: '#/components/schemas/Facility'
doctor:
$ref: '#/components/schemas/Doctor'
address:
$ref: '#/components/schemas/Address'
address_service:
$ref: '#/components/schemas/AddressService'
created_at:
type: string
format: date-time
example: '2021-05-12T10:18:34+01:00'
AddressServiceDeletedNotification:
type: object
properties:
name:
type: string
example: address-service-deleted
data:
type: object
properties:
facility:
$ref: '#/components/schemas/Facility'
doctor:
$ref: '#/components/schemas/Doctor'
address:
$ref: '#/components/schemas/Address'
address_service:
$ref: '#/components/schemas/AddressService'
created_at:
type: string
format: date-time
example: '2021-05-12T10:18:34+01:00'
AddressServiceChangedNotification:
type: object
properties:
name:
type: string
example: address-service-changed
data:
type: object
properties:
facility:
$ref: '#/components/schemas/Facility'
doctor:
$ref: '#/components/schemas/Doctor'
address:
$ref: '#/components/schemas/Address'
address_service:
$ref: '#/components/schemas/AddressService'
created_at:
type: string
format: date-time
example: '2021-05-12T10:18:34+01:00'
AddressCommercialTypeChangedNotification:
type: object
properties:
name:
type: string
example: address-commercial-type-changed
data:
type: object
properties:
facility:
$ref: '#/components/schemas/Facility'
doctor:
$ref: '#/components/schemas/Doctor'
address:
$ref: '#/components/schemas/Address'
created_at:
type: string
format: date-time
example: '2021-05-12T10:18:34+01:00'
AddressAssignedNotification:
type: object
properties:
name:
type: string
example: address-assigned
data:
type: object
properties:
facility:
$ref: '#/components/schemas/Facility'
doctor:
$ref: '#/components/schemas/Doctor'
address:
$ref: '#/components/schemas/Address'
created_at:
type: string
format: date-time
example: '2021-05-12T10:18:34+01:00'
AddressUnassignedNotification:
type: object
properties:
name:
type: string
example: address-unassigned
data:
type: object
properties:
facility:
$ref: '#/components/schemas/Facility'
doctor:
$ref: '#/components/schemas/Doctor'
address:
$ref: '#/components/schemas/Address'
created_at:
type: string
format: date-time
example: '2021-05-12T10:18:34+01:00'
Notification:
type: object
properties:
name:
type: string
enum:
- slot-booking
- slot-booked
- booking-canceled
- booking-moved
- booking-moving
- booking-confirmed
- break-created
- break-moved
- break-removed
- presence-marked
- address-service-created
- address-service-deleted
- address-service-changed
- address-commercial-type-changed
example: slot-booked
data:
type: object
created_at:
type: string
format: date-time
example: '2021-05-12T10:18:34+01:00'
PullMultipleNotificationsResponse:
type: object
properties:
notifications:
type: array
items:
$ref: '#/components/schemas/Notification'
remaining:
type: integer
example: 2
Error:
type: object
properties:
errors:
type: array
items:
type: string
message:
type: string
examples:
SlotBookingNotification:
value:
name: slot-booking
data:
facility:
id: '1'
name: Sample hospital
doctor:
id: '123'
name: Sample
surname: Doctor 123
address:
id: '111'
name: Example hospital
street: Some street
post_code: xx-xxx
visit_booking_request:
booking_at: '2021-05-12T10:18:24+01:00'
booking_by: user
duration: 30
start_at: '2021-05-26T16:00:00+01:00'
end_at: '2021-05-26T16:30:00+01:00'
address_service:
id: '243665'
name: biopsja nerki
price: 50
is_price_from: false
is_visible: true
patient:
name: Abraham
surname: Lincoln
email: example@example.com
phone: '+48123123123'
birth_date: '1985-01-01'
nin: '894237492'
gender: m
insurance_number: CARD-7654321
comment: Additional information about the visit
created_at: '2021-05-12T10:18:34+01:00'
SlotBookingWhenVisitPaymentNotification:
value:
name: slot-booking
data:
facility:
id: '1'
name: Sample hospital
doctor:
id: '123'
name: Sample
surname: Doctor 123
address:
id: '111'
name: Example hospital
street: Some street
post_code: xx-xxx
visit_booking_request:
booking_at: '2021-05-12T10:18:24+01:00'
booking_by: user
duration: 30
start_at: '2021-05-26T16:00:00+01:00'
end_at: '2021-05-26T16:30:00+01:00'
address_service:
id: '243665'
name: biopsja nerki
price: 50
is_price_from: false
is_visible: true
patient:
name: Abraham
surname: Lincoln
email: example@example.com
phone: '+48123123123'
birth_date: '1985-01-01'
nin: '894237492'
gender: m
insurance_number: CARD-7654321
comment: Additional information about the visit
visit_payment: true
created_at: '2021-05-12T10:18:34+01:00'
SlotBookedNotification:
value:
name: slot-booked
data:
facility:
id: '1'
name: Sample hospital
doctor:
id: '123'
name: Sample
surname: Doctor 123
address:
id: '111'
name: Example hospital
street: Some street
post_code: xx-xxx
visit_booking:
id: '6263715'
status: booked
start_at: '2021-05-26T16:00:00+01:00'
end_at: '2021-05-26T16:30:00+01:00'
duration: 30
booked_by: user
canceled_by: ''
booked_at: '2021-05-12T10:18:24+01:00'
address_service:
id: '243665'
name: biopsja nerki
price: 50
is_price_from: false
is_visible: true
patient:
name: Abraham
surname: Lincoln
email: example@example.com
phone: '+48123123123'
birth_date: '1985-01-01'
nin: '894237492'
gender: m
insurance_number: CARD-7654321
comment: Additional information about the visit
insurance:
id: '1'
name: Sample Insurance 1
plan: ''
plan_id: ''
created_at: '2021-05-12T10:18:34+01:00'
SlotBookedByDoctorNotification:
value:
name: slot-booked
data:
facility:
id: '1'
name: Sample hospital
doctor:
id: '123'
name: Sample
surname: Doctor 123
address:
id: '111'
name: Example hospital
street: Some street
post_code: xx-xxx
visit_booking:
id: '6263715'
status: booked
start_at: '2021-05-26T16:00:00+01:00'
end_at: '2021-05-26T16:30:00+01:00'
duration: 30
booked_by: doctor
canceled_by: ''
booked_at: '2021-05-12T10:18:24+01:00'
address_service:
id: '243665'
name: biopsja nerki
price: 50
is_price_from: false
is_visible: true
patient:
name: Abraham
surname: Lincoln
email: example@example.com
phone: '+48123123123'
birth_date: '1985-01-01'
nin: '894237492'
gender: m
insurance_number: CARD-7654321
comment: Additional information about the visit
created_at: '2021-05-12T10:18:34+01:00'
SlotBookedWhenVisitPaymentNotification:
value:
name: slot-booked
data:
facility:
id: '1'
name: Sample hospital
doctor:
id: '123'
name: Sample
surname: Doctor 123
address:
id: '111'
name: Example hospital
street: Some street
post_code: xx-xxx
visit_booking:
id: '6263715'
status: booked
start_at: '2021-05-26T16:00:00+01:00'
end_at: '2021-05-26T16:30:00+01:00'
duration: 30
booked_by: user
canceled_by: ''
booked_at: '2021-05-12T10:18:24+01:00'
address_service:
id: '243665'
name: biopsja nerki
price: 50
is_price_from: false
is_visible: true
patient:
name: Abraham
surname: Lincoln
email: example@example.com
phone: '+48123123123'
birth_date: '1985-01-01'
nin: '894237492'
gender: m
insurance_number: CARD-7654321
comment: Additional information about the visit
visit_payment: true
created_at: '2021-05-12T10:18:34+01:00'
SlotBookedWhenVideocallNotification:
value:
name: slot-booked
data:
facility:
id: '1'
name: Sample hospital
doctor:
id: '123'
name: Sample
surname: Doctor 123
address:
id: '111'
name: Example hospital
street: Some street
post_code: xx-xxx
visit_booking:
id: '6263715'
status: booked
start_at: '2021-05-26T16:00:00+01:00'
end_at: '2021-05-26T16:30:00+01:00'
duration: 30
booked_by: user
canceled_by: ''
booked_at: '2021-05-12T10:18:24+01:00'
address_service:
id: '243665'
name: biopsja nerki
price: 50
is_price_from: false
is_visible: true
patient:
name: Abraham
surname: Lincoln
email: example@example.com
phone: '+48123123123'
birth_date: '1985-01-01'
nin: '894237492'
gender: m
insurance_number: CARD-7654321
comment: Additional information about the visit
videocall_url: http://url-to-video-call
created_at: '2021-05-12T10:18:34+01:00'
BookingCanceledNotification:
value:
name: booking-canceled
data:
facility:
id: '1'
name: Sample hospital
doctor:
id: '123'
name: Sample
surname: Doctor 123
address:
id: '111'
name: Example hospital
street: Some street
post_code: xx-xxx
visit_booking:
id: '6263715'
status: canceled
start_at: '2021-05-26T16:00:00+01:00'
end_at: '2021-05-26T16:30:00+01:00'
duration: 30
booked_by: user
canceled_by: user
booked_at: '2021-05-12T10:18:24+01:00'
canceled_at: '2021-05-14T15:45:57+01:00'
address_service:
id: '243665'
name: biopsja nerki
price: 50
is_price_from: false
is_visible: true
patient:
name: Abraham
surname: Lincoln
email: example@example.com
phone: '+48123123123'
birth_date: '1985-01-01'
nin: '894237492'
gender: m
insurance_number: CARD-7654321
created_at: '2021-05-14T15:46:34+01:00'
BookingCanceledByDoctorNotification:
value:
name: booking-canceled
data:
facility:
id: '1'
name: Sample hospital
doctor:
id: '123'
name: Sample
surname: Doctor 123
address:
id: '111'
name: Example hospital
street: Some street
post_code: xx-xxx
visit_booking:
id: '6263715'
status: canceled
start_at: '2021-05-26T16:00:00+01:00'
end_at: '2021-05-26T16:30:00+01:00'
duration: 30
booked_by: user
canceled_by: doctor
booked_at: '2021-05-12T10:18:24+01:00'
canceled_at: '2021-05-14T15:45:57+01:00'
address_service:
id: '243665'
name: biopsja nerki
price: 50
is_price_from: false
is_visible: true
patient:
name: Abraham
surname: Lincoln
email: example@example.com
phone: '+48123123123'
birth_date: '1985-01-01'
nin: '894237492'
gender: m
insurance_number: CARD-7654321
created_at: '2021-05-14T15:46:34+01:00'
BookingMovedNotification:
value:
name: booking-moved
data:
facility:
id: '1'
name: Sample hospital
doctor:
id: '123'
name: Sample
surname: Doctor 123
address:
id: '111'
name: Example hospital
street: Some street
post_code: xx-xxx
old_visit_booking:
id: '6263715'
status: canceled
start_at: '2021-05-26T16:00:00+01:00'
end_at: '2021-05-26T16:30:00+01:00'
duration: 30
booked_by: user
canceled_by: doctor
booked_at: '2021-05-12T10:18:24+01:00'
canceled_at: '2021-05-14T15:45:57+01:00'
address_service:
id: '243665'
name: biopsja nerki
price: 50
is_price_from: false
is_visible: true
patient:
name: Abraham
surname: Lincoln
email: example@example.com
phone: '+48123123123'
birth_date: '1985-01-01'
nin: '894237492'
gender: m
insurance_number: CARD-7654321
new_visit_booking:
id: '6264532'
status: booked
start_at: '2021-05-27T11:00:00+01:00'
end_at: '2021-05-27T11:30:00+01:00'
duration: 30
booked_by: doctor
canceled_by: ''
booked_at: '2021-05-14T10:19:02+01:00'
address_service:
id: '243665'
name: biopsja nerki
price: 50
is_price_from: false
is_visible: true
patient:
name: Abraham
surname: Lincoln
email: example@example.com
phone: '+48123123123'
birth_date: '1985-01-01'
nin: '894237492'
gender: m
insurance_number: CARD-7654321
created_at: '2021-05-14T15:46:34+01:00'
BookingMovingNotification:
value:
name: booking-moving
data:
facility:
id: '1'
name: Sample hospital
doctor:
id: '123'
name: Sample
surname: Doctor 123
address:
id: '111'
name: Example hospital
street: Some street
post_code: xx-xxx
canceling_booking:
id: '6263715'
start_at: '2021-05-26T16:00:00+01:00'
end_at: '2021-05-26T16:30:00+01:00'
duration: 30
booked_by: user
canceling_by: doctor
booked_at: '2021-05-12T10:18:24+01:00'
canceling_at: '2021-05-14T15:45:57+01:00'
address_service:
id: '243665'
name: biopsja nerki
price: 50
is_price_from: false
is_visible: true
creating_booking:
start_at: '2021-05-27T11:00:00+01:00'
end_at: '2021-05-27T11:30:00+01:00'
duration: 30
booking_by: doctor
booking_at: '2021-05-14T10:19:02+01:00'
address_service:
id: '243665'
name: biopsja nerki
price: 50
is_price_from: false
is_visible: true
signature: 699c9b15-a72f-741b-cd24-fdef7b00551e
created_at: '2021-05-14T15:46:34+01:00'
BookingConfirmedNotification:
value:
name: booking-confirmed
data:
facility:
id: '1'
name: Sample hospital
doctor:
id: '123'
name: Sample
surname: Doctor 123
address:
id: '111'
name: Example hospital
street: Some street
post_code: xx-xxx
visit_booking:
id: '6263715'
status: booked
start_at: '2021-05-26T16:00:00+01:00'
end_at: '2021-05-26T16:30:00+01:00'
duration: 30
booked_by: user
canceled_by: ''
booked_at: '2021-05-12T10:18:24+01:00'
address_service:
id: '243665'
name: biopsja nerki
price: 50
is_price_from: false
is_visible: true
patient:
name: Abraham
surname: Lincoln
email: example@example.com
phone: '+48123123123'
birth_date: '1985-01-01'
nin: '894237492'
gender: m
insurance_number: CARD-7654321
comment: Additional information about the visit
created_at: '2021-05-12T10:18:34+01:00'
BookingPaymentStatusChangedNotification:
value:
name: booking-payment-status-changed
data:
facility:
id: '1'
name: Sample hospital
doctor:
id: '123'
name: Sample
surname: Doctor 123
address:
id: '111'
name: Example hospital
street: Some street
post_code: xx-xxx
visit_booking:
id: '6263715'
status: booked
start_at: '2021-05-26T16:00:00+01:00'
end_at: '2021-05-26T16:30:00+01:00'
duration: 30
booked_by: user
canceled_by: ''
booked_at: '2021-05-12T10:18:24+01:00'
canceled_at: null,
comment: Additional information about the visit
patient:
name: Abraham
surname: Lincoln
email: example@example.com
phone: '+48123123123'
birth_date: '1985-01-01'
nin: '894237492'
gender: m
insurance_number: CARD-7654321
signature: f6b9b2fc-4faa-feab-58d9-26a3767f1426
visit_payment_status:
status_from: not-paid
status_to: paid
changed_at: '2021-05-12T10:18:34+01:00'
created_at: '2021-05-12T10:18:34+01:00'
BreakCreatedNotification:
value:
name: break-created
data:
facility:
id: '1'
name: Sample hospital
doctor:
id: '123'
name: Sample
surname: Doctor 123
address:
id: '111'
name: Example hospital
street: Some street
post_code: xx-xxx
break:
id: '2573784'
since: '2021-05-25T10:00:00+01:00'
till: '2021-05-25T12:00:00+01:00'
created_at: '2021-05-14T15:46:34+01:00'
BreakRemovedNotification:
value:
name: break-removed
data:
facility:
id: '1'
name: Sample hospital
doctor:
id: '123'
name: Sample
surname: Doctor 123
address:
id: '111'
name: Example hospital
street: Some street
post_code: xx-xxx
break:
id: '2573784'
since: '2021-05-25T10:00:00+01:00'
till: '2021-05-25T12:00:00+01:00'
created_at: '2021-05-14T15:46:34+01:00'
BreakMovedNotification:
value:
name: break-moved
data:
facility:
id: '1'
name: Sample hospital
doctor:
id: '123'
name: Sample
surname: Doctor 123
address:
id: '111'
name: Example hospital
street: Some street
post_code: xx-xxx
break:
id: '2573784'
since: '2021-05-25T10:00:00+01:00'
till: '2021-05-25T12:00:00+01:00'
created_at: '2021-05-14T15:46:34+01:00'
PresenceMarkedNotification:
value:
name: presence-marked
data:
facility:
id: '1'
name: Sample hospital
doctor:
id: '123'
name: Sample
surname: Doctor 123
address:
id: '111'
name: Example hospital
street: Some street
post_code: xx-xxx
visit_booking:
id: '6264532'
status: booked
start_at: '2021-05-27T11:00:00+01:00'
end_at: '2021-05-27T11:30:00+01:00'
duration: 30
booked_by: user
canceled_by: ''
booked_at: '2021-05-14T10:19:02+01:00'
patient:
name: Abraham
surname: Lincoln
email: example@example.com
phone: '+48123123123'
birth_date: '1985-01-01'
nin: '894237492'
gender: m
is_returning: true
insurance_number: CARD-7654321
signature: f6b9b2fc-4faa-feab-58d9-26a3767f1426
presence: ABSENT
created_at: '2021-05-14T15:46:34+01:00'
AddressServiceCreatedNotification:
value:
name: address-service-created
data:
facility:
id: '1'
name: Sample hospital
doctor:
id: '123'
name: Sample
surname: Doctor 123
address:
id: '111'
name: Example hospital
street: Some street
post_code: xx-xxx
address_service:
id: '111'
name: USG
price: 150
is_price_from: false
is_default: true
description: Address service description 1
service_id: '1'
is_visible: true
created_at: '2021-05-14T15:46:34+01:00'
AddressServiceDeletedNotification:
value:
name: address-service-deleted
data:
facility:
id: '1'
name: Sample hospital
doctor:
id: '123'
name: Sample
surname: Doctor 123
address:
id: '111'
name: Example hospital
street: Some street
post_code: xx-xxx
address_service:
id: '111'
name: USG
price: 150
is_price_from: false
is_default: true
description: Address service description 1
service_id: '1'
is_visible: true
created_at: '2021-05-14T15:46:34+01:00'
AddressServiceChangedNotification:
value:
name: address-service-changed
data:
facility:
id: '1'
name: Sample hospital
doctor:
id: '123'
name: Sample
surname: Doctor 123
address:
id: '111'
name: Example hospital
street: Some street
post_code: xx-xxx
address_service:
id: '111'
name: USG
price: 150
is_price_from: false
is_default: true
description: Address service description 1
service_id: '1'
is_visible: true
created_at: '2021-05-14T15:46:34+01:00'
AddressCommercialTypeChangedNotification:
value:
name: address-commercial-type-changed
data:
facility:
id: '1'
name: Sample hospital
doctor:
id: '123'
name: Sample
surname: Doctor 123
address:
id: '111'
name: Example hospital
street: Some street
post_code: xx-xxx
commercial_type: premium
created_at: '2021-05-14T15:46:34+01:00'
AddressAssignedNotification:
value:
name: address-assigned
data:
facility:
id: '1'
name: Sample hospital
doctor:
id: '123'
name: Sample
surname: Doctor 123
address:
id: '111'
name: Example hospital
street: Some street
post_code: xx-xxx
commercial_type: premium
created_at: '2021-05-14T15:46:34+01:00'
AddressUnassignedNotification:
value:
name: address-unassigned
data:
facility:
id: '1'
name: Sample hospital
doctor:
id: '123'
name: Sample
surname: Doctor 123
address:
id: '111'
name: Example hospital
street: Some street
post_code: xx-xxx
commercial_type: premium
created_at: '2021-05-14T15:46:34+01:00'
PullingMultipleNotifications:
value:
notifications:
- name: break-created
data:
facility:
id: '1'
name: Sample hospital
doctor:
id: '123'
name: Sample
surname: Doctor 123
address:
id: '111'
name: Example hospital
street: Some street
post_code: xx-xxx
break:
id: '2573784'
since: '2021-05-25T10:00:00+01:00'
till: '2021-05-25T12:00:00+01:00'
created_at: '2021-05-14T15:46:34+01:00'
- name: presence-marked
data:
facility:
id: '1'
name: Sample hospital
doctor:
id: '123'
name: Sample
surname: Doctor 123
address:
id: '111'
name: Example hospital
street: Some street
post_code: xx-xxx
visit_booking:
id: '6264532'
status: booked
start_at: '2021-05-27T11:00:00+01:00'
end_at: '2021-05-27T11:30:00+01:00'
duration: 30
booked_by: user
canceled_by: ''
booked_at: '2021-05-14T10:19:02+01:00'
patient:
name: Abraham
surname: Lincoln
email: example@example.com
phone: '+48123123123'
birth_date: '1985-01-01'
nin: '894237492'
gender: m
is_returning: true
insurance_number: CARD-7654321
signature: f6b9b2fc-4faa-feab-58d9-26a3767f1426
presence: ABSENT
created_at: '2021-05-14T15:46:34+01:00'
remaining: 5
PullingAllOfRemainingNotifications:
value:
notifications:
- name: break-created
data:
facility:
id: '1'
name: Sample hospital
doctor:
id: '123'
name: Sample
surname: Doctor 123
address:
id: '111'
name: Example hospital
street: Some street
post_code: xx-xxx
break:
id: '2573784'
since: '2021-05-25T10:00:00+01:00'
till: '2021-05-25T12:00:00+01:00'
created_at: '2021-05-14T15:46:34+01:00'
remaining: 0
Facilities:
value:
_items:
- id: '1'
name: Sample hospital
- id: '2'
name: Another sample hospital
Facility:
value:
id: '1'
name: Sample hospital
FacilityWithDoctors:
value:
id: '1'
name: Sample hospital
doctors:
_items:
- id: '123'
name: Sample
surname: Doctor 123
- id: '234'
name: Sample
surname: Doctor 234
Doctors:
value:
_items:
- id: '123'
name: Sample
surname: Doctor 123
- id: '234'
name: Sample
surname: Doctor 234
DoctorsWithProfileUrl:
value:
_items:
- id: '123'
name: Sample
surname: Doctor 123
profile_url: http://url-to-doctors-profile
- id: '234'
name: Sample
surname: Doctor 234
profile_url: http://url-to-doctors-profile
DoctorsWithSpecializations:
value:
_items:
- id: '123'
name: Sample
surname: Doctor 123
specializations:
_items:
- id: '12'
name: Specialization example 12
- id: '234'
name: Sample
surname: Doctor 234
specializations:
_items:
- id: '23'
name: Specialization example 23
DoctorsWithLicenseNumbers:
value:
_items:
- id: '123'
name: Sample
surname: Doctor 123
license_numbers:
_items:
- id: '12'
license_number: License number 1
- id: '234'
name: Sample
surname: Doctor 234
license_numbers:
_items:
- id: '23'
license_number: License number 2
Doctor:
value:
id: '123'
name: Sample
surname: Doctor 123
specializations:
_items:
- id: '12'
name: Specialization example 12
DoctorWithProfileUrl:
value:
id: '123'
name: Sample
surname: Doctor 123
profile_url: http://url-to-doctors-profile
DoctorWithAddresses:
value:
id: '123'
name: Sample
surname: Doctor 123
addresses:
_items:
- id: '111'
name: Example hospital
post_code: xx-xxx
street: Some street
specializations:
_items:
- id: '12'
name: Specialization example 12
DoctorWithOnlineOnlyAddresses:
value:
id: '123'
name: Sample
surname: Doctor 123
addresses:
_items:
- id: '111'
name: Example hospital
post_code: xx-xxx
street: Some street
is_online_only: true
specializations:
_items:
- id: '12'
name: Specialization example 12
DoctorWithVisitPaymentAddresses:
value:
id: '123'
name: Sample
surname: Doctor 123
addresses:
_items:
- id: '111'
name: Example hospital
post_code: xx-xxx
street: Some street
visit_payment: false
specializations:
_items:
- id: '12'
name: Specialization example 12
DoctorWithAddressBookingExtraFields:
value:
id: '123'
name: Sample
surname: Doctor 123
addresses:
_items:
- id: '111'
name: Example hospital
post_code: xx-xxx
street: Some street
booking_extra_fields:
birth_date: true
gender: true
nin: true
specializations:
_items:
- id: '12'
name: Specialization example 12
DoctorWithAddressCommercialType:
value:
id: '123'
name: Sample
surname: Doctor 123
addresses:
_items:
- id: '111'
name: Example hospital
post_code: xx-xxx
street: Some street
commercial_type: basic
specializations:
_items:
- id: '12'
name: Specialization example 12
DoctorWithLicenseNumbers:
value:
id: '123'
name: Sample
surname: Doctor 123
license_numbers:
_items:
- id: '12'
license_number: License number 1
Addresses:
value:
_items:
- id: '111'
name: Example hospital
city_name: Some city
post_code: xx-xxx
street: Some street
booking_extra_fields:
birth_date: false
gender: false
nin: false
AddressesWithOnlineOnly:
value:
_items:
- id: '111'
name: Example hospital
city_name: Some city
post_code: xx-xxx
street: Some street
is_online_only: true
booking_extra_fields:
birth_date: false
gender: false
nin: false
AddressesWithVisitPayment:
value:
_items:
- id: '111'
name: Example hospital
city_name: Some city
post_code: xx-xxx
street: Some street
booking_extra_fields:
birth_date: false
gender: false
nin: false
visit_payment: false
AddressesWithCommercialType:
value:
_items:
- id: '111'
name: Example hospital
city_name: Some city
post_code: xx-xxx
street: Some street
booking_extra_fields:
birth_date: false
gender: false
nin: false
commercial_type: basic
AddressesWithInsuranceSupport:
value:
_items:
- id: '111'
name: Example hospital
post_code: xx-xxx
street: Some street
booking_extra_fields:
birth_date: false
gender: false
nin: false
insurance_support: private
Address:
value:
id: '111'
name: Example hospital
city_name: Some city
post_code: xx-xxx
street: Some street
booking_extra_fields:
birth_date: false
gender: false
nin: false
AddressWithOnlineOnly:
value:
id: '111'
name: Example hospital
city_name: Some city
post_code: xx-xxx
street: Some street
is_online_only: true
booking_extra_fields:
birth_date: false
gender: false
nin: false
AddressWithVisitPayment:
value:
id: '111'
name: Example hospital
city_name: Some city
post_code: xx-xxx
street: Some street
booking_extra_fields:
birth_date: false
gender: false
nin: false
visit_payment: true
AddressWithCommercialType:
value:
id: '111'
name: Example hospital
city_name: Some city
post_code: xx-xxx
street: Some street
booking_extra_fields:
birth_date: false
gender: false
nin: false
commercial_type: basic
AddressWithInsuranceSupport:
value:
id: '111'
name: Example hospital
city_name: Some city
post_code: xx-xxx
street: Some street
booking_extra_fields:
birth_date: false
gender: false
nin: false
insurance_support: private
UpdateAddress:
value:
insurance_support: private_and_insurance
Services:
value:
_items:
- id: '1'
name: USG
- id: '2'
name: EKG
- id: '3'
name: EEG
AddressServices:
value:
_items:
- id: '101'
name: USG
is_default: true
is_price_from: false
price: 100
description: Description of service
service_id: '1'
is_visible: true
allowed_patients:
minimum_age: 18
maximum_age: 65
- id: '103'
name: EEG
is_default: true
is_price_from: false
price: null
description: Description of service
service_id: '3'
is_visible: false
allowed_patients: null
AddressServicesWithStartDate:
value:
_items:
- id: '101'
name: USG
is_default: true
is_price_from: false
price: 100
description: Description of service
service_id: '1'
duration: 15
is_visible: true
- id: '103'
name: EEG
is_default: true
is_price_from: false
price: null
description: Description of service
service_id: '3'
duration: 30
is_visible: false
AddressServicesWithCustomName:
value:
_items:
- id: '101'
name: USG
is_default: true
is_price_from: false
price: 100
description: Description of service
service_id: '1'
duration: 15
is_visible: true
custom_name: Custom USG Name
- id: '103'
name: EEG
is_default: true
is_price_from: false
price: null
description: Description of service
service_id: '3'
duration: 30
is_visible: false
custom_name: EEG
AddressServicesWithAllowedPatients:
value:
_items:
- id: '101'
name: USG
is_default: true
is_price_from: false
price: 100
description: Description of service
service_id: '1'
duration: 15
is_visible: true
allowed_patients:
minimum_age: 18
maximum_age: 65
- id: '103'
name: EEG
is_default: true
is_price_from: false
price: null
description: Description of service
service_id: '3'
duration: 30
is_visible: false
allowed_patients:
minimum_age: null
maximum_age: 65
- id: '104'
name: Service name
is_default: true
is_price_from: false
price: null
description: Description of service
service_id: '14'
duration: 30
is_visible: false
allowed_patients:
minimum_age: 5
maximum_age: null
AddressServicesWithPublicInsuranceFlow:
value:
_items:
- id: '101'
name: USG
is_default: true
is_price_from: false
price: 100
description: Description of service
service_id: '1'
is_visible: true
allowed_patients:
minimum_age: 18
maximum_age: 65
is_public_insurance_flow: true
- id: '103'
name: EEG
is_default: true
is_price_from: false
price: null
description: Description of service
service_id: '3'
is_visible: false
allowed_patients: null
is_public_insurance_flow: true
AddAddressService:
value:
service_id: '2'
is_price_from: true
price: 200
description: Address service description
is_visible: true
default_duration: 20
allowed_patients:
minimum_age: 18
maximum_age: 65
custom_name: Custom USG Name
AddressService:
value:
id: '101'
name: USG
is_default: true
is_price_from: false
price: 100
description: Description of service
service_id: '1'
is_visible: true
AddressServiceWithAllowedPatients:
value:
id: '101'
name: USG
is_default: true
is_price_from: false
price: 100
description: Description of service
service_id: '1'
is_visible: true
allowed_patients:
minimum_age: 18
maximum_age: 65
AddressServiceWithCustomName:
value:
id: '101'
name: USG
is_default: true
is_price_from: false
price: 100
description: Description of service
service_id: '1'
is_visible: true
custom_name: Custom USG Name
AddressServiceWithPublicInsuranceFlow:
value:
id: '101'
name: USG
is_default: true
is_price_from: false
price: 100
description: Description of service
service_id: '1'
is_visible: true
is_public_insurance_flow: false
PatchAddressService:
value:
price: 200
is_price_from: true
description: Address service description
default_duration: 20
is_visible: true
allowed_patients:
minimum_age: 21
maximum_age: 60
custom_name: Custom USG Name
PatchAddressServiceResponse:
value:
id: '101'
name: USG
is_default: true
is_price_from: true
price: 200
description: Address service description
service_id: '1'
is_visible: true
DictionaryInsuranceProviders:
value:
_items:
- insurance_provider_id: '1'
name: Insurance provider 1
- insurance_provider_id: '2'
name: Insurance provider 2
- insurance_provider_id: '3'
name: Insurance provider 3
DictionaryInsurancePlans:
value:
_items:
- insurance_plan_id: '999'
name: Insurance plan 999
- insurance_plan_id: '1000'
name: Insurance plan 1000
AddressInsuranceProviders:
value:
_items:
- insurance_provider_id: '1'
name: Insurance provider 1
insurance_plans:
_items:
- insurance_plan_id: '999'
name: Insurance plan 999
- insurance_plan_id: '1000'
name: Insurance plan 1000
- insurance_provider_id: '2'
name: Insurance provider 2
insurance_plans:
_items: []
AddAddressInsuranceProvider:
value:
insurance_provider_id: '3'
AddAddressInsuranceProviderWithPlans:
value:
insurance_provider_id: '3'
insurance_plans:
- insurance_plan_id: '999'
- insurance_plan_id: '1000'
UpdateOrCreateAddressInsuranceProvider:
value:
insurance_provider_id: '3'
insurance_plans:
- insurance_plan_id: '999'
- insurance_plan_id: '1000'
CalendarEnabled:
value:
status: enabled
CalendarDisabled:
value:
status: disabled
CalendarBreak:
value:
id: '567'
since: '2020-12-16T14:00:00+01:00'
till: '2020-12-16T14:30:00+01:00'
description: Optional description
Slots:
value:
_items:
- start: '2020-12-16T14:00:00+01:00'
- start: '2020-12-16T14:30:00+01:00'
SlotsWithServices:
value:
_items:
- start: '2020-12-16T14:00:00+01:00'
address_services:
_items:
- id: '111'
name: USG
price: 150
is_price_from: false
is_default: true
description: Address service description 1
service_id: '1'
is_visible: true
- id: '112'
name: EEG
price: 100
is_price_from: false
is_default: true
description: Address service description 2
service_id: '2'
is_visible: true
- start: '2020-12-16T14:30:00+01:00'
address_services:
_items:
- id: '111'
name: USG
price: 150
is_price_from: false
is_default: true
description: Address service description 1
service_id: '1'
is_visible: true
ReplaceSlots:
value:
slots:
- address_services:
- address_service_id: '111'
duration: 30
- address_service_id: '112'
duration: 15
start: '2021-05-16T14:00:00+01:00'
end: '2021-05-16T15:00:00+01:00'
insurance_accepted: with-insurance-only
insurance_providers:
- 52
- 67
- address_services:
- address_service_id: '112'
duration: 15
start: '2021-05-16T15:00:00+01:00'
end: '2021-05-16T16:00:00+01:00'
BookSlot:
value:
address_service_id: '113'
is_returning: false
duration: 30
label: label
comment: comment
insurance_provider_if: '14'
insurance_plan_id: 'null'
is_recurring: false
patient:
name: Abraham
surname: Lincoln
email: example@example.com
phone: 48123123123
birth_date: '1985-01-01'
nin: 894237492
gender: m
marketing_consent: true
data_privacy_consent: true
Slot:
value:
id: '2134124'
status: booked
start_at: '2021-05-16T14:00:00+01:00'
end_at: '2021-05-16T14:30:00+01:00'
duration: 30
booked_by: user
canceled_by: ''
booked_at: '2021-05-12T12:00:00+01:00'
canceled_at: '2021-05-16T14:30:00+01:00'
comment: comment
Bookings:
value:
_items:
- id: '2134124'
status: booked
start_at: '2021-05-16T14:00:00+01:00'
end_at: '2021-05-16T14:30:00+01:00'
duration: 30
booked_by: user
canceled_by: ''
booked_at: '2021-05-12T12:00:00+01:00'
canceled_at: null
comment: comment
insurance:
id: '11'
name: Axa
plan: null
plan_id: null
- id: '2134125'
status: booked
start_at: '2021-05-16T17:00:00+01:00'
end_at: '2021-05-16T17:30:00+01:00'
duration: 15
booked_by: doctor
canceled_by: doctor
booked_at: '2021-05-12T13:00:00+01:00'
canceled_at: '2021-05-16T14:30:00+01:00'
comment: null
insurance:
id: '11'
name: Axa
plan: null
plan_id: null
BookingsPaginated:
value:
page: 1
limit: 2
pages: 11
total: 25
_items:
- id: '2134124'
status: booked
start_at: '2021-05-16T14:00:00+01:00'
end_at: '2021-05-16T14:30:00+01:00'
duration: 30
booked_by: user
canceled_by: ''
booked_at: '2021-05-12T12:00:00+01:00'
canceled_at: null
comment: comment
insurance:
id: '11'
name: Axa
plan: null
plan_id: null
- id: '2134125'
status: booked
start_at: '2021-05-16T17:00:00+01:00'
end_at: '2021-05-16T17:30:00+01:00'
duration: 15
booked_by: doctor
canceled_by: doctor
booked_at: '2021-05-12T13:00:00+01:00'
canceled_at: '2021-05-16T14:30:00+01:00'
comment: null
insurance:
id: '11'
name: Axa
plan: null
plan_id: null
BookingsVisitPaymentsEnabled:
value:
_items:
- id: '2134124'
status: booked
start_at: '2021-05-16T14:00:00+01:00'
end_at: '2021-05-16T14:30:00+01:00'
duration: 30
booked_by: user
canceled_by: ''
booked_at: '2021-05-12T12:00:00+01:00'
canceled_at: null
comment: comment
insurance:
id: '11'
name: Axa
plan: null
plan_id: null
visit_payment: true
visit_payment_status: successful
- id: '2134125'
status: booked
start_at: '2021-05-16T17:00:00+01:00'
end_at: '2021-05-16T17:30:00+01:00'
duration: 15
booked_by: doctor
canceled_by: doctor
booked_at: '2021-05-12T13:00:00+01:00'
canceled_at: '2021-05-16T14:30:00+01:00'
comment: null
insurance:
id: '11'
name: Axa
plan: null
plan_id: null
visit_payment: true
visit_payment_status: paid
BookingsWithPatient:
value:
_items:
- id: '2134124'
status: booked
start_at: '2021-05-16T14:00:00+01:00'
end_at: '2021-05-16T14:30:00+01:00'
duration: 30
booked_by: user
canceled_by: ''
booked_at: '2021-05-12T12:00:00+01:00'
canceled_at: null
patient:
name: Abraham
surname: Lincoln
email: example@example.com
phone: 48123123123
birth_date: '1985-01-01'
nin: 894237492
gender: m
is_returning: false
insurance_number: CARD-7654321
comment: comment
insurance:
id: '11'
name: Axa
plan: null
plan_id: null
- id: '2134125'
status: booked
start_at: '2021-05-16T17:00:00+01:00'
end_at: '2021-05-16T17:30:00+01:00'
duration: 15
booked_by: doctor
canceled_by: doctor
booked_at: '2021-05-12T13:00:00+01:00'
canceled_at: '2021-05-16T14:30:00+01:00'
patient:
name: Abraham
surname: Lincoln
email: example@example.com
phone: 48123123123
birth_date: '1985-01-01'
nin: 894237492
gender: m
is_returning: false
insurance_number: CARD-7654321
comment: null
insurance:
id: '11'
name: Axa
plan: null
plan_id: null
BookingsWithAddressService:
value:
_items:
- id: '2134124'
status: booked
start_at: '2021-05-16T14:00:00+01:00'
end_at: '2021-05-16T14:30:00+01:00'
duration: 30
booked_by: user
canceled_by: ''
booked_at: '2021-05-12T12:00:00+01:00'
canceled_at: null
address_service:
id: '101'
name: USG
price: 100
is_price_from: false
is_default: true
service_id: '1'
description: Description of service
is_visible: true
comment: comment
insurance:
id: '11'
name: Axa
plan: null
plan_id: null
- id: '2134125'
status: booked
start_at: '2021-05-16T17:00:00+01:00'
end_at: '2021-05-16T17:30:00+01:00'
duration: 15
booked_by: doctor
canceled_by: doctor
booked_at: '2021-05-12T13:00:00+01:00'
canceled_at: '2021-05-16T14:30:00+01:00'
address_service:
id: '101'
name: USG
price: 100
is_price_from: false
is_default: true
service_id: '1'
description: Description of service
is_visible: true
comment: null
insurance:
id: '11'
name: Axa
plan: null
plan_id: null
BookingsWithPresence:
value:
_items:
- id: '2134124'
status: booked
start_at: '2021-05-16T14:00:00+01:00'
end_at: '2021-05-16T14:30:00+01:00'
duration: 30
booked_by: user
canceled_by: ''
booked_at: '2021-05-12T12:00:00+01:00'
canceled_at: null
comment: comment
presence: null
insurance:
id: '11'
name: Axa
plan: null
plan_id: null
- id: '2134125'
status: booked
start_at: '2021-05-16T17:00:00+01:00'
end_at: '2021-05-16T17:30:00+01:00'
duration: 15
booked_by: doctor
canceled_by: doctor
booked_at: '2021-05-12T13:00:00+01:00'
canceled_at: '2021-05-16T14:30:00+01:00'
comment: null
presence: present
insurance:
id: '11'
name: Axa
plan: null
plan_id: null
BookingsWithConfirmation:
value:
_items:
- id: '2134124'
status: booked
start_at: '2021-05-16T14:00:00+01:00'
end_at: '2021-05-16T14:30:00+01:00'
duration: 30
booked_by: user
canceled_by: ''
booked_at: '2021-05-12T12:00:00+01:00'
canceled_at: null
comment: comment
confirmed: false
insurance:
id: '11'
name: Axa
plan: null
plan_id: null
- id: '2134125'
status: booked
start_at: '2021-05-16T17:00:00+01:00'
end_at: '2021-05-16T17:30:00+01:00'
duration: 15
booked_by: doctor
canceled_by: doctor
booked_at: '2021-05-12T13:00:00+01:00'
canceled_at: '2021-05-16T14:30:00+01:00'
comment: null
confirmed: true
insurance:
id: '11'
name: Axa
plan: null
plan_id: null
BookingsWithPublicInsuranceFlow:
value:
_items:
- id: '2134124'
status: booked
start_at: '2021-05-16T14:00:00+01:00'
end_at: '2021-05-16T14:30:00+01:00'
duration: 30
booked_by: user
canceled_by: ''
booked_at: '2021-05-12T12:00:00+01:00'
canceled_at: null
address_service:
id: '101'
name: USG
price: 100
is_price_from: false
is_default: true
service_id: '1'
description: Description of service
is_visible: true
comment: comment
insurance:
id: '11'
name: Axa
plan: null
plan_id: null
- id: '2134125'
status: booked
start_at: '2021-05-16T17:00:00+01:00'
end_at: '2021-05-16T17:30:00+01:00'
duration: 15
booked_by: doctor
canceled_by: doctor
booked_at: '2021-05-12T13:00:00+01:00'
canceled_at: '2021-05-16T14:30:00+01:00'
address_service:
id: '101'
name: USG
price: 100
is_price_from: false
is_default: true
service_id: '1'
description: Description of service
is_visible: true
is_public_insurance_flow: false
comment: null
insurance:
id: '11'
name: Axa
plan: null
plan_id: null
Booking:
value:
id: '2134124'
status: booked
start_at: '2021-05-16T14:00:00+01:00'
end_at: '2021-05-16T14:30:00+01:00'
duration: 30
booked_by: user
canceled_by: ''
booked_at: '2021-05-12T12:00:00+01:00'
canceled_at: null
patient:
name: Abraham
surname: Lincoln
email: example@example.com
phone: 48123123123
birth_date: '1985-01-01'
nin: 894237492
gender: m
is_returning: false
insurance_number: null
address_service:
id: '101'
name: USG
price: 100
is_price_from: false
is_default: true
service_id: '1'
description: Description of service
is_visible: true
comment: comment
insurance:
id: '11'
name: Axa
plan: null
plan_id: null
BookingVisitPaymentsEnabled:
value:
id: '2134124'
status: booked
start_at: '2021-05-16T14:00:00+01:00'
end_at: '2021-05-16T14:30:00+01:00'
duration: 30
booked_by: user
canceled_by: ''
booked_at: '2021-05-12T12:00:00+01:00'
canceled_at: null
patient:
name: Abraham
surname: Lincoln
email: example@example.com
phone: 48123123123
birth_date: '1985-01-01'
nin: 894237492
gender: m
is_returning: false
insurance_number: CARD-7654321
address_service:
id: '101'
name: USG
price: 100
is_price_from: false
is_default: true
service_id: '1'
description: Description of service
is_visible: true
comment: comment
insurance:
id: '11'
name: Axa
plan: null
plan_id: null
visit_payment: true
visit_payment_status: successful
BookingVideocallEnabled:
value:
id: '2134124'
status: booked
start_at: '2021-05-16T14:00:00+01:00'
end_at: '2021-05-16T14:30:00+01:00'
duration: 30
booked_by: user
canceled_by: ''
booked_at: '2021-05-12T12:00:00+01:00'
canceled_at: null
patient:
name: Abraham
surname: Lincoln
email: example@example.com
phone: 48123123123
birth_date: '1985-01-01'
nin: 894237492
gender: m
is_returning: false
insurance_number: CARD-7654321
address_service:
id: '101'
name: USG
price: 100
is_price_from: false
is_default: true
service_id: '1'
description: Description of service
is_visible: true
comment: comment
insurance:
id: '11'
name: Axa
plan: null
plan_id: null
videocall_url: http://url-to-video-call
BookingWithMovingMoved:
value:
id: '2134124'
status: canceled
start_at: '2021-05-16T14:00:00+01:00'
end_at: '2021-05-16T14:30:00+01:00'
duration: 30
booked_by: user
canceled_by: '2021-05-13T15:12:00+01:00'
booked_at: '2021-05-12T12:00:00+01:00'
canceled_at: null
moving:
origin_booking_id: '2134101'
newest_booking_id: '2134135'
patient:
name: Abraham
surname: Lincoln
email: example@example.com
phone: 48123123123
birth_date: '1985-01-01'
nin: 894237492
gender: m
is_returning: false
insurance_number: CARD-7654321
address_service:
id: '101'
name: USG
price: 100
is_price_from: false
is_default: true
service_id: '1'
description: Description of service
is_visible: true
comment: comment
insurance:
id: '11'
name: Axa
plan: null
plan_id: null
BookingWithMovingNotMoved:
value:
id: '2134124'
status: canceled
start_at: '2021-05-16T14:00:00+01:00'
end_at: '2021-05-16T14:30:00+01:00'
duration: 30
booked_by: user
canceled_by: '2021-05-13T15:12:00+01:00'
booked_at: '2021-05-12T12:00:00+01:00'
canceled_at: null
moving:
origin_booking_id: '2134124'
newest_booking_id: '2134124'
patient:
name: Abraham
surname: Lincoln
email: example@example.com
phone: 48123123123
birth_date: '1985-01-01'
nin: 894237492
gender: m
is_returning: false
insurance_number: CARD-7654321
address_service:
id: '101'
name: USG
price: 100
is_price_from: false
is_default: true
service_id: '1'
description: Description of service
is_visible: true
comment: comment
insurance:
id: '11'
name: Axa
plan: null
plan_id: null
BookingWithMovingNoDataAvailable:
value:
id: '2134124'
status: canceled
start_at: '2021-05-16T14:00:00+01:00'
end_at: '2021-05-16T14:30:00+01:00'
duration: 30
booked_by: user
canceled_by: '2021-05-13T15:12:00+01:00'
booked_at: '2021-05-12T12:00:00+01:00'
canceled_at: null
moving: null
patient:
name: Abraham
surname: Lincoln
email: example@example.com
phone: 48123123123
birth_date: '1985-01-01'
nin: 894237492
gender: m
is_returning: false
insurance_number: CARD-7654321
address_service:
id: '101'
name: USG
price: 100
is_price_from: false
is_default: true
service_id: '1'
description: Description of service
is_visible: true
comment: comment
insurance:
id: '11'
name: Axa
plan: null
plan_id: null
BookingWithPublicInsuranceFlow:
value:
id: '2134124'
status: booked
start_at: '2021-05-16T14:00:00+01:00'
end_at: '2021-05-16T14:30:00+01:00'
duration: 30
booked_by: user
canceled_by: ''
booked_at: '2021-05-12T12:00:00+01:00'
canceled_at: null
patient:
name: Abraham
surname: Lincoln
email: example@example.com
phone: 48123123123
birth_date: '1985-01-01'
nin: 894237492
gender: m
is_returning: false
insurance_number: CARD-7654321
address_service:
id: '101'
name: USG
price: 100
is_price_from: false
is_default: true
service_id: '1'
description: Description of service
is_visible: true
is_public_insurance_flow: false
comment: comment
insurance:
id: '11'
name: Axa
plan: null
plan_id: null
CancelBookingWithPatientNotificationAndReason:
value:
reason: Doctor will not be present on that day in the clinic
ConfirmBooking:
value:
confirmed_by: user
MoveBooking:
value:
address_service_id: '112'
start: '2021-05-26T16:00:00+01:00'
duration: 30
MoveBookingToOtherAddress:
value:
address_service_id: '113'
start: '2021-05-26T16:00:00+01:00'
duration: 30
address_id: '112233'
OpinionRequest:
value:
phone: '123456789'
ObjectNotFound:
value:
errors: []
message: Object not found
FacilityNotAuthorized:
value:
errors: []
message: You are not authorized to see this facility
DoctorNotAuthorized:
value:
errors: []
message: You are not authorized to see this doctor
DoctorDoesNotBelongToFacility:
value:
errors: []
message: Doctor is not related with facility
AddressDoesNotBelongToFacility:
value:
errors: []
message: This address does not belong to this facility
AddressDoesNotBelongToDoctor:
value:
errors: []
message: This address does not belong to this doctor
BookingDoesNotBelongToAddress:
value:
errors: []
message: This booking does not belong to this address
AddressNotAuthorized:
value:
errors: []
message: You are not authorized to see this address
FeatureNotAuthorized:
value:
errors: []
message: You are not authorized to use this feature
CalendarEditionNotAuthorized:
value:
errors: []
message: You are not authorized to make changes on this calendar
AddressServiceMismatch:
value:
errors: []
message: This service does not belong to this address
AddressServiceValidationError:
value:
errors: []
message: 'Validation error message, e.g.: Invalid price value for service. Price should be either null or integer greater or equal 0.'
AddressServiceAlreadyExists:
value:
errors: []
message: The address service you are trying to add already exists in the system
AddAddressInsuranceValidationError:
value:
errors: []
message: 'Validation error message, e.g.: Insurance provider with given ID is already assigned to this address.'
DeleteAddressInsuranceValidationError:
value:
errors: []
message: 'Validation error message, e.g.: Insurance provider with given ID is not assigned to this address.'
InsuranceProviderNotFromDictionary:
value:
errors: []
message: Provided insurance provider ID not found in dictionary
NoSlotsOnAddress:
value:
errors: []
message: No slots found on given address
CalendarNotFoundForAddress:
value:
errors: []
message: Calendar not found for this address
CalendarBreakAlreadyExists:
value:
errors: []
message: Break for given address, date range and description exists
InvalidDateRange:
value:
errors: []
message: Invalid date range
DateRangeExceedsMaximum:
value:
errors: []
message: Date range must not exceed 180 days
InvalidDate:
value:
errors: []
message: Invalid date given.
BreakNotFoundForGivenAddress:
value:
errors: []
message: Invalid break ID
ParameterRequiredSince:
value:
errors: []
message: Param "since" is required!
ParameterRequiredTill:
value:
errors: []
message: Param "till" is required!
SameDateRange:
value:
errors: []
message: Same Date Range
TillEarlierThanSince:
value:
errors: []
message: Till (%s) cannot be set before since (%s)
DoctorOrAddressNotCommercial:
value:
errors: []
message: Cannot activate calendar on address 123, profile/address is not commercial
AddressServiceDoesNotExist:
value:
errors: []
message: Address service does not exist
SlotsFromFurtherThen12Weeks:
value:
errors:
slots[1].end:
- End date should be less than or equal to 15.05.2021, 11:45.
message: Invalid arguments
InsuranceProviderDoesNotExist:
value:
errors: []
message: Insurance provider(s) with id (%s) not found for address id (%d)'
InsuranceProvidersMissing:
value:
errors: []
message: Slot requires insurance (with-insurance-only), but insurance providers are missing
InsuranceProvidersNotSupported:
value:
errors: []
message: Insurance providers are not supported. Slot does not allow insurances (without-insurance-only)
SlotExceedsSingleDayBoundary:
value:
errors: []
message: Slot for date range %s - %s exceeds a single day boundary
SlotDurationIsLessThanOneMinute:
value:
errors:
slots[1].minimumDifferenceBetweenDates:
- The end date must be at least 1 minute after the start date
message: Invalid arguments
UnableToBookForAddress:
value:
errors: []
message: Unable to book a visit for this address
ServiceDoesNotExist:
value:
errors: []
message: Service does not exist
ServiceDoesNotBelongToAddress:
value:
errors: []
message: Service does not belong to the address
AddressDoesNotExist:
value:
errors: []
message: Address does not exist
UnableToPerformBookingWithSlot:
value:
errors: []
message: Unable to perform booking. Requested target slot (2021-05-16T14:00:00+02:00) not found
UnableToPerformBookingWithService:
value:
errors: []
message: Unable to perform booking. Slot (2021-05-16T14:00:00+02:00) does not support service 113
UnableToCancelForAddress:
value:
errors: []
message: Unable to cancel a visit for this address
VisitAlreadyMovedOrDeleted:
value:
errors: []
message: The visit has already been canceled or moved
BookingCannotCrossPaymentAccounts:
value:
errors: []
message: This booking has a payment on it and the target address bills through a different payment account. Cancel the booking and create a new one instead.
VisitMarkedAsCanceled:
value:
errors: []
message: Visit is marked as canceled
CannotSendRequestForOpinion:
value:
errors: []
message: Cannot send request
OpinionAlreadyExist:
value:
errors: []
message: Opinion already exists
VisitNotFound:
value:
errors: []
message: Visit not found
VisitDoesNotBelongToDoctor:
value:
errors: []
message: This visit does not belong to this doctor
PutSlotsValidationError:
value:
errors: []
message: 'Validation error message, e.g.: Slots comes from different days'
PostBookValidationError:
value:
errors: []
message: Validation error message
DeleteBookingValidationError:
value:
errors: []
message: 'Validation error message, e.g.: Visit 12345 cannot be canceled because it is not booked'
ConfirmBookingValidationError:
value:
errors: []
message: 'Validation error message, e.g.: confirmed_by value is invalid'
ConfirmBookingInvalidIntegration:
value:
errors: []
message: Integration is not authorized for this address
ConfirmBookingAlreadyConfirmed:
value:
errors: []
message: Visit has already been confirmed
ConfirmBookingVisitCanceled:
value:
errors: []
message: Visit has been canceled
ConfirmBookingVisitDeleted:
value:
errors: []
message: Visit has been deleted
ConfirmBookingPastVisit:
value:
errors: []
message: Visit is in the past
MoveBookingValidationError:
value:
errors: []
message: Invalid arguments
OpinionRequestValidationError:
value:
errors: []
message: 'Validation error message, e.g.: Phone number is invalid.'
PostPresenceValidationError:
value:
errors: []
message: 'Validation error message, e.g.: Visit is in the future'
DeletePresenceValidationError:
value:
errors: []
message: 'Validation error message, e.g.: Visit is in the future'
NotificationNotFound:
value:
errors: []
message: No notifications found
NotificationsReleaseForbiddenError:
value:
errors: []
message: You are not allowed to use this method
CalendarAlreadyEnabled:
value:
errors: []
message: Calendar already enabled
CalendarAlreadyDisabled:
value:
errors: []
message: Calendar already disabled
AddressDisabled:
value:
errors: []
message: Could not enable calendar on disabled address
CalendarNotFound:
value:
errors: []
message: Calendar does not exist
InvalidArgumentsError:
value:
errors: []
message: Invalid arguments