# API de consulta de datos



# Descripción del módulo

La **API Pública de Airvi** permite consultar información registrada en el sistema (clientes, reservas, pagos y reembolsos) desde sistemas externos o integraciones de terceros.  
Este módulo está diseñado para ofrecer acceso **seguro, controlado y auditable** a los datos del sistema sin necesidad de acceso directo a la base de datos.

Cada consulta genera un identificador único de rastreo (`trace_id`), útil para seguimiento de errores o solicitudes de soporte.  
El acceso se gestiona mediante **claves (tokens)** que se generan desde el panel administrativo de Airvi.

##### **Acceso al módulo**

[![WhatsApp Image 2025-11-04 at 8.04.21 AM.jpeg](https://v4.docs.airvi.com.co/uploads/images/gallery/2025-11/scaled-1680-/XHkWgNZUJ0b9XDsI-whatsapp-image-2025-11-04-at-8-04-21-am.jpeg)](https://v4.docs.airvi.com.co/uploads/images/gallery/2025-11/XHkWgNZUJ0b9XDsI-whatsapp-image-2025-11-04-at-8-04-21-am.jpeg)

1. Ingrese a su cuenta de **Airvi** con un usuario con permisos administrativos.
2. Diríjase a la sección **Parametrización → Claves (API Pública)**.
3. hacer clic en **“Añadir clave”**.
4. Colocar un nombre a la clave
5. Haga clic en **“Guardar”**.
6. Copie el **token** generado.
    
    [![Api publica.png](https://v4.docs.airvi.com.co/uploads/images/gallery/2025-11/scaled-1680-/wqeeLFikw63upxUY-api-publica.png)](https://v4.docs.airvi.com.co/uploads/images/gallery/2025-11/wqeeLFikw63upxUY-api-publica.png)

> ⚠️ **Importante:**  
> Guarde este token en un lugar seguro. Es necesario incluirlo en el encabezado de cada solicitud a la API. En caso de perdida o que ya no este funcionando, debes regenerar la clave API de nuevo.
> 
> Ejemplo de encabezado:
> 
> <div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary"><div class="overflow-y-auto p-4" dir="ltr">`Authorization: Bearer {TOKEN}`</div></div>

####  **Acceso a la documentación técnica**

1. Abra el navegador e ingrese la siguiente dirección:
    
    <div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary"><div class="overflow-y-auto p-4" dir="ltr">`{BASE_URL}/public/docs/ Siendo BASE_URL la URL de la plataforma`  
    </div><div class="overflow-y-auto p-4" dir="ltr">`Ejemplo: https://airvi-api.rpmarketing.com.co/public/docs#/`</div></div>
2. En esta interfaz podrá visualizar los diferentes **endpoints disponibles**, sus **parámetros**, ejemplos de uso y **respuestas esperadas**.
3. Puede ejecutar peticiones directamente desde el navegador, siempre que haya autenticado con su token.

> 📝 **Nota:**  
> La ruta incluye un guion medio entre “docs” y “api”. Es decir: **`docs-api`**, no “docsapi”.

#### **Autenticación y seguridad**

Todas las consultas se realizan mediante un **token de autenticación** generado desde Airvi. El token se envía en el encabezado HTTP de la petición.

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

**Ejemplo de encabezado:**

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-authorization%3A-beare"><div class="overflow-y-auto p-4" dir="ltr">`<span class="hljs-section">Authorization: Bearer 1234abcd5678efgh</span>`</div></div>#### **Estructura de las respuestas**

Cada respuesta de la API tiene una estructura estándar:

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

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-%7B-%C2%A0-%22status%22%3A-%22succe"><div class="overflow-y-auto p-4" dir="ltr">  
  
</div></div>- **status:** indica si la consulta fue exitosa (`success`) o falló (`fail`).
- **errors:** lista de errores o validaciones.
- **data.items:** contiene la información solicitada.
- **trace\_id:** identificador único para auditoría y soporte técnico.

> 💡 **Consejo:**  
> Si una consulta falla o devuelve resultados vacíos, conserve el `trace_id` y compártalo con el área de soporte para una revisión más rápida.

---

#### **Parámetros generales**

La mayoría de endpoints utilizan los siguientes parámetros de consulta (query):

<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="3583" data-start="3227"><thead data-end="3278" data-start="3227"><tr data-end="3278" data-start="3227"><th data-col-size="sm" data-end="3239" data-start="3227" style="text-align: justify;">Parámetro</th><th data-col-size="md" data-end="3253" data-start="3239" style="text-align: justify;">Descripción</th><th data-col-size="sm" data-end="3267" data-start="3253" style="text-align: justify;">Obligatorio</th><th data-col-size="sm" data-end="3278" data-start="3267" style="text-align: justify;">Formato</th></tr></thead><tbody data-end="3583" data-start="3335"><tr data-end="3402" data-start="3335"><td data-col-size="sm" data-end="3344" data-start="3335" style="text-align: justify;">`take`</td><td data-col-size="md" data-end="3378" data-start="3344" style="text-align: justify;">Cantidad de registros a mostrar</td><td data-col-size="sm" data-end="3385" data-start="3378" style="text-align: justify;">✅ Sí</td><td data-col-size="sm" data-end="3402" data-start="3385" style="text-align: justify;">Número entero</td></tr><tr data-end="3498" data-start="3403"><td data-col-size="sm" data-end="3412" data-start="3403" style="text-align: justify;">`skip`</td><td data-col-size="md" data-end="3474" data-start="3412" style="text-align: justify;">Cantidad de registros a omitir antes de iniciar la búsqueda</td><td data-col-size="sm" data-end="3481" data-start="3474" style="text-align: justify;">❌ No</td><td data-col-size="sm" data-end="3498" data-start="3481" style="text-align: justify;">Número entero</td></tr><tr data-end="3583" data-start="3499"><td data-col-size="sm" data-end="3524" data-start="3499" style="text-align: justify;">`date_from`, `date_to`</td><td data-col-size="md" data-end="3560" data-start="3524" style="text-align: justify;">Rango de fechas según el endpoint</td><td data-col-size="sm" data-end="3567" data-start="3560" style="text-align: justify;">❌ No</td><td data-col-size="sm" data-end="3583" data-start="3567" style="text-align: justify;">`YYYY-MM-DD`</td></tr></tbody></table>

</div></div>> ⚠️ **Importante:**  
> Incluso si realiza una consulta por un único registro, debe incluir el parámetro `take`.  
> Ejemplo: `take=1`

# Página nueva



# Módulo de Monedas

El módulo de **Monedas (Currencies)** permite acceder al listado de divisas configuradas dentro del sistema, junto con su información básica y su estado operativo.  
Mantiene la misma estructura de autenticación, paginación y respuesta estándar que los demás módulos públicos de la API.

#### **Obtener listado paginado de monedas**

**Función:** Obtiene un listado paginado de monedas registradas en el sistema, permitiendo filtrarlas por estado (activo / inactivo).

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

**Parámetros**

<div class="_tableContainer_1rjym_1" id="bkmrk-par%C3%A1metro-tipo-oblig"><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="1797" data-start="1496"><thead data-end="1544" data-start="1496"><tr data-end="1544" data-start="1496"><th data-col-size="sm" data-end="1508" data-start="1496">Parámetro</th><th data-col-size="sm" data-end="1515" data-start="1508">Tipo</th><th data-col-size="sm" data-end="1529" data-start="1515">Obligatorio</th><th data-col-size="sm" data-end="1544" data-start="1529">Descripción</th></tr></thead><tbody data-end="1797" data-start="1593"><tr data-end="1662" data-start="1593"><td class="align-left" data-col-size="sm" data-end="1611" data-start="1593">filters\[status\]</td><td class="align-left" data-col-size="sm" data-end="1620" data-start="1611">string</td><td class="align-left" data-col-size="sm" data-end="1625" data-start="1620">No</td><td class="align-left" data-col-size="sm" data-end="1662" data-start="1625">Estado de la moneda. Ej: `activo`</td></tr><tr data-end="1728" data-start="1663"><td data-col-size="sm" data-end="1670" data-start="1663">skip</td><td data-col-size="sm" data-end="1680" data-start="1670">integer</td><td data-col-size="sm" data-end="1685" data-start="1680">No</td><td data-col-size="sm" data-end="1728" data-start="1685">Cantidad de registros a omitir. Ej: `0`</td></tr><tr data-end="1797" data-start="1729"><td data-col-size="sm" data-end="1736" data-start="1729">take</td><td data-col-size="sm" data-end="1746" data-start="1736">integer</td><td data-col-size="sm" data-end="1751" data-start="1746">Sí</td><td data-col-size="sm" data-end="1797" data-start="1751">Cantidad de registros a retornar. Ej: `10`</td></tr></tbody></table>

</div></div>**Pasos para ejecutar la consulta**

1. Ingrese a: `{BASE_URL}/api/public/v1/currencies`
2. Busque la sección **currencies → Listado paginado de monedas**.
3. Si lo necesita, aplique filtros como `status=activo`.
4. En el parámetro **take**, indique cuántos registros desea obtener.
5. Pulse **“Enviar petición”**.
6. Si la consulta es exitosa, recibirá un **200 OK** con el listado de monedas.
7. Si ocurre un problema interno, la API responderá con **500 INTERNAL\_ERROR**.

# Módulo de Clientes

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

El módulo de Clientes permite acceder a la información registrada de los clientes del sistema, ya sea de forma general (listado) o específica (por ID o por documento).

#### **Consultar listado de clientes**

**Función:** obtener una lista paginada de clientes con sus datos básicos.

**Ruta:** `<span class="sl-text-muted" dir="ltr">https://{Base_URL}/api/public</span><span class="sl-flex-1 sl-font-semibold">/v1/clients</span>`

**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="4438" data-start="4133" style="width: 100%; height: 164.458px;"><thead data-end="4160" data-start="4133"><tr data-end="4160" data-start="4133" style="height: 37.6806px;"><th data-col-size="sm" data-end="4145" data-start="4133" style="width: 49.9471%; height: 37.6806px; text-align: justify;">Parámetro</th><th data-col-size="md" data-end="4160" data-start="4145" style="width: 49.9471%; height: 37.6806px; text-align: justify;">Descripción</th></tr></thead><tbody data-end="4438" data-start="4190"><tr data-end="4250" data-start="4190" style="height: 37.6944px;"><td data-col-size="sm" data-end="4199" data-start="4190" style="width: 49.9471%; height: 37.6944px; text-align: justify;">`take`</td><td data-col-size="md" data-end="4250" data-start="4199" style="width: 49.9471%; height: 37.6944px; text-align: justify;">Cantidad de registros a retornar (obligatorio).</td></tr><tr data-end="4295" data-start="4251" style="height: 29.6944px;"><td data-col-size="sm" data-end="4260" data-start="4251" style="width: 49.9471%; height: 29.6944px; text-align: justify;">`skip`</td><td data-col-size="md" data-end="4295" data-start="4260" style="width: 49.9471%; height: 29.6944px; text-align: justify;">Cantidad de registros a omitir.</td></tr><tr data-end="4375" data-start="4296" style="height: 29.6944px;"><td data-col-size="sm" data-end="4330" data-start="4296" style="width: 49.9471%; height: 29.6944px; text-align: justify;">`birthday_from` y `birthday_to`</td><td data-col-size="md" data-end="4375" data-start="4330" style="width: 49.9471%; height: 29.6944px; text-align: justify;">Rango de fechas de nacimiento (opcional).</td></tr><tr data-end="4438" data-start="4376" style="height: 29.6944px;"><td data-col-size="sm" data-end="4386" data-start="4376" style="width: 49.9471%; height: 29.6944px; text-align: justify;">`ids[]`</td><td data-col-size="md" data-end="4438" data-start="4386" style="width: 49.9471%; height: 29.6944px; text-align: justify;">Lista de identificadores específicos (opcional).</td></tr></tbody></table>

</div></div>**Pasos para ejecutar la consulta:**

1. Ingrese a `{BASE_URL}/docs/api`.
2. Busque la sección **Clientes → Obtiene un listado paginado de clientes con sus datos básicos**
3. En el campo `take`, escriba la cantidad de registros que desea obtener (por ejemplo, `10`).
4. Si desea filtrar, puede agregar `birthday_from` y `birthday_to` en formato `YYYY-MM-DD`.
5. Pulse **“Enviar petición”**.
6. Verifique la respuesta.  
    Si todo está correcto, obtendrá un código **200 OK** con los datos solicitados.

**Ejemplo de respuesta:**

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

#### **Consultar cliente por ID**

**Función:** obtener los datos completos de un cliente específico usando su identificador.

**Ruta:** `<span class="sl-text-muted" dir="ltr">https://{Base_URL}/api/public</span><span class="sl-flex-1 sl-font-semibold">/v1/clients/{id}</span>`

**Pasos:**

<div class="overflow-y-auto p-4" dir="ltr" id="bkmrk-en-el-campo-de-la-ru">1. En el campo de la ruta, reemplace `{id}` por el número de identificación del cliente (por ejemplo, `2200`).
2. Agregue el parámetro `take=1`.
3. Envíe la petición.
4. Si el cliente existe, recibirá un código **200 OK**.
5. Si el cliente no existe, obtendrá un **404 Not Found**.

</div>**Ejemplo de solicitud:**

<div class="overflow-y-auto p-4" dir="ltr" id="bkmrk-get-%2Fapi%2Fpublic_api%2F"><div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary"><div class="overflow-y-auto p-4" dir="ltr">`<span class="hljs-type">GET</span> <span class="hljs-regexp">/api/</span>public_api<span class="hljs-regexp">/clients/</span><span class="hljs-number">2200</span><span class="hljs-operator">?</span>take<span class="hljs-operator">=</span><span class="hljs-number">1</span>`</div></div></div>**Ejemplo de respuesta:**

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

<div class="overflow-y-auto p-4" dir="ltr" id="bkmrk-%7B%C2%A0-%22status%22%3A-%22succes"><div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary"><div class="overflow-y-auto p-4" dir="ltr">  
</div></div></div>#### **Consultar cliente por documento**

**Función:** buscar un cliente utilizando su número de documento.

**Ruta:** `<span class="hljs-type">GET</span> {<span class="hljs-type">BASE_URL</span>}<span class="hljs-regexp">/api/</span>public_api<span class="hljs-regexp">/clients/</span>by_identification<span class="hljs-operator">/</span>{document}`

**Pasos:**

<div class="overflow-y-auto p-4" dir="ltr" id="bkmrk-sustituya-%7Bdocument%7D">1. Sustituya `{document}` por el número del documento (por ejemplo, `103968949`).
2. Presione **“Enviar petición”**.
3. Verifique el código de estado:
    
    
    - **200 OK:** el cliente fue encontrado.
    - **404 Not Found:** no existe ningún cliente con ese documento.

</div>#### **Módulo de Reservas**

El módulo de Reservas devuelve las reservas asociadas a cada cliente, filtradas por su identificador o por su documento.

> 💡 **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 de cliente**

**Ruta:** `GET {BASE_URL}/api/public_api/clients/{<span class="hljs-built_in">id</span>}/reservations`

**Parámetros disponibles:**

<div class="_tableContainer_1rjym_1" id="bkmrk-par%C3%A1metro-descripci%C3%B3-1"><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" style="text-align: justify;">Parámetro</th><th data-col-size="sm" data-end="7083" data-start="7068" style="text-align: justify;">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 por número de documento del cliente.**

**Ruta:** `<span class="hljs-type">GET</span> {<span class="hljs-type">BASE_URL</span>}<span class="hljs-regexp">/api/</span>public_api<span class="hljs-regexp">/clients/</span>by_identification<span class="hljs-regexp">/{document}/</span>reservations`

**Uso:**  
Permite consultar las reservas asociadas a un cliente a través de su número de documento.

**Ejemplo:**

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-get-%2Fapi%2Fpublic_api%2F-1"><div class="overflow-y-auto p-4" dir="ltr">`<span class="hljs-type">GET</span> <span class="hljs-regexp">/api/</span>public_api<span class="hljs-regexp">/clients/</span>by_identification<span class="hljs-regexp">/2034/</span>reservations<span class="hljs-operator">?</span>take<span class="hljs-operator">=</span><span class="hljs-number">5</span>`</div></div>[![image.png](https://v4.docs.airvi.com.co/uploads/images/gallery/2025-10/scaled-1680-/KicwzS5LFxkDoMmc-image.png)](https://v4.docs.airvi.com.co/uploads/images/gallery/2025-10/KicwzS5LFxkDoMmc-image.png)

<div class="overflow-y-auto p-4" dir="ltr" id="bkmrk--4"></div>

# Módulo de Ubicaciones

El módulo de **Ubicaciones (Locations)** permite acceder al listado de sedes o lugares registrados en el sistema. Este módulo también utiliza la misma estructura de autenticación, paginación y respuesta estándar de la API pública.

#### **Consultar listado paginado de ubicaciones**

**Función:** Obtiene un listado de ubicaciones con sus datos básicos, permitiendo aplicar filtros como ciudad, país o estado, además de paginar los resultados.

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

**Parámetros**

<div class="_tableContainer_1rjym_1" id="bkmrk-par%C3%A1metro-tipo-oblig"><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="1971" data-start="1542"><thead data-end="1590" data-start="1542"><tr data-end="1590" data-start="1542"><th data-col-size="sm" data-end="1554" data-start="1542">Parámetro</th><th data-col-size="sm" data-end="1561" data-start="1554">Tipo</th><th data-col-size="sm" data-end="1575" data-start="1561">Obligatorio</th><th data-col-size="sm" data-end="1590" data-start="1575">Descripción</th></tr></thead><tbody data-end="1971" data-start="1639"><tr data-end="1711" data-start="1639"><td class="align-left" data-col-size="sm" data-end="1655" data-start="1639">filters\[city\]</td><td class="align-left" data-col-size="sm" data-end="1664" data-start="1655">string</td><td class="align-left" data-col-size="sm" data-end="1669" data-start="1664">No</td><td class="align-left" data-col-size="sm" data-end="1711" data-start="1669">Ciudad de la ubicación. Ej: *San José*</td></tr><tr data-end="1787" data-start="1712"><td data-col-size="sm" data-end="1731" data-start="1712">filters\[country\]</td><td data-col-size="sm" data-end="1740" data-start="1731">string</td><td data-col-size="sm" data-end="1745" data-start="1740">No</td><td data-col-size="sm" data-end="1787" data-start="1745">País de la ubicación. Ej: *Costa Rica*</td></tr><tr data-end="1860" data-start="1788"><td data-col-size="sm" data-end="1806" data-start="1788">filters\[status\]</td><td data-col-size="sm" data-end="1815" data-start="1806">string</td><td data-col-size="sm" data-end="1820" data-start="1815">No</td><td data-col-size="sm" data-end="1860" data-start="1820">Estado de la ubicación. Ej: *activo*</td></tr><tr data-end="1914" data-start="1861"><td data-col-size="sm" data-end="1868" data-start="1861">skip</td><td data-col-size="sm" data-end="1878" data-start="1868">integer</td><td data-col-size="sm" data-end="1883" data-start="1878">No</td><td data-col-size="sm" data-end="1914" data-start="1883">Registros a omitir. Ej: 0</td></tr><tr data-end="1971" data-start="1915"><td data-col-size="sm" data-end="1922" data-start="1915">take</td><td data-col-size="sm" data-end="1932" data-start="1922">integer</td><td data-col-size="sm" data-end="1937" data-start="1932">Sí</td><td data-col-size="sm" data-end="1971" data-start="1937">Registros a retornar. Ej: *10*</td></tr></tbody></table>

</div></div>**Pasos para ejecutar la consulta**

1. Ingrese a: `{BASE_URL}/api/public/v1/locations`
2. Busque la sección **locations → Listado de ubicaciones**.
3. Si desea filtrar, complete los campos:
    
    
    - Ciudad
    - País
    - Estado
    - skip
    - take (obligatorio)
4. Pulse **“Enviar petición”**.
5. Si existen registros, recibirá un **200 OK** con los datos de cada ubicación.
6. Si ocurre un error interno, la API responderá con **500 INTERNAL\_ERROR**.

# Módulo de pagos

El módulos de **Pagos (Payments)** permiten acceder a los movimientos financieros asociados a reservas. Comparten la misma estructura de autenticación y respuesta que los módulos anteriores.

#### **Obtener listado paginado de pagos**

**Función:** obtener una lista paginada de pagos, permitiendo filtrar por fechas, reserva, moneda, método de pago, pagador o IDs específicos.

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

---

**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="1566" data-start="861" style="width: 90.3571%; height: 294px;"><thead data-end="888" data-start="861"><tr data-end="888" data-start="861" style="height: 38.7969px;"><th data-col-size="sm" data-end="873" data-start="861" style="width: 50.0596%; height: 38.7969px;">Parámetro</th><th data-col-size="md" data-end="888" data-start="873" style="width: 50.0596%; height: 38.7969px;">Descripción</th></tr></thead><tbody data-end="1566" data-start="916"><tr data-end="978" data-start="916" style="height: 35.7969px;"><td class="align-left" data-col-size="sm" data-end="927" data-start="916" style="width: 50.0596%; height: 35.7969px;">**take**</td><td class="align-left" data-col-size="md" data-end="978" data-start="927" style="width: 50.0596%; height: 35.7969px;">Cantidad de registros a retornar (obligatorio).</td></tr><tr data-end="1025" data-start="979" style="height: 29.7969px;"><td data-col-size="sm" data-end="990" data-start="979" style="width: 50.0596%; height: 29.7969px;">**skip**</td><td data-col-size="md" data-end="1025" data-start="990" style="width: 50.0596%; height: 29.7969px;">Cantidad de registros a omitir.</td></tr><tr data-end="1101" data-start="1026" style="height: 29.7969px;"><td data-col-size="sm" data-end="1053" data-start="1026" style="width: 50.0596%; height: 29.7969px;">**filters\[payment\_ids\]**</td><td data-col-size="md" data-end="1101" data-start="1053" style="width: 50.0596%; height: 29.7969px;">IDs de pagos separados por comas (opcional).</td></tr><tr data-end="1173" data-start="1102" style="height: 29.7969px;"><td data-col-size="sm" data-end="1132" data-start="1102" style="width: 50.0596%; height: 29.7969px;">**filters\[reservation\_id\]**</td><td data-col-size="md" data-end="1173" data-start="1132" style="width: 50.0596%; height: 29.7969px;">ID de la reserva asociada (opcional).</td></tr><tr data-end="1254" data-start="1174" style="height: 29.7969px;"><td data-col-size="sm" data-end="1199" data-start="1174" style="width: 50.0596%; height: 29.7969px;">**filters\[date\_from\]**</td><td data-col-size="md" data-end="1254" data-start="1199" style="width: 50.0596%; height: 29.7969px;">Fecha inicial del rango de pago (Y-m-d) (opcional).</td></tr><tr data-end="1331" data-start="1255" style="height: 29.7969px;"><td data-col-size="sm" data-end="1278" data-start="1255" style="width: 50.0596%; height: 29.7969px;">**filters\[date\_to\]**</td><td data-col-size="md" data-end="1331" data-start="1278" style="width: 50.0596%; height: 29.7969px;">Fecha final del rango de pago (Y-m-d) (opcional).</td></tr><tr data-end="1411" data-start="1332" style="height: 29.7969px;"><td data-col-size="sm" data-end="1361" data-start="1332" style="width: 50.0596%; height: 29.7969px;">**filters\[currency\_code\]**</td><td data-col-size="md" data-end="1411" data-start="1361" style="width: 50.0596%; height: 29.7969px;">Código de moneda del pago, ej: USD (opcional).</td></tr><tr data-end="1487" data-start="1412" style="height: 29.7969px;"><td data-col-size="sm" data-end="1434" data-start="1412" style="width: 50.0596%; height: 29.7969px;">**filters\[method\]**</td><td data-col-size="md" data-end="1487" data-start="1434" style="width: 50.0596%; height: 29.7969px;">Slug del método de pago, ej: efectivo (opcional).</td></tr><tr data-end="1566" data-start="1488" style="height: 29.7969px;"><td data-col-size="sm" data-end="1524" data-start="1488" style="width: 50.0596%; height: 29.7969px;">**filters\[payer\_identification\]**</td><td data-col-size="md" data-end="1566" data-start="1524" style="width: 50.0596%; height: 29.7969px;">Identificación del pagador (opcional).</td></tr></tbody></table>

</div></div>---

**Pasos para ejecutar la consulta**

1. Ingrese a `{BASE_URL}/api/public/v1/payments`
2. Busque la sección **payments→ Listado paginado de pagos**.
3. En el campo **take**, indique cuántos registros desea obtener (por ejemplo, 10).
4. Si lo necesita, agregue filtros como:
    
    
    - `date_from` y `date_to` para un rango de fechas.
    - `reservation_id` si quiere pagos de una reserva específica.
    - `currency_code`, `method` o `payer_identification`.
5. Pulse **“Enviar petición”**.
6. Verifique la respuesta: si la solicitud es correcta, recibirá un **código 200 OK** con los datos paginados.

#### **Consultar Información de un pago en especifico por ID**

**Función:** obtener la información básica y detallada de un pago identificado por su `{id}`.

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

**Parámetros disponibles**

<div class="_tableContainer_1rjym_1" id="bkmrk-par%C3%A1metro-tipo-descr"><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="919" data-start="766"><thead data-end="800" data-start="766"><tr data-end="800" data-start="766"><th data-col-size="sm" data-end="778" data-start="766">Parámetro</th><th data-col-size="sm" data-end="785" data-start="778">Tipo</th><th data-col-size="md" data-end="800" data-start="785">Descripción</th></tr></thead><tbody data-end="919" data-start="836"><tr data-end="919" data-start="836"><td data-col-size="sm" data-end="845" data-start="836">**id**</td><td data-col-size="sm" data-end="855" data-start="845">integer</td><td data-col-size="md" data-end="919" data-start="855">Identificador del pago que se desea consultar (obligatorio).</td></tr></tbody></table>

</div></div>**Ejemplo:** `87`

---

**Pasos para ejecutar la consulta**

1. Ingrese a `{BASE_URL}/api/public/v1/payments`
2. Busque la sección **payments → Consultar información de un pago por ID**.
3. En el campo **id**, escriba el identificador del pago que desea consultar.
4. Pulse **“Enviar petición”**.
5. Si el registro existe, recibirá un **código 200 OK** con toda la información del pago.
6. Si el pago no se encuentra, el sistema responderá con **404 NOT\_FOUND**.
7. Ante errores inesperados, retornará **500 INTERNAL\_ERROR**.

# Módulo de Métodos de Pago (PaymentMethods)

El módulo de **Métodos de Pago (PaymentMethods)** permite consultar todos los medios de pago disponibles dentro del sistema. Mantiene la misma estructura de autenticación, paginación y formato de respuesta utilizada en los demás módulos públicos.

#### **Obtener el listado completo de métodos de pago**

**Función:** Retorna un listado paginado de los métodos de pago registrados en la plataforma

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

# Parámetros

<div class="_tableContainer_1rjym_1" id="bkmrk-par%C3%A1metro-tipo-oblig"><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="1567" data-start="1288" style="width: 100%;"><thead data-end="1336" data-start="1288"><tr data-end="1336" data-start="1288"><th data-col-size="sm" data-end="1300" data-start="1288" style="width: 25.0298%;">Parámetro</th><th data-col-size="sm" data-end="1307" data-start="1300" style="width: 25.0298%;">Tipo</th><th data-col-size="sm" data-end="1321" data-start="1307" style="width: 25.0298%;">Obligatorio</th><th data-col-size="sm" data-end="1336" data-start="1321" style="width: 25.0298%;">Descripción</th></tr></thead><tbody data-end="1567" data-start="1385"><tr data-end="1456" data-start="1385"><td class="align-left" data-col-size="sm" data-end="1403" data-start="1385" style="width: 25.0298%;">filters\[status\]</td><td class="align-left" data-col-size="sm" data-end="1412" data-start="1403" style="width: 25.0298%;">string</td><td class="align-left" data-col-size="sm" data-end="1417" data-start="1412" style="width: 25.0298%;">No</td><td class="align-left" data-col-size="sm" data-end="1456" data-start="1417" style="width: 25.0298%;">Filtra por estado (activo/inactivo)</td></tr><tr data-end="1501" data-start="1457"><td data-col-size="sm" data-end="1464" data-start="1457" style="width: 25.0298%;">skip</td><td data-col-size="sm" data-end="1474" data-start="1464" style="width: 25.0298%;">integer</td><td data-col-size="sm" data-end="1479" data-start="1474" style="width: 25.0298%;">No</td><td data-col-size="sm" data-end="1501" data-start="1479" style="width: 25.0298%;">Registros a omitir</td></tr><tr data-end="1567" data-start="1502"><td data-col-size="sm" data-end="1509" data-start="1502" style="width: 25.0298%;">take</td><td data-col-size="sm" data-end="1519" data-start="1509" style="width: 25.0298%;">integer</td><td data-col-size="sm" data-end="1524" data-start="1519" style="width: 25.0298%;">Sí</td><td data-col-size="sm" data-end="1567" data-start="1524" style="width: 25.0298%;">Registros a retornar (máximo permitido)</td></tr></tbody></table>

</div></div># Pasos para ejecutar la consulta

1. Ingrese a: `{BASE_URL}/api/public/v1/paymentMethods`
2. Diríjase a la sección: **paymentMethods → Obtener listado completo de métodos de pago**
3. Complete los parámetros según lo necesite:
    
    
    - **filters\[status\]:** Filtrar por estado (opcional)
    - **skip:** Registros a omitir (opcional)
    - **take:** Registros a retornar (obligatorio)
4. Pulse **“Enviar petición”**.
5. Si todo está correcto, el sistema responderá con **200 SUCCESS** y el listado solicitado.
6. Si ocurre un error inesperado, se mostrará un **500 INTERNAL\_ERROR**.

# Módulo de Tipos de Proveedores (ProvidersType)

El módulo de **Tipos de Proveedores (ProvidersType)** permite acceder al listado completo de categorías de proveedores disponibles en el sistema.  
Sigue la misma estructura estándar de autenticación y respuesta que el resto de los módulos públicos.

#### **Obtener el listado completo de tipos de proveedores**

****Función:**** Retorna un conjunto paginado de tipos de proveedores registrados en la base de datos.

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

**Parámetros**

<div class="_tableContainer_1rjym_1" id="bkmrk-par%C3%A1metro-tipo-oblig"><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="1504" data-start="1277"><thead data-end="1325" data-start="1277"><tr data-end="1325" data-start="1277"><th data-col-size="sm" data-end="1289" data-start="1277">Parámetro</th><th data-col-size="sm" data-end="1296" data-start="1289">Tipo</th><th data-col-size="sm" data-end="1310" data-start="1296">Obligatorio</th><th data-col-size="sm" data-end="1325" data-start="1310">Descripción</th></tr></thead><tbody data-end="1504" data-start="1374"><tr data-end="1437" data-start="1374"><td class="align-left" data-col-size="sm" data-end="1381" data-start="1374">skip</td><td class="align-left" data-col-size="sm" data-end="1391" data-start="1381">integer</td><td class="align-left" data-col-size="sm" data-end="1396" data-start="1391">No</td><td class="align-left" data-col-size="sm" data-end="1437" data-start="1396">Cantidad de registros a omitir. Ej: 0</td></tr><tr data-end="1504" data-start="1438"><td data-col-size="sm" data-end="1445" data-start="1438">take</td><td data-col-size="sm" data-end="1455" data-start="1445">integer</td><td data-col-size="sm" data-end="1460" data-start="1455">Sí</td><td data-col-size="sm" data-end="1504" data-start="1460">Cantidad de registros a retornar. Ej: 10</td></tr></tbody></table>

</div></div>**Pasos para ejecutar la consulta**

1. Ingrese a: `{BASE_URL}/api/public/v1/providersType`
2. Busque la sección: **providersType → Obtener todos los tipos de proveedores**
3. Complete los parámetros:
    
    
    - **skip:** cantidad de registros a omitir (opcional)
    - **take:** cantidad de registros a retornar (obligatorio)
4. Pulse **“Enviar petición”**.
5. Si la consulta es exitosa, recibirá un **200 OK** con el listado de tipos de proveedores.
6. Si ocurre un problema inesperado, el sistema responderá con **500 INTERNAL\_ERROR**.

# Modulo de rembolsos

El módulo de **reembolsos (Refunds)** permiten acceder a los movimientos financieros asociados a reservas. Comparten la misma estructura de autenticación y respuesta que los módulos anteriores.

#### **Obtener Listado paginado y filtrado de reembolsos**

**Función:** Devuelve un listado de reembolsos aplicando filtros opcionales como fechas, moneda, método, identificación del receptor, IDs específicos, entre otros.

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

Este endpoint permite consultar un listado paginado de reembolsos registrados en el sistema.  
La API permite aplicar filtros para refinar la búsqueda y obtener únicamente los reembolsos deseados.

Cada reembolso incluido en la respuesta contiene:

<div class="_tableContainer_1rjym_1" id="bkmrk-id-del-reembolso-id-"><div class="group _tableWrapper_1rjym_13 flex w-fit flex-col-reverse" tabindex="-1">- ID del reembolso
- ID de la reserva asociada
- Valor y moneda
- Fecha del reembolso
- Concepto
- Método de reembolso
- Cuenta bancaria utilizada
- Datos del receptor (nombre completo, identificación, email)
- Fecha de creación del registro

</div></div>Los resultados pueden ser paginados usando los parámetros **skip** y **take**, y se ordenan por ID en orden descendente.

#### **Consultar información de un reembolso por ID**

**Función**: Obtiene los datos completos de un reembolso específico usando su identificador

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

Este endpoint permite consultar la información detallada de un reembolso registrado en el sistema.  
Al enviar un **id** válido, la API retorna los datos principales del reembolso, incluyendo:

- ID del reembolso
- ID de la reserva asociada
- Valor y moneda
- Fecha del reembolso
- Concepto
- Método de reembolso
- Cuenta bancaria utilizada
- Datos del receptor (nombre completo, identificación, email)
- Fecha de creación del registro

Si el reembolso no existe, la API responde con un **NOT\_FOUND**.  
Si ocurre un error inesperado, retorna **INTERNAL\_ERROR**.

**Pasos generales:**

1. Ingrese a `{BASE_URL}/docs/api`.
2. Busque la sección de **Reembolsos**.
3. Ingrese los parámetros solicitados (`take`, `skip`, fechas, etc.).
4. Envíe la petición y verifique la respuesta **200 OK**.

# 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.

# Módulo de Categorías de Transacciones (TransactionCategory)

El módulo de **Categorías de Transacciones (Transaction Categories)** permite consultar y gestionar los tipos de categorías asociadas a movimientos financieros del sistema. Este módulo mantiene la misma estructura de autenticación, paginación y formato de respuesta estándar que el resto de la API pública.

#### **Consultar listado paginado de categorías de transacciones**

****Función:**** Obtiene un listado paginado de categorías de transacciones con sus datos básicos, permitiendo filtrar por estado (activo o inactivo).

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

**Parámetros**

<div class="_tableContainer_1rjym_1" id="bkmrk-par%C3%A1metro-tipo-oblig"><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="1589" data-start="1309"><thead data-end="1357" data-start="1309"><tr data-end="1357" data-start="1309"><th data-col-size="sm" data-end="1321" data-start="1309">Parámetro</th><th data-col-size="sm" data-end="1328" data-start="1321">Tipo</th><th data-col-size="sm" data-end="1342" data-start="1328">Obligatorio</th><th data-col-size="sm" data-end="1357" data-start="1342">Descripción</th></tr></thead><tbody data-end="1589" data-start="1406"><tr data-end="1478" data-start="1406"><td class="align-left" data-col-size="sm" data-end="1424" data-start="1406">filters\[status\]</td><td class="align-left" data-col-size="sm" data-end="1433" data-start="1424">string</td><td class="align-left" data-col-size="sm" data-end="1438" data-start="1433">No</td><td class="align-left" data-col-size="sm" data-end="1478" data-start="1438">Estado de la categoría. Ej: *activo*</td></tr><tr data-end="1532" data-start="1479"><td data-col-size="sm" data-end="1486" data-start="1479">skip</td><td data-col-size="sm" data-end="1496" data-start="1486">integer</td><td data-col-size="sm" data-end="1501" data-start="1496">No</td><td data-col-size="sm" data-end="1532" data-start="1501">Registros a omitir. Ej: 0</td></tr><tr data-end="1589" data-start="1533"><td data-col-size="sm" data-end="1540" data-start="1533">take</td><td data-col-size="sm" data-end="1550" data-start="1540">integer</td><td data-col-size="sm" data-end="1555" data-start="1550">Sí</td><td data-col-size="sm" data-end="1589" data-start="1555">Registros a retornar. Ej: *10*</td></tr></tbody></table>

</div></div>**Pasos para ejecutar la consulta**

1. Ingrese a: `{BASE_URL}/api/public/v1/transactionCategory`
2. Busque la sección **transactionCategory → Listado de categorías de transacciones**.
3. Si desea filtrar, seleccione o escriba:
    
    
    - Estado (activo / inactivo)
    - skip
    - take (obligatorio)
4. Pulse **“Enviar petición”**.
5. Si la consulta es exitosa, recibirá un **200 OK** con la lista de categorías.
6. Si ocurre un problema inesperado, el sistema responderá con **500 INTERNAL\_ERROR**.

# Módulo de Usuarios (Users & Providers)

Este módulo permite acceder a la información de usuarios registrados en el sistema, tanto proveedores como usuarios internos.  
Los endpoints comparten la misma estructura de autenticación, paginación y formato de respuesta que los demás módulos públicos de la API.

#### **Obtener listado paginado de proveedores**

**Función:** Obtiene un listado paginado de proveedores, aplicando filtros opcionales por ID, documento y estado.

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

**Parámetros**

<div class="_tableContainer_1rjym_1" id="bkmrk-par%C3%A1metro-tipo-oblig"><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="1405" data-start="978"><thead data-end="1026" data-start="978"><tr data-end="1026" data-start="978"><th data-col-size="sm" data-end="990" data-start="978">Parámetro</th><th data-col-size="sm" data-end="997" data-start="990">Tipo</th><th data-col-size="sm" data-end="1011" data-start="997">Obligatorio</th><th data-col-size="sm" data-end="1026" data-start="1011">Descripción</th></tr></thead><tbody data-end="1405" data-start="1079"><tr data-end="1150" data-start="1079"><td class="align-left" data-col-size="sm" data-end="1099" data-start="1079">filters\[document\]</td><td class="align-left" data-col-size="sm" data-end="1108" data-start="1099">string</td><td class="align-left" data-col-size="sm" data-end="1113" data-start="1108">No</td><td class="align-left" data-col-size="sm" data-end="1150" data-start="1113">Número de documento del proveedor</td></tr><tr data-end="1227" data-start="1151"><td data-col-size="sm" data-end="1169" data-start="1151">filters\[status\]</td><td data-col-size="sm" data-end="1178" data-start="1169">string</td><td data-col-size="sm" data-end="1183" data-start="1178">No</td><td data-col-size="sm" data-end="1227" data-start="1183">Estado del proveedor (activo / inactivo)</td></tr><tr data-end="1289" data-start="1228"><td data-col-size="sm" data-end="1248" data-start="1228">filters\[user\_ids\]</td><td data-col-size="sm" data-end="1257" data-start="1248">string</td><td data-col-size="sm" data-end="1262" data-start="1257">No</td><td data-col-size="sm" data-end="1289" data-start="1262">IDs separados por comas</td></tr><tr data-end="1346" data-start="1290"><td data-col-size="sm" data-end="1297" data-start="1290">skip</td><td data-col-size="sm" data-end="1307" data-start="1297">integer</td><td data-col-size="sm" data-end="1312" data-start="1307">No</td><td data-col-size="sm" data-end="1346" data-start="1312">Cantidad de registros a omitir</td></tr><tr data-end="1405" data-start="1347"><td data-col-size="sm" data-end="1354" data-start="1347">take</td><td data-col-size="sm" data-end="1364" data-start="1354">integer</td><td data-col-size="sm" data-end="1369" data-start="1364">Sí</td><td data-col-size="sm" data-end="1405" data-start="1369">Cantidad de registros a retornar</td></tr></tbody></table>

</div></div>**Pasos para ejecutar la consulta**

1. Ingrese a `{BASE_URL}/api/public/v1/providers.`
2. Busque la sección **Providers → Obtener listado paginado de proveedores**.
3. En el campo **take**, escriba cuántos registros desea obtener.
4. Si desea aplicar filtros, agregue document, status o user\_ids.
5. Pulse **“Enviar petición”**.
6. Si la consulta es exitosa, recibirá un **200 OK** con los proveedores encontrados.
7. Si ocurre un problema durante la consulta, el endpoint retornará **500 INTERNAL\_ERROR**.

#### **Consultar Listado paginado de usuarios**

**Función:** Obtiene un listado paginado de usuarios cuyo rol corresponde a **user**, excluyendo los roles **system** y **super\_administrador**, con filtros opcionales por documento, estado e IDs.

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

**Parámetros**

<div class="_tableContainer_1rjym_1" id="bkmrk-par%C3%A1metro-tipo-oblig-1"><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="2716" data-start="2293" style="width: 100%; height: 261.969px;"><thead data-end="2341" data-start="2293"><tr data-end="2341" data-start="2293" style="height: 37.7969px;"><th data-col-size="sm" data-end="2305" data-start="2293" style="width: 24.9702%; height: 37.7969px;">Parámetro</th><th data-col-size="sm" data-end="2312" data-start="2305" style="width: 24.9702%; height: 37.7969px;">Tipo</th><th data-col-size="sm" data-end="2326" data-start="2312" style="width: 24.9702%; height: 37.7969px;">Obligatorio</th><th data-col-size="sm" data-end="2341" data-start="2326" style="width: 24.9702%; height: 37.7969px;">Descripción</th></tr></thead><tbody data-end="2716" data-start="2394"><tr data-end="2463" data-start="2394" style="height: 54.5938px;"><td class="align-left" data-col-size="sm" data-end="2414" data-start="2394" style="width: 24.9702%; height: 54.5938px;">filters\[document\]</td><td class="align-left" data-col-size="sm" data-end="2423" data-start="2414" style="width: 24.9702%; height: 54.5938px;">string</td><td class="align-left" data-col-size="sm" data-end="2428" data-start="2423" style="width: 24.9702%; height: 54.5938px;">No</td><td class="align-left" data-col-size="sm" data-end="2463" data-start="2428" style="width: 24.9702%; height: 54.5938px;">Número de documento del usuario</td></tr><tr data-end="2538" data-start="2464" style="height: 46.5938px;"><td data-col-size="sm" data-end="2482" data-start="2464" style="width: 24.9702%; height: 46.5938px;">filters\[status\]</td><td data-col-size="sm" data-end="2491" data-start="2482" style="width: 24.9702%; height: 46.5938px;">string</td><td data-col-size="sm" data-end="2496" data-start="2491" style="width: 24.9702%; height: 46.5938px;">No</td><td data-col-size="sm" data-end="2538" data-start="2496" style="width: 24.9702%; height: 46.5938px;">Estado del usuario (activo / inactivo)</td></tr><tr data-end="2600" data-start="2539" style="height: 29.7969px;"><td data-col-size="sm" data-end="2559" data-start="2539" style="width: 24.9702%; height: 29.7969px;">filters\[user\_ids\]</td><td data-col-size="sm" data-end="2568" data-start="2559" style="width: 24.9702%; height: 29.7969px;">string</td><td data-col-size="sm" data-end="2573" data-start="2568" style="width: 24.9702%; height: 29.7969px;">No</td><td data-col-size="sm" data-end="2600" data-start="2573" style="width: 24.9702%; height: 29.7969px;">IDs separados por comas</td></tr><tr data-end="2657" data-start="2601" style="height: 46.5938px;"><td data-col-size="sm" data-end="2608" data-start="2601" style="width: 24.9702%; height: 46.5938px;">skip</td><td data-col-size="sm" data-end="2618" data-start="2608" style="width: 24.9702%; height: 46.5938px;">integer</td><td data-col-size="sm" data-end="2623" data-start="2618" style="width: 24.9702%; height: 46.5938px;">No</td><td data-col-size="sm" data-end="2657" data-start="2623" style="width: 24.9702%; height: 46.5938px;">Cantidad de registros a omitir</td></tr><tr data-end="2716" data-start="2658" style="height: 46.5938px;"><td data-col-size="sm" data-end="2665" data-start="2658" style="width: 24.9702%; height: 46.5938px;">take</td><td data-col-size="sm" data-end="2675" data-start="2665" style="width: 24.9702%; height: 46.5938px;">integer</td><td data-col-size="sm" data-end="2680" data-start="2675" style="width: 24.9702%; height: 46.5938px;">Sí</td><td data-col-size="sm" data-end="2716" data-start="2680" style="width: 24.9702%; height: 46.5938px;">Cantidad de registros a retornar</td></tr></tbody></table>

</div></div>**Pasos para ejecutar la consulta**

1. Ingrese a `{BASE_URL}/api/public/v1/users.`
2. Busque la sección **Users → Obtener listado paginado de usuarios**.
3. En el campo **take**, escriba cuántos registros desea obtener.
4. Si necesita filtrar, agregue document, status o user\_ids.
5. Pulse **“Enviar petición”**.
6. Si la información existe, recibirá un **200 OK** con los datos paginados.
7. Si ocurre un error inesperado, la API responderá con **500 INTERNAL\_ERROR**.

# Módulo de Planes (Plans)

#### **Obtener listado paginado de planes**

Este módulo permite consultar los planes disponibles en el sistema mediante un listado paginado. El endpoint admite filtros opcionales para facilitar la búsqueda por ID, tipo de plan o término de búsqueda. La estructura de autenticación, paginación y formato de respuesta es consistente con los demás módulos públicos de la API.

**Función:** Devuelve un listado paginado de planes que puede ser filtrado por ID, tipo de plan o término de búsqueda.

[![image.png](https://v4.docs.airvi.com.co/uploads/images/gallery/2026-03/scaled-1680-/dhHQfIhaDJCZfJIu-image.png)](https://v4.docs.airvi.com.co/uploads/images/gallery/2026-03/dhHQfIhaDJCZfJIu-image.png)

##### Parámetros

<div class="TyagGW_tableContainer" id="bkmrk-par%C3%A1metro-tipo-oblig"><div class="group TyagGW_tableWrapper flex flex-col-reverse w-fit" tabindex="-1"><table class="w-fit min-w-(--thread-content-width)" data-end="987" data-start="607"><thead data-end="655" data-start="607"><tr data-end="655" data-start="607"><th class="" data-col-size="sm" data-end="619" data-start="607">Parámetro</th><th class="" data-col-size="sm" data-end="626" data-start="619">Tipo</th><th class="" data-col-size="sm" data-end="640" data-start="626">Obligatorio</th><th class="" data-col-size="sm" data-end="655" data-start="640">Descripción</th></tr></thead><tbody data-end="987" data-start="705"><tr data-end="754" data-start="705"><td data-col-size="sm" data-end="724" data-start="705">filters\[plan\_id\]</td><td data-col-size="sm" data-end="734" data-start="724">integer</td><td data-col-size="sm" data-end="739" data-start="734">No</td><td data-col-size="sm" data-end="754" data-start="739">ID del plan</td></tr><tr data-end="824" data-start="755"><td data-col-size="sm" data-end="776" data-start="755">filters\[plan\_type\]</td><td data-col-size="sm" data-end="785" data-start="776">string</td><td data-col-size="sm" data-end="790" data-start="785">No</td><td data-col-size="sm" data-end="824" data-start="790">Tipo de plan (ej. alojamiento)</td></tr><tr data-end="871" data-start="825"><td data-col-size="sm" data-end="834" data-start="825">search</td><td data-col-size="sm" data-end="843" data-start="834">string</td><td data-col-size="sm" data-end="848" data-start="843">No</td><td data-col-size="sm" data-end="871" data-start="848">Término de búsqueda</td></tr><tr data-end="928" data-start="872"><td data-col-size="sm" data-end="879" data-start="872">skip</td><td data-col-size="sm" data-end="889" data-start="879">integer</td><td data-col-size="sm" data-end="894" data-start="889">No</td><td data-col-size="sm" data-end="928" data-start="894">Cantidad de registros a omitir</td></tr><tr data-end="987" data-start="929"><td data-col-size="sm" data-end="936" data-start="929">take</td><td data-col-size="sm" data-end="946" data-start="936">integer</td><td data-col-size="sm" data-end="951" data-start="946">Sí</td><td data-col-size="sm" data-end="987" data-start="951">Cantidad de registros a retornar</td></tr></tbody></table>

</div></div>##### **Pasos para ejecutar la consulta**

1. Ingrese a `{BASE_URL}/api/public/v1/plans`.
2. Busque la sección **Plans → Obtener listado paginado de planes**.
3. En el campo **take**, escriba cuántos registros desea obtener.
4. Si desea aplicar filtros, agregue **plan\_id**, **plan\_type** o **search**.
5. Pulse **“Enviar petición”**.
6. Si la consulta es exitosa, recibirá un **200 OK** con los planes encontrados.
7. Si ocurre un problema durante la consulta, el endpoint retornará **500 INTERNAL\_ERROR**.

#### **Obtener listado de tipos de productos**

Este módulo permite consultar los tipos de productos disponibles en el sistema. El endpoint devuelve una lista de tipos de planes que pueden ser utilizados para clasificar los productos y mantiene la misma estructura de autenticación y formato de respuesta de los demás módulos públicos de la API.

Función: Devuelve una lista de los tipos de productos disponibles.

[![image.png](https://v4.docs.airvi.com.co/uploads/images/gallery/2026-03/scaled-1680-/b0Y4WoGVNv7yHqK3-image.png)](https://v4.docs.airvi.com.co/uploads/images/gallery/2026-03/b0Y4WoGVNv7yHqK3-image.png)

**Parámetros**  
Este endpoint no requiere parámetros para la consulta.

**Pasos para ejecutar la consulta**  
Ingrese a `{BASE_URL}/api/public/v1/plan_types`.  
Busque la sección **Plan Types → Obtener listado de tipos de productos**.  
Pulse **“Enviar petición”**.  
Si la consulta es exitosa, recibirá un **200 OK** con los tipos de productos disponibles.  
Si no se envía un token válido, el endpoint retornará **401 UNAUTHORIZED**.  
Si ocurre un problema durante la consulta, el endpoint retornará **500 INTERNAL\_ERROR**.