API
Mawidabp expone una API REST JSON para consultar hallazgos (observaciones y oportunidades de mejora) desde sistemas externos. La API es de solo lectura y está pensada para integraciones con herramientas de BI, CMDB, sistemas de tickets o dashboards corporativos.
Base URL
Cada organización tiene su propio subdominio:
https://<organizacion>.mawidabp.com/api/v1
Por ejemplo, para una organización llamada demo:
https://demo.mawidabp.com/api/v1
Autenticación
Todos los endpoints usan JWT (JSON Web Token). El token se envía en el header Authorization con el prefijo Bearer:
Authorization: Bearer <token_jwt>
El token se obtiene desde Mawidabp (mismo lugar que se usa para Power BI): Seguimiento → Hallazgos → sección Enlace. El perfil del usuario debe tener permisos para ver el token.
Errores de autenticación
| Código | Mensaje | Descripción |
|---|---|---|
| 401 | Token inválido | El token proporcionado no es válido. |
| 401 | Token vencido | El token expiró y debe renovarse. |
Ejemplo de respuesta de error:
{
"error": "Token inválido"
}
Endpoints
GET /api/v1/:completion_state/findings
Devuelve los hallazgos (observaciones y oportunidades) filtrados por estado de completitud.
Parámetros de ruta
| Parámetro | Tipo | Requerido | Valores | Descripción |
|---|---|---|---|---|
completion_state | string | sí | complete, incomplete | Filtra por estado. |
Estados agrupados por completion_state
incomplete devuelve hallazgos en:
- En proceso de implementación
- No confirmada
- Confirmada
- Sin respuesta
- Implementada
- Notificar
complete devuelve hallazgos en:
- Implementada / Auditada
- Desestimada / No aplica
- Riesgo asumido
- Difiere criterio
Respuesta
200 OK, array JSON donde cada elemento es un hallazgo.
| Campo | Tipo | Descripción |
|---|---|---|
Informe | string | Identificación del informe. |
Proyecto | string | Nombre del proyecto del plan. |
Fecha de emisión | string | Fecha de emisión del informe (DD/MM/AA). |
Acta | string | Resumen / acta del informe definitivo. |
Unidad organizativa | string | Nombre de la unidad organizativa. |
Unidad de negocio | string | Nombre de la unidad de negocio. |
Código | string | Código único del hallazgo. |
Id | string | Identificador numérico. |
Etiquetas | string | Etiquetas separadas por coma. |
Título | string | Título del hallazgo. |
Observación / Oportunidad | string | Descripción detallada. |
Estado | string | Estado actual (ver tabla de estados). |
Riesgo | string | Alto, Medio o Bajo. |
Prioridad | string | Alta, Media o Baja. |
Efecto | string | Efecto o impacto del hallazgo. |
Responsable | string | Responsables de proceso asignados. |
Auditados | string | Usuarios auditados asignados. |
Auditores | string | Auditores asignados. |
Buena práctica | string | Buena práctica relacionada. |
Proceso | string | Proceso de negocio asociado. |
Objetivo de control | string | Objetivo de control relacionado. |
Fecha de origen | string | Fecha de origen del hallazgo. |
Fecha de implementación | string | Fecha comprometida. |
Fecha de solución | string | Fecha de cierre si ya fue solucionada. |
Fecha de cambio a "Implementada" | string | Cuándo pasó al estado Implementada. |
Fecha del último cambio de estado | string | Último cambio de estado registrado. |
Reprogramada | string | Sí / No. |
Cantidad de reprogramaciones | string | Número de reprogramaciones. |
Reiterada | string | ID del hallazgo padre si es reiterada. |
Comentarios de auditoría | string | Comentarios del auditor. |
Recomendaciones de auditoría | string | Acciones recomendadas. |
Respuesta/Acciones correctivas | string | Respuesta del auditado. |
Ejemplo
curl -X GET "https://demo.mawidabp.com/api/v1/incomplete/findings" \
-H "Authorization: Bearer <token>"
[
{
"Informe": "AI-2024-001",
"Proyecto": "Auditoría de sistemas",
"Fecha de emisión": "15/03/24",
"Acta": "Revisión del proceso de control de accesos",
"Unidad organizativa": "Tecnología",
"Unidad de negocio": "Sistemas de Información",
"Código": "O001",
"Id": "12345",
"Etiquetas": "seguridad, accesos",
"Título": "Deficiencia en gestión de contraseñas",
"Observación / Oportunidad": "Se detectó que las políticas de contraseñas no cumplen con los estándares mínimos de seguridad.",
"Estado": "En proceso de implementación",
"Riesgo": "Alto",
"Prioridad": "Alta",
"Efecto": "Exposición a accesos no autorizados",
"Responsable": "Juan Pérez, María García",
"Auditados": "Carlos López",
"Auditores": "Ana Martínez, Pedro Sánchez",
"Buena práctica": "Seguridad de la información",
"Proceso": "Control de accesos",
"Objetivo de control": "Gestión de credenciales",
"Fecha de origen": "01/01/24",
"Fecha de implementación": "30/04/24",
"Fecha de solución": "-",
"Reprogramada": "No",
"Cantidad de reprogramaciones": "0",
"Reiterada": "",
"Comentarios de auditoría": "Se requiere actualización de políticas",
"Recomendaciones de auditoría": "Implementar política de contraseñas según ISO 27001",
"Respuesta/Acciones correctivas": "Se iniciará el proceso de actualización en el próximo mes"
}
]
GET /api/v1/weaknesses
Devuelve observaciones definitivas aprobadas. Útil para integraciones que sólo necesitan el subset de observaciones oficialmente aprobadas por el comité.
Respuesta
200 OK, array JSON.
| Campo | Tipo | Descripción |
|---|---|---|
Código | string | Código único de la observación. |
Id | string | Identificador numérico. |
Título | string | Título de la observación. |
Estado | string | Estado actual. |
Riesgo | string | Nivel de riesgo. |
Fecha de origen | string | Fecha de origen. |
Fecha de implementación | string | Fecha comprometida. |
Fecha de solución | string | Fecha de cierre si aplica. |
Campos adicionales opcionales
Según la configuración de la organización, pueden incluirse:
| Campo | Tipo | Descripción |
|---|---|---|
Fecha de creación | string | Fecha de aprobación. |
Importancia | string | Valor de importancia (0.10, 0.25, 0.65). |
Vencimiento | string | Valor de vencimiento (0 a 1). |
Gestión por importancia | string | Porcentaje de gestión. |
También pueden aparecer columnas dinámicas basadas en grupos de etiquetas configurados en la organización.
Ejemplo
curl -X GET "https://demo.mawidabp.com/api/v1/weaknesses" \
-H "Authorization: Bearer <token>"
[
{
"Código": "O001",
"Id": "12345",
"Título": "Deficiencia en gestión de contraseñas",
"Estado": "En proceso de implementación",
"Riesgo": "Alto",
"Fecha de origen": "01/01/24",
"Fecha de implementación": "30/04/24",
"Fecha de solución": "-"
}
]
Valores de referencia
Estados
| Valor | Descripción |
|---|---|
En proceso de implementación | Hallazgo siendo trabajado. |
No confirmada | Pendiente de confirmación. |
Confirmada | Hallazgo confirmado. |
Sin respuesta | Aguardando respuesta del auditado. |
A regularizar | En espera de regularización. |
Implementada | Implementación completada, pendiente de verificación. |
Implementada / Auditada | Verificado y cerrado. |
Riesgo asumido | Riesgo aceptado por la organización. |
Notificar | Requiere notificación. |
Incompleta | Información incompleta. |
Reiterada | Hallazgo recurrente. |
Anulada | Hallazgo anulado. |
Difiere criterio | Diferencia de interpretación. |
Desestimada / No aplica | Hallazgo desestimado o no aplicable. |
Falla | Implementación fallida. |
Niveles de riesgo
Alto, Medio, Bajo.
Niveles de prioridad
Alta, Media, Baja.
Respuestas vacías
Un endpoint sin resultados devuelve un array vacío:
[]
No devuelve 404.
Buenas prácticas
- Cacheá cuando puedas: la API no tiene rate limiting explícito, pero está pensada para consumo periódico, no para llamadas en bucle. Una actualización cada 15 minutos alcanza para la mayoría de los casos.
- Guardá el token en un lugar seguro: un gestor de secretos, una variable de entorno cifrada, una configuración del pipeline. No en el código.
- Manejá los errores 401 regenerando el token: si tu integración corre sin supervisión, vale la pena alertar cuando el token expira.
Soporte
Para dudas, nuevas necesidades de endpoints o problemas, escribí a soporte@mawidabp.com.