Establecimiento y catálogo
Los endpoints de catálogo son de solo lectura y describen lo que puedes vender: el establecimiento en sí, sus tipos de habitación, la disponibilidad en tiempo real y las tarifas que un huésped puede reservar.
GET /propertyDevuelve los metadatos del establecimiento al que está vinculada la clave. Puede llamarlo cualquier clave autenticada.
curl "$VRDN_BASE/property" -H "Authorization: Bearer $VRDN_KEY"{
"id": "p_8f2a1c",
"slug": "sunrise-bay",
"name": "Sunrise Bay Resort",
"currency": "USD",
"timezone": "Pacific/Fiji",
"child_max_age": 12,
"infant_max_age": 2
}| Campo | Tipo | Notas |
|---|---|---|
id | string | Identificador del establecimiento. |
slug | string | Slug de URL. |
name | string | Nombre visible. |
currency | string | La moneda base del establecimiento (ISO 4217). |
timezone | string | Zona horaria IANA, usada para el "hoy" de las ventanas de tarifas. |
child_max_age | integer | Los huéspedes con esta edad o menos se tarifican como niños. |
infant_max_age | integer | Los huéspedes con esta edad o menos se tarifican como bebés. |
GET /room-typesÁmbito: availability:read
Todos los tipos de habitación con sus datos comerciales: descripción, ocupación, equipamiento, configuraciones de cama y fotos (la principal primero).
curl "$VRDN_BASE/room-types" -H "Authorization: Bearer $VRDN_KEY"{
"data": [
{
"id": "9b2f6c3e-8d1a-4f5b-a7c9-4e0d2b8f1a63",
"name": "Deluxe Ocean Villa",
"description": "A private villa over the lagoon.",
"max_occupancy": 3,
"currency": "USD",
"amenities": ["Ocean view", "Private deck"],
"bed_configs": [{ "id": "bc_king", "label": "1 King" }],
"photos": ["https://cdn.veridien.app/p_8f2a1c/deluxe-1.jpg"]
}
]
}GET /availabilityÁmbito: availability:read
El número mínimo de habitaciones disponibles en todas las noches del rango, por tipo de habitación. Solo se devuelven los tipos de habitación cuya max_occupancy admite al grupo.
| Parámetro de consulta | Obligatorio | Notas |
|---|---|---|
check_in | sí | YYYY-MM-DD. |
check_out | sí | YYYY-MM-DD, posterior a check_in. Las estancias se limitan a 30 noches. |
adults | sí | Entero ≥ 1. |
children | no | Entero ≥ 0, por defecto 0. |
child_ages | no | Edades de los niños separadas por comas (p. ej. 5,7). |
curl "$VRDN_BASE/availability?check_in=2026-08-01&check_out=2026-08-04&adults=2" \
-H "Authorization: Bearer $VRDN_KEY"{
"check_in": "2026-08-01",
"check_out": "2026-08-04",
"data": [
{
"room_type_id": "9b2f6c3e-8d1a-4f5b-a7c9-4e0d2b8f1a63",
"name": "Deluxe Ocean Villa",
"description": "A private villa over the lagoon.",
"max_occupancy": 3,
"available": 4,
"currency": "USD",
"amenities": ["Ocean view", "Private deck"],
"bed_configs": [{ "id": "bc_king", "label": "1 King" }],
"photos": ["https://cdn.veridien.app/p_8f2a1c/deluxe-1.jpg"]
}
]
}available es el número de habitaciones que todavía puedes reservar. 0 significa que está agotado al menos una noche del rango.
GET /ratesÁmbito: availability:read
Cada tipo de habitación con sus tarifas visibles y el desglose de precio por noche para el rango. Es el endpoint que dibuja un motor de reservas.
| Parámetro de consulta | Obligatorio | Notas |
|---|---|---|
check_in | sí | YYYY-MM-DD. |
check_out | sí | YYYY-MM-DD, posterior a check_in. |
adults | sí | Entero ≥ 1. |
children | no | Entero ≥ 0, por defecto 0. |
child_ages | no | Edades de los niños separadas por comas (p. ej. 5,7). Cuando está presente manda sobre el número de niños y determina los precios por tramo de edad. |
guest_id | no | Desbloquea las tarifas específicas de un huésped (residente local verificado, nivel de fidelidad). |
promo_code | no | Desbloquea las tarifas sujetas a código promocional. |
La visibilidad se aplica en el servidor
Las tarifas pueden llevar reglas: solo residentes locales, requiere un código promocional, estancia mínima, ventana de compra anticipada o un nivel de fidelidad. La API las evalúa contra el contexto de la petición y devuelve solo las tarifas para las que el huésped es elegible. Las mismas reglas se vuelven a comprobar al crear un bloqueo, así que una tarifa que nunca se mostró no se puede reservar por su identificador.
curl "$VRDN_BASE/rates?check_in=2026-08-01&check_out=2026-08-04&adults=2&promo_code=SUMMER" \
-H "Authorization: Bearer $VRDN_KEY"{
"check_in": "2026-08-01",
"check_out": "2026-08-04",
"data": [
{
"room_type_id": "9b2f6c3e-8d1a-4f5b-a7c9-4e0d2b8f1a63",
"name": "Deluxe Ocean Villa",
"description": "A private villa over the lagoon.",
"max_occupancy": 3,
"base_occupancy": 2,
"amenities": ["Ocean view", "Private deck"],
"bed_configs": [{ "id": "bc_king", "label": "1 King" }],
"photos": ["https://cdn.veridien.app/p_8f2a1c/deluxe-1.jpg"],
"rate_plans": [
{
"rate_plan_id": "5c1e8f4a-2b7d-4a9c-8e6f-1d3b9a5c7e02",
"name": "Flexible",
"currency": "USD",
"total": "1260.00",
"room_subtotal": "1260.00",
"base_occupancy": 2,
"extra_guest_charge": "0.00",
"single_occupancy_discount": "0.00",
"extra_guest_total": "0.00",
"taxes_total": "0.00",
"tax_breakdown": [
{ "title": "GST", "amount": "135.00", "is_inclusive": true, "rate": "12", "kind": "percent" }
],
"nightly_rates": [
{ "date": "2026-08-01", "day_of_week": 6, "rate": "420.00", "source": "base_price" },
{ "date": "2026-08-02", "day_of_week": 0, "rate": "420.00", "source": "base_price" },
{ "date": "2026-08-03", "day_of_week": 1, "rate": "420.00", "source": "base_price" }
]
}
]
}
]
}Cada tarifa por noche informa de su source: interval cuando un intervalo de temporada fijó el precio de ese día, o base_price cuando se recurrió al precio base de la tarifa.
El tipo de habitación lleva base_occupancy (el número de huéspedes incluidos antes de que se aplique el precio por huésped adicional) y sus bed_configs. Cada tarifa informa de un desglose de precio completo:
| Campo | Tipo | Notas |
|---|---|---|
total | string | El total de la estancia con todo el precio aplicado, incluidos los impuestos exclusivos. Coincide con el total del bloqueo. |
room_subtotal | string | Suma de las tarifas por noche antes de los ajustes por ocupación y de los impuestos. |
base_occupancy | integer | Huéspedes incluidos en la tarifa base; por encima se aplica el precio por huésped adicional. |
extra_guest_charge | string | El cargo por noche de la tarifa por cada huésped que supere base_occupancy. |
single_occupancy_discount | string | Descuento total aplicado cuando el grupo es de una sola persona. |
extra_guest_total | string | Suplemento total por huéspedes adicionales en toda la estancia. |
taxes_total | string | Total de los impuestos exclusivos que se suman a total. Los impuestos inclusivos no se cuentan aquí. |
tax_breakdown | array | Líneas por cargo: title, amount, is_inclusive, rate, kind. Las líneas incluidas se muestran por transparencia y no suman a total. |
Como el mismo motor de cargos calcula el precio del bloqueo, este total siempre es igual al total que recibes de POST /holds.
GET /servicesÁmbito: availability:read
Extras reservables por el huésped (por ejemplo, un traslado al aeropuerto) para el paso "Añade a tu habitación" de un motor de reservas. Devuelve solo los servicios activos y reservables por el huésped, con sus modifiers (las opciones y los campos de datos que rellena el huésped). Pasa ?category= para filtrar por categoría.
| Parámetro de consulta | Obligatorio | Notas |
|---|---|---|
category | no | Devuelve solo los servicios de esta categoría (por ejemplo, transport). |
curl "$VRDN_BASE/services?category=transport" -H "Authorization: Bearer $VRDN_KEY"{
"data": [
{
"id": "f1c8e5a3-6b2d-4c9f-8a7e-3d0b5c2f6e94",
"name": "Airport transfer",
"category": "transport",
"provider_name": "Harbour Transfers",
"image_url": "https://cdn.veridien.app/p_8f2a1c/transfer.jpg",
"short_description": "Private speedboat from the international airport.",
"currency": "USD",
"is_taxable": true,
"modifiers": []
}
]
}| Campo | Tipo | Notas |
|---|---|---|
id | string | Identificador del servicio, referenciado como service_id en los add_ons de un bloqueo. |
name | string | Nombre visible. |
category | string | null | Etiqueta de categoría que usa el filtro ?category=. |
provider_name | string | null | El proveedor que presta el servicio. |
image_url | string | null | Imagen comercial. |
short_description | string | null | Descripción de una línea. |
currency | string | Moneda del precio; por defecto, la moneda base del establecimiento. |
is_taxable | boolean | Si al extra se le aplican impuestos. |
modifiers | array | Las opciones y los campos de datos (selectores con precio, campos de fecha y hora o de texto) que aporta el huésped al añadirlo a un bloqueo. |
Añade un servicio elegido a una reserva mediante el campo add_ons de POST /holds.