API Documentation

Overview

Beta Version

Rentlio v1 api is currently in beta version, and some backward compatibility can be broken. New endpoints will be added weekly. For any bug reports or requests please send email to developers@rentl.io

The Rentlio API is organized around REST. It has predictable, resource-oriented URLs, and uses HTTP response codes to indicate API errors. JSON is returned by all API responses, including errors. Also JSON is used in request body instead of form data. We don’t use sandbox version where you can test your integrations. Instead, you can use a demo property and its reservations to be sure no harm is done on real data.

Currently active API version is v1 and can be accessed at https://api.rentl.io/v1/. API is accessible only via HTTPS.

Limits

To ensure clients good behaviour, API has some limitation on its usage. The limits shouldn’t cause any development issues. If you hit them, it means you are doing something wrong.

Request Size

Maximum request size you can send to api.rentl.io is 1MB. Larger requests will be rejected. This limit is global for all endpoints. Some of the endpoints can have their specific limits and this will be listed in specific endpoint documentation.

Request Rate

You can call a maximum of 10 requests in 1 second for a single API Key or IP address. This limit is global for all endpoints. Some of the endpoints can have their specific limits and this will be listed in specific endpoint documentation.

Authentication

Authenticate your account when using the API by including your secret API key in the request. You can manage your API keys in your account settings. Your API keys carry many privileges, so be sure to keep them private! Do not share your secret API keys in publicly accessible areas such GitHub, client-side code, and so forth. You can use your API keys in 2 ways:

As query param

$ curl https://api.rentl.io/v1/{api path}?apikey=<some_key>

As request header

$ curl https://api.rentl.io/v1/{api path} -H 'apikey: <some_key>'

Users

User in Rentlio is a person that is authenticated and authorized to perform actions within Rentlio system. Below are endpoints responsible for handling users in Rentlio.

Get My Data

This endpoint will return data for user that is associated with provided ApiKey.

GET/users/me

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "id": 12654,
  "email": "desk@sunshine.inn",
  "firstName": "Steve",
  "lastName": "Schultz",
  "address": "Wiseman Street",
  "postalCode": "37929",
  "city": "Knoxville",
  "phone": "865-286-6425",
  "timezone": "America/New_York",
  "createdAt": 1422622202,
  "modifiedAt": 1484731923
}
Schema
{
  "type": "object",
  "properties": {
    "id": "integer",
    "email": "string",
    "firstName": "string",
    "lastName": "string",
    "address": "string",
    "postalCode": "string",
    "city": "string",
    "phone": "string",
    "timezone": "string",
    "createdAt": "integer - UTC unix timestamp",
    "modifiedAt": "integer - UTC unix timestamp"
  }
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}

Get Active Subscriptions

Get active subscription data for user associated with provided ApiKey.

GET/users/subscriptions/active

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "id": 38,
  "name": "Advanced",
  "currencyId": 3,
  "startDate": 1454411335,
  "endDate": null,
  "numberOfUnits": 6,
  "status": "Active",
  "nextBillingDate": 1457049600,
  "currentBillingCycle": 1,
  "nextBillAmount": 276,
  "vatRate": null,
  "pricePerUnit": null,
  "pricePerUnitEUR": null,
  "totalPrice": 360,
  "totalPriceEUR": null,
  "numberOfMonths": 1
}
Schema
{
    "type": "object",
    "properties": {
        "id": "integer - unique subscription id",
        "name": "string - subscription name",
        "currencyId": "integer - currency id",
        "startDate": "integer - UTC unix timestamp of date subscription was activated",
        "endDate": "integer - UTC unix timestamp of date subscription is valid until",
        "numberOfUnits": "integer - number of allowed units for this subscription",
        "status": "string - subscription status",
        "nextBillingDate": "integer - UTC unix timestamp of next billing date",
        "currentBillingCycle": "integer - if recurring payment is active, this will represent the number of times this subscription has been paid",
        "nextBillAmount": "float - amount to pay when next billing occurs",
        "vatRate": "float - subscription vat rate",
        "pricePerUnit": "float - price per unit based on currencyId field",
        "pricePerUnitEUR": "float - price per unit in EUR",
        "totalPrice": "float - total subscription price based on currencyId field",
        "totalPriceEUR": "float - total subscription price in EUR",
        "numberOfMonths": "integer - number of months"
    }
}

+ Response 404 (application/json)
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "No Active Subscription Found"
}

Properties

Properties in Rentlio represent main grouping of your rental units. For example, a property can be a Hotel, Hostel, Camp, etc, or a single Apartment. Most of Rentl.io api endpoints will require you to pass propertiesID param. Below are endpoints for working with properties.

List All Properties

GET/properties?name={name}&page={page}&order_by={order_by}&order_direction={order_direction}

URI Parameters
HideShow
name
string (optional) 

Name of property to filter by

page
string (optional) 

Results page number

order_direction
string (optional) Default: ASC

Choices: ASC DESC

Results ordering

order_by
string (optional) Default: id

Choices: id createdAt modifiedAt

Column to order by

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "data": [
    {
      "id": 95,
      "name": "Sunshine Inn",
      "address": "Novi Varoš 41",
      "postalCode": "51315",
      "city": "Mrkopalj",
      "phone": "001982726",
      "mobilePhone": "097222111",
      "fax": "001982726",
      "email": "info@sunshine.inn",
      "webPage": "sunshine.inn",
      "country": "Croatia (Hrvatska)",
      "primaryCurrencyId": 1,
      "secondaryCurrencyId": 3,
      "createdAt": 1422949977,
      "modifiedAt": 1479202103
    },
    {
      "id": 234,
      "name": "43rd Street Apartment",
      "address": "43rd street",
      "postalCode": "10036",
      "city": "NY",
      "phone": "-",
      "mobilePhone": "-",
      "fax": "-",
      "email": "my-cozy-apartment@mail.com",
      "webPage": "-",
      "country": "US",
      "primaryCurrencyId": 1,
      "secondaryCurrencyId": 3,
      "createdAt": 1453890625,
      "modifiedAt": 1456133987
    }
  ],
  "perPage": 30,
  "total": 2
}
Schema
{
  "type": "object",
  "properties": {
    "total": "integer - total number of items",
    "perPage": "integer - how many items is returned in single page",
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": "integer",
          "name": "string",
          "address": "string",
          "postalCode": "string",
          "city": "string",
          "phone": "string",
          "mobilePhone": "string",
          "fax": "string",
          "email": "string",
          "webPage": "string",
          "country": "string",
          "primaryCurrencyId": "integer",
          "secondaryCurrencyId": "integer",
          "createdAt": "integer - UTC unix timestamp",
          "modifiedAt": "integer - UTC unix timestamp"
        }
      }
    }
  }
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}

Unit Types

Unit Types in Rentl.io represent group of rental units with same characteristics. For example, a Double Room, Apartment or Single Room. Each Unit Type belongs to only one Property. Unit Type can have multiple Units. Also rates, availability and promotions are related to unit types in the same manner as on booking.com or expedia.ie for example.

List All Unit Types

GET/properties/{id}/unit-types?page={page}&order_by={order_by}&order_direction={order_direction}

URI Parameters
HideShow
id
int (required) 

Id for property unit types are listed for

page
string (optional) 

Results page number

order_direction
string (optional) Default: ASC

Choices: ASC DESC

Results ordering

order_by
string (optional) Default: id

Choices: id createdAt modifiedAt

Column to order by

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "data": [
    {
      "id": 40,
      "name": "Standard Double Room",
      "uuid": "29fc3061-dd63-4322-b4be-9ea2e00a22c9",
      "minOccupancy": 1,
      "baseOccupancy": 2,
      "maxOccupancy": 3,
      "createdAt": 1422949988,
      "modifiedAt": 1429735776
    },
    {
      "id": 41,
      "name": "Suite with Balcony",
      "uuid": "12084eb9-074d-4603-a41d-71b896dc8209",
      "minOccupancy": 1,
      "baseOccupancy": 2,
      "maxOccupancy": 3,
      "createdAt": 1422949993,
      "modifiedAt": 1433487789
    }
  ],
  "perPage": 30,
  "total": 2
}
Schema
{
  "type": "object",
  "properties": {
    "total": "integer - total number of items",
    "perPage": "integer - how many items is returned in single page",
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": "string",
          "name": "string",
          "uuid": "string",
          "createdAt": "integer - UTC unix timestamp",
          "modifiedAt": "integer - UTC unix timestamp"
        }
      }
    }
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Property ID param missing"
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}

List Unit Type Availability

This endpoint will list availability for specified unit type. Results can be filtered by date range.

GET/unit-types/{id}/availability?page=&order_by={order_by}&order_direction={order_direction}&dateFrom={dateFrom}&dateTo={dateTo}

URI Parameters
HideShow
id
int (required) 

Id for unit type we are listing availability for

dateFrom
string (optional) 

Starting date for filtering availability in YYYY-mm-dd format. For this filter to work, both From and To parameters must be specified. If invalid, filter is ignored.

dateTo
string (optional) 

Ending date for filtering availability in YYYY-mm-dd format. For this filter to work, both From and To parameters must be specified. If invalid, filter is ignored.

order_direction
string (optional) Default: ASC

Choices: ASC DESC

Results ordering

order_by
string (optional) Default: timestamp

Choices: timestamp

Column to order by

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "data": [
    {
      "date": "2015-06-05",
      "availability": 2
    },
    {
      "date": "2015-06-06",
      "availability": 5
    },
    {
      "date": "2015-06-07",
      "availability": 0
    },
    {
      "date": "2015-06-08",
      "availability": 1
    }
  ]
}
Schema
{
  "type": "object",
  "properties": {
    "total": "integer - total number of items",
    "perPage": "integer - how many items is returned in single page",
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "date": "string - ISO date",
          "availability": "integer"
        }
      }
    }
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "UnitType ID param missing"
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}

List Unit Type Rates

This endpoint will list rates for specified unit type. Currently only standard rate is listed. Results can be filtered by date range.

GET/unit-types/{id}/rates?page=&order_by={order_by}&order_direction={order_direction}&dateFrom={dateFrom}&dateTo={dateTo}

URI Parameters
HideShow
id
int (required) 

Id for unit type we are listing rates for

dateFrom
string (optional) 

Starting date for filtering rates in YYYY-mm-dd format. For this filter to work, both From and To parameters must be specified. If invalid, filter is ignored.

dateTo
string (optional) 

Ending date for filtering rates in YYYY-mm-dd format. For this filter to work, both From and To parameters must be specified. If invalid, filter is ignored.

order_direction
string (optional) Default: ASC

Choices: ASC DESC

Results ordering

order_by
string (optional) Default: timestamp

Choices: timestamp

Column to order by

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "data": [
    {
      "date": "2015-06-05",
      "price": 120
    },
    {
      "date": "2015-06-06",
      "price": 120
    },
    {
      "date": "2015-06-07",
      "price": 110
    }
  ]
}
Schema
{
  "type": "object",
  "properties": {
    "total": "integer - total number of items",
    "perPage": "integer - how many items is returned in single page",
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "date": "string - ISO date",
          "price": "float"
        }
      }
    }
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "UnitType ID param missing"
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}

List Unit Type Restrictions

This endpoint will list restrictions for specified unit type. Currently only standard rate is listed. Results can be filtered by date range.

GET/unit-types/{id}/restrictions?page=&order_by={order_by}&order_direction={order_direction}&dateFrom={dateFrom}&dateTo={dateTo}

URI Parameters
HideShow
id
int (required) 

Id for unit type we are listing rates for

dateFrom
string (optional) 

Starting date for filtering rates in YYYY-mm-dd format. For this filter to work, both From and To parameters must be specified. If invalid, filter is ignored.

dateTo
string (optional) 

Ending date for filtering rates in YYYY-mm-dd format. For this filter to work, both From and To parameters must be specified. If invalid, filter is ignored.

order_direction
string (optional) Default: ASC

Choices: ASC DESC

Results ordering

order_by
string (optional) Default: timestamp

Choices: timestamp

Column to order by

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "data": [
    {
      "date": "2018-05-01",
      "minStay": 5
    },
    {
      "date": "2018-05-02",
      "minStay": 3
    },
    {
      "date": "2018-05-03",
      "minStay": 3
    },
    {
      "date": "2018-05-04",
      "minStay": 2
    },
    {
      "date": "2018-05-05",
      "minStay": 3
    }
  ],
  "perPage": 100,
  "total": 5
}
Schema
{
  "type": "object",
  "properties": {
    "total": "integer - total number of items",
    "perPage": "integer - how many items is returned in single page",
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "date": "string - ISO date",
          "minStay": "integer"
        }
      }
    }
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "UnitType ID param missing"
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}

Update Availability and Rates for Unit Type

This endpoint will update availability, rates and restrictions for unit type for a specific dates. If there are no values already inside rentl.io, new values will be crated.

If this unit type is connected to OTA channels, update will send values to those channels.

Limitations:
Only today and future values can be updated.
We allow 365 updates per api call.
Updates can be made maximum of 3 years in advance.
This endpoint will update only Standard rate.

POST/unit-types/{id}/availrates

URI Parameters
HideShow
id
int (required) 

Id for unit type we are updating values for

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Body
{
  "days": [
    {
      "date": "2017-08-10",
      "price": 75,
      "minStay": 2,
      "maxStay": 0,
      "maxStayArrival": 3,
      "minStayArrival": 5,
      "maxAdvanceReservation": 172,
      "minAdvanceReservation": 48,
      "noCheckIn": true,
      "noCheckOut": true,
      "closed": true
    },
    {
      "date": "2017-08-11",
      "minStay": 5
    },
    {
      "date": "2017-08-25",
      "availability": 3,
      "price": 120
    },
    {
      "date": "2017-08-26",
      "availability": 5
    },
    {
      "date": "2017-11-01",
      "availability": 0
    },
    {
      "date": "2017-11-02",
      "price": 0
    }
  ]
}
Schema
{
  "type": "object",
  "properties": {
    "days": {
      "type": "array, required - minimum 1, max 365 updates",
      "items": {
        "type": "object",
        "properties": {
          "date": "string, required - ISO format of a day that is updated. Please read limitations on dates that can be updated.",
          "availability": "integer, optional - how many units inside this unit type is available for rent.",
          "price": "float, optional - on what rate is your unit type rented",
          "minStay": "integer, optional - a Minimum length of stay restriction limits availability by specifying a number of nights that must be booked for stays, including the restriction date in any part of the stay date range.",
          "maxStay": "integer, optional - a Maximum length of stay restriction limits availability by specifying a number of nights that must be booked for stays, including the restriction date in any part of the stay date range.",
          "maxStayArrival": "integer, optional - Maximum stay arrival restriction",
          "minStayArrival": "integer, optional - Minimum stay arrival restriction",
          "minAdvanceReservation": "integer, optional - The minimum number of days and/or hours that guests must book in advance (before the planned check-in date).",
          "maxAdvanceReservation": "integer, optional - The maximum number of days and/or hours that guests must book in advance (before the planned check-in date).",
          "noCheckIn": "boolean, optional - No checkin restriction",
          "noCheckOut": "boolean, optional - No checkout restriction",
          "closed": "boolean, optional - Specifies whether the room is closed (not bookable) on the specified date, for the specified rate."
        }
      }
    }
  }
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "Updated days": 6
}
Schema
{
  "type": "object",
  "properties": {
    "Updated Days": "integer - total number of updated days"
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "errors": {
    "days": "Validation error on field:days, type:slice for rules:avail-updates()"
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "UnitType ID param missing"
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Error updating values."
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Error updating values to OTA Channels."
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}

List Available Unit Types

This endpoint will list available unit type in some date range for specific number of rooms

GET/properties/{id}/unit-types/available?dateFrom={dateFrom}&dateTo={dateTo}&rooms={rooms}&order_by={order_by}&order_direction={order_direction}

URI Parameters
HideShow
id
int (required) 

Id for property we are listing available unit types

dateFrom
string (required) 

Starting date for filtering date range in YYYY-mm-dd format.

dateTo
string (required) 

Ending date for filtering date range in YYYY-mm-dd format.

rooms
int (optional) Default: 1

Minimum number of rooms that should be available to list this unit type.

order_direction
string (optional) Default: ASC

Choices: ASC DESC

Results ordering

order_by
string (optional) Default: id

Choices: id

Column to order by

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Response  200
HideShow
Headers
Content-Type: application/json
Body
[
    {
        "id": 19824,
        "name": "Standard Double Room",
        "totalPrice": 450.50
    },
    {
        "id": 19825,
        "name": "Suite with Balcony",
        "totalPrice": 610.00
    },
]
Schema
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": "int - unique unit type identificator",
      "name": "string - unit type name",
      "totalPrice": "float - total price for unit type standard rate in date period for a single room"
    }
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Property ID param missing"
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "message": "dateFrom param is required ISO date format""
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "message": "dateTo param is required ISO date format""
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}

Units

List All Units

GET/properties/{id}/units?page={page}&order_by={order_by}&order_direction={order_direction}

URI Parameters
HideShow
id
int (required) 

Id for property units are listed for

page
string (optional) 

Results page number

order_direction
string (optional) Default: ASC

Choices: ASC DESC

Results ordering

order_by
string (optional) Default: id

Choices: id createdAt modifiedAt

Column to order by

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "data": [
    {
      "id": 199,
      "propertiesId": 95,
      "unitTypesId": 40,
      "name": "Room 45",
      "color": "e34c42",
      "createdAt": 1422950002,
      "modifiedAt": 0
    },
    {
      "id": 200,
      "propertiesId": 95,
      "unitTypesId": 40,
      "name": "Room 46",
      "color": "ffba00",
      "createdAt": 1422950010,
      "modifiedAt": 1422960010
    }
  ],
  "perPage": 30,
  "total": 2
}
Schema
{
  "type": "object",
  "properties": {
    "total": "integer - total number of items",
    "perPage": "integer - how many items is returned in single page"
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": "string",
          "propertiesId": "integer",
          "unitTypesId": "integer",
          "name": "string",
          "color": "string",
          "createdAt": "integer - UTC unix timestamp",
          "modifiedAt": "integer - UTC unix timestamp"
        }
      }
    }
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Property ID param missing"
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}

Availability

List available unit types

List available unit types and it’s rates in given period for specified property IDs.

Unit type is consedered available if it has availability set for each day of the given period (it’s value is not null and it is greater than 0)

GET/availability?propertiesIds={propertiesIds}&dateFrom={dateFrom}&dateTo={dateTo}

URI Parameters
HideShow
propertiesIds
string (required) 

comma separated list of propertyIds, for which to get available units

dateFrom
string (required) 

starting date in YYYY-mm-dd format, for period in which to look for available unit types.

dateTo
string (required) 

ending date in YYYY-mm-dd format. It must come after dateFrom.

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Response  200
HideShow
Headers
Content-Type: application/json
Body
[
  {
    "id": 95,
    "name": "Demo objekt",
    "unitTypes": [
      {
        "id": 41,
        "name": "PUT",
        "availability": [
          {
            "timestamp": 1584662400,
            "value": 1
          },
          {
            "timestamp": 1584748800,
            "value": 2
          },
          {
            "timestamp": 1584835200,
            "value": 3
          },
          {
            "timestamp": 1584921600,
            "value": 4
          },
          {
            "timestamp": 1585008000,
            "value": 5
          }
        ],
        "rates": [
          {
            "id": 0,
            "name": "Standard rate",
            "DailyValues": [
              {
                "timestamp": 1584662400,
                "price": 120
              },
              {
                "timestamp": 1584748800,
                "price": 120,
                "minStay": 5
              },
              {
                "timestamp": 1584835200,
                "price": 120,
                "maxStay": 10,
                "minStayArrival": 15
              },
              {
                "timestamp": 1584921600,
                "price": 100,
                "noCheckIn": true,
                "noCheckOut": true
              },
              {
                "timestamp": 1585008000,
                "price": 100,
                "maxStayArrival": 18
              }
            ]
          },
          {
            "id": 1615,
            "name": "Holiday Rate",
            "DailyValues": [
              {
                "timestamp": 1584662400,
                "price": 200,
                "maxStay": 5,
                "noCheckIn": true
              },
              {
                "timestamp": 1584748800,
                "price": 200,
                "maxStay": 5
              },
              {
                "timestamp": 1584835200,
                "price": 200,
                "maxStay": 5,
                "maxStayArrival": 8
              },
              {
                "timestamp": 1584921600,
                "price": 200,
                "maxStay": 5,
                "minStayArrival": 15
              },
              {
                "timestamp": 1585008000,
                "price": 2200,
                "noCheckOut": true
              }
            ]
          }
        ]
      }
    ]
  }
]
Schema
{
    "type": "array",
    "items": {
        "type": "object",
        "properties": {
            "id": "integer - unique property ID",
            "name": "string - property name",
            "unitTypes": {
                "type": "array",
                "items": {
                    "type": "object",
                    "items": {
                        "id": "integer - unique unit type ID",
                        "name": "unit type name",
                        "availability": {
                            "type": "array",
                            "items": {
                                "type": "object",
                                "properties": {
                                    "timestamp": "integer - unix timestamp in seconds",
                                    "value": "integer - number of available unit types on day"
                                }
                            }
                        },
                        "rates": {
                            "type": "array",
                            "items": {
                                "type": "object",
                                "properties": {
                                    "timestamp": "integer - unix timestamp in seconds",
                                    "price": "double - price for unit type on day",
                                    "minStay": "integer - minimum stay restriction",
                                    "maxStay": "integer - maximum stay restriction",
                                    "minStayArrival": "integer - minimum stay arrival restriction",
                                    "maxStayArrival": "integer - maximum stay arrival restriction",
                                    "noCheckIn": "boolean - check in restriction",
                                    "noCheckOut": "boolean - check out restriction",
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "message": "missing propertiesIds param"
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "message": "Invalid param: propertiesIds"
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "message": "propertiesIDs must not be empty"
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "message": "Please provide both dateFrom and dateTo"
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "message": "invalid dateFrom format"
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "message": "invalid dateTo format"
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "message": "dateFrom must come before dateTo"
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "message": "could not get available unit types"
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "message": "could not get rate plan values"
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}

Reservations

Reservation or a Booking is a period in which one or more guests are staying in your unit. Reservation has one major guest called Reservation Holder and additional guests. Besides guests, Reservation has other important attributes. Below are endpoints responsible for handling reservations.

Create new reservation

Creates new reservation from input data

POST/reservations

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Body
{
  "unitTypeId": 41,
  "dateFrom": "2018-05-23",
  "dateTo": "2018-05-25",
  "email": "guest@rentl.io",
  "fullName": "Jane Doe",
  "persons": 4,
  "rooms": 2,
  "note": "Hello from API",
  "cardHolder": "John Doe",
  "cardNumber": "422222222222",
  "expiryMonth": "12",
  "expiryYear": "2020",
  "salesChannelsId": 45,
  "adults": 4,
  "children": [
    {
      "age": 3
    },
    {
      "age": 15
    }
  ]
}
Schema
{
  "type": "object",
  "properties": {
    "unitTypeId": "integer - Invoice item unique identifier",
    "dateFrom": "string - Arrival date of the reservation",
    "dateTo": "string - Departure date of the reservation",
    "email": "string - Reservation holder email",
    "fullName": "string - Reservation holder full name",
    "persons": "integer - Number of persons on the reservation (deprecating, use adults and children insteads)",
    "rooms": "integer - Number of rooms that we want to book",
    "note": "string - Reservation note",
    "cardHolder": "string - Credit card holder",
    "cardNumber": "string - Credit card number",
    "expiryMonth": "string -  Month of credit card expiration",
    "expiryYear": "string - Year of credit card expiration",
    "salesChannelsId": "integer - (optional) Sales channel id",
    "adults": "integer - Number of adults on the reservation. If sent persons is ignored.",
    "children": {
      "type": "array, optional - maximum 20 children can be sent",
      "items": {
        "type": "object",
        "properties": {
          "age": "integer, required - The age of child. maximum 17"
        }
      }
    }
  }
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "uuid": "",
  "permalink": "",
  "reservations": [
    {
      "id": 10125,
      "publicId": "",
      "unitsId": 199,
      "unitsTypesId": 0,
      "guestsId": 14055,
      "guestName": "Jane Doe",
      "guestEmail": "guest@rentl.io",
      "arrivalDate": 1527033600,
      "departureDate": 1527206400,
      "adults": 6,
      "totalPrice": 240,
      "accommodationCost": 240,
      "totalCost": 271.2,
      "totalReservationPrice": 271.2,
      "vatAmount": 31.200000000000003,
      "vatRate": 13,
      "vatRegistered": "Y",
      "vatIncluded": "N",
      "totalNights": 2,
      "pricePerNight": 120,
      "origin": 5,
      "status": 1,
      "unitName": "PUT 1",
      "hasCCardData": "N",
      "note": "Hello from API",
      "currencyId": 1,
      "isOverlapped": "N",
      "salesChannelsId": 45
    },
    {
      "id": 10126,
      "publicId": "",
      "unitsId": 200,
      "unitsTypesId": 0,
      "guestsId": 14055,
      "guestName": "Jane Doe",
      "guestEmail": "guest@rentl.io",
      "arrivalDate": 1527033600,
      "departureDate": 1527206400,
      "adults": 6,
      "totalPrice": 240,
      "accommodationCost": 240,
      "totalCost": 271.2,
      "totalReservationPrice": 271.2,
      "vatAmount": 31.200000000000003,
      "vatRate": 13,
      "vatRegistered": "Y",
      "vatIncluded": "N",
      "totalNights": 2,
      "pricePerNight": 120,
      "origin": 5,
      "status": 1,
      "unitName": "PUT 2",
      "hasCCardData": "N",
      "note": "Hello from API",
      "currencyId": 1,
      "isOverlapped": "N",
      "salesChannelsId": 45
    }
  ]
}
Schema
{
  "type": "object",
  "properties": {
    "uuid": "string",
    "permalink": "string",
    "reservations": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": "integer",
          "publicId": "string",
          "unitsId": "integer",
          "unitsTypesId": "integer",
          "guestName": "string",
          "guestEmail": "string",
          "arrivalDate": "integer - UTC unix timestamp",
          "departureDate": "integer - UTC unix timestamp",
          "adults": "integer",
          "totalPrice": "integer",
          "accommodationCost": "integer",
          "totalCost": "integer",
          "totalReservationPrice": "integer",
          "vatAmount": "integer",
          "vatRate": "integer",
          "vatRegistered": "string",
          "vatIncluded": "string",
          "totalNights": "integer",
          "pricePerNight": "integer",
          "origin": "integer",
          "status": "integer",
          "unitName": "string",
          "hasCCardData": "string",
          "note": "string",
          "currencyId": "integer",
          "isOverlapped": "string",
          "salesChannelsId": "integer"
        }
      }
    }
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "errors": {
    "global": "UnitType ID param missing"
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "errors": {
    "global": "DateTo has to be greater then DateFrom"
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "errors": {
    "global": "Unable to save credit card data"
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "errors": {
    "global": "Unable to get user"
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "errors": {
    "global": "Unable to get unit type"
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "errors": {
    "global": "Unable to get property settings"
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "errors": {
    "global": "Uknown credit card"
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "errors": {
    "global": "Invalid credit card number"
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "errors": {
    "global": "Unable to save guest"
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "errors": {
    "global": "Unable to create connection"
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "errors": {
    "global": "Unable to set credit card data"
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "errors": {
    "global": "Unable to save credit card data"
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "errors": {
    "global": "Unable to get notifications"
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "errors": {
    "global": "Unable to send notifications"
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "errors": {
    "global": "Unable to get availability from ota channels"
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "errors": {
    "global": "Unable to sync new availability to ota channels"
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "errors": {
    "global": "Daily prices are missing"
  }
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}

Cancel Reservation

Attempt to cancel an existing reservation. Trying to cancel already canceled reservation will result in bad request response. On success, availability for the object the reservation has been created on will be increased accordingly.

DELETE/reservations/{reservationId}

URI Parameters
HideShow
reservationId
int (required) 

Id of reservation we want to cancel

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
    "code": 200,
    "message": "Reservation canceled",
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
    "code": 400,
    "message": "Reservation already canceled",
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
    "code": 400,
    "message": "Reservation not found",
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "message": "Reservation ID param missing"
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}

Get Reservation Details

This endpoint will get reservation details for reservation with specified ID.

GET/reservations/{reservationId}/details

URI Parameters
HideShow
reservationId
int (required) 

Id of reservation that we want to get details for

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "id": 423978438,
  "unitsId": 124453,
  "propertiesId": 31875,
  "arrivalDate": 1444262400,
  "departureDate": 1445040000,
  "unitName": "Room 46",
  "totalNights": 9,
  "note": "Airport transfer",
  "status": 7,
  "rateNames": "Standard rate",
  "origin": 2,
  "adults": 3,
  "childrenAbove12": 1,
  "childrenUnder12": 0,
  "salesChannelName": "",
  "otaChannelName": "booking.com",
  "channelID": "876213523",
  "pricePerNight": 10,
  "totalPrice": 90,
  "accommodationCost": 90,
  "totalCost": 101.7,
  "discountPercentage": 0,
  "discountNominal": 0,
  "currencyId": 1,
  "depositNominal": 0,
  "tentativeValidUntil": 0,
  "channelCommissionNominal": 0,
  "channelCommissionPercentage": 0,
  "totalServicesPrice": 0,
  "totalReservationPrice": 101.7,
  "vatRate": 13,
  "vatAmount": 11.7,
  "vatIncluded": "N",
  "createdAt": 1433847394,
  "bookedAt": 1433846354,
  "canceledAt": 1445002837,
  "modifiedAt": 1445002837,
  "services": [
    {
      "id": 1,
      "servicesId": 5,
      "name": "WIFI",
      "amount": 10,
      "price": 7,
      "priceSecondary": 52.5,
      "paymentType": {
        "id": 1,
        "name": "Per Night"
      },
      "tax": 15
    }
  ],
  "holder": {
    "id": 14049,
    "name": "Šime Basioli",
    "email": "holder@rentl.io",
    "contactNumber": "091123456789",
    "note": "Asked about local gastronomy",
    "hostAgain": "Y",
    "address": "",
    "city": "",
    "postalCode": "",
    "countryName": "Croatia (Hrvatska)",
    "documentNumber": "1234567890",
    "genderId": "2",
    "cityOfBirth": "",
    "cityOfResidence": "Zadar",
    "dateOfBirth": "421485748",
    "providedServicesTypesId": "1",
    "travelDocumentTypesId": "6",
    "touristTaxCategoriesId": "1",
    "arrivalArrangementsId": "1",
    "visaTypesId": "",
    "countryOfResidenceId": "",
    "countryOfBirthId": "53",
    "citizenshipCountryId": "53",
    "isAdditional": "N",
    "createdAt": 1526023219,
    "modifiedAt": 1526023408
  },
  "additionalGuests": [
    {
      "id": 14048,
      "name": "Barbara Dujic",
      "email": "guest@rentl.io",
      "contactNumber": "09232412312312",
      "note": "",
      "hostAgain": "Y",
      "address": "",
      "city": "",
      "postalCode": "",
      "countryName": "Ireland",
      "documentNumber": "0987654321",
      "genderId": "1",
      "cityOfBirth": "",
      "cityOfResidence": "Zadar",
      "dateOfBirth": "642410608",
      "providedServicesTypesId": "1",
      "travelDocumentTypesId": "11",
      "touristTaxCategoriesId": "18",
      "arrivalArrangementsId": "1",
      "visaTypesId": "",
      "countryOfResidenceId": "",
      "countryOfBirthId": "53",
      "citizenshipCountryId": "53",
      "isAdditional": "Y",
      "createdAt": 1526023219,
      "modifiedAt": 1526023408
    }
  ],
  "invoices": [
    {
      "id": 30,
      "year": "2019",
      "totalValue": 316.4,
      "totalValueSecondary": 2373,
      "type": {
        "id": 1,
        "name": "Invoice"
      },
      "paymentStatus": {
        "id": 2,
        "name": "Unpaid"
      },
      "number": "51-POS1-1"
    }
  ]
}
Schema
{
  "type": "object",
  "properties": {
    "id": "integer - unique reservation ID",
    "unitsId": "integer - unique unit ID for reserved unit",
    "propertiesId": "integer - unique property ID for reserved property",
    "arrivalDate": "integer - UTC unix timestamp",
    "departureDate": "integer - UTC unix timestamp",
    "unitName": "string - name of reserved unit",
    "totalNights": "integer - Total number of reserved nights",
    "internalNote": "string - Free text note on reservation",
    "note": "string - Free text note on reservation. When reservation is from OTA this field holds guest note",
    "status": "integer - Reservation status. Please check reservation statuses enum for possible values",
    "rateNames": "string - Comma separated list of rate names from OTA",
    "origin": "integer - 1 => manually entered, 2 => from OTA channels",
    "adults": "integer - number of adults",
    "childrenAbove12": "integer - number of children above 12 years old",
    "childrenUnder12": "integer - number of children under 12 years old",
    "salesChannelName": "string - name of sales channel this reservation is booked at. This is only for manual channels specified at rentlio UI",
    "otaChannelName": "string - name of OTA sales channel this reservation is booked at. This field will be set for reservation retrieved from OTA channels when using channel manager.",
    "channelID": "string - unique reservation ID on OTA channel (for example booking.com)",
    "pricePerNight": "float - price for single night",
    "totalPrice": "float - (pricePerNight * totalNights)",
    "accommodationCost": "float - (totalPrice - discountNominal)",
    "totalCost": "float - (accommodationCost + vatAmount)",
    "discountPercentage": "float - percent of discount applied",
    "discountNominal": "float - total nominal amount of discount applied",
    "currencyId": "integer - unique currency ID. Check currency enum endpoint for possible values",
    "depositNominal": "float - amount of deposit provided",
    "tentativeValidUntil": "integer - UNIX Timestamp. When this option is expired. Will be set when reservation status is OPTION",
    "channelCommissionNominal": "float - nominal value for channel commission",
    "channelCommissionPercentage": "float - percentage value for channel commission",
    "totalServicesPrice": "float - total amount for all services attached to reservation",
    "totalReservationPrice": "float - (totalCost + totalServicesPrice). Final reservation price",
    "vatRate": "float - VAT rate (percentage) applied for this reservation",
    "vatAmount": "float - VAT amount for this reservation",
    "vatIncluded": "string - Can be Y or N. If VAT is not included it is added to totalCost. If vat is included it is calculated from totalCost",
    "bookedAt": "integer - UTC unix timestamp. Specifies when was this reservation booked. If this is manual reservation, bookedAt is same as createdAt.",
    "canceledAt": "integer - UTC unix timestamp. Specifies when was this reservation canceled. This field will be available only if reservation status is CANCELED.",
    "createdAt": "integer - UTC unix timestamp",
    "modifiedAt": "integer - UTC unix timestamp",
    "services": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": "integer",
          "servicesId": "integer - unique service type id",
          "name": "string - service name",
          "amount": "integer - amount of services purchased on the reservation",
          "price": "float - price for one service",
          "priceSecondary": "float - price for one service",
          "paymentType": "object",
          "properties": {
              "id": "integer - unique service payment type ID",
              "name": "string - human readable service payment type name"
          },
          "tax": "integer - tax amount in %"
        }
      }
    },
    "holder": {
      "type": "object",
      "properties": {
        "id": "integer",
        "name": "string",
        "email": "string",
        "contactNumber": "string",
        "note": "string",
        "hostAgain": "string",
        "address": "string",
        "city": "string",
        "postalCode": "string",
        "countryName": "string",
        "documentNumber": "string",
        "genderId": "string",
        "cityOfBirth": "string",
        "cityOfResidence": "string",
        "dateOfBirth": "integer - UTC unix timestamp",
        "providedServicesTypesId": "string",
        "travelDocumentTypesId": "string",
        "touristTaxCategoriesId": "string",
        "arrivalArrangementsId": "string",
        "createdAt": "integer - UTC unix timestamp",
        "modifiedAt": "integer - UTC unix timestamp"
      }
    },
    "additionalGuests": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": "integer",
          "name": "string",
          "email": "string",
          "contactNumber": "string",
          "note": "string",
          "hostAgain": "string",
          "address": "string",
          "city": "string",
          "postalCode": "string",
          "countryName": "string",
          "documentNumber": "string",
          "genderId": "string",
          "cityOfBirth": "string",
          "cityOfResidence": "string",
          "dateOfBirth": "integer - UTC unix timestamp",
          "providedServicesTypesId": "string",
          "travelDocumentTypesId": "string",
          "touristTaxCategoriesId": "string",
          "arrivalArrangementsId": "string",
          "createdAt": "integer - UTC unix timestamp",
          "modifiedAt": "integer - UTC unix timestamp"
        }
      }
    },
    "invoices": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": "integer",
          "year": "string",
          "totalValue": "float",
          "totalValueSecondary": "float",
          "type": "object",
          "properties": {
            "id'": "integer - unique invoice type ID",
            "name": "string - human readable invoice type name"
          },
          "paymentStatus": "object",
          "properties": {
            "id": "integer - unique invoice payment status ID",
            "name": "string - human readable invoice payment status name"
          },
          "number": "string"
        }
      }
    },
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Reservation ID param missing"
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}

List All Reservations Today for a Unit

This endpoint will list current reservation in specified unit, that has checkedIn status to true and checkOut status to false.

GET/units/{unitId}/reservations/today?page={page}&order_by={order_by}&order_direction={order_direction}

URI Parameters
HideShow
unitId
int (required) 

Id for unit reservations are listed for

page
string (optional) 

Results page number

order_direction
string (optional) Default: ASC

Choices: ASC DESC

Results ordering

order_by
string (optional) Default: id

Choices: id createdAt modifiedAt

Column to order by

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "data": [
    {
      "id": 10128,
      "arrivalDate": 1480032000,
      "departureDate": 1480723200,
      "createdAt": 1480084148,
      "modifiedAt": 0,
      "holder": {
        "id": 14014,
        "name": "Robert Smith"
      }
    }
  ],
  "perPage": 30,
  "total": 1
}
Schema
{
  "type": "object",
  "properties": {
    "total": "integer - total number of items",
    "perPage": "integer - how many items is returned in single page"
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": "string",
          "arrivalDate": "integer - UTC unix timestamp",
          "departureDate": "integer - UTC unix timestamp"
          "createdAt": "integer - UTC unix timestamp",
          "modifiedAt": "integer - UTC unix timestamp"
          "holder" : {
            "type" : "object",
            "properties": {
              "id" : "integer - reservation holder ID",
              "name": "string - reservation holder full name"
            }
          }
        }
      }
    }
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Unit ID param missing"
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}

List All Reservations

This endpoint will list all available reservations for specified filters. If no filters are specified all user reservations will be listed starting from largest reservation ID.

GET/reservations?perPage={perPage}&page={page}&order_by={order_by}&order_direction={order_direction}&dateFrom={dateFrom}&dateTo={dateTo}&status={status}&unitsId={unitsId}&propertiesId={propertiesId}&bookedAtFrom={bookedAtFrom}&bookedAtTo={bookedAtTo}&canceledAtFrom={canceledAtFrom}&canceledAtTo={canceledAtTo}&createdAtFrom={createdAtFrom}&createdAtTo={createdAtTo}&modifiedAtFrom={modifiedAtFrom}&modifiedAtTo={modifiedAtTo}&checkedInAtFrom={checkedInAtFrom}&checkedInAtTo={checkedInAtTo}&checkedOutAtFrom={checkedOutAtFrom}&checkedOutAtTo={checkedOutAtTo}

URI Parameters
HideShow
status
int (optional) 

Enables filtering by reservation status.

unitsId
string (optional) 

Comma separated list of unit IDs. Enables filtering by units. Single unit ID can also be used.

propertiesId
string (optional) 

Comma separated list of property IDs. Enables filtering by properties. Single property ID can also be used.

dateFrom
string (optional) 

Starting date for dateFrom filter in YYYY-mm-dd format. Filters reservations by the arrival date. For this filter to work, both From and To parameters must be specified. If invalid, filter is ignored.

dateTo
string (optional) 

Ending date for dateTo filter in YYYY-mm-dd format.Filters reservations by the departure date. For this filter to work, both From and To parameters must be specified. If invalid, filter is ignored.

bookedAtFrom
string (optional) 

Starting date for bookedAt filter in YYYY-mm-dd format. For this filter to work, both From and To parameters must be specified. If invalid, filter is ignored.

bookedAtTo
string (optional) 

Ending date for bookedAt filter in YYYY-mm-dd format. For this filter to work, both From and To parameters must be specified. If invalid, filter is ignored.

canceledAtFrom
string (optional) 

Starting date for canceledAt filter in YYYY-mm-dd format. For this filter to work, both From and To parameters must be specified. If invalid, filter is ignored.

canceledAtTo
string (optional) 

Ending date for canceledAt filter in YYYY-mm-dd format. For this filter to work, both From and To parameters must be specified. If invalid, filter is ignored.

createdAtFrom
string (optional) 

Starting date for createdAt filter in either YYYY-mm-ddThh:mm:ss or YYYY-mm-dd format. For this filter to work, both From and To parameters must be specified. If invalid, filter is ignored. In manually created reservations createdAt and bookedAt are equal.

createdAtTo
string (optional) 

Ending date for createdAt filter in either YYYY-mm-ddThh:mm:ss or YYYY-mm-dd format. For this filter to work, both From and To parameters must be specified. If invalid, filter is ignored. In manually created reservations createdAt and bookedAt are equal.

modifiedAtFrom
string (optional) 

Starting date for modifiedAt filter in either YYYY-mm-ddThh:mm:ss or YYYY-mm-dd format. For this filter to work, both From and To parameters must be specified. If invalid, filter is ignored.

modifiedAtTo
string (optional) 

Ending date for modifiedAt filter in either YYYY-mm-ddThh:mm:ss or YYYY-mm-dd format. For this filter to work, both From and To parameters must be specified. If invalid, filter is ignored.

checkedInAtFrom
string (optional) 

Starting date for checkedInAt filter in either YYYY-mm-ddThh:mm:ss or YYYY-mm-dd format. For this filter to work, both From and To parameters must be specified. If invalid, filter is ignored.

checkedInAtTo
string (optional) 

Ending date for checkedInAt filter in either YYYY-mm-ddThh:mm:ss or YYYY-mm-dd format. For this filter to work, both From and To parameters must be specified. If invalid, filter is ignored.

checkedOutAtFrom
string (optional) 

Starting date for checkedOutAt filter in either YYYY-mm-ddThh:mm:ss or YYYY-mm-dd format. For this filter to work, both From and To parameters must be specified. If invalid, filter is ignored.

checkedOutAtTo
string (optional) 

Ending date for checkedOutAt filter in either YYYY-mm-ddThh:mm:ss or YYYY-mm-dd format. For this filter to work, both From and To parameters must be specified. If invalid, filter is ignored.

perPage
string (optional) 

Number of items per page. Default is 30. Maximum number can be 100.

page
string (optional) 

Results page number.

order_direction
string (optional) Default: ASC

Choices: ASC DESC

Results ordering

order_by
string (optional) Default: id

Choices: id createdAt modifiedAt bookedAt arrivalDate departureDate

Column to order by

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "data": [
    {
      "id": 423978438,
      "unitsId": 124453,
      "propertiesId": 31875,
      "arrivalDate": 1444262400,
      "departureDate": 1445040000,
      "unitName": "Room 46",
      "totalNights": 9,
      "note": "Airport transfer",
      "status": 7,
      "checkedIn": "Y",
      "checkedOut": "Y",
      "rateNames": "Standard rate",
      "origin": 2,
      "adults": 3,
      "childrenAbove12": 1,
      "childrenUnder12": 0,
      "salesChannelName": "",
      "otaChannelName": "booking.com",
      "channelID": "876213523",
      "guestId": 14014,
      "guestName": "Robert Smith",
      "guestEmail": "r.smith@emailme.com",
      "guestContactNumber": "",
      "guestCountryName": "United States",
      "pricePerNight": 10,
      "totalPrice": 90,
      "accommodationCost": 90,
      "totalCost": 101.7,
      "discountPercentage": 0,
      "discountNominal": 0,
      "currencyId": 1,
      "depositNominal": 0,
      "tentativeValidUntil": 0,
      "channelCommissionNominal": 0,
      "channelCommissionPercentage": 0,
      "totalServicesPrice": 0,
      "totalReservationPrice": 101.7,
      "vatRate": 13,
      "vatAmount": 11.7,
      "vatIncluded": "N",
      "createdAt": 1433847394,
      "bookedAt": 1433846354,
      "canceledAt": 1445002837,
      "modifiedAt": 1445002837,
      "checkedInAt": 1445002837,
      "checkedOutAt": 1445002837
    }
  ],
  "perPage": 30,
  "total": 1
}
Schema
{
  "type": "object",
  "properties": {
    "total": "integer - total number of items",
    "perPage": "integer - how many items is returned in single page",
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": "integer - unique reservation ID",
          "unitsId": "integer - unique unit ID for reserved unit",
          "propertiesId": "integer - unique property ID for reserved property",
          "arrivalDate": "integer - UTC unix timestamp",
          "departureDate": "integer - UTC unix timestamp",
          "unitName": "string - name of reserved unit",
          "totalNights": "integer - Total number of reserved nights",
          "note": "string - Free text note on reservation. When reservation is from OTA this field holds guest note",
          "status": "integer - Reservation status. Please check reservation statuses enum for possible values",
          "checkedIn": "string - Checked In/Out status. Can be 'Y', 'N' or empty",
          "checkedOut": "string - Checked In/Out status. Can be 'Y', 'N' or empty",
          "rateNames": "string - Comma separated list of rate names from OTA",
          "origin": "integer - 1 => manually entered, 2 => from OTA channels",
          "adults": "integer - number of adults",
          "childrenAbove12": "integer - number of children above 12 years old",
          "childrenUnder12": "integer - number of children under 12 years old",
          "salesChannelName": "string - name of sales channel this reservation is booked at. This is only for manual channels specified at rentlio UI",
          "otaChannelName": "string - name of OTA sales channel this reservation is booked at. This field will be set for reservation retrieved from OTA channels when using channel manager.",
          "channelID": "string - unique reservation ID on OTA channel (for example booking.com)",
          "guestId": "integer - unique id for guest that made reservation",
          "guestName": "string - full name of guest that made reservation",
          "guestEmail": "string - email of guest that made reservation",
          "guestContactNumber": "string - contact number of guest that made reservation",
          "guestCountryName": "string - country name of guest that made reservation",
          "pricePerNight": "float - price for single night",
          "totalPrice": "float - (pricePerNight * totalNights)",
          "accommodationCost": "float - (totalPrice - discountNominal)",
          "totalCost": "float - (accommodationCost + vatAmount)",
          "discountPercentage": "float - percent of discount applied",
          "discountNominal": "float - total nominal amount of discount applied",
          "currencyId": "integer - unique currency ID. Check currency enum endpoint for possible values",
          "depositNominal": "float - amount of deposit provided",
          "tentativeValidUntil": "integer - UNIX Timestamp. When this option is expired. Will be set when reservation status is OPTION",
          "channelCommissionNominal": "float - nominal value for channel commission",
          "channelCommissionPercentage": "float - percentage value for channel commission",
          "totalServicesPrice": "float - total amount for all services attached to reservation",
          "totalReservationPrice": "float - (totalCost + totalServicesPrice). Final reservation price",
          "vatRate": "float - VAT rate (percentage) applied for this reservation",
          "vatAmount": "float - VAT amount for this reservation",
          "vatIncluded": "string - Can be Y or N. If VAT is not included it is added to totalCost. If vat is included it is calculated from totalCost",
          "bookedAt": "integer - UTC unix timestamp. Specifies when was this reservation booked. If this is manual reservation, bookedAt is same as createdAt.",
          "canceledAt": "integer - UTC unix timestamp. Specifies when was this reservation canceled. This field will be available only if reservation status is CANCELED.",
          "createdAt": "integer - UTC unix timestamp",
          "modifiedAt": "integer - UTC unix timestamp",
          "checkedInAt": "integer - UTC unix timestamp",
          "checkedOutAt": "integer - UTC unix timestamp"
        }
      }
    }
  }
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}

Check in

This endpoint will make a check-in for reservation specified with the id.

PUT/reservations/{reservationId}/checkin

URI Parameters
HideShow
reservationId
int (required) 

Id of the reservation that we want to check-in

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Body
{
  "checkIn": true
}
Schema
{
  "type": "object",
  "properties": {
    "checkIn": "boolean - true for check-in, false to annulate check-in"
  }
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "code": "200",
  "message": "Check in status updated"
}
Schema
{
  "type": "object",
  "properties": {
    "code": "integer - http code if everything went ok",
    "message": "string - status of operation"
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "message": "Reservation ID param missing"
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "message": "Unable to parse request"
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "message": "Unable to update checkIn status"
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}

Check out

This endpoint will make a check-out for reservation specified with the id.

PUT/reservations/{reservationId}/checkout

URI Parameters
HideShow
reservationId
int (required) 

Id of the reservation that we want to check-out

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Body
{
  "checkOut": true
}
Schema
{
  "type": "object",
  "properties": {
    "checkOut": "boolean - true for check-out, false to annulate check-out"
  }
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "code": "200",
  "message": "Check out status updated"
}
Schema
{
  "type": "object",
  "properties": {
    "code": "integer - http code if everything went ok",
    "message": "string - status of operation"
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "message": "Reservation ID param missing"
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "message": "Unable to parse request"
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "message": "Unable to update checkIn status"
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}

Guests

Guests section lists endpoints that are responsible for handling all guest related data.

List guests for the reservation

This endpoint will list all the guests that are associated with the reservation. That means that it will return the reservation holder and the list of the additional guests.

The reservation can have only one holder and multiple additional guests.

GET/reservations/{reservationId}/guests

URI Parameters
HideShow
reservationId
int (required) 

Id of the reservation that we want to check-out

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "holder": {
    "id": 14049,
    "name": "Šime Basioli",
    "email": "holder@rentl.io",
    "contactNumber": "091123456789",
    "note": "Asked about local gastronomy",
    "hostAgain": "Y",
    "address": "",
    "city": "",
    "postalCode": "",
    "countryName": "Croatia (Hrvatska)",
    "documentNumber": "1234567890",
    "genderId": "2",
    "cityOfBirth": "",
    "cityOfResidence": "Zadar",
    "dateOfBirth": "421485748",
    "providedServicesTypesId": "1",
    "travelDocumentTypesId": "6",
    "touristTaxCategoriesId": "1",
    "arrivalArrangementsId": "1",
    "visaTypesId": "",
    "countryOfResidenceId": "",
    "countryOfBirthId": "53",
    "citizenshipCountryId": "53",
    "isAdditional": "N",
    "createdAt": 1526023219,
    "modifiedAt": 1526023408
  },
  "additionalGuests": [
    {
      "id": 14048,
      "name": "Barbara Dujic",
      "email": "guest@rentl.io",
      "contactNumber": "09232412312312",
      "note": "",
      "hostAgain": "Y",
      "address": "",
      "city": "",
      "postalCode": "",
      "countryName": "Ireland",
      "documentNumber": "0987654321",
      "genderId": "1",
      "cityOfBirth": "",
      "cityOfResidence": "Zadar",
      "dateOfBirth": "642410608",
      "providedServicesTypesId": "1",
      "travelDocumentTypesId": "11",
      "touristTaxCategoriesId": "18",
      "arrivalArrangementsId": "1",
      "visaTypesId": "",
      "countryOfResidenceId": "",
      "countryOfBirthId": "53",
      "citizenshipCountryId": "53",
      "isAdditional": "Y",
      "createdAt": 1526023219,
      "modifiedAt": 1526023408
    }
  ]
}
Schema
{
  "type": "object",
  "properties": {
    "holder": {
      "type": "object",
      "properties": {
        "id": "integer",
        "name": "string",
        "email": "string",
        "contactNumber": "string",
        "note": "string",
        "hostAgain": "string",
        "address": "string",
        "city": "string",
        "postalCode": "string",
        "countryName": "string",
        "documentNumber": "string",
        "genderId": "string",
        "cityOfBirth": "string",
        "cityOfResidence": "string",
        "dateOfBirth": "integer - UTC unix timestamp",
        "providedServicesTypesId": "string",
        "travelDocumentTypesId": "string",
        "touristTaxCategoriesId": "string",
        "arrivalArrangementsId": "string",
        "visaTypesId": "string",
        "countryOfResidenceId": "string",
        "countryOfBirthId": "string",
        "citizenshipCountryId": "string",
        "isAdditional": "string",
        "createdAt": "integer - UTC unix timestamp",
        "modifiedAt": "integer - UTC unix timestamp"
      }
    },
    "additionalGuests": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": "integer",
          "name": "string",
          "email": "string",
          "contactNumber": "string",
          "note": "string",
          "hostAgain": "string",
          "address": "string",
          "city": "string",
          "postalCode": "string",
          "countryName": "string",
          "documentNumber": "string",
          "genderId": "string",
          "cityOfBirth": "string",
          "cityOfResidence": "string",
          "dateOfBirth": "integer - UTC unix timestamp",
          "providedServicesTypesId": "string",
          "travelDocumentTypesId": "string",
          "touristTaxCategoriesId": "string",
          "arrivalArrangementsId": "string",
          "visaTypesId": "string",
          "countryOfResidenceId": "string",
          "countryOfBirthId": "string",
          "citizenshipCountryId": "string",
          "isAdditional": "string",
          "createdAt": "integer - UTC unix timestamp",
          "modifiedAt": "integer - UTC unix timestamp"
        }
      }
    }
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "message": "Reservation ID param missing"
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}

List All Checked-In Guests

This endpoint will list reservations with reservation holders that are checked-In at property in some date range.

GET/properties/{propertiesId}/guests/checked-in?from={from}&to={to}&page={page}&order_by={order_by}&order_direction={order_direction}

URI Parameters
HideShow
propertiesId
int (required) 

Id for property we are listing guests of

from
ISO date (required) 

starting date for checkin range, in ISO format

  • Example: 2017-12-30
to
ISO date (required) 

Ending date for checkin range, in ISO format

  • Example: 2017-12-31
page
string (optional) 

Results page number

order_direction
string (optional) Default: ASC

Choices: ASC DESC

Results ordering

order_by
string (optional) Default: id

Choices: id createdAt modifiedAt

Column to order by

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "data": [
    {
      "id": 10124,
      "arrivalDateTs": 1512432000,
      "departureDateTs": 1513036800,
      "unitName": "Room 46",
      "note": "Airport transfer",
      "createdAt": 1512466234,
      "modifiedAt": 1512466238,
      "checkedInAt": 1512466238,
      "holder": {
        "id": 14010,
        "name": "Robert Smith",
        "email": "r.smith@emailme.com",
        "address": "4240 Elk Street",
        "city": "Costa Mesa",
        "postalCode": "92627",
        "cityOfResidence": "Costa Mesa",
        "documentNumber": "T8142160",
        "dateOfBirth": "1983-01-06",
        "documentType": {
          "id": 19,
          "name": "Driver's licence (foreign)"
        },
        "ctizenshipCountry": {
          "id": 1,
          "name": "United States"
        },
        "arrivalArrangement": {
          "id": 1,
          "name": "Personal"
        },
        "touristTaxCategory": {
          "id": 3,
          "name": "Tourist staying in a property"
        },
        "country": {
          "id": 1,
          "name": "United States"
        },
        "countryOfBirth": {
          "id": 1,
          "name": "United States"
        }
      }
    },
    {
      "id": 10125,
      "arrivalDateTs": 1512432000,
      "departureDateTs": 1512864000,
      "unitName": "Room 47",
      "note": "Uknown guest",
      "createdAt": 1512484206,
      "modifiedAt": 1512484225,
      "checkedInAt": 1512484225,
      "holder": {}
    }
  ],
  "perPage": 30,
  "total": 2
}
Schema
{
  "type": "object",
  "properties": {
    "total": "integer - total number of items",
    "perPage": "integer - how many items is returned in single page",
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": "integer - unique id",
          "arrivalDateTs": "integer - UTC unix timestamp",
          "departureDateTs": "integer - UTC unix timestamp",
          "unitName": "string",
          "note": "string",
          "createdAt": "integer - UTC unix timestamp",
          "modifiedAt": "integer - UTC unix timestamp",
          "checkedInAt": "integer - UTC unix timestamp",
          "holder": {
            "type": "object",
            "properties": {
              "id": "integer - unique id",
              "name": "string",
              "email": "string",
              "address": "string",
              "city": "string",
              "postalCode": "string",
              "cityOfResidence": "string",
              "documentNumber": "string",
              "dateOfBirth": "string, ISO date format",
              "documentType": {
                "type": "object",
                "properties": {
                  "id": "integer - unique id",
                  "name": "string"
                }
              },
              "ctizenshipCountry": {
                "type": "object",
                "properties": {
                  "id": "integer - unique id",
                  "name": "string"
                }
              },
              "arrivalArrangement": {
                "type": "object",
                "properties": {
                  "id": "integer - unique id",
                  "name": "string"
                }
              },
              "touristTaxCategory": {
                "type": "object",
                "properties": {
                  "id": "integer - unique id",
                  "name": "string"
                }
              },
              "country": {
                "type": "object",
                "properties": {
                  "id": "integer - unique id",
                  "name": "string"
                }
              },
              "countryOfBirth": {
                "type": "object",
                "properties": {
                  "id": "integer - unique id",
                  "name": "string"
                }
              }
            }
          }
        }
      }
    }
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Property ID param missing"
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Date range params missing"
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Wrong date param format"
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "DateTo must be before DateFrom"
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}

List Checked-In Guest Using SmartCard

This endpoint will list guest that is checked-In at property and has smart card code as specified. Also some reservation data will be retuned.

GET/smart-card/{propertiesId}/{code}/guests/checked-in

URI Parameters
HideShow
propertiesId
int (required) 

Id for property we are listing guests of

code
string (required) 

smart card code

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "reservationsId": 10124,
  "guestsId": 14048,
  "code": "smart01",
  "guestName": "John Doe",
  "unitName": "Room 101",
  "arrivalDate": "1534118400",
  "departureDate": "1534723200"
}
Schema
{
  "type": "object",
  "properties": {
    "reservationsId": "integer - unique ID for this reservation",
    "guestsId": "integer - unique ID for guest",
    "code": "string - smart card code",
    "guestName": "string - guest full name",
    "unitName": "string - unit name where guest is staying",
    "arrivalDate": "integer - UTC unix timestamp",
    "departureDate": "integer - UTC unix timestamp"
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Property ID param missing"
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Smart Code param missing"
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Guest with smart card not found on checked-in reservation"
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}

Services

Services in Rentlio represent something that you can offer to your guests besides accommodation. For example parking, rent a bike, meals… Services are defined per property and can then be added to reservations and/or invoices. Below are endpoints responsible for handling services.

List All Services For Property

This endpoint will list all services with related taxes for specified property.

GET/properties/{id}/services?page={page}&order_by={order_by}&order_direction={order_direction}

URI Parameters
HideShow
id
int (required) 

Id for property services are listed for

page
string (optional) 

Results page number

order_direction
string (optional) Default: ASC

Choices: ASC DESC

Results ordering

order_by
string (optional) Default: id

Choices: id createdAt

Column to order by

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "data": [
    {
      "id": 3,
      "name": "Bike",
      "paymentType": {
        "id": 3,
        "name": "Per Adult"
      },
      "price": 50,
      "priceSecondary": 0,
      "taxes": [],
      "createdAt": 1427206131
    },
    {
      "id": 5,
      "name": "WiFi",
      "paymentType": {
        "id": 1,
        "name": "Per Night"
      },
      "price": 7,
      "priceSecondary": 0,
      "taxes": [],
      "createdAt": 1428647541
    },
    {
      "id": 6,
      "name": "Kayak",
      "paymentType": {
        "id": 1,
        "name": "Per Night"
      },
      "price": 41.12,
      "priceSecondary": 0,
      "taxes": [
        {
          "includedInPrice": "N",
          "label": "PCD",
          "rate": 6.43
        }
      ],
      "createdAt": 1428907978
    },
    {
      "id": 7,
      "name": "Breakfast",
      "paymentType": {
        "id": 7,
        "name": "Fixed"
      },
      "price": 10,
      "priceSecondary": 0,
      "taxes": [
        {
          "includedInPrice": "Y",
          "label": "PNP",
          "rate": 3
        }
      ],
      "createdAt": 1429735791
    }
  ],
  "perPage": 30,
  "total": 4
}
Schema
{
  "type": "object",
  "properties": {
    "total": "integer - total number of items",
    "perPage": "integer - how many items is returned in single page",
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": "integer",
          "name": "string",
          "price": "float",
          "priceSecondary": "float",
          "createdAt": "integer - UTC unix timestamp",
          "paymentType": {
            "type": "object",
            "properties": {
              "id": "integer",
              "name": "string"
            }
          },
          "taxes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "includedInPrice": "string (enum[Y,N])",
                "label": "string",
                "rate": "float"
              }
            }
          }
        }
      }
    }
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Property ID param missing"
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}

Invoices

An invoice is a document that specifies the amount and cost of products or services that have been provided by a host. Invoice consist of some general data, invoice items and invoice taxes. Below are endpoints responsible for handling Invoices.

Get invoices

This endpoint will provide list of invoices for selected properties.

GET/invoices?propertiesIds={propertiesIds}&page={page}&order_by=&order_direction={order_direction}&createdAtFrom={createdAtFrom}&createdAtTo={createdAtTo}&modifiedAtFrom={modifiedAtFrom}&modifiedAtTo={modifiedAtTo}

URI Parameters
HideShow
propertiesIds
string (required) 

Comma separated list of existing properties

createdAtFrom
string (optional) 

Starting date for createdAt filter in either YYYY-mm-ddThh:mm:ss or YYYY-mm-dd format. For this filter to work, both From and To parameters must be specified. If invalid, filter is ignored.

createdAtTo
string (optional) 

Starting date for createdAt filter in either YYYY-mm-ddThh:mm:ss or YYYY-mm-dd format. For this filter to work, both From and To parameters must be specified. If invalid, filter is ignored.

modifiedAtFrom
string (optional) 

Starting date for modifiedAt filter in either YYYY-mm-ddThh:mm:ss or YYYY-mm-dd format. For this filter to work, both From and To parameters must be specified. If invalid, filter is ignored.

modifiedAtTo
string (optional) 

Starting date for modifiedAt filter in either YYYY-mm-ddThh:mm:ss or YYYY-mm-dd format. For this filter to work, both From and To parameters must be specified. If invalid, filter is ignored.

page
string (optional) 

Results page number

order_direction
string (optional) Default: ASC

Choices: ASC DESC

Results ordering

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "data": [
    {
      "id": 28,
      "propertiesId": 95,
      "reservationsId": 10124,
      "canceledInvoicesId": 0,
      "reservationsGroupsId": 0,
      "number": 50,
      "date": 1525954380,
      "year": "2018",
      "totalNights": 0,
      "pricePerNight": 0,
      "totalPrice": 0,
      "vatRegistered": "Y",
      "vatIncluded": "N",
      "vatId": "HR12345678",
      "vatRate": 13,
      "vatAmount": 65,
      "discountPercentage": 0,
      "exchangeRate": 7.5,
      "clientName": "",
      "clientEmail": "",
      "clientAddress": "",
      "clientVatID": "",
      "officeNumber": 0,
      "deviceNumber": 1,
      "jirCode": "some-invoice-jir-code",
      "zkiCode": "some-invoice-zki-code",
      "status": 3,
      "paymentType": 1,
      "paymentTypeValue": "Gotovina (Banknotes)",
      "deliveryDate": 1525910400,
      "dueDate": 1525910400,
      "operatorsId": 1,
      "operatorsLegalId": "11111111111",
      "clientsId": 0,
      "businessSpacesId": 7,
      "notice": "",
      "header": "Sesame Street 23, 23000 Zadar  \n  t: 0231833253 \n  user@rentl.io, www.myproperty.com",
      "footer": "Sesame Street 23, 23000 Zadar  |  t: 023833253 |  user@rentl.io, www.myproperty.com",
      "isInFiscalisation": "Y",
      "fiscalisationStatus": 1,
      "paymentStatus": 2,
      "cancellationInvoiceId": 0,
      "cashDeskLabel": "",
      "businessSpacesLabel": "POS1",
      "color": "e34c42",
      "totalValue": 565,
      "totalValueSecondary": 4237.5,
      "type": 1,
      "numerationType": "P",
      "creditCardType": 0,
      "currencyId": 1,
      "secondaryCurrencyId": 3,
      "deletedAt": 0,
      "createdAt": 1525954426,
      "modifiedAt": 0
    }
  ],
  "perPage": 30,
  "total": 1
}
Schema
{
  "type": "object",
  "properties": {
    "total": "integer - total number of items",
    "perPage": "integer - how many items is returned in single page",
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": "integer",
          "propertiesId": "integer",
          "reservationsId": "integer",
          "canceledInvoicesId": "integer",
          "reservationsGroupsId": "integer",
          "number": "integer",
          "date": "integer - UTC unix timestamp",
          "year": "string",
          "totalNights": "integer",
          "pricePerNight": "float",
          "totalPrice": "float",
          "vatRegistered": "string - (Y or N)",
          "vatIncluded": "string - (Y or N)",
          "vatId": "string - legal Id of the issuer",
          "vatRate": "float",
          "vatAmount": "float",
          "discountPercentage": "float",
          "exchangeRate": "float - rate used for conversions between primary and secondary currency",
          "clientsId": "integer",
          "clientName": "string",
          "clientEmail": "string",
          "clientAddress": "string",
          "clientVatID": "string",
          "officeNumber": "integer",
          "deviceNumber": "integer",
          "jirCode": "string",
          "zkiCode": "string",
          "status": "integer - status of the invoice (1 - draft, 2 - issued, 3 - fiscalised)",
          "paymentType": "integer",
          "paymentTypeValue": "string",
          "deliveryDate": "integer - UTC unix timestamp",
          "dueDate": "integer - UTC unix timestamp",
          "operatorsId": "integer",
          "operatorsLegalId": "string",
          "businessSpacesId": "integer",
          "notice": "string",
          "header": "string",
          "footer": "string",
          "isInFiscalisation": "string - (Y or N)",
          "fiscalisationStatus": "integer",
          "paymentStatus": "integer",
          "cancellationInvoiceId": "integer",
          "cashDeskLabel": "string",
          "businessSpacesLabel": "string",
          "color": "string",
          "totalValue": "float - total cost of the invoice",
          "totalValueSecondary": "float - total cost of the invoice in secondary currency",
          "type": "integer",
          "numerationType": "string - (P (business space) or N (device)",
          "creditCardType": "integer",
          "currencyId": "integer - id of the primary currency",
          "secondaryCurrencyId": "integer - id of the secondary currency",
          "deletedAt": "integer - UTC unix timestamp",
          "createdAt": "integer - UTC unix timestamp",
          "modifiedAt": "integer - UTC unix timestamp"
        }
      }
    }
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Property ID param missing"
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}

Get invoices by property

This endpoint will provide list of invoices for the property.

GET/properties/{propertyId}/invoices?page={page}&order_by=&order_direction={order_direction}&createdAtFrom={createdAtFrom}&createdAtTo={createdAtTo}&modifiedAtFrom={modifiedAtFrom}&modifiedAtTo={modifiedAtTo}

URI Parameters
HideShow
propertyId
int (required) 

Id of the existing property

createdAtFrom
string (optional) 

Starting date for createdAt filter in either YYYY-mm-ddThh:mm:ss or YYYY-mm-dd format. For this filter to work, both From and To parameters must be specified. If invalid, filter is ignored.

createdAtTo
string (optional) 

Starting date for createdAt filter in either YYYY-mm-ddThh:mm:ss or YYYY-mm-dd format. For this filter to work, both From and To parameters must be specified. If invalid, filter is ignored.

modifiedAtFrom
string (optional) 

Starting date for modifiedAt filter in either YYYY-mm-ddThh:mm:ss or YYYY-mm-dd format. For this filter to work, both From and To parameters must be specified. If invalid, filter is ignored.

modifiedAtTo
string (optional) 

Starting date for modifiedAt filter in either YYYY-mm-ddThh:mm:ss or YYYY-mm-dd format. For this filter to work, both From and To parameters must be specified. If invalid, filter is ignored.

page
string (optional) 

Results page number

order_direction
string (optional) Default: ASC

Choices: ASC DESC

Results ordering

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "data": [
    {
      "id": 28,
      "propertiesId": 95,
      "reservationsId": 10124,
      "canceledInvoicesId": 0,
      "reservationsGroupsId": 0,
      "number": 50,
      "date": 1525954380,
      "year": "2018",
      "totalNights": 0,
      "pricePerNight": 0,
      "totalPrice": 0,
      "vatRegistered": "Y",
      "vatIncluded": "N",
      "vatId": "HR12345678",
      "vatRate": 13,
      "vatAmount": 65,
      "discountPercentage": 0,
      "exchangeRate": 7.5,
      "clientName": "",
      "clientEmail": "",
      "clientAddress": "",
      "clientVatID": "",
      "officeNumber": 0,
      "deviceNumber": 1,
      "jirCode": "some-invoice-jir-code",
      "zkiCode": "some-invoice-zki-code",
      "status": 3,
      "paymentType": 1,
      "paymentTypeValue": "Gotovina (Banknotes)",
      "deliveryDate": 1525910400,
      "dueDate": 1525910400,
      "operatorsId": 1,
      "operatorsLegalId": "11111111111",
      "clientsId": 0,
      "businessSpacesId": 7,
      "notice": "",
      "header": "Sesame Street 23, 23000 Zadar  \n  t: 0231833253 \n  user@rentl.io, www.myproperty.com",
      "footer": "Sesame Street 23, 23000 Zadar  |  t: 023833253 |  user@rentl.io, www.myproperty.com",
      "isInFiscalisation": "Y",
      "fiscalisationStatus": 1,
      "paymentStatus": 2,
      "cancellationInvoiceId": 0,
      "cashDeskLabel": "",
      "businessSpacesLabel": "POS1",
      "color": "e34c42",
      "totalValue": 565,
      "totalValueSecondary": 4237.5,
      "type": 1,
      "numerationType": "P",
      "creditCardType": 0,
      "currencyId": 1,
      "secondaryCurrencyId": 3,
      "deletedAt": 0,
      "createdAt": 1525954426,
      "modifiedAt": 0
    }
  ],
  "perPage": 30,
  "total": 1
}
Schema
{
  "type": "object",
  "properties": {
    "total": "integer - total number of items",
    "perPage": "integer - how many items is returned in single page",
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": "integer",
          "propertiesId": "integer",
          "reservationsId": "integer",
          "canceledInvoicesId": "integer",
          "reservationsGroupsId": "integer",
          "number": "integer",
          "date": "integer - UTC unix timestamp",
          "year": "string",
          "totalNights": "integer",
          "pricePerNight": "float",
          "totalPrice": "float",
          "vatRegistered": "string - (Y or N)",
          "vatIncluded": "string - (Y or N)",
          "vatId": "string - legal Id of the issuer",
          "vatRate": "float",
          "vatAmount": "float",
          "discountPercentage": "float",
          "exchangeRate": "float - rate used for conversions between primary and secondary currency",
          "clientsId": "integer",
          "clientName": "string",
          "clientEmail": "string",
          "clientAddress": "string",
          "clientVatID": "string",
          "officeNumber": "integer",
          "deviceNumber": "integer",
          "jirCode": "string",
          "zkiCode": "string",
          "status": "integer - status of the invoice (1 - draft, 2 - issued, 3 - fiscalised)",
          "paymentType": "integer",
          "paymentTypeValue": "string",
          "deliveryDate": "integer - UTC unix timestamp",
          "dueDate": "integer - UTC unix timestamp",
          "operatorsId": "integer",
          "operatorsLegalId": "string",
          "businessSpacesId": "integer",
          "notice": "string",
          "header": "string",
          "footer": "string",
          "isInFiscalisation": "string - (Y or N)",
          "fiscalisationStatus": "integer",
          "paymentStatus": "integer",
          "cancellationInvoiceId": "integer",
          "cashDeskLabel": "string",
          "businessSpacesLabel": "string",
          "color": "string",
          "totalValue": "float - total cost of the invoice",
          "totalValueSecondary": "float - total cost of the invoice in secondary currency",
          "type": "integer",
          "numerationType": "string - (P (business space) or N (device)",
          "creditCardType": "integer",
          "currencyId": "integer - id of the primary currency",
          "secondaryCurrencyId": "integer - id of the secondary currency",
          "deletedAt": "integer - UTC unix timestamp",
          "createdAt": "integer - UTC unix timestamp",
          "modifiedAt": "integer - UTC unix timestamp"
        }
      }
    }
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Property ID param missing"
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}

Get invoices by reservation

This endpoint will provide list of invoices for the specific reservation.

GET/reservations/{reservationsId}/invoices?page={page}&order_by=&order_direction={order_direction}&createdAtFrom={createdAtFrom}&createdAtTo={createdAtTo}&modifiedAtFrom={modifiedAtFrom}&modifiedAtTo={modifiedAtTo}

URI Parameters
HideShow
reservationsId
int (required) 

Id of the existing property

createdAtFrom
string (optional) 

Starting date for createdAt filter in either YYYY-mm-ddThh:mm:ss or YYYY-mm-dd format. For this filter to work, both From and To parameters must be specified. If invalid, filter is ignored.

createdAtTo
string (optional) 

Starting date for createdAt filter in either YYYY-mm-ddThh:mm:ss or YYYY-mm-dd format. For this filter to work, both From and To parameters must be specified. If invalid, filter is ignored.

modifiedAtFrom
string (optional) 

Starting date for modifiedAt filter in either YYYY-mm-ddThh:mm:ss or YYYY-mm-dd format. For this filter to work, both From and To parameters must be specified. If invalid, filter is ignored.

modifiedAtTo
string (optional) 

Starting date for modifiedAt filter in either YYYY-mm-ddThh:mm:ss or YYYY-mm-dd format. For this filter to work, both From and To parameters must be specified. If invalid, filter is ignored.

page
string (optional) 

Results page number

order_direction
string (optional) Default: ASC

Choices: ASC DESC

Results ordering

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "data": [
    {
      "id": 28,
      "date": 1526039700,
      "deliveryDate": 1525996800,
      "dueDate": 1525996800,
      "year": "2018",
      "vatRegistered": "Y",
      "vatIncluded": "N",
      "vatId": "HR123456789",
      "totalValue": 678,
      "totalValueSecondary": 5085,
      "status": {
        "id": 3,
        "name": "Fiscalised"
      },
      "createdAt": 1526039733,
      "modifiedAt": 0,
      "client": {
        "name": "Lovro Predovan",
        "email": "lovro@rentl.io",
        "address": "France",
        "vatId": "123123123"
      }
    }
  ],
  "perPage": 30,
  "total": 1
}
Schema
{
  "type": "object",
  "properties": {
    "total": "integer - total number of items",
    "perPage": "integer - how many items is returned in single page",
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": "integer - unique reservation ID",
          "date": "float - nominal value for channel commission",
          "deliveryDate": "integer - UTC unix timestamp",
          "dueDate": "integer - UTC unix timestamp",
          "year": "string",
          "vatRegistered": "string - Can be Y or N. If VAT is not included it is added to totalCost. If vat is included it is calculated from totalCost",
          "vatIncluded": "string - Can be Y or N. If VAT is not included it is added to totalCost. If vat is included it is calculated from totalCost",
          "vatId": "string - Can be Y or N. If VAT is not included it is added to totalCost. If vat is included it is calculated from totalCost",
          "totalValue": "string - Can be Y or N. If VAT is not included it is added to totalCost. If vat is included it is calculated from totalCost",
          "totalValueSecondary": "string - Can be Y or N. If VAT is not included it is added to totalCost. If vat is included it is calculated from totalCost",
          "createdAt": "integer - UTC unix timestamp",
          "modifiedAt": "integer - UTC unix timestamp",
          "status": {
            "type": "object",
            "properties": {
              "id": "integer - status id",
              "name": "string - name of the status"
            }
          },
          "client": {
            "type": "object",
            "properties": {
              "name": "string",
              "email": "string",
              "address": "string",
              "vatId": "string - legal id of the client"
            }
          }
        }
      }
    }
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Reservation ID param missing"
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}

Get invoice details

This endpoint will provide data about the invoice with its related taxes and items.

GET/invoices/{invoiceId}

URI Parameters
HideShow
invoiceId
int (required) 

Id of the existing invoice

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "id": 28,
  "reservationsId": 10124,
  "propertiesId": 95,
  "date": 1525954380,
  "deliveryDate": 1525910400,
  "dueDate": 1525910400,
  "year": "2018",
  "vatRegistered": "Y",
  "vatIncluded": "N",
  "vatId": "HR1234567890",
  "vatRate": 13,
  "exchangeRate": 7.5,
  "isInFiscalisation": "Y",
  "numerationType": "P",
  "totalValue": 565,
  "totalValueSecondary": 4237.5,
  "primaryCurrencyId": 1,
  "secondaryCurrencyId": 3,
  "status": 3,
  "createdAt": 1525954426,
  "modifiedAt": 0,
  "items": [
    {
      "id": 4,
      "description": "Accommodation in Apartment 1 (08.05. - 13.05.)",
      "price": 750,
      "quantity": 5,
      "discountPercentage": 0,
      "totalPrice": 4237.5,
      "taxes": [
        {
          "label": "PDV",
          "rate": 13
        }
      ]
    }
  ],
  "taxes": [
    {
      "id": 4,
      "label": "PDV",
      "rate": 13,
      "value": 65,
      "valueSecondary": 487.5,
      "baseValue": 500,
      "baseValueSecondary": 3750
    }
  ]
}
Schema
{
  "type": "object",
  "properties": {
    "id": "integer",
    "reservationsId": "integer",
    "propertiesId": "integer",
    "date": "integer - UTC unix timestamp",
    "deliveryDate": "integer - UTC unix timestamp",
    "dueDate": "integer - UTC unix timestamp",
    "year": "string",
    "vatRegistered": "string - (Y or N)",
    "vatIncluded": "string - (Y or N)",
    "vatId": "string - legal Id of the issuer",
    "vatRate": "float",
    "exchangeRate": "float - rate used for conversions between primary and secondary currency",
    "isInFiscalisation": "string - (Y or N)",
    "numerationType": "string - (P (business space) or N (device)",
    "totalValue": "float - total cost of the invoice",
    "totalValueSecondary": "float - total cost of the invoice in secondary currency",
    "primaryCurrencyId": "integer - id of the primary currency",
    "secondaryCurrencyId": "integer - id of the secondary currency",
    "status": "integer - status of the invoice (1 - draft, 2 - issued, 3 - fiscalised)",
    "createdAt": "integer - UTC unix timestamp",
    "modifiedAt": "integer - UTC unix timestamp",
    "items": {
      "type": "array - invoice items",
      "items": {
        "type": "object",
        "properties": {
          "id": "integer",
          "description": "string - description of the item",
          "price": "float - price for one unit of the item",
          "quantity": "float - number of units of the item",
          "discountPercentage": "float",
          "totalPrice": "float - total price of invoice item",
          "taxes": {
            "type": "array - items tax",
            "properties": {
              "label": "string - tax label",
              "rate": "float - rate (in %) for tax"
            }
          }
        }
      }
    },
    "taxes": {
      "type": "array - invoice taxes",
      "items": {
        "type": "object",
        "properties": {
          "id": "integer",
          "label": "string - tax label",
          "rate": "float - rate (in %) for tax",
          "value": "float - value of the tax",
          "valueSecondary": "float - value of the tax in secondary currency",
          "baseValue": "float - value of the base that we use to calculate tax value",
          "baseValueSecondary": "float - value of the base that we use to calculate tax value for secondary currency"
        }
      }
    }
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invoice ID param missing"
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}

Create Invoice Item for Reservation

This endpoint will add invoice item to first existing draft invoice. If there is no draft invoice for this reservation new one will be created.

When adding invoice items to invoices the default option is vatIncluded = N. This means that Rentlio will add all taxes to the amount you send us.

There are two scenarios: if you’re sending NET amounts for invoice items specify that vatIncluded = N. In this case, when you send an invoice item called “coffee” with value 10 and 25% tax we will display it as 10 + 25% = 12.50.

If you’re sending GROSS amounts for invoice items please specify that vatIncluded = Y. In this case the total amount will remain unchanged, but we will deduct taxes on invoices to display correct NET rates on invoices + taxes.

POST/reservations/{id}/invoices/items

URI Parameters
HideShow
id
int (required) 

Id for reservation draft invoice is handling

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Body
{
  "description": "Coca cola 0.5L",
  "discountPercent": 10,
  "price": 9.88,
  "vatIncluded": "N",
  "quantity": 1,
  "taxes": [
    {
      "label": "PDV",
      "rate": 25
    },
    {
      "label": "PNP",
      "rate": 3
    }
  ]
}
Schema
{
  "type": "object",
  "properties": {
    "description": "string, required - Invoice item description",
    "price": "float, required - invoice item single unit price",
    "vatIncluded": "string (Y,N), optional - Default value is N. When Y tax is subtracted from price",
    "quantity": "float, required - number of invoice items",
    "discountPercent": "float [0-100] - invoice item discount",
    "taxes": {
      "type": "array, optional - maximum 2 taxes can be sent",
      "items": {
        "type": "object",
        "properties": {
          "label": "string, required - tax label. Important when using fiscalisation. PP and PNP labels will be fiscalised as consumption tax, all other labels will be fiscalised as Vat",
          "rate": "float, required - number larger then 0 and lower or equal then 100"
        }
      }
    }
  }
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "id": 1,
  "description": "Coca cola 0.5L",
  "price": 10,
  "quantity": 3,
  "discountPercentage": 10,
  "totalPrice": 29.7,
  "taxes": [
    {
      "label": "PDV",
      "rate": 25
    },
    {
      "label": "PNP",
      "rate": 3
    }
  ]
}
Schema
{
  "type": "object",
  "properties": {
    "id": "int - Invoice item unique identifier",
    "description": "string - Invoice item description",
    "price": "float- invoice item single unit price",
    "quantity": "int - number of invoice items",
    "discountPercentage": "float - invoice item discount",
    "totalPrice": "float  - invoice item total after discount and Vat",
    "taxes": {
      "type": "array - invoice item taxes",
      "items": {
        "type": "object",
        "properties": {
          "label": "string",
          "rate": "float"
        }
      }
    }
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "errors": {
    "quantity": "Validation error on field:quantity, type:int for rules:required()"
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "This property doesn't have exchange rate defined!"
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Reservation ID param missing"
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}

Create Invoice Items for Reservation in bulk

This endpoint can add multiple invoice items to the first existing draft invoice. If there is no draft invoice for this reservation new one will be created.

It behaves just the same as the endpoint for inserting single invoice item as explained in section for inserting single item.

POST/reservations/{id}/invoices/items/bulk

URI Parameters
HideShow
id
int (required) 

Id for reservation draft invoice is handling

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Body
[
  {
    "description": "Coca cola 0.5L",
    "price": 9.88,
    "quantity": 1,
    "discountPercent": 10,
    "vatIncluded": "N",
    "taxes": [
      {
        "label": "PDV",
        "rate": 25
      },
      {
        "label": "PNP",
        "rate": 3
      }
    ]
  },
  {
    "description": "Club sandwitch",
    "price": 10,
    "quantity": 3,
    "discountPercent": 0,
    "vatIncluded": "Y",
    "taxes": [
      {
        "label": "PDV",
        "rate": 25
      }
    ]
  }
]
Schema
{
  "type": "array - invoice items",
  "items": {
    "type": "object",
    "properties": {
      "id": "int - Invoice item unique identifier",
      "description": "string - Invoice item description",
      "price": "float- invoice item single unit price",
      "quantity": "int - number of invoice items",
      "discountPercentage": "float - invoice item discount",
      "totalPrice": "float  - invoice item total after discount and Vat",
      "taxes": {
        "type": "array - invoice item taxes",
        "items": {
          "type": "object",
          "properties": {
            "label": "string",
            "rate": "float"
          }
        }
      }
    }
  }
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
[
  {
    "description": "Coca cola 0.5L",
    "price": 9.88,
    "quantity": 1,
    "discountPercent": 10,
    "vatIncluded": "N",
    "taxes": [
      {
        "label": "PDV",
        "rate": 25
      },
      {
        "label": "PNP",
        "rate": 3
      }
    ]
  },
  {
    "description": "Club sandwitch",
    "price": 10,
    "quantity": 3,
    "discountPercent": 0,
    "vatIncluded": "Y",
    "taxes": [
      {
        "label": "PDV",
        "rate": 25
      }
    ]
  }
]
Schema
{
  "type": "array - invoice items",
  "items": {
    "type": "object",
    "properties": {
      "id": "int - Invoice item unique identifier",
      "description": "string - Invoice item description",
      "price": "float- invoice item single unit price",
      "quantity": "int - number of invoice items",
      "discountPercentage": "float - invoice item discount",
      "totalPrice": "float  - invoice item total after discount and Vat",
      "taxes": {
        "type": "array - invoice item taxes",
        "items": {
          "type": "object",
          "properties": {
            "label": "string",
            "rate": "float"
          }
        }
      }
    }
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "errors": {
    "quantity": "Validation error on field:quantity, type:int for rules:required()"
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "this property doesn't have exchange rate defined"
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Reservation ID param missing"
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}

Create Invoice Items with smart card in bulk

This endpoint can add multiple invoice items to the first existing draft invoice for some smart card code. If there is no draft invoice for this smart card code on the reservation, the new one will be created.

It behaves almost the same as the endpoint for inserting bulk invoice items. The difference is that it defines the invoice by the guest on the reservation and not by reservation itself as previous two endpoints for creating invoice items.

With this endpoint, it’s possible to create separate invoices for every guest (bearer or additional guests) on the reservation with custom items. The requirement is that smart cards integration is enabled and that guest on the reservation has smart card assigned. Also please take note that this method only works if guest is currently checked-in in property and will not work after check-out has been made.

At one point there can be only one active smart card code in the property.

POST/smart-card/{propertiesId}/{code}/invoices/items/bulk

URI Parameters
HideShow
propertiesId
integer (required) 

ID for property guests is staying in.

code
string (required) 

Code of the smart card that is assigned to the guest on the reservation

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Body
[
  {
    "description": "Coca cola 0.5L",
    "price": 9.88,
    "quantity": 1,
    "discountPercent": 10,
    "vatIncluded": "N",
    "taxes": [
      {
        "label": "PDV",
        "rate": 25
      },
      {
        "label": "PNP",
        "rate": 3
      }
    ]
  },
  {
    "description": "Club sandwitch",
    "price": 10,
    "quantity": 3,
    "discountPercent": 0,
    "vatIncluded": "Y",
    "taxes": [
      {
        "label": "PDV",
        "rate": 25
      }
    ]
  }
]
Schema
{
  "type": "array - invoice items",
  "items": {
    "type": "object",
    "properties": {
      "id": "int - Invoice item unique identifier",
      "description": "string - Invoice item description",
      "price": "float- invoice item single unit price",
      "quantity": "int - number of invoice items",
      "discountPercentage": "float - invoice item discount",
      "totalPrice": "float  - invoice item total after discount and Vat",
      "taxes": {
        "type": "array - invoice item taxes",
        "items": {
          "type": "object",
          "properties": {
            "label": "string",
            "rate": "float"
          }
        }
      }
    }
  }
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
[
  {
    "description": "Coca cola 0.5L",
    "price": 9.88,
    "quantity": 1,
    "discountPercent": 10,
    "vatIncluded": "N",
    "taxes": [
      {
        "label": "PDV",
        "rate": 25
      },
      {
        "label": "PNP",
        "rate": 3
      }
    ]
  },
  {
    "description": "Club sandwitch",
    "price": 10,
    "quantity": 3,
    "discountPercent": 0,
    "vatIncluded": "Y",
    "taxes": [
      {
        "label": "PDV",
        "rate": 25
      }
    ]
  }
]
Schema
{
  "type": "array - invoice items",
  "items": {
    "type": "object",
    "properties": {
      "id": "int - Invoice item unique identifier",
      "description": "string - Invoice item description",
      "price": "float- invoice item single unit price",
      "quantity": "int - number of invoice items",
      "discountPercentage": "float - invoice item discount",
      "totalPrice": "float  - invoice item total after discount and Vat",
      "taxes": {
        "type": "array - invoice item taxes",
        "items": {
          "type": "object",
          "properties": {
            "label": "string",
            "rate": "float"
          }
        }
      }
    }
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "code": 400,
  "errors": {
    "quantity": "Validation error on field:quantity, type:int for rules:required()"
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "this property doesn't have exchange rate defined"
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Smart card code param missing"
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "No invoice items found in request"
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Guest with smart card not found on checked-in reservation"
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}

Sales Channels

Sales Channels section lists all endpoints that are responsible for handling everything related to Sales Channels.

Sales Channels

List all sales channels for property.

GET/properties/{propertiesId}/sales-channels?page={page}&order_by={order_by}&order_direction={order_direction}

URI Parameters
HideShow
propertiesId
integer (required) 

ID of property for which to list sales channels for.

order_by
string (optional) Default: id

Choices: id createdAt

Column to order by

page
string (optional) 

Results page number

order_direction
string (optional) Default: ASC

Choices: ASC DESC

Results ordering

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "data": [
    {
      "id": 96,
      "name": "Private Web Site",
      "provisionAmount": 0
    },
    {
      "id": 189,
      "name": "SomeBookingSite",
      "provisionAmount": 11.55
    }
  ],
  "perPage": 30,
  "total": 2
}
Schema
{
  "type": "object",
  "properties": {
    "total": "integer",
    "perPage": "integer",
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": "integer - unique Sales Channel ID",
          "name": "string - Sales Channel name",
          "provisionAmount": "float - Sales Channel provision amount"
        }
      }
    }
  }
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}

Rate Plans

Rate plans section lists all endpoints that are responsible for handling everything related to rate plans and restrictions.

List All Rate Plans

List all rate plans for property.

GET/properties/{propertiesId}/rates

URI Parameters
HideShow
propertiesId
integer (required) 

ID of property for which to list sales channels for.

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Response  200
HideShow
Headers
Content-Type: application/json
Body
[
  {
    "id": 0,
    "name": "StandardRate",
    "type": {
      "id": 1,
      "name": "Manual"
    },
    "pricingType": {
      "id": 1,
      "name": "Per day"
    },
    "unitTypes": [
      {
        "id": 40,
        "name": "Sea View Apartments"
      },
      {
        "id": 41,
        "name": "Double bed rooms"
      }
    ]
  },
  {
    "id": 1,
    "name": "New Rate",
    "type": {
      "id": 1,
      "name": "Manual"
    },
    "pricingType": {
      "id": 1,
      "name": "Per day"
    },
    "unitTypes": [
      {
        "id": 41,
        "name": "Double bed rooms"
      }
    ]
  },
  {
    "id": 2,
    "name": "Standard plus 10",
    "type": {
      "id": 2,
      "name": "Automatic"
    },
    "parentRateId": 0,
    "pricingType": {
      "id": 2,
      "name": "Per occupancy"
    },
    "derivationType": {
      "id": 2,
      "name": "Percent"
    },
    "derivationValue": 10,
    "unitTypes": [
      {
        "id": 40,
        "name": "Sea View Apartments"
      },
      {
        "id": 41,
        "name": "Double bed rooms"
      }
    ]
  },
  {
    "id": 3,
    "name": "New plus 5 eur",
    "type": {
      "id": 2,
      "name": "Automatic"
    },
    "parentRateId": 1,
    "derivationType": {
      "id": 1,
      "name": "Nominal"
    },
    "derivationValue": 5,
    "unitTypes": [
      {
        "id": 41,
        "name": "Double bed rooms"
      }
    ]
  }
]
Schema
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": "integer - Unique ID",
      "name": "string - rate name",
      "type": {
        "type": "object",
        "properties": {
          "id": "integer - rate type ID",
          "name": "string - rate type name"
        }
      },
      "pricingTypes": {
        "type": "object",
        "properties": {
          "id": "integer - rate pricing type ID",
          "name": "string - rate pricing type name"
        }
      },
      "unitTypes": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "id": "integer - Unique unit type ID",
            "name": "string - unit type name"
          }
        }
      }
    }
  }
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}

List prices and restrictions for unit type rate

Get a list of prices and restrictions for rate on unit type within given time period. Maximum allowed time period span is 2 years.

GET/unit-types/{id}/rates/{ratesId}?dateFrom={dateFrom}&dateTo={dateTo}

URI Parameters
HideShow
id
int (required) 

id for unit type

ratesId
int (required) 

Id for rate to list prices and restrictions for (use 0 for standard rate)

dateFrom
string (required) 

start date in YYYY-mm-dd format. Maximum time distance between dateFrom and dateTo is 2 years.

dateTo
string (required) 

end date in YYYY-mm-dd format. Maximum time distance between dateFrom and dateTo is 2 years.

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Response  200
HideShow
Headers
Content-Type: application/json
Body
[
  {
    "date": "2019-05-20",
    "price": 60,
    "minStay": 2,
    "maxStay": 5,
    "minStayArrival": 3,
    "maxStayArrival": 6,
    "noCheckOut": true,
    "occupancyPrices": [
      {
        "occupancy": 1,
        "price": 50,
        "derivationAmount": -10,
        "derivationType": {
          "id": "N",
          "name": "Nominal"
        }
      },
      {
        "occupancy": 2,
        "price": 60,
        "derivationAmount": 0,
        "derivationType": {
          "id": "N",
          "name": "Nominal"
        }
      },
      {
        "occupancy": 3,
        "price": 66,
        "derivationAmount": 20,
        "derivationType": {
          "id": "P",
          "name": "Percentage"
        }
      }
    ]
  },
  {
    "date": "2019-05-21",
    "price": 60,
    "minStay": 2,
    "maxStay": 5,
    "minStayArrival": 3,
    "maxStayArrival": 6,
    "noCheckOut": true,
    "occupancyPrices": [
      {
        "occupancy": 1,
        "price": 50,
        "derivationAmount": -10,
        "derivationType": {
          "id": "N",
          "name": "Nominal"
        }
      },
      {
        "occupancy": 2,
        "price": 60,
        "derivationAmount": 0,
        "derivationType": {
          "id": "N",
          "name": "Nominal"
        }
      },
      {
        "occupancy": 3,
        "price": 66,
        "derivationAmount": 20,
        "derivationType": {
          "id": "P",
          "name": "Percentage"
        }
      }
    ]
  }
]
Schema
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "date": "string - UTC date in format yyyy-mm-dd that price and restrictions are applied on",
      "price": "float - rate price",
      "minStay": "integer - minimum stay restriction",
      "maxStay": "integer - maximum stay restriction",
      "minStayArrival": "integer - minimum stay arrival restriction",
      "maxStayArrival": "integer - maximum stay arrival restriction",
      "noCheckIn": "boolean - check in restriction",
      "noCheckOut": "boolean - check out restriction",
      "occupancyPrices": {
        "type": "array",
        "description": "these values are only returned for Per Occupancy rate",
        "items": {
          "type": "object",
          "properties": {
            "occupancy": "integer - number of people for which the price is applicable",
            "price": "float - price for occupancy",
            "derivationAmount": "float - amount by which base price is changed for this occupancy - calculation depends on derivationType",
            "derivationType": {
              "type": "object",
              "properties": {
                "id": "string - enum 'P', 'N' - can be either percentage or nominal, depending of this type occupancy price is modified by derivationAmount from base price",
                "name": "string - enum Percentage, Nominal"
              }
            }
          }
        }
      }
    }
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Unit Type ID param missing"
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Rates ID param missing"
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "DateFrom and dateTo params are required"
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "dateFrom must be before dateTo"
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "dateTo must be within 2 years range of dateFrom"
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Rate not found"
}

Update Rate Plan

Update rate plan on unit type.

Updating both price and restrictions is allowed on manual rate plans.

Prices on automatic rates cannot be updated. Doing so will result in an error response.

While mirrored restrictions on automatic rates cannot be directly updated. It's done via parent rate automatically

Limitations:

Only today and future values can be updated.

Restrictions and prices for up to 365 can be updated in single api call.

Per occupancy updates

All occupancy prices are derived from base price. That means that you cannot directly set occupancy price. Instead you need to send for each occupancy it's derivation amount and type (percentage, nominal).

Percentage derivation example: occupancyPrice = basePrice + basePrice * (1 + amount/100)

Nominal derivation example: occupancyPrice = basePrice + amount

If derivation causes price to drop below zero, we save the price as 0.

Mirrored occupancy values on automatic rates cannot be directly updated. It's done via parent rate automatically

POST/unit-types/{unitTypesId}/rates-restrictions/{ratePlansId}

URI Parameters
HideShow
unitTypesId
integer (required) 

ID of unit type on which to update the rate plan on

ratePlansId
integer (required) 

ID of rate plan to update

Request  - Per Day
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Body
{
  "days": [
    {
      "date": "2017-08-10",
      "price": 75,
      "minStay": 2,
      "maxStay": 8,
      "minStayArrival": 3,
      "maxStayArrival": 5,
      "minAdvanceReservation": 48,
      "maxAdvanceReservation": 172,
      "noCheckIn": true,
      "noCheckOut": true,
      "closed": true
    },
    {
      "date": "2017-08-11",
      "minStay": 5
    },
    {
      "date": "2017-08-25",
      "price": 120
    },
    {
      "date": "2017-08-26",
      "price": 120
    },
    {
      "date": "2017-11-01",
      "maxStay": 8
    },
    {
      "date": "2017-11-02",
      "noCheckOut": true
    }
  ]
}
Schema
{
  "type": "object",
  "properties": {
    "days": {
      "type": "array, required - minimum 1, max 365 updates",
      "items": {
        "type": "object",
        "properties": {
          "date": "string, required - ISO format of a day that is updated. Please read limitations on dates that can be updated.",
          "price": "float, optional - on what rate is your unit type rented",
          "minStay": "integer, optional - a Minimum length of stay restriction limits availability by specifying a number of nights that must be booked for stays, including the restriction date in any part of the stay date range.",
          "maxStay": "integer, optional - a Maximum length of stay restriction limits availability by specifying a number of nights that must be booked for stays, including the restriction date in any part of the stay date range.",
          "minStayArrival": "integer, optional - Minimum stay arrival restriction",
          "maxStayArrival": "integer, optional - Maximum stay arrival restriction",
          "minAdvanceReservation": "integer, optional - The minimum number of days and/or hours that guests must book in advance (before the planned check-in date).",
          "maxAdvanceReservation": "integer, optional - The maximum number of days and/or hours that guests must book in advance (before the planned check-in date).",
          "noCheckIn": "boolean, optional - No checkin restriction",
          "noCheckOut": "boolean, optional - No checkout restriction",
          "closed": "boolean, optional - Specifies whether the room is closed (not bookable) on the specified date, for the specified rate."
        }
      }
    }
  }
}
Request  - Per Occupancy
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Body
{
  "days": [
    {
      "date": "2021-05-20",
      "price": 75,
      "minStay": 2,
      "maxStay": 8,
      "minStayArrival": 3,
      "maxStayArrival": 5,
      "minAdvanceReservation": 48,
      "maxAdvanceReservation": 172,
      "noCheckIn": true,
      "noCheckOut": true,
      "closed": true,
      "occupancyValues": [
        {
          "occupancy": 2,
          "amount": -10,
          "type": "N"
        },
        {
          "occupancy": 4,
          "amount": 10,
          "type": "P"
        }
      ]
    },
    {
      "date": "2021-05-21",
      "price": 75,
      "minStay": 2,
      "maxStay": 8,
      "minStayArrival": 3,
      "maxStayArrival": 5,
      "minAdvanceReservation": 48,
      "maxAdvanceReservation": 172,
      "noCheckIn": true,
      "noCheckOut": true,
      "closed": true,
      "occupancyValues": [
        {
          "occupancy": 2,
          "amount": -10,
          "type": "N"
        },
        {
          "occupancy": 4,
          "amount": 10,
          "type": "P"
        }
      ]
    }
  ]
}
Schema
{
  "type": "object",
  "properties": {
    "days": {
      "type": "array, required - minimum 1, max 365 updates",
      "items": {
        "type": "object",
        "properties": {
          "date": "string, required - ISO format of a day that is updated. Please read limitations on dates that can be updated.",
          "price": "float, optional - on what rate is your unit type rented",
          "minStay": "integer, optional - a Minimum length of stay restriction limits availability by specifying a number of nights that must be booked for stays, including the restriction date in any part of the stay date range.",
          "maxStay": "integer, optional - a Maximum length of stay restriction limits availability by specifying a number of nights that must be booked for stays, including the restriction date in any part of the stay date range.",
          "minStayArrival": "integer, optional - Minimum stay arrival restriction",
          "maxStayArrival": "integer, optional - Maximum stay arrival restriction",
          "minAdvanceReservation": "integer, optional - The minimum number of days and/or hours that guests must book in advance (before the planned check-in date).",
          "maxAdvanceReservation": "integer, optional - The maximum number of days and/or hours that guests must book in advance (before the planned check-in date).",
          "noCheckIn": "boolean, optional - No checkin restriction",
          "noCheckOut": "boolean, optional - No checkout restriction",
          "closed": "boolean, optional - Specifies whether the room is closed (not bookable) on the specified date, for the specified rate."
        }
      }
    }
  }
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "Updated days": 6
}
Schema
{
  "type": "object",
  "properties": {
    "Updated Days": "integer - total number of updated days"
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "UnitType ID param missing"
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Rate ID param missing"
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Rate Plan does not exist on this unit type"
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Error updating values to OTA Channels."
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Error updating values"
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Cannot directly update rate with mirrored restrictions"
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}

Webhooks

Webhooks section lists all endpoints that are responsible for handling everything related to Webhooks. Use webhooks to be notified about events that happen in a your Rentlio account.

List All Webhooks

List all webhooks for a user.

GET/webhooks?page={page}&order_by={order_by}&order_direction={order_direction}

URI Parameters
HideShow
page
string (optional) 

Results page number

order_direction
string (optional) Default: ASC

Choices: ASC DESC

Results ordering

order_by
string (optional) Default: id

Choices: id createdAt modifiedAt

Column to order by

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "data": [
    {
      "id": 1,
      "url": "https://mywebhook-hanlder.com/handle-webhook",
      "token": "someToken",
      "numberOfFailures": 0,
      "createdAt": 1621412619,
      "status": "active"
    },
    {
      "id": 2,
      "url": "https://nonexistent-url.com/404",
      "token": "",
      "numberOfFailures": 50,
      "createdAt": 1621414155,
      "status": "suspended"
    }
  ],
  "perPage": 30,
  "total": 2
}
Schema
{
  "type": "object",
  "properties": {
    "total": "integer - total number of items",
    "perPage": "integer - how many items is returned in single page",
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": "string",
          "url": "string",
          "token": "string",
          "numberOfFailures": "integer",
          "createdAt": "integer - UTC unix timestamp",
          "modifiedAt": "integer - UTC unix timestamp",
          "status": "string - (active | suspended)"
        }
      }
    }
  }
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}

Enums

Enums are list of objects used inside other resources, for example reservations statuses. Enum values will be used in other endpoints as values for some fields and that field values will be validated by enum members.

List All Services Payment Types

This endpoint will list all payment types available for use within service

GET/enums/services/payment-types

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Response  200
HideShow
Headers
Content-Type: application/json
Body
[
  {
    "id": 0,
    "name": "None"
  },
  {
    "id": 1,
    "name": "Per Night"
  },
  {
    "id": 2,
    "name": "Per Person"
  },
  {
    "id": 3,
    "name": "Per Adult"
  },
  {
    "id": 4,
    "name": "Per Child Under 12"
  },
  {
    "id": 5,
    "name": "Per Child Above 12"
  },
  {
    "id": 6,
    "name": "Per Child Per Night"
  },
  {
    "id": 7,
    "name": "Fixed"
  },
  {
    "id": 8,
    "name": "Percentage"
  },
  {
    "id": 9,
    "name": "Not Applicable"
  }
]
Schema
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": "integer",
      "name": "string",
    }
  }
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}

List All Reservation Statuses

These are all statuses reservation can be in.

GET/enums/reservations/statuses

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Response  200
HideShow
Headers
Content-Type: application/json
Body
[
  {
    "id": 1,
    "name": "Confirmed"
  },
  {
    "id": 2,
    "name": "Waiting for Approval"
  },
  {
    "id": 3,
    "name": "Refused"
  },
  {
    "id": 4,
    "name": "Accepted"
  },
  {
    "id": 5,
    "name": "Cancelled"
  },
  {
    "id": 6,
    "name": "Deleted with penalty"
  },
  {
    "id": 7,
    "name": "Option"
  }
]
Schema
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": "integer",
      "name": "string",
    }
  }
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}

List All Currencies

Rentlio supports many currencies. For complete list (118 items), call this endpoint.

GET/enums/currencies

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Response  200
HideShow
Headers
Content-Type: application/json
Body
[
  {
    "id": 1,
    "symbol": "€",
    "code": "EUR",
    "name": "Euro"
  },
  {
    "id": 2,
    "symbol": "$",
    "code": "USD",
    "name": "US Dollar"
  },
  {
    "id": 3,
    "symbol": "kn",
    "code": "HRK",
    "name": "Croatian Kuna"
  },
  {
    "id": 4,
    "symbol": "د.إ.‏",
    "code": "AED",
    "name": "United Arab Emirates Dirham"
  },
  {
    "id": 5,
    "symbol": "؋",
    "code": "AFN",
    "name": "Afghan Afghani"
  }
]
Schema
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": "integer",
      "symbol": "string",
      "code": "string",
      "name": "string"
    }
  }
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}

List All Document Types

This endpoint returns all document types an guest can be checked in.

GET/enums/guests/document-types

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Response  200
HideShow
Headers
Content-Type: application/json
Body
[
  {
    "id": 1,
    "name": "Border crossing pass (foreign)"
  },
  {
    "id": 2,
    "name": "Travel documents for refugees issued by RH"
  },
  {
    "id": 3,
    "name": "Other"
  },
  {
    "id": 4,
    "name": "Sailor's booklet (Croatian)"
  },
  {
    "id": 5,
    "name": "Children's passport (foreign)"
  },
  {
    "id": 6,
    "name": "Official passport (Croatian)"
  }
]
Schema
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": "integer",
      "name": "string",
    }
  }
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}

List All Arrival Arrangements

This endpoint returns all arrival arrangements supported for a guest

GET/enums/guests/arrival-arrangements

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Response  200
HideShow
Headers
Content-Type: application/json
Body
[
  {
    "id": 1,
    "name": "Personal"
  },
  {
    "id": 2,
    "name": "Agency (group)"
  }
]
Schema
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": "integer",
      "name": "string",
    }
  }
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}

List All Tourist Tax Categories

This endpoint returns all tourist tax categories

GET/enums/guests/tax-categories

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Response  200
HideShow
Headers
Content-Type: application/json
Body
[
  {
    "id": 1,
    "name": "N - Tourist staying in a property"
  },
  {
    "id": 2,
    "name": "N - Tourist using charter services"
  },
  {
    "id": 3,
    "name": "J - Children: between 12 and 18 years"
  },
  {
    "id": 4,
    "name": "N - Persons up to 29 years: members of international youth association"
  },
  {
    "id": 5,
    "name": "J - Children between 12 and 18 years : charter"
  },
  {
    "id": 6,
    "name": "A - Children: up to 12 years"
  }
]
Schema
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": "integer",
      "name": "string",
    }
  }
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}

List All Provided Service types

This endpoint returns all provided service types.

GET/enums/guests/provided-services-types

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Response  200
HideShow
Headers
Content-Type: application/json
Body
[
  {
    "id": 1,
    "name": "Accommodation"
  }
]
Schema
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": "integer",
      "name": "string",
    }
  }
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}

List All Invoice Types

This endpoint returns all provided invoice types.

GET/enums/invoices/types

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Response  200
HideShow
Headers
Content-Type: application/json
Body
[
  {
    "id": 1,
    "name": "Invoice"
  },
  {
    "id": 2,
    "name": "Proforma"
  },
  {
    "id": 3,
    "name": "Cancellation"
  },
  {
    "id": 4,
    "name": "Offer"
  },
  {
    "id": 5,
    "name": "Deposit"
  },
  {
    "id": 6,
    "name": "Proforma Deposit"
  }
]
Schema
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id'": "integer - unique invoice type ID",
      "name": "string - human readable invoice type name"
    }
  }
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}

List All Countries

This endpoint returns all provided countries.

GET/enums/countries

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Response  200
HideShow
Headers
Content-Type: application/json
Body
[
  {
    "id": 1,
    "code": "US",
    "name": "United States"
  },
  {
    "id": 2,
    "code": "CA",
    "name": "Canada"
  },
  {
    "id": 3,
    "code": "AF",
    "name": "Afghanistan"
  },
  {
    "id": 4,
    "code": "AL",
    "name": "Albania"
  }
]
Schema
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": "integer - unique ID",
      "code": "string - country code",
      "name": "string - country name"
    }
  }
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}

List All Rate Types

This endpoint returns all rate plan types.

GET/enums/rate-plans/types

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Response  200
HideShow
Headers
Content-Type: application/json
Body
[
  {
    "id": 1,
    "name": "Manual"
  },
  {
    "id": 2,
    "name": "Automatic"
  }
]
Schema
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": "integer - unique ID",
      "name": "string - rate type name"
    }
  }
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}

List All Rate Derivation Types

This endpoint returns all rate plan derivation types. Derivation is a way how automatic rates are calculated using its base rate data.

GET/enums/rate-plans/derivation-types

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Response  200
HideShow
Headers
Content-Type: application/json
Body
[
  {
    "id": 1,
    "name": "Nominal"
  },
  {
    "id": 2,
    "name": "Percent"
  }
]
Schema
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": "integer - unique ID",
      "name": "string - rate derivation type name"
    }
  }
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}

List All Rate Pricing Types

This endpoint returns all rate plan pricing types. Pricing type is used to determine how can rate prices be read or updated.

GET/enums/rate-plans/pricing-types

Request
HideShow
Headers
Content-Type: application/json
ApiKey: 32eb16dc070a41d5c5b58d9d3d725be3
Response  200
HideShow
Headers
Content-Type: application/json
Body
[
  {
    "id": 1,
    "name": "Per day"
  },
  {
    "id": 2,
    "name": "Per occupancy"
  }
]
Schema
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": "integer - unique ID",
      "name": "string - rate pricing type name"
    }
  }
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invalid authentication credentials"
}