M-Pesa SMS 추출

모든 M-Pesa SMS 형식에서 거래 코드, 금액, 거래 상대방 인식

M-Pesa는 송금, 청구서 지불, 상품 구매, 입금, 출금 등 다섯 가지 SMS 템플릿 중 하나로 모든 거래를 확인합니다. 열을 한 번만 정의하면 AI가 템플릿 없이도 각 형식에서 거래 코드, 금액, 거래 상대방, 날짜를 읽어냅니다.

SMS 스크린샷당 5~10초 · 인쇄된 텍스트 최대 99% 정확도

SMS 스크린샷
5가지 SMS 형식
일괄 처리

M-Pesa SMS에서 추출할 수 있는 정보

M-Pesa 확인 문자는 앱 UI나 시각적 레이아웃 없이 160자로 구성된 일반 SMS입니다. 맞춤 열 추출을 사용하면 필드 이름을 지정하기만 하면 AI가 위치가 아닌 의미를 기준으로 다섯 가지 형식 모두에서 해당 필드를 찾아냅니다.

거래 코드

모든 SMS의 시작 부분에 있는 10자리 코드입니다. 처음 3자는 날짜를 나타냅니다(T = 2025). 중복 제거 및 KRA 참조를 위한 조정 키입니다.

금액 (Ksh)

Ksh1,500.00 형식으로 표시됩니다. AI는 각 금액 옆의 레이블을 읽어 동일한 메시지에 있는 다른 두 Ksh 값과 분리합니다.

거래 상대방

거래 유형에 따라 달라집니다. 송금 시 전체 이름, 청구서 지불 시 계정이 포함된 업체명, 상품 구매 시 판매자명, 입금 시 송금인 등입니다. 의미 기반 추출은 키워드가 아닌 역할로 식별합니다.

날짜 및 시간

모든 SMS에는 동아프리카 시간 기준의 타임스탬프(on 23/6/25 at 3:41 PM)가 포함됩니다. 기기에 무기한 저장되어 기록 및 조정에 영구적으로 사용할 수 있습니다.

M-Pesa는 앱 화면이 아닌 5가지 SMS 템플릿을 사용합니다

M-Pesa는 모든 사람이 스마트폰을 소유하지 않은 시장을 위해 설계되었습니다. 거래 내역은 일반 SMS 형태이며, 시각적 UI가 없습니다. 동일한 네 가지 필드가 다섯 가지 메시지 형식에 걸쳐 재구성됩니다. 템플릿 기반 도구와 화면 OCR은 시각적 구조를 기대하기 때문에 실패합니다. 다음은 이러한 도구들이 놓치는 부분입니다.

M-Pesa가 기존 추출 방식을 무너뜨리는 이유

01

필드를 고정할 앱 UI가 없습니다. Venmo와 PayPal은 레이아웃 단서가 있는 시각적 화면을 제공합니다. 하지만 M-Pesa 영수증은 원시 SMS일 뿐이며, 굵은 제목이나 색상이 없습니다. 앱 인터페이스용으로 설계된 OCR 도구는 시각적으로 고정할 대상이 없어 실패합니다.

02

하나의 메시지에 세 개의 Ksh 금액 — 그중 하나만 실제 금액입니다. 송금 금액, 거래 수수료, 새 잔액 모두 Ksh 접두사를 공유합니다. "Ksh 뒤의 숫자"를 가져오는 정규식 규칙은 자주 잘못된 값을 선택합니다. 정규식으로 M-Pesa SMS를 파싱하는 개발자는 메시지 유형별로 올바른 Ksh 항목을 분리해야 하며, 이는 형식에 따라 깨지기 쉬운 방식입니다.

03

거래 상대방 형식이 거래 유형에 따라 달라집니다. "JOHN DOE 0722000000님께 보냄"은 개인을 지칭합니다. "Naivas Supermarket에 지불함"은 가맹점을 지칭합니다. "계좌 1137238445에 대한 AC"는 청구서 지불입니다. 하나의 정규식 규칙으로는 세 가지를 모두 처리할 수 없습니다. 각 형식의 문법 구조가 다르기 때문입니다.

의미 기반 추출이 모든 M-Pesa SMS를 읽는 방법

01

거래 코드는 항상 첫 번째 단어입니다. 모든 M-Pesa SMS는 10자리 코드로 시작하며 "Confirmed"가 뒤따릅니다. AI는 이 일관된 시작점을 기준으로 삼아 메시지를 텍스트로 읽고, 위치를 기준으로 코드를 식별한 후, 그로부터 나머지 추출을 구성합니다.

02

레이블이 각 Ksh 금액의 의미를 결정합니다. "Transaction cost, Ksh6.00"은 수수료로 태그됩니다. "New M-PESA balance is Ksh1,205.10"은 잔액으로 태그됩니다. "sent to" 또는 "received" 앞에 오는 값만 금액 열에 입력되며, 위치 가정 없이 의미적으로 다른 세 가지 금액이 해결됩니다.

03

거래 상대방은 의미적 역할로 식별됩니다. SMS에 "sent to JOHN DOE", "paid to Naivas Supermarket", 또는 "received from MICHAEL FEDERSEN"이라고 표시되든, AI는 거래 상대방 열에 거래 상대방의 주체를 매핑합니다. 특정 키워드의 위치가 아닌 관계를 읽습니다.

"몇몇 사업체와 이야기하면서 한 가지를 발견했습니다. 거래량이 늘어나기 시작하면 조정 작업이 매우 빠르게 복잡해집니다."

r/nairobitechies의 M-Pesa + 은행 거래내역 조정 관련 토론

혼합된 M-Pesa SMS 형식을 하나의 깔끔한 스프레드시트로

1

M-Pesa SMS 스크린샷을 한 번에 업로드

지난주 M-Pesa 확인 메시지 폴더가 있습니다: 고객의 송금 영수증, 학비 납부 청구서 지불 SMS, 슈퍼마켓 상품 구매 확인, 공급업체의 입금 알림. 네 가지 다른 SMS 형식입니다. SMS 스레드의 JPG, PNG 또는 WebP 스크린샷을 모두 하나의 배치로 업로드하세요.

2

열을 한 번 정의 — 거래 코드, 금액, 거래 상대방, 날짜

필요한 열을 입력하세요. AI가 각 SMS 스크린샷을 독립적으로 읽습니다: 시작 단어에서 10자리 거래 코드를 찾고, 이체된 Ksh 금액을 추출하며, 동사가 "sent to", "paid to", "received from" 중 무엇이든 관계없이 역할에 따라 거래 상대방을 식별하고, 날짜 및 시간을 기록합니다.

3

통합된 하나의 테이블 획득 — 유형별 정렬 불필요

처리에는 스크린샷당 5-10초가 소요됩니다. 출력은 하나의 XLSX 또는 CSV 파일입니다: 네 개의 행, 네 개의 열, 거래 유형당 하나의 행입니다. 송금, 청구서 지불, 상품 구매, 입금 형식 모두 동일한 깔끔한 구조를 생성했습니다. 각 SMS를 열고 값을 수동으로 입력하는 것보다 약 18배 빠릅니다 .

5가지 M-Pesa SMS 형식 모두에서 제공되는 항목:

거래 코드금액 (Ksh)거래 상대방날짜
ABCDE123451,500.00JOHN DOE23/06/25
DY28XV6794,000.00KCB Paybill09/09/25
GH78KT901500.00Naivas Supermarket15/01/26

가장 효과적인 경우와 주의가 필요한 경우

SMS 스크린샷 추출의 한계를 이해하면 일관된 결과를 얻을 수 있습니다.

가장 적합한 경우

SMS 스레드 또는 Super App의 직접 기기 스크린샷. 메시지 받은편지함 또는 Super App 거래 내역의 전체 해상도 스크린샷은 최대 99% 정확도를 달성합니다. 기계가 렌더링한 SMS 텍스트는 대비가 높아 모델이 잘 처리합니다.

단일 배치 내 혼합 거래 유형. 송금, 청구서 지불, 상품 구매 및 출금 스크린샷을 함께 업로드할 수 있습니다. 처리 전에 유형별로 분류할 필요가 없습니다.

대량 과거 데이터 조정. 수십 개의 M-Pesa 확인 메시지가 하나의 정렬된 스프레드시트로 생성되어 QuickBooks Kenya 또는 Zoho Books로 바로 가져올 수 있습니다.

주의가 필요한 경우

WhatsApp 또는 Messenger를 통해 전달된 스크린샷. 메시징 플랫폼은 이미지를 압축합니다. 전달된 스크린샷은 해상도가 낮아 문자 수준의 정확도, 특히 거래 코드에서 정확도가 떨어질 수 있습니다.

아키텍처 경계: SMS 데이터 피드가 아닌 SMS 스크린샷. 이 접근 방식은 스크린샷으로 작동하지만, 휴대폰의 메시지 데이터베이스에서 SMS를 직접 구문 분석할 수는 없습니다. SMS 읽기 도구를 대체하기보다는 보완합니다.

매우 오래된 M-Pesa SMS 형식. 거래 코드는 2025년에 S-접두사에서 T-접두사로 변경되었습니다. AI는 알려진 변형을 처리하지만, 훨씬 오래된 형식은 부분적인 결과를 생성할 수 있습니다.

자주 묻는 질문

AI가 M-Pesa SMS에서 거래 금액, 수수료, 잔액을 어떻게 구분하나요?

모든 M-Pesa SMS에는 세 개의 Ksh 금액이 포함됩니다. AI는 각 값 앞에 오는 레이블을 읽습니다. Ksh1,500.00 sent to는 이체 금액, Transaction cost, Ksh6.00는 수수료, New M-PESA balance is Ksh1,205.10는 남은 잔액입니다. "sent to", "paid to", "received"와 같은 동작 동사가 앞에 오는 거래의 주체가 되는 값만 금액 열에 입력됩니다. 이렇게 하면 메시지를 수동으로 스캔할 때 발생하는 혼란을 방지할 수 있습니다.

거래 코드에 실제로 날짜가 인코딩되어 있나요? 그리고 그것이 왜 중요한가요?

네, 그렇습니다. M-Pesa 거래 코드의 첫 번째 문자는 연도, 두 번째 문자는 월, 세 번째 문자는 일을 나타냅니다. 즉, 거래 코드 필드만으로도 SMS 타임스탬프가 스크린샷에서 잘려 나간 경우에도 거래 날짜를 확인할 수 있습니다. 또한 범용 조정 키 역할을 합니다. 동일한 코드를 가진 두 개의 SMS 메시지는 동일한 거래이므로, 중복 제거 및 KRA 참조를 위한 가장 신뢰할 수 있는 필드입니다.

일반 SMS 스크린샷과 M-Pesa Super App 스크린샷을 동일한 배치에서 처리할 수 있나요?

네, 가능합니다. M-Pesa Super App은 거래 코드, 금액, 거래 상대방, 날짜 등 동일한 데이터를 시각적 확인 화면에 표시합니다. AI는 단일 배치에서 두 입력 형식을 모두 처리합니다. Super App 화면은 SMS보다 가맹점 이름을 더 읽기 쉽게 표시하는 반면, SMS에는 앱 화면에서 생략되는 경우가 있는 거래 수수료와 새 잔액이 포함됩니다. 열을 한 번 정의하면 AI가 각 스크린샷의 출처에 맞게 자동으로 조정합니다.

추출된 데이터를 KRA 세금 신고에 사용할 수 있나요?

KRA는 특히 모바일 머니를 주로 사용하는 소규모 기업의 경우 세금 신고를 위한 증빙 서류로 M-Pesa 명세서를 인정합니다. 각 거래는 거래 코드로 색인화되어 특정 지불을 KRA 기록과 연결합니다. 공식 신고를 위해서는 *234#를 누르거나 Super App을 통해 전체 M-Pesa PDF 명세서가 여전히 필요하지만, 추출된 SMS 데이터는 공식 명세서가 도착하기 전에 중간 조정 및 비용 추적을 위한 작업 스프레드시트를 제공합니다.

한 번에 수백 개의 M-Pesa 확인 메시지에서 데이터를 추출해야 한다면?

일괄 처리는 단일 업로드로 여러 스크린샷을 지원합니다. 모든 SMS 스크린샷을 함께 업로드하고, 거래 코드, 금액, 거래 상대방, 날짜의 네 가지 열을 정의하면 AI가 동일한 열 정의를 사용하여 모든 스크린샷을 처리합니다. 배치에 10개 또는 100개의 혼합 형식 M-Pesa 확인 메시지가 포함되어 있더라도 출력은 거래당 한 행씩 구성된 단일 Excel 파일이며, 회계 소프트웨어로 가져오거나 원장과 조정할 준비가 완료됩니다.

📮 contact email: [email protected]