# Webhook entrante — /perfil-completo ## Responsabilidad Recibir el payload de la app Reformix, validarlo y arrancar el pipeline en background. ## Endpoint POST /perfil-completo ## Respuesta inmediata (siempre) { "ok": true, "message": "Procesando renders en background..." } Nunca bloquear esperando al pipeline. ## Payload esperado { leadId: string (UUID), cliente: { nombre, telefono, email, provincia }, reforma: { tipo: "cocina" | "bano" | "salon" | "comedor" | "integral" | "otro", m2Suelo: number, calidad: "basica" | "media" | "premium", estructural: boolean, urgencia: "alta" | "media" | "baja", presupuestoTarget: number // en céntimos }, empresa: { tenantId: string, nombre: string }, zonas: Array<{ zona: string, notas: string[], fotos: { antes: string[], despues: string[] } }> } ## Validación Usar class-validator con decoradores en webhook.dto.ts. Si el payload no es válido → responder 400 con el error, no arrancar el pipeline.