{"message":"API EMV QR Generator","version":"1.0.0","architecture":"Modular Resource-Based","webClient":"http://localhost:3000","documentation":"http://localhost:3000/docs","modules":{"qr":{"description":"Generación y gestión de códigos QR EMV","endpoints":["POST /qr/generate - Generar QR EMV","POST /qr/decode - Decodificar payload","POST /qr/validate-newpay - Validar con NEWPAY","GET /qr - Listar QR codes","GET /qr/:id - Obtener QR específico"]},"oauth":{"description":"Autenticación OAuth2 para sistemas externos (sin X-API-Key)","endpoints":["POST /oauth/token - Solicitar token de acceso (público)","POST /oauth/validate - Validar token existente (público)"]},"instantPayments":{"description":"Datos del comercio para procesamiento de pagos QR (Newpay)","endpoints":["GET /instant_payments/:qr_id - Obtener datos del comercio","GET /instant_payments/health - Estado del servicio"]},"resolve":{"description":"API Resolve - Resolución de datos extendidos de QRs EMV según CIMPRA 5.25","endpoints":["GET /resolve - Resolver datos de QR escaneado","GET /resolve/health - Estado del servicio resolve"]},"webhook":{"description":"Webhook de notificaciones - Recibe notificaciones asíncronas de estado de pagos desde Newpay","endpoints":["POST /webhook/payment-notification - Recibir notificación de estado de pago (OAuth requerido)","GET /webhook/failed-notifications - Obtener notificaciones fallidas (OAuth requerido)","POST /webhook/failed-notifications/:id/retry - Reintentar notificación fallida (OAuth requerido)","GET /webhook/health - Estado del sistema de webhooks (público)"]},"refunds":{"description":"Sistema de devoluciones - Gestión de refunds de pagos (integración con NewPay)","endpoints":["POST /refunds - Solicitar refund de un pago (OAuth requerido)","GET /refunds/history/:webhook_id - Historial de refunds de un pago (OAuth requerido)","GET /refunds/stats/merchant/:merchant_cuit - Estadísticas de refunds por merchant (OAuth requerido)","GET /refunds/health - Estado del servicio de refunds (público)","GET /refunds/persistence-info - Información sobre estrategia de persistencia (público)"]},"health":{"description":"Monitoreo y estado del sistema","endpoints":["GET /health - Estado de la API","GET /health/db - Estado de la base de datos","GET /health/newpay - Estado de NEWPAY","GET /health/oauth - Estado del sistema OAuth2","GET /health/full - Verificación completa"]},"monitoring":{"description":"Monitoreo avanzado del sistema de timeout de pagos","endpoints":["GET /monitoring/timeouts/active - Información de timeouts activos","GET /monitoring/payment-status/health - Estado del servicio de consulta de estado","POST /monitoring/test-status-check/:qr_id - Probar consulta de estado manualmente","POST /monitoring/timeout/manual-trigger/:qr_id - Disparar timeout manualmente"]}},"authentication":{"description":"Sistema de autenticación por API Key","publicEndpoints":["/health/*","/oauth/* (completamente públicos - sin X-API-Key)","/resolve (con token OAuth en query param)","/api","/docs","/integration-guide"],"protectedEndpoints":["/qr/* (requiere X-API-Key)"],"oauthEndpoints":["/instant_payments/* (requiere token OAuth)","/webhook/* (requiere token OAuth para notificaciones de Newpay)","/refunds/* (requiere token OAuth para gestión de devoluciones)"],"header":"X-API-Key: {your-api-key}"},"standards":{"emv":"EMVCo QR Code Specification","cimpra":"CIMPRA 530 - Argentina","openapi":"OpenAPI 3.0","architecture":"RESTful API + Resource-Based Modules"}}