AI 제작 가이드

입금 내역과 청구서를 대조하는 회계 업무 자동화하기

은행 제공 거래내역 파일과 청구대장을 연결하는 회계 자동화 제작 흐름을 설명합니다. 파일 읽기부터 분할입금 계산, 동명이인 후보 검토, 확정 결과 저장까지 필요한 기능과 검수 기준을 살펴봅니다.

핵심 요약

1. 은행 거래내역과 청구대장을 대조해 미수 잔액과 확인이 필요한 입금 후보를 보여주는 업무 자동화 화면을 만듭니다. 2. pandas로 Excel 자료를 읽고, Next.js로 확인 내용을 받아 PostgreSQL에 확정 결과를 저장하는 흐름을 연결합니다. 3. 이름과 금액의 비교, 분할입금 배분, 중복 반영 방지는 업무 기준에 맞춰 직접 개발합니다.

입금자명과 청구대장의 고객명이 다르거나 한 청구서에 여러 번 입금되면 단순한 합계 비교만으로는 처리하기 어렵습니다. 관리부를 위한 회계 자동화는 대조 근거를 보여주고 담당자가 연결할 청구서를 확인하는 흐름이 필요합니다. 아래는 은행에서 받은 파일을 사용하는 프로그램의 제작 방법입니다.

pandas로 거래내역과 청구대장 읽기

먼저 받을 자료는 거래일·입금자명·입금액·적요가 들어 있는 은행 제공 Excel 거래내역 파일입니다. pandas의 read_excel은 Excel의 한 개 또는 여러 시트를 DataFrame이라는 표 형태의 데이터로 읽을 수 있습니다. 파일마다 다른 열 이름을 프로그램의 거래일과 입금액 항목에 연결하는 처리는 별도로 구현합니다.

두 번째 자료는 청구번호·거래처명·청구일·납기일·청구액이 담긴 청구대장 Excel 파일입니다. ‘자료 불러오기’ 화면에서 각 열의 의미를 지정하고, 날짜나 금액을 읽지 못한 행을 원본 행 번호와 함께 보여줍니다. 검수할 때는 제외된 행의 이유를 확인하고, 읽어 들인 건수와 입금 합계가 원본의 대상 범위와 맞는지 비교합니다.

업무 자동화 기능 구현 요약
자료: 트램스 · 업무 자동화 기능 구현 요약

이름·금액·날짜로 대조 후보 좁히기

거래내역과 청구대장을 읽은 다음에는 어떤 입금을 어떤 청구서에 연결할지 후보를 찾습니다. 이름의 앞뒤 공백을 정리하고, 적요에 청구번호가 있는지 확인하는 비교 규칙을 직접 만듭니다. 원문도 함께 보관해 이름을 정리하는 과정에서 서로 다른 거래처가 같은 이름으로 묶이지 않았는지 확인할 수 있게 합니다.

금액이 같다는 이유만으로 연결을 확정하지 않고 이름, 청구번호, 날짜를 함께 표시합니다. 화면에는 ‘금액 일치’, ‘청구번호 확인’처럼 후보가 나온 이유를 붙여 담당자가 판단하도록 합니다. 같은 이름으로 같은 금액의 청구서 두 건을 넣었을 때, 첫 번째 청구서에 임의로 확정되지 않고 두 후보가 모두 나타나는지를 실패 사례 검수 기준으로 삼습니다.

분할입금 배분과 미수 잔액 계산하기

분할입금은 청구서 한 건에 여러 입금을 연결하고, 확정된 배분 금액의 합계를 청구액에서 차감하는 방식으로 처리합니다. 담당자가 청구서를 열면 연결된 입금 목록과 남은 금액을 함께 보게 합니다. 후보로만 올라온 입금은 잔액 계산에 포함하지 않도록 별도 로직을 만듭니다.

업무 자동화 업무 처리 순서
자료: 트램스 · 업무 자동화 업무 처리 순서

한 번의 입금으로 청구서 여러 건을 정산하는 업무라면 청구서별 배분액을 입력하는 기능도 필요합니다. 배분액의 합계가 입금액을 넘으면 저장을 막고, 남은 입금액은 아직 연결하지 않은 금액으로 표시합니다. 검수에서는 분할입금 추가와 연결 취소 후에도 ‘청구액에서 확정 입금액을 뺀 값’이 화면의 미수 잔액과 일치하는지 확인합니다.

Next.js로 대조 근거와 확인 버튼 만들기

검토 화면에는 선택한 입금의 원문과 청구서 후보를 나란히 놓고, 담당자가 배분액과 확인 메모를 입력하도록 만듭니다. Next.js는 폼에 입력된 FormData를 서버 함수에서 받아 처리할 수 있습니다. 이 기능에 ‘연결 확정’, ‘검토 보류’, ‘연결 취소’ 버튼의 처리 로직을 붙여 담당자의 판단을 저장합니다.

서버에서는 사용자의 처리 권한과 입력 금액, 청구서의 존재 여부를 별도로 검사합니다. 확인 버튼을 누르기 직전에 다른 담당자가 같은 입금을 처리했다면 최신 연결 내용을 보여주고 다시 확인받도록 합니다. 화면에 보이는 합계만 검사하지 않고 서버에서도 입금액과 배분액을 다시 비교해야 잘못된 요청이 저장되는 일을 막을 수 있습니다.

업무 자동화 기술별 역할
자료: 트램스 · 업무 자동화 기술별 역할

PostgreSQL로 연결 결과와 잔액 함께 저장하기

확정 버튼을 누르면 입금과 청구서의 연결, 배분액, 처리자와 처리 시각을 함께 기록합니다. PostgreSQL의 트랜잭션은 데이터베이스의 여러 변경을 모두 반영하거나 모두 취소하는 기능입니다. 연결 기록과 잔액을 함께 저장한다면 이를 하나의 처리 단위로 묶어, 중간 오류로 한쪽만 바뀌는 일을 막도록 구현합니다.

같은 파일을 다시 올리거나 확정 버튼을 연속으로 눌러도 같은 입금이 두 번 반영되지 않게 검사합니다. 은행 자료에 거래 식별번호가 있다면 이를 활용하고, 없다면 겹치는 기간의 자료를 비교해 중복 의심 행을 확인받습니다. 검수에서는 저장 도중 오류를 발생시켜 연결과 잔액이 모두 이전 값으로 유지되는지 확인하고, 정상 저장 후 원본 입금 합계와 배분 합계·미배분 합계가 맞는지 대조합니다.

입금 대조 업무 자동화를 개발하려면 개인정보를 가린 은행 거래내역 파일과 청구대장 예시, 분할입금 처리 기준을 정리해 트램스에 전달해 주세요. 필요한 대조 규칙과 확인 화면을 바탕으로 개발 범위를 상담합니다. 트램스 AI 제작 문의 (https://trams.co.kr/ai-si/contact/#inquiry)

참고 자료

  1. https://trams.co.kr/ai-si/
  2. https://pandas.pydata.org/docs/reference/api/pandas.read_excel.html
  3. https://www.postgresql.org/docs/current/tutorial-transactions.html
  4. https://nextjs.org/docs/app/guides/forms
TRAMS AI

비슷한 AI 서비스를
사업에 적용하고 싶으신가요?

아이디어와 필요한 기능을 알려주시면 제작 범위와 방법을 검토합니다.

프로젝트 문의