Skip to navigation

Get Appointment Documentation

View as Markdown

Este método permite recuperar de forma centralizada todos los recursos binarios y archivos digitales asociados a una cita a partir de su identificador único (id). La respuesta consolida en una sola llamada las grabaciones de videoatención, los documentos intercambiados entre las partes, las capturas de pantalla tomadas durante la sesión y los archivos adjuntos vinculados a cada punto de la agenda.

Detalles de la Solicitud

  • Método HTTP: POST

  • URL PRE: https://api.ovac.pre.councilbox.com/graphql

  • URL PRO: https://api.ovac.councilbox.com/graphql

Autenticación

Tipo: API Key**
Header:** x-jwt-token
Ubicación: Header HTTP_
Ejemplo:_ x-jwt-token: eyJhbGciOiJIUzI1NiIsInR5cCI6...

Referencia de la API

Parámetros de Entrada (Variables)

DescripciónRequeridoTipo
idIdentificador numérico único de la cita en la plataforma OVAC.SIInteger

Campos de Respuesta (Payload)

La consulta agrupa los elementos multimedia y documentales en cuatro nodos principales bajo el objeto raíz council:

ParámetroDescripciónTipo
dataInformación del objeto dataObject
data.councilInformación de la citaObject
data.council.idIdentificador único de la citaInteger
data.council.recordingsDatos acerca de la grabación o grabacionesArray
data.council.recordings[].durationDuración, en segundosString
data.council.recordings[].idIdentificador de la grabaciónString
data.council.recordings[].createdAtFecha de inicio de la grabaciónString
data.council.recordings[].sizeTamaño del binario en bytesString
data.council.recordings[].hashIdentificación hash del archivoString
data.council.recordings[].finishDateFecha de finalizaciónString
data.council.recordings[].downloadUrlEnlace de descarga del vídeo, es necesario emplear cabecera x-jwt-token: {{token}} para descargar vídeoString
data.council.documentsConjunto de datos de los documentosArray
data.council.documents[].ididentificador único del documentoInteger
data.council.documents[].titleTítulo de la carpeta contenedora de la documentaciónString
data.council.documents[].attachmentsConjunto de binarios adjuntos
data.council.documents[].attachments[].idIdentificador del binarioInteger
data.council.documents[].attachments[].hashHash del binario en MD5String
data.council.documents[].attachments[].uploadedByIndica el participante que ha subido el documentoObject
data.council.documents[].attachments[].uploadedBy.idIdentificador el paticipanteInteger
data.council.documents[].attachments[].uploadedBy.nameNombre del participanteString
data.council.documents[].attachments[].uploadedBy.surnameApellido del participanteString
data.council.documents[].attachments[].uploadedBy.emailEmail del participanteString
data.council.documents[].attachments[].uploadedByAdminObjeto del usuario que ha subido el adjuntoObject
data.council.documents[].attachments[].uploadedByAdmin.idIdentificador del usuarioInteger
data.council.documents[].attachments[].uploadedByAdmin.nameNombre del usuarioString
data.council.documents[].attachments[].uploadedByAdmin.surnameApellido del usuarioString
data.council.documents[].attachments[].uploadedByAdmin.emailemail del usuarioString
data.council.documents[].attachments[].filenameNombre del documento y formatoString
data.council.documents[].attachments[].filetypeTipo de archivoString
data.council.documents[].attachments[].filesizeTamaño del archivo en bytesString
data.council.documents[].attachments[].downloadUrlUrl de descarga del binarioString
data.council.videoCapturesArray de capturas de frame realizadas durante la videoatenciónArray
data.council.videoCaptures[].participantArray de participantesObject
data.council.videoCaptures[].participant.nameNombreString
data.council.videoCaptures[].participant.surnameApellidoString
data.council.videoCaptures[].participant.idIdentificador del participanteInteger
data.council.videoCaptures[].participant.emailemail del participanteString
data.council.videoCaptures[].idIdentificador de la videocapturaInteger
data.council.videoCaptures[].captureIdUUID de la captura de frameString
data.council.videoCaptures[].nameNombre de la capturaString
data.council.videoCaptures[].datefecha en la que se ha realizado la captura con formato UTCString
data.council.videoCaptures[].downloadUrlUrl de descarga de la capturaString
data.council.agendasPuntos a realizar durante la citaArray
data.council.agendas[].idIdentificador único del puntoInteger
data.council.agendas[].orderIndexOrden en la que están generados para su lanzamientoInteger
data.council.agendas[].nameNombre del puntoString
data.council.agendas[].attachmentsArray de los pasos dentro de la videocitaArray
data.council.agendas[].attachments[].userUsuario que sube el documentoObject
data.council.agendas[].attachments[].user.ididentificador del usuario que abre el puntoInteger
data.council.agendas[].attachments[].user.nameNombre del usuario que abre el puntoString
data.council.agendas[].attachments[].user.surnameApellido del usuario que abre el puntoString
data.council.agendas[].attachments[].user.emailemail del usuario que abre el puntoString
data.council.agendas[].attachments[].idIdentificador del binario adjuntoInteger
data.council.agendas[].attachments[].hashHash MD5 del binarioString
data.council.agendas[].attachments[].filenameNombre y formato del binarioString
data.council.agendas[].attachments[].filetypeTipo de archivoString
data.council.agendas[].attachments[].filesizeTamaño del archivo en bytesString
data.council.agendas[].attachments[].downloadUrlUrl de descarga del binarioString

1. Grabaciones de la Sesión (recordings)

Colección de los archivos de vídeo y audio generados durante el encuentro.

  • id (String): Identificador único de la grabación.

  • duration (String): Duración total de la grabación expresada en segundos.

  • size (String): Tamaño del archivo binario en bytes.

  • hash (String): Identificación hash criptográfica del archivo para verificación de integridad.

  • createdAt / finishDate (String): Marcas de tiempo de inicio y fin de la grabación (formato Unix Timestamp / UTC).

  • downloadUrl (String): Enlace de descarga directa del vídeo. Requiere incluir la cabecera _x-jwt-token_ autorizada.

2. Gestión Documental General (documents)

Repositorio de documentos compartidos o aportados de forma global en la cita.

  • id (Int): Identificador único del contenedor de documentos.

  • title (String): Título o nombre de la carpeta/categoría contenedora (ej. “Documentación intercambiada”).

  • attachments (Array): Colección de archivos binarios específicos. Cada elemento incluye:

    • id (Int), filename (String), filetype (String), filesize (String), hash (String): Metadatos completos del archivo.

    • downloadUrl (String): URL segura para la descarga del archivo binario.

    • uploadedBy (Object): Datos del ciudadano/participante si este subió el archivo (id, name, surname, email). De lo contrario, devuelve null.

    • uploadedByAdmin (Object): Datos del profesional o gestor de la entidad si fue quien aportó el documento.

3. Capturas de Vídeo (videoCaptures)

Fotogramas congelados (historias o capturas de pantalla) tomados por el agente durante la sesión de videoatención como prueba visual.

  • id (Int): Identificador único de la videocaptura.

  • name (String): Nombre asignado al archivo de la captura.

  • date (String): Fecha y hora en formato UTC en la que se realizó la captura.

  • downloadUrl (String): Enlace directo de descarga de la imagen.

  • participant (Object): Datos del participante del cual se extrajo o vinculó el frame visual (id, name, surname, email).

4. Adjuntos de los Puntos de la Agenda (agendas)

Documentos de trabajo vinculados estrictamente a flujos del trámite (como PDFs dinámicos o plantillas de firma).

  • id (Int): Identificador único del punto de la agenda.

  • orderIndex (Int): Índice que dictamina el orden cronológico del paso dentro de la cita.

  • name (String): Nombre del hito o paso (ej. “PDF Interactivo”).

  • attachments (Array): Colección de archivos requeridos o resultantes de ese paso en particular. Incluye metadatos idénticos a los del nodo documents y un objeto user que detalla el operador que inició o cargó dicho punto.

Ejemplos de Código y Peticiones

1. Consulta GraphQL

query AppointmentDocuments($id: Int!) {
council(id: $id) {
id
recordings {
duration
id
createdAt
size
hash
finishDate
downloadUrl
}
documents {
id
title
attachments {
id
hash
uploadedBy {
id
name
surname
email
}
uploadedByAdmin {
id
name
surname
email
}
filename
filetype
filesize
downloadUrl
}
}
videoCaptures {
participant {
name
surname
id
email
}
id
name
date
downloadUrl
}
agendas {
id
orderIndex
name
attachments {
user {
id
name
surname
email
}
id
hash
filename
filetype
filesize
downloadUrl
}
}
}
}

2. Variables de la Petición (JSON Payload)

{
"id": 64706
}

3. Ejemplo de comando cURL

curl --location "https://api.ovac.pre.councilbox.com/graphql" \
--header "Content-Type: application/json" \
--header "x-jwt-token: {{token}}" \
--data '{"query":"query AppointmentDocuments($id: Int!){ council(id: $id){ id recordings { duration id createdAt size hash finishDate downloadUrl } documents { id title attachments { id hash uploadedBy { id name surname email } uploadedByAdmin { id name surname email } filename filetype filesize downloadUrl } } videoCaptures { participant { name surname id email } id name date downloadUrl } agendas { id orderIndex name attachments { user { id name surname email } id hash filename filetype filesize downloadUrl } } } }","variables":{"id":64706}}'

4. Respuesta Esperada (200 OK)

{
"data": {
"council": {
"id": 64706,
"recordings": [
{
"duration": "0",
"id": "64706-69e7279ca146c77d133a40e5",
"createdAt": "1776756677334",
"size": "0",
"hash": null,
"finishDate": "0",
"downloadUrl": "https://api.ovac.pre.councilbox.com/api/recording/64706-69e7279ca146c77d133a40e5"
}
],
"documents": [
{
"id": 62463,
"title": "Documentación intercambiada",
"attachments": []
}
],
"videoCaptures": [
{
"participant": {
"name": "SOY EL PARTICIPANTE",
"surname": "TEST",
"id": 156745,
"email": "alejandro.maneiro+participante@councilbox.com"
},
"id": 407,
"captureId": "6a0b287b643df03686ccdf95",
"name": "SOY EL PARTICIPANTE TEST ",
"date": "2026-05-18T14:55:55.659Z",
"downloadUrl": "https://api.ovac.pre.councilbox.com/videoCapture/407"
},
{
"participant": {
"name": "SOY EL PARTICIPANTE",
"surname": "TEST",
"id": 156745,
"email": "alejandro.maneiro+participante@councilbox.com"
},
"id": 408,
"captureId": "6a0b2880643df03686ccdf9d",
"name": "SOY EL PARTICIPANTE TEST -1779116160721",
"date": "2026-05-18T14:56:00.857Z",
"downloadUrl": "https://api.ovac.pre.councilbox.com/videoCapture/408"
},
{
"participant": {
"name": "SOY EL PARTICIPANTE",
"surname": "TEST",
"id": 156745,
"email": "alejandro.maneiro+participante@councilbox.com"
},
"id": 409,
"captureId": "6a0b2884643df03686ccdfa3",
"name": "SOY EL PARTICIPANTE TEST -1779116164299",
"date": "2026-05-18T14:56:04.407Z",
"downloadUrl": "https://api.ovac.pre.councilbox.com/videoCapture/409"
}
],
"agendas": [
{
"id": 88520,
"orderIndex": 2,
"name": "Escaneo de documentación",
"attachments": []
},
{
"id": 88519,
"orderIndex": 3,
"name": "PDF Interactivo",
"attachments": [
{
"user": {
"id": 3477,
"name": "API",
"surname": "PROFESIONAL",
"email": "alejandro.maneiro+apiprof@councilbox.com"
},
"id": 42106,
"hash": "f8784be80a0058f269317ca10daa24a3",
"filename": "formulario_interactivo.pdf",
"filetype": "application/pdf",
"filesize": "3885",
"downloadUrl": "https://api.ovac.pre.councilbox.com/agendaAttachment/42106"
}
]
}
]
}
}
}

Nota OpenAPI/Fern: esta operación GraphQL se documenta como /graphql/appointmentdocuments para que Fern pueda mostrarla como operación independiente. La ruta técnica real de ejecución es POST /graphql.

Authentication

x-jwt-tokenstring
JWT token obtained from Login.

Request

This endpoint expects an object.
querystringRequired
GraphQL operation
variablesobjectOptional
GraphQL variables

Response

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