Por qué esta migración es importante
SWIFT está retirando los formatos de mensaje MT heredados en favor del estándar ISO 20022, más rico en datos. Para los equipos de tesorería y finanzas, esto significa que sus pipelines de procesamiento de extractos bancarios deben evolucionar de MT940 a CAMT.053 antes de los plazos firmes.
Cronograma de migración de SWIFT
| Fecha | Hito | Impacto |
|---|---|---|
| Noviembre 2025 | Fin de la coexistencia MT-a-MX para pagos transfronterizos | Los mensajes PACS son ahora solo ISO 20022 |
| Noviembre 2026 | Direcciones estructuradas/híbridas obligatorias; MT101 multi-instrucción rechazado; Fase 1 de gestión de casos | Los formatos de dirección deben cumplir; algunos mensajes MT serán rechazados |
| Finales de 2026 | Comienza la suscripción opcional para recibir CAMT.052/.053/.054 | Las instituciones financieras pueden empezar a recibir extractos ISO nativos |
| Noviembre 2027 | Todas las IF deben recibir CAMT.053 de forma nativa | SWIFT deja de convertir formato MT a ISO; sus sistemas deben analizar CAMT directamente |
| Noviembre 2028 | Retiro completo de MT940/MT942/MT950/MT900/MT910 | Los formatos de extracto heredados ya no estarán disponibles; CAMT.052/.053/.054 son la única opción |
Qué cambia en su código
Antes: Solo MT940
from bankstatementparser import Mt940Parser
parser = Mt940Parser("statement.mt940")
df = parser.parse()
Después: Ambos formatos con detección automática
from bankstatementparser import create_parser, detect_statement_format
fmt = detect_statement_format("statement.xml") # o .mt940
parser = create_parser("statement.xml", fmt)
df = parser.parse() # Mismo esquema de DataFrame sin importar el formato
La función detect_statement_format() identifica si el archivo es MT940, CAMT.053, PAIN.001 o cualquier otro formato soportado. La función create_parser() devuelve el analizador correcto. Su código posterior funciona de manera idéntica independientemente del formato de origen.
CAMT.053 vs MT940: Diferencias clave
| Característica | MT940 | CAMT.053 |
|---|---|---|
| Riqueza de datos | Campos limitados | 3-5x más datos por transacción |
| Conjunto de caracteres | Limitado (charset SWIFT) | Unicode completo |
| Estructura | Texto plano con etiquetas | XML con namespaces |
| Informe de saldos | Solo apertura/cierre | Múltiples tipos de saldo |
| Referencias | Campo de referencia único | Múltiples tipos de referencia |
| Gestión de divisas | Básica | Multi-divisa completa con tipos de cambio |
Cómo ayuda el Analizador de extractos bancarios
- API unificada: Analice tanto MT940 como CAMT.053 con el mismo método
parse(), produciendo esquemas de DataFrame idénticos. - Detección automática: No necesita conocer el formato de antemano.
detect_statement_format()lo identifica automáticamente. - Agnóstico a namespaces: Gestiona cualquier variante de CAMT.053 (001.02, 001.04, o envoltorios específicos de bancos) sin configuración.
- Streaming: Procese archivos CAMT grandes (50 MB+, 50K+ transacciones) con memoria acotada.
- Pruebas de migración: Ejecute ambos analizadores en paralelo sobre el mismo rango de fechas para verificar la consistencia de la salida antes de cambiar.
Primeros pasos
pip install bankstatementparser
from bankstatementparser import create_parser, detect_statement_format
# Funciona con MT940 hoy, CAMT.053 mañana
for file in bank_statement_files:
fmt = detect_statement_format(file)
parser = create_parser(file, fmt)
df = parser.parse()
process(df) # Su código no cambia