NAV
Shell Ruby PHP JavaScript

Introduction

Welcome to the Booking Experts API v3 reference documentation. API calls are made by a Booking Experts App. For more information on Booking Experts Apps, please see our App Guide.

Basics

Standards

The Booking Experts API is organized around REST and it follows the JSON API specification. The API has predictable, resource-oriented URLs, and uses HTTP response codes to indicate API errors.

Documentation is standardized by using the Open API 3 (OAS3) specification, this allows you to inspect the API using other clients like for example Swagger UI and Postman. The specification is hosted here: https://api.bookingexperts.nl/v3/oas3.json

Responses

curl --request GET \
  --url https://api.bookingexperts.nl/v3/administrations \
  --header 'accept: application/vnd.api+json' \
  --header 'accept-language: en,nl' \
  --header 'x-api-key: API_KEY'

Might produce the following output

{
  "errors": [
    {
      "status": 401,
      "code": "RESOURCE_NOT_FOUND",
      "title": "Unauthorized error",
      "detail": "Please make sure to set the Authorization HTTP header"
    }
  ]
}

The Booking Experts API will always respond with a HTTP status code. The API can return the following codes:

Code Semantic Meaning
200 OK Request was successful
400 Bad Request Parameters for the request are missing or malformed. Body contains the errors.
401 Unauthorized Your API key is wrong
403 Forbidden IP is blacklisted for API usage, see Throttling information
404 Not Found Entity not found
422 Unprocessable entity Saving the entity in the database failed due to validation errors. Body contains the errors.
429 Too Many Requests You're requesting too many kittens! Slow down!
5XX Server Errors Something went wrong on Booking Experts's end. We are probably already busy solving the issue. It's your responsibility to retry the request at a later point.

Error codes

Error codes are custom to give you more information. The list below contains the most common errors that can occur.

Accept Language

You can always pass an Accept-Language header containing a comma separated list of locales. This will limit the result of 'localized' attributes to the locales specified.

X_BE_ENV header

When your application receives a request from Booking Experts, for example when a webhook or command is called, the X_BE_ENV header is passed. Usually, the value of this header will be 'production', denoting that the request originated from our production environment. For testing purposes however, it might be possible that your app will receive requests from a different environment, for example 'staging'. You can check this header if you want to handle these requests differently.

X_BE_SIGNATURE header

When your application receives a request from Booking Experts, for example when a webhook or command is called, the X_BE_SIGNATURE header is passed to allow you to verify that the request was sent by our systems. It uses a HMAC hexdigest to compute the hash based on your Client Secret.

To verify a request, your code should look something like this:

def verify_signature(payload_body)
  signature =
    'sha256=' +
      OpenSSL::HMAC.hexdigest(
        OpenSSL::Digest.new('sha256'),
        ENV['OAUTH_CLIENT_SECRET'],
        payload_body
      )
  unless Rack::Utils.secure_compare(
           signature,
           request.env['HTTP_X_BE_SIGNATURE']
         )
    return halt 500, "Signatures didn't match!"
  end
end
import os

secret = os.environ['OAUTH_CLIENT_SECRET']
header_signature = request.headers.get('X_BE_SIGNATURE')

# HMAC requires the key to be bytes, but data is string
mac = hmac.new(str(secret), msg=request.data, digestmod='sha256')

# Python prior to 2.7.7 does not have hmac.compare_digest
if hexversion >= 0x020707F0:
  if not hmac.compare_digest(str(mac.hexdigest()), str(signature)):
    abort(403)
else:
  # What compare_digest provides is protection against timing
  # attacks; we can live without this protection for a web-based
  # application
  if not str(mac.hexdigest()) == str(signature):
    abort(403)
$sig_check = 'sha256=' . hash_hmac('sha256', Request::getContent(), $_ENV['OAUTH_CLIENT_SECRET']);

if ($sig_check === Request::header('HTTP_X_BE_SIGNATURE')) {  // php >=5.6 and above should use hash_equals() for comparison
  // sigs match, do stuff
}

Throttling

Usage of the Booking Experts API is virtually unlimited. However, to prevent fraud and abuse, requests to the API are throttled. By default you are allowed to call the API 500 times within a moving window of 15 minutes. Additionally, bursts of 100 calls per minute are allowed within this window.

While within the limit, each response contains a X-RateLimit-Limit and a X-RateLimit-Remaining header containing the set limit & the remaining allowance in the window. If you exceed the limit, the API will respond with a 429 Too many requests response. This response contains a header Retry-After containing the time after which a new calls are allowed.

If your use case requires more lenient rate limits, please contact us at api@bookingexperts.nl to request a higher limit.

Pagination

{
  "links": {
    "self": "https://api.bookingexperts.nl/v3/administrations/1/reservations?page%5Bnumber%5D=2",
    "first": "https://api.bookingexperts.nl/v3/administrations/1/reservations?page%5Bnumber%5D=1",
    "last": "https://api.bookingexperts.nl/v3/administrations/1/reservations?page%5Bnumber%5D=14",
    "prev": "https://api.bookingexperts.nl/v3/administrations/1/reservations?page%5Bnumber%5D=1",
    "next": "https://api.bookingexperts.nl/v3/administrations/1/reservations?page%5Bnumber%5D=3"
  }
  "data": [...]
}

All collection responses include pagination. In the response body you will find a links node that contains links to first, self, next, prev, last pages. Most responses have 30 records per page.

Sparse field sets

By default every request returns a quite complete set of fields (attributes and relationships). You can limit or expand this default set however. Per record type you can specify which fields to include.

curl --request GET \
  --url 'http://api.lvh.me:3000/v3/administrations?fields[administration]=name,description' \
  --header 'accept: application/vnd.api+json' \
  --header 'accept-language: en,nl' \
  --header 'x-api-key: API_KEY' | jsonpp

Will return only the name and description fields of every administration. Note that this will also omit defined relationships of the resource.

Includes

Includes are a standard part of the jsonapi specification. Each relationship on a resource can be included. Which relationships a resource has can be determined by looking at its Schema.

As an example: the Reservation resource defines a relationship called extra_order_items. This means that you can add extra_order_items to the includes list in the query string. In turn, the ExtraOrderItem has a relationship with an extra, so you could in that case also include the metadata of the associated extra by specifying extra_order_items.extra in your includes list. When you only need the ID of a relationship, it is not necessary to include a resource, as the ID is defined within the relationship itself.

Filters

The following attribute filters are available on GET API calls:

All expressions can be inverted by prefixing a !, this holds for the entire expression.

OR-filtering

An OR filter can be created by separating attribute names in a filter with a pipe:

Security

{
  "errors": [{
    "status": "403",
    "code": "NO_VALID_SCOPE",
    "title": "Forbidden",
    "detail": "The scopes for your application do not grant you permission to perform this action. One of the following scopes is required: payment|write."
  }]
}

To be able to fetch resources, either directly or through including related resources, you need the appropriate permissions. Permissions can be defined in you App's settings and they translate into OAuth2 scopes that the user needs to explicitly approve. When you are missing permissions for the call you are executing, an error will be returned like the one on the right.

Note: When you update your App's permissions, these will apply directly when using API keys. When using OAuth2 however, subscribers will need to grant permission again in order for the new permissions to be applied.

Example permissions (scopes):

There are also some channel specific permissions. This functionality is meant for tour operators who don't need to access all reservations, but only reservations and related resources that have been created through their own channel:

Authorization scopes

Scope Scope Description
administration read
agenda_period delete
agenda_period read
agenda_period write
agreement read
amenity read
area_type read
availability read
billing/bill read
billing/entry read
booking read
category_group read
category read
category write
channel::booking read
channel::customer read
channel::order read
channel::reservation read
channel delete
channel read
channel write
chargeback write
checkout_portal manage
city read
contact read
cost read
currency_conversion read
customer read
customer write
debtor read
discount_action read
discount_card read
executor read
extra_order_item read
extra_order_item write
extra read
facility read
guest delete
guest read
guest write
internal_message write
invoice read
journal_transaction read
label read
label write
ledger_account read
main_order_item read
master_price_list read
master_price_list write
measurer read
memo write
message write
order read
organization read
owner read
package_entry read
package read
payment_handler delete
payment_handler read
payment_handler write
payment_method read
payment_method write
payment_request read
payment_result write
payment read
payment write
period read
planner read
question_answer read
receipt read
refund_request read
refund_result write
region read
register read
rentable_identity delete
rentable_identity read
rentable_identity write
rentable_segment read
rentable_type_group read
rentable_type read
rentable_type write
rentable delete
rentable read
rentable write
reservation read
reservation write
review_form read
review read
review write
room_type read
room read
signature read
signature write
subdomain read
terms read
todo_image delete
todo_image write
todo_list read
todo delete
todo read
todo write
user read
vat_code read
vat_tariff read

Administration Amenities

GET amenities

Code samples

curl --request GET \
  --url https://api.bookingexperts.nl/v3/administrations/1/administration_amenities \
  --header 'Accept: application/vnd.api+json' \
  --header 'Accept-Language: en,nl' \
  --header 'X-API-KEY: API_KEY'
require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.bookingexperts.nl/v3/administrations/1/administration_amenities")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)
request["Accept"] = 'application/vnd.api+json'
request["Accept-Language"] = 'en,nl'
request["X-API-KEY"] = 'API_KEY'

response = http.request(request)
puts response.read_body
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.bookingexperts.nl/v3/administrations/1/administration_amenities",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "Accept: application/vnd.api+json",
    "Accept-Language: en,nl",
    "X-API-KEY: API_KEY"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.bookingexperts.nl/v3/administrations/1/administration_amenities");
xhr.setRequestHeader("Accept", "application/vnd.api+json");
xhr.setRequestHeader("Accept-Language", "en,nl");
xhr.setRequestHeader("X-API-KEY", "API_KEY");

xhr.send(data);

GET /v3/administrations/{administration_id}/administration_amenities

Returns amenities of the administration

Parameters

Name In Type Required Example Description
administration_id path string true 1 Administration ID
page[number] query string false string Page number
page[size] query string false string Page size
sort query string false string Sort. Specify a comma separated list of attributes to sort on. Prefix attribute with a \- to sort in descending order
fields[administration_amenity] query string false string Fieldset. Specify a comma separated list of attributes to return
filter[id] query string false string Filter on ID
filter[value] query string false string Filter on value
filter[administration] query string false string Filter on administration. Specify a comma separated list of IDs to filter on.
filter[amenity] query string false string Filter on amenity. Specify a comma separated list of IDs to filter on.
include query string false string Includes list. Specify a comma separated list of resources to include.
Accept-Language header string false en,nl Supported languages. A comma separated list with one or more of the following locales: nl, nl-BE, en, de, de-AT, de-CH, fr, fr-BE, fr-LU, da, cs, es, tr, pt, it, nb. Default: 'en'.

Example responses

200 Response

{
  "data": [
    {
      "id": "1",
      "type": "amenity",
      "attributes": {
        "name": {
          "nl": "string",
          "nl-BE": "string",
          "en": "string",
          "de": "string",
          "de-AT": "string",
          "de-CH": "string",
          "fr": "string",
          "fr-BE": "string",
          "fr-LU": "string",
          "da": "string",
          "cs": "string",
          "es": "string",
          "tr": "string",
          "pt": "string",
          "it": "string",
          "nb": "string"
        },
        "type": "Amenity",
        "position": 0,
        "semantic_amenity_type": "string"
      },
      "relationships": {
        "amenity_group": {
          "data": {}
        },
        "amenity_options": {
          "data": [
            null
          ]
        }
      },
      "meta": {
        "temp_id": "string"
      }
    }
  ],
  "meta": {
    "pagination": {
      "total_records": 0,
      "page": 0,
      "size": 0
    }
  }
}

Responses

Status Meaning Description Schema
200 OK AmenityCollectionResponse Inline
default Default Error Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
— data [[Amenity](#schemaamenity)] false none [Amenities are for external and internal use. They can be used to signify amenities of a RentableType or Rentable that are important to the guest.
For example:

* With sauna
* Free wi-fi

An Amenity can optionally be numerical or multiple choice. When an Amenity is numerical, the values of linked amenities (RentableTypeAmenity, RentableAmenity, ReservationAmenity and RoomAmenity)
denote the numerical value belonging to the amenity. When an Amenity is multiple choice, the values of linked amenities denote the ID of the AmenityOption that applies.
]
—— id string false none ID
—— type string false none Type
—— attributes object false none Attributes
——— name object false none Name of the amenity
———— nl string false none none
———— nl-BE string false none none
———— en string false none none
———— de string false none none
———— de-AT string false none none
———— de-CH string false none none
———— fr string false none none
———— fr-BE string false none none
———— fr-LU string false none none
———— da string false none none
———— cs string false none none
———— es string false none none
———— tr string false none none
———— pt string false none none
———— it string false none none
———— nb string false none none
——— type string false none Type of the amenity
——— position integer false none none
——— semantic_amenity_type string false none none
—— relationships object false none Relationships
——— amenity_group object false none none
———— data object false none none
————— id string false none amenity_group ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— amenity_options object false none none
———— data [object] false none none
————— id string false none amenity_options ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
—— meta object false none Metadata
——— temp_id string false none UUID for internal resource linking. Should be omitted when the relationship ID is known.
— meta object false none none
—— pagination object false none none
——— total_records integer false none none
——— page integer false none none
——— size integer false none none

Enumerated Values

Property Value
type Amenity
type Amenities::NumericalAmenity
type Amenities::MultipleChoiceAmenity

Status Code default

Name Type Required Restrictions Description
— errors [object] false none none
—— status string false none HTTP response code
—— code string false none Internal error code
—— title string false none Error title
—— detail string false none Error details
—— source object false none none
——— pointer string false none Pointer to error in resource

GET amenity

Code samples

curl --request GET \
  --url https://api.bookingexperts.nl/v3/administrations/1/administration_amenities/string \
  --header 'Accept: application/vnd.api+json' \
  --header 'Accept-Language: en,nl' \
  --header 'X-API-KEY: API_KEY'
require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.bookingexperts.nl/v3/administrations/1/administration_amenities/string")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)
request["Accept"] = 'application/vnd.api+json'
request["Accept-Language"] = 'en,nl'
request["X-API-KEY"] = 'API_KEY'

response = http.request(request)
puts response.read_body
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.bookingexperts.nl/v3/administrations/1/administration_amenities/string",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "Accept: application/vnd.api+json",
    "Accept-Language: en,nl",
    "X-API-KEY: API_KEY"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.bookingexperts.nl/v3/administrations/1/administration_amenities/string");
xhr.setRequestHeader("Accept", "application/vnd.api+json");
xhr.setRequestHeader("Accept-Language", "en,nl");
xhr.setRequestHeader("X-API-KEY", "API_KEY");

xhr.send(data);

GET /v3/administrations/{administration_id}/administration_amenities/{id}

Returns the amenity for the given ID

Parameters

Name In Type Required Example Description
administration_id path string true 1 Administration ID
id path string true string Resource ID
fields[administration_amenity] query string false string Fieldset. Specify a comma separated list of attributes to return
filter[id] query string false string Filter on ID
filter[value] query string false string Filter on value
filter[administration] query string false string Filter on administration. Specify a comma separated list of IDs to filter on.
filter[amenity] query string false string Filter on amenity. Specify a comma separated list of IDs to filter on.
include query string false string Includes list. Specify a comma separated list of resources to include.
Accept-Language header string false en,nl Supported languages. A comma separated list with one or more of the following locales: nl, nl-BE, en, de, de-AT, de-CH, fr, fr-BE, fr-LU, da, cs, es, tr, pt, it, nb. Default: 'en'.

Example responses

200 Response

{
  "data": {
    "id": "1",
    "type": "amenity",
    "attributes": {
      "name": {
        "nl": "string",
        "nl-BE": "string",
        "en": "string",
        "de": "string",
        "de-AT": "string",
        "de-CH": "string",
        "fr": "string",
        "fr-BE": "string",
        "fr-LU": "string",
        "da": "string",
        "cs": "string",
        "es": "string",
        "tr": "string",
        "pt": "string",
        "it": "string",
        "nb": "string"
      },
      "type": "Amenity",
      "position": 0,
      "semantic_amenity_type": "string"
    },
    "relationships": {
      "amenity_group": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      },
      "amenity_options": {
        "data": [
          {}
        ]
      }
    },
    "meta": {
      "temp_id": "string"
    }
  }
}

Responses

Status Meaning Description Schema
200 OK AmenityResponse Inline
default Default Error Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
— data [Amenity](#schemaamenity) false none Amenities are for external and internal use. They can be used to signify amenities of a RentableType or Rentable that are important to the guest.
For example:

* With sauna
* Free wi-fi

An Amenity can optionally be numerical or multiple choice. When an Amenity is numerical, the values of linked amenities (RentableTypeAmenity, RentableAmenity, ReservationAmenity and RoomAmenity)
denote the numerical value belonging to the amenity. When an Amenity is multiple choice, the values of linked amenities denote the ID of the AmenityOption that applies.
—— id string false none ID
—— type string false none Type
—— attributes object false none Attributes
——— name object false none Name of the amenity
———— nl string false none none
———— nl-BE string false none none
———— en string false none none
———— de string false none none
———— de-AT string false none none
———— de-CH string false none none
———— fr string false none none
———— fr-BE string false none none
———— fr-LU string false none none
———— da string false none none
———— cs string false none none
———— es string false none none
———— tr string false none none
———— pt string false none none
———— it string false none none
———— nb string false none none
——— type string false none Type of the amenity
——— position integer false none none
——— semantic_amenity_type string false none none
—— relationships object false none Relationships
——— amenity_group object false none none
———— data object false none none
————— id string false none amenity_group ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— amenity_options object false none none
———— data [object] false none none
————— id string false none amenity_options ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
—— meta object false none Metadata
——— temp_id string false none UUID for internal resource linking. Should be omitted when the relationship ID is known.

Enumerated Values

Property Value
type Amenity
type Amenities::NumericalAmenity
type Amenities::MultipleChoiceAmenity

Status Code default

Name Type Required Restrictions Description
— errors [object] false none none
—— status string false none HTTP response code
—— code string false none Internal error code
—— title string false none Error title
—— detail string false none Error details
—— source object false none none
——— pointer string false none Pointer to error in resource

Administration Channels

Manage channels of an administration

GET channels

Code samples

curl --request GET \
  --url https://api.bookingexperts.nl/v3/administrations/1/channels \
  --header 'Accept: application/vnd.api+json' \
  --header 'Accept-Language: en,nl' \
  --header 'X-API-KEY: API_KEY'
require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.bookingexperts.nl/v3/administrations/1/channels")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)
request["Accept"] = 'application/vnd.api+json'
request["Accept-Language"] = 'en,nl'
request["X-API-KEY"] = 'API_KEY'

response = http.request(request)
puts response.read_body
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.bookingexperts.nl/v3/administrations/1/channels",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "Accept: application/vnd.api+json",
    "Accept-Language: en,nl",
    "X-API-KEY: API_KEY"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.bookingexperts.nl/v3/administrations/1/channels");
xhr.setRequestHeader("Accept", "application/vnd.api+json");
xhr.setRequestHeader("Accept-Language", "en,nl");
xhr.setRequestHeader("X-API-KEY", "API_KEY");

xhr.send(data);

GET /v3/administrations/{administration_id}/channels

Returns channels of the administration

Parameters

Name In Type Required Example Description
administration_id path string true 1 Administration ID
page[number] query string false string Page number
page[size] query string false string Page size
sort query string false string Sort. Specify a comma separated list of attributes to sort on. Prefix attribute with a \- to sort in descending order
fields[channel] query string false string Fieldset. Specify a comma separated list of attributes to return
filter[id] query string false string Filter on ID
filter[name] query string false string Filter on name
filter[email] query string false string Filter on email
filter[kind] query string false string Filter on kind
filter[requires_night_prices] query string false string Filter on requires_night_prices
filter[rent_invoiced_to] query string false string Filter on rent_invoiced_to
filter[costs_invoiced_to] query string false string Filter on costs_invoiced_to
filter[use_costs_invoiced_to] query string false string Filter on use_costs_invoiced_to
filter[supports_group_details] query string false string Filter on supports_group_details
filter[confirm_reservations] query string false string Filter on confirm_reservations
filter[confirm_by_email] query string false string Filter on confirm_by_email
filter[customer_invoice_payable_on_park] query string false string Filter on customer_invoice_payable_on_park
filter[archived] query string false string Filter on archived
filter[temporary_booking_validity_in_hours] query string false string Filter on temporary_booking_validity_in_hours
filter[created_at] query string false string Filter on created_at
filter[updated_at] query string false string Filter on updated_at
filter[administration] query string false string Filter on administration. Specify a comma separated list of IDs to filter on.
filter[application] query string false string Filter on application. Specify a comma separated list of IDs to filter on.
filter[guest_payment_policy] query string false string Filter on guest_payment_policy. Specify a comma separated list of IDs to filter on.
filter[channel_payment_policy] query string false string Filter on channel_payment_policy. Specify a comma separated list of IDs to filter on.
filter[excluded_costs] query string false string Filter on excluded_costs. Specify a comma separated list of IDs to filter on.
include query string false string Includes list. Specify a comma separated list of resources to include.
Accept-Language header string false en,nl Supported languages. A comma separated list with one or more of the following locales: nl, nl-BE, en, de, de-AT, de-CH, fr, fr-BE, fr-LU, da, cs, es, tr, pt, it, nb. Default: 'en'.
include_archived query boolean false true When true, archived channels are included in the response

Example responses

200 Response

{
  "data": [
    {
      "id": "1",
      "type": "channel",
      "attributes": {
        "name": "Tours Inc.",
        "email": "info@tours.inc",
        "kind": "reseller",
        "available_currencies": [
          "EUR",
          "USD"
        ],
        "pricing_type": "string",
        "requires_night_prices": false,
        "archivable": false,
        "front_office": false,
        "synchronizes_costs": false,
        "allows_costs_with_multiple_price_periods": true,
        "allows_costs_with_negative_amounts": true,
        "allows_deposit_costs_that_are_not_fixed_or_per_piece_or_percentual": true,
        "allow_confirmation_without_payment": false,
        "determines_price": false,
        "skip_price_deviation_check": false,
        "rent_invoiced_to": "guest",
        "costs_invoiced_to": "guest",
        "use_costs_invoiced_to": true,
        "behave_as_own_site": false,
        "supports_group_details": false,
        "confirm_reservations": true,
        "confirm_by_email": false,
        "customer_invoice_payable_on_park": false,
        "fixed_attributes": [
          "kind",
          "requires_night_prices"
        ],
        "can_be_set_as_default_channel": false,
        "requires_cancellation_originator": false,
        "requires_restitution_after_cancellation": false,
        "requires_confirmation_or_cancellation_within_24_hours": false,
        "uses_remote_reservation_key": false,
        "archived": true,
        "debtor_code": "string",
        "temporary_booking_validity_in_hours": "string",
        "created_at": "2019-08-24T14:15:22Z",
        "updated_at": "2019-08-24T14:15:22Z"
      },
      "relationships": {
        "administration": {
          "data": {}
        },
        "application": {
          "data": {}
        },
        "guest_payment_policy": {
          "data": {}
        },
        "channel_payment_policy": {
          "data": {}
        },
        "excluded_costs": {
          "data": [
            null
          ]
        }
      },
      "meta": {
        "temp_id": "string"
      }
    }
  ],
  "meta": {
    "pagination": {
      "total_records": 0,
      "page": 0,
      "size": 0
    }
  }
}

Responses

Status Meaning Description Schema
200 OK ChannelCollectionResponse Inline
default Default Error Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
— data [[Channel](#schemachannel)] false none [Every Reservation originates from a channel. This can be a tour operator, the backoffice, the website and so on.
Administrations can customize the following aspects for each Channel:

* Extras
* Costs
* Availability
* Rent prices
* Invoicing
]
—— id string false none ID
—— type string false none Type
—— attributes object false none Attributes
——— name string false none Name of the channel. This name is also shown in the back-office.
——— email string false none Contact email address of the channel. This email address is also shown in the back-office.
——— kind string false none Channel kind.
——— available_currencies [string] false none Lists the currencies that are available for this channel. One or more of: EUR, USD, CHF, CZK, TRY, CVE, ANG, GBP, NOK.
——— pricing_type string false none Type of pricing that applies to this channel. One of: night_prices, complex_prices. Is replaced by requires_night_prices.
——— requires_night_prices boolean false none Whether this channel can only handle night prices.
——— archivable boolean false none Whether the channel can be archived or not.
——— front_office boolean false none Whether reservations made through this channel should be listed as front office reservations on the planboard or not.
——— synchronizes_costs boolean false none Whether the channel synchronizes costs or not.
——— allows_costs_with_multiple_price_periods boolean false none Whether the channel allows costs with negative prices or percentages. Ignored when synchronizes_costs is false.
——— allows_costs_with_negative_amounts boolean false none Whether the channel allows costs with negative prices or percentages. Ignored when synchronizes_costs is false.
——— allows_deposit_costs_that_are_not_fixed_or_per_piece_or_percentual boolean false none Whether the channel allows deposit costs that are not fixed, per piece or percentual. Ignored when synchronizes_costs is false.
——— allow_confirmation_without_payment boolean false none Whether the channel allows confirmation without direct payment.
——— determines_price boolean false none Whether the channel determines the price or not.
——— skip_price_deviation_check boolean false none Whether price deviation checks must be performed. By default, when the passed price for a booking deviates more than 5% from the expected booking price, we notify the administration of this.
——— rent_invoiced_to string false none Whether the channel invoices rent to the guest or the channel.
——— costs_invoiced_to string false none Whether the channel invoices costs to the guest or the channel.
——— use_costs_invoiced_to boolean false none Whether the channel should use the costs_invoiced_to setting to determine invoicing or not. Setting this to false allows overriding the invoicing for individual costs.
——— behave_as_own_site boolean false none Whether the channel behaves as the own site channel or not. Must be false when kind is set to tour_operator.
——— supports_group_details boolean false none Whether the channel supports specifying detailed group compositions.
——— confirm_reservations boolean false none Whether the channel automatically confirms reservations or not
——— confirm_by_email boolean false none Whether the channel sends the channel invoice to the specified email or not
——— customer_invoice_payable_on_park boolean false none Whether the guest invoice can be paid on arrival or not
——— fixed_attributes [string] false none Lists the attributes of the channel that cannot be freely edited in the back-office. One or more of: name, requires_night_prices, kind, rent_invoiced_to, costs_invoiced_to, use_costs_invoiced_to, confirm_reservations, confirm_by_email, customer_invoice_payable_on_park, available_currencies, email.
——— can_be_set_as_default_channel boolean false none Whether the channel can be set as the default channel for new back office reservations etc. or not. Can only be specified on creation.
——— requires_cancellation_originator boolean false none Whether the channel requires the originator of reservation cancellations to be known or not. Can only be specified on creation.
——— requires_restitution_after_cancellation boolean false none Whether the channel requires mandatory restitution after a reservation cancellation or not. Can only be specified on creation.
——— requires_confirmation_or_cancellation_within_24_hours boolean false none Whether the channel requires confirmation or cancellation of a reservation within 24 hours after creation of the reservation. Can only be specified on creation.
——— uses_remote_reservation_key boolean false none Whether the channel uses a remote reservation key or not. Can only be specified on creation.
——— archived boolean false read-only Whether this channel has been archived or not.
——— debtor_code string false read-only A system wide unique identifier for this debtor
——— temporary_booking_validity_in_hours string false read-only Time in hours after which unconfirmed reservations are cancelled.
——— created_at string(date-time) false read-only none
——— updated_at string(date-time) false read-only none
—— relationships object false none Relationships
——— administration object false none none
———— data object false none none
————— id string false none administration ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— application object false none none
———— data object false none none
————— id string false none application ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— guest_payment_policy object false none none
———— data object false none none
————— id string false none guest_payment_policy ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— channel_payment_policy object false none none
———— data object false none none
————— id string false none channel_payment_policy ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— excluded_costs object false none none
———— data [object] false none none
————— id string false none excluded_costs ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
—— meta object false none Metadata
——— temp_id string false none UUID for internal resource linking. Should be omitted when the relationship ID is known.
— meta object false none none
—— pagination object false none none
——— total_records integer false none none
——— page integer false none none
——— size integer false none none

Enumerated Values

Property Value
kind reseller
kind tour_operator
rent_invoiced_to guest
rent_invoiced_to channel
costs_invoiced_to guest
costs_invoiced_to channel

Status Code default

Name Type Required Restrictions Description
— errors [object] false none none
—— status string false none HTTP response code
—— code string false none Internal error code
—— title string false none Error title
—— detail string false none Error details
—— source object false none none
——— pointer string false none Pointer to error in resource

POST channel

Code samples

curl --request POST \
  --url https://api.bookingexperts.nl/v3/administrations/1/channels \
  --header 'Accept: application/vnd.api+json' \
  --header 'Accept-Language: en,nl' \
  --header 'Content-Type: application/vnd.api+json' \
  --header 'X-API-KEY: API_KEY' \
  --data '{"data":{"type":"channel","attributes":{"name":"Tours Inc.","email":"info@tours.inc","kind":"reseller","available_currencies":["EUR","USD"],"pricing_type":"string","requires_night_prices":false,"archivable":false,"front_office":false,"synchronizes_costs":false,"allows_costs_with_multiple_price_periods":true,"allows_costs_with_negative_amounts":true,"allows_deposit_costs_that_are_not_fixed_or_per_piece_or_percentual":true,"allow_confirmation_without_payment":false,"determines_price":false,"skip_price_deviation_check":false,"rent_invoiced_to":"guest","costs_invoiced_to":"guest","use_costs_invoiced_to":true,"behave_as_own_site":false,"supports_group_details":false,"confirm_reservations":true,"confirm_by_email":false,"customer_invoice_payable_on_park":false,"fixed_attributes":["kind","requires_night_prices"],"can_be_set_as_default_channel":false,"requires_cancellation_originator":false,"requires_restitution_after_cancellation":false,"requires_confirmation_or_cancellation_within_24_hours":false,"uses_remote_reservation_key":false},"relationships":{"administration":{"data":{"id":null,"type":null,"meta":null}},"application":{"data":{"id":null,"type":null,"meta":null}},"guest_payment_policy":{"data":{"id":null,"type":null,"meta":null}},"channel_payment_policy":{"data":{"id":null,"type":null,"meta":null}},"excluded_costs":{"data":[{}]}},"meta":{"temp_id":"string"}}}'
require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.bookingexperts.nl/v3/administrations/1/channels")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/vnd.api+json'
request["Accept"] = 'application/vnd.api+json'
request["Accept-Language"] = 'en,nl'
request["X-API-KEY"] = 'API_KEY'
request.body = "{\"data\":{\"type\":\"channel\",\"attributes\":{\"name\":\"Tours Inc.\",\"email\":\"info@tours.inc\",\"kind\":\"reseller\",\"available_currencies\":[\"EUR\",\"USD\"],\"pricing_type\":\"string\",\"requires_night_prices\":false,\"archivable\":false,\"front_office\":false,\"synchronizes_costs\":false,\"allows_costs_with_multiple_price_periods\":true,\"allows_costs_with_negative_amounts\":true,\"allows_deposit_costs_that_are_not_fixed_or_per_piece_or_percentual\":true,\"allow_confirmation_without_payment\":false,\"determines_price\":false,\"skip_price_deviation_check\":false,\"rent_invoiced_to\":\"guest\",\"costs_invoiced_to\":\"guest\",\"use_costs_invoiced_to\":true,\"behave_as_own_site\":false,\"supports_group_details\":false,\"confirm_reservations\":true,\"confirm_by_email\":false,\"customer_invoice_payable_on_park\":false,\"fixed_attributes\":[\"kind\",\"requires_night_prices\"],\"can_be_set_as_default_channel\":false,\"requires_cancellation_originator\":false,\"requires_restitution_after_cancellation\":false,\"requires_confirmation_or_cancellation_within_24_hours\":false,\"uses_remote_reservation_key\":false},\"relationships\":{\"administration\":{\"data\":{\"id\":null,\"type\":null,\"meta\":null}},\"application\":{\"data\":{\"id\":null,\"type\":null,\"meta\":null}},\"guest_payment_policy\":{\"data\":{\"id\":null,\"type\":null,\"meta\":null}},\"channel_payment_policy\":{\"data\":{\"id\":null,\"type\":null,\"meta\":null}},\"excluded_costs\":{\"data\":[{}]}},\"meta\":{\"temp_id\":\"string\"}}}"

response = http.request(request)
puts response.read_body
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.bookingexperts.nl/v3/administrations/1/channels",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\"data\":{\"type\":\"channel\",\"attributes\":{\"name\":\"Tours Inc.\",\"email\":\"info@tours.inc\",\"kind\":\"reseller\",\"available_currencies\":[\"EUR\",\"USD\"],\"pricing_type\":\"string\",\"requires_night_prices\":false,\"archivable\":false,\"front_office\":false,\"synchronizes_costs\":false,\"allows_costs_with_multiple_price_periods\":true,\"allows_costs_with_negative_amounts\":true,\"allows_deposit_costs_that_are_not_fixed_or_per_piece_or_percentual\":true,\"allow_confirmation_without_payment\":false,\"determines_price\":false,\"skip_price_deviation_check\":false,\"rent_invoiced_to\":\"guest\",\"costs_invoiced_to\":\"guest\",\"use_costs_invoiced_to\":true,\"behave_as_own_site\":false,\"supports_group_details\":false,\"confirm_reservations\":true,\"confirm_by_email\":false,\"customer_invoice_payable_on_park\":false,\"fixed_attributes\":[\"kind\",\"requires_night_prices\"],\"can_be_set_as_default_channel\":false,\"requires_cancellation_originator\":false,\"requires_restitution_after_cancellation\":false,\"requires_confirmation_or_cancellation_within_24_hours\":false,\"uses_remote_reservation_key\":false},\"relationships\":{\"administration\":{\"data\":{\"id\":null,\"type\":null,\"meta\":null}},\"application\":{\"data\":{\"id\":null,\"type\":null,\"meta\":null}},\"guest_payment_policy\":{\"data\":{\"id\":null,\"type\":null,\"meta\":null}},\"channel_payment_policy\":{\"data\":{\"id\":null,\"type\":null,\"meta\":null}},\"excluded_costs\":{\"data\":[{}]}},\"meta\":{\"temp_id\":\"string\"}}}",
  CURLOPT_HTTPHEADER => [
    "Accept: application/vnd.api+json",
    "Accept-Language: en,nl",
    "Content-Type: application/vnd.api+json",
    "X-API-KEY: API_KEY"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
const data = "{\"data\":{\"type\":\"channel\",\"attributes\":{\"name\":\"Tours Inc.\",\"email\":\"info@tours.inc\",\"kind\":\"reseller\",\"available_currencies\":[\"EUR\",\"USD\"],\"pricing_type\":\"string\",\"requires_night_prices\":false,\"archivable\":false,\"front_office\":false,\"synchronizes_costs\":false,\"allows_costs_with_multiple_price_periods\":true,\"allows_costs_with_negative_amounts\":true,\"allows_deposit_costs_that_are_not_fixed_or_per_piece_or_percentual\":true,\"allow_confirmation_without_payment\":false,\"determines_price\":false,\"skip_price_deviation_check\":false,\"rent_invoiced_to\":\"guest\",\"costs_invoiced_to\":\"guest\",\"use_costs_invoiced_to\":true,\"behave_as_own_site\":false,\"supports_group_details\":false,\"confirm_reservations\":true,\"confirm_by_email\":false,\"customer_invoice_payable_on_park\":false,\"fixed_attributes\":[\"kind\",\"requires_night_prices\"],\"can_be_set_as_default_channel\":false,\"requires_cancellation_originator\":false,\"requires_restitution_after_cancellation\":false,\"requires_confirmation_or_cancellation_within_24_hours\":false,\"uses_remote_reservation_key\":false},\"relationships\":{\"administration\":{\"data\":{\"id\":null,\"type\":null,\"meta\":null}},\"application\":{\"data\":{\"id\":null,\"type\":null,\"meta\":null}},\"guest_payment_policy\":{\"data\":{\"id\":null,\"type\":null,\"meta\":null}},\"channel_payment_policy\":{\"data\":{\"id\":null,\"type\":null,\"meta\":null}},\"excluded_costs\":{\"data\":[{}]}},\"meta\":{\"temp_id\":\"string\"}}}";

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.bookingexperts.nl/v3/administrations/1/channels");
xhr.setRequestHeader("Content-Type", "application/vnd.api+json");
xhr.setRequestHeader("Accept", "application/vnd.api+json");
xhr.setRequestHeader("Accept-Language", "en,nl");
xhr.setRequestHeader("X-API-KEY", "API_KEY");

xhr.send(data);

POST /v3/administrations/{administration_id}/channels

Create a new channel that is associated to the current subscription

Body parameter

{
  "data": {
    "type": "channel",
    "attributes": {
      "name": "Tours Inc.",
      "email": "info@tours.inc",
      "kind": "reseller",
      "available_currencies": [
        "EUR",
        "USD"
      ],
      "pricing_type": "string",
      "requires_night_prices": false,
      "archivable": false,
      "front_office": false,
      "synchronizes_costs": false,
      "allows_costs_with_multiple_price_periods": true,
      "allows_costs_with_negative_amounts": true,
      "allows_deposit_costs_that_are_not_fixed_or_per_piece_or_percentual": true,
      "allow_confirmation_without_payment": false,
      "determines_price": false,
      "skip_price_deviation_check": false,
      "rent_invoiced_to": "guest",
      "costs_invoiced_to": "guest",
      "use_costs_invoiced_to": true,
      "behave_as_own_site": false,
      "supports_group_details": false,
      "confirm_reservations": true,
      "confirm_by_email": false,
      "customer_invoice_payable_on_park": false,
      "fixed_attributes": [
        "kind",
        "requires_night_prices"
      ],
      "can_be_set_as_default_channel": false,
      "requires_cancellation_originator": false,
      "requires_restitution_after_cancellation": false,
      "requires_confirmation_or_cancellation_within_24_hours": false,
      "uses_remote_reservation_key": false
    },
    "relationships": {
      "administration": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      },
      "application": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      },
      "guest_payment_policy": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      },
      "channel_payment_policy": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      },
      "excluded_costs": {
        "data": [
          {}
        ]
      }
    },
    "meta": {
      "temp_id": "string"
    }
  }
}

Parameters

Name In Type Required Example Description
administration_id path string true 1 Administration ID
Accept-Language header string false en,nl Supported languages. A comma separated list with one or more of the following locales: nl, nl-BE, en, de, de-AT, de-CH, fr, fr-BE, fr-LU, da, cs, es, tr, pt, it, nb. Default: 'en'.
body body object true [object Object] none
— data body object false [object Object] Every Reservation originates from a channel. This can be a tour operator, the backoffice, the website and so on.
—— type body string false channel Type
—— attributes body object false [object Object] Attributes
——— name body string false Tours Inc. Name of the channel. This name is also shown in the back-office.
——— email body string false info@tours.inc Contact email address of the channel. This email address is also shown in the back-office.
——— kind body string false reseller Channel kind.
——— available_currencies body [string] false EUR,USD Lists the currencies that are available for this channel. One or more of: EUR, USD, CHF, CZK, TRY, CVE, ANG, GBP, NOK.
——— pricing_type body string false string Type of pricing that applies to this channel. One of: night_prices, complex_prices. Is replaced by requires_night_prices.
——— requires_night_prices body boolean false false Whether this channel can only handle night prices.
——— archivable body boolean false false Whether the channel can be archived or not.
——— front_office body boolean false false Whether reservations made through this channel should be listed as front office reservations on the planboard or not.
——— synchronizes_costs body boolean false false Whether the channel synchronizes costs or not.
——— allows_costs_with_multiple_price_periods body boolean false true Whether the channel allows costs with negative prices or percentages. Ignored when synchronizes_costs is false.
——— allows_costs_with_negative_amounts body boolean false true Whether the channel allows costs with negative prices or percentages. Ignored when synchronizes_costs is false.
——— allows_deposit_costs_that_are_not_fixed_or_per_piece_or_percentual body boolean false true Whether the channel allows deposit costs that are not fixed, per piece or percentual. Ignored when synchronizes_costs is false.
——— allow_confirmation_without_payment body boolean false false Whether the channel allows confirmation without direct payment.
——— determines_price body boolean false false Whether the channel determines the price or not.
——— skip_price_deviation_check body boolean false false Whether price deviation checks must be performed. By default, when the passed price for a booking deviates more than 5% from the expected booking price, we notify the administration of this.
——— rent_invoiced_to body string false guest Whether the channel invoices rent to the guest or the channel.
——— costs_invoiced_to body string false guest Whether the channel invoices costs to the guest or the channel.
——— use_costs_invoiced_to body boolean false true Whether the channel should use the costs_invoiced_to setting to determine invoicing or not. Setting this to false allows overriding the invoicing for individual costs.
——— behave_as_own_site body boolean false false Whether the channel behaves as the own site channel or not. Must be false when kind is set to tour_operator.
——— supports_group_details body boolean false false Whether the channel supports specifying detailed group compositions.
——— confirm_reservations body boolean false true Whether the channel automatically confirms reservations or not
——— confirm_by_email body boolean false false Whether the channel sends the channel invoice to the specified email or not
——— customer_invoice_payable_on_park body boolean false false Whether the guest invoice can be paid on arrival or not
——— fixed_attributes body [string] false kind,requires_night_prices Lists the attributes of the channel that cannot be freely edited in the back-office. One or more of: name, requires_night_prices, kind, rent_invoiced_to, costs_invoiced_to, use_costs_invoiced_to, confirm_reservations, confirm_by_email, customer_invoice_payable_on_park, available_currencies, email.
——— can_be_set_as_default_channel body boolean false false Whether the channel can be set as the default channel for new back office reservations etc. or not. Can only be specified on creation.
——— requires_cancellation_originator body boolean false false Whether the channel requires the originator of reservation cancellations to be known or not. Can only be specified on creation.
——— requires_restitution_after_cancellation body boolean false false Whether the channel requires mandatory restitution after a reservation cancellation or not. Can only be specified on creation.
——— requires_confirmation_or_cancellation_within_24_hours body boolean false false Whether the channel requires confirmation or cancellation of a reservation within 24 hours after creation of the reservation. Can only be specified on creation.
——— uses_remote_reservation_key body boolean false false Whether the channel uses a remote reservation key or not. Can only be specified on creation.
—— relationships body object false [object Object] Relationships
——— administration body object false [object Object] none
———— data body object false [object Object] none
————— id body string false string administration ID
————— type body string false administration none
————— meta body object false [object Object] none
—————— temp_id body string false string UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method body string false string Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— application body object false [object Object] none
———— data body object false [object Object] none
————— id body string false string application ID
————— type body string false application none
————— meta body object false [object Object] none
—————— temp_id body string false string UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method body string false string Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— guest_payment_policy body object false [object Object] none
———— data body object false [object Object] none
————— id body string false string guest_payment_policy ID
————— type body string false payment_policy none
————— meta body object false [object Object] none
—————— temp_id body string false string UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method body string false string Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— channel_payment_policy body object false [object Object] none
———— data body object false [object Object] none
————— id body string false string channel_payment_policy ID
————— type body string false payment_policy none
————— meta body object false [object Object] none
—————— temp_id body string false string UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method body string false string Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— excluded_costs body object false [object Object] none
———— data body [object] false [object Object] none
————— id body string false string excluded_costs ID
————— type body string false none
————— meta body object false [object Object] none
—————— temp_id body string false string UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method body string false string Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
—— meta body object false [object Object] Metadata
——— temp_id body string false string UUID for internal resource linking. Should be omitted when the relationship ID is known.

Detailed descriptions

— data: Every Reservation originates from a channel. This can be a tour operator, the backoffice, the website and so on. Administrations can customize the following aspects for each Channel:

——— administration: null

——— application: null

——— guest_payment_policy: null

——— channel_payment_policy: null

——— excluded_costs: null

Enumerated Values

Parameter Value
——— kind reseller
——— kind tour_operator
——— rent_invoiced_to guest
——— rent_invoiced_to channel
——— costs_invoiced_to guest
——— costs_invoiced_to channel

Example responses

200 Response

{
  "data": {
    "id": "1",
    "type": "channel",
    "attributes": {
      "name": "Tours Inc.",
      "email": "info@tours.inc",
      "kind": "reseller",
      "available_currencies": [
        "EUR",
        "USD"
      ],
      "pricing_type": "string",
      "requires_night_prices": false,
      "archivable": false,
      "front_office": false,
      "synchronizes_costs": false,
      "allows_costs_with_multiple_price_periods": true,
      "allows_costs_with_negative_amounts": true,
      "allows_deposit_costs_that_are_not_fixed_or_per_piece_or_percentual": true,
      "allow_confirmation_without_payment": false,
      "determines_price": false,
      "skip_price_deviation_check": false,
      "rent_invoiced_to": "guest",
      "costs_invoiced_to": "guest",
      "use_costs_invoiced_to": true,
      "behave_as_own_site": false,
      "supports_group_details": false,
      "confirm_reservations": true,
      "confirm_by_email": false,
      "customer_invoice_payable_on_park": false,
      "fixed_attributes": [
        "kind",
        "requires_night_prices"
      ],
      "can_be_set_as_default_channel": false,
      "requires_cancellation_originator": false,
      "requires_restitution_after_cancellation": false,
      "requires_confirmation_or_cancellation_within_24_hours": false,
      "uses_remote_reservation_key": false,
      "archived": true,
      "debtor_code": "string",
      "temporary_booking_validity_in_hours": "string",
      "created_at": "2019-08-24T14:15:22Z",
      "updated_at": "2019-08-24T14:15:22Z"
    },
    "relationships": {
      "administration": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      },
      "application": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      },
      "guest_payment_policy": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      },
      "channel_payment_policy": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      },
      "excluded_costs": {
        "data": [
          {}
        ]
      }
    },
    "meta": {
      "temp_id": "string"
    }
  }
}

Responses

Status Meaning Description Schema
200 OK ChannelResponse Inline
default Default Error Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
— data [Channel](#schemachannel) false none Every Reservation originates from a channel. This can be a tour operator, the backoffice, the website and so on.
Administrations can customize the following aspects for each Channel:

* Extras
* Costs
* Availability
* Rent prices
* Invoicing
—— id string false none ID
—— type string false none Type
—— attributes object false none Attributes
——— name string false none Name of the channel. This name is also shown in the back-office.
——— email string false none Contact email address of the channel. This email address is also shown in the back-office.
——— kind string false none Channel kind.
——— available_currencies [string] false none Lists the currencies that are available for this channel. One or more of: EUR, USD, CHF, CZK, TRY, CVE, ANG, GBP, NOK.
——— pricing_type string false none Type of pricing that applies to this channel. One of: night_prices, complex_prices. Is replaced by requires_night_prices.
——— requires_night_prices boolean false none Whether this channel can only handle night prices.
——— archivable boolean false none Whether the channel can be archived or not.
——— front_office boolean false none Whether reservations made through this channel should be listed as front office reservations on the planboard or not.
——— synchronizes_costs boolean false none Whether the channel synchronizes costs or not.
——— allows_costs_with_multiple_price_periods boolean false none Whether the channel allows costs with negative prices or percentages. Ignored when synchronizes_costs is false.
——— allows_costs_with_negative_amounts boolean false none Whether the channel allows costs with negative prices or percentages. Ignored when synchronizes_costs is false.
——— allows_deposit_costs_that_are_not_fixed_or_per_piece_or_percentual boolean false none Whether the channel allows deposit costs that are not fixed, per piece or percentual. Ignored when synchronizes_costs is false.
——— allow_confirmation_without_payment boolean false none Whether the channel allows confirmation without direct payment.
——— determines_price boolean false none Whether the channel determines the price or not.
——— skip_price_deviation_check boolean false none Whether price deviation checks must be performed. By default, when the passed price for a booking deviates more than 5% from the expected booking price, we notify the administration of this.
——— rent_invoiced_to string false none Whether the channel invoices rent to the guest or the channel.
——— costs_invoiced_to string false none Whether the channel invoices costs to the guest or the channel.
——— use_costs_invoiced_to boolean false none Whether the channel should use the costs_invoiced_to setting to determine invoicing or not. Setting this to false allows overriding the invoicing for individual costs.
——— behave_as_own_site boolean false none Whether the channel behaves as the own site channel or not. Must be false when kind is set to tour_operator.
——— supports_group_details boolean false none Whether the channel supports specifying detailed group compositions.
——— confirm_reservations boolean false none Whether the channel automatically confirms reservations or not
——— confirm_by_email boolean false none Whether the channel sends the channel invoice to the specified email or not
——— customer_invoice_payable_on_park boolean false none Whether the guest invoice can be paid on arrival or not
——— fixed_attributes [string] false none Lists the attributes of the channel that cannot be freely edited in the back-office. One or more of: name, requires_night_prices, kind, rent_invoiced_to, costs_invoiced_to, use_costs_invoiced_to, confirm_reservations, confirm_by_email, customer_invoice_payable_on_park, available_currencies, email.
——— can_be_set_as_default_channel boolean false none Whether the channel can be set as the default channel for new back office reservations etc. or not. Can only be specified on creation.
——— requires_cancellation_originator boolean false none Whether the channel requires the originator of reservation cancellations to be known or not. Can only be specified on creation.
——— requires_restitution_after_cancellation boolean false none Whether the channel requires mandatory restitution after a reservation cancellation or not. Can only be specified on creation.
——— requires_confirmation_or_cancellation_within_24_hours boolean false none Whether the channel requires confirmation or cancellation of a reservation within 24 hours after creation of the reservation. Can only be specified on creation.
——— uses_remote_reservation_key boolean false none Whether the channel uses a remote reservation key or not. Can only be specified on creation.
——— archived boolean false read-only Whether this channel has been archived or not.
——— debtor_code string false read-only A system wide unique identifier for this debtor
——— temporary_booking_validity_in_hours string false read-only Time in hours after which unconfirmed reservations are cancelled.
——— created_at string(date-time) false read-only none
——— updated_at string(date-time) false read-only none
—— relationships object false none Relationships
——— administration object false none none
———— data object false none none
————— id string false none administration ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— application object false none none
———— data object false none none
————— id string false none application ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— guest_payment_policy object false none none
———— data object false none none
————— id string false none guest_payment_policy ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— channel_payment_policy object false none none
———— data object false none none
————— id string false none channel_payment_policy ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— excluded_costs object false none none
———— data [object] false none none
————— id string false none excluded_costs ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
—— meta object false none Metadata
——— temp_id string false none UUID for internal resource linking. Should be omitted when the relationship ID is known.

Enumerated Values

Property Value
kind reseller
kind tour_operator
rent_invoiced_to guest
rent_invoiced_to channel
costs_invoiced_to guest
costs_invoiced_to channel

Status Code default

Name Type Required Restrictions Description
— errors [object] false none none
—— status string false none HTTP response code
—— code string false none Internal error code
—— title string false none Error title
—— detail string false none Error details
—— source object false none none
——— pointer string false none Pointer to error in resource

GET channel

Code samples

curl --request GET \
  --url https://api.bookingexperts.nl/v3/administrations/1/channels/string \
  --header 'Accept: application/vnd.api+json' \
  --header 'Accept-Language: en,nl' \
  --header 'X-API-KEY: API_KEY'
require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.bookingexperts.nl/v3/administrations/1/channels/string")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)
request["Accept"] = 'application/vnd.api+json'
request["Accept-Language"] = 'en,nl'
request["X-API-KEY"] = 'API_KEY'

response = http.request(request)
puts response.read_body
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.bookingexperts.nl/v3/administrations/1/channels/string",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "Accept: application/vnd.api+json",
    "Accept-Language: en,nl",
    "X-API-KEY: API_KEY"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.bookingexperts.nl/v3/administrations/1/channels/string");
xhr.setRequestHeader("Accept", "application/vnd.api+json");
xhr.setRequestHeader("Accept-Language", "en,nl");
xhr.setRequestHeader("X-API-KEY", "API_KEY");

xhr.send(data);

GET /v3/administrations/{administration_id}/channels/{id}

Returns a channel

Parameters

Name In Type Required Example Description
administration_id path string true 1 Administration ID
id path string true string Resource ID
fields[channel] query string false string Fieldset. Specify a comma separated list of attributes to return
filter[id] query string false string Filter on ID
filter[name] query string false string Filter on name
filter[email] query string false string Filter on email
filter[kind] query string false string Filter on kind
filter[requires_night_prices] query string false string Filter on requires_night_prices
filter[rent_invoiced_to] query string false string Filter on rent_invoiced_to
filter[costs_invoiced_to] query string false string Filter on costs_invoiced_to
filter[use_costs_invoiced_to] query string false string Filter on use_costs_invoiced_to
filter[supports_group_details] query string false string Filter on supports_group_details
filter[confirm_reservations] query string false string Filter on confirm_reservations
filter[confirm_by_email] query string false string Filter on confirm_by_email
filter[customer_invoice_payable_on_park] query string false string Filter on customer_invoice_payable_on_park
filter[archived] query string false string Filter on archived
filter[temporary_booking_validity_in_hours] query string false string Filter on temporary_booking_validity_in_hours
filter[created_at] query string false string Filter on created_at
filter[updated_at] query string false string Filter on updated_at
filter[administration] query string false string Filter on administration. Specify a comma separated list of IDs to filter on.
filter[application] query string false string Filter on application. Specify a comma separated list of IDs to filter on.
filter[guest_payment_policy] query string false string Filter on guest_payment_policy. Specify a comma separated list of IDs to filter on.
filter[channel_payment_policy] query string false string Filter on channel_payment_policy. Specify a comma separated list of IDs to filter on.
filter[excluded_costs] query string false string Filter on excluded_costs. Specify a comma separated list of IDs to filter on.
include query string false string Includes list. Specify a comma separated list of resources to include.
Accept-Language header string false en,nl Supported languages. A comma separated list with one or more of the following locales: nl, nl-BE, en, de, de-AT, de-CH, fr, fr-BE, fr-LU, da, cs, es, tr, pt, it, nb. Default: 'en'.

Example responses

200 Response

{
  "data": {
    "id": "1",
    "type": "channel",
    "attributes": {
      "name": "Tours Inc.",
      "email": "info@tours.inc",
      "kind": "reseller",
      "available_currencies": [
        "EUR",
        "USD"
      ],
      "pricing_type": "string",
      "requires_night_prices": false,
      "archivable": false,
      "front_office": false,
      "synchronizes_costs": false,
      "allows_costs_with_multiple_price_periods": true,
      "allows_costs_with_negative_amounts": true,
      "allows_deposit_costs_that_are_not_fixed_or_per_piece_or_percentual": true,
      "allow_confirmation_without_payment": false,
      "determines_price": false,
      "skip_price_deviation_check": false,
      "rent_invoiced_to": "guest",
      "costs_invoiced_to": "guest",
      "use_costs_invoiced_to": true,
      "behave_as_own_site": false,
      "supports_group_details": false,
      "confirm_reservations": true,
      "confirm_by_email": false,
      "customer_invoice_payable_on_park": false,
      "fixed_attributes": [
        "kind",
        "requires_night_prices"
      ],
      "can_be_set_as_default_channel": false,
      "requires_cancellation_originator": false,
      "requires_restitution_after_cancellation": false,
      "requires_confirmation_or_cancellation_within_24_hours": false,
      "uses_remote_reservation_key": false,
      "archived": true,
      "debtor_code": "string",
      "temporary_booking_validity_in_hours": "string",
      "created_at": "2019-08-24T14:15:22Z",
      "updated_at": "2019-08-24T14:15:22Z"
    },
    "relationships": {
      "administration": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      },
      "application": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      },
      "guest_payment_policy": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      },
      "channel_payment_policy": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      },
      "excluded_costs": {
        "data": [
          {}
        ]
      }
    },
    "meta": {
      "temp_id": "string"
    }
  }
}

Responses

Status Meaning Description Schema
200 OK ChannelResponse Inline
default Default Error Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
— data [Channel](#schemachannel) false none Every Reservation originates from a channel. This can be a tour operator, the backoffice, the website and so on.
Administrations can customize the following aspects for each Channel:

* Extras
* Costs
* Availability
* Rent prices
* Invoicing
—— id string false none ID
—— type string false none Type
—— attributes object false none Attributes
——— name string false none Name of the channel. This name is also shown in the back-office.
——— email string false none Contact email address of the channel. This email address is also shown in the back-office.
——— kind string false none Channel kind.
——— available_currencies [string] false none Lists the currencies that are available for this channel. One or more of: EUR, USD, CHF, CZK, TRY, CVE, ANG, GBP, NOK.
——— pricing_type string false none Type of pricing that applies to this channel. One of: night_prices, complex_prices. Is replaced by requires_night_prices.
——— requires_night_prices boolean false none Whether this channel can only handle night prices.
——— archivable boolean false none Whether the channel can be archived or not.
——— front_office boolean false none Whether reservations made through this channel should be listed as front office reservations on the planboard or not.
——— synchronizes_costs boolean false none Whether the channel synchronizes costs or not.
——— allows_costs_with_multiple_price_periods boolean false none Whether the channel allows costs with negative prices or percentages. Ignored when synchronizes_costs is false.
——— allows_costs_with_negative_amounts boolean false none Whether the channel allows costs with negative prices or percentages. Ignored when synchronizes_costs is false.
——— allows_deposit_costs_that_are_not_fixed_or_per_piece_or_percentual boolean false none Whether the channel allows deposit costs that are not fixed, per piece or percentual. Ignored when synchronizes_costs is false.
——— allow_confirmation_without_payment boolean false none Whether the channel allows confirmation without direct payment.
——— determines_price boolean false none Whether the channel determines the price or not.
——— skip_price_deviation_check boolean false none Whether price deviation checks must be performed. By default, when the passed price for a booking deviates more than 5% from the expected booking price, we notify the administration of this.
——— rent_invoiced_to string false none Whether the channel invoices rent to the guest or the channel.
——— costs_invoiced_to string false none Whether the channel invoices costs to the guest or the channel.
——— use_costs_invoiced_to boolean false none Whether the channel should use the costs_invoiced_to setting to determine invoicing or not. Setting this to false allows overriding the invoicing for individual costs.
——— behave_as_own_site boolean false none Whether the channel behaves as the own site channel or not. Must be false when kind is set to tour_operator.
——— supports_group_details boolean false none Whether the channel supports specifying detailed group compositions.
——— confirm_reservations boolean false none Whether the channel automatically confirms reservations or not
——— confirm_by_email boolean false none Whether the channel sends the channel invoice to the specified email or not
——— customer_invoice_payable_on_park boolean false none Whether the guest invoice can be paid on arrival or not
——— fixed_attributes [string] false none Lists the attributes of the channel that cannot be freely edited in the back-office. One or more of: name, requires_night_prices, kind, rent_invoiced_to, costs_invoiced_to, use_costs_invoiced_to, confirm_reservations, confirm_by_email, customer_invoice_payable_on_park, available_currencies, email.
——— can_be_set_as_default_channel boolean false none Whether the channel can be set as the default channel for new back office reservations etc. or not. Can only be specified on creation.
——— requires_cancellation_originator boolean false none Whether the channel requires the originator of reservation cancellations to be known or not. Can only be specified on creation.
——— requires_restitution_after_cancellation boolean false none Whether the channel requires mandatory restitution after a reservation cancellation or not. Can only be specified on creation.
——— requires_confirmation_or_cancellation_within_24_hours boolean false none Whether the channel requires confirmation or cancellation of a reservation within 24 hours after creation of the reservation. Can only be specified on creation.
——— uses_remote_reservation_key boolean false none Whether the channel uses a remote reservation key or not. Can only be specified on creation.
——— archived boolean false read-only Whether this channel has been archived or not.
——— debtor_code string false read-only A system wide unique identifier for this debtor
——— temporary_booking_validity_in_hours string false read-only Time in hours after which unconfirmed reservations are cancelled.
——— created_at string(date-time) false read-only none
——— updated_at string(date-time) false read-only none
—— relationships object false none Relationships
——— administration object false none none
———— data object false none none
————— id string false none administration ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— application object false none none
———— data object false none none
————— id string false none application ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— guest_payment_policy object false none none
———— data object false none none
————— id string false none guest_payment_policy ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— channel_payment_policy object false none none
———— data object false none none
————— id string false none channel_payment_policy ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— excluded_costs object false none none
———— data [object] false none none
————— id string false none excluded_costs ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
—— meta object false none Metadata
——— temp_id string false none UUID for internal resource linking. Should be omitted when the relationship ID is known.

Enumerated Values

Property Value
kind reseller
kind tour_operator
rent_invoiced_to guest
rent_invoiced_to channel
costs_invoiced_to guest
costs_invoiced_to channel

Status Code default

Name Type Required Restrictions Description
— errors [object] false none none
—— status string false none HTTP response code
—— code string false none Internal error code
—— title string false none Error title
—— detail string false none Error details
—— source object false none none
——— pointer string false none Pointer to error in resource

PATCH channel

Code samples

curl --request PATCH \
  --url https://api.bookingexperts.nl/v3/administrations/1/channels/string \
  --header 'Accept: application/vnd.api+json' \
  --header 'Accept-Language: en,nl' \
  --header 'Content-Type: application/vnd.api+json' \
  --header 'X-API-KEY: API_KEY' \
  --data '{"data":{"id":"1","type":"channel","attributes":{"name":"Tours Inc.","email":"info@tours.inc","kind":"reseller","available_currencies":["EUR","USD"],"pricing_type":"string","requires_night_prices":false,"archivable":false,"front_office":false,"synchronizes_costs":false,"allows_costs_with_multiple_price_periods":true,"allows_costs_with_negative_amounts":true,"allows_deposit_costs_that_are_not_fixed_or_per_piece_or_percentual":true,"allow_confirmation_without_payment":false,"determines_price":false,"skip_price_deviation_check":false,"rent_invoiced_to":"guest","costs_invoiced_to":"guest","use_costs_invoiced_to":true,"behave_as_own_site":false,"supports_group_details":false,"confirm_reservations":true,"confirm_by_email":false,"customer_invoice_payable_on_park":false,"fixed_attributes":["kind","requires_night_prices"],"can_be_set_as_default_channel":false,"requires_cancellation_originator":false,"requires_restitution_after_cancellation":false,"requires_confirmation_or_cancellation_within_24_hours":false,"uses_remote_reservation_key":false},"relationships":{"administration":{"data":{"id":null,"type":null,"meta":null}},"application":{"data":{"id":null,"type":null,"meta":null}},"guest_payment_policy":{"data":{"id":null,"type":null,"meta":null}},"channel_payment_policy":{"data":{"id":null,"type":null,"meta":null}},"excluded_costs":{"data":[{}]}},"meta":{"temp_id":"string"}}}'
require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.bookingexperts.nl/v3/administrations/1/channels/string")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Patch.new(url)
request["Content-Type"] = 'application/vnd.api+json'
request["Accept"] = 'application/vnd.api+json'
request["Accept-Language"] = 'en,nl'
request["X-API-KEY"] = 'API_KEY'
request.body = "{\"data\":{\"id\":\"1\",\"type\":\"channel\",\"attributes\":{\"name\":\"Tours Inc.\",\"email\":\"info@tours.inc\",\"kind\":\"reseller\",\"available_currencies\":[\"EUR\",\"USD\"],\"pricing_type\":\"string\",\"requires_night_prices\":false,\"archivable\":false,\"front_office\":false,\"synchronizes_costs\":false,\"allows_costs_with_multiple_price_periods\":true,\"allows_costs_with_negative_amounts\":true,\"allows_deposit_costs_that_are_not_fixed_or_per_piece_or_percentual\":true,\"allow_confirmation_without_payment\":false,\"determines_price\":false,\"skip_price_deviation_check\":false,\"rent_invoiced_to\":\"guest\",\"costs_invoiced_to\":\"guest\",\"use_costs_invoiced_to\":true,\"behave_as_own_site\":false,\"supports_group_details\":false,\"confirm_reservations\":true,\"confirm_by_email\":false,\"customer_invoice_payable_on_park\":false,\"fixed_attributes\":[\"kind\",\"requires_night_prices\"],\"can_be_set_as_default_channel\":false,\"requires_cancellation_originator\":false,\"requires_restitution_after_cancellation\":false,\"requires_confirmation_or_cancellation_within_24_hours\":false,\"uses_remote_reservation_key\":false},\"relationships\":{\"administration\":{\"data\":{\"id\":null,\"type\":null,\"meta\":null}},\"application\":{\"data\":{\"id\":null,\"type\":null,\"meta\":null}},\"guest_payment_policy\":{\"data\":{\"id\":null,\"type\":null,\"meta\":null}},\"channel_payment_policy\":{\"data\":{\"id\":null,\"type\":null,\"meta\":null}},\"excluded_costs\":{\"data\":[{}]}},\"meta\":{\"temp_id\":\"string\"}}}"

response = http.request(request)
puts response.read_body
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.bookingexperts.nl/v3/administrations/1/channels/string",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "PATCH",
  CURLOPT_POSTFIELDS => "{\"data\":{\"id\":\"1\",\"type\":\"channel\",\"attributes\":{\"name\":\"Tours Inc.\",\"email\":\"info@tours.inc\",\"kind\":\"reseller\",\"available_currencies\":[\"EUR\",\"USD\"],\"pricing_type\":\"string\",\"requires_night_prices\":false,\"archivable\":false,\"front_office\":false,\"synchronizes_costs\":false,\"allows_costs_with_multiple_price_periods\":true,\"allows_costs_with_negative_amounts\":true,\"allows_deposit_costs_that_are_not_fixed_or_per_piece_or_percentual\":true,\"allow_confirmation_without_payment\":false,\"determines_price\":false,\"skip_price_deviation_check\":false,\"rent_invoiced_to\":\"guest\",\"costs_invoiced_to\":\"guest\",\"use_costs_invoiced_to\":true,\"behave_as_own_site\":false,\"supports_group_details\":false,\"confirm_reservations\":true,\"confirm_by_email\":false,\"customer_invoice_payable_on_park\":false,\"fixed_attributes\":[\"kind\",\"requires_night_prices\"],\"can_be_set_as_default_channel\":false,\"requires_cancellation_originator\":false,\"requires_restitution_after_cancellation\":false,\"requires_confirmation_or_cancellation_within_24_hours\":false,\"uses_remote_reservation_key\":false},\"relationships\":{\"administration\":{\"data\":{\"id\":null,\"type\":null,\"meta\":null}},\"application\":{\"data\":{\"id\":null,\"type\":null,\"meta\":null}},\"guest_payment_policy\":{\"data\":{\"id\":null,\"type\":null,\"meta\":null}},\"channel_payment_policy\":{\"data\":{\"id\":null,\"type\":null,\"meta\":null}},\"excluded_costs\":{\"data\":[{}]}},\"meta\":{\"temp_id\":\"string\"}}}",
  CURLOPT_HTTPHEADER => [
    "Accept: application/vnd.api+json",
    "Accept-Language: en,nl",
    "Content-Type: application/vnd.api+json",
    "X-API-KEY: API_KEY"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
const data = "{\"data\":{\"id\":\"1\",\"type\":\"channel\",\"attributes\":{\"name\":\"Tours Inc.\",\"email\":\"info@tours.inc\",\"kind\":\"reseller\",\"available_currencies\":[\"EUR\",\"USD\"],\"pricing_type\":\"string\",\"requires_night_prices\":false,\"archivable\":false,\"front_office\":false,\"synchronizes_costs\":false,\"allows_costs_with_multiple_price_periods\":true,\"allows_costs_with_negative_amounts\":true,\"allows_deposit_costs_that_are_not_fixed_or_per_piece_or_percentual\":true,\"allow_confirmation_without_payment\":false,\"determines_price\":false,\"skip_price_deviation_check\":false,\"rent_invoiced_to\":\"guest\",\"costs_invoiced_to\":\"guest\",\"use_costs_invoiced_to\":true,\"behave_as_own_site\":false,\"supports_group_details\":false,\"confirm_reservations\":true,\"confirm_by_email\":false,\"customer_invoice_payable_on_park\":false,\"fixed_attributes\":[\"kind\",\"requires_night_prices\"],\"can_be_set_as_default_channel\":false,\"requires_cancellation_originator\":false,\"requires_restitution_after_cancellation\":false,\"requires_confirmation_or_cancellation_within_24_hours\":false,\"uses_remote_reservation_key\":false},\"relationships\":{\"administration\":{\"data\":{\"id\":null,\"type\":null,\"meta\":null}},\"application\":{\"data\":{\"id\":null,\"type\":null,\"meta\":null}},\"guest_payment_policy\":{\"data\":{\"id\":null,\"type\":null,\"meta\":null}},\"channel_payment_policy\":{\"data\":{\"id\":null,\"type\":null,\"meta\":null}},\"excluded_costs\":{\"data\":[{}]}},\"meta\":{\"temp_id\":\"string\"}}}";

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PATCH", "https://api.bookingexperts.nl/v3/administrations/1/channels/string");
xhr.setRequestHeader("Content-Type", "application/vnd.api+json");
xhr.setRequestHeader("Accept", "application/vnd.api+json");
xhr.setRequestHeader("Accept-Language", "en,nl");
xhr.setRequestHeader("X-API-KEY", "API_KEY");

xhr.send(data);

PATCH /v3/administrations/{administration_id}/channels/{id}

Update a channel. Restricted to channels that are associated with your own subscription.

Body parameter

{
  "data": {
    "id": "1",
    "type": "channel",
    "attributes": {
      "name": "Tours Inc.",
      "email": "info@tours.inc",
      "kind": "reseller",
      "available_currencies": [
        "EUR",
        "USD"
      ],
      "pricing_type": "string",
      "requires_night_prices": false,
      "archivable": false,
      "front_office": false,
      "synchronizes_costs": false,
      "allows_costs_with_multiple_price_periods": true,
      "allows_costs_with_negative_amounts": true,
      "allows_deposit_costs_that_are_not_fixed_or_per_piece_or_percentual": true,
      "allow_confirmation_without_payment": false,
      "determines_price": false,
      "skip_price_deviation_check": false,
      "rent_invoiced_to": "guest",
      "costs_invoiced_to": "guest",
      "use_costs_invoiced_to": true,
      "behave_as_own_site": false,
      "supports_group_details": false,
      "confirm_reservations": true,
      "confirm_by_email": false,
      "customer_invoice_payable_on_park": false,
      "fixed_attributes": [
        "kind",
        "requires_night_prices"
      ],
      "can_be_set_as_default_channel": false,
      "requires_cancellation_originator": false,
      "requires_restitution_after_cancellation": false,
      "requires_confirmation_or_cancellation_within_24_hours": false,
      "uses_remote_reservation_key": false
    },
    "relationships": {
      "administration": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      },
      "application": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      },
      "guest_payment_policy": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      },
      "channel_payment_policy": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      },
      "excluded_costs": {
        "data": [
          {}
        ]
      }
    },
    "meta": {
      "temp_id": "string"
    }
  }
}

Parameters

Name In Type Required Example Description
administration_id path string true 1 Administration ID
id path string true string Resource ID
Accept-Language header string false en,nl Supported languages. A comma separated list with one or more of the following locales: nl, nl-BE, en, de, de-AT, de-CH, fr, fr-BE, fr-LU, da, cs, es, tr, pt, it, nb. Default: 'en'.
body body object true [object Object] none
— data body object false [object Object] Every Reservation originates from a channel. This can be a tour operator, the backoffice, the website and so on.
—— id body string false 1 ID
—— type body string false channel Type
—— attributes body object false [object Object] Attributes
——— name body string false Tours Inc. Name of the channel. This name is also shown in the back-office.
——— email body string false info@tours.inc Contact email address of the channel. This email address is also shown in the back-office.
——— kind body string false reseller Channel kind.
——— available_currencies body [string] false EUR,USD Lists the currencies that are available for this channel. One or more of: EUR, USD, CHF, CZK, TRY, CVE, ANG, GBP, NOK.
——— pricing_type body string false string Type of pricing that applies to this channel. One of: night_prices, complex_prices. Is replaced by requires_night_prices.
——— requires_night_prices body boolean false false Whether this channel can only handle night prices.
——— archivable body boolean false false Whether the channel can be archived or not.
——— front_office body boolean false false Whether reservations made through this channel should be listed as front office reservations on the planboard or not.
——— synchronizes_costs body boolean false false Whether the channel synchronizes costs or not.
——— allows_costs_with_multiple_price_periods body boolean false true Whether the channel allows costs with negative prices or percentages. Ignored when synchronizes_costs is false.
——— allows_costs_with_negative_amounts body boolean false true Whether the channel allows costs with negative prices or percentages. Ignored when synchronizes_costs is false.
——— allows_deposit_costs_that_are_not_fixed_or_per_piece_or_percentual body boolean false true Whether the channel allows deposit costs that are not fixed, per piece or percentual. Ignored when synchronizes_costs is false.
——— allow_confirmation_without_payment body boolean false false Whether the channel allows confirmation without direct payment.
——— determines_price body boolean false false Whether the channel determines the price or not.
——— skip_price_deviation_check body boolean false false Whether price deviation checks must be performed. By default, when the passed price for a booking deviates more than 5% from the expected booking price, we notify the administration of this.
——— rent_invoiced_to body string false guest Whether the channel invoices rent to the guest or the channel.
——— costs_invoiced_to body string false guest Whether the channel invoices costs to the guest or the channel.
——— use_costs_invoiced_to body boolean false true Whether the channel should use the costs_invoiced_to setting to determine invoicing or not. Setting this to false allows overriding the invoicing for individual costs.
——— behave_as_own_site body boolean false false Whether the channel behaves as the own site channel or not. Must be false when kind is set to tour_operator.
——— supports_group_details body boolean false false Whether the channel supports specifying detailed group compositions.
——— confirm_reservations body boolean false true Whether the channel automatically confirms reservations or not
——— confirm_by_email body boolean false false Whether the channel sends the channel invoice to the specified email or not
——— customer_invoice_payable_on_park body boolean false false Whether the guest invoice can be paid on arrival or not
——— fixed_attributes body [string] false kind,requires_night_prices Lists the attributes of the channel that cannot be freely edited in the back-office. One or more of: name, requires_night_prices, kind, rent_invoiced_to, costs_invoiced_to, use_costs_invoiced_to, confirm_reservations, confirm_by_email, customer_invoice_payable_on_park, available_currencies, email.
——— can_be_set_as_default_channel body boolean false false Whether the channel can be set as the default channel for new back office reservations etc. or not. Can only be specified on creation.
——— requires_cancellation_originator body boolean false false Whether the channel requires the originator of reservation cancellations to be known or not. Can only be specified on creation.
——— requires_restitution_after_cancellation body boolean false false Whether the channel requires mandatory restitution after a reservation cancellation or not. Can only be specified on creation.
——— requires_confirmation_or_cancellation_within_24_hours body boolean false false Whether the channel requires confirmation or cancellation of a reservation within 24 hours after creation of the reservation. Can only be specified on creation.
——— uses_remote_reservation_key body boolean false false Whether the channel uses a remote reservation key or not. Can only be specified on creation.
—— relationships body object false [object Object] Relationships
——— administration body object false [object Object] none
———— data body object false [object Object] none
————— id body string false string administration ID
————— type body string false administration none
————— meta body object false [object Object] none
—————— temp_id body string false string UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method body string false string Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— application body object false [object Object] none
———— data body object false [object Object] none
————— id body string false string application ID
————— type body string false application none
————— meta body object false [object Object] none
—————— temp_id body string false string UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method body string false string Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— guest_payment_policy body object false [object Object] none
———— data body object false [object Object] none
————— id body string false string guest_payment_policy ID
————— type body string false payment_policy none
————— meta body object false [object Object] none
—————— temp_id body string false string UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method body string false string Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— channel_payment_policy body object false [object Object] none
———— data body object false [object Object] none
————— id body string false string channel_payment_policy ID
————— type body string false payment_policy none
————— meta body object false [object Object] none
—————— temp_id body string false string UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method body string false string Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— excluded_costs body object false [object Object] none
———— data body [object] false [object Object] none
————— id body string false string excluded_costs ID
————— type body string false none
————— meta body object false [object Object] none
—————— temp_id body string false string UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method body string false string Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
—— meta body object false [object Object] Metadata
——— temp_id body string false string UUID for internal resource linking. Should be omitted when the relationship ID is known.

Detailed descriptions

— data: Every Reservation originates from a channel. This can be a tour operator, the backoffice, the website and so on. Administrations can customize the following aspects for each Channel:

——— administration: null

——— application: null

——— guest_payment_policy: null

——— channel_payment_policy: null

——— excluded_costs: null

Enumerated Values

Parameter Value
——— kind reseller
——— kind tour_operator
——— rent_invoiced_to guest
——— rent_invoiced_to channel
——— costs_invoiced_to guest
——— costs_invoiced_to channel

Example responses

200 Response

{
  "data": {
    "id": "1",
    "type": "channel",
    "attributes": {
      "name": "Tours Inc.",
      "email": "info@tours.inc",
      "kind": "reseller",
      "available_currencies": [
        "EUR",
        "USD"
      ],
      "pricing_type": "string",
      "requires_night_prices": false,
      "archivable": false,
      "front_office": false,
      "synchronizes_costs": false,
      "allows_costs_with_multiple_price_periods": true,
      "allows_costs_with_negative_amounts": true,
      "allows_deposit_costs_that_are_not_fixed_or_per_piece_or_percentual": true,
      "allow_confirmation_without_payment": false,
      "determines_price": false,
      "skip_price_deviation_check": false,
      "rent_invoiced_to": "guest",
      "costs_invoiced_to": "guest",
      "use_costs_invoiced_to": true,
      "behave_as_own_site": false,
      "supports_group_details": false,
      "confirm_reservations": true,
      "confirm_by_email": false,
      "customer_invoice_payable_on_park": false,
      "fixed_attributes": [
        "kind",
        "requires_night_prices"
      ],
      "can_be_set_as_default_channel": false,
      "requires_cancellation_originator": false,
      "requires_restitution_after_cancellation": false,
      "requires_confirmation_or_cancellation_within_24_hours": false,
      "uses_remote_reservation_key": false,
      "archived": true,
      "debtor_code": "string",
      "temporary_booking_validity_in_hours": "string",
      "created_at": "2019-08-24T14:15:22Z",
      "updated_at": "2019-08-24T14:15:22Z"
    },
    "relationships": {
      "administration": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      },
      "application": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      },
      "guest_payment_policy": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      },
      "channel_payment_policy": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      },
      "excluded_costs": {
        "data": [
          {}
        ]
      }
    },
    "meta": {
      "temp_id": "string"
    }
  }
}

Responses

Status Meaning Description Schema
200 OK ChannelResponse Inline
default Default Error Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
— data [Channel](#schemachannel) false none Every Reservation originates from a channel. This can be a tour operator, the backoffice, the website and so on.
Administrations can customize the following aspects for each Channel:

* Extras
* Costs
* Availability
* Rent prices
* Invoicing
—— id string false none ID
—— type string false none Type
—— attributes object false none Attributes
——— name string false none Name of the channel. This name is also shown in the back-office.
——— email string false none Contact email address of the channel. This email address is also shown in the back-office.
——— kind string false none Channel kind.
——— available_currencies [string] false none Lists the currencies that are available for this channel. One or more of: EUR, USD, CHF, CZK, TRY, CVE, ANG, GBP, NOK.
——— pricing_type string false none Type of pricing that applies to this channel. One of: night_prices, complex_prices. Is replaced by requires_night_prices.
——— requires_night_prices boolean false none Whether this channel can only handle night prices.
——— archivable boolean false none Whether the channel can be archived or not.
——— front_office boolean false none Whether reservations made through this channel should be listed as front office reservations on the planboard or not.
——— synchronizes_costs boolean false none Whether the channel synchronizes costs or not.
——— allows_costs_with_multiple_price_periods boolean false none Whether the channel allows costs with negative prices or percentages. Ignored when synchronizes_costs is false.
——— allows_costs_with_negative_amounts boolean false none Whether the channel allows costs with negative prices or percentages. Ignored when synchronizes_costs is false.
——— allows_deposit_costs_that_are_not_fixed_or_per_piece_or_percentual boolean false none Whether the channel allows deposit costs that are not fixed, per piece or percentual. Ignored when synchronizes_costs is false.
——— allow_confirmation_without_payment boolean false none Whether the channel allows confirmation without direct payment.
——— determines_price boolean false none Whether the channel determines the price or not.
——— skip_price_deviation_check boolean false none Whether price deviation checks must be performed. By default, when the passed price for a booking deviates more than 5% from the expected booking price, we notify the administration of this.
——— rent_invoiced_to string false none Whether the channel invoices rent to the guest or the channel.
——— costs_invoiced_to string false none Whether the channel invoices costs to the guest or the channel.
——— use_costs_invoiced_to boolean false none Whether the channel should use the costs_invoiced_to setting to determine invoicing or not. Setting this to false allows overriding the invoicing for individual costs.
——— behave_as_own_site boolean false none Whether the channel behaves as the own site channel or not. Must be false when kind is set to tour_operator.
——— supports_group_details boolean false none Whether the channel supports specifying detailed group compositions.
——— confirm_reservations boolean false none Whether the channel automatically confirms reservations or not
——— confirm_by_email boolean false none Whether the channel sends the channel invoice to the specified email or not
——— customer_invoice_payable_on_park boolean false none Whether the guest invoice can be paid on arrival or not
——— fixed_attributes [string] false none Lists the attributes of the channel that cannot be freely edited in the back-office. One or more of: name, requires_night_prices, kind, rent_invoiced_to, costs_invoiced_to, use_costs_invoiced_to, confirm_reservations, confirm_by_email, customer_invoice_payable_on_park, available_currencies, email.
——— can_be_set_as_default_channel boolean false none Whether the channel can be set as the default channel for new back office reservations etc. or not. Can only be specified on creation.
——— requires_cancellation_originator boolean false none Whether the channel requires the originator of reservation cancellations to be known or not. Can only be specified on creation.
——— requires_restitution_after_cancellation boolean false none Whether the channel requires mandatory restitution after a reservation cancellation or not. Can only be specified on creation.
——— requires_confirmation_or_cancellation_within_24_hours boolean false none Whether the channel requires confirmation or cancellation of a reservation within 24 hours after creation of the reservation. Can only be specified on creation.
——— uses_remote_reservation_key boolean false none Whether the channel uses a remote reservation key or not. Can only be specified on creation.
——— archived boolean false read-only Whether this channel has been archived or not.
——— debtor_code string false read-only A system wide unique identifier for this debtor
——— temporary_booking_validity_in_hours string false read-only Time in hours after which unconfirmed reservations are cancelled.
——— created_at string(date-time) false read-only none
——— updated_at string(date-time) false read-only none
—— relationships object false none Relationships
——— administration object false none none
———— data object false none none
————— id string false none administration ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— application object false none none
———— data object false none none
————— id string false none application ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— guest_payment_policy object false none none
———— data object false none none
————— id string false none guest_payment_policy ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— channel_payment_policy object false none none
———— data object false none none
————— id string false none channel_payment_policy ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— excluded_costs object false none none
———— data [object] false none none
————— id string false none excluded_costs ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
—— meta object false none Metadata
——— temp_id string false none UUID for internal resource linking. Should be omitted when the relationship ID is known.

Enumerated Values

Property Value
kind reseller
kind tour_operator
rent_invoiced_to guest
rent_invoiced_to channel
costs_invoiced_to guest
costs_invoiced_to channel

Status Code default

Name Type Required Restrictions Description
— errors [object] false none none
—— status string false none HTTP response code
—— code string false none Internal error code
—— title string false none Error title
—— detail string false none Error details
—— source object false none none
——— pointer string false none Pointer to error in resource

DELETE channel

Code samples

curl --request DELETE \
  --url https://api.bookingexperts.nl/v3/administrations/1/channels/string \
  --header 'Accept: application/vnd.api+json' \
  --header 'Accept-Language: en,nl' \
  --header 'X-API-KEY: API_KEY'
require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.bookingexperts.nl/v3/administrations/1/channels/string")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Delete.new(url)
request["Accept"] = 'application/vnd.api+json'
request["Accept-Language"] = 'en,nl'
request["X-API-KEY"] = 'API_KEY'

response = http.request(request)
puts response.read_body
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.bookingexperts.nl/v3/administrations/1/channels/string",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "DELETE",
  CURLOPT_HTTPHEADER => [
    "Accept: application/vnd.api+json",
    "Accept-Language: en,nl",
    "X-API-KEY: API_KEY"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://api.bookingexperts.nl/v3/administrations/1/channels/string");
xhr.setRequestHeader("Accept", "application/vnd.api+json");
xhr.setRequestHeader("Accept-Language", "en,nl");
xhr.setRequestHeader("X-API-KEY", "API_KEY");

xhr.send(data);

DELETE /v3/administrations/{administration_id}/channels/{id}

Destroy a channel. Restricted to channels that are associated with your own subscription.

Parameters

Name In Type Required Example Description
administration_id path string true 1 Administration ID
id path string true string Resource ID
Accept-Language header string false en,nl Supported languages. A comma separated list with one or more of the following locales: nl, nl-BE, en, de, de-AT, de-CH, fr, fr-BE, fr-LU, da, cs, es, tr, pt, it, nb. Default: 'en'.

Example responses

default Response

{
  "errors": [
    {
      "status": "string",
      "code": "string",
      "title": "string",
      "detail": "string",
      "source": {
        "pointer": "string"
      }
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content Success None
default Default Error Inline

Response Schema

Status Code default

Name Type Required Restrictions Description
— errors [object] false none none
—— status string false none HTTP response code
—— code string false none Internal error code
—— title string false none Error title
—— detail string false none Error details
—— source object false none none
——— pointer string false none Pointer to error in resource

Administrations

GET administrations

Code samples

curl --request GET \
  --url https://api.bookingexperts.nl/v3/administrations \
  --header 'Accept: application/vnd.api+json' \
  --header 'Accept-Language: en,nl' \
  --header 'X-API-KEY: API_KEY'
require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.bookingexperts.nl/v3/administrations")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)
request["Accept"] = 'application/vnd.api+json'
request["Accept-Language"] = 'en,nl'
request["X-API-KEY"] = 'API_KEY'

response = http.request(request)
puts response.read_body
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.bookingexperts.nl/v3/administrations",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "Accept: application/vnd.api+json",
    "Accept-Language: en,nl",
    "X-API-KEY: API_KEY"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.bookingexperts.nl/v3/administrations");
xhr.setRequestHeader("Accept", "application/vnd.api+json");
xhr.setRequestHeader("Accept-Language", "en,nl");
xhr.setRequestHeader("X-API-KEY", "API_KEY");

xhr.send(data);

GET /v3/administrations

Returns all administrations accessible for the current subscription

Parameters

Name In Type Required Example Description
administration_id path string true 1 Administration ID
page[number] query string false string Page number
page[size] query string false string Page size
sort query string false string Sort. Specify a comma separated list of attributes to sort on. Prefix attribute with a \- to sort in descending order
fields[administration] query string false string Fieldset. Specify a comma separated list of attributes to return
filter[id] query string false string Filter on ID
filter[name] query string false string Filter on name
filter[email] query string false string Filter on email
filter[phone] query string false string Filter on phone
filter[website] query string false string Filter on website
filter[native_currency] query string false string Filter on native_currency
filter[address] query string false string Filter on address
filter[city] query string false string Filter on city
filter[description] query string false string Filter on description
filter[surroundings_description] query string false string Filter on surroundings_description
filter[available_locales] query string false string Filter on available_locales
filter[native_locale] query string false string Filter on native_locale
filter[timezone] query string false string Filter on timezone
filter[guest_list_group] query string false string Filter on guest_list_group
filter[guest_accepted_document_type] query string false string Filter on guest_accepted_document_type
filter[guest_identification_required] query string false string Filter on guest_identification_required
filter[ask_for_guest_gender] query string false string Filter on ask_for_guest_gender
filter[ask_for_guest_address] query string false string Filter on ask_for_guest_address
filter[ask_for_guest_email] query string false string Filter on ask_for_guest_email
filter[ask_for_guest_profession] query string false string Filter on ask_for_guest_profession
filter[latitude] query string false string Filter on latitude
filter[longitude] query string false string Filter on longitude
filter[created_at] query string false string Filter on created_at
filter[updated_at] query string false string Filter on updated_at
filter[payment_handlers] query string false string Filter on payment_handlers. Specify a comma separated list of IDs to filter on.
include query string false string Includes list. Specify a comma separated list of resources to include.
Accept-Language header string false en,nl Supported languages. A comma separated list with one or more of the following locales: nl, nl-BE, en, de, de-AT, de-CH, fr, fr-BE, fr-LU, da, cs, es, tr, pt, it, nb. Default: 'en'.

Example responses

200 Response

{
  "data": [
    {
      "id": "1",
      "type": "administration",
      "attributes": {
        "name": "string",
        "email": "string",
        "phone": "string",
        "website": "string",
        "native_currency": "string",
        "address": "string",
        "country_code": "string",
        "postal_code": "string",
        "city": {
          "nl": "string",
          "nl-BE": "string",
          "en": "string",
          "de": "string",
          "de-AT": "string",
          "de-CH": "string",
          "fr": "string",
          "fr-BE": "string",
          "fr-LU": "string",
          "da": "string",
          "cs": "string",
          "es": "string",
          "tr": "string",
          "pt": "string",
          "it": "string",
          "nb": "string"
        },
        "description": {
          "nl": "string",
          "nl-BE": "string",
          "en": "string",
          "de": "string",
          "de-AT": "string",
          "de-CH": "string",
          "fr": "string",
          "fr-BE": "string",
          "fr-LU": "string",
          "da": "string",
          "cs": "string",
          "es": "string",
          "tr": "string",
          "pt": "string",
          "it": "string",
          "nb": "string"
        },
        "surroundings_description": {
          "nl": "string",
          "nl-BE": "string",
          "en": "string",
          "de": "string",
          "de-AT": "string",
          "de-CH": "string",
          "fr": "string",
          "fr-BE": "string",
          "fr-LU": "string",
          "da": "string",
          "cs": "string",
          "es": "string",
          "tr": "string",
          "pt": "string",
          "it": "string",
          "nb": "string"
        },
        "available_locales": [
          "string"
        ],
        "native_locale": "string",
        "timezone": "string",
        "available_currencies": [
          "string"
        ],
        "map_available": true,
        "guest_list_group": "main_guest",
        "guest_accepted_document_type": "passport",
        "guest_identification_required": "none",
        "ask_for_guest_gender": true,
        "ask_for_guest_address": true,
        "ask_for_guest_email": true,
        "ask_for_guest_profession": true,
        "latitude": 0,
        "longitude": 0,
        "created_at": "2019-08-24T14:15:22Z",
        "updated_at": "2019-08-24T14:15:22Z"
      },
      "links": {
        "self": "string",
        "url": "string"
      },
      "relationships": {
        "payment_handlers": {
          "data": [
            null
          ]
        }
      },
      "meta": {
        "temp_id": "string"
      }
    }
  ],
  "meta": {
    "pagination": {
      "total_records": 0,
      "page": 0,
      "size": 0
    }
  }
}

Responses

Status Meaning Description Schema
200 OK AdministrationCollectionResponse Inline
default Default Error Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
— data [[Administration](#schemaadministration)] false none [An organization can have multiple administrations, usually a holiday park or camping.]
—— id string false none ID
—— type string false none Type
—— attributes object false none Attributes
——— name string false none none
——— email string false none none
——— phone string false none none
——— website string false none none
——— native_currency string false none none
——— address string false none none
——— country_code string false none none
——— postal_code string false none none
——— city object false none none
———— nl string false none none
———— nl-BE string false none none
———— en string false none none
———— de string false none none
———— de-AT string false none none
———— de-CH string false none none
———— fr string false none none
———— fr-BE string false none none
———— fr-LU string false none none
———— da string false none none
———— cs string false none none
———— es string false none none
———— tr string false none none
———— pt string false none none
———— it string false none none
———— nb string false none none
——— description object false none A description of the administration
———— nl string false none none
———— nl-BE string false none none
———— en string false none none
———— de string false none none
———— de-AT string false none none
———— de-CH string false none none
———— fr string false none none
———— fr-BE string false none none
———— fr-LU string false none none
———— da string false none none
———— cs string false none none
———— es string false none none
———— tr string false none none
———— pt string false none none
———— it string false none none
———— nb string false none none
——— surroundings_description object false none A description of the surroundings
———— nl string false none none
———— nl-BE string false none none
———— en string false none none
———— de string false none none
———— de-AT string false none none
———— de-CH string false none none
———— fr string false none none
———— fr-BE string false none none
———— fr-LU string false none none
———— da string false none none
———— cs string false none none
———— es string false none none
———— tr string false none none
———— pt string false none none
———— it string false none none
———— nb string false none none
——— available_locales [string] false none Enabled locales
——— native_locale string false none The default locale used by the administration internally, and which should be used for communication with the administration
——— timezone string false none The timezone of the administration, for example: Amsterdam
——— available_currencies [string] false read-only Enabled currencies
——— map_available boolean false read-only If a map is available. The map can be used to pick a specific accommodation or pitch.
——— guest_list_group string false read-only none
——— guest_accepted_document_type [string] false read-only none
——— guest_identification_required string false read-only none
——— ask_for_guest_gender boolean false read-only none
——— ask_for_guest_address boolean false read-only none
——— ask_for_guest_email boolean false read-only none
——— ask_for_guest_profession boolean false read-only none
——— latitude number(float) false read-only none
——— longitude number(float) false read-only none
——— created_at string(date-time) false read-only none
——— updated_at string(date-time) false read-only none
—— links object false none Links
——— self string false none Link to self
——— url string false none Link to url
—— relationships object false none Relationships
——— payment_handlers object false none none
———— data [object] false read-only none
————— id string false none payment_handlers ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
—— meta object false none Metadata
——— temp_id string false none UUID for internal resource linking. Should be omitted when the relationship ID is known.
— meta object false none none
—— pagination object false none none
——— total_records integer false none none
——— page integer false none none
——— size integer false none none

Enumerated Values

Property Value
guest_list_group main_guest
guest_list_group all
guest_list_group adults
guest_list_group none
guest_accepted_document_type passport
guest_accepted_document_type license
guest_accepted_document_type identity_card
guest_identification_required none
guest_identification_required main_guest
guest_identification_required all
guest_identification_required adults

Status Code default

Name Type Required Restrictions Description
— errors [object] false none none
—— status string false none HTTP response code
—— code string false none Internal error code
—— title string false none Error title
—— detail string false none Error details
—— source object false none none
——— pointer string false none Pointer to error in resource

GET administration

Code samples

curl --request GET \
  --url https://api.bookingexperts.nl/v3/administrations/string \
  --header 'Accept: application/vnd.api+json' \
  --header 'Accept-Language: en,nl' \
  --header 'X-API-KEY: API_KEY'
require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.bookingexperts.nl/v3/administrations/string")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)
request["Accept"] = 'application/vnd.api+json'
request["Accept-Language"] = 'en,nl'
request["X-API-KEY"] = 'API_KEY'

response = http.request(request)
puts response.read_body
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.bookingexperts.nl/v3/administrations/string",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "Accept: application/vnd.api+json",
    "Accept-Language: en,nl",
    "X-API-KEY: API_KEY"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.bookingexperts.nl/v3/administrations/string");
xhr.setRequestHeader("Accept", "application/vnd.api+json");
xhr.setRequestHeader("Accept-Language", "en,nl");
xhr.setRequestHeader("X-API-KEY", "API_KEY");

xhr.send(data);

GET /v3/administrations/{id}

Returns an administration of the current organization

Parameters

Name In Type Required Example Description
administration_id path string true 1 Administration ID
id path string true string Resource ID
fields[administration] query string false string Fieldset. Specify a comma separated list of attributes to return
filter[id] query string false string Filter on ID
filter[name] query string false string Filter on name
filter[email] query string false string Filter on email
filter[phone] query string false string Filter on phone
filter[website] query string false string Filter on website
filter[native_currency] query string false string Filter on native_currency
filter[address] query string false string Filter on address
filter[city] query string false string Filter on city
filter[description] query string false string Filter on description
filter[surroundings_description] query string false string Filter on surroundings_description
filter[available_locales] query string false string Filter on available_locales
filter[native_locale] query string false string Filter on native_locale
filter[timezone] query string false string Filter on timezone
filter[guest_list_group] query string false string Filter on guest_list_group
filter[guest_accepted_document_type] query string false string Filter on guest_accepted_document_type
filter[guest_identification_required] query string false string Filter on guest_identification_required
filter[ask_for_guest_gender] query string false string Filter on ask_for_guest_gender
filter[ask_for_guest_address] query string false string Filter on ask_for_guest_address
filter[ask_for_guest_email] query string false string Filter on ask_for_guest_email
filter[ask_for_guest_profession] query string false string Filter on ask_for_guest_profession
filter[latitude] query string false string Filter on latitude
filter[longitude] query string false string Filter on longitude
filter[created_at] query string false string Filter on created_at
filter[updated_at] query string false string Filter on updated_at
filter[payment_handlers] query string false string Filter on payment_handlers. Specify a comma separated list of IDs to filter on.
include query string false string Includes list. Specify a comma separated list of resources to include.
Accept-Language header string false en,nl Supported languages. A comma separated list with one or more of the following locales: nl, nl-BE, en, de, de-AT, de-CH, fr, fr-BE, fr-LU, da, cs, es, tr, pt, it, nb. Default: 'en'.

Example responses

200 Response

{
  "data": {
    "id": "1",
    "type": "administration",
    "attributes": {
      "name": "string",
      "email": "string",
      "phone": "string",
      "website": "string",
      "native_currency": "string",
      "address": "string",
      "country_code": "string",
      "postal_code": "string",
      "city": {
        "nl": "string",
        "nl-BE": "string",
        "en": "string",
        "de": "string",
        "de-AT": "string",
        "de-CH": "string",
        "fr": "string",
        "fr-BE": "string",
        "fr-LU": "string",
        "da": "string",
        "cs": "string",
        "es": "string",
        "tr": "string",
        "pt": "string",
        "it": "string",
        "nb": "string"
      },
      "description": {
        "nl": "string",
        "nl-BE": "string",
        "en": "string",
        "de": "string",
        "de-AT": "string",
        "de-CH": "string",
        "fr": "string",
        "fr-BE": "string",
        "fr-LU": "string",
        "da": "string",
        "cs": "string",
        "es": "string",
        "tr": "string",
        "pt": "string",
        "it": "string",
        "nb": "string"
      },
      "surroundings_description": {
        "nl": "string",
        "nl-BE": "string",
        "en": "string",
        "de": "string",
        "de-AT": "string",
        "de-CH": "string",
        "fr": "string",
        "fr-BE": "string",
        "fr-LU": "string",
        "da": "string",
        "cs": "string",
        "es": "string",
        "tr": "string",
        "pt": "string",
        "it": "string",
        "nb": "string"
      },
      "available_locales": [
        "string"
      ],
      "native_locale": "string",
      "timezone": "string",
      "available_currencies": [
        "string"
      ],
      "map_available": true,
      "guest_list_group": "main_guest",
      "guest_accepted_document_type": "passport",
      "guest_identification_required": "none",
      "ask_for_guest_gender": true,
      "ask_for_guest_address": true,
      "ask_for_guest_email": true,
      "ask_for_guest_profession": true,
      "latitude": 0,
      "longitude": 0,
      "created_at": "2019-08-24T14:15:22Z",
      "updated_at": "2019-08-24T14:15:22Z"
    },
    "links": {
      "self": "string",
      "url": "string"
    },
    "relationships": {
      "payment_handlers": {
        "data": [
          {}
        ]
      }
    },
    "meta": {
      "temp_id": "string"
    }
  }
}

Responses

Status Meaning Description Schema
200 OK AdministrationResponse Inline
default Default Error Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
— data [Administration](#schemaadministration) false none An organization can have multiple administrations, usually a holiday park or camping.
—— id string false none ID
—— type string false none Type
—— attributes object false none Attributes
——— name string false none none
——— email string false none none
——— phone string false none none
——— website string false none none
——— native_currency string false none none
——— address string false none none
——— country_code string false none none
——— postal_code string false none none
——— city object false none none
———— nl string false none none
———— nl-BE string false none none
———— en string false none none
———— de string false none none
———— de-AT string false none none
———— de-CH string false none none
———— fr string false none none
———— fr-BE string false none none
———— fr-LU string false none none
———— da string false none none
———— cs string false none none
———— es string false none none
———— tr string false none none
———— pt string false none none
———— it string false none none
———— nb string false none none
——— description object false none A description of the administration
———— nl string false none none
———— nl-BE string false none none
———— en string false none none
———— de string false none none
———— de-AT string false none none
———— de-CH string false none none
———— fr string false none none
———— fr-BE string false none none
———— fr-LU string false none none
———— da string false none none
———— cs string false none none
———— es string false none none
———— tr string false none none
———— pt string false none none
———— it string false none none
———— nb string false none none
——— surroundings_description object false none A description of the surroundings
———— nl string false none none
———— nl-BE string false none none
———— en string false none none
———— de string false none none
———— de-AT string false none none
———— de-CH string false none none
———— fr string false none none
———— fr-BE string false none none
———— fr-LU string false none none
———— da string false none none
———— cs string false none none
———— es string false none none
———— tr string false none none
———— pt string false none none
———— it string false none none
———— nb string false none none
——— available_locales [string] false none Enabled locales
——— native_locale string false none The default locale used by the administration internally, and which should be used for communication with the administration
——— timezone string false none The timezone of the administration, for example: Amsterdam
——— available_currencies [string] false read-only Enabled currencies
——— map_available boolean false read-only If a map is available. The map can be used to pick a specific accommodation or pitch.
——— guest_list_group string false read-only none
——— guest_accepted_document_type [string] false read-only none
——— guest_identification_required string false read-only none
——— ask_for_guest_gender boolean false read-only none
——— ask_for_guest_address boolean false read-only none
——— ask_for_guest_email boolean false read-only none
——— ask_for_guest_profession boolean false read-only none
——— latitude number(float) false read-only none
——— longitude number(float) false read-only none
——— created_at string(date-time) false read-only none
——— updated_at string(date-time) false read-only none
—— links object false none Links
——— self string false none Link to self
——— url string false none Link to url
—— relationships object false none Relationships
——— payment_handlers object false none none
———— data [object] false read-only none
————— id string false none payment_handlers ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
—— meta object false none Metadata
——— temp_id string false none UUID for internal resource linking. Should be omitted when the relationship ID is known.

Enumerated Values

Property Value
guest_list_group main_guest
guest_list_group all
guest_list_group adults
guest_list_group none
guest_accepted_document_type passport
guest_accepted_document_type license
guest_accepted_document_type identity_card
guest_identification_required none
guest_identification_required main_guest
guest_identification_required all
guest_identification_required adults

Status Code default

Name Type Required Restrictions Description
— errors [object] false none none
—— status string false none HTTP response code
—— code string false none Internal error code
—— title string false none Error title
—— detail string false none Error details
—— source object false none none
——— pointer string false none Pointer to error in resource

Agenda Periods

POST external_blocked_agenda_period

Code samples

curl --request POST \
  --url https://api.bookingexperts.nl/v3/administrations/1/external_blocked_agenda_periods \
  --header 'Accept: application/vnd.api+json' \
  --header 'Accept-Language: en,nl' \
  --header 'Content-Type: application/vnd.api+json' \
  --header 'X-API-KEY: API_KEY' \
  --data '{"data":{"type":"agenda_period","attributes":{"label":"string","start_date":"2019-08-24","end_date":"2019-08-24"},"relationships":{"rentable":{"data":{"id":null,"type":null,"meta":null}}},"meta":{"temp_id":"string"}}}'
require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.bookingexperts.nl/v3/administrations/1/external_blocked_agenda_periods")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/vnd.api+json'
request["Accept"] = 'application/vnd.api+json'
request["Accept-Language"] = 'en,nl'
request["X-API-KEY"] = 'API_KEY'
request.body = "{\"data\":{\"type\":\"agenda_period\",\"attributes\":{\"label\":\"string\",\"start_date\":\"2019-08-24\",\"end_date\":\"2019-08-24\"},\"relationships\":{\"rentable\":{\"data\":{\"id\":null,\"type\":null,\"meta\":null}}},\"meta\":{\"temp_id\":\"string\"}}}"

response = http.request(request)
puts response.read_body
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.bookingexperts.nl/v3/administrations/1/external_blocked_agenda_periods",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\"data\":{\"type\":\"agenda_period\",\"attributes\":{\"label\":\"string\",\"start_date\":\"2019-08-24\",\"end_date\":\"2019-08-24\"},\"relationships\":{\"rentable\":{\"data\":{\"id\":null,\"type\":null,\"meta\":null}}},\"meta\":{\"temp_id\":\"string\"}}}",
  CURLOPT_HTTPHEADER => [
    "Accept: application/vnd.api+json",
    "Accept-Language: en,nl",
    "Content-Type: application/vnd.api+json",
    "X-API-KEY: API_KEY"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
const data = "{\"data\":{\"type\":\"agenda_period\",\"attributes\":{\"label\":\"string\",\"start_date\":\"2019-08-24\",\"end_date\":\"2019-08-24\"},\"relationships\":{\"rentable\":{\"data\":{\"id\":null,\"type\":null,\"meta\":null}}},\"meta\":{\"temp_id\":\"string\"}}}";

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.bookingexperts.nl/v3/administrations/1/external_blocked_agenda_periods");
xhr.setRequestHeader("Content-Type", "application/vnd.api+json");
xhr.setRequestHeader("Accept", "application/vnd.api+json");
xhr.setRequestHeader("Accept-Language", "en,nl");
xhr.setRequestHeader("X-API-KEY", "API_KEY");

xhr.send(data);

POST /v3/administrations/{administration_id}/external_blocked_agenda_periods

Create a new external blocked agenda period for a given rentable.

Body parameter

{
  "data": {
    "type": "agenda_period",
    "attributes": {
      "label": "string",
      "start_date": "2019-08-24",
      "end_date": "2019-08-24"
    },
    "relationships": {
      "rentable": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      }
    },
    "meta": {
      "temp_id": "string"
    }
  }
}

Parameters

Name In Type Required Example Description
administration_id path string true 1 Administration ID
Accept-Language header string false en,nl Supported languages. A comma separated list with one or more of the following locales: nl, nl-BE, en, de, de-AT, de-CH, fr, fr-BE, fr-LU, da, cs, es, tr, pt, it, nb. Default: 'en'.
body body object true [object Object] none
— data body object false [object Object] A blocking event on the calendar of a Rentable. This includes Reservations and maintenance events.
—— type body string false agenda_period Type
—— attributes body object false [object Object] Attributes
——— label body string false string none
——— start_date body string(date) false 2019-08-24 none
——— end_date body string(date) false 2019-08-24 none
—— relationships body object false [object Object] Relationships
——— rentable body object false [object Object] none
———— data body object false [object Object] none
————— id body string false string rentable ID
————— type body string false rentable none
————— meta body object false [object Object] none
—————— temp_id body string false string UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method body string false string Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
—— meta body object false [object Object] Metadata
——— temp_id body string false string UUID for internal resource linking. Should be omitted when the relationship ID is known.

Example responses

200 Response

{
  "data": {
    "id": "1",
    "type": "agenda_period",
    "attributes": {
      "label": "string",
      "start_date": "2019-08-24",
      "end_date": "2019-08-24",
      "type": "MaintenanceAgendaPeriod",
      "ical_uid": "string",
      "created_at": "2019-08-24T14:15:22Z",
      "updated_at": "2019-08-24T14:15:22Z"
    },
    "relationships": {
      "rentable": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      },
      "reservation": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      }
    },
    "meta": {
      "temp_id": "string"
    }
  }
}

Responses

Status Meaning Description Schema
200 OK AgendaPeriodResponse Inline
default Default Error Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
— data [AgendaPeriod](#schemaagendaperiod) false none A blocking event on the calendar of a Rentable. This includes Reservations and maintenance events.
—— id string false none ID
—— type string false none Type
—— attributes object false none Attributes
——— label string false none none
——— start_date string(date) false none none
——— end_date string(date) false none none
——— type string false read-only none
——— ical_uid string false read-only none
——— created_at string(date-time) false read-only none
——— updated_at string(date-time) false read-only none
—— relationships object false none Relationships
——— rentable object false none none
———— data object false none none
————— id string false none rentable ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— reservation object false none none
———— data object false read-only none
————— id string false none reservation ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
—— meta object false none Metadata
——— temp_id string false none UUID for internal resource linking. Should be omitted when the relationship ID is known.

Enumerated Values

Property Value
type MaintenanceAgendaPeriod
type OwnerMaintenanceAgendaPeriod
type BlockedByGroupedRentableTypeAgendaPeriod
type ReservationAgendaPeriod
type ExternalBlockedAgendaPeriod
type NotEnoughStockAgendaPeriod

Status Code default

Name Type Required Restrictions Description
— errors [object] false none none
—— status string false none HTTP response code
—— code string false none Internal error code
—— title string false none Error title
—— detail string false none Error details
—— source object false none none
——— pointer string false none Pointer to error in resource

PATCH external_blocked_agenda_period

Code samples

curl --request PATCH \
  --url https://api.bookingexperts.nl/v3/administrations/1/external_blocked_agenda_periods/string \
  --header 'Accept: application/vnd.api+json' \
  --header 'Accept-Language: en,nl' \
  --header 'Content-Type: application/vnd.api+json' \
  --header 'X-API-KEY: API_KEY' \
  --data '{"data":{"id":"1","type":"agenda_period","attributes":{"label":"string","start_date":"2019-08-24","end_date":"2019-08-24"},"relationships":{"rentable":{"data":{"id":null,"type":null,"meta":null}}},"meta":{"temp_id":"string"}}}'
require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.bookingexperts.nl/v3/administrations/1/external_blocked_agenda_periods/string")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Patch.new(url)
request["Content-Type"] = 'application/vnd.api+json'
request["Accept"] = 'application/vnd.api+json'
request["Accept-Language"] = 'en,nl'
request["X-API-KEY"] = 'API_KEY'
request.body = "{\"data\":{\"id\":\"1\",\"type\":\"agenda_period\",\"attributes\":{\"label\":\"string\",\"start_date\":\"2019-08-24\",\"end_date\":\"2019-08-24\"},\"relationships\":{\"rentable\":{\"data\":{\"id\":null,\"type\":null,\"meta\":null}}},\"meta\":{\"temp_id\":\"string\"}}}"

response = http.request(request)
puts response.read_body
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.bookingexperts.nl/v3/administrations/1/external_blocked_agenda_periods/string",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "PATCH",
  CURLOPT_POSTFIELDS => "{\"data\":{\"id\":\"1\",\"type\":\"agenda_period\",\"attributes\":{\"label\":\"string\",\"start_date\":\"2019-08-24\",\"end_date\":\"2019-08-24\"},\"relationships\":{\"rentable\":{\"data\":{\"id\":null,\"type\":null,\"meta\":null}}},\"meta\":{\"temp_id\":\"string\"}}}",
  CURLOPT_HTTPHEADER => [
    "Accept: application/vnd.api+json",
    "Accept-Language: en,nl",
    "Content-Type: application/vnd.api+json",
    "X-API-KEY: API_KEY"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
const data = "{\"data\":{\"id\":\"1\",\"type\":\"agenda_period\",\"attributes\":{\"label\":\"string\",\"start_date\":\"2019-08-24\",\"end_date\":\"2019-08-24\"},\"relationships\":{\"rentable\":{\"data\":{\"id\":null,\"type\":null,\"meta\":null}}},\"meta\":{\"temp_id\":\"string\"}}}";

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PATCH", "https://api.bookingexperts.nl/v3/administrations/1/external_blocked_agenda_periods/string");
xhr.setRequestHeader("Content-Type", "application/vnd.api+json");
xhr.setRequestHeader("Accept", "application/vnd.api+json");
xhr.setRequestHeader("Accept-Language", "en,nl");
xhr.setRequestHeader("X-API-KEY", "API_KEY");

xhr.send(data);

PATCH /v3/administrations/{administration_id}/external_blocked_agenda_periods/{id}

Update an external blocked agenda period.

Body parameter

{
  "data": {
    "id": "1",
    "type": "agenda_period",
    "attributes": {
      "label": "string",
      "start_date": "2019-08-24",
      "end_date": "2019-08-24"
    },
    "relationships": {
      "rentable": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      }
    },
    "meta": {
      "temp_id": "string"
    }
  }
}

Parameters

Name In Type Required Example Description
administration_id path string true 1 Administration ID
id path string true string Resource ID
Accept-Language header string false en,nl Supported languages. A comma separated list with one or more of the following locales: nl, nl-BE, en, de, de-AT, de-CH, fr, fr-BE, fr-LU, da, cs, es, tr, pt, it, nb. Default: 'en'.
body body object true [object Object] none
— data body object false [object Object] A blocking event on the calendar of a Rentable. This includes Reservations and maintenance events.
—— id body string false 1 ID
—— type body string false agenda_period Type
—— attributes body object false [object Object] Attributes
——— label body string false string none
——— start_date body string(date) false 2019-08-24 none
——— end_date body string(date) false 2019-08-24 none
—— relationships body object false [object Object] Relationships
——— rentable body object false [object Object] none
———— data body object false [object Object] none
————— id body string false string rentable ID
————— type body string false rentable none
————— meta body object false [object Object] none
—————— temp_id body string false string UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method body string false string Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
—— meta body object false [object Object] Metadata
——— temp_id body string false string UUID for internal resource linking. Should be omitted when the relationship ID is known.

Example responses

200 Response

{
  "data": {
    "id": "1",
    "type": "agenda_period",
    "attributes": {
      "label": "string",
      "start_date": "2019-08-24",
      "end_date": "2019-08-24",
      "type": "MaintenanceAgendaPeriod",
      "ical_uid": "string",
      "created_at": "2019-08-24T14:15:22Z",
      "updated_at": "2019-08-24T14:15:22Z"
    },
    "relationships": {
      "rentable": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      },
      "reservation": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      }
    },
    "meta": {
      "temp_id": "string"
    }
  }
}

Responses

Status Meaning Description Schema
200 OK AgendaPeriodResponse Inline
default Default Error Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
— data [AgendaPeriod](#schemaagendaperiod) false none A blocking event on the calendar of a Rentable. This includes Reservations and maintenance events.
—— id string false none ID
—— type string false none Type
—— attributes object false none Attributes
——— label string false none none
——— start_date string(date) false none none
——— end_date string(date) false none none
——— type string false read-only none
——— ical_uid string false read-only none
——— created_at string(date-time) false read-only none
——— updated_at string(date-time) false read-only none
—— relationships object false none Relationships
——— rentable object false none none
———— data object false none none
————— id string false none rentable ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— reservation object false none none
———— data object false read-only none
————— id string false none reservation ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
—— meta object false none Metadata
——— temp_id string false none UUID for internal resource linking. Should be omitted when the relationship ID is known.

Enumerated Values

Property Value
type MaintenanceAgendaPeriod
type OwnerMaintenanceAgendaPeriod
type BlockedByGroupedRentableTypeAgendaPeriod
type ReservationAgendaPeriod
type ExternalBlockedAgendaPeriod
type NotEnoughStockAgendaPeriod

Status Code default

Name Type Required Restrictions Description
— errors [object] false none none
—— status string false none HTTP response code
—— code string false none Internal error code
—— title string false none Error title
—— detail string false none Error details
—— source object false none none
——— pointer string false none Pointer to error in resource

DELETE external_blocked_agenda_period

Code samples

curl --request DELETE \
  --url https://api.bookingexperts.nl/v3/administrations/1/external_blocked_agenda_periods/string \
  --header 'Accept: application/vnd.api+json' \
  --header 'Accept-Language: en,nl' \
  --header 'X-API-KEY: API_KEY'
require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.bookingexperts.nl/v3/administrations/1/external_blocked_agenda_periods/string")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Delete.new(url)
request["Accept"] = 'application/vnd.api+json'
request["Accept-Language"] = 'en,nl'
request["X-API-KEY"] = 'API_KEY'

response = http.request(request)
puts response.read_body
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.bookingexperts.nl/v3/administrations/1/external_blocked_agenda_periods/string",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "DELETE",
  CURLOPT_HTTPHEADER => [
    "Accept: application/vnd.api+json",
    "Accept-Language: en,nl",
    "X-API-KEY: API_KEY"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://api.bookingexperts.nl/v3/administrations/1/external_blocked_agenda_periods/string");
xhr.setRequestHeader("Accept", "application/vnd.api+json");
xhr.setRequestHeader("Accept-Language", "en,nl");
xhr.setRequestHeader("X-API-KEY", "API_KEY");

xhr.send(data);

DELETE /v3/administrations/{administration_id}/external_blocked_agenda_periods/{id}

Destroy an external blocked agenda period.

Parameters

Name In Type Required Example Description
administration_id path string true 1 Administration ID
id path string true string Resource ID
Accept-Language header string false en,nl Supported languages. A comma separated list with one or more of the following locales: nl, nl-BE, en, de, de-AT, de-CH, fr, fr-BE, fr-LU, da, cs, es, tr, pt, it, nb. Default: 'en'.

Example responses

default Response

{
  "errors": [
    {
      "status": "string",
      "code": "string",
      "title": "string",
      "detail": "string",
      "source": {
        "pointer": "string"
      }
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content Success None
default Default Error Inline

Response Schema

Status Code default

Name Type Required Restrictions Description
— errors [object] false none none
—— status string false none HTTP response code
—— code string false none Internal error code
—— title string false none Error title
—— detail string false none Error details
—— source object false none none
——— pointer string false none Pointer to error in resource

POST maintenance_agenda_period

Code samples

curl --request POST \
  --url https://api.bookingexperts.nl/v3/administrations/1/maintenance_agenda_periods \
  --header 'Accept: application/vnd.api+json' \
  --header 'Accept-Language: en,nl' \
  --header 'Content-Type: application/vnd.api+json' \
  --header 'X-API-KEY: API_KEY' \
  --data '{"data":{"type":"agenda_period","attributes":{"label":"string","start_date":"2019-08-24","end_date":"2019-08-24"},"relationships":{"rentable":{"data":{"id":null,"type":null,"meta":null}}},"meta":{"temp_id":"string"}}}'
require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.bookingexperts.nl/v3/administrations/1/maintenance_agenda_periods")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/vnd.api+json'
request["Accept"] = 'application/vnd.api+json'
request["Accept-Language"] = 'en,nl'
request["X-API-KEY"] = 'API_KEY'
request.body = "{\"data\":{\"type\":\"agenda_period\",\"attributes\":{\"label\":\"string\",\"start_date\":\"2019-08-24\",\"end_date\":\"2019-08-24\"},\"relationships\":{\"rentable\":{\"data\":{\"id\":null,\"type\":null,\"meta\":null}}},\"meta\":{\"temp_id\":\"string\"}}}"

response = http.request(request)
puts response.read_body
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.bookingexperts.nl/v3/administrations/1/maintenance_agenda_periods",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\"data\":{\"type\":\"agenda_period\",\"attributes\":{\"label\":\"string\",\"start_date\":\"2019-08-24\",\"end_date\":\"2019-08-24\"},\"relationships\":{\"rentable\":{\"data\":{\"id\":null,\"type\":null,\"meta\":null}}},\"meta\":{\"temp_id\":\"string\"}}}",
  CURLOPT_HTTPHEADER => [
    "Accept: application/vnd.api+json",
    "Accept-Language: en,nl",
    "Content-Type: application/vnd.api+json",
    "X-API-KEY: API_KEY"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
const data = "{\"data\":{\"type\":\"agenda_period\",\"attributes\":{\"label\":\"string\",\"start_date\":\"2019-08-24\",\"end_date\":\"2019-08-24\"},\"relationships\":{\"rentable\":{\"data\":{\"id\":null,\"type\":null,\"meta\":null}}},\"meta\":{\"temp_id\":\"string\"}}}";

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.bookingexperts.nl/v3/administrations/1/maintenance_agenda_periods");
xhr.setRequestHeader("Content-Type", "application/vnd.api+json");
xhr.setRequestHeader("Accept", "application/vnd.api+json");
xhr.setRequestHeader("Accept-Language", "en,nl");
xhr.setRequestHeader("X-API-KEY", "API_KEY");

xhr.send(data);

POST /v3/administrations/{administration_id}/maintenance_agenda_periods

Create a new maintenance agenda period for a given rentable.

Body parameter

{
  "data": {
    "type": "agenda_period",
    "attributes": {
      "label": "string",
      "start_date": "2019-08-24",
      "end_date": "2019-08-24"
    },
    "relationships": {
      "rentable": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      }
    },
    "meta": {
      "temp_id": "string"
    }
  }
}

Parameters

Name In Type Required Example Description
administration_id path string true 1 Administration ID
Accept-Language header string false en,nl Supported languages. A comma separated list with one or more of the following locales: nl, nl-BE, en, de, de-AT, de-CH, fr, fr-BE, fr-LU, da, cs, es, tr, pt, it, nb. Default: 'en'.
body body object true [object Object] none
— data body object false [object Object] A blocking event on the calendar of a Rentable. This includes Reservations and maintenance events.
—— type body string false agenda_period Type
—— attributes body object false [object Object] Attributes
——— label body string false string none
——— start_date body string(date) false 2019-08-24 none
——— end_date body string(date) false 2019-08-24 none
—— relationships body object false [object Object] Relationships
——— rentable body object false [object Object] none
———— data body object false [object Object] none
————— id body string false string rentable ID
————— type body string false rentable none
————— meta body object false [object Object] none
—————— temp_id body string false string UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method body string false string Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
—— meta body object false [object Object] Metadata
——— temp_id body string false string UUID for internal resource linking. Should be omitted when the relationship ID is known.

Example responses

200 Response

{
  "data": {
    "id": "1",
    "type": "agenda_period",
    "attributes": {
      "label": "string",
      "start_date": "2019-08-24",
      "end_date": "2019-08-24",
      "type": "MaintenanceAgendaPeriod",
      "ical_uid": "string",
      "created_at": "2019-08-24T14:15:22Z",
      "updated_at": "2019-08-24T14:15:22Z"
    },
    "relationships": {
      "rentable": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      },
      "reservation": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      }
    },
    "meta": {
      "temp_id": "string"
    }
  }
}

Responses

Status Meaning Description Schema
200 OK AgendaPeriodResponse Inline
default Default Error Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
— data [AgendaPeriod](#schemaagendaperiod) false none A blocking event on the calendar of a Rentable. This includes Reservations and maintenance events.
—— id string false none ID
—— type string false none Type
—— attributes object false none Attributes
——— label string false none none
——— start_date string(date) false none none
——— end_date string(date) false none none
——— type string false read-only none
——— ical_uid string false read-only none
——— created_at string(date-time) false read-only none
——— updated_at string(date-time) false read-only none
—— relationships object false none Relationships
——— rentable object false none none
———— data object false none none
————— id string false none rentable ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— reservation object false none none
———— data object false read-only none
————— id string false none reservation ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
—— meta object false none Metadata
——— temp_id string false none UUID for internal resource linking. Should be omitted when the relationship ID is known.

Enumerated Values

Property Value
type MaintenanceAgendaPeriod
type OwnerMaintenanceAgendaPeriod
type BlockedByGroupedRentableTypeAgendaPeriod
type ReservationAgendaPeriod
type ExternalBlockedAgendaPeriod
type NotEnoughStockAgendaPeriod

Status Code default

Name Type Required Restrictions Description
— errors [object] false none none
—— status string false none HTTP response code
—— code string false none Internal error code
—— title string false none Error title
—— detail string false none Error details
—— source object false none none
——— pointer string false none Pointer to error in resource

PATCH maintenance_agenda_period

Code samples

curl --request PATCH \
  --url https://api.bookingexperts.nl/v3/administrations/1/maintenance_agenda_periods/string \
  --header 'Accept: application/vnd.api+json' \
  --header 'Accept-Language: en,nl' \
  --header 'Content-Type: application/vnd.api+json' \
  --header 'X-API-KEY: API_KEY' \
  --data '{"data":{"id":"1","type":"agenda_period","attributes":{"label":"string","start_date":"2019-08-24","end_date":"2019-08-24"},"relationships":{"rentable":{"data":{"id":null,"type":null,"meta":null}}},"meta":{"temp_id":"string"}}}'
require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.bookingexperts.nl/v3/administrations/1/maintenance_agenda_periods/string")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Patch.new(url)
request["Content-Type"] = 'application/vnd.api+json'
request["Accept"] = 'application/vnd.api+json'
request["Accept-Language"] = 'en,nl'
request["X-API-KEY"] = 'API_KEY'
request.body = "{\"data\":{\"id\":\"1\",\"type\":\"agenda_period\",\"attributes\":{\"label\":\"string\",\"start_date\":\"2019-08-24\",\"end_date\":\"2019-08-24\"},\"relationships\":{\"rentable\":{\"data\":{\"id\":null,\"type\":null,\"meta\":null}}},\"meta\":{\"temp_id\":\"string\"}}}"

response = http.request(request)
puts response.read_body
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.bookingexperts.nl/v3/administrations/1/maintenance_agenda_periods/string",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "PATCH",
  CURLOPT_POSTFIELDS => "{\"data\":{\"id\":\"1\",\"type\":\"agenda_period\",\"attributes\":{\"label\":\"string\",\"start_date\":\"2019-08-24\",\"end_date\":\"2019-08-24\"},\"relationships\":{\"rentable\":{\"data\":{\"id\":null,\"type\":null,\"meta\":null}}},\"meta\":{\"temp_id\":\"string\"}}}",
  CURLOPT_HTTPHEADER => [
    "Accept: application/vnd.api+json",
    "Accept-Language: en,nl",
    "Content-Type: application/vnd.api+json",
    "X-API-KEY: API_KEY"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
const data = "{\"data\":{\"id\":\"1\",\"type\":\"agenda_period\",\"attributes\":{\"label\":\"string\",\"start_date\":\"2019-08-24\",\"end_date\":\"2019-08-24\"},\"relationships\":{\"rentable\":{\"data\":{\"id\":null,\"type\":null,\"meta\":null}}},\"meta\":{\"temp_id\":\"string\"}}}";

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PATCH", "https://api.bookingexperts.nl/v3/administrations/1/maintenance_agenda_periods/string");
xhr.setRequestHeader("Content-Type", "application/vnd.api+json");
xhr.setRequestHeader("Accept", "application/vnd.api+json");
xhr.setRequestHeader("Accept-Language", "en,nl");
xhr.setRequestHeader("X-API-KEY", "API_KEY");

xhr.send(data);

PATCH /v3/administrations/{administration_id}/maintenance_agenda_periods/{id}

Update an maintenance agenda period.

Body parameter

{
  "data": {
    "id": "1",
    "type": "agenda_period",
    "attributes": {
      "label": "string",
      "start_date": "2019-08-24",
      "end_date": "2019-08-24"
    },
    "relationships": {
      "rentable": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      }
    },
    "meta": {
      "temp_id": "string"
    }
  }
}

Parameters

Name In Type Required Example Description
administration_id path string true 1 Administration ID
id path string true string Resource ID
Accept-Language header string false en,nl Supported languages. A comma separated list with one or more of the following locales: nl, nl-BE, en, de, de-AT, de-CH, fr, fr-BE, fr-LU, da, cs, es, tr, pt, it, nb. Default: 'en'.
body body object true [object Object] none
— data body object false [object Object] A blocking event on the calendar of a Rentable. This includes Reservations and maintenance events.
—— id body string false 1 ID
—— type body string false agenda_period Type
—— attributes body object false [object Object] Attributes
——— label body string false string none
——— start_date body string(date) false 2019-08-24 none
——— end_date body string(date) false 2019-08-24 none
—— relationships body object false [object Object] Relationships
——— rentable body object false [object Object] none
———— data body object false [object Object] none
————— id body string false string rentable ID
————— type body string false rentable none
————— meta body object false [object Object] none
—————— temp_id body string false string UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method body string false string Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
—— meta body object false [object Object] Metadata
——— temp_id body string false string UUID for internal resource linking. Should be omitted when the relationship ID is known.

Example responses

200 Response

{
  "data": {
    "id": "1",
    "type": "agenda_period",
    "attributes": {
      "label": "string",
      "start_date": "2019-08-24",
      "end_date": "2019-08-24",
      "type": "MaintenanceAgendaPeriod",
      "ical_uid": "string",
      "created_at": "2019-08-24T14:15:22Z",
      "updated_at": "2019-08-24T14:15:22Z"
    },
    "relationships": {
      "rentable": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      },
      "reservation": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      }
    },
    "meta": {
      "temp_id": "string"
    }
  }
}

Responses

Status Meaning Description Schema
200 OK AgendaPeriodResponse Inline
default Default Error Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
— data [AgendaPeriod](#schemaagendaperiod) false none A blocking event on the calendar of a Rentable. This includes Reservations and maintenance events.
—— id string false none ID
—— type string false none Type
—— attributes object false none Attributes
——— label string false none none
——— start_date string(date) false none none
——— end_date string(date) false none none
——— type string false read-only none
——— ical_uid string false read-only none
——— created_at string(date-time) false read-only none
——— updated_at string(date-time) false read-only none
—— relationships object false none Relationships
——— rentable object false none none
———— data object false none none
————— id string false none rentable ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— reservation object false none none
———— data object false read-only none
————— id string false none reservation ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
—— meta object false none Metadata
——— temp_id string false none UUID for internal resource linking. Should be omitted when the relationship ID is known.

Enumerated Values

Property Value
type MaintenanceAgendaPeriod
type OwnerMaintenanceAgendaPeriod
type BlockedByGroupedRentableTypeAgendaPeriod
type ReservationAgendaPeriod
type ExternalBlockedAgendaPeriod
type NotEnoughStockAgendaPeriod

Status Code default

Name Type Required Restrictions Description
— errors [object] false none none
—— status string false none HTTP response code
—— code string false none Internal error code
—— title string false none Error title
—— detail string false none Error details
—— source object false none none
——— pointer string false none Pointer to error in resource

DELETE maintenance_agenda_period

Code samples

curl --request DELETE \
  --url https://api.bookingexperts.nl/v3/administrations/1/maintenance_agenda_periods/string \
  --header 'Accept: application/vnd.api+json' \
  --header 'Accept-Language: en,nl' \
  --header 'X-API-KEY: API_KEY'
require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.bookingexperts.nl/v3/administrations/1/maintenance_agenda_periods/string")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Delete.new(url)
request["Accept"] = 'application/vnd.api+json'
request["Accept-Language"] = 'en,nl'
request["X-API-KEY"] = 'API_KEY'

response = http.request(request)
puts response.read_body
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.bookingexperts.nl/v3/administrations/1/maintenance_agenda_periods/string",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "DELETE",
  CURLOPT_HTTPHEADER => [
    "Accept: application/vnd.api+json",
    "Accept-Language: en,nl",
    "X-API-KEY: API_KEY"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://api.bookingexperts.nl/v3/administrations/1/maintenance_agenda_periods/string");
xhr.setRequestHeader("Accept", "application/vnd.api+json");
xhr.setRequestHeader("Accept-Language", "en,nl");
xhr.setRequestHeader("X-API-KEY", "API_KEY");

xhr.send(data);

DELETE /v3/administrations/{administration_id}/maintenance_agenda_periods/{id}

Destroy an maintenance agenda period.

Parameters

Name In Type Required Example Description
administration_id path string true 1 Administration ID
id path string true string Resource ID
Accept-Language header string false en,nl Supported languages. A comma separated list with one or more of the following locales: nl, nl-BE, en, de, de-AT, de-CH, fr, fr-BE, fr-LU, da, cs, es, tr, pt, it, nb. Default: 'en'.

Example responses

default Response

{
  "errors": [
    {
      "status": "string",
      "code": "string",
      "title": "string",
      "detail": "string",
      "source": {
        "pointer": "string"
      }
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content Success None
default Default Error Inline

Response Schema

Status Code default

Name Type Required Restrictions Description
— errors [object] false none none
—— status string false none HTTP response code
—— code string false none Internal error code
—— title string false none Error title
—— detail string false none Error details
—— source object false none none
——— pointer string false none Pointer to error in resource

AgendaPeriods

GET agenda_periods

Code samples

curl --request GET \
  --url https://api.bookingexperts.nl/v3/administrations/1/agenda_periods \
  --header 'Accept: application/vnd.api+json' \
  --header 'Accept-Language: en,nl' \
  --header 'X-API-KEY: API_KEY'
require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.bookingexperts.nl/v3/administrations/1/agenda_periods")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)
request["Accept"] = 'application/vnd.api+json'
request["Accept-Language"] = 'en,nl'
request["X-API-KEY"] = 'API_KEY'

response = http.request(request)
puts response.read_body
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.bookingexperts.nl/v3/administrations/1/agenda_periods",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "Accept: application/vnd.api+json",
    "Accept-Language: en,nl",
    "X-API-KEY: API_KEY"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.bookingexperts.nl/v3/administrations/1/agenda_periods");
xhr.setRequestHeader("Accept", "application/vnd.api+json");
xhr.setRequestHeader("Accept-Language", "en,nl");
xhr.setRequestHeader("X-API-KEY", "API_KEY");

xhr.send(data);

GET /v3/administrations/{administration_id}/agenda_periods

Returns agenda periods the administration

Parameters

Name In Type Required Example Description
administration_id path string true 1 Administration ID
page[number] query string false string Page number
page[size] query string false string Page size
sort query string false string Sort. Specify a comma separated list of attributes to sort on. Prefix attribute with a \- to sort in descending order
fields[agenda_period] query string false string Fieldset. Specify a comma separated list of attributes to return
filter[id] query string false string Filter on ID
filter[start_date] query string false string Filter on start_date
filter[end_date] query string false string Filter on end_date
filter[type] query string false string Filter on type
filter[created_at] query string false string Filter on created_at
filter[updated_at] query string false string Filter on updated_at
filter[rentable] query string false string Filter on rentable. Specify a comma separated list of IDs to filter on.
filter[reservation] query string false string Filter on reservation. Specify a comma separated list of IDs to filter on.
include query string false string Includes list. Specify a comma separated list of resources to include.
Accept-Language header string false en,nl Supported languages. A comma separated list with one or more of the following locales: nl, nl-BE, en, de, de-AT, de-CH, fr, fr-BE, fr-LU, da, cs, es, tr, pt, it, nb. Default: 'en'.

Example responses

200 Response

{
  "data": [
    {
      "id": "1",
      "type": "agenda_period",
      "attributes": {
        "label": "string",
        "start_date": "2019-08-24",
        "end_date": "2019-08-24",
        "type": "MaintenanceAgendaPeriod",
        "ical_uid": "string",
        "created_at": "2019-08-24T14:15:22Z",
        "updated_at": "2019-08-24T14:15:22Z"
      },
      "relationships": {
        "rentable": {
          "data": {}
        },
        "reservation": {
          "data": {}
        }
      },
      "meta": {
        "temp_id": "string"
      }
    }
  ],
  "meta": {
    "pagination": {
      "total_records": 0,
      "page": 0,
      "size": 0
    }
  }
}

Responses

Status Meaning Description Schema
200 OK AgendaPeriodCollectionResponse Inline
default Default Error Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
— data [[AgendaPeriod](#schemaagendaperiod)] false none [A blocking event on the calendar of a Rentable. This includes Reservations and maintenance events.]
—— id string false none ID
—— type string false none Type
—— attributes object false none Attributes
——— label string false none none
——— start_date string(date) false none none
——— end_date string(date) false none none
——— type string false read-only none
——— ical_uid string false read-only none
——— created_at string(date-time) false read-only none
——— updated_at string(date-time) false read-only none
—— relationships object false none Relationships
——— rentable object false none none
———— data object false none none
————— id string false none rentable ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— reservation object false none none
———— data object false read-only none
————— id string false none reservation ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
—— meta object false none Metadata
——— temp_id string false none UUID for internal resource linking. Should be omitted when the relationship ID is known.
— meta object false none none
—— pagination object false none none
——— total_records integer false none none
——— page integer false none none
——— size integer false none none

Enumerated Values

Property Value
type MaintenanceAgendaPeriod
type OwnerMaintenanceAgendaPeriod
type BlockedByGroupedRentableTypeAgendaPeriod
type ReservationAgendaPeriod
type ExternalBlockedAgendaPeriod
type NotEnoughStockAgendaPeriod

Status Code default

Name Type Required Restrictions Description
— errors [object] false none none
—— status string false none HTTP response code
—— code string false none Internal error code
—— title string false none Error title
—— detail string false none Error details
—— source object false none none
——— pointer string false none Pointer to error in resource

GET agenda_period

Code samples

curl --request GET \
  --url https://api.bookingexperts.nl/v3/administrations/1/agenda_periods/string \
  --header 'Accept: application/vnd.api+json' \
  --header 'Accept-Language: en,nl' \
  --header 'X-API-KEY: API_KEY'
require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.bookingexperts.nl/v3/administrations/1/agenda_periods/string")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)
request["Accept"] = 'application/vnd.api+json'
request["Accept-Language"] = 'en,nl'
request["X-API-KEY"] = 'API_KEY'

response = http.request(request)
puts response.read_body
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.bookingexperts.nl/v3/administrations/1/agenda_periods/string",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "Accept: application/vnd.api+json",
    "Accept-Language: en,nl",
    "X-API-KEY: API_KEY"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.bookingexperts.nl/v3/administrations/1/agenda_periods/string");
xhr.setRequestHeader("Accept", "application/vnd.api+json");
xhr.setRequestHeader("Accept-Language", "en,nl");
xhr.setRequestHeader("X-API-KEY", "API_KEY");

xhr.send(data);

GET /v3/administrations/{administration_id}/agenda_periods/{id}

Returns the agenda period for the given ID

Parameters

Name In Type Required Example Description
administration_id path string true 1 Administration ID
id path string true string Resource ID
fields[agenda_period] query string false string Fieldset. Specify a comma separated list of attributes to return
filter[id] query string false string Filter on ID
filter[start_date] query string false string Filter on start_date
filter[end_date] query string false string Filter on end_date
filter[type] query string false string Filter on type
filter[created_at] query string false string Filter on created_at
filter[updated_at] query string false string Filter on updated_at
filter[rentable] query string false string Filter on rentable. Specify a comma separated list of IDs to filter on.
filter[reservation] query string false string Filter on reservation. Specify a comma separated list of IDs to filter on.
include query string false string Includes list. Specify a comma separated list of resources to include.
Accept-Language header string false en,nl Supported languages. A comma separated list with one or more of the following locales: nl, nl-BE, en, de, de-AT, de-CH, fr, fr-BE, fr-LU, da, cs, es, tr, pt, it, nb. Default: 'en'.

Example responses

200 Response

{
  "data": {
    "id": "1",
    "type": "agenda_period",
    "attributes": {
      "label": "string",
      "start_date": "2019-08-24",
      "end_date": "2019-08-24",
      "type": "MaintenanceAgendaPeriod",
      "ical_uid": "string",
      "created_at": "2019-08-24T14:15:22Z",
      "updated_at": "2019-08-24T14:15:22Z"
    },
    "relationships": {
      "rentable": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      },
      "reservation": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      }
    },
    "meta": {
      "temp_id": "string"
    }
  }
}

Responses

Status Meaning Description Schema
200 OK AgendaPeriodResponse Inline
default Default Error Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
— data [AgendaPeriod](#schemaagendaperiod) false none A blocking event on the calendar of a Rentable. This includes Reservations and maintenance events.
—— id string false none ID
—— type string false none Type
—— attributes object false none Attributes
——— label string false none none
——— start_date string(date) false none none
——— end_date string(date) false none none
——— type string false read-only none
——— ical_uid string false read-only none
——— created_at string(date-time) false read-only none
——— updated_at string(date-time) false read-only none
—— relationships object false none Relationships
——— rentable object false none none
———— data object false none none
————— id string false none rentable ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— reservation object false none none
———— data object false read-only none
————— id string false none reservation ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
—— meta object false none Metadata
——— temp_id string false none UUID for internal resource linking. Should be omitted when the relationship ID is known.

Enumerated Values

Property Value
type MaintenanceAgendaPeriod
type OwnerMaintenanceAgendaPeriod
type BlockedByGroupedRentableTypeAgendaPeriod
type ReservationAgendaPeriod
type ExternalBlockedAgendaPeriod
type NotEnoughStockAgendaPeriod

Status Code default

Name Type Required Restrictions Description
— errors [object] false none none
—— status string false none HTTP response code
—— code string false none Internal error code
—— title string false none Error title
—— detail string false none Error details
—— source object false none none
——— pointer string false none Pointer to error in resource

Agreements

GET agreements

Code samples

curl --request GET \
  --url https://api.bookingexperts.nl/v3/administrations/1/agreements \
  --header 'Accept: application/vnd.api+json' \
  --header 'Accept-Language: en,nl' \
  --header 'X-API-KEY: API_KEY'
require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.bookingexperts.nl/v3/administrations/1/agreements")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)
request["Accept"] = 'application/vnd.api+json'
request["Accept-Language"] = 'en,nl'
request["X-API-KEY"] = 'API_KEY'

response = http.request(request)
puts response.read_body
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.bookingexperts.nl/v3/administrations/1/agreements",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "Accept: application/vnd.api+json",
    "Accept-Language: en,nl",
    "X-API-KEY: API_KEY"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.bookingexperts.nl/v3/administrations/1/agreements");
xhr.setRequestHeader("Accept", "application/vnd.api+json");
xhr.setRequestHeader("Accept-Language", "en,nl");
xhr.setRequestHeader("X-API-KEY", "API_KEY");

xhr.send(data);

GET /v3/administrations/{administration_id}/agreements

Returns agreements of the administration

Parameters

Name In Type Required Example Description
administration_id path string true 1 Administration ID
page[number] query string false string Page number
page[size] query string false string Page size
sort query string false string Sort. Specify a comma separated list of attributes to sort on. Prefix attribute with a \- to sort in descending order
fields[agreement] query string false string Fieldset. Specify a comma separated list of attributes to return
filter[id] query string false string Filter on ID
filter[active_from] query string false string Filter on active_from
filter[active_till] query string false string Filter on active_till
filter[owner_reservable] query string false string Filter on owner_reservable
filter[owner_can_make_reservation_on_irregular_price_periods] query string false string Filter on owner_can_make_reservation_on_irregular_price_periods
filter[owner_can_view_availability] query string false string Filter on owner_can_view_availability
filter[owner_can_view_reservations] query string false string Filter on owner_can_view_reservations
filter[owner_can_view_contact_data] query string false string Filter on owner_can_view_contact_data
filter[owner_can_view_order] query string false string Filter on owner_can_view_order
filter[owner_can_view_invoice] query string false string Filter on owner_can_view_invoice
filter[owner_can_view_rent_amount] query string false string Filter on owner_can_view_rent_amount
filter[owner_can_view_settlements] query string false string Filter on owner_can_view_settlements
filter[owner_should_check_reservations] query string false string Filter on owner_should_check_reservations
filter[owner_can_edit_agenda_periods] query string false string Filter on owner_can_edit_agenda_periods
filter[owner_can_view_rentable_details] query string false string Filter on owner_can_view_rentable_details
filter[owner_can_create_pricing_change_request] query string false string Filter on owner_can_create_pricing_change_request
filter[owner_can_view_guest_details] query string false string Filter on owner_can_view_guest_details
filter[owner_can_view_guest_memo] query string false string Filter on owner_can_view_guest_memo
filter[can_promote] query string false string Filter on can_promote
filter[can_view_reviews] query string false string Filter on can_view_reviews
filter[created_at] query string false string Filter on created_at
filter[updated_at] query string false string Filter on updated_at
filter[owner] query string false string Filter on owner. Specify a comma separated list of IDs to filter on.
filter[rentable_identity] query string false string Filter on rentable_identity. Specify a comma separated list of IDs to filter on.
filter[commission_agreement] query string false string Filter on commission_agreement. Specify a comma separated list of IDs to filter on.
include query string false string Includes list. Specify a comma separated list of resources to include.
Accept-Language header string false en,nl Supported languages. A comma separated list with one or more of the following locales: nl, nl-BE, en, de, de-AT, de-CH, fr, fr-BE, fr-LU, da, cs, es, tr, pt, it, nb. Default: 'en'.

Example responses

200 Response

{
  "data": [
    {
      "id": "1",
      "type": "agreement",
      "attributes": {
        "name": "string",
        "active_from": "2019-08-24",
        "active_till": "2019-08-24",
        "frequency": "anytime",
        "settlement_method": "end_date",
        "owner_reservable": true,
        "owner_can_make_reservation_on_irregular_price_periods": true,
        "owner_can_view_availability": true,
        "owner_can_view_reservations": true,
        "owner_can_view_contact_data": true,
        "owner_can_view_order": true,
        "owner_can_view_invoice": true,
        "owner_can_view_rent_amount": true,
        "owner_can_view_settlements": true,
        "owner_should_check_reservations": true,
        "owner_can_edit_agenda_periods": true,
        "owner_can_view_rentable_details": true,
        "owner_can_create_pricing_change_request": true,
        "owner_can_view_guest_details": true,
        "owner_can_view_guest_memo": true,
        "can_promote": true,
        "can_view_reviews": true,
        "created_at": "2019-08-24T14:15:22Z",
        "updated_at": "2019-08-24T14:15:22Z"
      },
      "relationships": {
        "owner": {
          "data": {}
        },
        "rentable_identity": {
          "data": {}
        },
        "commission_agreement": {
          "data": {}
        }
      },
      "meta": {
        "temp_id": "string"
      }
    }
  ],
  "meta": {
    "pagination": {
      "total_records": 0,
      "page": 0,
      "size": 0
    }
  }
}

Responses

Status Meaning Description Schema
200 OK AgreementCollectionResponse Inline
default Default Error Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
— data [[Agreement](#schemaagreement)] false none [An agreement with an Owner for a given RentableIdentity]
—— id string false none ID
—— type string false none Type
—— attributes object false none Attributes
——— name string false none none
——— active_from string(date) false none none
——— active_till string(date) false none none
——— frequency string false none Frequency of settlement.
——— settlement_method string false none Defines which date to look at when rent turnover is calculated.
——— owner_reservable boolean false none none
——— owner_can_make_reservation_on_irregular_price_periods boolean false none none
——— owner_can_view_availability boolean false none none
——— owner_can_view_reservations boolean false none none
——— owner_can_view_contact_data boolean false none none
——— owner_can_view_order boolean false none none
——— owner_can_view_invoice boolean false none none
——— owner_can_view_rent_amount boolean false none none
——— owner_can_view_settlements boolean false none none
——— owner_should_check_reservations boolean false none none
——— owner_can_edit_agenda_periods boolean false none none
——— owner_can_view_rentable_details boolean false none none
——— owner_can_create_pricing_change_request boolean false none none
——— owner_can_view_guest_details boolean false none none
——— owner_can_view_guest_memo boolean false none none
——— can_promote boolean false none none
——— can_view_reviews boolean false none none
——— created_at string(date-time) false none none
——— updated_at string(date-time) false none none
—— relationships object false none Relationships
——— owner object false none none
———— data object false none none
————— id string false none owner ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— rentable_identity object false none none
———— data object false none none
————— id string false none rentable_identity ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— commission_agreement object false none none
———— data object false none none
————— id string false none commission_agreement ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
—— meta object false none Metadata
——— temp_id string false none UUID for internal resource linking. Should be omitted when the relationship ID is known.
— meta object false none none
—— pagination object false none none
——— total_records integer false none none
——— page integer false none none
——— size integer false none none

Enumerated Values

Property Value
frequency anytime
frequency monthly
frequency quarterly
frequency halfyearly
frequency yearly
settlement_method end_date
settlement_method start_date
settlement_method overlapping
settlement_method confirmed_date

Status Code default

Name Type Required Restrictions Description
— errors [object] false none none
—— status string false none HTTP response code
—— code string false none Internal error code
—— title string false none Error title
—— detail string false none Error details
—— source object false none none
——— pointer string false none Pointer to error in resource

GET agreement

Code samples

curl --request GET \
  --url https://api.bookingexperts.nl/v3/administrations/1/agreements/string \
  --header 'Accept: application/vnd.api+json' \
  --header 'Accept-Language: en,nl' \
  --header 'X-API-KEY: API_KEY'
require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.bookingexperts.nl/v3/administrations/1/agreements/string")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)
request["Accept"] = 'application/vnd.api+json'
request["Accept-Language"] = 'en,nl'
request["X-API-KEY"] = 'API_KEY'

response = http.request(request)
puts response.read_body
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.bookingexperts.nl/v3/administrations/1/agreements/string",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "Accept: application/vnd.api+json",
    "Accept-Language: en,nl",
    "X-API-KEY: API_KEY"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.bookingexperts.nl/v3/administrations/1/agreements/string");
xhr.setRequestHeader("Accept", "application/vnd.api+json");
xhr.setRequestHeader("Accept-Language", "en,nl");
xhr.setRequestHeader("X-API-KEY", "API_KEY");

xhr.send(data);

GET /v3/administrations/{administration_id}/agreements/{id}

Returns the agreement for the given ID

Parameters

Name In Type Required Example Description
administration_id path string true 1 Administration ID
id path string true string Resource ID
fields[agreement] query string false string Fieldset. Specify a comma separated list of attributes to return
filter[id] query string false string Filter on ID
filter[active_from] query string false string Filter on active_from
filter[active_till] query string false string Filter on active_till
filter[owner_reservable] query string false string Filter on owner_reservable
filter[owner_can_make_reservation_on_irregular_price_periods] query string false string Filter on owner_can_make_reservation_on_irregular_price_periods
filter[owner_can_view_availability] query string false string Filter on owner_can_view_availability
filter[owner_can_view_reservations] query string false string Filter on owner_can_view_reservations
filter[owner_can_view_contact_data] query string false string Filter on owner_can_view_contact_data
filter[owner_can_view_order] query string false string Filter on owner_can_view_order
filter[owner_can_view_invoice] query string false string Filter on owner_can_view_invoice
filter[owner_can_view_rent_amount] query string false string Filter on owner_can_view_rent_amount
filter[owner_can_view_settlements] query string false string Filter on owner_can_view_settlements
filter[owner_should_check_reservations] query string false string Filter on owner_should_check_reservations
filter[owner_can_edit_agenda_periods] query string false string Filter on owner_can_edit_agenda_periods
filter[owner_can_view_rentable_details] query string false string Filter on owner_can_view_rentable_details
filter[owner_can_create_pricing_change_request] query string false string Filter on owner_can_create_pricing_change_request
filter[owner_can_view_guest_details] query string false string Filter on owner_can_view_guest_details
filter[owner_can_view_guest_memo] query string false string Filter on owner_can_view_guest_memo
filter[can_promote] query string false string Filter on can_promote
filter[can_view_reviews] query string false string Filter on can_view_reviews
filter[created_at] query string false string Filter on created_at
filter[updated_at] query string false string Filter on updated_at
filter[owner] query string false string Filter on owner. Specify a comma separated list of IDs to filter on.
filter[rentable_identity] query string false string Filter on rentable_identity. Specify a comma separated list of IDs to filter on.
filter[commission_agreement] query string false string Filter on commission_agreement. Specify a comma separated list of IDs to filter on.
include query string false string Includes list. Specify a comma separated list of resources to include.
Accept-Language header string false en,nl Supported languages. A comma separated list with one or more of the following locales: nl, nl-BE, en, de, de-AT, de-CH, fr, fr-BE, fr-LU, da, cs, es, tr, pt, it, nb. Default: 'en'.

Example responses

200 Response

{
  "data": {
    "id": "1",
    "type": "agreement",
    "attributes": {
      "name": "string",
      "active_from": "2019-08-24",
      "active_till": "2019-08-24",
      "frequency": "anytime",
      "settlement_method": "end_date",
      "owner_reservable": true,
      "owner_can_make_reservation_on_irregular_price_periods": true,
      "owner_can_view_availability": true,
      "owner_can_view_reservations": true,
      "owner_can_view_contact_data": true,
      "owner_can_view_order": true,
      "owner_can_view_invoice": true,
      "owner_can_view_rent_amount": true,
      "owner_can_view_settlements": true,
      "owner_should_check_reservations": true,
      "owner_can_edit_agenda_periods": true,
      "owner_can_view_rentable_details": true,
      "owner_can_create_pricing_change_request": true,
      "owner_can_view_guest_details": true,
      "owner_can_view_guest_memo": true,
      "can_promote": true,
      "can_view_reviews": true,
      "created_at": "2019-08-24T14:15:22Z",
      "updated_at": "2019-08-24T14:15:22Z"
    },
    "relationships": {
      "owner": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      },
      "rentable_identity": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      },
      "commission_agreement": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      }
    },
    "meta": {
      "temp_id": "string"
    }
  }
}

Responses

Status Meaning Description Schema
200 OK AgreementResponse Inline
default Default Error Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
— data [Agreement](#schemaagreement) false none An agreement with an Owner for a given RentableIdentity
—— id string false none ID
—— type string false none Type
—— attributes object false none Attributes
——— name string false none none
——— active_from string(date) false none none
——— active_till string(date) false none none
——— frequency string false none Frequency of settlement.
——— settlement_method string false none Defines which date to look at when rent turnover is calculated.
——— owner_reservable boolean false none none
——— owner_can_make_reservation_on_irregular_price_periods boolean false none none
——— owner_can_view_availability boolean false none none
——— owner_can_view_reservations boolean false none none
——— owner_can_view_contact_data boolean false none none
——— owner_can_view_order boolean false none none
——— owner_can_view_invoice boolean false none none
——— owner_can_view_rent_amount boolean false none none
——— owner_can_view_settlements boolean false none none
——— owner_should_check_reservations boolean false none none
——— owner_can_edit_agenda_periods boolean false none none
——— owner_can_view_rentable_details boolean false none none
——— owner_can_create_pricing_change_request boolean false none none
——— owner_can_view_guest_details boolean false none none
——— owner_can_view_guest_memo boolean false none none
——— can_promote boolean false none none
——— can_view_reviews boolean false none none
——— created_at string(date-time) false none none
——— updated_at string(date-time) false none none
—— relationships object false none Relationships
——— owner object false none none
———— data object false none none
————— id string false none owner ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— rentable_identity object false none none
———— data object false none none
————— id string false none rentable_identity ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— commission_agreement object false none none
———— data object false none none
————— id string false none commission_agreement ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
—— meta object false none Metadata
——— temp_id string false none UUID for internal resource linking. Should be omitted when the relationship ID is known.

Enumerated Values

Property Value
frequency anytime
frequency monthly
frequency quarterly
frequency halfyearly
frequency yearly
settlement_method end_date
settlement_method start_date
settlement_method overlapping
settlement_method confirmed_date

Status Code default

Name Type Required Restrictions Description
— errors [object] false none none
—— status string false none HTTP response code
—— code string false none Internal error code
—— title string false none Error title
—— detail string false none Error details
—— source object false none none
——— pointer string false none Pointer to error in resource

Amenities

GET amenities

Code samples

curl --request GET \
  --url https://api.bookingexperts.nl/v3/amenities \
  --header 'Accept: application/vnd.api+json' \
  --header 'Accept-Language: en,nl' \
  --header 'X-API-KEY: API_KEY'
require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.bookingexperts.nl/v3/amenities")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)
request["Accept"] = 'application/vnd.api+json'
request["Accept-Language"] = 'en,nl'
request["X-API-KEY"] = 'API_KEY'

response = http.request(request)
puts response.read_body
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.bookingexperts.nl/v3/amenities",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "Accept: application/vnd.api+json",
    "Accept-Language: en,nl",
    "X-API-KEY: API_KEY"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.bookingexperts.nl/v3/amenities");
xhr.setRequestHeader("Accept", "application/vnd.api+json");
xhr.setRequestHeader("Accept-Language", "en,nl");
xhr.setRequestHeader("X-API-KEY", "API_KEY");

xhr.send(data);

GET /v3/amenities

Returns amenities of the organization

Parameters

Name In Type Required Example Description
page[number] query string false string Page number
page[size] query string false string Page size
sort query string false string Sort. Specify a comma separated list of attributes to sort on. Prefix attribute with a \- to sort in descending order
fields[amenity] query string false string Fieldset. Specify a comma separated list of attributes to return
filter[id] query string false string Filter on ID
filter[name] query string false string Filter on name
filter[type] query string false string Filter on type
filter[position] query string false string Filter on position
filter[semantic_amenity_type] query string false string Filter on semantic_amenity_type
filter[amenity_group] query string false string Filter on amenity_group. Specify a comma separated list of IDs to filter on.
filter[amenity_options] query string false string Filter on amenity_options. Specify a comma separated list of IDs to filter on.
include query string false string Includes list. Specify a comma separated list of resources to include.
Accept-Language header string false en,nl Supported languages. A comma separated list with one or more of the following locales: nl, nl-BE, en, de, de-AT, de-CH, fr, fr-BE, fr-LU, da, cs, es, tr, pt, it, nb. Default: 'en'.

Example responses

200 Response

{
  "data": [
    {
      "id": "1",
      "type": "amenity",
      "attributes": {
        "name": {
          "nl": "string",
          "nl-BE": "string",
          "en": "string",
          "de": "string",
          "de-AT": "string",
          "de-CH": "string",
          "fr": "string",
          "fr-BE": "string",
          "fr-LU": "string",
          "da": "string",
          "cs": "string",
          "es": "string",
          "tr": "string",
          "pt": "string",
          "it": "string",
          "nb": "string"
        },
        "type": "Amenity",
        "position": 0,
        "semantic_amenity_type": "string"
      },
      "relationships": {
        "amenity_group": {
          "data": {}
        },
        "amenity_options": {
          "data": [
            null
          ]
        }
      },
      "meta": {
        "temp_id": "string"
      }
    }
  ],
  "meta": {
    "pagination": {
      "total_records": 0,
      "page": 0,
      "size": 0
    }
  }
}

Responses

Status Meaning Description Schema
200 OK AmenityCollectionResponse Inline
default Default Error Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
— data [[Amenity](#schemaamenity)] false none [Amenities are for external and internal use. They can be used to signify amenities of a RentableType or Rentable that are important to the guest.
For example:

* With sauna
* Free wi-fi

An Amenity can optionally be numerical or multiple choice. When an Amenity is numerical, the values of linked amenities (RentableTypeAmenity, RentableAmenity, ReservationAmenity and RoomAmenity)
denote the numerical value belonging to the amenity. When an Amenity is multiple choice, the values of linked amenities denote the ID of the AmenityOption that applies.
]
—— id string false none ID
—— type string false none Type
—— attributes object false none Attributes
——— name object false none Name of the amenity
———— nl string false none none
———— nl-BE string false none none
———— en string false none none
———— de string false none none
———— de-AT string false none none
———— de-CH string false none none
———— fr string false none none
———— fr-BE string false none none
———— fr-LU string false none none
———— da string false none none
———— cs string false none none
———— es string false none none
———— tr string false none none
———— pt string false none none
———— it string false none none
———— nb string false none none
——— type string false none Type of the amenity
——— position integer false none none
——— semantic_amenity_type string false none none
—— relationships object false none Relationships
——— amenity_group object false none none
———— data object false none none
————— id string false none amenity_group ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— amenity_options object false none none
———— data [object] false none none
————— id string false none amenity_options ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
—— meta object false none Metadata
——— temp_id string false none UUID for internal resource linking. Should be omitted when the relationship ID is known.
— meta object false none none
—— pagination object false none none
——— total_records integer false none none
——— page integer false none none
——— size integer false none none

Enumerated Values

Property Value
type Amenity
type Amenities::NumericalAmenity
type Amenities::MultipleChoiceAmenity

Status Code default

Name Type Required Restrictions Description
— errors [object] false none none
—— status string false none HTTP response code
—— code string false none Internal error code
—— title string false none Error title
—— detail string false none Error details
—— source object false none none
——— pointer string false none Pointer to error in resource

GET amenity

Code samples

curl --request GET \
  --url https://api.bookingexperts.nl/v3/amenities/string \
  --header 'Accept: application/vnd.api+json' \
  --header 'Accept-Language: en,nl' \
  --header 'X-API-KEY: API_KEY'
require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.bookingexperts.nl/v3/amenities/string")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)
request["Accept"] = 'application/vnd.api+json'
request["Accept-Language"] = 'en,nl'
request["X-API-KEY"] = 'API_KEY'

response = http.request(request)
puts response.read_body
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.bookingexperts.nl/v3/amenities/string",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "Accept: application/vnd.api+json",
    "Accept-Language: en,nl",
    "X-API-KEY: API_KEY"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.bookingexperts.nl/v3/amenities/string");
xhr.setRequestHeader("Accept", "application/vnd.api+json");
xhr.setRequestHeader("Accept-Language", "en,nl");
xhr.setRequestHeader("X-API-KEY", "API_KEY");

xhr.send(data);

GET /v3/amenities/{id}

Returns the amenity for the given ID

Parameters

Name In Type Required Example Description
id path string true string Resource ID
fields[amenity] query string false string Fieldset. Specify a comma separated list of attributes to return
filter[id] query string false string Filter on ID
filter[name] query string false string Filter on name
filter[type] query string false string Filter on type
filter[position] query string false string Filter on position
filter[semantic_amenity_type] query string false string Filter on semantic_amenity_type
filter[amenity_group] query string false string Filter on amenity_group. Specify a comma separated list of IDs to filter on.
filter[amenity_options] query string false string Filter on amenity_options. Specify a comma separated list of IDs to filter on.
include query string false string Includes list. Specify a comma separated list of resources to include.
Accept-Language header string false en,nl Supported languages. A comma separated list with one or more of the following locales: nl, nl-BE, en, de, de-AT, de-CH, fr, fr-BE, fr-LU, da, cs, es, tr, pt, it, nb. Default: 'en'.

Example responses

200 Response

{
  "data": {
    "id": "1",
    "type": "amenity",
    "attributes": {
      "name": {
        "nl": "string",
        "nl-BE": "string",
        "en": "string",
        "de": "string",
        "de-AT": "string",
        "de-CH": "string",
        "fr": "string",
        "fr-BE": "string",
        "fr-LU": "string",
        "da": "string",
        "cs": "string",
        "es": "string",
        "tr": "string",
        "pt": "string",
        "it": "string",
        "nb": "string"
      },
      "type": "Amenity",
      "position": 0,
      "semantic_amenity_type": "string"
    },
    "relationships": {
      "amenity_group": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      },
      "amenity_options": {
        "data": [
          {}
        ]
      }
    },
    "meta": {
      "temp_id": "string"
    }
  }
}

Responses

Status Meaning Description Schema
200 OK AmenityResponse Inline
default Default Error Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
— data [Amenity](#schemaamenity) false none Amenities are for external and internal use. They can be used to signify amenities of a RentableType or Rentable that are important to the guest.
For example:

* With sauna
* Free wi-fi

An Amenity can optionally be numerical or multiple choice. When an Amenity is numerical, the values of linked amenities (RentableTypeAmenity, RentableAmenity, ReservationAmenity and RoomAmenity)
denote the numerical value belonging to the amenity. When an Amenity is multiple choice, the values of linked amenities denote the ID of the AmenityOption that applies.
—— id string false none ID
—— type string false none Type
—— attributes object false none Attributes
——— name object false none Name of the amenity
———— nl string false none none
———— nl-BE string false none none
———— en string false none none
———— de string false none none
———— de-AT string false none none
———— de-CH string false none none
———— fr string false none none
———— fr-BE string false none none
———— fr-LU string false none none
———— da string false none none
———— cs string false none none
———— es string false none none
———— tr string false none none
———— pt string false none none
———— it string false none none
———— nb string false none none
——— type string false none Type of the amenity
——— position integer false none none
——— semantic_amenity_type string false none none
—— relationships object false none Relationships
——— amenity_group object false none none
———— data object false none none
————— id string false none amenity_group ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— amenity_options object false none none
———— data [object] false none none
————— id string false none amenity_options ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
—— meta object false none Metadata
——— temp_id string false none UUID for internal resource linking. Should be omitted when the relationship ID is known.

Enumerated Values

Property Value
type Amenity
type Amenities::NumericalAmenity
type Amenities::MultipleChoiceAmenity

Status Code default

Name Type Required Restrictions Description
— errors [object] false none none
—— status string false none HTTP response code
—— code string false none Internal error code
—— title string false none Error title
—— detail string false none Error details
—— source object false none none
——— pointer string false none Pointer to error in resource

App Availabilities

Perform availability search over all organizations subscribed to your app

GET availabilities

Code samples

curl --request GET \
  --url https://api.bookingexperts.nl/v3/app/availabilities \
  --header 'Accept: application/vnd.api+json' \
  --header 'Accept-Language: en,nl' \
  --header 'X-APP-API-KEY: API_KEY'
require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.bookingexperts.nl/v3/app/availabilities")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)
request["Accept"] = 'application/vnd.api+json'
request["Accept-Language"] = 'en,nl'
request["X-APP-API-KEY"] = 'API_KEY'

response = http.request(request)
puts response.read_body
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.bookingexperts.nl/v3/app/availabilities",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "Accept: application/vnd.api+json",
    "Accept-Language: en,nl",
    "X-APP-API-KEY: API_KEY"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.bookingexperts.nl/v3/app/availabilities");
xhr.setRequestHeader("Accept", "application/vnd.api+json");
xhr.setRequestHeader("Accept-Language", "en,nl");
xhr.setRequestHeader("X-APP-API-KEY", "API_KEY");

xhr.send(data);

GET /v3/app/availabilities

Returns availability & prices

Parameters

Name In Type Required Example Description
fields[availability] query string false string Fieldset. Specify a comma separated list of attributes to return
Accept-Language header string false en,nl Supported languages. A comma separated list with one or more of the following locales: nl, nl-BE, en, de, de-AT, de-CH, fr, fr-BE, fr-LU, da, cs, es, tr, pt, it, nb. Default: 'en'.
channel_ids query string false string Specify a comma separated list of channel IDs to be used for searching availability. By default, all accessible channels associated to your app will be used. Overriding this may be useful when you have access to multiple channels of the same administration.
include_rentable_type_counts query boolean false true When true, the amount of results per global segment will be added to the metadata. DEPRECATED: use include_semantic_segment_counts instead.
include_semantic_segment_counts query boolean false true When true, the amount of results per global segment will be added to the metadata.
include_amenity_counts query boolean false true When true, the amount of results per amenity will be added to the metadata
referrer query string false string Referrer name
filter[start_date] query string false 2010-01-01..2040-01-01 Filter on start date. Expects a date range. Note: date ranges have an exclusive end date.
filter[overlaps_date] query string false 2010-01-01..2040-01-01 Filter availabilities that (partially) overlap these dates.
filter[includes_date] query string false string Filter availabilities that contain the specified date range.
filter[arrangement] query string false string Filter on availabilities that exactly match the supplied date range.
filter[los] query string false 1..21 Filter on length of stay.
filter[wday] query integer false 0 Filter on a particular week day. 0 = sunday.
filter[administration_ids] query string false string Filter on administrations. Specify a comma separated list.
filter[rentable_type_ids] query string false string Filter on types. Specify a comma separated list.
filter[-rentable_type_ids] query string false string Exclude types. Specify a comma separated list.
filter[category_ids] query string false string Filter on types. Specify a comma separated list. DEPRECATED: use filter[rentable_type_ids] instead.
filter[-category_ids] query string false string Exclude types. Specify a comma separated list. DEPRECATED: use filter[-rentable_type_ids] instead.
filter[region_ids] query string false string Filter on regions. Specify a comma separated list.
filter[-region_ids] query string false string Exclude regions. Specify a comma separated list.
filter[rentable_segment_ids] query string false string Filter on rentable segments. Specify a comma separated list.
filter[-rentable_segment_ids] query string false string Exclude rentable segments. Specify a comma separated list.
filter[amenity_ids] query string false string Filter on amenities. Specify a comma separated list.
filter[package_id] query string false string Filter on package ID.
filter[discount_campaign_id] query string false string Filter on discount campaign ID.
filter[country_codes] query string false string Filter on country codes. Specify a comma separated list of ISO 3166-1 alpha-2 country codes. For example: NL,EN,DE.
filter[-country_codes] query string false string Exclude country codes. Specify a comma separated list of ISO 3166-1 alpha-2 country codes.
filter[rentable_types] query string false house,pitch Filter on global segments. DEPRECATED: use filter[semantic_segments] instead. Specify a comma separated list. Available global segments: house, pitch, room, berth, apartment, other, year_site.
filter[-rentable_types] query string false string Exclude global segments. DEPRECATED: use filter[-semantic_segments] instead. Specify a comma separated list. Available global segments: house, pitch, room, berth, apartment, other, year_site.
filter[semantic_segments] query string false house,pitch Filter on global segments. Specify a comma separated list. Available global segments: house, pitch, room, berth, apartment, other, year_site.
filter[-semantic_segments] query string false string Exclude global segments. Specify a comma separated list. Available global segments: house, pitch, room, berth, apartment, other, year_site.
filter[guest_group][seniors] query integer false 0 Filter on number of seniors.
filter[guest_group][adults] query integer false 2 Filter on number of adults.
filter[guest_group][adolescents] query integer false 0 Filter on number of adolescents.
filter[guest_group][children] query integer false 0 Filter on number of children.
filter[guest_group][babies] query integer false 0 Filter on number of babies.
filter[guest_group][pets] query integer false 0 Filter on number of pets.
filter[price] query string false 0.0..5000.00 Filter on a price range
filter[currency] query string false EUR Filter on a specific ISO 4217 currency code. By default the prices are returned in the administration's native currency. Results can differ per currency.
filter[number_of_bedrooms] query integer false 0 Filter on type number of bedrooms
filter[number_of_beds] query integer false 0 Filter on type number of beds
filter[number_of_showers] query integer false 0 Filter on type number of showers
filter[number_of_toilets] query integer false 0 Filter on type number of toilets
filter[number_of_bathrooms] query integer false 0 Filter on type number of bathrooms
filter[number_of_parking_spots] query integer false 0 Filter on type number of parking spots
filter[number_of_child_beds] query integer false 0 Filter on type number of child beds
filter[number_of_child_chairs] query integer false 0 Filter on type number of child chairs
sorters query string false all_in_amount Specify a comma separated list of sorters to apply. There are 10 possible sorters:
sorter[los][desc] query boolean false true Boolean specifying the sort direction for the `los` sorter. When unspecified, ascending order is implied.
sorter[los_distance][desc] query boolean false true Boolean specifying the sort direction for the `los_distance` sorter. When unspecified, ascending order is implied.
sorter[los_distance][los] query integer false 7 Length of stay for the `los_distance` sorter
sorter[start_date][desc] query boolean false true Boolean specifying the sort direction for the `start_date` sorter. When unspecified, ascending order is implied.
sorter[start_date_distance][desc] query boolean false true Boolean specifying the sort direction for the `start_date_distance` sorter. When unspecified, ascending order is implied.
sorter[start_date_distance][start_date] query string false 2017-07-01 Start date for the `start_date_distance` sorter
sorter[arrangement_distance][desc] query boolean false true Boolean specifying the sort direction for the `arrangement_distance` sorter. When unspecified, ascending order is implied.
sorter[arrangement_distance][arrangement] query string false 2017-07-01..2017-07-08 Arrangement for the `arrangement_distance` sorter
sorter[max_guests][desc] query boolean false true Boolean specifying the sort direction for the `max_guests` sorter. When unspecified, ascending order is implied.
sorter[highlighted][desc] query boolean false true Boolean specifying the sort direction for the `highlighted` sorter. When unspecified, ascending order is implied.
sorter[all_in_amount][desc] query boolean false true Boolean specifying the sort direction for the `all_in_amount` sorter. When unspecified, ascending order is implied.
sorter[amenity_ids_match_score][desc] query boolean false true Boolean specifying the sort direction for the `amenity_ids_match_score` sorter. When unspecified, ascending order is implied.
sorter[amenity_ids_match_score][amenity_ids] query string false 1,2 Amenity IDs for the `amenity_ids_match_score` sorter
sorter[avg_score][desc] query boolean false true Boolean specifying the sort direction for the `avg_score` sorter. When unspecified, ascending order is implied.
limit query string false availabilities Specify a limiter here. There are 5 different limiters:
limiter[availabilities][limit] query integer false 10 Return `limit` availabilities
limiter[start_dates][limit] query integer false 10 Limit to the `limit` best arrival dates
limiter[start_dates][availabilities] query integer false 10 Number of availabilities to return
limiter[categories][limit] query integer false 10 Limit to the `limit` best types. DEPRECATED: use rentable_types instead.
limiter[categories][offset] query integer false 0 Result offset for the `categories` limiter, useful for pagination
limiter[categories][availabilities] query integer false 10 Number of availabilities to return
limiter[rentable_types][limit] query integer false 10 Limit to the `limit` best types
limiter[rentable_types][offset] query integer false 0 Result offset for the `rentable_types` limiter, useful for pagination
limiter[rentable_types][availabilities] query integer false 10 Number of availabilities to return
limiter[administrations][limit] query integer false 10 Limit to the `limit` best administrations
limiter[administrations][categories] query integer false 3 Limit to the `limit` best types. DEPRECATED: use limiter[administrations][rentable_types] instead.
limiter[administrations][rentable_types] query integer false 3 Limit to the `limit` best types
limiter[administrations][availabilities] query integer false 10 Number of availabilities to return

Detailed descriptions

sorters: Specify a comma separated list of sorters to apply. There are 10 possible sorters:

Configuration for each applied sorter (for example descending order) must be passed separately, see the options below.

limit: Specify a limiter here. There are 5 different limiters:

Configuration for the chosen limiter (for example the number of availabilities to return) must be passed separately, see the options below.

Example responses

200 Response

{
  "data": {
    "id": "1",
    "type": "availability",
    "attributes": {
      "start_date": "2019-08-24",
      "los": 7,
      "checkin_time": "14:00",
      "checkout_time": "10:00",
      "price": {
        "currency": "string",
        "value": "string"
      },
      "original_price": {
        "currency": "string",
        "value": "string"
      },
      "rent_price": {
        "currency": "string",
        "value": "string"
      },
      "original_rent_price": {
        "currency": "string",
        "value": "string"
      },
      "stock": 2,
      "available_for_pets": true
    },
    "relationships": {
      "administration": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      },
      "category": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      },
      "rentable_type": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      },
      "discount_campaign": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      },
      "missing_amenities": {
        "data": [
          {}
        ]
      },
      "available_rentables": {
        "data": [
          {}
        ]
      }
    },
    "meta": {
      "temp_id": "string"
    }
  }
}

Responses

Status Meaning Description Schema
200 OK AvailabilityResponse Inline
default Default Error Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
— data [Availability](#schemaavailability) false none Availabilities represent a stay in or at a Rentable (mostly a holiday house, room or campsite).
It includes an exact (all-in) price for the supplied guest group and other filters.
For example, the search can give you a list of availabilities for 2 adults, 2 children, 1 pet, scoped on The Netherlands and Belgium with
preference for a Rentable with sea view for a specific price range including all-in prices. This allows the guest to really compare
Rentables because there will be no fees that are added during the reservation process.

*Note: Users can explicitly exclude costs from the all-in price. This is not standard behaviour.*
—— id string false none ID
—— type string false none Type
—— attributes object false none Attributes
——— start_date string(date) false none Date of arrival
——— los integer false none Length of stay in nights
——— checkin_time string false none none
——— checkout_time string false none none
——— price object false none All-in price considering rent, extras and discounts. Will be null when no guest group supplied
———— currency string false none none
———— value string false none none
——— original_price object false none Price considering rent, extras but without discounts. Will be null when no guest group supplied
———— currency string false none none
———— value string false none none
——— rent_price object false none Rent-only price. Does not include extra costs. Includes applicable discount
———— currency string false none none
———— value string false none none
——— original_rent_price object false none Rent-only price without applicable discount
———— currency string false none none
———— value string false none none
——— stock integer false none The number of units of this type available in this period. Takes filters and allotments into account
——— available_for_pets boolean false none Returns whether there are any accommodations available that support pets. For performance reasons, this field will only be included when explicitly defined in a sparse fieldset.
—— relationships object false none Relationships
——— administration object false none none
———— data object false none none
————— id string false none administration ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— category object false none DEPRECATED use rentable_type instead
———— data object false none none
————— id string false none category ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— rentable_type object false none none
———— data object false none none
————— id string false none rentable_type ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— discount_campaign object false none none
———— data object false none none
————— id string false none discount_campaign ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— missing_amenities object false none none
———— data [object] false none none
————— id string false none missing_amenities ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— available_rentables object false none none
———— data [object] false none none
————— id string false none available_rentables ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
—— meta object false none Metadata
——— temp_id string false none UUID for internal resource linking. Should be omitted when the relationship ID is known.

Status Code default

Name Type Required Restrictions Description
— errors [object] false none none
—— status string false none HTTP response code
—— code string false none Internal error code
—— title string false none Error title
—— detail string false none Error details
—— source object false none none
——— pointer string false none Pointer to error in resource

App Supported Payment Methods

Yields payment methods supported by BEX

GET supported_payment_methods

Code samples

curl --request GET \
  --url https://api.bookingexperts.nl/v3/app/supported_payment_methods \
  --header 'Accept: application/vnd.api+json' \
  --header 'Accept-Language: en,nl' \
  --header 'X-APP-API-KEY: API_KEY'
require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.bookingexperts.nl/v3/app/supported_payment_methods")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)
request["Accept"] = 'application/vnd.api+json'
request["Accept-Language"] = 'en,nl'
request["X-APP-API-KEY"] = 'API_KEY'

response = http.request(request)
puts response.read_body
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.bookingexperts.nl/v3/app/supported_payment_methods",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "Accept: application/vnd.api+json",
    "Accept-Language: en,nl",
    "X-APP-API-KEY: API_KEY"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.bookingexperts.nl/v3/app/supported_payment_methods");
xhr.setRequestHeader("Accept", "application/vnd.api+json");
xhr.setRequestHeader("Accept-Language", "en,nl");
xhr.setRequestHeader("X-APP-API-KEY", "API_KEY");

xhr.send(data);

GET /v3/app/supported_payment_methods

Returns all supported payment methods

Parameters

Name In Type Required Example Description
fields[supported_payment_method] query string false string Fieldset. Specify a comma separated list of attributes to return
Accept-Language header string false en,nl Supported languages. A comma separated list with one or more of the following locales: nl, nl-BE, en, de, de-AT, de-CH, fr, fr-BE, fr-LU, da, cs, es, tr, pt, it, nb. Default: 'en'.

Example responses

200 Response

{
  "data": [
    {
      "id": "1",
      "type": "supported_payment_method",
      "attributes": {
        "name": {
          "nl": "string",
          "nl-BE": "string",
          "en": "string",
          "de": "string",
          "de-AT": "string",
          "de-CH": "string",
          "fr": "string",
          "fr-BE": "string",
          "fr-LU": "string",
          "da": "string",
          "cs": "string",
          "es": "string",
          "tr": "string",
          "pt": "string",
          "it": "string",
          "nb": "string"
        },
        "svg_image_url": "string",
        "png_image_url": "string"
      },
      "meta": {
        "temp_id": "string"
      }
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK SupportedPaymentMethodCollectionResponse Inline
default Default Error Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
— data [[SupportedPaymentMethod](#schemasupportedpaymentmethod)] false none [Translated names and images for a supported payment method]
—— id string false none ID
—— type string false none Type
—— attributes object false none Attributes
——— name object false none none
———— nl string false none none
———— nl-BE string false none none
———— en string false none none
———— de string false none none
———— de-AT string false none none
———— de-CH string false none none
———— fr string false none none
———— fr-BE string false none none
———— fr-LU string false none none
———— da string false none none
———— cs string false none none
———— es string false none none
———— tr string false none none
———— pt string false none none
———— it string false none none
———— nb string false none none
——— svg_image_url string false none none
——— png_image_url string false none none
—— meta object false none Metadata
——— temp_id string false none UUID for internal resource linking. Should be omitted when the relationship ID is known.

Status Code default

Name Type Required Restrictions Description
— errors [object] false none none
—— status string false none HTTP response code
—— code string false none Internal error code
—— title string false none Error title
—— detail string false none Error details
—— source object false none none
——— pointer string false none Pointer to error in resource

Availabilities

GET availabilities

Code samples

curl --request GET \
  --url https://api.bookingexperts.nl/v3/availabilities \
  --header 'Accept: application/vnd.api+json' \
  --header 'Accept-Language: en,nl' \
  --header 'X-API-KEY: API_KEY'
require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.bookingexperts.nl/v3/availabilities")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)
request["Accept"] = 'application/vnd.api+json'
request["Accept-Language"] = 'en,nl'
request["X-API-KEY"] = 'API_KEY'

response = http.request(request)
puts response.read_body
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.bookingexperts.nl/v3/availabilities",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "Accept: application/vnd.api+json",
    "Accept-Language: en,nl",
    "X-API-KEY: API_KEY"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.bookingexperts.nl/v3/availabilities");
xhr.setRequestHeader("Accept", "application/vnd.api+json");
xhr.setRequestHeader("Accept-Language", "en,nl");
xhr.setRequestHeader("X-API-KEY", "API_KEY");

xhr.send(data);

GET /v3/availabilities

Returns availability & prices

Parameters

Name In Type Required Example Description
fields[availability] query string false string Fieldset. Specify a comma separated list of attributes to return
Accept-Language header string false en,nl Supported languages. A comma separated list with one or more of the following locales: nl, nl-BE, en, de, de-AT, de-CH, fr, fr-BE, fr-LU, da, cs, es, tr, pt, it, nb. Default: 'en'.
channel_ids query string false string Specify a comma separated list of channel IDs to be used for searching availability. By default, all accessible channels associated to your app will be used. Overriding this may be useful when you have access to multiple channels of the same administration.
include_rentable_type_counts query boolean false true When true, the amount of results per global segment will be added to the metadata. DEPRECATED: use include_semantic_segment_counts instead.
include_semantic_segment_counts query boolean false true When true, the amount of results per global segment will be added to the metadata.
include_amenity_counts query boolean false true When true, the amount of results per amenity will be added to the metadata
referrer query string false string Referrer name
filter[start_date] query string false 2010-01-01..2040-01-01 Filter on start date. Expects a date range. Note: date ranges have an exclusive end date.
filter[overlaps_date] query string false 2010-01-01..2040-01-01 Filter availabilities that (partially) overlap these dates.
filter[includes_date] query string false string Filter availabilities that contain the specified date range.
filter[arrangement] query string false string Filter on availabilities that exactly match the supplied date range.
filter[los] query string false 1..21 Filter on length of stay.
filter[wday] query integer false 0 Filter on a particular week day. 0 = sunday.
filter[administration_ids] query string false string Filter on administrations. Specify a comma separated list.
filter[rentable_type_ids] query string false string Filter on types. Specify a comma separated list.
filter[-rentable_type_ids] query string false string Exclude types. Specify a comma separated list.
filter[category_ids] query string false string Filter on types. Specify a comma separated list. DEPRECATED: use filter[rentable_type_ids] instead.
filter[-category_ids] query string false string Exclude types. Specify a comma separated list. DEPRECATED: use filter[-rentable_type_ids] instead.
filter[region_ids] query string false string Filter on regions. Specify a comma separated list.
filter[-region_ids] query string false string Exclude regions. Specify a comma separated list.
filter[rentable_segment_ids] query string false string Filter on rentable segments. Specify a comma separated list.
filter[-rentable_segment_ids] query string false string Exclude rentable segments. Specify a comma separated list.
filter[amenity_ids] query string false string Filter on amenities. Specify a comma separated list.
filter[package_id] query string false string Filter on package ID.
filter[discount_campaign_id] query string false string Filter on discount campaign ID.
filter[country_codes] query string false string Filter on country codes. Specify a comma separated list of ISO 3166-1 alpha-2 country codes. For example: NL,EN,DE.
filter[-country_codes] query string false string Exclude country codes. Specify a comma separated list of ISO 3166-1 alpha-2 country codes.
filter[rentable_types] query string false house,pitch Filter on global segments. DEPRECATED: use filter[semantic_segments] instead. Specify a comma separated list. Available global segments: house, pitch, room, berth, apartment, other, year_site.
filter[-rentable_types] query string false string Exclude global segments. DEPRECATED: use filter[-semantic_segments] instead. Specify a comma separated list. Available global segments: house, pitch, room, berth, apartment, other, year_site.
filter[semantic_segments] query string false house,pitch Filter on global segments. Specify a comma separated list. Available global segments: house, pitch, room, berth, apartment, other, year_site.
filter[-semantic_segments] query string false string Exclude global segments. Specify a comma separated list. Available global segments: house, pitch, room, berth, apartment, other, year_site.
filter[guest_group][seniors] query integer false 0 Filter on number of seniors.
filter[guest_group][adults] query integer false 2 Filter on number of adults.
filter[guest_group][adolescents] query integer false 0 Filter on number of adolescents.
filter[guest_group][children] query integer false 0 Filter on number of children.
filter[guest_group][babies] query integer false 0 Filter on number of babies.
filter[guest_group][pets] query integer false 0 Filter on number of pets.
filter[price] query string false 0.0..5000.00 Filter on a price range
filter[currency] query string false EUR Filter on a specific ISO 4217 currency code. By default the prices are returned in the administration's native currency. Results can differ per currency.
filter[number_of_bedrooms] query integer false 0 Filter on type number of bedrooms
filter[number_of_beds] query integer false 0 Filter on type number of beds
filter[number_of_showers] query integer false 0 Filter on type number of showers
filter[number_of_toilets] query integer false 0 Filter on type number of toilets
filter[number_of_bathrooms] query integer false 0 Filter on type number of bathrooms
filter[number_of_parking_spots] query integer false 0 Filter on type number of parking spots
filter[number_of_child_beds] query integer false 0 Filter on type number of child beds
filter[number_of_child_chairs] query integer false 0 Filter on type number of child chairs
sorters query string false all_in_amount Specify a comma separated list of sorters to apply. There are 10 possible sorters:
sorter[los][desc] query boolean false true Boolean specifying the sort direction for the `los` sorter. When unspecified, ascending order is implied.
sorter[los_distance][desc] query boolean false true Boolean specifying the sort direction for the `los_distance` sorter. When unspecified, ascending order is implied.
sorter[los_distance][los] query integer false 7 Length of stay for the `los_distance` sorter
sorter[start_date][desc] query boolean false true Boolean specifying the sort direction for the `start_date` sorter. When unspecified, ascending order is implied.
sorter[start_date_distance][desc] query boolean false true Boolean specifying the sort direction for the `start_date_distance` sorter. When unspecified, ascending order is implied.
sorter[start_date_distance][start_date] query string false 2017-07-01 Start date for the `start_date_distance` sorter
sorter[arrangement_distance][desc] query boolean false true Boolean specifying the sort direction for the `arrangement_distance` sorter. When unspecified, ascending order is implied.
sorter[arrangement_distance][arrangement] query string false 2017-07-01..2017-07-08 Arrangement for the `arrangement_distance` sorter
sorter[max_guests][desc] query boolean false true Boolean specifying the sort direction for the `max_guests` sorter. When unspecified, ascending order is implied.
sorter[highlighted][desc] query boolean false true Boolean specifying the sort direction for the `highlighted` sorter. When unspecified, ascending order is implied.
sorter[all_in_amount][desc] query boolean false true Boolean specifying the sort direction for the `all_in_amount` sorter. When unspecified, ascending order is implied.
sorter[amenity_ids_match_score][desc] query boolean false true Boolean specifying the sort direction for the `amenity_ids_match_score` sorter. When unspecified, ascending order is implied.
sorter[amenity_ids_match_score][amenity_ids] query string false 1,2 Amenity IDs for the `amenity_ids_match_score` sorter
sorter[avg_score][desc] query boolean false true Boolean specifying the sort direction for the `avg_score` sorter. When unspecified, ascending order is implied.
limit query string false availabilities Specify a limiter here. There are 5 different limiters:
limiter[availabilities][limit] query integer false 10 Return `limit` availabilities
limiter[start_dates][limit] query integer false 10 Limit to the `limit` best arrival dates
limiter[start_dates][availabilities] query integer false 10 Number of availabilities to return
limiter[categories][limit] query integer false 10 Limit to the `limit` best types. DEPRECATED: use rentable_types instead.
limiter[categories][offset] query integer false 0 Result offset for the `categories` limiter, useful for pagination
limiter[categories][availabilities] query integer false 10 Number of availabilities to return
limiter[rentable_types][limit] query integer false 10 Limit to the `limit` best types
limiter[rentable_types][offset] query integer false 0 Result offset for the `rentable_types` limiter, useful for pagination
limiter[rentable_types][availabilities] query integer false 10 Number of availabilities to return
limiter[administrations][limit] query integer false 10 Limit to the `limit` best administrations
limiter[administrations][categories] query integer false 3 Limit to the `limit` best types. DEPRECATED: use limiter[administrations][rentable_types] instead.
limiter[administrations][rentable_types] query integer false 3 Limit to the `limit` best types
limiter[administrations][availabilities] query integer false 10 Number of availabilities to return

Detailed descriptions

sorters: Specify a comma separated list of sorters to apply. There are 10 possible sorters:

Configuration for each applied sorter (for example descending order) must be passed separately, see the options below.

limit: Specify a limiter here. There are 5 different limiters:

Configuration for the chosen limiter (for example the number of availabilities to return) must be passed separately, see the options below.

Example responses

200 Response

{
  "data": {
    "id": "1",
    "type": "availability",
    "attributes": {
      "start_date": "2019-08-24",
      "los": 7,
      "checkin_time": "14:00",
      "checkout_time": "10:00",
      "price": {
        "currency": "string",
        "value": "string"
      },
      "original_price": {
        "currency": "string",
        "value": "string"
      },
      "rent_price": {
        "currency": "string",
        "value": "string"
      },
      "original_rent_price": {
        "currency": "string",
        "value": "string"
      },
      "stock": 2,
      "available_for_pets": true
    },
    "relationships": {
      "administration": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      },
      "category": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      },
      "rentable_type": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      },
      "discount_campaign": {
        "data": {
          "id": null,
          "type": null,
          "meta": null
        }
      },
      "missing_amenities": {
        "data": [
          {}
        ]
      },
      "available_rentables": {
        "data": [
          {}
        ]
      }
    },
    "meta": {
      "temp_id": "string"
    }
  }
}

Responses

Status Meaning Description Schema
200 OK AvailabilityResponse Inline
default Default Error Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
— data [Availability](#schemaavailability) false none Availabilities represent a stay in or at a Rentable (mostly a holiday house, room or campsite).
It includes an exact (all-in) price for the supplied guest group and other filters.
For example, the search can give you a list of availabilities for 2 adults, 2 children, 1 pet, scoped on The Netherlands and Belgium with
preference for a Rentable with sea view for a specific price range including all-in prices. This allows the guest to really compare
Rentables because there will be no fees that are added during the reservation process.

*Note: Users can explicitly exclude costs from the all-in price. This is not standard behaviour.*
—— id string false none ID
—— type string false none Type
—— attributes object false none Attributes
——— start_date string(date) false none Date of arrival
——— los integer false none Length of stay in nights
——— checkin_time string false none none
——— checkout_time string false none none
——— price object false none All-in price considering rent, extras and discounts. Will be null when no guest group supplied
———— currency string false none none
———— value string false none none
——— original_price object false none Price considering rent, extras but without discounts. Will be null when no guest group supplied
———— currency string false none none
———— value string false none none
——— rent_price object false none Rent-only price. Does not include extra costs. Includes applicable discount
———— currency string false none none
———— value string false none none
——— original_rent_price object false none Rent-only price without applicable discount
———— currency string false none none
———— value string false none none
——— stock integer false none The number of units of this type available in this period. Takes filters and allotments into account
——— available_for_pets boolean false none Returns whether there are any accommodations available that support pets. For performance reasons, this field will only be included when explicitly defined in a sparse fieldset.
—— relationships object false none Relationships
——— administration object false none none
———— data object false none none
————— id string false none administration ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— category object false none DEPRECATED use rentable_type instead
———— data object false none none
————— id string false none category ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— rentable_type object false none none
———— data object false none none
————— id string false none rentable_type ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— discount_campaign object false none none
———— data object false none none
————— id string false none discount_campaign ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— missing_amenities object false none none
———— data [object] false none none
————— id string false none missing_amenities ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
——— available_rentables object false none none
———— data [object] false none none
————— id string false none available_rentables ID
————— type string false none none
————— meta object false none none
—————— temp_id string false none UUID for internal resource linking of included relationships. Should be omitted when the relationship ID is known.
—————— method string false none Required when this relationship must be created or updated and is included in the request. Must be omitted when only an association needs to be made with the resource. One of: create, update.
—— meta object false none Metadata
——— temp_id string false none UUID for internal resource linking. Should be omitted when the relationship ID is known.

Status Code default

Name Type Required Restrictions Description
— errors [object] false none none
—— status string false none HTTP response code
—— code string false none Internal error code
—— title string false none Error title
—— detail string false none Error details
—— source object false none none
——— pointer string false none Pointer to error in resource

Booking Customer

PATCH customer

Code samples

curl --request PATCH \
  --url https://api.bookingexperts.nl/v3/administrations/1/bookings/1/customer \
  --header 'Accept: application/vnd.api+json' \
  --header 'Accept-Language: en,nl' \
  --header 'Content-Type: application/vnd.api+json' \
  --header 'X-API-KEY: API_KEY' \
  --data '{"data":{"id":"1","type":"customer","attributes":{"title":"mr","first_name":"string","last_name":"string","phone":"string","email":"string","is