For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
  • Métodos API
      • POSTLogin
      • POSTLanguages
      • POSTCreate Appointment
      • POSTCreate Appointment Representation
      • POSTCreate Appointment Representation Guests
      • POSTCancel Appointment
      • POSTCouncil evidence summary
      • POSTCouncil Info
      • POSTCouncils
      • POSTAssign Appointment to Operator
      • POSTAppointment Documentation
      • POSTCouncil Documentation
      • POSTCompany Month Schedule
      • POSTDay slots
      • POSTShare appointment
      • POSTUpload council Act
      • POSTCompany Procedures
      • POSTReschedule Appointment
      • POSTOrganization companies
      • POSTOrganization Users
      • POSTCreate Appointment_External
      • POSTCreate Appointment Representation_External
      • POSTCreate Appointment Representation Guests_External
      • POSTCouncils_External
      • POSTCouncil Info_External
      • POSTCancel Appointment_External
      • POSTCouncil evidence summary_External
      • POSTAssign Appointment to Operator_External
LogoLogo
Métodos APIOvac

Council Info_External

|View as Markdown|Open in Claude|
POST
/graphql/councilinfo-2
POST
/graphql/councilinfo-2
$curl -X POST https://api.ovac.pre.councilbox.com/graphql/councilinfo-2 \
> -H "x-jwt-token: <apiKey>" \
> -H "Content-Type: application/json" \
> -d '{
> "query": "query CouncilInfo($councilExternalId: String!, \r\n$companyExternalId: String!)\r\n {\r\n council(externalId: $councilExternalId, \r\n companyExternalId: $companyExternalId)\r\n {\r\n state\r\n councilType\r\n dateStart\r\n dateRealStart\r\n dateEnd\r\n adminUrl\r\n councilType\r\n noCelebrateComment\r\n observations\r\n internalNotes\r\n comment\r\n assignedUser {\r\n id\r\n name\r\n surname\r\n email\r\n externalId\r\n }\r\n participants {\r\n name\r\n surname\r\n email\r\n dni\r\n idCardType\r\n idCardCountry\r\n zipcode\r\n }\r\n statute {\r\n id\r\n title\r\n statuteId\r\n }\r\n agendas {\r\n id\r\n name\r\n attachments {\r\n user {\r\n id\r\n name\r\n surname\r\n }\r\n filename\r\n downloadUrl\r\n filesize\r\n }\r\n participants {\r\n type\r\n agendaSignatoriesParticipantsAttachments {\r\n id\r\n filename\r\n url\r\n }\r\n }\r\n }\r\n }\r\n}",
> "variables": {
> "councilExternalId": "IdentificadorExternoCita",
> "companyExternalId": "IdentificadorExternoOrg"
> }
>}'
200Council Info_External
1{
2 "data": {
3 "council": {
4 "state": 10,
5 "councilType": 5,
6 "dateStart": "2026-05-23T15:30:00.000Z",
7 "dateRealStart": null,
8 "dateEnd": null,
9 "adminUrl": "https://apitest.ovac.pre.councilbox.com/company/2191/council/64905/",
10 "noCelebrateComment": "",
11 "observations": "Estas son observaciones",
12 "internalNotes": "<p>Estas son notas internas</p>",
13 "comment": "Opcional - Información visible mail de creación de cita",
14 "assignedUser": {
15 "id": 3477,
16 "name": "API",
17 "surname": "PROFESIONAL",
18 "email": "alejandro.maneiro+apiprof@councilbox.com",
19 "externalId": "TEST001"
20 },
21 "participants": [
22 {
23 "name": "Name of participant",
24 "surname": "Surname of participant",
25 "email": "alejandro.maneiro@councilbox.com",
26 "dni": "11111111H",
27 "idCardType": "dni",
28 "idCardCountry": "ES",
29 "zipcode": "00000"
30 },
31 {
32 "name": "REPRESENTADO",
33 "surname": "Surname of participant",
34 "email": "participant_email+representado@domain.com",
35 "dni": "22222222H",
36 "idCardType": "dni",
37 "idCardCountry": "ES",
38 "zipcode": "00000"
39 }
40 ],
41 "statute": {
42 "id": 65087,
43 "title": "TEST",
44 "statuteId": 4685
45 },
46 "agendas": [
47 {
48 "id": 89891,
49 "name": "test",
50 "attachments": [],
51 "participants": []
52 },
53 {
54 "id": 89887,
55 "name": "Escaneo de documentación",
56 "attachments": [],
57 "participants": []
58 },
59 {
60 "id": 89886,
61 "name": "PDF Interactivo",
62 "attachments": [],
63 "participants": []
64 },
65 {
66 "id": 89888,
67 "name": "Consentimiento expreso",
68 "attachments": [],
69 "participants": []
70 },
71 {
72 "id": 89889,
73 "name": "Firma de documentación",
74 "attachments": [],
75 "participants": []
76 },
77 {
78 "id": 89890,
79 "name": "Respuestas múltipes",
80 "attachments": [],
81 "participants": []
82 },
83 {
84 "id": 89885,
85 "name": "Formulario",
86 "attachments": [],
87 "participants": []
88 }
89 ]
90 }
91 }
92}
# Council Info (External ID Variant) (`council`) Este método permite obtener información detallada y estructurada de una cita a partir de sus identificadores externos corporativos (`councilExternalId` y `companyExternalId`). Devuelve el estado actual de la convocatoria, el canal de atención, las marcas de tiempo de control, los datos del agente asignado, los datos de los ciudadanos participantes, el trámite asociado y el desglose de las fases de la agenda junto con las evidencias digitales recolectadas. ### 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) | Parámetro | Descripción | Requerido | Tipo | | --- | --- | --- | --- | | councilExternalId | Id de la cita externo | SI | String | | companyExternalId | Identificador externo de la organización o entidad | SI | String | ### Campos de Respuesta (Payload) La consulta agrupa la información del encuentro bajo el nodo raíz `council` con la siguiente taxonomía: #### 1\. Datos Generales de la Cita (`council`) | Parámetro | Descripción | Tipo | | --- | --- | --- | | data | Objeto del conjunto de datos | Object | | data.council | Objeto del la cita | Object | | data.council.state | Estado de la cita: <br>\- '`-1`': Cancelada <br>\- 10: Confirmada <br>\- 20: Sala abierta <br>\- 25: Pausada <br>\- 40: Finalizada <br>\- 45: Procesando informe <br>\- 60: Completa <br>\- 65: Incompleta (no se ha realizado un paso requerido dentro del trámite propuesto) | Integer | | data.council.councilType | Tipo de cita, puede tomar los siguientes valores: <br>\- `5` -> Videoatención <br>\- `6` -> Gestión <br>\- `7` -> Presencial | Integer | | data.council.dateStart | Fecha de la cita en UTC | String | | data.council.dateRealStart | Fecha en la que se ha iniciado la cita en UTC | String | | data.council.dateEnd | Fecha de fin de la cita en UTC | String | | data.council.adminUrl | Enlace de acceso del administrador | String | | data.council.noCelebrateComment | Puede tomar estos valores: <br>'**unavailable**' -> No disponible <br>'**not_interested**' -> No interesado <br>'**procedure_already_completed**' -> Proceso ya realizado <br>'**incorrect_data**' -> Datos incorrectos <br>'**difficult_access**' -> Problemas en el acceso <br>'**incompatible_browser**' -> Navegador incompatible <br>'**others**' -> Otro motivo | String | | data.council.observations | Se almacena el detalle que introduce el agente para información previa de la cita, se muestra un pop-up y también son visibles desde el panel de la cita | String | | data.council.internalNotes | Notas internas añadidas por el usuarios, no visibles por el participante | String | | data.council.comment | Comentario, usado en citas anteriores a OVAC 7.0 <br>\-obsoleto- | String | | data.council.assignedUser | Objeto de usuario asignado | Object | | data.council.assignedUser.id | Identificador del usuario asignado | Integer | | data.council.assignedUser.name | Nombre del usuario asignado | String | | data.council.assignedUser.surname | Apellidos del usuario asignado | String | | data.council.assignedUser.email | Email del usuario asignado para la recepción de notificaciones | String | | data.council.assignedUser.externalId | Identificador externo del usuario asignado a la cita | String | | data.council.participants | Conjunto de participantes | Array | | data.council.participants\[\].name | Nombre del participante | String | | data.council.participants\[\].surname | Apellidos del participante | String | | data.council.participants\[\].email | Email para envío de notificación, en base al método de notificación solicitado. | String | | data.council.participants\[\].dni | Número de identificación del participante | String | | data.council.participants\[\].idCardType | Tipo de documento: <br>**cif**: Documento para empresas de España. <br>**codiceFiscale**: Documento de Italia. <br>**dni**: Documento de España. <br>**europeanDocument**: Documentos identificativos de europa. <br>**nie**: Documento extrajeros España <br>**passport**: Pasaporte | String | | data.council.participants\[\].idCardCountry | Código de país bajo ISO 3166-1 alfa-2 | String | | data.council.participants\[\].zipcode | Código postal | String | | data.council.statute | Objeto del trámite realizado | Object | | data.council.statute.id | Identificador del trámite | Integer | | data.council.statute.title | Nombre del trámite | String | | data.council.statute.statuteId | Identificador único del trámite | Integer | | data.council.agendas | Conjunto de datos correspondientes a los puntos de la cita | Array | | data.council.agendas\[\].id | Identificador único | Integer | | data.council.agendas\[\].name | Nombre el punto | String | | data.council.agendas\[\].attachments | Conjunto de adjuntos | Array | | data.council.agendas\[\].attachments\[\].user | Objeto correspondiente al usuario que adjunta documentación, siempre que haya sido el profesional, en el caso de haber sido subido por el participante el objeto estará vacío. | Object | | data.council.agendas\[\].attachments\[\].user.id | Identificador único del usuario | Integer | | data.council.agendas\[\].attachments\[\].user.name | Nombre del usuario | String | | data.council.agendas\[\].attachments\[\].user.surname | Apellidos del usuario | String | | data.council.agendas\[\].attachments\[\].filename | Nombre del documento adjunto y extenión | String | | data.council.agendas\[\].attachments\[\].downloadUrl | Enlace de acceso al documento | String | | data.council.agendas\[\].attachments\[\].filesize | Tamaño del documento en bytes | String | | data.council.agendas\[\].participants | Conjunto de participantes que realizan el punto abierto | Array | | data.council.agendas\[\].participants\[\].type | Identifica el tipo de paso iniciado, puede tomar los siguietnes valores: <br>**SIGNATURE** -> Punto de firma. <br>**BIOMETRIC** -> Punto de biometría. <br>**INTERACTIVE_DOCS** -> PDFs interactivos. <br>**SCREEN_CAPTURE** -> Escáner de documentación. | String | | data.council.agendas\[\].participants\[\].agendaSignatoriesParticipantsAttachments | Información sobre el punto | Array | | data.council.agendas\[\].participants\[\].agendaSignatoriesParticipantsAttachments\[\].id | Identificador único | Integer | | data.council.agendas\[\].participants\[\].agendaSignatoriesParticipantsAttachments\[\].filename | Nombre del documento | String | | data.council.agendas\[\].participants\[\].agendaSignatoriesParticipantsAttachments\[\].url | Enlace de acceso al binario | String | #### 2\. Desglose de Objetos y Arrays Anidados ##### Objeto `assignedUser` (Agente Asignado) Perfil del profesional responsable de atender o gestionar la cita. - **`id`** (`Int`): Identificador único interno del agente en OVAC. - **`name`** / **`surname`** (`String`): Nombre y apellidos del profesional. - **`email`** (`String`): Correo electrónico corporativo del operario. - **`externalId`** (`String`): ID único del agente en el sistema externo del cliente. ##### Array `participants` (Ciudadanos Convocados) Listado de los ciudadanos registrados en la cita (asistentes principales, representantes o invitados). - **`name`** / **`surname`** (`String`): Nombre y apellidos del participante. _(Nota: Corregido de Integer a String)_. - **`email`** (`String`): Dirección de correo donde el ciudadano recibe las alertas y enlaces. - **`dni`** (`String`): Documento identificativo o código fiscal. - **`idCardType`** (`String`): Tipo de identificación (`"dni"`, `"nif"`, `"nie"`, `"passport"`, `"codiceFiscale"`, `"europeanDocument"`). - **`idCardCountry`** (`String`): Código del país emisor de la documentación (ISO 3166-1 alfa-2). - **`zipcode`** (`String`): Código postal registrado. ##### Objeto `statute` (Trámite Asociado) Información sobre el tipo de trámite o procedimiento administrativo que se ejecuta en la cita. - **`id`** (`Int`): ID de la instancia de asignación del trámite. - **`title`** (`String`): Nombre oficial del trámite (ej. `"TEST"`). - **`statuteId`** (`Int`): Identificador maestro del procedimiento dentro de la plataforma. ##### Array `agendas` (Puntos de Control y Flujo de Trabajo) Listado secuencial con las tareas, hitos y recolección de evidencias configuradas para el trámite. - **`id`** (`Int`): Identificador único del punto o paso de la agenda. - **`name`** (`String`): Nombre descriptivo de la acción (ej. `"Escaneo de documentación"`, `"Firma de documentación"`). - **`attachments`** (`Array`): Documentos aportados al punto _por el profesional de la entidad_. Contiene el objeto `user` (operador que lo subió), `filename`, `downloadUrl` y el `filesize` en bytes. Si fue subido de manera autónoma por el ciudadano, este objeto se devuelve vacío. - **`participants`** (`Array`): Colección con las interacciones multimedia y firmas ejecutadas por el ciudadano en este paso: - `type` (`String`): Tipo de acción interactiva ejecutada (`SIGNATURE` \[Firma electrónica\], `BIOMETRIC` \[Validación biométrica\], `INTERACTIVE_DOCS` \[Formularios PDF interactivos\], `SCREEN_CAPTURE` \[Escáner o captura de documentación\]). - `agendaSignatoriesParticipantsAttachments` (`Array`): Listado que aloja las evidencias binarias finales resultantes de la acción del ciudadano (ej. el DNI digitalizado o el contrato firmado), detallando su `id`, `filename` y la `url` segura de acceso al archivo. ## Ejemplos de Código y Peticiones ### 1\. Consulta GraphQL ``` graphql query CouncilInfo($councilExternalId: String!, $companyExternalId: String!) { council(externalId: $councilExternalId, companyExternalId: $companyExternalId) { state councilType dateStart dateRealStart dateEnd adminUrl noCelebrateComment observations internalNotes comment assignedUser { id name surname email externalId } participants { name surname email dni idCardType idCardCountry zipcode } statute { id title statuteId } agendas { id name attachments { user { id name surname } filename downloadUrl filesize } participants { type agendaSignatoriesParticipantsAttachments { id filename url } } } } } ``` ### 2\. Variables de la Petición (JSON Payload) ``` json { "councilExternalId": "Council_ID_EXT_9982", "companyExternalId": "API_TEST" } ``` ### 3\. Ejemplo de comando cURL ``` bash curl --location --globoff 'https://api.ovac.pre.councilbox.com/graphql' \ --header 'Content-Type: application/json' \ --header 'x-jwt-token: {{token}}' \ --data '{"query":"query CouncilInfo($councilExternalId: String!, $companyExternalId: String!){ council(externalId: $councilExternalId, companyExternalId: $companyExternalId){ state councilType dateStart dateRealStart dateEnd adminUrl noCelebrateComment observations internalNotes comment assignedUser { id name surname email externalId } participants { name surname email dni idCardType idCardCountry zipcode } statute { id title statuteId } agendas { id name attachments { user { id name surname } filename downloadUrl filesize } participants { type agendaSignatoriesParticipantsAttachments { id filename url } } } } }","variables":{"councilExternalId":"Council_ID_EXT_9982","companyExternalId":"API_TEST"}}' ``` ### 4\. Respuesta Esperada (200 OK) ``` json { "data": { "council": { "state": 60, "councilType": 5, "dateStart": "2026-04-21T08:00:47.339Z", "dateRealStart": "2026-04-21T07:31:23.016Z", "dateEnd": "2026-04-21T07:58:12.113Z", "adminUrl": "https://apitest.ovac.pre.councilbox.com/company/2191/council/64706/", "noCelebrateComment": "", "observations": "Observaciones de la cita", "internalNotes": "Notas internas del trámite", "comment": null, "assignedUser": { "id": 3477, "name": "API", "surname": "PROFESIONAL", "email": "alejandro.maneiro+apiprof@councilbox.com", "externalId": null }, "participants": [ { "name": "SOY EL PARTICIPANTE", "surname": "TEST", "email": "alejandro.maneiro+participante@councilbox.com", "dni": "77777777B", "idCardType": "dni", "idCardCountry": "ES" } ], "statute": { "id": 64888, "title": "TEST", "statuteId": 4685 }, "agendas": [ { "id": 88520, "name": "Escaneo de documentación", "attachments": [], "participants": [ { "type": "SCREEN_CAPTURE", "agendaSignatoriesParticipantsAttachments": [ { "id": 2664, "filename": "Documento_identificativo.png", "url": "https://api.ovac.pre.councilbox.com/file/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTA0ODksImlhdCI6MTc3Njc1ODM0N30.NpfjhF50QayagYCgE59xbnIau5sOxTKsXtL_HRYOJOs" } ] } ] }, { "id": 88519, "name": "PDF Interactivo", "attachments": [ { "user": { "id": 3477, "name": "API", "surname": "PROFESIONAL" }, "filename": "formulario_interactivo.pdf", "downloadUrl": "https://api.ovac.pre.councilbox.com/agendaAttachment/42106", "filesize": "3885" } ], "participants": [ { "type": "INTERACTIVE_DOCS", "agendaSignatoriesParticipantsAttachments": [ { "id": 2667, "filename": "formulario_interactivo.pdf", "url": "https://api.ovac.pre.councilbox.com/file/eyJhbGciOiJIUzI1NiIsInR5cCI6... " } ] } ] } ] } } } ``` > **Nota OpenAPI/Fern:** esta operación GraphQL se documenta como `/graphql/councilinfo-2` para que Fern pueda mostrarla como operación independiente. La ruta técnica real de ejecución es `POST /graphql`.
Was this page helpful?
Previous

Councils_External

Next

Cancel Appointment_External

Built with

Este método permite obtener información detallada y estructurada de una cita a partir de sus identificadores externos corporativos (councilExternalId y companyExternalId). Devuelve el estado actual de la convocatoria, el canal de atención, las marcas de tiempo de control, los datos del agente asignado, los datos de los ciudadanos participantes, el trámite asociado y el desglose de las fases de la agenda junto con las evidencias digitales recolectadas.

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)

ParámetroDescripciónRequeridoTipo
councilExternalIdId de la cita externoSIString
companyExternalIdIdentificador externo de la organización o entidadSIString

Campos de Respuesta (Payload)

La consulta agrupa la información del encuentro bajo el nodo raíz council con la siguiente taxonomía:

1. Datos Generales de la Cita (council)

ParámetroDescripciónTipo
dataObjeto del conjunto de datosObject
data.councilObjeto del la citaObject
data.council.stateEstado de la cita:
- ‘-1’: Cancelada
- 10: Confirmada
- 20: Sala abierta
- 25: Pausada
- 40: Finalizada
- 45: Procesando informe
- 60: Completa
- 65: Incompleta (no se ha realizado un paso requerido dentro del trámite propuesto)
Integer
data.council.councilTypeTipo de cita, puede tomar los siguientes valores:
- 5 -> Videoatención
- 6 -> Gestión
- 7 -> Presencial
Integer
data.council.dateStartFecha de la cita en UTCString
data.council.dateRealStartFecha en la que se ha iniciado la cita en UTCString
data.council.dateEndFecha de fin de la cita en UTCString
data.council.adminUrlEnlace de acceso del administradorString
data.council.noCelebrateCommentPuede tomar estos valores:
‘unavailable’ -> No disponible
‘not_interested’ -> No interesado
‘procedure_already_completed’ -> Proceso ya realizado
‘incorrect_data’ -> Datos incorrectos
‘difficult_access’ -> Problemas en el acceso
‘incompatible_browser’ -> Navegador incompatible
‘others’ -> Otro motivo
String
data.council.observationsSe almacena el detalle que introduce el agente para información previa de la cita, se muestra un pop-up y también son visibles desde el panel de la citaString
data.council.internalNotesNotas internas añadidas por el usuarios, no visibles por el participanteString
data.council.commentComentario, usado en citas anteriores a OVAC 7.0
-obsoleto-
String
data.council.assignedUserObjeto de usuario asignadoObject
data.council.assignedUser.idIdentificador del usuario asignadoInteger
data.council.assignedUser.nameNombre del usuario asignadoString
data.council.assignedUser.surnameApellidos del usuario asignadoString
data.council.assignedUser.emailEmail del usuario asignado para la recepción de notificacionesString
data.council.assignedUser.externalIdIdentificador externo del usuario asignado a la citaString
data.council.participantsConjunto de participantesArray
data.council.participants[].nameNombre del participanteString
data.council.participants[].surnameApellidos del participanteString
data.council.participants[].emailEmail para envío de notificación, en base al método de notificación solicitado.String
data.council.participants[].dniNúmero de identificación del participanteString
data.council.participants[].idCardTypeTipo de documento:
cif: Documento para empresas de España.
codiceFiscale: Documento de Italia.
dni: Documento de España.
europeanDocument: Documentos identificativos de europa.
nie: Documento extrajeros España
passport: Pasaporte
String
data.council.participants[].idCardCountryCódigo de país bajo ISO 3166-1 alfa-2String
data.council.participants[].zipcodeCódigo postalString
data.council.statuteObjeto del trámite realizadoObject
data.council.statute.idIdentificador del trámiteInteger
data.council.statute.titleNombre del trámiteString
data.council.statute.statuteIdIdentificador único del trámiteInteger
data.council.agendasConjunto de datos correspondientes a los puntos de la citaArray
data.council.agendas[].idIdentificador únicoInteger
data.council.agendas[].nameNombre el puntoString
data.council.agendas[].attachmentsConjunto de adjuntosArray
data.council.agendas[].attachments[].userObjeto correspondiente al usuario que adjunta documentación, siempre que haya sido el profesional, en el caso de haber sido subido por el participante el objeto estará vacío.Object
data.council.agendas[].attachments[].user.idIdentificador único del usuarioInteger
data.council.agendas[].attachments[].user.nameNombre del usuarioString
data.council.agendas[].attachments[].user.surnameApellidos del usuarioString
data.council.agendas[].attachments[].filenameNombre del documento adjunto y exteniónString
data.council.agendas[].attachments[].downloadUrlEnlace de acceso al documentoString
data.council.agendas[].attachments[].filesizeTamaño del documento en bytesString
data.council.agendas[].participantsConjunto de participantes que realizan el punto abiertoArray
data.council.agendas[].participants[].typeIdentifica el tipo de paso iniciado, puede tomar los siguietnes valores:
SIGNATURE -> Punto de firma.
BIOMETRIC -> Punto de biometría.
INTERACTIVE_DOCS -> PDFs interactivos.
SCREEN_CAPTURE -> Escáner de documentación.
String
data.council.agendas[].participants[].agendaSignatoriesParticipantsAttachmentsInformación sobre el puntoArray
data.council.agendas[].participants[].agendaSignatoriesParticipantsAttachments[].idIdentificador únicoInteger
data.council.agendas[].participants[].agendaSignatoriesParticipantsAttachments[].filenameNombre del documentoString
data.council.agendas[].participants[].agendaSignatoriesParticipantsAttachments[].urlEnlace de acceso al binarioString

2. Desglose de Objetos y Arrays Anidados

Objeto assignedUser (Agente Asignado)

Perfil del profesional responsable de atender o gestionar la cita.

  • id (Int): Identificador único interno del agente en OVAC.

  • name / surname (String): Nombre y apellidos del profesional.

  • email (String): Correo electrónico corporativo del operario.

  • externalId (String): ID único del agente en el sistema externo del cliente.

Array participants (Ciudadanos Convocados)

Listado de los ciudadanos registrados en la cita (asistentes principales, representantes o invitados).

  • name / surname (String): Nombre y apellidos del participante. (Nota: Corregido de Integer a String).

  • email (String): Dirección de correo donde el ciudadano recibe las alertas y enlaces.

  • dni (String): Documento identificativo o código fiscal.

  • idCardType (String): Tipo de identificación ("dni", "nif", "nie", "passport", "codiceFiscale", "europeanDocument").

  • idCardCountry (String): Código del país emisor de la documentación (ISO 3166-1 alfa-2).

  • zipcode (String): Código postal registrado.

Objeto statute (Trámite Asociado)

Información sobre el tipo de trámite o procedimiento administrativo que se ejecuta en la cita.

  • id (Int): ID de la instancia de asignación del trámite.

  • title (String): Nombre oficial del trámite (ej. "TEST").

  • statuteId (Int): Identificador maestro del procedimiento dentro de la plataforma.

Array agendas (Puntos de Control y Flujo de Trabajo)

Listado secuencial con las tareas, hitos y recolección de evidencias configuradas para el trámite.

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

  • name (String): Nombre descriptivo de la acción (ej. "Escaneo de documentación", "Firma de documentación").

  • attachments (Array): Documentos aportados al punto por el profesional de la entidad. Contiene el objeto user (operador que lo subió), filename, downloadUrl y el filesize en bytes. Si fue subido de manera autónoma por el ciudadano, este objeto se devuelve vacío.

  • participants (Array): Colección con las interacciones multimedia y firmas ejecutadas por el ciudadano en este paso:

    • type (String): Tipo de acción interactiva ejecutada (SIGNATURE [Firma electrónica], BIOMETRIC [Validación biométrica], INTERACTIVE_DOCS [Formularios PDF interactivos], SCREEN_CAPTURE [Escáner o captura de documentación]).

    • agendaSignatoriesParticipantsAttachments (Array): Listado que aloja las evidencias binarias finales resultantes de la acción del ciudadano (ej. el DNI digitalizado o el contrato firmado), detallando su id, filename y la url segura de acceso al archivo.

Ejemplos de Código y Peticiones

1. Consulta GraphQL

1query CouncilInfo($councilExternalId: String!, $companyExternalId: String!) {
2 council(externalId: $councilExternalId, companyExternalId: $companyExternalId) {
3 state
4 councilType
5 dateStart
6 dateRealStart
7 dateEnd
8 adminUrl
9 noCelebrateComment
10 observations
11 internalNotes
12 comment
13 assignedUser {
14 id
15 name
16 surname
17 email
18 externalId
19 }
20 participants {
21 name
22 surname
23 email
24 dni
25 idCardType
26 idCardCountry
27 zipcode
28 }
29 statute {
30 id
31 title
32 statuteId
33 }
34 agendas {
35 id
36 name
37 attachments {
38 user {
39 id
40 name
41 surname
42 }
43 filename
44 downloadUrl
45 filesize
46 }
47 participants {
48 type
49 agendaSignatoriesParticipantsAttachments {
50 id
51 filename
52 url
53 }
54 }
55 }
56 }
57}

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

1{
2 "councilExternalId": "Council_ID_EXT_9982",
3 "companyExternalId": "API_TEST"
4}

3. Ejemplo de comando cURL

$curl --location --globoff 'https://api.ovac.pre.councilbox.com/graphql' \
>--header 'Content-Type: application/json' \
>--header 'x-jwt-token: {{token}}' \
>--data '{"query":"query CouncilInfo($councilExternalId: String!, $companyExternalId: String!){ council(externalId: $councilExternalId, companyExternalId: $companyExternalId){ state councilType dateStart dateRealStart dateEnd adminUrl noCelebrateComment observations internalNotes comment assignedUser { id name surname email externalId } participants { name surname email dni idCardType idCardCountry zipcode } statute { id title statuteId } agendas { id name attachments { user { id name surname } filename downloadUrl filesize } participants { type agendaSignatoriesParticipantsAttachments { id filename url } } } } }","variables":{"councilExternalId":"Council_ID_EXT_9982","companyExternalId":"API_TEST"}}'

4. Respuesta Esperada (200 OK)

1{
2 "data": {
3 "council": {
4 "state": 60,
5 "councilType": 5,
6 "dateStart": "2026-04-21T08:00:47.339Z",
7 "dateRealStart": "2026-04-21T07:31:23.016Z",
8 "dateEnd": "2026-04-21T07:58:12.113Z",
9 "adminUrl": "https://apitest.ovac.pre.councilbox.com/company/2191/council/64706/",
10 "noCelebrateComment": "",
11 "observations": "Observaciones de la cita",
12 "internalNotes": "Notas internas del trámite",
13 "comment": null,
14 "assignedUser": {
15 "id": 3477,
16 "name": "API",
17 "surname": "PROFESIONAL",
18 "email": "alejandro.maneiro+apiprof@councilbox.com",
19 "externalId": null
20 },
21 "participants": [
22 {
23 "name": "SOY EL PARTICIPANTE",
24 "surname": "TEST",
25 "email": "alejandro.maneiro+participante@councilbox.com",
26 "dni": "77777777B",
27 "idCardType": "dni",
28 "idCardCountry": "ES"
29 }
30 ],
31 "statute": {
32 "id": 64888,
33 "title": "TEST",
34 "statuteId": 4685
35 },
36 "agendas": [
37 {
38 "id": 88520,
39 "name": "Escaneo de documentación",
40 "attachments": [],
41 "participants": [
42 {
43 "type": "SCREEN_CAPTURE",
44 "agendaSignatoriesParticipantsAttachments": [
45 {
46 "id": 2664,
47 "filename": "Documento_identificativo.png",
48 "url": "https://api.ovac.pre.councilbox.com/file/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTA0ODksImlhdCI6MTc3Njc1ODM0N30.NpfjhF50QayagYCgE59xbnIau5sOxTKsXtL_HRYOJOs"
49 }
50 ]
51 }
52 ]
53 },
54 {
55 "id": 88519,
56 "name": "PDF Interactivo",
57 "attachments": [
58 {
59 "user": {
60 "id": 3477,
61 "name": "API",
62 "surname": "PROFESIONAL"
63 },
64 "filename": "formulario_interactivo.pdf",
65 "downloadUrl": "https://api.ovac.pre.councilbox.com/agendaAttachment/42106",
66 "filesize": "3885"
67 }
68 ],
69 "participants": [
70 {
71 "type": "INTERACTIVE_DOCS",
72 "agendaSignatoriesParticipantsAttachments": [
73 {
74 "id": 2667,
75 "filename": "formulario_interactivo.pdf",
76 "url": "https://api.ovac.pre.councilbox.com/file/eyJhbGciOiJIUzI1NiIsInR5cCI6... "
77 }
78 ]
79 }
80 ]
81 }
82 ]
83 }
84 }
85}

Nota OpenAPI/Fern: esta operación GraphQL se documenta como /graphql/councilinfo-2 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.