米国子会社の輸入で通関業者から届く英文の CBP Form 7501 を読み取り、HTSコード・関税額・原産国をインボイスと品目マスタに突き合わせる
通関業者から届く CBP Form 7501(Entry Summary)の控えを行ごとに読み取り、HTS番号・原産国・課税価格・関税率・関税額を、仕入インボイスの明細と品目マスタに突き合わせます。食い違いのある申告だけを担当者に回します。
- 生成AI
- ChatGPT/Claude/Gemini
- AIサービス
- AWS Textract/Azure AI/Google Document AI
- 連携・自動化
- Python
- 対象業界
- 商社/小売/物流/製造
- 対象部門
- 物流/経理
- 対象業務
- 内容確認・チェック/比較検討
- 主な課題
- 人手が足りない/入力作業が多い/確認ミスが多い
- AIで行う処理
- 読み取り(OCR)
- 主な効果
- 入力漏れ削減/品質標準化/工数削減
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 通関業者から届いた 7501 の控えのPDFを開き、申告番号(Entry Number)と船荷証券の番号から、どの便の申告かを確かめる
- 基幹システムで同じ便の仕入インボイスを開く
- 7501 の行ごとに品名とHTS番号を見て、インボイスのどの明細をまとめた行かを探す
- 品目マスタを開き、承認済みのHTS番号・原産国と同じかを見る
- 課税価格がインボイスの金額と合っているか、関税率と関税額がおかしくないかを電卓で確かめる
- 食い違いがあれば、通関業者に英文のメールで問い合わせる
- 関税額を経理に回し、仕入原価に載せる
- 自動通関業者からのメールの添付を受付フォルダに保存する(件名の申告番号をファイル名にする)
- 自動保存をきっかけに処理が動き、形式・ページ数・パスワードの有無を確かめる
- 自動OCRが、見出しの各欄(キーと値)、行の表、質問への答えを信頼度つきで返す
- 自動生成AIが、7501 の行ごとの値を所定の形にそろえ、インボイスの明細との対応の候補を出す
- 自動プログラムが、HTS番号・原産国を品目マスタと、課税価格をインボイスと照合し、関税額を検算する
- 自動食い違いのある行に印を付け、通関業者への確認依頼の下書きを作る
- 人担当者が、印の付いた申告だけを開き、根拠を確かめる
- 人通関業者に確認を依頼するかを決め、下書きを直して送る
- 自動照合が通った申告の関税額を、経理に回す一覧へ載せる
各工程の詳しい説明を読む
- 通関業者から届いた 7501 の控えのPDFを開き、申告番号(Entry Number)と船荷証券の番号から、どの便の申告かを確かめる
- 基幹システムで同じ便の仕入インボイスを開く
- 7501 の行ごとに品名とHTS番号を見て、インボイスのどの明細をまとめた行かを探す
- 品目マスタを開き、承認済みのHTS番号・原産国と同じかを見る
- 課税価格がインボイスの金額と合っているか、関税率と関税額がおかしくないかを電卓で確かめる
- 食い違いがあれば、通関業者に英文のメールで問い合わせる
- 関税額を経理に回し、仕入原価に載せる
(a)行の対応づけに時間がかかる。 7501 の品名はHTSの品目の言葉で、インボイスの品名は自社の品番と商品名です。「Ball bearings」の1行が、インボイスの8明細をまとめたものだったりします。 3番で数分が消えます。
(b)忙しい月は4番と5番が省かれる。 便が重なる月は、合計額だけを見て経理に回します。HTS番号の1桁違いは、合計額には出てきません。
(c)原産国の読み違い。 仕入先がタイの工場でも、部品の原産国が日本のことがあります。記入要領は、請求や輸出の国ではなく実際の原産国を書くとしています。インボイスの発行元の国と同じかどうかだけを見ると、正しい申告を誤りと思い、誤った申告を見逃します。
(d)気づくのが遅れる。 食い違いに気づくのが数か月後の監査や棚卸のときになると、どの便のどの行だったかを遡るだけで半日かかります。
- 【自動】 通関業者からのメールの添付を受付フォルダに保存する(件名の申告番号をファイル名にする)
- 【自動】 保存をきっかけに処理が動き、形式・ページ数・パスワードの有無を確かめる
- 【自動】 OCRが、見出しの各欄(キーと値)、行の表、質問への答えを信頼度つきで返す
- 【自動】 生成AIが、7501 の行ごとの値を所定の形にそろえ、インボイスの明細との対応の候補を出す
- 【自動】 プログラムが、HTS番号・原産国を品目マスタと、課税価格をインボイスと照合し、関税額を検算する
- 【自動】 食い違いのある行に印を付け、通関業者への確認依頼の下書きを作る
- 【人】 担当者が、印の付いた申告だけを開き、根拠を確かめる
- 【人】 通関業者に確認を依頼するかを決め、下書きを直して送る
- 【自動】 照合が通った申告の関税額を、経理に回す一覧へ載せる
7番目が、この設計の分かれ目です。 人が開くのは食い違いのある申告だけで、照合が通った申告は件数と合計額を流し見るだけです。
5番目をプログラムに置いているのは、計算と照合に解釈の余地がないからです。 HTS番号が品目マスタと同じか、税率×課税価格が関税額に合うかは、生成AIに判断させる必要がありません。
02今回想定するシステム構成
CBP Form 7501 の控え(通関業者からのPDF。継続シートを含む) ▼【トリガー】受付フォルダ(Amazon S3)への保存 AWS Lambda ── 形式・ページ数・パスワードの確認 ▼ AWS Textract(StartDocumentAnalysis:FORMS/TABLES/QUERIES) │ 見出しの各欄、行の表、質問への答え、信頼度 ▼ Claude API ── 行の値の整形と、インボイス明細との対応の候補 │ ① 申告の見出し ② 行ごとの HTS番号・原産国 ③ 課税価格・税率・関税額 ▼ Python ── 品目マスタ・インボイスとの照合、関税額の検算、合計の確認 ▼ 照合の結果(match / mismatch / needs_human)+ 確認依頼の下書き ▼ 【担当者が印の付いた申告だけを確認】 ├──▶ 通関業者へ確認の依頼(送信は人) └──▶ 関税額を経理の一覧へ
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| OCR | AWS Textract(StartDocumentAnalysis/GetDocumentAnalysis) | Azure AI Document Intelligence、Google Document AI |
| 生成AI | Claude API(行の値の整形、明細との対応づけ、依頼文の下書き) | OpenAI API、Gemini API |
| 差異計算 | Python(品目マスタ・インボイスとの照合、関税額の検算) | 基幹システムの照合機能 |
| 連携 | AWS Lambda(保存と完了の通知を起点に処理を動かす) | Amazon EventBridge |
| 保管 | Amazon S3(控え、読み取り結果、照合の結果) | 社内のファイルサーバー |
基幹システムと品目マスタは、新しく足すものではありません。 最初の準備は、品目マスタの「承認済みのHTS番号(10桁)」「原産国(ISOコード)」「承認日」「根拠(裁定の番号など)」の列を埋めることです。照合の相手がそろっていなければ、読み取った値を比べる先がありません。
OCRに AWS Textract を選ぶのは、7501 が英文の書式だからです。 公式の上限の表で、対応言語は英語、フランス語、ドイツ語、イタリア語、ポルトガル語、スペイン語とされ、質問による読み取りは英語の文書だけです。 日本語の書類は読めないので、本社の和文の資料はこの経路に入れません。
この題材で効くのは、表(TABLES)とキーと値(FORMS)の両方です。 7501 は、上半分が「10. Country of Origin」のような番号付きの欄、下半分が列31〜38の行の表という書式です。見出しの欄はキーと値で、行は表のセルで取ります。 同期の処理はPDFで1ページまでなので、継続シートを含めて読むために非同期の処理を使います。
03どうやって実装するのか
処理の起点を決める
受付フォルダ(Amazon S3)にPDFが保存されたことを起点にします。 申告は便ごとに出るため、1日1回の定時実行にはしません。 控えが届いたその日に食い違いが分かれば、通関業者が案件を覚えているうちに確認を頼めます。
通関業者のメールは専用のアドレスで受け、添付を受付フォルダに自動で保存します。 ファイル名には件名から取った申告番号を付けます。申告番号が取れないメールは、処理を始める前に止めて担当者に知らせます。
S3 への保存を AWS Lambda が受け、StartDocumentAnalysis を呼びます。ClientRequestToken に申告番号とファイルのハッシュから作った値を入れると、同じ控えが二度届いても同じ JobId が返り、二重に照合しません。 完了は Amazon SNS に届き、SUCCEEDED を確かめてから結果を取り、すぐ S3 に保存します(JobId は7日間だけ有効です)。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 7501 の控え | 本紙と継続シート。受け取った日時と通関業者 | 受付フォルダ(S3) |
| 読み取り結果 | 見出しの欄、行の表、質問への答え、信頼度 | AWS Textract |
| 仕入インボイスの明細 | インボイス番号、品番、品名、数量、金額、通貨、仕入先 | 基幹システム(購買) |
| 便の情報 | 船荷証券・航空運送状の番号、インボイス番号の一覧 | 基幹システム(入荷予定) |
| 品目マスタ | 品番、承認済みのHTS番号、原産国、承認日、根拠 | 品目マスタ |
| 照合の許容幅 | 課税価格の差として許す範囲、関税額の端数の扱い | 物流と経理が決めた規則 |
質を決めるのは、品目マスタと照合の許容幅です。 マスタに承認済みのHTS番号が無い品目は照合できず、許容幅を決めていないと、為替や運賃の配分で生じる小さな差が全部 mismatch になります。
便の情報は、申告とインボイスを結ぶために使います。 7501 の「12. B/L or AWB Number」と基幹システムの入荷予定の番号が一致すれば、どのインボイスの申告かが決まります。
データの取得方法を決める
読み取りは StartDocumentAnalysis に FeatureTypes として FORMS、TABLES、QUERIES を指定して行います。全文の行と単語は、指定した機能にかかわらず返ります。 結果は GetDocumentAnalysis で取り、NextToken が返る限り続けて取ります。
| 取るもの | どの機能で | 何に使うか |
|---|---|---|
| 見出しの欄 | FORMS | 1. Entry Number、7. Entry Date、10. Country of Origin、12. B/L or AWB Number、30. Importer of Record |
| 行の表 | TABLES | 列31〜38(行番号、品名、HTS番号、重量、数量、課税価格、税率、関税額) |
| 合計の欄 | FORMS | 39. Total Entered Value、41. Duty、43. Other、44. Total |
| 質問への答え | QUERIES | 申告番号や合計のように、欄の位置がずれても拾いたい値 |
| 全文の行 | 常に返る | 表のセルが崩れたときに、行の値を拾い直す材料 |
質問は QueriesConfig に別名(Alias)を付けて並べます。公式の手引きは、決まった欄の値を取るときは欄の名前をそのまま質問にしてよいとしています。例えば ENTRY_NO に「Filer Code/Entry Number」、TOTAL_EV に「Total Entered Value」です。質問は既定で1ページ目しか見ません。 合計は本紙にありますが、継続シートの行も取るため、表は全ページから取ります。
行の表はそのまま使えないことがあります。 7501 の1行は、HTS番号の下に関連する番号や手数料が何段も重なる書き方をします。記入要領では、1行に複数のHTS番号が並ぶもの(例えば第98類の品目)や、HTS番号の直下に裁定の番号(「RLNG」で始まる)や手数料を書くものがあります。セルの中で段が混ざるので、行への組み立ては生成AIに任せます。
AIへ渡す前に整形する
- 形式の確認 … JPEG、PNG、PDF、TIFF であることを確かめます。XFA形式のPDFは扱えません
- パスワードの確認 … パスワードで保護されたPDFは読めません。通関業者に保護の無いものを頼みます
- ページの確認 … 本紙と継続シートがそろっているかを、行番号の連続で確かめます。記入要領では、行番号は001から順に振るとされています
- 文字の大きさの確認 … 文字の高さが15ピクセルを下回ると検出されません。150 DPIで8ポイント相当です。ファクスを経由した控えは、これを下回りやすいので、PDFの原本を頼みます
- 重複の確認 … 同じ申告番号の控えが既にあれば、差し替え版かどうかを日付で見分けます
- インボイスの呼び出し … 「12. B/L or AWB Number」で入荷予定を引き、その便のインボイスの明細を取り出します
3番目を省かないでください。 継続シートが1枚抜けていても、本紙の合計と行の合計が合わないことでしか気づけません。 ページの抜けは、照合の前に止めます。
AIに処理させる
させるのは、7501 の行を所定の形にそろえ、インボイスの明細との対応の候補を根拠つきで出すことだけです。
| 取り出す項目 | 中身 | 取り出せないときの扱い |
|---|---|---|
| 申告の見出し | 申告番号、申告日、輸入者、原産国(全体または「MULTI」)、船荷証券の番号 | 見つからなければ not_found |
| 行の基本 | 行番号、品名、特恵の記号、行ごとの原産国(「MULTI」のとき) | 読めなければ unreadable |
| HTS番号 | 10桁の番号(複数あればすべて)、裁定の番号 | 桁が欠けていれば unreadable |
| 価格と税 | 課税価格、運賃等(C付き)、関係の有無(Y/N)、税率、関税額、手数料 | 税率が従量・複合なら rate_type に記録 |
| 明細との対応 | その行にまとめられたインボイス明細の候補と、根拠 | 候補が複数に割れれば ambiguous |
明細との対応が、いちばん手間を減らすところです。 7501 の品名「Ball bearings」と、インボイスの「DGBB 6204ZZ」「DGBB 6205ZZ」を、品目マスタのHTS番号と金額の合計を手がかりに結びます。対応の根拠(どの品番を、なぜ選んだか)を必ず添えさせます。
| させないこと | 理由 |
|---|---|
| HTS番号の正否の判断 | 分類は輸入者と通関業者が決める。照合は品目マスタとプログラムで行う |
| 関税額の計算 | 税率×課税価格の検算はプログラムが行う |
| 桁の欠けたHTS番号の補完 | 「それらしい番号」に直すと、見つけたかった誤りが消える |
| 原産国の判定 | 実際の原産国は品目マスタの根拠で決まる。品名から推測しない |
| 訂正を求めるかの判断 | 申告の訂正は輸入者の責任者と通関業者が決める |
3行目がいちばん起きやすい失敗です。 「8482.10.50」のように末尾の2桁が読めないとき、AIは品目マスタの番号で埋めたくなります。埋めた瞬間、照合は必ず match になります。
指示内容を固定する
あなたは米国子会社の物流管理の担当として、通関業者から届いた
CBP Form 7501(Entry Summary)の控えを読み、行ごとの値をそろえて、
仕入インボイスの明細との対応の候補を出します。
OCRが返した読み取り結果だけを見てください。推測で埋めないでください。
【取り出す項目】
1. 申告の見出し(Entry Number、Entry Date、Importer of Record、
Country of Origin、B/L or AWB Number)
2. 行ごとの値(行番号、品名、HTS番号のすべて、行ごとの原産国、
Entered Value、Charges、Relationship、HTS Rate、Duty、手数料)
3. 行ごとの、インボイス明細との対応の候補と根拠
【status の選び方】
- ok ......... 値が読み取れており、その欄の値として解釈できる
- not_found .. その欄に値が無い
- unreadable . 文字は検出されているが信頼度が低い、または桁が欠けている
- ambiguous .. 候補が複数あり、1つに決められない
迷ったときに ok を選ばないでください。
【厳守事項】
- HTS番号は、読み取った文字列をそのまま写してください。
桁を補う、品目マスタの番号に直すことをしないでください。
- 1行に複数のHTS番号があるときは、すべてを順に写してください。
- 「RLNG」で始まる裁定の番号、「O」で始まる行ごとの原産国、
手数料の記載は、それぞれの欄に分けてください。
- 関税額を計算しないでください。書かれている金額だけを写してください。
- 税率が「Free」、百分率、数量あたりの金額、その組み合わせのどれかを
rate_type に書き、原文を rate_original に写してください。
- 原産国を品名や仕入先の国から推測しないでください。書かれているコードだけを写してください。
- インボイス明細との対応は候補として出し、根拠(品番、品名、金額)を
reason に書いてください。決められなければ ambiguous にしてください。
- 分類が正しいか、訂正を求めるべきかは書かないでください。
【読み取り結果】{textract_result}
【この便のインボイス明細】{invoice_lines}
【明細の品番に対応する品目マスタの抜粋】{item_master}
「品目マスタの番号に直さない」を明記しないと、親切に直します。 マスタの抜粋を渡しているので、AIには「正しい番号」が見えています。見えているからこそ、写すだけにさせることを言葉で縛ります。
品目マスタを渡すのは、対応づけの手がかりにするためです。 照合の材料にさせるためではありません。照合はプログラムが行います。
出力形式を固定する
次の形のJSONで受け取ります。 Claude API の構造化出力(output_config.format に json_schema)で形を守らせます。
{
"entry_no": "",
"entry_date": "",
"bl_awb_no": "",
"origin_header": "",
"lines": [
{
"line_no": "001",
"description": "",
"hts_numbers": [""],
"ruling_no": "",
"origin_line": "",
"entered_value": "",
"charges": "",
"relationship": "Y | N | not_found",
"rate_type": "free | ad_valorem | specific | compound | not_found",
"rate_original": "",
"duty": "",
"status": "ok | not_found | unreadable | ambiguous",
"invoice_lines": [ { "invoice_no": "", "item_code": "", "reason": "" } ]
}
],
"totals": { "entered_value": "", "duty": "", "other": "", "total": "" }
}
1つ目の理由は、照合をプログラムに渡せることです。 hts_numbers と invoice_lines の品番があれば、品目マスタの承認済みの番号と1対1で比べられます。照合の結果は AI の出力に入れず、プログラムが別に持ちます。
2つ目は、rate_type で検算の可否を分けられることです。 記入要領では、税率は無税・従価・従量・複合のいずれかで書かれます。従価なら税率×課税価格で検算し、従量と複合は数量の単位が要るので needs_human にします。
| 照合 | 結果 |
|---|---|
| HTS番号が品目マスタの承認済みの番号と同じ | match。違えば mismatch |
| 原産国が品目マスタと同じ | match。違えば mismatch |
| 課税価格とインボイスの合計の差が許容幅の中 | match。外なら mismatch |
| 従価の税率×課税価格が関税額に合う | match。合わなければ mismatch |
| 行の合計が「39. Total Entered Value」「41. Duty」に合う | 合わなければ申告全体を needs_human |
最後の行は、読み取りの誤りを拾う網です。 行の値を1つ読み違えれば、合計が合わなくなります。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 通関業者のメール | 専用アドレスで受け、添付を保存 | 控えのPDFを受付フォルダへ |
| AWS Textract | API呼び出し(非同期) | 見出しの欄・行の表・質問の答えを返す |
| Claude API | API呼び出し | 行の値の整形、明細との対応づけ、依頼文の下書き |
| 基幹システム | 読み取り | 入荷予定、インボイスの明細、品目マスタ |
| 経理の一覧 | 書き出し | 照合が通った申告の関税額 |
基幹システムへは書き込みません。 品目マスタのHTS番号と申告が違っていても、マスタを申告に合わせて直すことはしません。 どちらが正しいかを決めるのは貿易管理の担当者です。
通関業者への依頼は、下書きまでです。 送信は担当者が行います。
人が確認する
人が開くのは、mismatch か needs_human の行がある申告だけです。 照合が通った申告は、件数と関税の合計を一覧で流し見ます。
- 合計が合わない申告を先に見る … 読み取りの誤りか、ページの抜けかを、控えの画像で確かめます
- HTS番号の食い違いを確かめる … 品目マスタの承認の根拠と、申告の番号を並べます。マスタが古いこともあります
- 原産国の食い違いを確かめる … 第3章の(c)のように、仕入先の国と原産国が違う品目は、マスタの根拠を見ます
- 通関業者に確認を頼むかを決める … 下書きを直して送ります
- 判定を覆したら記録する … 照合の結果を、どちらに変えたかを残します
2番目でマスタを先に疑うのは、承認が古いまま残っていることがあるからです。 HTSは改正されます。申告のほうが新しい番号で、マスタが古い番号ということは珍しくありません。
例外に対処する
| 起きること | 対応 |
|---|---|
| パスワード付き・XFA形式のPDF | 読めないので、通関業者に保護の無いPDFを頼む |
| 継続シートが抜けている | 行番号の飛びで検知し、照合の前に止めて通関業者に頼む |
| B/L の番号で便が引けない | 手で便を指定するまで止める |
| HTS番号の桁が読めない | unreadable。照合せずに人へ |
| 原産国が「MULTI」 | 行ごとの「O」で始まるコードを使う。無ければ needs_human |
| 税率が従量・複合 | 検算せず needs_human |
| 品目マスタに承認済みの番号が無い | 照合できないので、貿易管理の担当者に承認を頼む |
| 同じ申告の差し替え版が届く | 前の版の照合を残したまま、新しい版で照合し直す |
7行目が、運用を始めて最初に増えるものです。 6,000品目のうち承認済みの番号が入っているのは、よく動く品目だけということが多いからです。この一覧が、そのままマスタ整備の作業表になります。
記録を残す
- 元のPDFと、受け取った日時・通関業者・申告番号
- Textract が返したJSONの全文と、
JobId・状態 - 生成AIの出力(
lines、totals) - 照合の結果と、そのとき参照した品目マスタの番号と承認日
- 人が判定を覆した記録と、通関業者とのやり取り
- 経理に回した関税額と、回した日
4つ目で「そのときのマスタ」を残すのは、マスタが後から直るためです。 承認済みの番号を直したあとで過去の照合を見返すと、当時は mismatch だった理由が分からなくなります。
04実装レベルの3段階
最小構成では件数がさばけません。 月240件には使えず、確かめるための段階です。 半自動化で、1件15分が9分程度になります。 読み取りは自動になりますが、対応づけと照合が手で残ります。本格構成で4分になり、この段階が本記事の想定です。 差が大きいのは、対応づけと検算が、1行ずつ別の画面を開く作業だからです。 段階を飛ばさないでください。 半自動化の一覧を1か月見ると、承認済みの番号が無い品目の一覧が先に出ます。そこを埋めてから照合に進むほうが、mismatch の空振りが減ります。
05工数削減シミュレーション
導入後 240件 × 4分 ÷ 60 = 16 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 米国に販売子会社や物流拠点を持ち、日本の本社やアジアの工場から製品・部品を毎月数百件輸入している商社・メーカー・小売。輸入者(Importer of Record)として申告の責任を負いながら、申告の中身は通関業者に任せきりで、届いた CBP Form 7501 の控えを読んで確かめる人がいない、または少数の担当者が全件を目で追っている場合。品目ごとに承認したHTS番号と原産国を品目マスタに持っている、または持つ準備がある場合。
- 米国への輸入が月に数件で、目視で足りる場合。通関業者から申告データを電子で受け取り、品目マスタと機械的に照合できる仕組みがすでにある場合。なお、どのHTS番号に分類すべきか、原産国をどう判定するか、申告の訂正を行うかの判断は、輸入者の責任者と米国の通関業者(licensed customs broker)や専門家が行うもので、この構成では代替できません。
07最小構成で試す方法
- 先月の申告から10件を選ぶ(行数の多い申告と、原産国が「MULTI」の申告を混ぜる)
- その10件のインボイス明細と、品目マスタのHTS番号・原産国を書き出す
- 7501 の控えのPDFを手元のAIサービスに1件ずつ渡す
- 「この申告の行ごとに、品名、HTS番号、原産国、課税価格、税率、関税額を表にしてください。HTS番号は読めたとおりに写し、直さないでください。関税額を計算しないでください」と指示する
- 出てきた表を、インボイスと品目マスタに手で突き合わせる
10件は必ずやってください。 照合を組む前に、「行の表が組み立てられるのか」を確かめます。
| 出てきた内容 | 判断 |
|---|---|
| 行の値が正しく表になった | OCRとワークフローの連携に進む |
| HTS番号を直した、関税額を計算した | 指示の書き方で直る。構成は有効 |
| 継続シートの行が欠けた、段が崩れた | PDFの質と、ページのそろい方を先に直す |
3行目が出たら、通関業者に控えの渡し方を相談してください。 スキャンした控えより、通関業者のシステムから出したPDFのほうが表の崩れが少なくなります。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| AIがHTS番号をマスタの番号に直す | 写すだけにさせ、指示に明記する。直せば照合が必ず通ってしまう |
| 行の段が崩れる | 全文の行から拾い直す。合計との照合で読み違いを拾う |
| 継続シートが抜ける | 行番号の飛びで止める |
| 原産国を仕入先の国で判断する | 品目マスタの根拠で見る。請求や輸出の国ではなく実際の原産国 |
| 従量・複合の税率で検算が外れる | rate_type で分け、検算しない |
小さな差が全部 mismatch になる | 許容幅を物流と経理で決める |
| 品目マスタが古い | mismatch のときはマスタを先に疑う。承認日を持つ |
| ファクス経由の控えが読めない | PDFの原本を通関業者に頼む |
| 依頼メールが自動で飛ぶ | 下書きまでにする。 送信は人が行う |
上の2行が、この構成の失敗のほとんどです。 前者は誤りを消し、後者は誤りを作ります。写すことと組み立てることをAIに、比べることと計算することをプログラムに分けてあるかどうかで、運用に乗るかが決まります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 輸入者の番号(税務上の識別番号を含みうる)、仕入先と取引の金額、品目と数量、関係会社間の取引かどうか(関係の有無)、通関業者の情報です。
- 外部へ渡す範囲を限る … 生成AIに渡すのは、行の表とその便のインボイス明細、関係する品目の抜粋だけです。品目マスタ全体は渡しません
- 結果は暗号化して保管する …
StartDocumentAnalysisのOutputConfigで結果を自社の S3 に出し、KMSKeyIdで自社の鍵による暗号化を指定できます - この構成は分類と原産地の判断を代替しません … どの番号に分類すべきか、原産国をどう判定するかは、輸入者の責任者と通関業者、専門家が決めることです。 この構成が出すのは、申告と自社のマスタが同じかどうかという事実だけです
- 訂正を自動で求めない … 確認の依頼は下書きまでです。申告の訂正は、通関業者と相談して輸入者が決めます
- 関係会社間の取引の扱いに注意する … 記入要領では、関係の有無を「Y」か「N」で書くとされています。本社からの仕入では価格の決め方が問われうるので、照合の結果を移転価格の担当にも共有できる形で残します
誤りが起きた場合のリスクは、申告の誤りを見逃すことと、正しい申告を誤りとして通関業者に差し戻すことの2つです。 前者はAIがHTS番号を直すと起き、後者はマスタが古いと起きます。どちらも、照合の相手を承認日つきで持つことで小さくできます。
10まず何から始めるか
1週目:品目マスタの列をそろえる
品目マスタに、承認済みのHTS番号(10桁)・原産国・承認日・根拠の列があるかを確かめます。直近3か月に輸入した品目から埋めます。
2週目:10件で試す
先月の申告から10件を選び、手元のAIサービスで行の表を作らせます。HTS番号を直していないか、関税額を計算していないかを最優先で見ます。
3週目:照合の規則を決める
課税価格の許容幅、関税額の端数の扱い、mismatch のときに誰が何を見るかを、物流と経理で決めます。 あわせて、通関業者に控えをPDFの原本で送ってもらうよう頼みます。
4週目:受付フォルダから行の一覧までをつなぐ
専用アドレスで控えを受け、Textract で読み、行の一覧を書き出すところまで作ります。この時点では照合をせず、行の表が正しく組めているかだけを見ます。
2か月目: インボイスとの対応づけと照合を足し、mismatch の件数を毎週数えます。3か月目以降: 確認依頼の下書きを足し、1件15分が何分になったかを実測します。承認済みの番号が無い品目の一覧が空になった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| CBP Form 7501 が輸入品の課税価格の評価・分類・原産地などを決めるための書式であること。継続シートを含むこと | CBP: Form 7501 - Entry Summary with Continuation Sheets | 2026-10-08 |
| 欄の番号と名前(1. Filer Code/Entry Number、10. Country of Origin、12. B/L or AWB Number、30. Importer of Record、列31〜38、39. Total Entered Value、41. Duty、44. Total)。原産国はHTS附属書BのISOコードで書き、請求や輸出の国ではなく実際の原産国とすること、複数なら「MULTI」として行ごとに「O」付きで書くこと。1行が1つの国からの1品目で、複数のHTS番号を要する行があること。行番号を001から順に振ること。HTS番号を10桁で書き、裁定の番号を「RLNG」付きで直下に書くこと。課税価格を米ドルの整数で書くこと、運賃等を「C」付きで書くこと、関係の有無を Y/N で書くこと。税率が無税・従価・従量・複合で書かれること。関税額が税率×課税価格または数量で計算されること。輸入者が関税の支払とすべての要件を満たす責任を負う者とされること | CBP Form 7501 (02/26) と記入要領(PDF) | 2026-10-08 |
| 7501 が輸入者またはその代理人によって輸入ごとに提出され、課税価格と見込みの関税・税・手数料を示すこと。輸入の時点で出さない場合は輸入から10営業日以内に提出すること | Federal Register: Agency Information Collection Activities; Revision; Entry Summary(2026年10月1日公示) | 2026-10-08 |
| 対応する形式(JPEG、PNG、PDF、TIFF)とXFA形式のPDFの非対応。同期はPDF1ページまで、非同期は500MB・3,000ページまで。パスワード付きPDFの非対応。対応言語が英・仏・独・伊・葡・西で、質問は英語だけ。文字の最小の高さが15ピクセル(150 DPIで8ポイント相当) | AWS: Set Quotas in Amazon Textract | 2026-10-08 |
FeatureTypes(TABLES/FORMS/QUERIES/SIGNATURES/LAYOUT)。全文の行と単語は指定にかかわらず返ること。ClientRequestToken で同じ JobId が返ること、Amazon SNS への完了通知と SUCCEEDED の確認、OutputConfig と KMSKeyId。JobId が7日間だけ有効なこと | AWS: StartDocumentAnalysis | 2026-10-08 |
決まった欄の値は欄の名前を質問にしてよいこと。ページの指定が無いと ["1"] になること | AWS: Best Practices for Queries | 2026-10-08 |
構造化出力を output_config.format に json_schema を指定して受け取れること | Claude Docs: Structured outputs | 2026-10-08 |
どの番号に分類するか、原産国をどう判定するか、申告の訂正を行うかの判断は、輸入者の責任者と米国の通関業者や専門家が行うものです。 本記事は CBP と Federal Register の公開情報で確認できた範囲と、申告の控えと自社のマスタの照合までを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1066)についてのご相談はこちらから。
