{"name":"Tax Filing API","version":"1.0.0","endpoints":{"health":{"method":"GET","path":"/health","description":"Estado del servidor"},"process":{"method":"GET","path":"/api/tax-filing/350/process/:usuarioId/:periodo","description":"Inicia el proceso de llenado del Formulario 350","params":{"usuarioId":"ID del usuario en la base de datos","periodo":"Periodo en formato YYYY-MM (ej: 2026-01)"},"response":"Server-Sent Events (SSE) con progreso en tiempo real"},"status":{"method":"GET","path":"/api/tax-filing/350/status/:usuarioId","description":"Consulta si hay un proceso activo"},"cancel":{"method":"POST","path":"/api/tax-filing/350/cancel/:usuarioId","description":"Cancela un proceso activo"},"process300":{"method":"GET","path":"/api/tax-filing/300/process/:usuarioId/:periodo","description":"Llena y guarda el borrador del Formulario 300 (IVA). NO firma ni presenta.","params":{"usuarioId":"ID del usuario en la base de datos","periodo":"'auto', 'YYYY-N' o 'N'. N es el ordinal del periodo segun la periodicidad del contribuyente (1..6 bimestral, 1..3 cuatrimestral, 1 anual)"},"query":{"servicios":"monto de la base a declarar como servicios (casilla 53); opcional","guardar":"0 para llenar sin guardar","pdf":"0 para no descargar el PDF"},"response":"Server-Sent Events (SSE) con progreso en tiempo real"},"status300":{"method":"GET","path":"/api/tax-filing/300/status/:usuarioId","description":"Consulta si hay un proceso del 300 activo"}},"sseFormat":{"description":"Formato de eventos SSE","example":{"step":"login|formulario|retenciones|guardar|pdf|etc","status":"in_progress|completed|warning|error","message":"Mensaje descriptivo","data":{},"timestamp":"2026-01-24T12:00:00.000Z","usuarioId":29,"periodo":"2026-01"}}}