Skip to content
Iniciar sesión
Veridien Docs

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 /property

Devuelve 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
}
CampoTipoNotas
idstringIdentificador del establecimiento.
slugstringSlug de URL.
namestringNombre visible.
currencystringLa moneda base del establecimiento (ISO 4217).
timezonestringZona horaria IANA, usada para el "hoy" de las ventanas de tarifas.
child_max_ageintegerLos huéspedes con esta edad o menos se tarifican como niños.
infant_max_ageintegerLos 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 consultaObligatorioNotas
check_inYYYY-MM-DD.
check_outYYYY-MM-DD, posterior a check_in. Las estancias se limitan a 30 noches.
adultsEntero ≥ 1.
childrennoEntero ≥ 0, por defecto 0.
child_agesnoEdades 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 consultaObligatorioNotas
check_inYYYY-MM-DD.
check_outYYYY-MM-DD, posterior a check_in.
adultsEntero ≥ 1.
childrennoEntero ≥ 0, por defecto 0.
child_agesnoEdades 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_idnoDesbloquea las tarifas específicas de un huésped (residente local verificado, nivel de fidelidad).
promo_codenoDesbloquea 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:

CampoTipoNotas
totalstringEl total de la estancia con todo el precio aplicado, incluidos los impuestos exclusivos. Coincide con el total del bloqueo.
room_subtotalstringSuma de las tarifas por noche antes de los ajustes por ocupación y de los impuestos.
base_occupancyintegerHuéspedes incluidos en la tarifa base; por encima se aplica el precio por huésped adicional.
extra_guest_chargestringEl cargo por noche de la tarifa por cada huésped que supere base_occupancy.
single_occupancy_discountstringDescuento total aplicado cuando el grupo es de una sola persona.
extra_guest_totalstringSuplemento total por huéspedes adicionales en toda la estancia.
taxes_totalstringTotal de los impuestos exclusivos que se suman a total. Los impuestos inclusivos no se cuentan aquí.
tax_breakdownarrayLí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 consultaObligatorioNotas
categorynoDevuelve 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": []
    }
  ]
}
CampoTipoNotas
idstringIdentificador del servicio, referenciado como service_id en los add_ons de un bloqueo.
namestringNombre visible.
categorystring | nullEtiqueta de categoría que usa el filtro ?category=.
provider_namestring | nullEl proveedor que presta el servicio.
image_urlstring | nullImagen comercial.
short_descriptionstring | nullDescripción de una línea.
currencystringMoneda del precio; por defecto, la moneda base del establecimiento.
is_taxablebooleanSi al extra se le aplican impuestos.
modifiersarrayLas 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.

  • Reservas: convierte una tarifa en un bloqueo y en una reserva confirmada.
  • Tarifas: cómo se configuran las tarifas y los intervalos de temporada.