Referencia · Reservas
Crear una reserva
post/api/v1/reservascon clave
Registra la contratación previa. La reserva queda atribuida al partner de la clave. Devuelve el código de seguimiento.
Con stops, el alta corta: si el régimen de tarifa no admite las paradas, o si una de ellas convierte un tramo del recorrido en un trayecto urbano que la autorización no habilita, contesta 422 con el motivo y no crea nada. El presupuesto informa; esta es la puerta que no se puede saltar.
Parámetros
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| X-Market-Id | header | string | El mercado en el que se presupuesta o reserva (GLO-12): uno de los id de GET /api/mercados. Sin cabecera, el mercado lo decide el dominio por el que se entra, y en los de Castilla-La Mancha es el de casa. Los importes vuelven en la moneda del mercado. Una clave acotada a unos mercados recibe 403 fuera de ellos. |
Cuerpo ReservaPeticion
| Campo | Tipo | Descripción |
|---|---|---|
| fullName * | string | |
| phone * | string | |
| email * | string (email) | |
| originAddress * | string | |
| originMunicipality * | string | |
| destinationAddress * | string | |
| destinationMunicipality * | string | |
| pickupAt * | string | |
| returnAt | string | Vuelta, si se contrata a la vez. Con precio cerrado la vuelta se guarda como otra reserva y las dos se pagan con un solo cobro: la respuesta trae su código en vuelta. |
| passengers | integer | |
| hours | number | Horas contratadas, solo en serviceType DISPOSICION o EVENTO. Con horas el precio sale de la tarifa por hora. |
| luggage | integer | |
| childSeats | integer | |
| pets | boolean | |
| flightNumber | string | |
| notes | string | |
| travelsOther | boolean | Viaja otra persona (huésped, paciente, familiar). Sin mandarlo basta con enviar passengerName o passengerPhone; con false se ignoran los dos. |
| passengerName | string | Nombre de quien viaja, si no es quien contrata. Es el que ve el conductor y el que va en el cartel del aeropuerto. |
| passengerPhone | string | Teléfono de quien viaja: al que llama el conductor y por el que se le avisa. Quien contrata sigue siendo fullName/phone, y suya es la factura. |
| cobroDelCanal | boolean | Solo con una clave con la marca cobra (ADR 0405): el canal cobra al cliente por su cuenta. La reserva nace como pago en línea esperando el cobro, sin pasarela aquí, y se confirma cuando el canal lo comunica en POST /api/v1/reservas/{code}/pago. Sin la marca, 403. |
| paymentMethod | "EFECTIVO" | "TARJETA_A_BORDO" | "TRANSFERENCIA" | "PAGO_ONLINE" | "FACTURA_EMPRESA" | |
| originLat | number | |
| originLng | number | |
| originProvince | string | |
| originRegion | string | |
| destinationLat | number | |
| destinationLng | number | |
| destinationProvince | string | |
| destinationRegion | string | |
| stops | Parada[] | Las mismas paradas que en el presupuesto. Si no caben en el régimen que rige el trayecto, o si una de ellas convierte un tramo en urbano, el alta contesta 422 y no crea la reserva. |
| privacyAccepted * | boolean | Consentimiento del pasajero, obligatorio (RGPD) |
* obligatorio
Respuestas
201Reserva creada400Datos incompletos401Clave no válida409Horario no disponible422Trayecto fuera de ámbito, o paradas que no caben. El cuerpo llevaerrorcon el motivo y, cuando son las paradas,stops.codeystops.reason: el código del régimen de tarifa (precio_cerrado,fuera_del_municipio,sin_precio_de_espera) ofuera_de_ambitocuando una parada convierte un tramo del recorrido en un trayecto que la autorización no habilita, y entoncesstops.legdice cuál.
Qué hacer con cada error: errores, límites y reintentos.
Ejemplos
La clave va en la variable de entorno RIDELTA_API_KEY, nunca escrita en el código.
cURL
JavaScript (fetch)
Python (requests)
PHP (cURL)