LabHub

은행 현장의 언어 · 정산과 대사, 그리고 전문 · 실습

대사와 차액정산, 그리고 대사가 못 잡는 것

LabHub 에서 이어서 보기

목표

우리 원장과 상대 기관의 정산 파일을 대사해 편차를 건 단위까지 좁히고, 차액정산 포지션을 내고, 대사로는 원리상 잡히지 않는 이중 이체까지 찾아낼 수 있게 됩니다. 그리고 그 결과를 고객사 밖으로 나갈 수 있는 형태로 쓸 수 있게 됩니다.

왜 중요한가

대사는 은행 현장에서 FDE 가 가장 자주 하게 되는 일입니다. 그리고 가장 자주 잘못하는 일이기도 합니다.

첫 번째 함정은 대사 대상입니다. 우리 원장에는 승인만 되고 매입이 오지 않은 건이 섞여 있는데, 이건 상대 정산 파일에 없는 것이 정상입니다. 상태를 가리지 않고 대사하면 정상인 수십 건이 이상 건으로 올라오고 진짜 편차가 그 안에 묻힙니다.

두 번째는 어긋남을 읽는 방법입니다. 건수와 금액을 따로 봐야 합니다. 건수가 같고 금액만 다르면 같은 건을 서로 다른 금액으로 알고 있다는 뜻이고, 금액이 같고 건수만 다르면 한쪽이 여러 건을 묶었거나 쪼갰다는 뜻입니다. 원인이 다르므로 고객사에 올리는 창구도 다릅니다.

세 번째가 가장 중요합니다. 대사는 "두 장부가 같은가" 를 묻지 "장부가 옳은가" 를 묻지 않습니다. 타임아웃 뒤 재전송으로 같은 돈이 두 번 나갔다면, 우리 원장에도 상대 파일에도 똑같이 두 건이 남습니다. 총계 대사는 완벽히 통과합니다. 잡히는 자리는 멱등키뿐입니다.

이번 사건은 이렇습니다. 2026-08-25 정산 파일을 받았는데 총액이 맞지 않는다는 연락이 왔습니다. 기관은 세 곳이고, 그중 두 곳이 서로 다른 방식으로 어긋나 있습니다.

단계

1. /root/bank/gen_settle.py 를 만들어 실행해 /root/bank/settle.db/root/bank/partner_20260825.csv 를 만드세요.
2. 정산 파일을 settle.dbpartner 표로 적재하고, /root/bank/recon_totals.csv 에 기관별 총계를 뽑으세요. 머리글은 counterparty,our_count,our_amount,partner_count,partner_amount,count_gap,amount_gap 이고 우리 쪽은 stateSETTLED 인 건만 셉니다.
3. /root/bank/only_ours.csv/root/bank/only_partner.csvmsg_id,counterparty,amount 머리글로 뽑고, /root/bank/side_counts.txtonly_ours=, only_partner=, naive_only_ours= 세 줄을 적으세요. 마지막 값은 state 를 가리지 않고 대사했을 때의 수입니다.
4. /root/bank/amount_mismatch.csvmsg_id,our_amount,partner_amount,gap 머리글로 금액이 다른 건을 뽑으세요.
5. /root/bank/dup_msg.csvidem_key,msg_id,amount 머리글로 중복된 멱등키에 달린 전문을 전부 남기고, /root/bank/dup.txtdup_keys=, dup_msgs=, extra_amount= 세 줄을 적으세요.
6. /root/bank/net_position.csvcounterparty,out_amount,in_amount,net 머리글로 기관별 차액정산 포지션을 내세요. net 은 수취에서 지급을 뺀 값입니다.
7. /root/bank/pending.txtauth_count=, auth_amount=, auth_out_amount=, auth_in_amount=, stale_auth=, suspense_account= 여섯 줄을 적으세요. stale_authsent_at2026-08-22 보다 이른 승인 건이고, suspense_account 는 가수금 계정과목 코드 2210 입니다.
8. /root/bank/recon_report.md## 대사 결과 요약, ## 건수는 같은데 금액이 다른 건, ## 금액은 같은데 건수가 다른 건, ## 대사로는 잡히지 않는 것, ## 차액정산 포지션, ## 개인정보 취급 여섯 절로 보고서를 쓰세요. 계좌번호는 앞 3자리와 뒤 4자리만 남겨 110-**-1234 형태로 마스킹하고, 주민등록번호와 고객 실명은 어떤 형태로도 적지 않습니다.

참고

단계 8개

  1. 우리 원장과 상대 정산 파일 만들기
  2. 정산 파일 적재하고 기관별 총계 맞추기
  3. 한쪽에만 있는 건 가려내기
  4. 금액이 다른 건 찾기
  5. 멱등키로 이중 이체 찾기
  6. 차액정산 포지션 내기
  7. 미결제와 가수금 잔고 세기
  8. 마스킹한 대사 보고서 쓰기