入金明細と売掛金の消込候補を作成する
銀行の入金明細(振込日、振込名義、金額)と、会計システムの売掛金残高データを入力に、「この入金はどの請求に対するものか」の候補を提示させます。
- 利用ツール
- ChatGPT/Claude/Gemini/Python
- 対象業界
- IT・SaaS/商社/物流/製造
- 対象部門
- 経理
- 対象業務
- データ入力・転記/内容確認・チェック
- 主な課題
- 人手が足りない/入力作業が多い/属人化している
- AIで行う処理
- 判定
- 主な効果
- 対応スピード向上/属人化解消/工数削減
- 導入難易度
- ★★★★☆
- 実装レベル
- 半自動化
- 費用感
- 個別開発(大)
- 人間の確認
- 必須
01導入前 / 導入後の業務フロー
- 毎朝、インターネットバンキングから前日の入金明細をCSVでダウンロードする
- 会計システムに取り込み、自動照合を実行する
- 金額と名義が完全一致した分は自動で消し込まれる(約1,100件)
- 残った700件を、担当者が1件ずつ処理する
- 振込名義を見て、どの取引先かを推測する
- 売掛金残高一覧を開き、その取引先の未消込請求を探す
- 金額が合わない場合、複数請求のまとめ入金か、一部入金か、手数料が引かれたのかを判断する
- 該当する請求を選んで消し込む
- どうしても分からないものは「仮受金」として計上し、営業担当に問い合わせる
- 自動毎朝、入金明細を取得する
- 自動ルール照合(金額・名義の完全一致)を実行する(約1,100件が確定)
- 自動残り700件について、名義の名寄せ、まとめ入金の組み合わせ探索、手数料控除の判定を行う
- 自動各入金について、消込候補を確信度つきで提示する
- 人経理担当が候補を確認し、承認する
- 自動承認された消込を会計システムへ登録する
- 人候補が出なかった入金だけを、従来どおり調査する
各工程の詳しい説明を読む
- 毎朝、インターネットバンキングから前日の入金明細をCSVでダウンロードする
- 会計システムに取り込み、自動照合を実行する
- 金額と名義が完全一致した分は自動で消し込まれる(約1,100件)
- 残った700件を、担当者が1件ずつ処理する
- 振込名義を見て、どの取引先かを推測する
- 売掛金残高一覧を開き、その取引先の未消込請求を探す
- 金額が合わない場合、複数請求のまとめ入金か、一部入金か、手数料が引かれたのかを判断する
- 該当する請求を選んで消し込む
- どうしても分からないものは「仮受金」として計上し、営業担当に問い合わせる
問題は4つあります。
(a)振込名義が請求先名と一致しない。 「カ)マルマルシヨウジ」「マルマル商事株式会社 経理部」「マルマルホールディングス」など、実際の名義は多様です。旧社名のまま振り込まれることもあります。
(b)まとめ入金の分解が手作業。 「3件分をまとめて振り込みました」という入金に対し、未消込請求の中から合計が一致する組み合わせを探します。件数が増えると総当たりになります。
(c)振込手数料の控除。 440円や660円が引かれた金額で振り込まれるため、金額が完全一致しません。手数料額は銀行と取引先によって違います。
(d)月末に集中する。 月1,800件のうち800件以上が月末の3営業日に入ります。この期間は消込が追いつかず、売掛金残高の正確性が数日遅れます。
- 【自動】 毎朝、入金明細を取得する
- 【自動】 ルール照合(金額・名義の完全一致)を実行する(約1,100件が確定)
- 【自動】 残り700件について、名義の名寄せ、まとめ入金の組み合わせ探索、手数料控除の判定を行う
- 【自動】 各入金について、消込候補を確信度つきで提示する
- 【人】 経理担当が候補を確認し、承認する
- 【自動】 承認された消込を会計システムへ登録する
- 【人】 候補が出なかった入金だけを、従来どおり調査する
自動化されるのは「取引先を推測する」「残高一覧を探す」「組み合わせを計算する」の3つです。残るのは「候補が正しいかを判断する」だけになります。
02今回想定するシステム構成
インターネットバンキング(全銀形式CSV / API)
│
▼【トリガー】毎朝8時
処理エンジン(Python / 個別開発)
│
├──▶ 【第1段】ルール照合
│ 金額完全一致 + 名義完全一致 → 確定
│
├──▶ 【第2段】名寄せ辞書による照合
│ 過去の消込実績から作った「振込名義 → 取引先コード」辞書
│
├──▶ 【第3段】組み合わせ探索
│ 手数料控除パターン / まとめ入金の組み合わせを計算
│
└──▶ 【第4段】LLM API
上記で決まらなかったものについて、名義の類似判断と
候補の順位づけ、根拠の生成
│
▼
消込候補リスト(確信度つき)──【人が承認】
│
▼
会計システムへ消込登録| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 入金明細の取得 | インターネットバンキングのCSV出力 | 銀行API(全銀EDI、各行のAPI)、入金消込SaaS |
| 処理エンジン | Python スクリプト | 個別開発、RPA |
| 生成AI | Claude API | OpenAI API、Gemini API |
| 会計システム | ERP | 各社の会計ソフト |
入金消込に特化したSaaSが複数あります。まずそれを検討してください。 名寄せ辞書、組み合わせ探索、会計システム連携がパッケージ化されています。自前で組む価値があるのは、取引の性質が特殊で汎用製品が合わない場合です。
03どうやって実装するのか
処理の起点を決める
毎朝8時の時刻起動にします。
前日分の入金明細を一括処理する構成です。リアルタイム処理は不要で、むしろ日次でまとめたほうが、まとめ入金の組み合わせ探索がしやすくなります。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 入金明細 | 振込日、振込名義(カナ)、金額、銀行支店 | インターネットバンキング |
| 売掛金残高 | 取引先コード、請求書番号、請求金額、請求日、支払期日、未消込残高 | 会計システム |
| 取引先マスタ | 取引先コード、正式名称、カナ、旧社名、支払条件 | 会計システム |
| 名寄せ辞書 | 過去の「振込名義 → 取引先コード」の実績 | 過去の消込データから生成 |
| 手数料マスタ | 銀行別・金額帯別の振込手数料 | 手作業で整備 |
データの取得方法を決める
入金明細: インターネットバンキングから全銀形式(またはCSV)でダウンロードします。ダウンロードの自動化は、銀行がAPIを提供していればAPIで、していなければRPAで行います。RPAでのログイン自動化は、銀行の利用規約で禁止されている場合があります。契約内容を確認してください。
売掛金残高: 会計システムのAPI、または日次エクスポートで取得します。
名寄せ辞書: 過去2年分の消込実績から、「振込名義(カナ)→ 取引先コード」の対応表を作ります。これがこの構成でもっとも効く資産です。 一度作れば、同じ取引先からの入金は以後すべてルールで処理できます。AIを使うのは、辞書にない新しい名義だけになります。
AIへ渡す前に整形する
- 名義の正規化 … 全角/半角、カタカナ/ひらがな、スペースの有無を揃えます。「カ)」「(カ」「(カ)」を「カブシキガイシャ」に統一します
- 辞書照合 … 正規化した名義が辞書にあれば、その時点で取引先が確定します
- 手数料控除の判定 … 入金額に手数料マスタの金額(440円、660円、880円など)を足した値が、未消込請求の金額と一致するかを試します
- まとめ入金の組み合わせ探索 … その取引先の未消込請求から、合計が入金額と一致する組み合わせを探します。組み合わせが複数ある場合は、支払期日の古い順を優先する規則を先に決めておきます
- AIを呼ぶ対象の絞り込み … 1〜4で決まらなかったものだけをAIに回します
5が重要です。 名寄せ辞書が育つほどAIを呼ぶ件数は減り、月700件が月100件程度まで下がります。
AIに処理させる
規則で書けない部分だけを任せます。
| 処理 | 内容 |
|---|---|
| 名義の類似判断 | 辞書にない名義について、取引先マスタの中から候補を挙げる |
| 略称・通称の解釈 | 「マルマルHD」が「株式会社マルマルホールディングス」であることの判断 |
| 個人名義の判断 | 代表者個人名で振り込まれた場合に、法人を特定する |
| 候補の順位づけ | 複数の候補がある場合に、金額・支払期日・過去の入金傾向から順位を付ける |
| 根拠の生成 | なぜその候補を挙げたかを、確認者向けに1文で説明する |
金額の一致判定と組み合わせ探索は、AIにさせません。 計算はプログラムのほうが確実で速く、費用もかかりません。AIは「どの取引先か」の判断に限定します。
指示内容を固定する
あなたは経理の売掛金担当を支援する担当者です。
以下の入金について、どの取引先からの入金かの候補を挙げてください。
【厳守事項】
- 候補は、提示された取引先マスタの中からのみ選んでください。
マスタにない取引先を挙げないでください。
- 該当しそうな取引先がない場合は、candidates を空の配列で返してください。
無理に候補を作らないでください。
- 金額の一致判定は既に行われています。金額から取引先を推測しないでください。
- 各候補には、名義のどの部分が一致すると判断したかを evidence に書いてください。
書けない候補は挙げないでください。
- 個人名義の場合、その氏名が取引先の代表者名または担当者名として
マスタに登録されている場合のみ、その法人を候補にしてください。
登録がなければ候補を挙げないでください。
【入金情報】
振込日: {date} / 振込名義(カナ): {payer_name}
金額: {amount} / 銀行: {bank} {branch}
【取引先マスタ(カナが部分一致する上位10件)】
{customer_candidates}
【各候補の未消込残高】
{outstanding_by_customer}
「マスタにない取引先を挙げない」「無理に候補を作らない」の2行が重要です。 これがないと、AIは似た響きの取引先を無理に挙げます。間違った消込は、売掛金残高を狂わせ、後の督促で取引先に誤った請求をすることにつながります。 候補ゼロで人に回すほうが、誤った候補を出すよりはるかに安全です。
出力形式を固定する
{
"candidates": [
{
"customer_code": "",
"customer_name": "",
"confidence": "high | medium | low",
"evidence": "",
"matching_invoices": [
{ "invoice_no": "", "amount": 0 }
],
"amount_difference": 0,
"difference_reason": "振込手数料 | 一部入金 | 不明"
}
],
"no_candidate": false,
"note": ""
}
amount_difference と difference_reason を必ず返させます。差額の理由が「不明」のまま消し込むと、後で原因不明の残高が積み上がります。
システムへ連携する
承認後、会計システムへ消込データを登録します。
| 方式 | 内容 |
|---|---|
| API連携 | 会計システムがAPIを提供していれば、承認と同時に登録する |
| ファイル取込 | 所定のCSV形式で書き出し、会計システムの消込取込機能で読ませる |
多くの国産ERPでは、消込のCSV取込機能が用意されています。 仕様は製品によって異なるため、自社の会計システムのベンダーに確認してください。この部分は利用環境に応じた個別確認が必要です。
消込が確定したら、その「振込名義 → 取引先コード」の対応を名寄せ辞書へ自動で追加します。これにより、次回から同じ名義はルールで処理されます。この学習の仕組みが、運用するほど効率が上がる構造を作ります。
人が確認する
全件、人が承認します。
理由は、消込が会計帳簿を確定させる処理だからです。誤った消込は、売掛金残高の誤り、督促の誤送付、決算数値の誤りにつながります。
ただし、確認の重さを段階で変えます。
| 対象 | 確認方法 |
|---|---|
| ルール照合で確定(約1,100件) | 一括承認。金額・名義とも完全一致しているため、リストを見て一括で承認する |
| 手数料控除・まとめ入金で確定(約400件) | 一括承認(差額理由が明示されているもの)。差額が手数料マスタの金額と一致していることを条件にする |
AIが high で候補を挙げた(約200件) | 個別に確認。1件20秒程度 |
AIが medium / low、または候補なし(約100件) | 従来どおり個別に調査 |
ルール照合分を一括承認にすることが、効果の前提です。 ここを1件ずつ見る運用にすると、削減効果は出ません。
例外に対処する
| 起きること | 対応 |
|---|---|
| 候補が1件も挙がらない | no_candidate: true として仮受金の候補リストへ回す。推測で消し込まない |
| 候補が複数あり、確信度が同じ | 全候補を並べて人に選ばせる。自動で1つに決めない |
| まとめ入金の組み合わせが複数成立する | 支払期日の古い順を優先する規則を適用し、その旨を表示する。人が別の組み合わせを選べるようにする |
| 一部入金(分割払い) | 差額を残高として残す。difference_reason に「一部入金」と記録する |
| 過入金(請求額より多い) | 自動処理の対象外。前受金として処理するか返金するかは人が判断する |
| 個人名義の入金 | マスタに代表者名・担当者名の登録があれば候補にする。なければ候補なしとする |
| 取引のない先からの入金 | 候補なし。仮受金として処理し、営業部門へ照会する |
| 月末に800件が集中する | 日次処理なので、月末3日間の処理量が増えるだけ。バッチの実行時間に余裕を持たせる |
| 会計システムへの登録が失敗する | 承認済みデータを保持し、再登録できるようにする。二重登録を防ぐため、登録済みフラグを持つ |
記録を残す
この業務では、ログが監査対応の資料になります。
- 入金明細の原本(銀行からのCSV)
- 各段階の処理結果(ルール照合 / 辞書照合 / 組み合わせ探索 / AI候補)
- AIが挙げた候補と
evidence - 承認者、承認日時
- 人がAIの候補と違う判断をした場合の、変更内容
最後の項目は、名寄せ辞書の改善に直接使えます。AIの候補が誤っていた名義を辞書に正しく登録すれば、同じ誤りは繰り返されません。
04実装レベルの3段階
半自動化の時点で、手作業700件が250件程度まで減る可能性があります。 辞書と組み合わせ探索だけで、例外の大半が処理できるためです。AIが担うのは、残った「辞書にない新規名義」の部分です。
05工数削減シミュレーション
導入後 1,800件 × 0.6分 ÷ 60 = 18 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 取引先が200社以上、入金明細が月1,000件以上あり、自動照合で消し込めない例外が3割以上ある組織。
- 取引先が少なく、金額と名義の完全一致でほぼ消し込める場合。入金消込SaaSで要件が満たせる場合。
07最小構成で試す方法
AIを使わずに効果が出る部分から始めてください。
- 過去1か月の消込実績から、「振込名義 → 取引先コード」の対応表をスプレッドシートで作る
- 今月の入金明細に対して、この対応表でVLOOKUPをかける
- 何件が自動で特定できたかを数える
これだけで、手作業700件のうち半分近くが片付く可能性があります。 名寄せ辞書の効果を先に測ってください。ここで大半が解決するなら、AIは不要かもしれません。
AI部分を試す場合は、辞書で解決しなかった名義を20件選び、取引先マスタの一覧とともにチャットAIに貼って、候補を挙げさせます。評価の観点は「誤った候補を自信を持って挙げていないか」です。 正解率より、誤答率のほうが重要です。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 銀行データの自動取得ができない | APIの提供状況を確認する。RPAは利用規約を確認する。手動ダウンロード+自動処理でも効果は出る |
| AIが似た響きの取引先を無理に候補にする | 「マスタにない先を挙げない」「無理に候補を作らない」制約を入れる。evidence を必須にする |
| 組み合わせ探索が複数成立して決まらない | 支払期日の古い順を優先する規則を先に決める。それでも複数なら人に選ばせる |
| 手数料額が銀行・金額帯で違う | 手数料マスタを整備する。実際の入金データから逆算して作る |
| ルール照合分まで1件ずつ確認する運用になる | 一括承認の画面を作る。ここを省くと効果が出ない |
| 名寄せ辞書が更新されず、同じ名義を毎回AIに投げる | 消込確定時に辞書へ自動追加する仕組みを必ず入れる |
| 会計システムへ二重登録される | 登録済みフラグを持ち、再実行時はスキップする |
| 過入金・返金を自動処理してしまう | 自動処理の対象外にする。人が判断する |
| 誤った消込により誤った督促が出る | 候補なしのものを無理に消し込まない設計にする。仮受金で止める |
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 取引先の社名、取引金額、入金状況、銀行口座情報、個人名義の場合は個人名。自社の売上構造と、取引先の支払状況が含まれます。
- 銀行データの取り扱い … 入金明細には自社の口座情報が含まれます。処理環境のアクセス権限を経理部門に限定してください
- 外部AIへの入力範囲 … AIに渡すのは振込名義と取引先マスタの名称です。金額と口座番号は判断に不要なら渡さない設計にできます。 実際、金額の照合はプログラムで行うため、AIに金額を渡す必然性は低いです
- 個人名義の扱い … 個人名は個人情報です。外部AIへ渡す必要があるかを検討し、渡す場合は自社のプライバシーポリシーとの整合を確認します
- 学習利用 … 入力を学習に使わないことが保証されるサービスを選びます
- 自動実行してよい範囲 … 消込は帳簿を確定させる処理です。AIの候補を人の承認なしで自動登録する構成にしないでください。 ルール照合で完全一致した分の一括承認も、承認行為として記録を残します
誤りが起きた場合のリスクは、売掛金残高の誤り、誤った督促、決算数値の誤りです。監査で消込の根拠を問われた際に説明できるよう、各段階の処理結果を残してください。
10まず何から始めるか
1週目:名寄せ辞書の効果を測る
過去1か月の消込実績から「振込名義 → 取引先コード」の対応表を作り、今月の入金明細に当ててみます。手作業700件のうち何件が特定できるかを数えてください。 この数字が、この構成全体の効果を左右します。
2週目:例外の内訳を数える
辞書で特定できなかったものを、「手数料控除」「まとめ入金」「一部入金」「新規名義」「その他」に分類し、それぞれ何件かを数えます。どのパターンが多いかで、次に作るべきものが決まります。 手数料控除が多いなら手数料マスタ、まとめ入金が多いなら組み合わせ探索が優先です。
3〜6週目:半自動化を作る
辞書照合+手数料控除+組み合わせ探索をスクリプト化し、候補一覧を出すところまで作ります。会計システムへの登録は手動のままにします。ここで実際の削減時間を測ります。
2〜3か月目: AIによる名義判断と、会計システム連携を実装します。並行して、消込の一括承認の運用について、監査法人または内部監査部門に確認してください。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| Claude APIのStructured Outputs(JSON Schemaによる出力形式の固定) | Anthropic: Structured outputs | 2026-09-02 |
| Power Automate の時刻起動トリガー | Microsoft Learn: トリガー | 2026-09-02 |
銀行の入金明細取得(API提供の有無、全銀形式CSVの仕様)、会計システムの消込取込仕様は、いずれも利用する金融機関・製品によって異なります。この部分は利用環境に応じた個別確認が必要です。 インターネットバンキングへのRPAによる自動ログインは、銀行の利用規約で禁止されている場合があります。契約内容を確認してください。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0007)についてのご相談はこちらから。
