shell ruby python javascript java php go

Introducción

Bienvenido al sitio web de documentación del Channel Manager de Sensación Rural.

Puedes usar el API para acceder a todas las funcionalidades del sistema, pensadas para facilitar el control y la gestión de las reservas y disponibilidad de sus propiedades.

El API usa la arquitectura REST, que nos permite ofrecer el servicio de una manera estándar, comprensible y con URL’s orientadas a recursos. Usamos las funcionalidades que nos ofrece HTTP (Autenticación HTTP, verbos para expresar las acciones y códigos de respuesta) y como formato de respuesta usamos JSON por ser uno de los más extendidos y de mejor lectura.

Autenticación

Para autenticarte con nuestra API necesitas enviarnos el token como parte de la cabecera de las peticiones.

La asignación del token es por usuario, por lo que una aplicación cliente puede tener permisos para acceder sólo a los datos de sus propiedades

La cabecera que comprobamos es X-AUTH-TOKEN. En caso de que no esté incluída o sea errónea, será devuelto un error 403.

Limite de peticiones

El limite de peticiones que aceptamos son 750 peticiones cada 5 minutos.

Este limite puede ser cambiado en el futuro, pero en todo caso mantendremos un limite que permita hacer un uso responsable del API y que se ajuste a los casos de uso de los usuarios.

Headers de la respuesta:

Nombre Descripción
X-RateLimit-Limit Numero de petición actual.
X-RateLimit-Remaining Peticiones restantes para el bloque actual.
X-RateLimit-Reset Fecha y hora de fin de este bloque de peticiones (Formato epoch).

Suggest

get


curl --request GET \
  --url /api/suggest

  • Resumen: Obtendremos las entidades (alojamientos, localidades, provincias, zonas) que coinciden con el GET de la siguiente.
  • Parámetros obligatorios en la URL:
Nombre Descripción
query Es una cadena por la que el usuario va a realizar la búsqueda
  • Detalle de la respuesta:

Nombre Descripción
name Es nombre de la entidad
type Tipo de entidad: "A" Alojamiento, "P" Provincia, "L" Localidad, "Z" Zona

Disponibilidad

/reservations/:bookable_unit_id

get


curl --request GET \
  --url /api/reservations:id

  • Resumen: Obtendremos las reservas activas que existen actualmente el channel manager para esa unidad reservable. Si añadimos las fechas el servicio nos devuelve las reservas activas entre las fechas correspondientes

  • Parámetros opcionales en la URL:
Nombre Descripción
start Es una fecha con formato Y-m-d
end Es una fecha con formato Y-m-d

/availability/:bookable_unit_id

get


curl --request GET \
  --url /api/availability/:bookable_unit_id

  • Resumen: Obtendremos información de si una unidad reservable esta disponible para unas fechas seleccionadas. Ademas si la unidad reservable no esta disponible se añaden las reservas activas durantes las fechas.

  • Parámetros obligatorios en la URL:
Nombre Descripción
start Es una fecha con formato Y-m-d
end Es una fecha con formato Y-m-d
  • Detalle de la respuesta:

Nombre Descripción
available Nos indica si la unidad reservable esta disponibile para las fechas solicitadas
reservations Se muestra si la unidad reservable no esta disponible y lista las reservas existentes entre las fechas seleccionadas

/availability

get


curl --request GET \
  --url /api/availability

  • Resumen: Obtendremos las propiedades activas que tienen unidades alojativas disponibles el channel manager para unas determinadas fechas

  • Parámetros obligatorios en la URL:
Nombre Descripción
start Es una fecha con formato Y-m-d
end Es una fecha con formato Y-m-d

  • Parámetros opcionales en la URL:
Nombre Descripción
entidad_id Identificador de la entidad administrativa

Alojamientos

/accommodations

get


curl --request GET \
  --url /api/accommodations

  • Resumen: Obtiene una lista de alojamientos del usuario que solicita

post


curl --request POST \
  --url /api/accommodations \
  --data '{"description":"<ADD STRING VALUE>","annotations":"<ADD STRING VALUE>","date":"<ADD STRING VALUE>","serie":"<ADD STRING VALUE>","tags":["<ADD STRING VALUE>"],"issued":false,"number":0,"customer":0,"footer":"Configuración del usuario.","irm":"Configuración del usuario.","accommodations_lines":[{"quantity":0,"concept":"<ADD STRING VALUE>","amount":0,"discount":0,"tax":0,"surcharge":0,"retention":0}],"charges":[{"date":"<ADD STRING VALUE>","amount":0,"method":"cash","destination_account":0,"origin_account":"<ADD STRING VALUE>","charged":false}]}'

  • Resumen: Añadir un alojamiento.
  • Parametros obligatorios en la petición:
Nombre Descripción
name string Nombre identificativo del alojamiento
  • Parametros opcionales en la petición:
Nombre Descripción
name_translate array Nombre en diferentes idiomas
Es un array en el que la key es el código ISO del pais
description array Descripciones en diferentes idiomas
Es un array en el que la key es el código ISO del pais
web string Url de la web de la propiedad
images array Es un array con las url de las imágenes del alojamiento
location string Dirección del alojamiento
administrative_entity_id integer Identificador de la entidad administrativa en la que se localiza el alojamiento
latitude string
longitude string
phone_1 string Teléfono público del alojamiento
phone_2 string Teléfono público del alojamiento
email string Correo eléctronico público del alojamiento
environment string Situación del alojamiento
advance_id integer Tipo de anticipo 1: % , 2: €, 3: Noches
advance_num float Cantidad relacionada con el parámetro type
booking_conditions array Condiciones de reserva en diferentes idiomas
Es un array en el que la key es el código ISO del pais
facilities array Características o instalaciones del alojamiento

/accommodations/:id

get


curl --request GET \
  --url /api/accommodations/:id

  • Resumen: Obtener el alojamiento que corresponde con el id pasado como parámetro.

put


curl --request PUT \
  --url /api/accommodations/:id

  • Resumen: Actualizar un alojamiento.
  • Descripción: Adicionalmente a los campos de accommodations_lines y de charges detallados en el link de la tabla se añade un nuevo campo opcional id
    Comportamiento esperado de lineas y cobros en la actualización de facturas.
    * Si contiene el campo id se actualizarán los datos de esa linea o cobro.
    * Si no contiene el campo id se creará una nueva linea o cobro.
    * Todos los id’s de lineas y cobros que no estén presentes en el objeto que se recibe como parámetro serán eliminados.
  • Parametros obligatorios en la petición:
Nombre Descripción
issued boolean Este parámetro define si es un borrador o una factura emitida.
customer integer Id del cliente al que se emite la factura.
accommodations_lines array Lineas de factura
charges array Cobros
Detalle:
La suma de los cobros debe ser igual que el total de la factura.
  • Parametros opcionales en la petición:
Nombre Descripción
description string
annotations string
date string Fecha de facturación
Formato: yyyy-MM-dd
Debe ser superior o igual a la fecha de la ultima factura emitida ese año con la misma serie, si no se envía fecha se usará la fecha de la petición.
serie string Nombre de la serie de facturación, si no se envía se creará en la serie de facturación por defecto.
tags array Las etiquetas que quieres que se asignen a la factura.
Si no existen se crearán.
number integer Número de factura
Si es la primera factura del año y de la serie se cogerá este como el primer numero de factura.
Si ya existe una factura con la misma serie y se envía este parametro la petición fallará si no es el que le correspondería.
footer string Pie de factura por defecto del usuario, que configuró en su panel de administración.
irm string Campo IRM por defecto del usuario para las facturas, que configuró en su panel de administración.

  • Detalle de la respuesta:

Nombre Descripción
business.business_name Este campo solo se devuelve si el tipo de la empresa no es individual
business.name Este campo solo se devuelve cuando el tipo de la empresa es individual
business.surname_1 Este campo solo se devuelve cuando el tipo de la empresa es individual
business.surname_2 Este campo solo se devuelve cuando el tipo de la empresa es individual
charges.origin_account_number Este campo se devuelve dependiendo delmétodoo de pago
charges.origin_account_description Este campo se devuelve dependiendo delmétodoo de pago
accommodations_lines.surcharge Este campo se devuelve si la linea de factura tiene recargo

delete


curl --request DELETE \
  --url /api/accommodations/:id

  • Resumen: Eliminar un alojamiento.

  • Respuesta: Status 200

Unidades Alojativas

/accommodation-units

get


curl --request GET \
  --url /api/accommodation-units

  • Resumen: Obtiene una lista de alojamientos del usuario que solicita

post


curl --request POST \
  --url /api/accommodation-units \
  --data '{"description":"<ADD STRING VALUE>","annotations":"<ADD STRING VALUE>","date":"<ADD STRING VALUE>","serie":"<ADD STRING VALUE>","tags":["<ADD STRING VALUE>"],"issued":false,"number":0,"customer":0,"footer":"Configuración del usuario.","irm":"Configuración del usuario.","accommodation-units_lines":[{"quantity":0,"concept":"<ADD STRING VALUE>","amount":0,"discount":0,"tax":0,"surcharge":0,"retention":0}],"charges":[{"date":"<ADD STRING VALUE>","amount":0,"method":"cash","destination_account":0,"origin_account":"<ADD STRING VALUE>","charged":false}]}'

  • Resumen: Añadir un alojamiento.
  • Parametros obligatorios en la petición:
Nombre Descripción
name string Nombre identificativo del alojamiento
  • Parametros opcionales en la petición:
Nombre Descripción
name_translate array Nombre en diferentes idiomas
Es un array en el que la key es el código ISO del pais
description array Descripciones en diferentes idiomas
Es un array en el que la key es el código ISO del pais
web string Url de la web de la propiedad
images array Es un array con las url de las imágenes del alojamiento
location string Dirección del alojamiento
administrative_entity_id integer Identificador de la entidad administrativa en la que se localiza el alojamiento
latitude string
longitude string
phone_1 string Teléfono público del alojamiento
phone_2 string Teléfono público del alojamiento
email string Correo eléctronico público del alojamiento
environment string Situación del alojamiento
advance_id integer Tipo de anticipo 1: % , 2: €, 3: Noches
advance_num float Cantidad relacionada con el parámetro type
booking_conditions array Condiciones de reserva en diferentes idiomas
Es un array en el que la key es el código ISO del pais
facilities array Características o instalaciones del alojamiento

/accommodation-units/:id

get


curl --request GET \
  --url /api/accommodation-units/:id

  • Resumen: Obtener el alojamiento que corresponde con el id pasado como parámetro.

put


curl --request PUT \
  --url /api/accommodation-units/:id

  • Resumen: Actualizar un alojamiento.
  • Descripción: Adicionalmente a los campos de accommodation-units_lines y de charges detallados en el link de la tabla se añade un nuevo campo opcional id
    Comportamiento esperado de lineas y cobros en la actualización de facturas.
    * Si contiene el campo id se actualizarán los datos de esa linea o cobro.
    * Si no contiene el campo id se creará una nueva linea o cobro.
    * Todos los id’s de lineas y cobros que no estén presentes en el objeto que se recibe como parámetro serán eliminados.
  • Parametros obligatorios en la petición:
Nombre Descripción
issued boolean Este parámetro define si es un borrador o una factura emitida.
customer integer Id del cliente al que se emite la factura.
accommodation-units_lines array Lineas de factura
charges array Cobros
Detalle:
La suma de los cobros debe ser igual que el total de la factura.
  • Parametros opcionales en la petición:
Nombre Descripción
description string
annotations string
date string Fecha de facturación
Formato: yyyy-MM-dd
Debe ser superior o igual a la fecha de la ultima factura emitida ese año con la misma serie, si no se envía fecha se usará la fecha de la petición.
serie string Nombre de la serie de facturación, si no se envía se creará en la serie de facturación por defecto.
tags array Las etiquetas que quieres que se asignen a la factura.
Si no existen se crearán.
number integer Número de factura
Si es la primera factura del año y de la serie se cogerá este como el primer numero de factura.
Si ya existe una factura con la misma serie y se envía este parametro la petición fallará si no es el que le correspondería.
footer string Pie de factura por defecto del usuario, que configuró en su panel de administración.
irm string Campo IRM por defecto del usuario para las facturas, que configuró en su panel de administración.

  • Detalle de la respuesta:

Nombre Descripción
business.business_name Este campo solo se devuelve si el tipo de la empresa no es individual
business.name Este campo solo se devuelve cuando el tipo de la empresa es individual
business.surname_1 Este campo solo se devuelve cuando el tipo de la empresa es individual
business.surname_2 Este campo solo se devuelve cuando el tipo de la empresa es individual
charges.origin_account_number Este campo se devuelve dependiendo delmétodoo de pago
charges.origin_account_description Este campo se devuelve dependiendo delmétodoo de pago
accommodation-units_lines.surcharge Este campo se devuelve si la linea de factura tiene recargo

delete


curl --request DELETE \
  --url /api/accommodation-units/:id

  • Resumen: Eliminar un alojamiento.

  • Respuesta: Status 200

Reservas

/reservations

get


curl --request GET \
  --url /api/reservations

  • Resumen: Obtiene una lista de alojamientos del usuario que solicita

post


curl --request POST \
  --url /api/reservations \
  --data '{"description":"<ADD STRING VALUE>","annotations":"<ADD STRING VALUE>","date":"<ADD STRING VALUE>","serie":"<ADD STRING VALUE>","tags":["<ADD STRING VALUE>"],"issued":false,"number":0,"customer":0,"footer":"Configuración del usuario.","irm":"Configuración del usuario.","reservations_lines":[{"quantity":0,"concept":"<ADD STRING VALUE>","amount":0,"discount":0,"tax":0,"surcharge":0,"retention":0}],"charges":[{"date":"<ADD STRING VALUE>","amount":0,"method":"cash","destination_account":0,"origin_account":"<ADD STRING VALUE>","charged":false}]}'

  • Resumen: Añadir un alojamiento.
  • Parametros obligatorios en la petición:
Nombre Descripción
name string Nombre identificativo del alojamiento
  • Parametros opcionales en la petición:
Nombre Descripción
name_translate array Nombre en diferentes idiomas
Es un array en el que la key es el código ISO del pais
description array Descripciones en diferentes idiomas
Es un array en el que la key es el código ISO del pais
web string Url de la web de la propiedad
images array Es un array con las url de las imágenes del alojamiento
location string Dirección del alojamiento
administrative_entity_id integer Identificador de la entidad administrativa en la que se localiza el alojamiento
latitude string
longitude string
phone_1 string Teléfono público del alojamiento
phone_2 string Teléfono público del alojamiento
email string Correo eléctronico público del alojamiento
environment string Situación del alojamiento
advance_id integer Tipo de anticipo 1: % , 2: €, 3: Noches
advance_num float Cantidad relacionada con el parámetro type
booking_conditions array Condiciones de reserva en diferentes idiomas
Es un array en el que la key es el código ISO del pais
facilities array Características o instalaciones del alojamiento

/reservations/:id

get


curl --request GET \
  --url /api/reservations/:id

  • Resumen: Obtener el alojamiento que corresponde con el id pasado como parámetro.

put


curl --request PUT \
  --url /api/reservations/:id

  • Resumen: Actualizar un alojamiento.
  • Descripción: Adicionalmente a los campos de reservations_lines y de charges detallados en el link de la tabla se añade un nuevo campo opcional id
    Comportamiento esperado de lineas y cobros en la actualización de facturas.
    * Si contiene el campo id se actualizarán los datos de esa linea o cobro.
    * Si no contiene el campo id se creará una nueva linea o cobro.
    * Todos los id’s de lineas y cobros que no estén presentes en el objeto que se recibe como parámetro serán eliminados.
  • Parametros obligatorios en la petición:
Nombre Descripción
issued boolean Este parámetro define si es un borrador o una factura emitida.
customer integer Id del cliente al que se emite la factura.
reservations_lines array Lineas de factura
charges array Cobros
Detalle:
La suma de los cobros debe ser igual que el total de la factura.
  • Parametros opcionales en la petición:
Nombre Descripción
description string
annotations string
date string Fecha de facturación
Formato: yyyy-MM-dd
Debe ser superior o igual a la fecha de la ultima factura emitida ese año con la misma serie, si no se envía fecha se usará la fecha de la petición.
serie string Nombre de la serie de facturación, si no se envía se creará en la serie de facturación por defecto.
tags array Las etiquetas que quieres que se asignen a la factura.
Si no existen se crearán.
number integer Número de factura
Si es la primera factura del año y de la serie se cogerá este como el primer numero de factura.
Si ya existe una factura con la misma serie y se envía este parametro la petición fallará si no es el que le correspondería.
footer string Pie de factura por defecto del usuario, que configuró en su panel de administración.
irm string Campo IRM por defecto del usuario para las facturas, que configuró en su panel de administración.

  • Detalle de la respuesta:

Nombre Descripción
business.business_name Este campo solo se devuelve si el tipo de la empresa no es individual
business.name Este campo solo se devuelve cuando el tipo de la empresa es individual
business.surname_1 Este campo solo se devuelve cuando el tipo de la empresa es individual
business.surname_2 Este campo solo se devuelve cuando el tipo de la empresa es individual
charges.origin_account_number Este campo se devuelve dependiendo delmétodoo de pago
charges.origin_account_description Este campo se devuelve dependiendo delmétodoo de pago
reservations_lines.surcharge Este campo se devuelve si la linea de factura tiene recargo

delete


curl --request DELETE \
  --url /api/reservations/:id

  • Resumen: Eliminar un alojamiento.

  • Respuesta: Status 200

Otras Entidades

Políticas de cancelación

Descripción del objeto: Volver

Nombre del campo Descripción Obligatorio
type
integer
Día sobre el que se calculará la política
1. Día de entrada al alojamiento
2. Día de creación de la reserva
true
days
integer
Número de días a sumar o restar del día sobre el que se calculará la política true
additional_policy
array
Políticas adicionales en diferentes idiomas
Es un array en el que la key es el código ISO del pais
false

Extras de Unidades Alojativas

Descripción del objeto: Volver

Nombre del campo Descripción Obligatorio
name
string
Nombre identificador del extra true
name_translate
array
Traducciones del nombre identificador del extra false
description
array
Traducciones del nombre identificador del extra false
start
date
Fecha de inicio desde la que el extra afecta a la unidad de alojamiento false
end
date
Fecha de fin hasta que el extra afecta a la unidad de alojamiento false
price
float
Precio por noche de Domingo a Jueves para la capacidad mínima (minimum_capacity) false
price_type
float
Precio por noche de Viernes y Sábado para la capacidad mínima (minimum_capacity) false
required
boolean
false

Temporadas de Unidades Alojativas

Descripción del objeto: Volver

Nombre del campo Descripción Obligatorio
name
string
Nombre identificador del extra true
name_translate
array
Traducciones del nombre identificador del extra false
description
array
Traducciones del nombre identificador del extra false
start
date
Fecha de inicio desde la que el extra afecta a la unidad de alojamiento false
end
date
Fecha de fin hasta que el extra afecta a la unidad de alojamiento false
price
float
Precio por noche de Domingo a Jueves para la capacidad mínima (minimum_capacity) false
price_type
float
Precio por noche de Viernes y Sábado para la capacidad mínima (minimum_capacity) false
required
boolean
false

Tarifas especiales de Unidades Alojativas

Descripción del objeto: Volver

Nombre del campo Descripción Obligatorio
name
string
Nombre identificador del extra true
name_translate
array
Traducciones del nombre identificador del extra false
description
array
Traducciones del nombre identificador del extra false
start
date
Fecha de inicio desde la que el extra afecta a la unidad de alojamiento false
end
date
Fecha de fin hasta que el extra afecta a la unidad de alojamiento false
price
float
Precio por noche de Domingo a Jueves para la capacidad mínima (minimum_capacity) false
price_type
float
Precio por noche de Viernes y Sábado para la capacidad mínima (minimum_capacity) false
required
boolean
false