¿Vienes de otro sistema de reservas? Un mes gratis mientras migras a Tourandi, con nuestra ayuda.Ver cómo →

Ir al contenido

Desarrolladores

API de reservas y widget para tu web

Incrusta tu página de reservas con una línea de código o construye tu propio proceso de compra con la API pública de Tourandi: catálogo, disponibilidad, precios y reservas confirmadas contra el aforo real.

  • Una línea para el widget
  • Claves publicables por dominio
  • Feeds iCal de solo lectura
index.html
<script src="https://app.tourandi.com/embed.js" data-slug="tu-empresa" async></script>

Widget de reservas

Tu página de reservas en tu web, en una línea

El script inserta un iframe justo donde lo pegas y mantiene su altura sincronizada con el contenido, así que no hay barras de desplazamiento ni alturas que adivinar. No tiene dependencias y funciona en cualquier web que admita HTML.

Tu código ya personalizado está en el panel, en Ajustes › Reservas online. Desde allí también ajustas colores y textos con el editor visual.

Atributos

data-slug
Obligatorio. El identificador de tu empresa en Tourandi.
data-tour
Muestra un solo tour en lugar de todo el catálogo.
data-ref
Código de un guía: las reservas que lleguen por este widget se le atribuyen.
data-lang
Fuerza el idioma de la página en lugar de dejar que el visitante elija.
data-consent
«granted» o «denied»: el consentimiento de cookies de tu web. Sin él, el widget no carga Google Analytics, Tag Manager ni el píxel de Meta.

Tras el pago, el widget puede llevar al cliente a tu propia página de agradecimiento (solo https), configurada en tus ajustes.

Guía completa del widget

Lo mínimo

HTML
<script src="https://app.tourandi.com/embed.js" data-slug="tu-empresa" async></script>

Un tour concreto, en inglés y con consentimiento

HTML
<script  src="https://app.tourandi.com/embed.js"  data-slug="tu-empresa"  data-tour="ID_DEL_TOUR"  data-lang="en"  data-consent="denied"  async></script>

Si tu gestor de cookies cambia después

JS
// cuando el visitante acepta las cookies de marketingwindow.Tourandi.setConsent("granted");

API pública de reservas

Construye tu propio proceso de compra con la API pública

La API pública expone lo que necesita una web de reservas: el catálogo, la disponibilidad con plazas libres, el precio de un carrito y la reserva confirmada. Todo bajo /api/v1/public/tu-empresa.

Claves publicables

Creas las claves en el panel (propietarios y administradores). Empiezan por pk_ y se pueden usar en el navegador porque no son secretas: solo funcionan con tu empresa y desde los orígenes que autorices.

  • Envía la clave en la cabecera X-Tourandi-Key
  • Hasta 20 orígenes por clave; sin orígenes, solo servidor a servidor
  • Rota o revoca una clave en un clic, y queda en el registro de actividad

Endpoints principales

MétodoRutaPara qué sirve
GET/companyDatos de la empresa, marca y políticas
GET/toursTours activos con sus opciones y tipos de entrada
GET/categoriesCategorías, para filtros o pestañas
GET/availabilitySalidas de una opción con plazas libres (hasta 62 días)
POST/quotePrecio de un carrito: temporada, descuento automático y código promocional
POST/promo-codes/checkComprueba un código promocional antes de reservar
POST/gift-vouchers/checkComprueba un bono regalo y su saldo
POST/bookingsCrea la reserva, confirmada contra el aforo real
GET/bookings/{reference}Consulta una reserva con su token de acceso

Reservar sin duplicados ni sobreventa

Cada reserva exige una cabecera Idempotency-Key: si la petición se repite con la misma clave, recibes la misma reserva en lugar de una nueva. La reserva pasa por la misma comprobación de aforo que el panel, así que nunca se confirma por encima del límite de venta, aunque lleguen varias a la vez. Si no se puede reservar, la respuesta 409 dice por qué: completo, fuera de plazo, cerrado o bajo petición.

Gestión por el cliente

Con el token de acceso que devuelve la reserva (y que llega en el email de confirmación), el cliente puede consultar su reserva, descargar el bono con QR, cambiar sus datos, la fecha o el número de personas, o cancelar, siempre dentro de los plazos que tú configuras.

Disponibilidad de una opción

BASH
# TOURANDI_API: la URL base de la API de Tourandicurl "$TOURANDI_API/api/v1/public/tu-empresa/availability?optionId=OPTION_ID&from=2026-11-01&to=2026-11-30" \  -H "X-Tourandi-Key: pk_…"

Crear una reserva

BASH
curl -X POST "$TOURANDI_API/api/v1/public/tu-empresa/bookings" \  -H "X-Tourandi-Key: pk_…" \  -H "Idempotency-Key: checkout-7f3a9c" \  -H "Content-Type: application/json" \  -d '{    "departureId": "DEPARTURE_ID",    "items": [{ "ticketTypeId": "ADULT_ID", "quantity": 2 }],    "customer": { "name": "Emma Johnson", "email": "emma@example.com" },    "payment": "now"  }'

La API está descrita en OpenAPI. Si vas a integrarla, escríbenos y te pasamos la referencia completa, con todos los campos y respuestas.

Pedir la referencia de la API

Feeds de calendario

Tus salidas en cualquier calendario

Los feeds iCal son URL secretas de solo lectura a las que se suscriben Google Calendar, Apple Calendar u Outlook. Se actualizan solos y se revocan cuando quieras.

  • Feeds de empresa: todas las salidas, o filtradas por destino o tour
  • Feed personal de cada guía, con sus asignaciones en todas sus empresas
  • Cada evento lleva tour, hora, punto de encuentro, plazas reservadas y guías
  • Nunca incluyen datos personales de los clientes

¿Y los webhooks?

Hoy Tourandi no envía webhooks a sistemas externos. Si necesitas que otro sistema se entere de cada reserva, cuéntanoslo: nos ayuda a decidir qué eventos exponer primero.

Preguntas frecuentes

Dudas de desarrolladores

Lo que suele preguntar un equipo técnico antes de integrar Tourandi.

¿Es seguro poner la clave publicable en el código de mi web?

Sí, para eso está pensada. Una clave publicable solo sirve para la API pública de tu empresa y, desde el navegador, solo funciona en los orígenes que autorices al crearla. No da acceso al panel ni a datos de otros clientes: cada reserva queda protegida por su propio token de acceso. Si una clave se filtra, la rotas o la revocas en un clic.

¿Qué diferencia hay entre el widget y la API?

El widget es la página de reservas de Tourandi dentro de tu web: lista en minutos, con tu marca, pagos y emails incluidos. La API es para construir tu propio proceso de compra con tu diseño: consultas tours, disponibilidad y precios, y creas la reserva tú. Muchas empresas empiezan con el widget y pasan a la API cuando lo necesitan.

¿Cómo evito reservas duplicadas si el cliente pulsa dos veces?

Cada petición de reserva lleva una cabecera Idempotency-Key. Si la misma petición llega dos veces con la misma clave, la API devuelve la reserva ya creada en lugar de crear otra. Además, la reserva se confirma dentro de una transacción que bloquea la salida, así que el aforo nunca se supera aunque lleguen varias peticiones a la vez.

¿Se pueden cobrar las reservas hechas por la API?

Sí. Si tu empresa tiene una pasarela conectada, la reserva puede pedir el pago en el momento: la respuesta incluye la URL de la página de pago o los datos para un formulario integrado, y las plazas quedan retenidas mientras el cliente paga. También puedes dejar el pago para más tarde, por transferencia o el día del tour.

¿Tourandi tiene webhooks?

Todavía no enviamos webhooks a sistemas externos. Para tener tus salidas en otro calendario puedes usar los feeds iCal, y para consultar reservas desde tu sistema, la API. Si necesitas eventos en tiempo real, escríbenos y cuéntanos el caso: nos ayuda a priorizar.

Empieza a vender más con menos trabajo

Hablemos de tu operación

Cuéntanos qué tours vendes y cómo trabajas hoy. Te respondemos en un día laborable con lo que Tourandi puede hacer por ti y un precio a tu medida.

Escríbenos

Prefiero verlo antes con alguien

Te enseñamos Tourandi con tus propios tours, resolvemos tus dudas y vemos juntos cómo migrar desde tu sistema actual.

Reservar una demo