Flujo de dos etapas
El flujo de dos etapas (
initiate → process) ofrece ventajas importantes:
Muestre la tarifa antes de la confirmación
Permitir que el usuario revise la tarifa antes de confirmar evita sorpresas y reduce reclamaciones.Ejemplo de confirmación
Use la expiración a su favor
La iniciación expira en 24 horas. Esto permite:- Guardar la intención del usuario sin comprometer fondos
- Retomar el flujo si el usuario abandona la pantalla
- Validar datos sin impacto en el saldo
Tratamiento de horario
Valide el horario en el cliente
Antes de llamar a la API, verifique si está dentro del horario de funcionamiento:Comunique claramente al usuario
Si está fuera del horario, informe cuándo podrá realizarse la transferencia:Considere los feriados
El plugin no valida feriados bancarios, por eso mantenga un calendario actualizado:Idempotencia
Use claves de idempotencia
Para operaciones de escritura, siempre envíe el headerX-Idempotency-Key:
- Doble clic del usuario
- Retry automático en caso de timeout
- Fallas de red que ocultan respuestas de éxito
Genere claves en el cliente
Genere la clave de idempotencia antes de hacer la solicitud y guárdela hasta confirmar el resultado:Tratamiento de errores
Mapee errores a mensajes amigables
Diferencie errores recuperables
| Código | Recuperable | Acción |
|---|---|---|
BTF-0001 | No | Corrija los datos y reenvíe |
BTF-0010 | Sí | Espere el horario de funcionamiento |
BTF-0011 | Sí | Espere reset del límite (medianoche) |
BTF-0012 | No | Espere o use otra combinación |
BTF-2001 | Sí | Deposite fondos e intente nuevamente |
BTF-1000 | Sí | Retry con backoff exponencial |
Implemente retry inteligente
Seguridad
Encriptación en tránsito
Todas las comunicaciones utilizan TLS 1.3 o superior:- JD Consultores SPB (SOAP sobre HTTPS)
- Midaz Ledger (gRPC con TLS)
- CRM y Plugin Fees (HTTPS)
- Webhooks (HTTPS obligatorio)
Encriptación en reposo
Los datos sensibles son encriptados con AES-256-GCM:- Credenciales de JD
- PII (nombre, CPF/CNPJ, datos bancarios)
- Secretos de webhook
Valide datos en el servidor
Nunca confíe solo en la validación del cliente:Proteja datos sensibles
- No registre CPF/CNPJ en texto claro
- Use hash (SHA-256) para identificación en logs
- Enmascare datos en la interfaz:
***.***.***-00
Valide webhooks
Siempre verifique la firma HMAC-SHA256 antes de procesar:Prevención de fraudes
Detección de duplicados
El plugin implementa ventana de deduplicación configurable (por defecto: 60 segundos):- Clave:
SHA256(organizationId + senderAccountId + recipient + amount) - Almacenamiento: Redis con TTL configurable
- Acción: Solicitudes duplicadas retornan
409 Conflict
Rate limiting
Protección contra abuso por tenant:| Configuración | Valor por defecto |
|---|---|
| Algoritmo | Token Bucket |
| Límite | 100 solicitudes/minuto por organización |
| Respuesta | 429 Too Many Requests con header Retry-After |
Aislamiento multi-tenant
Todas las consultas son filtradas pororganization_id, garantizando que un tenant nunca acceda a datos de otro. El cache en Redis también utiliza prefijos por tenant.
Experiencia del usuario
Muestre el progreso
Para TED OUT, mantenga al usuario informado:Use webhooks para actualización en tiempo real
Configure webhooks y use WebSocket o push notifications para actualizar la interfaz:Ofrezca comprobante
Después de la conclusión, permita la descarga del comprobante con:- Fecha y hora de la transferencia
- Datos del remitente y destinatario
- Valor y tarifa
- Número de confirmación
- Código de control (para TED)
Reconciliación
Use identificadores consistentes
| Campo | Uso |
|---|---|
transferId | Identificador interno (Lerian) |
confirmationNumber | Número legible para el usuario |
controlNumber | Rastreo en SPB (JD) |
Mantenga historial local
Sincronice periódicamente con la API para garantizar consistencia:Límites y cuotas
Monitoree el uso de límites
Consulte el uso actual antes de iniciar transferencias:Comunique límites proactivamente
Cumplimiento con BACEN
Horario de funcionamiento
El sistema valida automáticamente el horario del BACEN para TED:- Días hábiles: Lunes a viernes
- Horario: 06:30 a 17:00 (horario de Brasilia, UTC-3)
- Feriados: Sistema consulta calendario de feriados nacionales
Las transferencias P2P no están sujetas a esta restricción y funcionan 24/7.
Límites de transferencia
El plugin respeta los límites configurados por cuenta y por organización:- Límite por transacción: Configurable por tenant (por defecto: R$ 50.000)
- Límite diario: Suma de todas las transferencias del día
- Límite mensual: Control de volumen agregado
Auditoría y rastreabilidad
Todo cambio de estado es registrado en la tablaTransferStatusHistory:
- Estado anterior y nuevo: Transición completa
- Timestamp: Fecha y hora exacta del cambio
- Motivo: Razón de la transición (especialmente para errores)
- Autor: Sistema, usuario o administrador
Implemente audit trail
Registre todas las acciones relacionadas a transferencias:Cumplimiento con LGPD
Minimización de datos
Recolecte solo datos estrictamente necesarios. CPF/CNPJ son encriptados y utilizados solo para validación y cumplimiento.Derecho al olvido
Endpoint administrativo para anonimización de datos personales:Retención limitada
| Tipo de dato | Período de retención |
|---|---|
| Datos transaccionales | 5 años (requisito BACEN) |
| Logs de aplicación | 90 días |
| Datos de auditoría | 5 años (anonimizados después de 2 años) |
Certificaciones y estándares
El plugin fue desarrollado siguiendo las mejores prácticas de la industria:
- OWASP Top 10: Mitigación de vulnerabilidades comunes
- CIS Benchmarks: Configuración segura de infraestructura
- ISO 27001: Prácticas de gestión de seguridad de la información
- SOC 2 Type II: Controles de seguridad, disponibilidad y confidencialidad
Lerian mantiene certificaciones SOC 2 Type II e ISO 27001, auditadas anualmente por terceros independientes.

