Perfil del usuario autenticado
Devuelve el perfil del usuario y del tenant, incluyendo el certificador activo de la cuenta ("MOCK" hasta que QAPI active el certificador real en modo live). Requiere JWT — no acepta API keys.
Authorization
ApiKeyAuth API key con prefijo qapi_live_ o qapi_test_, o JWT (access_token) obtenido vía POST /v1/auth/login. QAPI detecta el tipo automáticamente por el prefijo del token.
In: header
Response Body
application/json
application/json
curl -X GET "https://example.com/v1/auth/me"{
"user": {
"id": "string",
"email": "user@example.com",
"nombre": "string",
"role": "owner",
"tenant_id": "string"
},
"tenant": {
"id": "string",
"nombre": "string",
"nit_emisor": "12345678",
"plan": "starter",
"certificador": "MOCK"
}
}{
"type": "https://docs.dtevia.com.gt/errors/validation-error",
"title": "VALIDATION_ERROR",
"status": 422,
"detail": "Error de validación",
"instance": "/v1/invoices",
"invalid_params": [
{
"field": "items.0.impuestos.0.monto_impuesto",
"message": "MontoImpuesto IVA inválido. Esperado ~12 (MontoGravable 100 × 0.12), recibido 10"
}
]
}Cerrar sesión
Cierra la sesión: revoca el refresh token de la cookie HttpOnly `qapi_rt` y limpia las cookies de auth. El access token sigue siendo válido hasta su expiración (15 min) — descartalo del lado del cliente (o se invalida al instante si la sesión está en la denylist). 🛡️ **CSRF**: igual que /refresh, exige el header `X-CSRF-Token` con el valor de la cookie `qapi_csrf`. Si enviás tu `Authorization: Bearer <access_token>`, QAPI verifica que el refresh pertenezca a tu usuario antes de revocarlo.
Listar facturas
Devuelve las facturas del tenant con paginación, ordenadas de más reciente a más antigua.