Media > AI活用ユースケース > 経理 > 入金明細と売掛金の消込候補を作成する

入金明細と売掛金の消込候補を作成する

実装ステータス:構成例 技術的に実現可能な構成として設計したもの。自社未検証

銀行の入金明細(振込日、振込名義、金額)と、会計システムの売掛金残高データを入力に、「この入金はどの請求に対するものか」の候補を提示させます。

サマリー
利用ツール
ChatGPT/Claude/Gemini/Python
対象業界
IT・SaaS/商社/物流/製造
対象部門
経理
対象業務
データ入力・転記/内容確認・チェック
主な課題
人手が足りない/入力作業が多い/属人化している
AIで行う処理
判定
主な効果
対応スピード向上/属人化解消/工数削減
導入難易度
★★★★☆
実装レベル
半自動化
費用感
個別開発(大)
人間の確認
必須
現在工数
75h/月
AI導入後
18h/月
想定削減
76%
年間削減
684h
モデル条件による試算値です。実在企業の実績ではありません。

01導入前 / 導入後の業務フロー

導入前(Before)
  1. 毎朝、インターネットバンキングから前日の入金明細をCSVでダウンロードする
  2. 会計システムに取り込み、自動照合を実行する
  3. 金額と名義が完全一致した分は自動で消し込まれる(約1,100件)
  4. 残った700件を、担当者が1件ずつ処理する
  5. 振込名義を見て、どの取引先かを推測する
  6. 売掛金残高一覧を開き、その取引先の未消込請求を探す
  7. 金額が合わない場合、複数請求のまとめ入金か、一部入金か、手数料が引かれたのかを判断する
  8. 該当する請求を選んで消し込む
  9. どうしても分からないものは「仮受金」として計上し、営業担当に問い合わせる
導入後(After)
  1. 自動毎朝、入金明細を取得する
  2. 自動ルール照合(金額・名義の完全一致)を実行する(約1,100件が確定)
  3. 自動残り700件について、名義の名寄せ、まとめ入金の組み合わせ探索、手数料控除の判定を行う
  4. 自動各入金について、消込候補を確信度つきで提示する
  5. 経理担当が候補を確認し、承認する
  6. 自動承認された消込を会計システムへ登録する
  7. 候補が出なかった入金だけを、従来どおり調査する
各工程の詳しい説明を読む
  1. 毎朝、インターネットバンキングから前日の入金明細をCSVでダウンロードする
  2. 会計システムに取り込み、自動照合を実行する
  3. 金額と名義が完全一致した分は自動で消し込まれる(約1,100件)
  4. 残った700件を、担当者が1件ずつ処理する
  5. 振込名義を見て、どの取引先かを推測する
  6. 売掛金残高一覧を開き、その取引先の未消込請求を探す
  7. 金額が合わない場合、複数請求のまとめ入金か、一部入金か、手数料が引かれたのかを判断する
  8. 該当する請求を選んで消し込む
  9. どうしても分からないものは「仮受金」として計上し、営業担当に問い合わせる

問題は4つあります。

(a)振込名義が請求先名と一致しない。 「カ)マルマルシヨウジ」「マルマル商事株式会社 経理部」「マルマルホールディングス」など、実際の名義は多様です。旧社名のまま振り込まれることもあります。

(b)まとめ入金の分解が手作業。 「3件分をまとめて振り込みました」という入金に対し、未消込請求の中から合計が一致する組み合わせを探します。件数が増えると総当たりになります。

(c)振込手数料の控除。 440円や660円が引かれた金額で振り込まれるため、金額が完全一致しません。手数料額は銀行と取引先によって違います。

(d)月末に集中する。 月1,800件のうち800件以上が月末の3営業日に入ります。この期間は消込が追いつかず、売掛金残高の正確性が数日遅れます。

  1. 【自動】 毎朝、入金明細を取得する
  2. 【自動】 ルール照合(金額・名義の完全一致)を実行する(約1,100件が確定)
  3. 【自動】 残り700件について、名義の名寄せ、まとめ入金の組み合わせ探索、手数料控除の判定を行う
  4. 【自動】 各入金について、消込候補を確信度つきで提示する
  5. 【人】 経理担当が候補を確認し、承認する
  6. 【自動】 承認された消込を会計システムへ登録する
  7. 【人】 候補が出なかった入金だけを、従来どおり調査する

自動化されるのは「取引先を推測する」「残高一覧を探す」「組み合わせを計算する」の3つです。残るのは「候補が正しいかを判断する」だけになります。

02今回想定するシステム構成

構成図
インターネットバンキング(全銀形式CSV / API)
   │
   ▼【トリガー】毎朝8時
処理エンジン(Python / 個別開発)
   │
   ├──▶ 【第1段】ルール照合
   │       金額完全一致 + 名義完全一致 → 確定
   │
   ├──▶ 【第2段】名寄せ辞書による照合
   │       過去の消込実績から作った「振込名義 → 取引先コード」辞書
   │
   ├──▶ 【第3段】組み合わせ探索
   │       手数料控除パターン / まとめ入金の組み合わせを計算
   │
   └──▶ 【第4段】LLM API
           上記で決まらなかったものについて、名義の類似判断と
           候補の順位づけ、根拠の生成
   │
   ▼
消込候補リスト(確信度つき)──【人が承認】
   │
   ▼
会計システムへ消込登録
役割想定する製品代替候補
入金明細の取得インターネットバンキングのCSV出力銀行API(全銀EDI、各行のAPI)、入金消込SaaS
処理エンジンPython スクリプト個別開発、RPA
生成AIClaude APIOpenAI API、Gemini API
会計システムERP各社の会計ソフト

入金消込に特化したSaaSが複数あります。まずそれを検討してください。 名寄せ辞書、組み合わせ探索、会計システム連携がパッケージ化されています。自前で組む価値があるのは、取引の性質が特殊で汎用製品が合わない場合です。

03どうやって実装するのか

Step1

処理の起点を決める

毎朝8時の時刻起動にします。

前日分の入金明細を一括処理する構成です。リアルタイム処理は不要で、むしろ日次でまとめたほうが、まとめ入金の組み合わせ探索がしやすくなります。

Step2

入力データを集める

データ中身取得元
入金明細振込日、振込名義(カナ)、金額、銀行支店インターネットバンキング
売掛金残高取引先コード、請求書番号、請求金額、請求日、支払期日、未消込残高会計システム
取引先マスタ取引先コード、正式名称、カナ、旧社名、支払条件会計システム
名寄せ辞書過去の「振込名義 → 取引先コード」の実績過去の消込データから生成
手数料マスタ銀行別・金額帯別の振込手数料手作業で整備
Step3

データの取得方法を決める

入金明細: インターネットバンキングから全銀形式(またはCSV)でダウンロードします。ダウンロードの自動化は、銀行がAPIを提供していればAPIで、していなければRPAで行います。RPAでのログイン自動化は、銀行の利用規約で禁止されている場合があります。契約内容を確認してください。

売掛金残高: 会計システムのAPI、または日次エクスポートで取得します。

名寄せ辞書: 過去2年分の消込実績から、「振込名義(カナ)→ 取引先コード」の対応表を作ります。これがこの構成でもっとも効く資産です。 一度作れば、同じ取引先からの入金は以後すべてルールで処理できます。AIを使うのは、辞書にない新しい名義だけになります。

Step4

AIへ渡す前に整形する

  1. 名義の正規化 … 全角/半角、カタカナ/ひらがな、スペースの有無を揃えます。「カ)」「(カ」「(カ)」を「カブシキガイシャ」に統一します
  2. 辞書照合 … 正規化した名義が辞書にあれば、その時点で取引先が確定します
  3. 手数料控除の判定 … 入金額に手数料マスタの金額(440円、660円、880円など)を足した値が、未消込請求の金額と一致するかを試します
  4. まとめ入金の組み合わせ探索 … その取引先の未消込請求から、合計が入金額と一致する組み合わせを探します。組み合わせが複数ある場合は、支払期日の古い順を優先する規則を先に決めておきます
  5. AIを呼ぶ対象の絞り込み … 1〜4で決まらなかったものだけをAIに回します

5が重要です。 名寄せ辞書が育つほどAIを呼ぶ件数は減り、月700件が月100件程度まで下がります。

Step5

AIに処理させる

規則で書けない部分だけを任せます。

処理内容
名義の類似判断辞書にない名義について、取引先マスタの中から候補を挙げる
略称・通称の解釈「マルマルHD」が「株式会社マルマルホールディングス」であることの判断
個人名義の判断代表者個人名で振り込まれた場合に、法人を特定する
候補の順位づけ複数の候補がある場合に、金額・支払期日・過去の入金傾向から順位を付ける
根拠の生成なぜその候補を挙げたかを、確認者向けに1文で説明する

金額の一致判定と組み合わせ探索は、AIにさせません。 計算はプログラムのほうが確実で速く、費用もかかりません。AIは「どの取引先か」の判断に限定します。

Step6

指示内容を固定する

あなたは経理の売掛金担当を支援する担当者です。
以下の入金について、どの取引先からの入金かの候補を挙げてください。

【厳守事項】
- 候補は、提示された取引先マスタの中からのみ選んでください。
  マスタにない取引先を挙げないでください。
- 該当しそうな取引先がない場合は、candidates を空の配列で返してください。
  無理に候補を作らないでください。
- 金額の一致判定は既に行われています。金額から取引先を推測しないでください。
- 各候補には、名義のどの部分が一致すると判断したかを evidence に書いてください。
  書けない候補は挙げないでください。
- 個人名義の場合、その氏名が取引先の代表者名または担当者名として
  マスタに登録されている場合のみ、その法人を候補にしてください。
  登録がなければ候補を挙げないでください。

【入金情報】
振込日: {date} / 振込名義(カナ): {payer_name}
金額: {amount} / 銀行: {bank} {branch}

【取引先マスタ(カナが部分一致する上位10件)】
{customer_candidates}

【各候補の未消込残高】
{outstanding_by_customer}

「マスタにない取引先を挙げない」「無理に候補を作らない」の2行が重要です。 これがないと、AIは似た響きの取引先を無理に挙げます。間違った消込は、売掛金残高を狂わせ、後の督促で取引先に誤った請求をすることにつながります。 候補ゼロで人に回すほうが、誤った候補を出すよりはるかに安全です。

Step7

出力形式を固定する

{
  "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_differencedifference_reason を必ず返させます。差額の理由が「不明」のまま消し込むと、後で原因不明の残高が積み上がります。

Step8

システムへ連携する

承認後、会計システムへ消込データを登録します。

方式内容
API連携会計システムがAPIを提供していれば、承認と同時に登録する
ファイル取込所定のCSV形式で書き出し、会計システムの消込取込機能で読ませる

多くの国産ERPでは、消込のCSV取込機能が用意されています。 仕様は製品によって異なるため、自社の会計システムのベンダーに確認してください。この部分は利用環境に応じた個別確認が必要です。

消込が確定したら、その「振込名義 → 取引先コード」の対応を名寄せ辞書へ自動で追加します。これにより、次回から同じ名義はルールで処理されます。この学習の仕組みが、運用するほど効率が上がる構造を作ります。

Step9

人が確認する

全件、人が承認します。

理由は、消込が会計帳簿を確定させる処理だからです。誤った消込は、売掛金残高の誤り、督促の誤送付、決算数値の誤りにつながります。

ただし、確認の重さを段階で変えます。

対象確認方法
ルール照合で確定(約1,100件)一括承認。金額・名義とも完全一致しているため、リストを見て一括で承認する
手数料控除・まとめ入金で確定(約400件)一括承認(差額理由が明示されているもの)。差額が手数料マスタの金額と一致していることを条件にする
AIが high で候補を挙げた(約200件)個別に確認。1件20秒程度
AIが medium / low、または候補なし(約100件)従来どおり個別に調査

ルール照合分を一括承認にすることが、効果の前提です。 ここを1件ずつ見る運用にすると、削減効果は出ません。

Step10

例外に対処する

起きること対応
候補が1件も挙がらないno_candidate: true として仮受金の候補リストへ回す。推測で消し込まない
候補が複数あり、確信度が同じ全候補を並べて人に選ばせる。自動で1つに決めない
まとめ入金の組み合わせが複数成立する支払期日の古い順を優先する規則を適用し、その旨を表示する。人が別の組み合わせを選べるようにする
一部入金(分割払い)差額を残高として残す。difference_reason に「一部入金」と記録する
過入金(請求額より多い)自動処理の対象外。前受金として処理するか返金するかは人が判断する
個人名義の入金マスタに代表者名・担当者名の登録があれば候補にする。なければ候補なしとする
取引のない先からの入金候補なし。仮受金として処理し、営業部門へ照会する
月末に800件が集中する日次処理なので、月末3日間の処理量が増えるだけ。バッチの実行時間に余裕を持たせる
会計システムへの登録が失敗する承認済みデータを保持し、再登録できるようにする。二重登録を防ぐため、登録済みフラグを持つ
Step11

記録を残す

この業務では、ログが監査対応の資料になります。

  • 入金明細の原本(銀行からのCSV)
  • 各段階の処理結果(ルール照合 / 辞書照合 / 組み合わせ探索 / AI候補)
  • AIが挙げた候補と evidence
  • 承認者、承認日時
  • 人がAIの候補と違う判断をした場合の、変更内容

最後の項目は、名寄せ辞書の改善に直接使えます。AIの候補が誤っていた名義を辞書に正しく登録すれば、同じ誤りは繰り返されません。

04実装レベルの3段階

最小構成:名寄せ辞書をスプレッドシートで作り、VLOOKUPで照合 / 取引先の特定の一部
半自動化:辞書照合+手数料控除+組み合わせ探索をスクリプト化。結果を一覧で出力 / 特定と候補提示。消込登録は手動
本格構成:上記+AIによる名義判断+会計システムへの自動登録+辞書の自動更新 / 承認以外のすべて

半自動化の時点で、手作業700件が250件程度まで減る可能性があります。 辞書と組み合わせ探索だけで、例外の大半が処理できるためです。AIが担うのは、残った「辞書にない新規名義」の部分です。

05工数削減シミュレーション

前提値(モデル条件)
対象人数
2 名
月間件数
1,800 件
1件あたり現在時間
2.5 分
1件あたり導入後時間
0.6 分
現在  1,800件 × 2.5分 ÷ 60 = 75 時間/月
導入後 1,800件 × 0.6分 ÷ 60 = 18 時間/月
月間削減時間
57h
削減率
76%
年間削減時間
684h
年間金額換算(時間単価3,000円)
205万円
モデル条件による試算であり、実際の効果は業務内容・運用方法によって異なります。

自社条件で導入効果を整理したい方へ

このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。

AI活用について相談する

06向いている企業・向いていない企業

向いている
  1. 取引先が200社以上、入金明細が月1,000件以上あり、自動照合で消し込めない例外が3割以上ある組織。
向いていない
  1. 取引先が少なく、金額と名義の完全一致でほぼ消し込める場合。入金消込SaaSで要件が満たせる場合。

07最小構成で試す方法

AIを使わずに効果が出る部分から始めてください。

  1. 過去1か月の消込実績から、「振込名義 → 取引先コード」の対応表をスプレッドシートで作る
  2. 今月の入金明細に対して、この対応表でVLOOKUPをかける
  3. 何件が自動で特定できたかを数える

これだけで、手作業700件のうち半分近くが片付く可能性があります。 名寄せ辞書の効果を先に測ってください。ここで大半が解決するなら、AIは不要かもしれません。

AI部分を試す場合は、辞書で解決しなかった名義を20件選び、取引先マスタの一覧とともにチャットAIに貼って、候補を挙げさせます。評価の観点は「誤った候補を自信を持って挙げていないか」です。 正解率より、誤答率のほうが重要です。

08実装時につまずきやすいポイント

問題対策
銀行データの自動取得ができないAPIの提供状況を確認する。RPAは利用規約を確認する。手動ダウンロード+自動処理でも効果は出る
AIが似た響きの取引先を無理に候補にする「マスタにない先を挙げない」「無理に候補を作らない」制約を入れる。evidence を必須にする
組み合わせ探索が複数成立して決まらない支払期日の古い順を優先する規則を先に決める。それでも複数なら人に選ばせる
手数料額が銀行・金額帯で違う手数料マスタを整備する。実際の入金データから逆算して作る
ルール照合分まで1件ずつ確認する運用になる一括承認の画面を作る。ここを省くと効果が出ない
名寄せ辞書が更新されず、同じ名義を毎回AIに投げる消込確定時に辞書へ自動追加する仕組みを必ず入れる
会計システムへ二重登録される登録済みフラグを持ち、再実行時はスキップする
過入金・返金を自動処理してしまう自動処理の対象外にする。人が判断する
誤った消込により誤った督促が出る候補なしのものを無理に消し込まない設計にする。仮受金で止める

09セキュリティ・AIガバナンス上の注意点

この構成で扱うデータ: 取引先の社名、取引金額、入金状況、銀行口座情報、個人名義の場合は個人名。自社の売上構造と、取引先の支払状況が含まれます。

  1. 銀行データの取り扱い … 入金明細には自社の口座情報が含まれます。処理環境のアクセス権限を経理部門に限定してください
  2. 外部AIへの入力範囲 … AIに渡すのは振込名義と取引先マスタの名称です。金額と口座番号は判断に不要なら渡さない設計にできます。 実際、金額の照合はプログラムで行うため、AIに金額を渡す必然性は低いです
  3. 個人名義の扱い … 個人名は個人情報です。外部AIへ渡す必要があるかを検討し、渡す場合は自社のプライバシーポリシーとの整合を確認します
  4. 学習利用 … 入力を学習に使わないことが保証されるサービスを選びます
  5. 自動実行してよい範囲 … 消込は帳簿を確定させる処理です。AIの候補を人の承認なしで自動登録する構成にしないでください。 ルール照合で完全一致した分の一括承認も、承認行為として記録を残します

誤りが起きた場合のリスクは、売掛金残高の誤り、誤った督促、決算数値の誤りです。監査で消込の根拠を問われた際に説明できるよう、各段階の処理結果を残してください。

10まず何から始めるか

1週目:名寄せ辞書の効果を測る

過去1か月の消込実績から「振込名義 → 取引先コード」の対応表を作り、今月の入金明細に当ててみます。手作業700件のうち何件が特定できるかを数えてください。 この数字が、この構成全体の効果を左右します。

2週目:例外の内訳を数える

辞書で特定できなかったものを、「手数料控除」「まとめ入金」「一部入金」「新規名義」「その他」に分類し、それぞれ何件かを数えます。どのパターンが多いかで、次に作るべきものが決まります。 手数料控除が多いなら手数料マスタ、まとめ入金が多いなら組み合わせ探索が優先です。

3〜6週目:半自動化を作る

辞書照合+手数料控除+組み合わせ探索をスクリプト化し、候補一覧を出すところまで作ります。会計システムへの登録は手動のままにします。ここで実際の削減時間を測ります。

2〜3か月目: AIによる名義判断と、会計システム連携を実装します。並行して、消込の一括承認の運用について、監査法人または内部監査部門に確認してください。


11関連ユースケース

12この仕組みを理解するための記事

13技術仕様の確認日・参考情報

技術仕様確認日:2026-09-02/最終更新:2026-09-08
確認した内容情報源確認日
Claude APIのStructured Outputs(JSON Schemaによる出力形式の固定)Anthropic: Structured outputs2026-09-02
Power Automate の時刻起動トリガーMicrosoft Learn: トリガー2026-09-02

銀行の入金明細取得(API提供の有無、全銀形式CSVの仕様)、会計システムの消込取込仕様は、いずれも利用する金融機関・製品によって異なります。この部分は利用環境に応じた個別確認が必要です。 インターネットバンキングへのRPAによる自動ログインは、銀行の利用規約で禁止されている場合があります。契約内容を確認してください。

実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。

自社の業務に使えるAI活用候補を整理します

このユースケース(UC-0007)についてのご相談はこちらから。

AI活用について相談する
目次