pain.001은 기업이 거래 은행에 하나 이상의 계좌이체를 지시할 때 보내는 ISO 20022 메시지입니다. 정식 명칭은 Customer Credit Transfer Initiation입니다. "pain"은 지급 개시 메시지 계열, .001은 메시지 번호, pain.001.001.09 같은 접미사는 버전을 뜻합니다. XML 형식이며 공식 스키마(XSD)로 검증되고, 은행마다 다른 CSV 형식과 SWIFT MT101 텍스트 메시지를 대체합니다.
1분 만에 보는 pain.001#
- 보내는 주체: 기업(지급인 또는 그를 대리하는 대리인)이 자신의 거래 은행(지급인 은행)에 보냅니다.
- 담는 내용: 하나 이상의 계좌이체 묶음(배치)으로, 각 배치에는 출금 계좌, 요청 실행일, 그리고 수취인에게 보내는 여러 건의 지급이 들어 있습니다.
- 돌아오는 응답: 은행은 pain.002(Customer Payment Status Report)로 응답하며, ISO 사유 코드와 함께 파일 또는 개별 거래를 승인하거나 거부합니다.
- 그다음 단계: 승인되면 은행은 각 지시를 pacs.008 같은 은행 간 메시지로 변환하며, 기업은 이 메시지를 보지 않습니다.
- 사용되는 곳: EPC 룰북에 따른 SEPA 계좌이체, CBPR+에 따른 Swift 해외송금(
pain.001.001.09), 그리고 여러 국내 결제 제도. Pain001의 예시 코퍼스는 17개 시장의 42개 시나리오를 다룹니다.
pain.001 메시지의 구조#
모든 버전은 <CstmrCdtTrfInitn> 요소 안에 동일한 3단계 골격을 공유합니다.
| 단계 | 요소 | 담는 내용 |
|---|---|---|
| 1 | <GrpHdr> 그룹 헤더 | 메시지 ID, 생성 일시, 거래 건수(NbOfTxs), 합계 검증 금액(CtrlSum), 지시 당사자 |
| 2 | <PmtInf> 지급 정보 | 배치 하나: 지급 방법, 요청 실행일, 지급인, 지급인 계좌와 은행, 수수료 부담 주체 |
| 3 | <CdtTrfTxInf> 계좌이체 거래 | 지급 한 건: 엔드투엔드 참조번호, 금액과 통화, 수취인, 수취인 계좌와 은행, 송금 정보 |
파일 하나에는 여러 개의 <PmtInf> 배치가, 배치마다 여러 건의 <CdtTrfTxInf> 지급이 들어갈 수 있습니다. NbOfTxs와 CtrlSum은 파일 수준과 배치 수준 모두에 나타나며, 집계 대상인 지급과 일치해야 합니다. 이는 은행이 파일을 거부하는 가장 흔한 이유 중 하나입니다.
pain.001 전체 예시#
pain.001.001.09 형식의 SEPA 계좌이체 한 건으로, Pain001 예시 코퍼스에서 수정 없이 가져왔습니다. 공식 ISO 20022 XSD 검증을 통과합니다. 당사자, IBAN, BIC는 모두 가상입니다.
OML-SCT-20260921
2026-09-21T12:00:00
1
2200.00
Officine Meccaniche Lombarde SpA
20123
Milano
IT
Via Torino 15
SCT-20260921-IT-01
TRF
false
1
2200.00
SEPA
2026-09-22
Officine Meccaniche Lombarde SpA
20123
Milano
IT
Via Torino 15
IT48T78971134594OGDKY5VXE41
TLAOIT60
SLEV
OML-2026-0921-01
2200.00
MHXHITI0
Fonderia Bresciana Srl
25121
Brescia
IT
IT23J14887404856NF3794IGWXN
Fattura 117/2026
브라우저 데모에서 직접 데이터를 넣어 보세요. CSV로 pain.001 파일을 만들고, 데이터가 기기를 벗어나지 않은 채 공식 스키마로 검증합니다.
pain.001 버전#
ISO는 메시지 모델이 바뀌면 새 버전을 발행합니다. 은행과 결제 제도마다 받는 버전이 다르므로, 보내야 할 버전은 거래 은행의 채널 문서에 명시된 버전입니다.
| 버전 | 비고 |
|---|---|
| pain.001.001.03 | 오랫동안 쓰여 온 SEPA와 CGI의 대표 버전. 은행을 <BIC>로 식별 |
| .04, .05, .06, .07, .08 | 특정 채널에서 쓰이는 유지보수 버전 |
| pain.001.001.09 | CBPR+가 Swift용으로 채택한 2019년 버전. 은행을 <BICFI>로 식별하며 LEI와 UETR 전달을 지원 |
| .10, .11, .12 | 2019년 이후 개선 버전 |
| pain.001.001.13 | 2026년 3월 19일 ISO 발행. 선택 항목인 고유 거래 식별자(UnqTxIdr) 추가 |
호환성 매트릭스에서 Pain001이 생성·검증·상호 변환하는 버전을 확인할 수 있습니다.
pain.001과 관련 메시지 비교#
| 메시지 | 방향 | 용도 |
|---|---|---|
| pain.001 | 기업에서 거래 은행으로 | 계좌이체 지시(자금 송금) |
| pain.002 | 은행에서 기업으로 | pain.001 또는 pain.008의 처리 상태 보고: 승인, 일부 승인 또는 거부, 사유 코드 포함 |
| pain.008 | 기업에서 거래 은행으로 | 자동이체 출금 지시(위임에 따른 자금 회수) |
| pacs.008 | 은행 간 | pain.001 지시가 변환되는 은행 간 계좌이체 |
| MT101 | 기업 또는 은행, Swift 경유 | pain.001이 대체하는 기존 텍스트 메시지 "Request for Transfer". Swift는 2026년 8월 은행 간 MT101 중계 폐지를 연기했습니다(Swift). MT101에서 pain.001로 참조 |
용어집에서 나머지 ISO 20022 용어를 쉬운 말로 설명합니다.
은행이 pain.001 파일을 거부하는 이유#
형식이 올바른 XML이라도 파일이 거부될 수 있습니다. 검사는 여러 층으로 쌓여 있습니다.
- 스키마: 파일은 해당 버전의 공식 XSD 검증을 통과해야 합니다.
- 데이터 품질: IBAN 검증 숫자가 맞고, BIC 형식이 올바르며, 날짜와 금액이 유효하고,
NbOfTxs와CtrlSum이 지급 내역과 일치해야 합니다. - 결제 제도 규칙: SEPA, CBPR+, 국내 결제 제도는 허용 문자 집합이나 구조화된 우편 주소 같은 자체 제약을 추가합니다.
- 거래 은행의 프로필과 채널: 각 은행은 결제 제도 규칙 위에 자체 이용 가이드라인을 공개합니다.
Pain001은 파일이 은행에 도달하기 전에 처음 세 층을 검사하며, 네 번째 층은 은행이 확인해야 한다고 분명히 밝힙니다.
pain.001 파일 만드는 방법#
- 스프레드시트에서: Excel에서 pain.001로는 Excel이나 CSV 지급 목록을 검증된 파일로 변환합니다.
- 브라우저에서: 데모는 업로드 없이 로컬에서 파일을 생성하고 검증합니다.
- 코드나 명령줄에서: 오픈소스 pain001 라이브러리를 설치하고 다음을 실행하세요.
기술 레퍼런스는 모든 옵션을 다루고, 자주 묻는 질문은 재무, 운영, 엔지니어링 팀이 가장 많이 묻는 질문에 답합니다.
출처#
- ISO 20022 메시지 정의 및 아카이브: iso20022.org
- SEPA Credit Transfer 룰북: European Payments Council
- CBPR+와 MT101 중계: Swift