Skip to navigation

Get Appointment Information

View as Markdown

Este método permite obtener información detallada y estructurada de una cita a partir de su identificador único (councilId). Devuelve el estado 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 los puntos de la agenda (pasos, firmas y documentación recolectada).

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)

ParámetroDescripciónRequeridoTipo
councilIdIdentificador numérico único de la cita en la plataforma.SIInteger

Campos de Respuesta (Payload)

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. Bloques de Objetos Anidados

Objeto assignedUser (Agente Asignado)

Contiene la información del profesional que gestiona o atenderá la cita.

  • id (Int): ID interno del usuario.

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

  • email (String): Correo corporativo del agente.

  • externalId (String): Identificador del agente en los sistemas del cliente.

Array participants (Ciudadanos Convocados)

Listado con los datos identificativos del ciudadano o ciudadanos que asisten.

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

  • email (String): Destino de las notificaciones.

  • dni (String): Documento de identidad.

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

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

Objeto statute (Trámite / Procedimiento)

Taxonomía del trámite asociado a la cita.

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

  • title (String): Nombre comercial o técnico del trámite (ej. “TEST”).

  • statuteId (Int): Identificador maestro del procedimiento dentro de la organización.

Array agendas (Puntos de Control y Flujo de Trabajo)

Desglose secuencial de los puntos y acciones que componen la atención.

  • id (Int): ID único del punto del orden del día/trámite.

  • name (String): Título identificativo del paso (ej. “Escaneo de documentación”).

  • attachments (Array): Documentos aportados al punto por el profesional. Si fue subido por el ciudadano, este objeto se devuelve vacío. Contiene:

    • user (Object): Datos del profesional que lo adjuntó (id, name, surname).

    • filename (String): Nombre y extensión del archivo.

    • downloadUrl (String): Enlace directo de descarga.

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

  • participants (Array): Tareas e interacciones ejecutadas por los participantes en este punto:

    • type (String): Tipo de acción realizada (SIGNATURE [Firma], BIOMETRIC [Biometría], INTERACTIVE_DOCS [Formulario PDF], SCREEN_CAPTURE [Captura/Escáner de documento]).

    • agendaSignatoriesParticipantsAttachments (Array): Listado de evidencias binarias generadas por el ciudadano en este paso (ej. su DNI escaneado o el PDF interactivo ya firmado), incluyendo su id, filename y la url de acceso al archivo.

Ejemplos de Código y Peticiones

1. Consulta GraphQL

query CouncilInfo($councilId: Int!) {
council(id: $councilId) {
state
councilType
dateStart
dateRealStart
dateEnd
adminUrl
noCelebrateComment
observations
internalNotes
comment
assignedUser {
id
name
surname
email
externalId
}
participants {
name
surname
email
dni
idCardType
idCardCountry
}
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)

{
"councilId": 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 CouncilInfo($councilId: Int!){ council(id: $councilId){ state councilType dateStart dateRealStart dateEnd adminUrl noCelebrateComment observations internalNotes comment assignedUser { id name surname email externalId } participants { name surname email dni idCardType idCardCountry } statute { id title statuteId } agendas { id name attachments { user { id name surname } filename downloadUrl filesize } participants { type agendaSignatoriesParticipantsAttachments { id filename url } } } } }","variables":{"councilId":64706}}'

4. Respuesta Esperada (200 OK)

{
"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/eyJhbGciOiJIUzI1NiIsInR5cCI6... "
}
]
}
]
},
{
"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/eyJhbGciOiJIUzI1... "
}
]
}
]
}
]
}
}
}

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