> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.ovac.councilbox.com/llms.txt.
> For full documentation content, see https://docs.ovac.councilbox.com/llms-full.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.ovac.councilbox.com/_mcp/server.

# Introducción a la documentación API de OVAC

La API OVAC permite integrar sistemas externos con la Oficina Virtual de Atención Ciudadana de Councilbox. Esta referencia técnica recoge los métodos disponibles para automatizar el ciclo de vida de una cita, consultar disponibilidad de agenda, gestionar participantes, obtener documentación asociada a una sesión y acceder a información organizativa necesaria para la integración.

La mayoría de operaciones se consumen mediante **GraphQL** a través de peticiones `POST` sobre el endpoint `/graphql`. Para facilitar la lectura y navegación de la documentación, cada operación se presenta como un método independiente, aunque técnicamente comparta el mismo endpoint GraphQL de transporte.

## Colección pública de Postman

La colección pública utilizada como fuente funcional de esta documentación está disponible en Postman:

[Ver colección pública API OVAC en Postman](https://councilbox-2928.postman.co/workspace/API-OVAC~bf5cb059-ed51-424d-9a2c-b8f581f9c9ac/collection/45758186-75abaa4f-d609-440f-ab82-5c3a7ccd4eb8?action=share\&creator=45758186\&active-environment=45758186-88deb487-5839-45bf-bd8c-dc359ca24700)

## Autenticación

Salvo las operaciones públicas o el método **Login**, los métodos requieren autenticación mediante una clave enviada en cabecera:

```http
x-jwt-token: <token>
```

El token se obtiene ejecutando el método **Login** con las credenciales asignadas al integrador. Una vez obtenido, debe enviarse en las llamadas protegidas mediante la cabecera `x-jwt-token`.

## Entornos

Los entornos principales son:

| Entorno       | URL base                              |
| ------------- | ------------------------------------- |
| Preproducción | `https://api.ovac.pre.councilbox.com` |
| Producción    | `https://api.ovac.councilbox.com`     |

En despliegues privados o dedicados, la URL base puede variar y deberá sustituirse por el dominio corporativo asignado.

## Bloques funcionales

Los métodos están agrupados en las siguientes áreas:

| Área                       | Descripción                                                                            |
| -------------------------- | -------------------------------------------------------------------------------------- |
| Autenticación              | Login y gestión inicial de sesión.                                                     |
| Disponibilidad y agendas   | Consulta de calendarios mensuales, franjas disponibles y reglas de disponibilidad.     |
| Gestión de citas           | Creación, modificación, reprogramación, cancelación y compartición de citas.           |
| Documentación y evidencias | Consulta de actas, evidencias, grabaciones y documentación final asociada a la sesión. |
| Estructura organizativa    | Consulta de compañías, sedes, usuarios y datos necesarios para mapear integraciones.   |

## Consideraciones sobre GraphQL

Aunque la documentación muestre cada operación como un método independiente, las operaciones GraphQL se ejecutan técnicamente mediante peticiones `POST` al endpoint `/graphql`. Esta separación documental permite identificar y consultar cada operación de forma más clara en Fern, especialmente en integraciones donde existen múltiples queries y mutations bajo el mismo endpoint de transporte.

## Consideraciones sobre errores

Las respuestas pueden devolver códigos HTTP estándar, pero las reglas de negocio y errores funcionales pueden venir encapsulados dentro del objeto `errors` del cuerpo JSON, incluso manteniendo un transporte HTTP `200 OK`. Por tanto, las integraciones deben validar tanto el código HTTP como el contenido de la respuesta GraphQL.