# Modulo de Reservas

[![image.png](https://v4.docs.airvi.com.co/uploads/images/gallery/2025-11/scaled-1680-/NYUopV7oKjhSpDfR-image.png)](https://v4.docs.airvi.com.co/uploads/images/gallery/2025-11/NYUopV7oKjhSpDfR-image.png)

El módulo de Reservas devuelve las reservas asociadas a cada cliente, filtradas por su identificador o por estados de reservas y fechas

> 💡 **Nota:**  
> Actualmente, las consultas devuelven únicamente las **reservas del cliente titular**.  
> Si desea incluir pasajeros no titulares, consulte con el equipo técnico de Airvi si esta opción está habilitada en su instancia.

#### **Consultar reservas por ID** 

**Ruta:**

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-get-%7Bbase_url%7D%2Fapi%2Fp"><div class="overflow-y-auto p-4" dir="ltr">`GET {BASE_URL}/api/public_api/clients/{<span class="hljs-built_in">id</span>}/reservations`</div></div>**Parámetros disponibles:**

<div class="_tableContainer_1rjym_1" id="bkmrk-par%C3%A1metro-descripci%C3%B3"><div class="group _tableWrapper_1rjym_13 flex w-fit flex-col-reverse" tabindex="-1"><table class="w-fit min-w-(--thread-content-width)" data-end="7294" data-start="7056"><thead data-end="7083" data-start="7056"><tr data-end="7083" data-start="7056"><th data-col-size="sm" data-end="7068" data-start="7056">Parámetro</th><th data-col-size="sm" data-end="7083" data-start="7068">Descripción</th></tr></thead><tbody data-end="7294" data-start="7113"><tr data-end="7194" data-start="7113"><td data-col-size="sm" data-end="7160" data-start="7113" style="text-align: justify;">`assignment_date_from`, `assignment_date_to`</td><td data-col-size="sm" data-end="7194" data-start="7160" style="text-align: justify;">Fecha de asignación del viaje.</td></tr><tr data-end="7250" data-start="7195"><td data-col-size="sm" data-end="7230" data-start="7195" style="text-align: justify;">`trip_date_from`, `trip_date_to`</td><td data-col-size="sm" data-end="7250" data-start="7230" style="text-align: justify;">Fecha del viaje.</td></tr><tr data-end="7294" data-start="7251"><td data-col-size="sm" data-end="7268" data-start="7251" style="text-align: justify;">`skip`, `take`</td><td data-col-size="sm" data-end="7294" data-start="7268" style="text-align: justify;">Control de paginación.</td></tr></tbody></table>

</div></div>**Pasos:**

1. Reemplace `{id}` por el ID del cliente.
2. Escriba las fechas en formato `YYYY-MM-DD`.
3. Envíe la petición.
4. Verifique que el resultado sea **200 OK**.
5. Si no hay registros, el sistema devolverá un arreglo vacío en `data.items`.

---

#### **Consultar reservas**

**Función:**  
Devuelve un **listado paginado de reservaciones** que puede ser filtrado según diferentes criterios operativos.

**Ruta:**

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-get-%7Bbase_url%7D%2Fapi%2Fp-1"><div class="overflow-y-auto p-4" dir="ltr">`<span class="hljs-type">GET</span> {<span class="hljs-type">BASE_URL</span>}<span class="hljs-regexp">/api/</span><span class="hljs-keyword">public</span><span class="hljs-operator">/</span>reservations`</div></div>**Descripción general:**  
Esta función retorna una lista de reservaciones aplicando los siguientes **filtros opcionales**:

- **Rango de fechas del viaje:** `trip_date_from`, `trip_date_to`
- **Rango de fechas de asignación:** `assignation_date_from`, `assignation_date_to`
- **Estado de la reserva:** `confirmado`, `borrador`, `cancelado`
- **Estado del pago:** `pagado`, `impagado`, `abonado`

**Datos incluidos por cada reserva:**

- Identificadores de la reserva (**ID** y **UUID**)
- Moneda y valores financieros (**total a pagar**, **monto pendiente**, **abonado**)
- Fecha de asignación
- Información del viaje (**nombre**, **fecha**, **estado**)
- Estado actual de la reserva y del pago

**Comportamiento de la respuesta:**

- Los resultados se devuelven **paginados** mediante los parámetros `skip` y `take`.
- El listado se **ordena automáticamente por la fecha del viaje en orden descendente**.
- Si ocurre un error durante la consulta, la API retorna un mensaje con estado **`INTERNAL_ERROR`** e incluye el campo `trace_id` para seguimiento técnico.