Saltar al contenido principal

API-hoteles-v2


api reservaciones

⛓️ Empieza aquí

HOTELES API v1.0 incluye todos los recursos, endpoints y métodos que permiten la integración con la aplicación de hoteles.

La API bajo prueba incluye puntos finales para registrar, obtener acomodaciones, obtener canales, obtener plan de precios web, y obtener habitaciones disponibles y crear reservaciones con el plan de precios web:

  • POST /get_channels
  • POST /get_rate_plan
  • POST /available_for_web

POST: get_channels

Esto retorna la lista de canales disponibles para el hotel.

/search

Body (raw)

{
"model": "hotel.channel",
"domain": [] ,
"fields_names": ["name", "code"],
"order": [],
"limit": null,
"offset": 0,
"context": {
"user": 3,
"company": 1,
"currency": 35,
"session": TOKEN,
"db": "BASE DE DATOS"
}
}

POST: get_rate_plan

Esto retorna el id del plan o lista de precios usado para la web y que se usará para consultar en la siguiente petición para ver la disponibilidad de habitaciones.

/search

Body (raw)

{
"model": "hotel.rate_plan",
"domain": [["kind", "=", "web"]] ,
"fields_names": ["id", "name"],
"order": [],
"limit": 1,
"offset": 0,
"context": {
"user": 3,
"company": 1,
"currency": 35,
"session": TOKEN,
"db": "BASE DE DATOS"
}
}

POST: available_for_web

Esto retorna la lista de habitaciones disponibles con sus precios para la fecha consultada. Recibe tres argumentos: fecha de entrada, fecha de salida, y el tercero es opcional.

/method

Body (raw)

{
"model": "hotel.room",
"method": "available_for_web",
"args": ["2024-04-11", "2024-04-13", null],
"context": {
"user": 3,
"company": 1,
"currency": 35,
"session": TOKEN,
"db": "BASE DE DATOS"
}
}

POST: buscar tercero si existe y traer datos

/search

Body (raw)

{
"model": "party.party",
"domain": [
[
"id_number",
"=",
"1102370001"
]
],
"fields_names": [
"name",
"id"
],
"context": {
"user": 3,
"company": 1,
"currency": 35,
"session": TOKEN,
"db": "BASE DE DATOS"
}
}

POST: crear tercero

/create

Body (raw)

{
"model": "party.party",
"fields_names": null,
"ids": [null],
"context": {
"user": 3,
"company": 1,
"currency": 35,
"session": TOKEN,
"db": "BASE DE DATOS"
},
"record": {
"id": null,
"name": "NOMBRE TERCERO",
"id_number": "111111111",
"type_document": 13,
"contact_mechanisms": [
[
"create",
[
{
"type": "mobile",
"value": "#NUMERO"
},
{
"type": "email",
"value": "#CORREO"
}
]
]
]
}
}

POST: crear reservación

/create

Body (raw)

{
"model": "hotel.booking",
"record": {
"bill_to": "holder",
"lines": [
[
"create",
[
{
"registration_state": "pending",
"product": 3,
"unit_price": 246350,
"room": 2,
"arrival_date": "2024-11-01",
"departure_date": "2024-11-05",
"num_adults": 1,
"num_children": 0,
"unit_price_w_tax": 295860
}
]
]
],
"booking_date": "2024-10-02 17:35:59",
"meal_plan": 2,
"contact": "Nombre opcional",
"state": "offer",
"channel": 4,
"party": 1500,
"payment_term": 12,
"notes": "",
"taxes_exception": true,
"rate_plan": 1,
"price_list": 2
},
"context": {
"user": 3,
"company": 1,
"currency": 35,
"session": TOKEN,
"db": "BASE DE DATOS"
},
"fields_names": ["id"]
}

Tipos de documento

const TYPE_DOC = [
{ id: "13", name: "cedula_de_ciudadania" },
{ id: "41", name: "pasaporte" },
{ id: "12", name: "tarjeta_de_identidad" },
{ id: "21", name: "tarjeta_de_extranjeria" },
{ id: "22", name: "cedula_de_extranjeria" }
];