業務の隙間を埋める技術メモ。

「それ、作れるか?」より 「それ、作って大丈夫か?」を考えたい。 業務で“ちゃんと使える”かどうかを、 実際に手を動かして確かめたログを残しています。

NetSuiteの入金消込はなぜ事故るのか?5つの問題と改善設計

 

NetSuiteを導入してしばらくすると、どこかのタイミングで必ず出てくる話題があります。

「入金消込、この運用で本当に大丈夫?」

実際に運用してみると、だいたい次のような問題にぶつかります。

  • 全銀データと顧客名が一致しない

  • 一括入金の配分ミス

  • 誤消込しても気づきにくい

  • 差額理由が後から分からない

  • そもそも入金と消込を同時にやるのがつらい

そしてもう一つ、実務ではかなり大きい問題があります。

「この入金、そもそも売掛金の回収なの?」

という問題です。

ですよね?

この記事では、実際の運用でぶつかった問題と、それに対してどう設計を変えたかを書いてみます。


NetSuiteの入金消込の基本構造

まず前提として、NetSuiteの入金処理は基本こういう流れです。

入金登録
↓
請求書選択
↓
消込

つまり、

入金と消込がほぼ同時処理

になる設計です。

ここで一つ気づくことがあります。

入金登録のとき、請求書を選ばないこともできます。

ただしこの場合でも、相手勘定は基本的に

売掛金

になります。

つまり何が起きるかというと、

入金した瞬間に売掛金が減ります。

ここ、少し違和感ありませんか?


その入金、本当に売掛金ですか?

実務では、銀行入金があった時点では

まだその性質が確定していないことが普通にあります。

例えばこんなケースです。

  • 前受金

  • まだ請求書を発行していない入金

  • 請求書と金額が一致しない入金

  • 複数請求のまとめ入金

つまり、

「売掛金の回収」ではない可能性

があります。

 

しかしNetSuite標準の処理では、

入金した瞬間に売掛金が減る

ので、会計的に違和感が出ることがあります。

このため、

  • 入金と消込を分離したい

  • 入金の性質を後から判断したい

という要望はかなり多いです。


実際に起きた消込事故

実際に運用してみると、だいたい次のような事故が起きます。


① 誤消込しても気づかない

例えばこんなケースです。

A社の入金
↓
B社の請求書に消込

担当者が請求書を選択すると、そのまま確定します。

レビューなしだと普通に起きます。

ですよね?


やってみた対策

消込をそのまま確定させず、

消込作業
↓
承認
↓
確定

というフローにしました。

これだけでも事故はかなり減ります。


② 差額理由が分からなくなる

入金消込では差額が頻繁に発生します。

例えば

  • 振込手数料

  • 値引き

  • 端数調整

  • 請求ミス

ただ、理由を残さないと後でこうなります。

「この差額なんだっけ?」

これもよくありますよね?


やってみた対策

差額理由をマスタ化しました。

例えば

コード 理由
DISC 値引き
FEE 振込手数料
ADJ 調整

差額が出た場合は、理由入力を必須にしました。

これだけで後の調査がかなり楽になります。


③ 全銀データで自動消込できない

銀行データと顧客名は、だいたい一致しません。

例えば銀行データ

ABCショウジ

顧客マスタ

株式会社ABC商事

当然一致しません。

NetSuite標準の一致判定だと厳しいです。


やってみた対策

文字列の類似度を計算するようにしました。

イメージとしてはこんな処理です。

銀行名
↓
顧客名と類似度計算
↓
一定以上なら候補提示

例えば

一致度 0.82

みたいに計算して、

もしかしてこの顧客では?

という形で候補を出します。

完全自動にすると危ないので、

人間の判断を補助する設計

にしています。

これ、かなり効きます。


④ 一括入金の配分ミス

これもよくあります。

入金 500,000

請求
100,000
200,000
200,000

手作業で配分すると、たまにミスります。

ですよね?


やってみた対策

自動配分ロジックを入れました。

優先順位はこんな感じです。

  1. 請求期日

  2. 金額一致

  3. 古い請求

単純ですが、かなり事故は減ります。


⑤ 入金と消込を分けたい問題

これが一番大きな問題でした。

NetSuiteでは

入金=売掛金回収

という前提になっています。

しかし実務ではこうなります。

銀行入金確認
↓
入金内容調査
↓
売掛金なのか判断
↓
消込

つまり、

入金の時点ではまだ会計処理が確定していない

ことがあります。

 


やってみた設計

そこで、入金処理をいきなり元帳に反映させないようにしました。

銀行データ取込
↓
消込作業(仮)
↓
承認
↓
元帳転記

仮消込

消込作業は

カスタムレコード

で行います。

例えば

項目
入金額 500000
請求書 INV001
消込額 200000

この段階では

まだ総勘定元帳に影響しません。


元帳に反映するタイミング

次の条件を満たした時だけ、

入金額 = 消込合計

Customer Payment を作成します。

これにより

  • 売掛金回収なのか

  • 前受金なのか

  • 請求との関係

を判断した上で会計処理できます。


改善後の業務フロー

Before

入金
↓
売掛金減少
↓
消込

After

銀行データ取込
↓
入金内容確認
↓
消込作業
↓
承認
↓
元帳転記

まとめ

NetSuiteの入金消込は標準機能でも動きます。

ただ実務では、

  • 入金=売掛金とは限らない

  • 消込は判断業務

  • マッチングは完全一致しない

という前提があります。

そのため、

  • マッチング補助

  • 承認フロー

  • 仮消込設計

この3つを入れるとかなり運用が安定しました。

ERPって結局、

機能より業務設計

なんですよね。