Media > AI活用ユースケース > 物流 > 輸入する商社が、海外の輸出者から届く英文の原産地証明書を読み取り、インボイスと船積書類に照らして、EPA税率を使うための記載の不備を通関前に洗い出す

輸入する商社が、海外の輸出者から届く英文の原産地証明書を読み取り、インボイスと船積書類に照らして、EPA税率を使うための記載の不備を通関前に洗い出す

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

海外の輸出者から届く英文の原産地証明書を読み取り、記載事項ごとにインボイスと船荷証券の値と並べます。署名の脱落や品名・数量の食い違いを、貨物が着く前に洗い出し、輸出者へ再発給を頼む文面の下書きまで作ります。

サマリー
生成AI
ChatGPT/Claude/Gemini
AIサービス
AWS Textract/Azure AI/Google Document AI
連携・自動化
Python
対象業界
商社/小売/製造
対象部門
物流/購買
対象業務
内容確認・チェック/比較検討
主な課題
属人化している/期限・対応漏れが起きる/確認ミスが多い
AIで行う処理
読み取り(OCR)
主な効果
入力漏れ削減/判断支援/機会損失防止
導入難易度
★★★☆☆
実装レベル
本格構成
費用感
API連携(中)
人間の確認
条件付き
現在工数
72h/月
AI導入後
20h/月
想定削減
72%
年間削減
624h
モデル条件による試算値です。実在企業の実績ではありません。

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

導入前(Before)
  1. 輸出者から証明書の写しのPDFがメールで届き、案件のフォルダに保存する
  2. 担当者が証明書とインボイスと船荷証券を並べて開く
  3. 輸出者名・住所、輸入者名・住所、インボイス番号・日付、船名・仕出港、品名、数量・総重量、包装の個数と記号を、1項目ずつ見比べる
  4. 特恵基準(WO、CTC、RVC など)の記載と、HS番号を、案件の台帳の申告予定の税番と見比べる
  5. 発給機関の印影・署名、発給日、発給番号があるかを見る
  6. 食い違いがあれば、通関業者に相談するか、輸出者に再発給を頼むメールを英文で書く
  7. 原本が届いたら、写しと同じものかを確かめて通関業者に渡す
導入後(After)
  1. 人証明書の写しのPDFを、案件番号を付けて S3 の受付の場所に保存する
  2. 自動保存を起点に AWS Lambda が動き、形式・サイズ・ページ数を確かめて、Textract の非同期の分析を始める
  3. 自動Textract が、キーと値の組、表、問いへの答え、署名の位置を返す
  4. 自動Claude API が、記載事項ごとに値を取り出し、品名の行をインボイスの行に対応づける
  5. 自動Python の処理が、インボイス・船荷証券・台帳の値と記載事項ごとに比べ、`ok` / `missing` / `mismatch` / `unreadable` を付ける
  6. 自動記載事項ごとの結果を、税関の不備の一覧の区分(真正性/同一性/原産性)に当てはめ、優先度を付ける
  7. 自動真正性の区分に `missing` がある案件について、輸出者への再発給依頼の英文の下書きを作る
  8. 人担当者が優先度の高い案件から開き、結果を証明書の画像で確かめる
  9. 人再発給を依頼するか、通関業者に相談するかを決め、下書きを直して送る
  10. 【人/自動】 原本が届いたら同じ流れでもう一度読み、写しとの違いと「COPY」の表示を確かめる
各工程の詳しい説明を読む
  1. 輸出者から証明書の写しのPDFがメールで届き、案件のフォルダに保存する
  2. 担当者が証明書とインボイスと船荷証券を並べて開く
  3. 輸出者名・住所、輸入者名・住所、インボイス番号・日付、船名・仕出港、品名、数量・総重量、包装の個数と記号を、1項目ずつ見比べる
  4. 特恵基準(WO、CTC、RVC など)の記載と、HS番号を、案件の台帳の申告予定の税番と見比べる
  5. 発給機関の印影・署名、発給日、発給番号があるかを見る
  6. 食い違いがあれば、通関業者に相談するか、輸出者に再発給を頼むメールを英文で書く
  7. 原本が届いたら、写しと同じものかを確かめて通関業者に渡す

(a)見比べる項目が多い。 3番目から5番目で20項目近くを見ます。証明書は様式の枠に詰めて書かれ、品名の欄に複数の品目が並び、どの行がインボイスのどの行に当たるかを探すだけで時間がかかります。

(b)不備の重さを、担当者が判断している。 輸出者の住所の書き方が違うだけなのか、発給機関の署名が抜けているのかで、対応はまったく違います。経験の浅い担当者は、全部を輸出者に再発給依頼して、輸出者を待たせることがあります。 逆に、重い不備を軽く見て通関の直前に指摘されることもあります。

(c)写しと原本の両方を見る必要がある。 写しの段階で問題がなくても、原本に「COPY」の表示があったり、署名が写しと違ったりすることがあります。 7番目は急いでいると省かれます。

  1. 【人】 証明書の写しのPDFを、案件番号を付けて S3 の受付の場所に保存する
  2. 【自動】 保存を起点に AWS Lambda が動き、形式・サイズ・ページ数を確かめて、Textract の非同期の分析を始める
  3. 【自動】 Textract が、キーと値の組、表、問いへの答え、署名の位置を返す
  4. 【自動】 Claude API が、記載事項ごとに値を取り出し、品名の行をインボイスの行に対応づける
  5. 【自動】 Python の処理が、インボイス・船荷証券・台帳の値と記載事項ごとに比べ、ok / missing / mismatch / unreadable を付ける
  6. 【自動】 記載事項ごとの結果を、税関の不備の一覧の区分(真正性/同一性/原産性)に当てはめ、優先度を付ける
  7. 【自動】 真正性の区分に missing がある案件について、輸出者への再発給依頼の英文の下書きを作る
  8. 【人】 担当者が優先度の高い案件から開き、結果を証明書の画像で確かめる
  9. 【人】 再発給を依頼するか、通関業者に相談するかを決め、下書きを直して送る
  10. 【人/自動】 原本が届いたら同じ流れでもう一度読み、写しとの違いと「COPY」の表示を確かめる

8番目が、この設計の分かれ目です。 人が見るのは全項目ではありません。真正性の区分の不備がある案件を先に、同一性の区分の食い違いだけの案件を次に見ます。 全件を同じ順で開く設計にすると、急ぐべき再発給の依頼が遅れます。

6番目の区分は、税関の一覧から作った規則の表で機械的に決めます。 AIは値を取り出すだけです。

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

構成図
原産地証明書(写しのPDF → 後から原本のスキャン)
   │  案件番号を付けて保存
   ▼【トリガー】Amazon S3 への保存
AWS Lambda ── 形式・サイズ・ページ数の確認、非同期の分析の開始
   ▼
AWS Textract(AnalyzeDocument の FORMS・TABLES・QUERIES・SIGNATURES)
   │   キーと値の組・表・問いへの答え・署名の位置
   ▼ 完了の通知(Amazon SNS)
Claude API ── 記載事項ごとの値の取り出し、品名の行の対応づけ
   ▼
Python ── インボイス・船荷証券・台帳との比較、税関の一覧の区分への当てはめ
   │   真正性/同一性/原産性 × ok/missing/mismatch/unreadable
   ├──▶ 案件ごとの点検表と優先度
   └──▶ 輸出者への再発給依頼の下書き(英文)
   ▼
【担当者が優先度の高い案件から確認】──▶ 輸出者・通関業者へ
役割想定する製品代替候補
OCRAWS Textract(AnalyzeDocument の FORMS・TABLES・QUERIES・SIGNATURES)Azure AI Document Intelligence、Google Document AI
生成AIClaude API(記載事項の取り出し、品名の行の対応づけ、再発給依頼の下書き)OpenAI API、Gemini API
差異計算Python(インボイス・船荷証券・台帳との比較と、区分への当てはめ)輸入案件の台帳の照合機能
連携AWS Lambda(保存を起点に処理を動かし、点検表を書き出す)Amazon EventBridge
保管Amazon S3(証明書と読み取り結果)社内のファイルサーバー
通知Amazon SNS(読み取りの完了の通知)Amazon SQS

インボイスと船荷証券の値は、すでに台帳にある前提です(転記は UC-0395 など別の仕組み)。新しく作るのは、税関の不備の一覧から作った区分の規則の表と、協定ごとの記載事項の一覧です。

OCRに Textract を選べるのは、証明書が英文だからです。 Textract の公式の制限では、対応する言語は英語、フランス語、ドイツ語、イタリア語、ポルトガル語、スペイン語で、手書きの認識は英語だけ、縦書きには対応しないとされています。日本語の書類は読めません。 一方、税関の不備の一覧では、英語以外による記述は原則無効(固有名詞、日付等明らかな場合は有効)とされています。EPAの原産地証明書は英文で書かれるのが前提なので、この題材は Textract の対応範囲に収まります。 輸出国の文字で書かれた住所などが混ざる場合は、その欄を読めない欄として扱います。

使う機能は4つです。 AnalyzeDocument の FeatureTypes には TABLES・FORMS・QUERIES・SIGNATURES・LAYOUT を指定でき、SIGNATURES は文書の中の署名の位置を返すとされています。証明書の不備で重いのは発給機関の印影・署名の脱落なので、この機能が効きます。QUERIES は英文で問いを立てて答えを受け取る機能で、問いの検出は英語の文書でだけ使えるとされています。

同期の処理は PDF が1ページまでとされ、証明書は2ページ以上になることがあるため、非同期の処理を使います。

人の確認に Amazon Augmented AI は使いません。 AnalyzeDocument の説明では、Augmented AI(A2I)は2026年7月に保守の段階に入り、新規の顧客を受け付けていないとされています。確認は、点検表を担当者が見る形で組みます。

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

Step1

処理の起点を決める

Amazon S3 の受付の場所に、案件番号を付けた証明書が保存されたことを起点にします。 写しのPDFはメールで届くため、担当者がメールから保存するか、共有のメールボックスの振り分けで保存します。1日1回の定時実行にはしません。 再発給を頼むなら1日でも早いほうがよく、輸出国の発給機関の手続きと国際宅配便の日数を考えると、貨物の到着までの数日の差が効いてきます。

同じ案件で2回動かします。 1回目は写しのPDFが届いたときで、記載の不備を洗い出します。2回目は原本が届いてスキャンしたときで、写しとの違い、「COPY」などの表示、署名の有無を確かめます。ファイル名に copy と original の区別を入れ、Lambda がどちらの回かを判定します。2回目を省くと、写しでは問題がなかったのに原本で無効になる案件を見逃します。

同じファイルを二度読まないよう、 同じ依頼に同じ処理番号(JobId)を返す ClientRequestToken に、ファイルの中身から作った値を入れます。

Step2

入力データを集める

データ中身取得元
原産地証明書のPDF写しまたは原本のスキャン。案件番号S3 の受付の場所
読み取り結果キーと値の組、表のセル、問いへの答え、署名の位置、信頼度Textract
インボイスと船荷証券の値輸出者・輸入者の名称と住所、インボイス番号・日付、船名・仕出港、品名、数量・総重量、包装輸入案件の台帳
案件の情報使う協定、申告予定の税番、貨物の到着予定日、通関業者輸入案件の台帳
協定ごとの記載事項の一覧協定ごとに、証明書に書かれているべき事項と、様式の名前自社で用意する一覧
区分の規則の表記載事項 × 状態 → 税関の一覧の区分と優先度。一覧の時点税関の不備の一覧から作る

質を決めるのは、下の2つです。 記載事項の一覧がなければ、ある協定では要らない欄を「脱落」と判定します。区分の規則の表がなければ、不備の重さをAIが推し量ることになります。

区分の規則の表は、税関の一覧を写して作ります。 一覧は「令和8年4月1日現在」と時点を示して公開されているため、表にもその時点を持たせます。

Step3

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

Lambda から Textract の非同期の分析(StartDocumentAnalysis)を呼び、完了を Amazon SNS で受け取ってから結果(GetDocumentAnalysis)を取ります。公式には、完了を待つために結果の取得を繰り返し呼ぶことは勧められず、呼びすぎると絞られるとされています。

取るものどの機能で何に使うか
キーと値の組FORMS「Exporter」「Consignee」「Certificate No.」などの欄
表のセルTABLES品名・包装・数量・特恵基準・HS番号が並ぶ欄
問いへの答えQUERIES発給日、発給番号、インボイス番号など、位置の決まらない値
署名の位置SIGNATURES発給機関の欄と輸出者の欄に署名があるか
信頼度各ブロックの Confidence読み取りが確かかの判定

問いは1ページあたり非同期で30個までです。協定ごとに「What is the certificate number?」のような1つの値に1つの問いを用意し、別名(Alias)を記載事項の名前にします。答えが見つからないときは空のまま返るとされています。

署名は位置で見ます。 SIGNATURES が返す署名の位置が、発給機関の欄と輸出者の欄の範囲に入っているかで判定します。

Step4

AIへ渡す前に整形する

  1. 形式の確認 … Textract の対象は JPEG、PNG、PDF、TIFF です。XFA 形式の PDF は扱えないため、印刷し直してから PDF にします
  2. 保護の確認 … パスワードで保護された PDF は扱えません。輸出者に保護を外して送り直してもらいます
  3. 画像の大きさの確認 … 画像は各辺10,000ピクセル以下とされています
  4. 文字の大きさの確認 … 検出できる文字の高さの下限は15ピクセルで、150DPIで8ポイントの文字に当たるとされています。原本のスキャンは300DPIにします
  5. ページの確認 … 2ページ目以降の続きの紙がある証明書は、1通として扱います
  6. 協定の確認 … 案件の台帳の協定と、証明書の表題の様式の名前が合うかを見ます
  7. 重複の検知 … 同じ案件に同じ発給番号の証明書が2通あれば、新しいほうに印を付けます

6番目が重いのは、 税関の一覧で協定に規定された様式ではない原産地証明書(例:一般特恵の原産地証明書)は無効とされているからです。

Step5

AIに処理させる

させるのは、記載事項ごとに値を取り出し、品名の行をインボイスの行に対応づけることだけです。

記載事項(区分)取り出し方判断できないときの扱い
様式の名前、発給国、発給日、発給番号(真正性)表題と欄から読めなければ unreadable
遡及発給・再発給の文言(真正性)「Issued Retroactively」などの文言の有無文言を作らない。無ければ空
輸出者・輸入者の名称と住所(同一性)欄の文字をそのまま「To order」とだけ書かれていればそのまま写す
インボイス番号・日付、第三国インボイス(同一性)欄の文字をそのまま複数あればすべて写す
船名・仕出港・輸送手段(同一性)欄の文字をそのまま読めなければ unreadable
品名・包装・数量・総重量(同一性)表の行ごとに。インボイスのどの行に当たるかを示す対応が決まらなければ unmatched
特恵基準・HS番号(原産性)表の行ごとに空欄なら空のまま

品名の行の対応づけは、AIの得意なところです。 証明書の「CHEMICAL PRODUCTS」とインボイスの型番つきの品名のように、語が違っても同じ品目かを示せます。 根拠は evidence に必ず残させます。

させないこと理由
証明書が有効かの判断税関の一覧でも、相談を求める区分がある。通関業者と原産地調査官等が判断する
産品が原産品に当たるかの判断協定の品目別規則の当てはめ。AIが推し量ってよいものではない
空欄の特恵基準・HS番号を埋める埋めた瞬間に、いちばん重い脱落が消える
インボイスの値に合わせて読み直す食い違いを見つけるための照合が、照合でなくなる
不備の区分を決める税関の一覧から作った規則の表で決める

3行目と4行目がいちばん起きやすい失敗です。 証明書の HS番号の欄がかすれて読めないとき、AIは台帳の申告予定の税番を見て「同じだろう」と埋めることがあります。そこで、比べる相手の値はAIに渡しません。 台帳の値と比べるのは、AIの後の Python の処理です。

Step6

指示内容を固定する

You are an import documentation clerk at a Japanese trading company.
From the OCR result of a Certificate of Origin, extract each field exactly
as written. Do not guess. Do not correct.

[Fields to extract]
form_name, issuing_country, certificate_no, issue_date,
retroactive_or_duplicate_wording, exporter_name, exporter_address,
consignee_name, consignee_address, invoice_no, invoice_date,
third_country_invoice, vessel_or_transport, port_of_loading,
items[]: { description, packages, marks, quantity, gross_weight,
           origin_criterion, hs_code }
signatures: { issuing_authority_box, exporter_box }

[Rules]
- Copy every value character by character as it appears in the OCR result.
  Do not normalize addresses, company suffixes, dates or numbers.
- If a field is blank or not found, leave value empty and set status to "missing".
  Never fill a blank field from other fields or from common sense.
- If characters are detected but the confidence is low, set status to "unreadable".
- For origin_criterion and hs_code, never infer a value. A blank is "missing".
- If the wording "Issued Retroactively" or "Duplicate" is not printed, leave it empty.
  Do not add such wording yourself.
- For each item, give invoice_line_no from the invoice line list only when the
  description clearly refers to the same goods, and quote the words you relied on
  in evidence. Otherwise set invoice_line_no to null.
- If any part of the text is not in English (for example, an address in another script),
  set status to "unreadable" for that field.
- Do not judge whether the certificate is valid, or whether the goods are originating.

[OCR result] {ocr_result}
[Invoice line list (description only)] {invoice_lines}
[Required fields for this agreement] {required_fields}

指示を英語で書くのは、値を原文のまま受け取るためです。 日本語で書くと、値まで訳されて返ることがあります。

インボイスは品名の一覧だけを渡します。 輸出者名や数量まで渡すと、読み取りの値をそちらに寄せて返すことがあります。

Step7

出力形式を固定する

Claude API の構造化出力で、次の形のJSONに固定して受け取ります。 公式には、構造化出力は制約付きの生成で指定したJSONスキーマに従う応答を保証し、必須の項目と型がそろうとされ、enum も使えます。

{
  "document_type": "certificate_of_origin",
  "copy_or_original": "copy | original",
  "fields": [
    { "field": "certificate_no", "value": "", 
      "status": "ok | missing | unreadable", "confidence": 0 }
  ],
  "items": [
    { "row_no": 1, "description": "", "quantity": "", "gross_weight": "",
      "origin_criterion": "", "hs_code": "",
      "invoice_line_no": null, "evidence": "" }
  ],
  "signatures": { "issuing_authority_box": "present | absent",
                  "exporter_box": "present | absent" }
}

1つ目の理由は、AIの仕事と照合の仕事を別の層に置けることです。 fields と items はAIが埋め、台帳との比較と区分への当てはめは Python が行います。

区分主な記載事項規則の表での扱い(税関の一覧から)優先度
真正性様式、原本、印影・署名、発給日・発給番号、有効期間、遡及発給の文言脱落は無効とされるものが多い高(再発給の依頼)
同一性輸出者・輸入者、インボイス番号・日付、輸送、数量・重量、包装、品名取引の書類で同一性を確かめられる場合に限り有効とされうる中(通関業者と相談)
原産性特恵基準、HS番号特恵基準の脱落は原則無効。HS番号の相違はHSの版の違いなどで有効とされる場合がある中〜高(相談)

2つ目の理由は、構造化出力が保証するのは形までだということです。 公式にも、応答の打ち切り(max_tokens)や拒否のときはスキーマに合わないことがあるとされています。Python では、stop_reason を見て、形が崩れた応答は全件を担当者に回します。

3つ目は、有効期間を機械で計算できることです。 issue_date と到着予定日から、発給の日から1年までの残りの日数を出します。

Step8

システムへ連携する

つなぎ先方式内容
Amazon S3保存のイベントLambda を動かす
Textract非同期の分析(StartDocumentAnalysis)読み取りを始める
Amazon SNS完了の通知結果を取りに行く Lambda を動かす
Claude APIAPI呼び出し(構造化出力)記載事項の取り出しと品名の対応づけ、再発給依頼の下書き
輸入案件の台帳読み取りインボイス・船荷証券の値、協定、税番、到着予定日
点検表書き出し記載事項ごとの状態、区分、優先度、残りの日数

台帳へは書き込みません。 担当者が確かめた結果だけを、台帳の「EPA書類の状態」の欄に手で入れます。

再発給依頼の下書きは、真正性の区分に不備がある案件にだけ作り、 欠けている欄を証明書の欄の名前で書きます。

Step9

人が確認する

担当者は、優先度の高い案件から開きます。

  1. 真正性の区分の不備を確かめる … 署名が absent と出た欄を画像で見ます。スキャンで薄くなっただけのこともあります
  2. 残りの日数の少ない案件を確かめる … 有効期間と到着予定日を見て、再発給が間に合うかを判断します
  3. 同一性の区分の食い違いを見る … 取引の書類で同一性を示せるかを通関業者に相談します
  4. 品名の対応づけを確かめる … invoice_line_no が null の行と、evidence が短い行を見ます
  5. 原本の回を確かめる … 写しとの違いと、「COPY」などの表示を見ます
  6. 判定を覆したら記録する … どの記載事項を、何から何へ変えたかを残します

1番目と5番目は、省かないでください。 真正性の区分の不備は通関の段階では直せず、 輸出国で発給し直してもらうしかありません。

Step10

例外に対処する

起きること対応
パスワード付き・XFA 形式の PDFTextract では扱えない。保護を外す、または印刷し直して PDF にする
英語以外の文字が混ざるその欄を unreadable。税関の一覧では英語以外の記述は原則無効とされるため、通関業者に相談
様式が協定のものでない区分の規則で最優先。ほかの項目の点検を止める
品名の行がインボイスに対応しないinvoice_line_no を null にし、担当者が見る
電子発給の証明書(QRコード・PDF)税関の一覧では、電子発給されたことのみをもって無効とは扱わないとされる。通常どおり点検する
自己申告の原産品申告書が届いたこの構成の対象外。書類の種類で振り分けて担当者へ
同時の処理が多すぎるLimitExceededException。SQS で受付を並べてから処理する
結果を取りに行けない結果は既定で7日間保存される。OutputConfig で自社の保管先に出す

上の3行が大半です。 再発給の依頼に次からの書き方の注意を添えると減っていきます。

Step11

記録を残す

  • 元の証明書(写しと原本)と、受け取った日時
  • Textract の結果のJSON(OutputConfig で S3 に出したもの)
  • Claude API が返した fields・items・signatures
  • Python が付けた状態・区分・優先度と、そのとき使った区分の規則の表の時点
  • 担当者が判定を覆した記録と、通関業者との相談の結果
  • 再発給を依頼した日時と、再発給された証明書との対応

規則の表の時点を残すのは、税関の一覧が改訂されるためです。

04実装レベルの3段階

最小構成:証明書を手でAIの画面に貼り、記載事項の表を作らせる / 1件ごとの読み取り
半自動化:上記+Textract を呼び、記載事項と署名の有無を点検表に書き出す / 読み取りと署名の検出
本格構成:上記+保存を起点に動かし、台帳と比べて区分と優先度を付け、再発給依頼の下書きと原本の回の点検まで行う / 照合と洗い出しの全体

最小構成では件数がさばけません。 確かめるための段階です。 半自動化で、1件18分が10分程度になります。 読み取りは自動になりますが、インボイス・船荷証券との見比べと、不備の重さの判断が残ります。本格構成で5分になり、この段階が本記事の想定です。 差が大きいのは、20項目近い見比べと区分の当てはめが、1件ずつの手作業だからです。 段階を飛ばさないでください。 半自動化の点検表を1か月見ると、不備の多い輸出者が先に分かります。

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

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

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

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

AI活用について相談する

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

向いている
  1. ASEAN・中国・インドなどから化学品・食品原料・機械部品・雑貨を輸入し、EPAの特恵税率を使うために、輸出国の発給機関が出した英文の原産地証明書を案件ごとに受け取っている商社・メーカー・小売。EPAを使う輸入が月に百件以上あり、証明書とインボイス・船荷証券の記載の食い違いを通関業者から指摘されて、再発給を頼むことがある場合。AWS を使っており、書類のPDFを保管する場所がある場合。
向いていない
  1. EPAの原産地の証明を、輸入者や輸出者が作る原産品申告書(自己申告)で行うことが大半の場合(書類の形と確かめる点が違います)。証明書が英語以外の言語で書かれている、または日本語の書類を読む必要がある場合(この構成のOCRは英語など6言語しか読めません)。EPAを使う輸入が月に数件の場合。なお、産品が原産品に当たるか、証明書が有効かの判断はこの構成では代替できません。

07最小構成で試す方法

  1. 過去半年の案件から、通関業者に不備を指摘されたものを中心に15件を選ぶ
  2. その15件について、指摘された内容と、再発給を頼んだかどうかを書き出す
  3. 証明書のPDFを、1件ずつ手元のAIサービスの画面に貼り付ける
  4. 「この原産地証明書の記載事項を、欄ごとに原文のまま表にしてください。空欄の欄は空のままにしてください。署名があるかを欄ごとに示してください。有効かどうかは判断しないでください」と指示する
  5. 出てきた表を、インボイスと船荷証券と手で見比べ、当時の指摘と突き合わせる

指摘を受けた案件を選ぶのが要です。 不備の無い証明書では、失敗が見えません。

出てきた内容判断
当時の指摘と同じ不備が表から読み取れたOCRと照合の連携に進む
空欄の特恵基準やHS番号を埋めた指示の書き方で直る。本番では比べる相手の値を渡さない
署名の有無を取り違えた署名の位置の検出を OCR 側で行う理由が分かる

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

問題対策
空欄の HS番号を台帳の税番で埋める比べる相手の値をAIに渡さない
住所や社名を正規化して照合が甘くなる原文のまま写させ、比較の段階で正規化の規則を持つ
署名の有無をAIの判断に任せるSIGNATURES の位置で判定する
不備の重さを一律にする税関の一覧から作った区分の規則で優先度を付ける
一覧の改訂に追いつかない規則の表に時点を持たせ、改訂を見たら直す
原本の回を省くファイル名で写しと原本を分け、原本の回を必須にする
自己申告の書類が混ざる書類の種類で振り分けて、対象外として返す
英語以外の文字を無理に読む読めない欄は unreadable にし、通関業者に相談
結果の取得を繰り返し呼んで絞られるSNS の通知を受けてから取りに行く
人の確認に A2I を組み込もうとする新規の顧客を受け付けていない。点検表で確認する

上の2行が、この構成の失敗のほとんどです。 どちらも照合の相手の値に読み取りが引き寄せられる失敗で、AIに比べる相手を見せないことで防ぎます。

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

この構成で扱うデータ: 輸出者と輸入者の名称・住所、取引の品目・数量・金額に関わるインボイスの情報、使う協定と税番です。個人の情報はほとんど含みませんが、仕入先と取引条件がそのまま読める情報です。

  1. 有効かどうかを自動で決めない … 税関の不備の一覧にも、原産地調査官等への相談を求める区分があります。この構成が出すのは記載事項の値と、一覧のどの区分に当たるかまでです
  2. 原産品に当たるかを推し量らせない … 税関の一覧では、証明書が有効とされた場合でも、輸入貨物が原産品でないこと又は他の要件を満たしていないことが判明した場合には、通関後であってもEPA特恵税率の適用が認められないとされています。証明書の点検は、原産性の確認の代わりになりません
  3. AIに渡す範囲を絞る … 品名の対応づけに要るのはインボイスの品名だけです。金額と取引条件は渡しません
  4. 読み取り結果の保管先を自社の中にする … Textract の非同期の結果は、既定では7日間、Textract の保管先に暗号化して置かれるとされています。OutputConfig で自社の S3 に出し、保管の期間を自社で決めます
  5. 再発給の依頼を自動で送らない … 送るのは担当者です

誤りが起きた場合のリスクは、重い不備を見落として通関の直前に気づくことと、軽い食い違いで輸出者に再発給を頼んで待たせることの2つです。 前者は署名と様式の検出で、後者は区分の規則の表で防ぎます。

10まず何から始めるか

1週目:区分の規則の表を作る

使っている協定について、税関の不備の一覧の行を写し、記載事項 × 状態 → 区分と優先度の表にします。一覧の時点を表の先頭に書き、通関業者に見てもらいます。

2週目:15件で試す

通関業者に不備を指摘された案件を中心に15件を選び、手元のAIサービスに記載事項の表を作らせます。空欄を埋めていないか、署名の有無を取り違えていないかを最優先で見ます。

3週目:写しと原本の扱いを決める

写しの回と原本の回の両方を点検する手順と、ファイル名の付け方を決めます。 あわせて、再発給を頼むか通関業者に相談するかを、区分ごとに誰が決めるかを決めます。

4週目:保存から点検表までをつなぐ

S3 への保存から Textract の非同期の分析、SNS の通知、Lambda での結果の取得までを作り、記載事項と署名の有無を点検表に書き出します。この時点では台帳との比較をせず、読み取りだけを見ます。

2か月目: 台帳との比較と区分の当てはめを足し、優先度の高い案件の件数を毎週数えます。3か月目以降: 再発給依頼の下書きと原本の回の点検を足し、1件18分が何分になったかを実測します。不備の多い輸出者に書き方を伝え、通関の直前の指摘がほとんど無くなった時点で、この構成は完成です。


11関連ユースケース

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

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

技術仕様確認日:2026-10-06/最終更新:2026-10-06
確認した内容情報源確認日
原産地証明書等を原則として輸入申告の際に提出すること。指定の様式と必要的記載事項に従うこと。有効期間が発給又は作成の日から1年であること。事後提出が認められる場合。課税価格の総額20万円以下の貨物は提出が不要なこと税関: 1524 EPA税率を適用する場合の輸入通関手続2026-10-06
原産地証明書の不備の内容と扱い(令和8年4月1日現在)。英語以外の記述は原則無効、協定の様式でないもの・原本でないもの・印影署名の脱落などの扱い、輸出者名やインボイス番号などの相違は取引書類で同一性を確認できる場合に限り有効、特恵基準の脱落は原則無効、HS番号の相違で有効と認められる場合、電子発給のみを理由に無効としないこと、有効とされても原産品でないと判明すれば通関後でも特恵税率が認められないこと税関: EPA原産地証明書の不備の一覧2026-10-06
対応形式が JPEG・PNG・PDF・TIFF で XFA 形式の PDF に対応しないこと。同期は PDF と TIFF が1ページ、非同期は500MB・3,000ページであること。パスワード保護の PDF は不可。画像は各辺10,000ピクセル以下。縦書きに対応しないこと。対応言語が英・仏・独・伊・葡・西で、問いは英語の文書のみ、手書きは英語のみであること。文字の高さの下限が15ピクセルであること。問いは1ページあたり同期15・非同期30までであることAWS: Set Quotas in Amazon Textract2026-10-06
AnalyzeDocument が TABLES・FORMS・QUERIES・SIGNATURES・LAYOUT を指定でき、SIGNATURES が署名の位置を返すこと。A2I が2026年7月に保守の段階に入り新規の顧客を受け付けていないことAWS: AnalyzeDocument2026-10-06
問いに別名を付けられ、答えの側に問いが繰り返されて返ること。答えが見つからないときは空のまま返ることAWS: Queries2026-10-06
非同期の処理の完了が SNS に送られること。結果の取得を繰り返し呼ぶことは勧められず絞られること。結果が既定で7日間保存され、OutputConfig で自社の保管先を指定できること。ClientRequestToken が同じ依頼に同じ JobId を返し、7日間有効であること。同時の処理が多すぎると LimitExceededException が出ることAWS: Calling Amazon Textract Asynchronous Operations2026-10-06
構造化出力が制約付きの生成で JSON スキーマに従う応答を保証し、必須の項目と型がそろうこと。enum を使えること。拒否や max_tokens での打ち切りのときはスキーマに合わないことがあることClaude: Structured outputs2026-10-06

証明書が有効か、産品が原産品に当たるかは、通関業者と税関の原産地調査官等に確かめてください。 本記事は公的機関と各製品の公式ページで確認できた範囲だけを扱っています。

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

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

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

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