Media > AI活用ユースケース > 物流 > 通関業者から届く輸入許可通知書を読み取り、申告番号・課税価格・関税・消費税を輸入案件の台帳と会計の入力項目にそろえ、見込みとの差を拾う

通関業者から届く輸入許可通知書を読み取り、申告番号・課税価格・関税・消費税を輸入案件の台帳と会計の入力項目にそろえ、見込みとの差を拾う

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

輸入の通関が終わるたびに通関業者から届く輸入許可通知書を読み取り、申告番号・品目・課税価格・関税・消費税の額を輸入案件の台帳と会計の入力項目にそろえます。あわせて、案件ごとに見込んでいた額との差を拾います。

サマリー
生成AI
ChatGPT/Claude/Gemini
AIサービス
Azure AI/Google Document AI
連携・自動化
Google Apps Script/Python
対象業界
EC/商社/小売/製造
対象部門
物流/経理
対象業務
データ入力・転記/内容確認・チェック
主な課題
入力作業が多い/属人化している/確認ミスが多い
AIで行う処理
読み取り(OCR)
主な効果
入力漏れ削減/属人化解消/工数削減
導入難易度
★★★☆☆
実装レベル
本格構成
費用感
API連携(中)
人間の確認
必須
現在工数
30h/月
AI導入後
10h/月
想定削減
67%
年間削減
240h
モデル条件による試算値です。実在企業の実績ではありません。

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

導入前(Before)
  1. 通関業者からのメールを開き、許可通知書のPDFと請求書を共有フォルダに保存する
  2. 許可通知書の申告番号・許可日・インボイスの番号から、どの輸入案件のものかを特定する
  3. 申告番号・許可日・課税価格・関税・消費税・地方消費税を、輸入案件の台帳に写す
  4. 品目ごとの課税価格と関税を、原価計算のシートに写す
  5. 見込みの為替と関税率から出した見込みの額と比べ、差があれば理由を探す
  6. 理由が分からないものは、通関業者に電話かメールで聞く
  7. 経理が同じ通知書を開き、関税と輸入消費税・地方消費税の仕訳を会計システムに入力する
導入後(After)
  1. 自動Apps Script が数分おきにメールを見て、通関業者からの許可通知書のPDFを取込フォルダに保存する
  2. 自動Document AI が通知書を読み、項目名と値の組・表・全文のテキスト・信頼度を返す
  3. 自動Gemini API が、申告番号・許可日・輸入者・品目ごとの課税価格・関税率・関税・消費税・地方消費税を決まった形にそろえる
  4. 自動Apps Script がインボイスの番号と申告番号で輸入案件の台帳の行を引き、見込みの為替・関税率・課税価格を読む
  5. 自動Apps Script が、地方消費税と消費税の比を検算し、品目ごとの関税率と課税価格を見込みと比べる
  6. 自動差の要素ごとに理由の区分を付け、照合結果のシートと、台帳・原価・会計の3つの入力用の行を書き出す
  7. 人物流の担当が `match` 以外の行だけを開き、通関業者に確かめるか、見込みを直すかを決める
  8. 人経理の担当が、会計の入力用の行を確かめてから会計システムへ入力する
  9. 人台帳の「通関済み」への切り替えは、照合結果を見たうえで人が行う
各工程の詳しい説明を読む
  1. 通関業者からのメールを開き、許可通知書のPDFと請求書を共有フォルダに保存する
  2. 許可通知書の申告番号・許可日・インボイスの番号から、どの輸入案件のものかを特定する
  3. 申告番号・許可日・課税価格・関税・消費税・地方消費税を、輸入案件の台帳に写す
  4. 品目ごとの課税価格と関税を、原価計算のシートに写す
  5. 見込みの為替と関税率から出した見込みの額と比べ、差があれば理由を探す
  6. 理由が分からないものは、通関業者に電話かメールで聞く
  7. 経理が同じ通知書を開き、関税と輸入消費税・地方消費税の仕訳を会計システムに入力する

(a)同じ数字を3か所に写している。 3番、4番、7番は、どれも同じ許可通知書から同じ数字を写す作業です。写す人も、写す先の項目の名前も違うので、どこかで1か所だけ違う値が入ります。 気づくのは月末に台帳と会計の残高を突き合わせたときです。

(b)見込みとの差が案件ごとに追えない。 為替の換算の差なのか、運賃の扱いなのか、税率の違いなのかは、課税価格と税率を品目の行ごとに見比べないと分かりません。 忙しい月は5番が「合計がだいたい合っているか」だけになり、EPA の税率が適用されていなかった案件がそのまま原価に入ります。

(c)通知書の読み方を知る人が限られる。 どの欄が課税価格でどの欄が税額かを知らないと写せず、担当者が休むと案件が止まります。

  1. 【自動】 Apps Script が数分おきにメールを見て、通関業者からの許可通知書のPDFを取込フォルダに保存する
  2. 【自動】 Document AI が通知書を読み、項目名と値の組・表・全文のテキスト・信頼度を返す
  3. 【自動】 Gemini API が、申告番号・許可日・輸入者・品目ごとの課税価格・関税率・関税・消費税・地方消費税を決まった形にそろえる
  4. 【自動】 Apps Script がインボイスの番号と申告番号で輸入案件の台帳の行を引き、見込みの為替・関税率・課税価格を読む
  5. 【自動】 Apps Script が、地方消費税と消費税の比を検算し、品目ごとの関税率と課税価格を見込みと比べる
  6. 【自動】 差の要素ごとに理由の区分を付け、照合結果のシートと、台帳・原価・会計の3つの入力用の行を書き出す
  7. 【人】 物流の担当が match 以外の行だけを開き、通関業者に確かめるか、見込みを直すかを決める
  8. 【人】 経理の担当が、会計の入力用の行を確かめてから会計システムへ入力する
  9. 【人】 台帳の「通関済み」への切り替えは、照合結果を見たうえで人が行う

7番目が、この設計の分かれ目です。人が見るのは全件ではありません。 見込みどおりのものは一覧で件数を流し見て終わりにし、差が出たものと、読み取りに自信のないものだけに時間を使います。

8番目と9番目で台帳と会計に自動で書き込まないのも、意図してのことです。 読み違えた税額が会計に入ると、仮払消費税の残高がずれたまま月次が締まります。

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

構成図
通関業者からのメール(輸入許可通知書のPDF、立替金の請求書)
   │  Apps Script がラベルを見て添付を取込フォルダへ
   ▼【トリガー】Google Apps Script の時間主導型トリガー(数分おき)
Google Apps Script ── 形式・ページ数の確認、通関業者の推定
   ▼
Google Document AI(Form Parser)
   │   項目名と値の組・品目の表・全文のテキスト・信頼度を返す
   ▼
Gemini API ── 申告の項目と品目の行を、決まった形にそろえる
   │   申告番号/許可日/課税価格/関税率/関税/消費税/地方消費税
   ▼
Google Apps Script ── 台帳の案件を引き、税額の検算と見込みとの比較
   │   match/rate_diff/value_diff/tax_check_ng/unmatched/needs_review
   ├──▶ 照合結果のシート(品目ごとの差と理由)
   └──▶ 台帳・原価・会計の入力用の行
   ▼
【人が match 以外だけ確認】──▶ 台帳の更新・会計入力へ
役割想定する製品代替候補
OCRGoogle Document AI(Form Parser)Azure AI Document Intelligence
生成AIGemini API(申告の項目と品目の行の対応付け)Claude API、OpenAI API
差異計算Google Apps Script(税額の検算、見込みの関税率・課税価格との比較)Python
連携Google Apps Script(メールの取り込み、台帳の読み取り、結果の書き込み)Python
保管Google ドライブ、Google スプレッドシート既存の文書管理システム

新しく作るのは、輸入案件の台帳に足す「見込み」の列です。 品目ごとの HSコードと見込みの関税率、EPA を使う予定かどうか、見込みの為替。どれも発注のときに誰かが決めていたのに、台帳には書かれていなかったものです。

土台は Document AI の Form Parser です。 公式のプロセッサ一覧では、OCRのテキストに加えて、キーと値のペア(エンティティとチェックボックス)、表、一般的なエンティティを抽出するとされ、200を超える言語に対応します。言語の一覧には日本語(ja)があります。ページの上限は同期処理で15ページ、バッチ処理で100ページです。

Form Parser は事前学習済みで、追加で学習させることはできないとされています。返ってくる項目名は書類に書かれている文字そのもので、通関業者が違えば同じ数字でも項目名の書き方が変わります。そろえるのは後段の Gemini API の仕事です。 公式には、ラテン文字以外の言語ではキーと値の読み取りの質が下がることがあるとも書かれています。日本語の通知書では、キーと値の組だけに頼らず、全文のテキストもあわせて Gemini API に渡します。

表の読み取りには限りがあります。 Form Parser の表の抽出は、行や列をまたぐセルのない単純な表が対象とされています。品目の欄が2段に分かれた書式は、全文のテキストから行を拾い直します(第7章)。

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

Step1

処理の起点を決める

Google Apps Script の時間主導型トリガーで、数分おきに通関業者からのメールを見ます。 通関業者のメールには受信のルールでラベルを付けておき、Apps Script はそのラベルの未処理のメールだけを開きます。添付の許可通知書を取込フォルダへ保存したら、メールに処理済みのラベルを付けます。

月末にまとめて処理しません。 差が見つかったときに通関業者へ聞くのは、記憶の新しいうちのほうが早く終わります。

1回の実行で処理する件数に上限を置きます。 Apps Script の1回の実行は6分までとされています。1回に5件までとし、残りは次の実行に回します。 処理済みフォルダへ移すのは、照合結果のシートへの書き込みまで成功したときだけにします。

Step2

入力データを集める

データ中身取得元
輸入許可通知書PDF。受け取った日時と通関業者取込フォルダ
読み取り結果項目名と値の組、品目の表、全文のテキスト、項目ごとの信頼度Document AI(Form Parser)
輸入案件の台帳案件番号、発注番号、インボイスの番号と金額・通貨、見込みの為替、運賃・保険料の見込みGoogle スプレッドシート
品目の見込み品目ごとの HSコード、見込みの関税率、EPA を使う予定か台帳に足す列
通関業者の書式メモ申告番号・課税価格・税額が書かれる欄の名前、品目の欄の並び自社で用意する一覧
会計の入力の決まり関税・消費税・地方消費税・通関料をどの勘定に入れるか経理の手順書

質を決めるのは、品目の見込みの列です。 見込みの関税率が無ければ、許可通知書の税率と比べる相手がありません。EPA を使う予定だったかが書かれていなければ、一般の税率で申告されていても「差」として出せません。

Step3

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

読み取りは、Apps Script から Document AI の処理のAPIを呼ぶだけです。ファイルを渡すと、Document という形の応答が返ります。

取るもの応答のどこから何に使うか
項目名と値の組pages[].formFields[] の fieldName と fieldValue申告番号、許可日、輸入者、課税価格の合計、税額の合計
品目の表pages[].tables[] の headerRows と bodyRows品目ごとの課税価格、関税率、関税額
全文のテキストtext と、各要素の textAnchor表として取れなかった品目の行、欄の名前の拾い直し
信頼度各要素の layout の confidence金額・税率・申告番号の読み取りが確かかの判定

税率と金額は、信頼度とあわせて取ります。 関税率の「3.9%」と「8.9%」の違いは、関税と消費税の両方を変えます。信頼度の低い税率や金額は、その通知書を needs_review にして人に回します。

台帳は、インボイスの番号で引きます。 番号が読めない通知書に限り、仕入先と課税価格の合計で候補を出し、候補が2つ以上あれば選ばず unmatched にします。

Step4

AIへ渡す前に整形する

  1. 形式の確認 … Form Parser の対象は PDF、GIF、TIFF、JPEG、PNG、BMP、WebP です。添付がそれ以外なら取り込まずに担当者へ知らせます
  2. ページ数の確認 … 同期処理は15ページまでです。品目の多い通知書で15ページを超えるものは、バッチ処理に回します
  3. 添付の仕分け … 許可通知書と請求書が1つのPDFにまとまっている通関業者があります。ページの見出しの文字で分け、許可通知書のページだけを読みます
  4. 解像度の確認 … 公式には、OCRの精度のためにスキャンは最低200dpiが望ましく、300dpi以上が一般に最もよい結果になるとされています。紙で受け取ったものをスキャンする場合に限ります
  5. 通関業者の推定 … 送信元のアドレスから通関業者を決め、書式メモを引きます
  6. 重複の検知 … 同じ申告番号・許可日の通知書が直近にあれば、既処理として印を付けます

3番目を軽く見ないでください。 請求書には、通関業者が立て替えた関税・消費税の額と、通関料・保管料が並びます。許可通知書の税額と請求書の立替額が同じページに混ざると、通関料まで税額として写ります。

Step5

AIに処理させる

させるのは、許可通知書に書かれた数字を、決まった項目と品目の行に写すことだけです。 計算はさせません。

写す項目当たるものの例判断できないときの扱い
申告番号・許可日申告番号、許可年月日読めなければ空にして needs_review
輸入者・仕入先輸入者の名称、仕出人の名称書かれていなければ空
インボイスの番号仕入書番号、インボイス番号複数あればすべて列挙
品目の行品目の番号、品名、統計品目番号、数量行が分かれていなければ table_status を partial
品目ごとの課税価格課税価格(円)書かれていなければ空。合計から割り振らない
品目ごとの関税率・関税額関税率(%または従量)、関税額税率だけで税額が無ければ税額は空
消費税・地方消費税消費税額、地方消費税額、それぞれの課税標準合計しか書かれていなければ内訳は空
為替換算に使った為替相場書かれていなければ空。台帳の見込みで埋めない

右端の列が、この構成でいちばん大事な区別です。 書かれていない項目を、台帳の値や計算で埋めさせません。特に関税率と為替は、書かれていなければ空のままにします。

させないこと理由
税額の計算・検算掛け算と比で決まる。Apps Script が行う
書かれていない税率や為替の補完台帳の見込みで埋めると、差が必ず「一致」になる
品目ごとの課税価格の割り振り合計を数量で割ると、品目ごとの差が消える
統計品目番号の補完・修正似た番号に寄せると、別の品目の見込みと比べられる
差の原因の推測理由の区分は Apps Script が要素ごとの差から付ける
関税分類や EPA の当否の判断通関業者と税関が決めること

2行目がいちばん起きやすい失敗です。 関税率の欄が読み取れなかった通知書を渡すと、AIは関税額と課税価格から率を逆算して埋めます。その瞬間、EPA の税率が適用されていなかったという差が「一致」にすり替わります。

Step6

指示内容を固定する

あなたは輸入を担当する部署で、通関業者から届いた輸入許可通知書を読み、
輸入案件の台帳と会計に写すための下書きを作る立場です。
OCRが返した読み取り結果だけを見てください。推測で埋めないでください。

【やること】
1. 書類が輸入許可通知書かどうかを判断してください。
   請求書、通関料の明細、船積み書類など別の書類なら、
   写さずに document_type を other にしてください。
2. 申告の項目(申告番号、許可日、輸入者、仕出人、インボイスの番号、
   換算の為替相場、課税価格の合計、関税・消費税・地方消費税の合計)を写してください。
3. 品目の欄を1行ずつ items に入れてください。
   品名、統計品目番号、数量、課税価格、関税率、関税額を写します。

【厳守事項】
- 数字は書類に書かれたものをそのまま入れてください。
  桁区切りや「円」「%」は外してかまいませんが、値は変えないでください。
- 計算をしないでください。関税率が読めないときに、
  関税額と課税価格から逆算して埋めないでください。書かれていなければ空にします。
- 品目ごとの課税価格が書かれていないときに、合計を割り振らないでください。
- 消費税と地方消費税が合計しか書かれていないときに、内訳に分けないでください。
- 為替相場が書かれていないときに、ほかの値から求めないでください。
- 統計品目番号は読み取った文字列をそのまま入れてください。
  桁を補う、似た番号に直すことをしないでください。
- 関税率が従量(数量あたりの額)で書かれているときは、
  rate_type を specific にし、書かれた文字列を rate_text に写してください。
- 関税分類が正しいか、EPA の税率が使えたかについて書かないでください。
- evidence には、各値の根拠にした文字列をそのまま写してください。

【読み取り結果(キーと値の組、表、全文)】{ocr_result}
【この通関業者の書式メモ】{broker_note}

「逆算して埋めない」と「割り振らない」を分けて書くのは、片方だけでは止まらないからです。 税率の逆算だけを禁じると、品目ごとの課税価格を合計から割り振って埋め、品目ごとの差が見えなくなります。

Step7

出力形式を固定する

Gemini API の構造化出力で、次の形のJSONに固定して受け取ります。 公式には、Interactions の response_format に JSON スキーマを渡すと、そのスキーマに従う応答を生成させられるとされ、enum で値の候補を限り、required で必須の項目を決められます。

{
  "document_type": "import_permit | other",
  "declaration_no": "",
  "permit_date": "",
  "importer": "",
  "shipper": "",
  "invoice_refs": [],
  "fx_rate": { "currency": "", "rate": null },
  "totals": { "customs_value": null, "duty": null, "consumption_tax": null, "local_consumption_tax": null },
  "items": [
    { "line": 1, "description": "", "hs_code": "", "quantity": "",
      "customs_value": null, "rate_type": "ad_valorem | specific | free | unknown",
      "rate": null, "rate_text": "", "duty": null }
  ],
  "table_status": "complete | partial",
  "evidence": [{ "field": "", "text": "", "confidence": 0 }]
}

1つ目の理由は、AIの仕事と計算の仕事を別の層に置けることです。 JSONはAIが埋め、検算と判定は Apps Script が台帳の見込みで行います。

状態付ける条件(Apps Script が決める)
match品目ごとの関税率が見込みと同じで、課税価格の差が許容の範囲、税額の検算が通る
rate_diff品目のどれかで、関税率が見込みの税率と違う
value_diff関税率は同じだが、課税価格が見込みから許容の範囲を超えて違う
tax_check_ng地方消費税と消費税の比が合わない、品目の関税額の和が合計と合わない
unmatchedインボイスの番号で台帳の案件が見つからない、または候補が2つ以上ある
needs_review金額・税率・申告番号の信頼度が基準を下回る、または table_status が partial

rate_diff と value_diff には、要素ごとの理由を付けます。 Apps Script は、税率・為替・課税価格を別々に比べ、どれが違うのかを reason に入れます。

reason意味
epa_not_applied見込みは EPA の税率だが、通知書は一般の税率。原産地の証明の扱いを確かめる
rate_otherEPA とは別の理由で税率が違う。分類が見込みと違う可能性
fx_diff書かれた為替が見込みの為替と違い、課税価格の差がその範囲で説明できる
freight_diff為替では説明できず、運賃・保険料の扱いの差が疑われる
unexplained上のどれでも説明できない

検算は公式の数字だけに絞ります。 税関の説明では、地方消費税は消費税額の22/78とされています。この比と、品目の関税額の和が合計と合うかの2つを見ます。 公式にも、構文として正しいJSONでも値はアプリケーションの側で検証するよう書かれています。

Step8

システムへ連携する

つなぎ先方式内容
通関業者からのメールApps Script の時間主導型トリガーラベルの付いたメールから添付を取り出す
Document AIAPI呼び出し項目名と値の組・品目の表・信頼度を返す
Gemini APIAPI呼び出し(構造化出力)申告の項目と品目の行の対応付け
輸入案件の台帳スプレッドシートの読み取り見込みの為替・関税率・課税価格
照合結果のシートスプレッドシートへの書き込み品目ごとの差、状態、理由、根拠の文字列
入力用のシートスプレッドシートへの書き込み台帳・原価・会計のそれぞれの項目の形にそろえた行
会計システム書き込まない経理の担当が入力用の行を見て入力する

輸入案件の台帳には書き込みません。 書き込むのは、照合結果と入力用の行だけです。入力用の行は3つの形で出します。 台帳用は申告番号・許可日・税額の合計、原価用は品目ごとの課税価格と関税、会計用は関税・消費税・地方消費税を勘定ごとに分けた行です。同じ値から3つを作るので、写し間違いの入り込む余地がありません。

通関業者への照会メモの下書きは、rate_diff と unexplained にだけ作ります。 申告番号、品目、通知書の税率、見込みの税率、EPA を使う予定だったかを並べます。送るのは物流の担当です。

Step9

人が確認する

人が開くのは match 以外の行だけです。 match のものは一覧で件数と案件を流し見ます。全件を開く設計にすると、第10章の10.0時間には収まりません。

  1. needs_review を先に見る … 金額・税率・申告番号を通知書の画像で確かめて直します
  2. rate_diff を見る … epa_not_applied なら、原産地の証明書を仕入先から受け取っていたか、通関業者へ渡したかを確かめます
  3. value_diff の reason を読む … fx_diff は見込みの為替を直すだけで済みます。freight_diff は運賃の請求書と見比べます
  4. unexplained を照会に回す … 下書きを直して通関業者へ送ります
  5. 会計の入力用の行を確かめる … 経理の担当が勘定ごとの額を見て、会計システムへ入力します

2番目を省かないでください。 EPA の税率が使えたのに使われていなかった差は、その後の同じ仕入先の輸入にも続きます。

目標は、120件をならして1件5分です。 開くのは3割前後という想定で、それより多い月は、品目の見込みの列が埋まっていない案件があります。

Step10

例外に対処する

起きること対応
通知書が15ページを超える同期処理の上限。バッチ処理(100ページまで)に回す
品目の欄が2段で表として取れない単純な表が対象。全文のテキストから行を拾い直し、table_status を partial にする
許可通知書と請求書が1つのPDFページの見出しで分ける。分けられなければ needs_review
1つのインボイスを分割して通関台帳の案件に「分割」の印を付け、課税価格は通知書ごとの合計で比べる
訂正の申告で通知書が二度届く申告番号と許可日で別に扱い、前の通知書との差を照合結果に並べる
関税率が従量で書かれているrate_type を specific にし、税率の比較は文字列の一致だけで行う
台帳に案件が無いunmatched。台帳への登録漏れを先に疑う
輸入許可通知書でない書類document_type が other。照合せず担当者へ戻す
APIが応答しない、6分を超える取込フォルダに残す。処理済みへ移すのは書き込み成功時だけ

4行目がいちばん手間のかかる例外です。 台帳の側に分割の印が無いと、通知書が届くたびに見込みの半分にしか届かず、毎回 value_diff になります。

Step11

記録を残す

  • 元の許可通知書のPDFと、受け取った日時・通関業者・メールの件名
  • Document AI が返した Document のJSONの全文
  • Gemini API に渡した書式メモの版と、返ってきたJSON
  • Apps Script が出した状態と理由、そのとき照合した台帳の見込みの値
  • 入力用の3つの行と、人が直した記録
  • 通関業者に照会した日時と回答

1つ目は、仕入税額控除の書類として残します。 国税庁のページでは、仕入税額控除のために保存する請求書等に輸入許可書等が含まれ、課税標準の額や消費税・地方消費税の額などが記載されたものとされています。どのファイルを原本として保存するかは経理と決め、取込フォルダから消さないでください。

4つ目で「そのときの見込み」を残すのは、見込みが後から直るためです。 当時どの税率と為替で比べたかが残っていないと、どの案件の結果をやり直せばよいかが決まりません。

04実装レベルの3段階

最小構成:通知書を手でAIの画面に貼り、項目と品目を表にさせる / 1件ごとの読み取りと項目の対応付け
半自動化:上記+Document AI のAPIを呼び、結果をスプレッドシートに書き出す / 読み取りと対応付けの一覧化
本格構成:上記+メールを起点に自動で動かし、台帳の見込みと比べ、理由の区分と3つの入力用の行まで出す / 転記と見込みとの照合の全体

最小構成では件数がさばけません。 確かめるための段階です。 半自動化で、1件15分が9分程度になります。 読み取りは自動になりますが、案件を探して台帳と見比べる作業と、原価と会計の形に組み直す作業が残ります。本格構成で5分になり、この段階が本記事の想定です。 差が大きいのは、3つの入力先への組み直しが1件ずつの手作業だからです。 段階を飛ばさないでください。 半自動化の一覧を1か月見ると、見込みの関税率が抜けている品目が先に分かります。

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

前提値(モデル条件)
対象人数
3 名
月間件数
120 件
1件あたり現在時間
15 分
1件あたり導入後時間
5 分
現在  120件 × 15分 ÷ 60 = 30 時間/月
導入後 120件 × 5分 ÷ 60 = 10 時間/月
月間削減時間
20h
削減率
67%
年間削減時間
240h
年間金額換算(時間単価3,500円)
84万円
モデル条件による試算であり、実際の効果は業務内容・運用方法によって異なります。

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

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

AI活用について相談する

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

向いている
  1. 海外の仕入先から毎月数十件から百件以上を輸入し、通関を通関業者に任せている専門商社・製造業・小売業・EC事業者。輸入許可通知書がPDFで届き、関税と消費税の額を輸入案件の台帳と会計システムへ手で写している場合。見込みの関税率や為替で原価を組んでおり、実際の額との差を案件ごとに確かめたい場合。Google Workspace を使っている場合。
向いていない
  1. 輸入が月に数件で、通関業者の請求書を見れば足りる場合。通関業者から申告の内容をデータで受け取り、台帳と会計へそのまま取り込めている場合。品目ごとの見込みの関税率を台帳に持っておらず、比べる相手が無い場合。なお、関税分類や関税率の当否、EPA の適用の可否、仕入税額控除の扱いの判断はこの構成では代替できません。

07最小構成で試す方法

  1. 先月届いた許可通知書から、品目の多いものと、EPA を使う予定だった案件を中心に15件を選ぶ
  2. その15件について、担当者が当時どう写し、見込みとの差をどう片付けたかを聞き取る
  3. 15件を1件ずつ手元のAIサービスの画面に貼り付ける
  4. 「この輸入許可通知書から、申告番号・許可日・インボイスの番号・為替相場・品目ごとの品名・統計品目番号・課税価格・関税率・関税額、消費税・地方消費税の合計を表にしてください。書かれていない項目は空にし、計算で埋めないでください」と指示する
  5. 出てきた表を、台帳と会計にすでに入っている値と1項目ずつ突き合わせる
出てきた内容判断
品目の行と税額が正しく写ったOCRとワークフローの連携に進む
読めない税率を逆算して埋めた指示の書き方で直る。構成は有効
見込みの関税率が台帳に無く、比べられない案件が多い品目の見込みの整備が先。 AIの問題ではない

3行目は失敗ではなく、見込みとの照合が担当者の記憶に頼っていたことが分かったということです。

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

問題対策
読めない関税率を逆算して埋める逆算を禁じ、税率が空の品目は税率の比較をしないと規則に書く
品目ごとの課税価格を合計から割り振る割り振りを禁じ、table_status を partial にして人へ
請求書の通関料が税額に混ざる許可通知書のページだけを読む。 添付をページで分ける
EPA の予定が台帳に無く差が出ない品目の見込みに EPA を使う予定かの列を足す
分割通関の案件が毎回 value_diff台帳に「分割」の印を付け、通知書ごとの合計で比べる
統計品目番号の桁を補って別の品目と比べる番号は読んだまま。補完を禁じる
為替の差で毎回 value_difffx_diff を付けて流す。見込みの為替を直すのは人
入力用の行をそのまま会計に流し込む経理の担当が勘定ごとの額を見てから入力する
差を全部通関業者に問い合わせるreason を読んでから。説明がつくものは照会しない

上の2行が、この構成の失敗のほとんどです。 どちらも「合ってしまう」方向の誤りで、一覧からは誰も気づきません。

4行目と5行目は、見込みが整っていないと正しい申告を毎月差として出し、担当者が一覧を信用しなくなる問題です。

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

この構成で扱うデータ: 仕入先の名前、品目と数量、課税価格、適用された税率、そして発注時の見込みの為替と原価です。仕入の条件と原価そのもので、社外に知られれば仕入先や販売先との交渉に響きます。

  1. Gemini API は有料の枠で使う … 公式の利用規約では、有料のサービスではプロンプトと応答を製品の改善に使わないとされる一方、無料のサービスでは改善に使われ、人が読むことがあるとされ、機密の情報や個人情報を送らないよう求めています。請求先のアカウントを付けたプロジェクトから呼びます
  2. AIに渡すのは通知書1件分だけにする … 輸入案件の台帳と見込みの原価をAIへ渡しません。見込みとの比較は Apps Script の側で行い、AIには通知書の読み取り結果と書式メモだけを渡します
  3. 照会の連絡を自動で送らない … 出すのは下書きまでです。通関業者への問い合わせの言い方と、仕入先へ原産地の証明を求めるかは担当者が決めます
  4. 原本の保存を先に決める … 輸入許可書等は仕入税額控除のために保存する書類に当たります。取込フォルダの権限と保存の期間を経理と決めます
  5. この構成は関税分類や税率の判断を代替しない … 統計品目番号が正しいか、EPA の税率が使えたかを決めるのは、通関業者と税関です。 この構成が出すのは、通知書の数字が見込みと合ったかどうかという事実だけです

誤りが起きた場合のリスクは、差の見落としと、正しい申告の誤った照会の2つです。 前者は指示で、後者は見込みの整備で防ぎます。

10まず何から始めるか

1週目:品目の見込みを書き出す

輸入案件の台帳に、品目ごとの HSコード・見込みの関税率・EPA を使う予定かの列を足します。すべての品目を一度に埋める必要はありません。輸入の多い上位の仕入先の品目から埋めます。

2週目:15件で試す

先月の通知書から15件を選び、手元のAIサービスで項目と品目を表にさせます。読めない税率を逆算で埋めていないかを最優先で見ます。

3週目:書式メモと会計の入力の決まりを作る

通関業者2社分の書式メモと、関税・消費税・地方消費税・通関料をどの勘定に入れるかの一覧を作ります。会計の入力の決まりは経理と一緒に決めます。

4週目:メールから照合結果までをつなぐ

Apps Script で通関業者のメールを見張り、Document AI と Gemini API を呼び、結果をシートに書き出すところまで作ります。この時点では見込みと比べず、写した数字の一覧だけを見ます。

2か月目: 台帳の案件の引き当てと見込みとの比較を足し、状態と理由を出します。match 以外の件数を毎週数えます。3か月目以降: 3つの入力用の行と照会メモの下書きを足し、1件15分が何分になったかを実測します。EPA を使う予定の案件で、epa_not_applied が出るべきときに出ることを確かめた時点で、この構成は完成です。


11関連ユースケース

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

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

技術仕様確認日:2026-10-06/最終更新:2026-10-06
確認した内容情報源確認日
Form Parser がOCRのテキストに加えてキーと値のペア(エンティティとチェックボックス)、表、一般的なエンティティを抽出し、200を超える言語に対応すること。言語の一覧に日本語があること。ページ上限が同期15、バッチ100であることGoogle Cloud: Processor list2026-10-06
Form Parser が事前学習済みで追加の学習ができないこと。表の抽出が行や列をまたぐセルのない単純な表を対象とすること。ラテン文字以外の言語ではキーと値の読み取りの質が下がることがあることGoogle Cloud: Form Parser2026-10-06
formFields が fieldName と fieldValue を持つこと。表が headerRows と bodyRows で返ること。text と textAnchor の関係と、信頼度が返ることGoogle Cloud: Handle the processing response2026-10-06
対応形式が PDF、GIF、TIFF、JPEG、PNG、BMP、WebP などであること。スキャンは最低200dpiが望ましく300dpi以上が一般に最もよいことGoogle Cloud: Supported files2026-10-06
輸入品の消費税の課税標準が、CIF価格に個別消費税と関税の額を加えた合計額であること国税庁: No.6563 輸入取引2026-10-06
仕入税額控除のために保存する請求書等に輸入許可書等が含まれ、課税標準の額と消費税・地方消費税の額などが記載されたものであること国税庁: No.6497 仕入税額控除のために保存する帳簿および請求書等の記載事項2026-10-06
消費税率7.8%・地方消費税率2.2%(消費税額の22/78)であること税関: 1111 関税、消費税等の税額計算方法2026-10-06
Interactions の response_format に JSON スキーマを渡して応答の形を固定でき、enum と required を使えること。値はアプリケーションで検証すべきことGemini API: Structured outputs2026-10-06
有料サービスではプロンプトと応答を製品の改善に使わず、無料サービスでは改善に使われ人が読むことがあり、機密の情報を送らないよう求めていることGemini API 追加利用規約2026-10-06
Apps Script の1回の実行が6分までであることApps Script: Quotas for Google Services2026-10-06

関税分類や税率の当否、EPA の適用の可否は、通関業者と税関に確かめてください。 本記事は各製品と官公庁の公式ページで確認できた範囲だけを扱っています。

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

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

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

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