Upload Appointment Act

View as Markdown
# Upload Appointment Act (`POST` - REST) A diferencia del resto de la API, este método no utiliza la arquitectura GraphQL. Se trata de un endpoint REST nativo diseñado específicamente para la transferencia de archivos binarios, permitiendo la carga del acta final previamente modificado con información propia de la organización. Esta modalidad permite al cliente incorporar elementos adicionales, como un código de verificación, un sello corporativo o cualquier otra marca identificativa, aportando al documento final un mayor grado de personalización y alineación con la imagen corporativa de la entidad. ### Detalles de la Solicitud - **Método HTTP:** `POST` - **URL:** `https://api.ovac.pre.councilbox.com/council/:councilId/act` - **Content-Type:** `multipart/form-data` ### Cabeceras (Headers) | **Key** | **Value** | **Requerido** | **Descripción** | | --- | --- | --- | --- | | **x-jwt-token** | {{token}} | SI | Token JWT de autenticación obtenido previamente en el método de login. | ## Referencia de la API ### Parámetros de Ruta (Path Parameters) | Parámetro | Descripción | Requerido | Tipo | | --- | --- | --- | --- | | councilId | Identificador único de la cita a la que se desea permitir el acceso. | SI | Integer | ### Cuerpo de la Petición (Body Parameters - `form-data`) | Parámetro | Descripción | Requerido | Tipo | | --- | --- | --- | --- | | file | Archivo físico del informe o acta (normalmente PDF) que contiene el CEA para almacenar en OVAC. | SI | File (Binary) | | notify | Control de notificaciones automáticas: <br>`true` -> Envía siempre una notificación al ciudadano informándole de la disponibilidad del documento (Valor por defecto si se omite). <br>Cualquier otro valor -> El sistema procesará el archivo sin enviar notificación al ciudadano. | NO | Boolean | > ⚙️ **Prerrequisitos de negocio:** Para que el backend acepte la carga del archivo, la cita debe encontrarse estrictamente en estado **`45`** (Procesando informe). Adicionalmente, este flujo requiere que la opción _"Mostrar footer en informe de cita"_ esté deshabilitada. ## Ejemplos de código y peticiones ### 1\. Ejemplo de comando -cURL Al tratarse de una petición de tipo formulario multimedia (`multipart/form-data`), la estructura define los campos del cuerpo de forma independiente al archivo binario: ``` bash curl --location "https://api.ovac.pre.councilbox.com/council/64879/act" \ --header "x-jwt-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIzZTVhZTA1NC1jZGUyLTQ0MWEtYTY3Zi1kMGExNzYwYzUxNzYiLCJ1c2VyX2lkIjozNDc2LCJ0b2tlbl90eXBlIjoidXNlciIsImlhdCI6MTc3OTE3NjE2M30.0cWaj4uUaArUQR3C-RwqlpLafkX5Rih4LZs9ZPNpEFY" \ --form "file=@\"/Ruta/Documentos/Informes/64879.pdf\"" \ --form "notify=\"true\"" ``` ## Resultados Esperados (Respuestas HTTP) ### Caso A: Éxito (200 OK) Si la cita se encuentra en el estado correcto (`45`) y el archivo se procesa sin anomalías. ``` json { "success": true } ``` ### Caso B: Error de Validación (400 / 403 Bad Request) Si la cita ya ha sido cerrada, no está en estado `45`, o la configuración de la organización deniega la inserción manual del documento externo. ``` json { "message": "This council is not expecting this action" } ``` > 💡 **Tip para la integración en Postman:** > Al dar de alta esta petición en tu colección, ve a la pestaña **Body**, marca la opción **form-data** y, al escribir la clave `file`, pasa el ratón sobre el extremo derecho de la casilla de texto para cambiar el desplegable de **Text** a **File**. Esto habilitará el botón nativo para seleccionar y adjuntar tu PDF de prueba.

Authentication

x-jwt-tokenstring
JWT token obtained from Login.

Path parameters

councilIdstringRequired

Request

This endpoint expects a multipart form containing a file.
filefileRequired
notifybooleanOptional

Response

Successful response. GraphQL business errors may be returned inside the JSON errors field while transport status remains HTTP 200.