// 업무 자동화
은행 입금과 매출 세금계산서, 매월 사람 손 없이 대사
매월 회계 담당이 반나절 쓰던 매출 입금 대사를 0분으로. 홈택스 세금계산서와 은행 입금이 자동 매칭되고, 사람이 볼 건 미매칭 건뿐이다.
매출 세금계산서 200건에 입금 내역 네 개 은행. 매월 마감 다음 날 회계 담당이 엑셀 두 장을 띄워 거래처 이름과 금액을 눈으로 맞추던 그 반나절이 0분으로 줄어든다. 매칭은 자동으로 끝나고, 담당자가 볼 건 안 맞는 몇 건뿐이다.
이 글은 코드를 거의 안 쓴다. 무엇이 자동으로 처리되고 어디부터 사람이 남는지, 그리고 도입을 어떻게 요청하는지를 정리한다.
누가, 언제 겪는 일인가
매출이 거래처별로 흩어져 들어오는 회사의 경리·회계 담당이 매달 겪는다. 세금계산서는 홈택스에, 입금은 은행마다 따로 쌓인다. 마감 직후 두 자료를 받아 "이 세금계산서가 이 입금이 맞나"를 한 건씩 맞춰본다.
- 빈도: 매월 1회, 분기말은 부가세 신고 전에 한 번 더.
- 현재 방식: 홈택스에서 매출 세금계산서 내려받고, 은행 사이트 네다섯 곳을 돌며 입금 내역을 받아 엑셀에서 VLOOKUP·정렬로 손 매칭.
- 방치 비용: 거래처명이 조금만 달라도(㈜에이클라이언트 ↔ 에이클라이언트) 매칭이 깨져 야근. 분할 입금·결제기한 지연이 섞이면 마감이 하루 밀린다.
어디까지 자동화되나
자료 수집부터 매칭까지는 자동, 안 맞는 건의 판단만 사람이 한다. 경계는 한 장으로 충분하다.
| 단계 | 지금 (수기) | headless 도입 후 |
|---|---|---|
| 세금계산서 수집 | 홈택스 로그인·다운로드 | 자동 (홈택스 자격증명 1장) |
| 은행 입금 수집 | 은행마다 로그인·다운로드 | 자동 (등록된 모든 은행) |
| 거래처명·금액 대사 | 엑셀 수작업 | 자동 (금액 일치 + 거래처명 변형 매칭 + 날짜 허용오차) |
| 분할 입금 합산 | 눈으로 더하기 | 자동 (같은 거래처 부분 입금 합이 맞으면 분할 매칭) |
| 안 맞는 건 판단 | 전부 사람 | 사람 (남는 일) — 미매칭·후보만 |
매칭은 세 등급으로 나온다. 금액이 정확히 맞고 거래처명이 같고 작성일 ±3 영업일 안에 입금이 있으면 매칭. 거래처명이 부분만 맞거나 날짜 폭이 넓으면 후보 — 사람이 한 번 본다. 그 외는 미매칭. 매칭 건은 조용히 넘어가고, 후보와 미매칭만 담당자 앞에 쌓인다. 검토할 양 자체가 줄어든다.
한 건이 매칭되는 과정
세금계산서 한 장을 예로 든다. ㈜에이클라이언트에 4월 15일 1,100만 원 매출 세금계산서를 끊었다. 자동 대사는 이렇게 본다.
- 금액으로 후보를 좁힌다. 같은 기간 입금에서 1,100만 원 입금을 찾는다. 결제기한을 감안해 작성일부터 +30일까지 본다.
- 거래처명을 맞춘다. 입금 적요가 "에이클라이언트(주)"여도 매칭한다. 법인 표기·괄호·공백 차이를 변형으로 흡수한다.
- 날짜를 본다. 작성일 ±3 영업일 안이면 신뢰도 높음, 더 벌어지면 후보로 내린다.
까다로운 두 경우만 짚는다.
- 분할 입금: 1,100만 원이 600만 + 500만으로 이틀에 나뉘어 들어와도, 같은 거래처에서 같은 달 부분 금액의 합이 맞으면
매칭 (분할)로 묶는다. - 거래처명 불일치: 금액·날짜는 맞는데 적요에 사람 이름이나 약칭만 찍힌 경우다. 자동으로 단정하지 않고
후보로 내려 사람이 1초 보고 확정한다.
첫 달은 거래처명 변형 사전이 비어 있어 후보가 좀 많다. 사람이 후보를 확정할 때마다 그 변형이 규칙에 쌓여, 둘째 달부터 후보가 줄고 매칭이 는다.
비용과 ROI
수치는 가정이다. 자기 회사 매출 건수로 바꿔 보면 된다.
- 시간: 매출 200건·은행 4곳 기준, 수집·대사가 월 4~6시간. 자동화 후 사람이 보는 건 후보·미매칭 20~30건, 30분 안쪽.
- 금액: 회계 담당 시급을 보수적으로 잡아도 월 인건비 수십만 원어치 작업이 사라진다. 분기말 마감 지연으로 생기던 부가세 신고 직전 야근도 줄어든다.
- 요금: headless 는 데이터 수집 요청 단위로 과금한다. 매월 세금계산서 1회 + 은행 N건이면 슬롯이 크지 않다. 현재 가격은 요금 페이지에서 확인한다. 위 절감 추정과 실제 요금을 나란히 두고 판단하면 된다.
도입하는 법
비개발자가 그대로 결정하거나 전달할 수 있게 두 갈래로 둔다.
경로 1 — 개발자에게 요청. 아래 한 단락을 그대로 붙여 보내면 충분하다.
매월 마감 다음 날 자동으로 (1) 홈택스 매출 세금계산서
hometax.tax-invoices.sales.v1, (2) 등록된 은행 입금bank.transactions.cb.v1을 지난달치로 받아서, 거래처명·금액·날짜로 매칭한 결과를 CSV 와 팀 대시보드(또는 Notion)로 보내줘. 자격증명은 홈택스 1장 + 은행들로 콘솔에 미리 등록할게.
경로 2 — 낮은코드. 사람이 정기 일정만 잡으면 되는 형태다. 수집 한 줄은 이 정도다.
# 지난달 매출 세금계산서 + 은행 입금 받기 (CLI 예시)
h6s fetch hometax.tax-invoices.sales.v1 --month last --save sales.jsonl
h6s fetch bank.transactions.cb.v1 --provider all --month last --save inflow.jsonl받은 두 파일을 매칭하는 규칙(금액 일치, 거래처명 변형, 날짜 허용오차)은 한 번 합의해 고정한다. 이후에는 일정만 돌면 결과가 도착한다. 자연어 에이전트로 같은 흐름을 부르는 방법은 Claude Code 에서 5분 만에 거래내역 받아오기에 단계별로 있다.
안전한가
은행·홈택스 자격증명은 봉투 암호화로 저장하고, 데이터 수집 시점에만 메모리에서 복호화한다. 등록 후 평문은 어디에도 남지 않는다. 워크스페이스 단위로 접근이 갈려, 회계팀이 등록한 자격증명을 다른 데서 못 본다. 키 관리 모델은 보안 페이지에 정리돼 있다.
도입 체크리스트
- 자동화 대상 한 줄로 적기 — "매월 매출 세금계산서 ↔ 4개 은행 입금"
- 매칭 규칙 합의 — 금액 허용오차·거래처명 변형·날짜 폭
- 담당/결재자 정하기 — 미매칭 건 후속 처리 책임
- 첫 1개월 시범 — 매칭률 확인(첫 달 80% 안팎이면 정상, 미매칭 패턴을 규칙에 반영)
- 매월 마감 다음 날로 일정 고정
자주 막히는 곳
| 증상 | 원인 | 대응 |
|---|---|---|
| 매칭률이 첫 달부터 90%를 넘음 | 거래처명이 단순하거나 입금 적요가 깔끔 | 정상. 후보만 확인하고 넘어간다 |
| 후보가 비정상으로 많음 | 거래처명 변형 사전이 비어 있는 첫 달 | 정상. 확정할수록 규칙에 쌓여 다음 달 줄어든다 |
| 같은 입금이 두 세금계산서에 매칭 | 금액이 우연히 같은 건이 한 달에 둘 | 거래처명·날짜로 후보 분리, 사람이 한 번 판정 |
| 세금계산서는 있는데 입금이 없음 | 결제기한 미도래 또는 미수금 | 미매칭 으로 누적 — 다음 달 입금되면 자동 매칭 |
| 입금은 있는데 세금계산서가 없음 | 선수금·계약금 등 세금계산서 전 입금 | 대사 범위 밖. 사람이 별도 분류 |
더 읽기
- 같은 데이터를 자연어로 묻는 쪽: Slack 에서 자연어로 어제 매출 묻기
- 다른 자동화 사례를 먼저 보고 싶다면: 활용 사례 모음
- 자료를 받아오는 기본 흐름: Claude Code 에서 5분 만에 거래내역 받아오기