ISO 20022 마이그레이션 가이드

SWIFT MT에서 ISO 20022 전환으로 이동

요약: SWIFT는 2028년 11월까지 MT940을 폐기할 예정입니다. Bank Statement Parser는 단일 API로 MT940과 CAMT.053을 모두 처리하므로 파싱 파이프라인이 전환 기간과 그 이후에도 작동합니다.

이 마이그레이션이 중요한 이유

SWIFT는 더욱 풍부한 ISO 20022 표준을 위해 레거시 MT 메시지 형식을 폐기하고 있습니다. 재무팀에게 이는 확정 기한 전에 은행 명세서 처리 파이프라인을 MT940에서 CAMT.053으로 전환해야 함을 의미합니다.

SWIFT 마이그레이션 타임라인

날짜 주요 이정표 영향
2025년 11월 국경 간 결제에 대한 MT-MX 공존 종료 PACS 메시지는 이제 ISO 20022 전용입니다
2026년 11월 구조화/하이브리드 주소 필수; MT101 다중 명령 거부; 사례 관리 1단계 주소 형식이 준수해야 하며 일부 MT 메시지가 거부됩니다
2026년 후반 CAMT.052/.053/.054 수신 옵트인 시작 금융 기관이 네이티브 ISO 명세서 수신을 시작할 수 있습니다
2027년 11월 모든 금융 기관은 CAMT.053을 네이티브로 수신해야 합니다 SWIFT가 MT에서 ISO 형식으로의 변환을 중단합니다. 시스템이 CAMT를 직접 파싱해야 합니다
2028년 11월 MT940/MT942/MT950/MT900/MT910 완전 폐기 레거시 명세서 형식을 더 이상 사용할 수 없습니다. CAMT.052/.053/.054만 유일한 옵션입니다

코드 변경 사항

이전: MT940 전용

from bankstatementparser import Mt940Parser

parser = Mt940Parser("statement.mt940")
df = parser.parse()

이후: 자동 감지를 통한 양쪽 형식 지원

from bankstatementparser import create_parser, detect_statement_format

fmt = detect_statement_format("statement.xml")  # or .mt940
parser = create_parser("statement.xml", fmt)
df = parser.parse()  # Same DataFrame schema regardless of format

detect_statement_format() 함수는 파일이 MT940, CAMT.053, PAIN.001 또는 기타 지원 형식인지 식별합니다. create_parser() 함수는 올바른 파서를 반환합니다. 다운스트림 코드는 소스 형식에 관계없이 동일하게 작동합니다.

CAMT.053 vs MT940: 주요 차이점

특징 MT940 CAMT.053
데이터 풍부함 제한된 필드 트랜잭션당 3~5배 더 많은 데이터
문자 집합 제한적 (SWIFT 문자 집합) 전체 유니코드
구조 태그가 포함된 플랫 텍스트 네임스페이스가 있는 XML
잔액 보고 시작/마감만 다양한 잔액 유형
참조 단일 참조 필드 다양한 참조 유형
통화 처리 기본적 환율이 포함된 완전한 다중 통화

Bank Statement Parser의 도움

시작하기

pip install bankstatementparser
from bankstatementparser import create_parser, detect_statement_format

# Works with MT940 today, CAMT.053 tomorrow, PDF anytime
for file in bank_statement_files:
    fmt = detect_statement_format(file)
    parser = create_parser(file, fmt)
    df = parser.parse()
    process(df)  # Your code doesn't change

아직 구조화된 CAMT 내보내기를 제공하지 않는 은행의 PDF 명세서의 경우:

from bankstatementparser.hybrid import smart_ingest

result = smart_ingest("statement.pdf")
assert result.verification.status == "VERIFIED"

전체 문서 읽기

대안과 비교 ❯ | 실제 사용 사례 보기 ❯