{"openapi":"3.1.0","info":{"title":"API de asistencia","version":"1.0.0","description":"Consulta eventos, participantes, marcaciones y resultados de asistencia, y carga participantes desde otros sistemas. Guía completa en /desarrolladores."},"servers":[{"url":"https://upass.day/api/v1"}],"security":[{"claveApi":[]}],"paths":{"/yo":{"get":{"summary":"Prueba la clave: organización y permiso","responses":{"200":{"description":"Correcto","content":{"application/json":{"schema":{"type":"object","properties":{"datos":{"type":"object","properties":{"organizacion":{"type":"object","properties":{"id":{"type":"string"},"nombre":{"type":"string"}}},"permiso":{"enum":["LECTURA","ESCRITURA"]}}}},"required":["datos"]}}}},"401":{"description":"Falta la clave o no es válida (no_autenticado)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"La clave es de solo lectura (sin_permiso)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"El recurso no existe o es de otra organización (no_encontrado)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"El cuerpo supera 1 MB (cuerpo_demasiado_grande)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Datos inválidos o regla de negocio incumplida (datos_invalidos, regla_de_negocio)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Más de 120 solicitudes por minuto (limite_excedido)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/eventos":{"get":{"summary":"Lista los eventos de la organización","parameters":[{"name":"pagina","in":"query","required":false,"description":"Página (desde 1)","schema":{"type":"integer","minimum":1}},{"name":"porPagina","in":"query","required":false,"description":"Elementos por página (50 por omisión, máximo 200)","schema":{"type":"integer","minimum":1,"maximum":200}}],"responses":{"200":{"description":"Correcto","content":{"application/json":{"schema":{"type":"object","properties":{"datos":{"type":"array","items":{"$ref":"#/components/schemas/Evento"}},"paginacion":{"$ref":"#/components/schemas/Paginacion"}},"required":["datos","paginacion"]}}}},"401":{"description":"Falta la clave o no es válida (no_autenticado)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"La clave es de solo lectura (sin_permiso)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"El recurso no existe o es de otra organización (no_encontrado)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"El cuerpo supera 1 MB (cuerpo_demasiado_grande)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Datos inválidos o regla de negocio incumplida (datos_invalidos, regla_de_negocio)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Más de 120 solicitudes por minuto (limite_excedido)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/eventos/{eventoId}":{"get":{"summary":"Un evento","parameters":[{"name":"eventoId","in":"path","required":true,"description":"Id del evento","schema":{"type":"string"}}],"responses":{"200":{"description":"Correcto","content":{"application/json":{"schema":{"type":"object","properties":{"datos":{"$ref":"#/components/schemas/Evento"}},"required":["datos"]}}}},"401":{"description":"Falta la clave o no es válida (no_autenticado)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"La clave es de solo lectura (sin_permiso)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"El recurso no existe o es de otra organización (no_encontrado)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"El cuerpo supera 1 MB (cuerpo_demasiado_grande)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Datos inválidos o regla de negocio incumplida (datos_invalidos, regla_de_negocio)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Más de 120 solicitudes por minuto (limite_excedido)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/eventos/{eventoId}/salas":{"get":{"summary":"Salas del evento con sus jornadas","parameters":[{"name":"eventoId","in":"path","required":true,"description":"Id del evento","schema":{"type":"string"}}],"responses":{"200":{"description":"Correcto","content":{"application/json":{"schema":{"type":"object","properties":{"datos":{"type":"array","items":{"$ref":"#/components/schemas/Sala"}}},"required":["datos"]}}}},"401":{"description":"Falta la clave o no es válida (no_autenticado)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"La clave es de solo lectura (sin_permiso)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"El recurso no existe o es de otra organización (no_encontrado)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"El cuerpo supera 1 MB (cuerpo_demasiado_grande)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Datos inválidos o regla de negocio incumplida (datos_invalidos, regla_de_negocio)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Más de 120 solicitudes por minuto (limite_excedido)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/eventos/{eventoId}/participantes":{"get":{"summary":"Participantes del evento","parameters":[{"name":"eventoId","in":"path","required":true,"description":"Id del evento","schema":{"type":"string"}},{"name":"identificacion","in":"query","required":false,"description":"Filtra por número de identificación","schema":{"type":"string"}},{"name":"salaId","in":"query","required":false,"description":"Filtra por sala","schema":{"type":"string"}},{"name":"activa","in":"query","required":false,"description":"true o false","schema":{"enum":["true","false"]}},{"name":"pagina","in":"query","required":false,"description":"Página (desde 1)","schema":{"type":"integer","minimum":1}},{"name":"porPagina","in":"query","required":false,"description":"Elementos por página (50 por omisión, máximo 200)","schema":{"type":"integer","minimum":1,"maximum":200}}],"responses":{"200":{"description":"Correcto","content":{"application/json":{"schema":{"type":"object","properties":{"datos":{"type":"array","items":{"$ref":"#/components/schemas/Participante"}},"paginacion":{"$ref":"#/components/schemas/Paginacion"}},"required":["datos","paginacion"]}}}},"401":{"description":"Falta la clave o no es válida (no_autenticado)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"La clave es de solo lectura (sin_permiso)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"El recurso no existe o es de otra organización (no_encontrado)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"El cuerpo supera 1 MB (cuerpo_demasiado_grande)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Datos inválidos o regla de negocio incumplida (datos_invalidos, regla_de_negocio)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Más de 120 solicitudes por minuto (limite_excedido)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"Crea o actualiza un participante (la identificación es la clave)","description":"Requiere una clave con permiso de escritura.","parameters":[{"name":"eventoId","in":"path","required":true,"description":"Id del evento","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParticipanteEntrada"}}}},"responses":{"200":{"description":"Actualizado","content":{"application/json":{"schema":{"type":"object","properties":{"datos":{"$ref":"#/components/schemas/ResultadoGuardado"}},"required":["datos"]}}}},"201":{"description":"Creado","content":{"application/json":{"schema":{"type":"object","properties":{"datos":{"$ref":"#/components/schemas/ResultadoGuardado"}},"required":["datos"]}}}},"401":{"description":"Falta la clave o no es válida (no_autenticado)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"La clave es de solo lectura (sin_permiso)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"El recurso no existe o es de otra organización (no_encontrado)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"El cuerpo supera 1 MB (cuerpo_demasiado_grande)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Datos inválidos o regla de negocio incumplida (datos_invalidos, regla_de_negocio)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Más de 120 solicitudes por minuto (limite_excedido)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/eventos/{eventoId}/participantes/lote":{"post":{"summary":"Crea o actualiza hasta 500 participantes; si uno es inválido, no se guarda ninguno","description":"Requiere una clave con permiso de escritura.","parameters":[{"name":"eventoId","in":"path","required":true,"description":"Id del evento","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["participantes"],"properties":{"participantes":{"type":"array","minItems":1,"maxItems":500,"items":{"$ref":"#/components/schemas/ParticipanteEntrada"}}}}}}},"responses":{"200":{"description":"Guardados","content":{"application/json":{"schema":{"type":"object","properties":{"datos":{"type":"array","items":{"$ref":"#/components/schemas/ResultadoGuardado"}},"resumen":{"type":"object","properties":{"creados":{"type":"integer"},"actualizados":{"type":"integer"}}}}}}}},"401":{"description":"Falta la clave o no es válida (no_autenticado)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"La clave es de solo lectura (sin_permiso)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"El recurso no existe o es de otra organización (no_encontrado)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"El cuerpo supera 1 MB (cuerpo_demasiado_grande)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Datos inválidos o regla de negocio incumplida (datos_invalidos, regla_de_negocio)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Más de 120 solicitudes por minuto (limite_excedido)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/eventos/{eventoId}/participantes/{identificacion}":{"get":{"summary":"Un participante por su identificación","parameters":[{"name":"eventoId","in":"path","required":true,"description":"Id del evento","schema":{"type":"string"}},{"name":"identificacion","in":"path","required":true,"description":"Número de identificación","schema":{"type":"string"}}],"responses":{"200":{"description":"Correcto","content":{"application/json":{"schema":{"type":"object","properties":{"datos":{"$ref":"#/components/schemas/Participante"}},"required":["datos"]}}}},"401":{"description":"Falta la clave o no es válida (no_autenticado)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"La clave es de solo lectura (sin_permiso)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"El recurso no existe o es de otra organización (no_encontrado)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"El cuerpo supera 1 MB (cuerpo_demasiado_grande)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Datos inválidos o regla de negocio incumplida (datos_invalidos, regla_de_negocio)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Más de 120 solicitudes por minuto (limite_excedido)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"summary":"Retira la inscripción (no la borra; repetirlo no cambia nada)","description":"Requiere una clave con permiso de escritura.","parameters":[{"name":"eventoId","in":"path","required":true,"description":"Id del evento","schema":{"type":"string"}},{"name":"identificacion","in":"path","required":true,"description":"Número de identificación","schema":{"type":"string"}}],"responses":{"200":{"description":"Correcto","content":{"application/json":{"schema":{"type":"object","properties":{"datos":{"$ref":"#/components/schemas/Participante"}},"required":["datos"]}}}},"401":{"description":"Falta la clave o no es válida (no_autenticado)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"La clave es de solo lectura (sin_permiso)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"El recurso no existe o es de otra organización (no_encontrado)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"El cuerpo supera 1 MB (cuerpo_demasiado_grande)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Datos inválidos o regla de negocio incumplida (datos_invalidos, regla_de_negocio)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Más de 120 solicitudes por minuto (limite_excedido)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/eventos/{eventoId}/asistencia":{"get":{"summary":"Asistencia calculada de los participantes activos","parameters":[{"name":"eventoId","in":"path","required":true,"description":"Id del evento","schema":{"type":"string"}},{"name":"identificacion","in":"query","required":false,"description":"Filtra por número de identificación","schema":{"type":"string"}},{"name":"salaId","in":"query","required":false,"description":"Filtra por sala","schema":{"type":"string"}},{"name":"estado","in":"query","required":false,"description":"Filtra por estado","schema":{"enum":["ALCANZADO","EN_CAMINO","NO_ALCANZA"]}},{"name":"pagina","in":"query","required":false,"description":"Página (desde 1)","schema":{"type":"integer","minimum":1}},{"name":"porPagina","in":"query","required":false,"description":"Elementos por página (50 por omisión, máximo 200)","schema":{"type":"integer","minimum":1,"maximum":200}}],"responses":{"200":{"description":"Correcto","content":{"application/json":{"schema":{"type":"object","properties":{"evento":{"type":"object","properties":{"id":{"type":"string"},"modoCalculo":{"enum":["MARCACIONES","HORAS"]},"porcentajeMinimo":{"type":"number"}}},"datos":{"type":"array","items":{"$ref":"#/components/schemas/ResultadoAsistencia"}},"paginacion":{"$ref":"#/components/schemas/Paginacion"}}}}}},"401":{"description":"Falta la clave o no es válida (no_autenticado)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"La clave es de solo lectura (sin_permiso)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"El recurso no existe o es de otra organización (no_encontrado)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"El cuerpo supera 1 MB (cuerpo_demasiado_grande)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Datos inválidos o regla de negocio incumplida (datos_invalidos, regla_de_negocio)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Más de 120 solicitudes por minuto (limite_excedido)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/eventos/{eventoId}/marcaciones":{"get":{"summary":"Marcaciones ordenadas por su última modificación, para sincronizar","parameters":[{"name":"eventoId","in":"path","required":true,"description":"Id del evento","schema":{"type":"string"}},{"name":"actualizadasDesde","in":"query","required":false,"description":"Solo las modificadas desde este instante (incluido). Usa la mayor actualizadaEn recibida.","schema":{"type":"string","format":"date-time","description":"Instante en UTC (ISO 8601)"}},{"name":"salaId","in":"query","required":false,"description":"Filtra por sala","schema":{"type":"string"}},{"name":"pagina","in":"query","required":false,"description":"Página (desde 1)","schema":{"type":"integer","minimum":1}},{"name":"porPagina","in":"query","required":false,"description":"Elementos por página (50 por omisión, máximo 200)","schema":{"type":"integer","minimum":1,"maximum":200}}],"responses":{"200":{"description":"Correcto","content":{"application/json":{"schema":{"type":"object","properties":{"datos":{"type":"array","items":{"$ref":"#/components/schemas/Marcacion"}},"paginacion":{"$ref":"#/components/schemas/Paginacion"}},"required":["datos","paginacion"]}}}},"401":{"description":"Falta la clave o no es válida (no_autenticado)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"La clave es de solo lectura (sin_permiso)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"El recurso no existe o es de otra organización (no_encontrado)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"El cuerpo supera 1 MB (cuerpo_demasiado_grande)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Datos inválidos o regla de negocio incumplida (datos_invalidos, regla_de_negocio)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Más de 120 solicitudes por minuto (limite_excedido)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"webhooks":{"participante.inscrito":{"post":{"summary":"participante.inscrito","description":"Cuerpo firmado con HMAC-SHA256 en la cabecera X-Firma (t=<unix>,v1=<hex>). Responde 2xx en menos de 10 s.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Entrega"}}}},"responses":{"200":{"description":"Recibido"}}}},"participante.retirado":{"post":{"summary":"participante.retirado","description":"Cuerpo firmado con HMAC-SHA256 en la cabecera X-Firma (t=<unix>,v1=<hex>). Responde 2xx en menos de 10 s.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Entrega"}}}},"responses":{"200":{"description":"Recibido"}}}},"marcacion.registrada":{"post":{"summary":"marcacion.registrada","description":"Cuerpo firmado con HMAC-SHA256 en la cabecera X-Firma (t=<unix>,v1=<hex>). Responde 2xx en menos de 10 s.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Entrega"}}}},"responses":{"200":{"description":"Recibido"}}}},"marcacion.anulada":{"post":{"summary":"marcacion.anulada","description":"Cuerpo firmado con HMAC-SHA256 en la cabecera X-Firma (t=<unix>,v1=<hex>). Responde 2xx en menos de 10 s.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Entrega"}}}},"responses":{"200":{"description":"Recibido"}}}},"asistencia.minimo_alcanzado":{"post":{"summary":"asistencia.minimo_alcanzado","description":"Cuerpo firmado con HMAC-SHA256 en la cabecera X-Firma (t=<unix>,v1=<hex>). Responde 2xx en menos de 10 s.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Entrega"}}}},"responses":{"200":{"description":"Recibido"}}}},"evento.finalizado":{"post":{"summary":"evento.finalizado","description":"Cuerpo firmado con HMAC-SHA256 en la cabecera X-Firma (t=<unix>,v1=<hex>). Responde 2xx en menos de 10 s.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Entrega"}}}},"responses":{"200":{"description":"Recibido"}}}}},"components":{"securitySchemes":{"claveApi":{"type":"http","scheme":"bearer","description":"Clave de API creada en Administración > Integraciones (ak_...)."}},"schemas":{"Paginacion":{"type":"object","properties":{"pagina":{"type":"integer"},"porPagina":{"type":"integer"},"total":{"type":"integer"},"totalPaginas":{"type":"integer"}}},"Error":{"type":"object","properties":{"error":{"type":"object","required":["codigo","mensaje"],"properties":{"codigo":{"enum":["no_autenticado","sin_permiso","limite_excedido","cuerpo_demasiado_grande","datos_invalidos","no_encontrado","regla_de_negocio","error_interno"]},"mensaje":{"type":"string"},"detalles":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}},"description":"Mensajes por campo; en lotes, participantes.<índice>.<campo>"}}}}},"Evento":{"type":"object","properties":{"id":{"type":"string"},"nombre":{"type":"string"},"slug":{"type":"string"},"fechaInicio":{"type":"string","format":"date","description":"Fecha local del evento (YYYY-MM-DD)"},"fechaFin":{"type":"string","format":"date","description":"Fecha local del evento (YYYY-MM-DD)"},"zonaHoraria":{"type":"string","examples":["America/Guayaquil"]},"activo":{"type":"boolean"},"modoCalculo":{"enum":["MARCACIONES","HORAS"]},"porcentajeMinimo":{"type":"number"},"urlPortal":{"type":"string","format":"uri"}}},"Sala":{"type":"object","properties":{"id":{"type":"string"},"nombre":{"type":"string"},"descripcion":{"type":["string","null"]},"activa":{"type":"boolean"},"jornadas":{"type":"array","items":{"type":"object","properties":{"fecha":{"type":"string","format":"date","description":"Fecha local del evento (YYYY-MM-DD)"},"horaInicio":{"type":"string","examples":["08:30"]},"horaFin":{"type":"string","examples":["17:30"]},"ventanasPrevistas":{"type":["integer","null"]}}}}}},"ParticipanteEntrada":{"type":"object","required":["identificacion","nombres","apellidos","correo","salaId","modalidad"],"properties":{"identificacion":{"type":"string","description":"Cédula, pasaporte u otro documento"},"nombres":{"type":"string"},"apellidos":{"type":"string"},"correo":{"type":"string","format":"email"},"telefono":{"type":"string"},"salaId":{"type":"string"},"modalidad":{"enum":["PRESENCIAL","VIRTUAL"]}}},"ResultadoGuardado":{"type":"object","properties":{"identificacion":{"type":"string"},"resultado":{"enum":["creado","actualizado"]}}},"Participante":{"type":"object","properties":{"inscripcionId":{"type":"string"},"identificacion":{"type":"string"},"nombres":{"type":"string"},"apellidos":{"type":"string"},"correo":{"type":"string"},"telefono":{"type":["string","null"]},"salaId":{"type":"string"},"sala":{"type":"string"},"modalidad":{"enum":["PRESENCIAL","VIRTUAL"]},"activa":{"type":"boolean"},"inscritoEn":{"type":"string","format":"date-time","description":"Instante en UTC (ISO 8601)"},"primerAccesoEn":{"type":["string","null"],"format":"date-time","description":"Instante en UTC (ISO 8601)"},"anonimizado":{"type":"boolean","description":"Datos personales reemplazados por el plazo de conservación o a pedido"}}},"ResultadoAsistencia":{"type":"object","properties":{"participante":{"$ref":"#/components/schemas/Participante"},"asistencia":{"type":"object","properties":{"logrado":{"type":"number","description":"Marcaciones válidas o minutos"},"total":{"type":"number","description":"Ventanas previstas o abiertas, o minutos"},"porcentaje":{"type":"number"},"estado":{"enum":["ALCANZADO","EN_CAMINO","NO_ALCANZA"]},"alcanzaMinimo":{"type":"boolean"},"necesario":{"type":"number"}}}}},"Marcacion":{"type":"object","properties":{"id":{"type":"string"},"inscripcionId":{"type":"string"},"identificacion":{"type":"string"},"salaId":{"type":"string"},"ventana":{"type":"object","properties":{"id":{"type":"string"},"tipo":{"enum":["ENTRADA","SALIDA"]},"fecha":{"type":"string","format":"date","description":"Fecha local del evento (YYYY-MM-DD)"},"abiertaEn":{"type":"string","format":"date-time","description":"Instante en UTC (ISO 8601)"},"cerradaEn":{"type":["string","null"],"format":"date-time","description":"Instante en UTC (ISO 8601)"},"anulada":{"type":"boolean"}}},"registradaEn":{"type":"string","format":"date-time","description":"Instante en UTC (ISO 8601)"},"metodo":{"enum":["QR","IDENTIFICACION","CODIGO_VIRTUAL","AUTORREGISTRO","CORRECCION","JUSTIFICACION"]},"anulada":{"type":"boolean"},"sinConexion":{"type":"boolean"},"actualizadaEn":{"type":"string","format":"date-time","description":"Instante en UTC (ISO 8601)"}}},"Entrega":{"type":"object","required":["id","evento","creadoEn","datos"],"properties":{"id":{"type":"string","description":"Id de la entrega; igual a la cabecera X-Entrega"},"evento":{"enum":["participante.inscrito","participante.retirado","marcacion.registrada","marcacion.anulada","asistencia.minimo_alcanzado","evento.finalizado","webhook.prueba"]},"creadoEn":{"type":"string","format":"date-time","description":"Instante en UTC (ISO 8601)"},"datos":{"type":"object","description":"Depende del evento (ver la guía)"}}}}}}