海外の現地代理人から毎月届く英文のデビットノートを読み取り、料金の取り決めと案件台帳に照らして支払う前に点検する
外国の特許事務所(現地代理人)から届く英文の請求書(デビットノート)を読み取り、明細の1行ずつを案件・作業・費用の種類に対応付けます。そのうえで料金の取り決めと案件台帳に照らし、支払う前に照会すべき行を洗い出します。
- 生成AI
- ChatGPT/Claude/Gemini
- AIサービス
- AWS Textract/Azure AI/Google Document AI
- 連携・自動化
- Python
- 対象業界
- IT・SaaS/医療/士業/製造
- 対象部門
- 知財/経理
- 対象業務
- 内容確認・チェック/比較検討
- 主な課題
- 人手が足りない/属人化している/確認ミスが多い
- AIで行う処理
- 読み取り(OCR)
- 主な効果
- 入力漏れ削減/品質標準化/工数削減
- 導入難易度
- ★★★☆☆
- 実装レベル
- 半自動化
- 費用感
- API連携(中)
- 人間の確認
- 必須
01導入前 / 導入後の業務フロー
- 代理人からのメールに付いたPDFを、外国部の受付担当が共有フォルダに保存する
- 担当者がPDFを開き、相手方の整理番号と自社の整理番号を探して案件管理システムで案件を引く
- 明細を1行ずつ読み、どの作業の請求かを英文から判断する
- 案件の指示記録を開き、その作業を指示したか、いつ指示したかを確かめる
- 料金の取り決めの表を開き、手数料が取り決めどおりかを確かめる
- 庁費用の行は、自社で持つ庁費用の表と金額を比べる
- 合わない行があれば、英文の照会メールを書く
- 合っていれば、顧客への請求明細を日本語で起こし、経理へ支払と請求を回す
- 人受付担当が、届いたデビットノートのPDFを受付フォルダに保存する
- 自動保存をきっかけに、形式・ページ数・パスワードの有無を確かめる
- 自動OCRが請求書の標準の項目(請求番号、日付、代理人名、合計など)と明細の行を、信頼度と通貨の情報つきで返す
- 自動数値と日付を自社の書き方に直し、通貨をそろえる
- 自動生成AIが明細の1行ずつを、案件の整理番号、作業区分、費用の種類(手数料・庁費用・実費)に対応付け、根拠の文字列を写す
- 自動案件台帳と指示記録を引き、その作業を指示したかを確かめる
- 自動料金の取り決めの表と庁費用の表から、行ごとの差額を計算する
- 自動行ごとの結果から、`approve` / `query_associate` / `needs_human` を規則で決める
- 自動`query_associate` のものに英文の照会文の下書きを、全件に日本語の顧客請求明細の下書きを付ける
- 人担当者が `query_associate` と `needs_human` のものを確かめ、照会文を直して送る
- 人`approve` のものは一覧で流し見て、経理へ支払と顧客請求を回す
各工程の詳しい説明を読む
- 代理人からのメールに付いたPDFを、外国部の受付担当が共有フォルダに保存する
- 担当者がPDFを開き、相手方の整理番号と自社の整理番号を探して案件管理システムで案件を引く
- 明細を1行ずつ読み、どの作業の請求かを英文から判断する
- 案件の指示記録を開き、その作業を指示したか、いつ指示したかを確かめる
- 料金の取り決めの表を開き、手数料が取り決めどおりかを確かめる
- 庁費用の行は、自社で持つ庁費用の表と金額を比べる
- 合わない行があれば、英文の照会メールを書く
- 合っていれば、顧客への請求明細を日本語で起こし、経理へ支払と請求を回す
(a)指示していない作業の請求に気づけない。 代理人が気を利かせて行った調査や、こちらが取り下げを伝えた後の作業が請求に入っていることがあります。4番目を急ぐと、そのまま顧客に再請求されます。 顧客から問い合わせを受けて初めて気づくと、代理人への照会は数か月後になります。
(b)英文の明細の読み解きに時間がかかる。 同じ作業でも代理人ごとに書き方が違い、取り決めの表の作業区分のどれに当たるかで、1行ずつ手が止まります。
(c)手数料と庁費用が合算されている。 1行に「Official fee and our charges」とまとめて書かれると、手数料が取り決めどおりかを確かめられません。合計だけを見て通すか、代理人に内訳を求めるかが、担当者ごとに違います。
(d)取り決めを知っている人が限られる。 値引きの約束や時間制の上限は、表の備考欄や過去のメールにしかないことがあり、古参の2名が休むと点検が止まります。
- 【人】 受付担当が、届いたデビットノートのPDFを受付フォルダに保存する
- 【自動】 保存をきっかけに、形式・ページ数・パスワードの有無を確かめる
- 【自動】 OCRが請求書の標準の項目(請求番号、日付、代理人名、合計など)と明細の行を、信頼度と通貨の情報つきで返す
- 【自動】 数値と日付を自社の書き方に直し、通貨をそろえる
- 【自動】 生成AIが明細の1行ずつを、案件の整理番号、作業区分、費用の種類(手数料・庁費用・実費)に対応付け、根拠の文字列を写す
- 【自動】 案件台帳と指示記録を引き、その作業を指示したかを確かめる
- 【自動】 料金の取り決めの表と庁費用の表から、行ごとの差額を計算する
- 【自動】 行ごとの結果から、
approve/query_associate/needs_humanを規則で決める - 【自動】
query_associateのものに英文の照会文の下書きを、全件に日本語の顧客請求明細の下書きを付ける - 【人】 担当者が
query_associateとneeds_humanのものを確かめ、照会文を直して送る - 【人】
approveのものは一覧で流し見て、経理へ支払と顧客請求を回す
10番目が、この設計の分かれ目です。 人が明細を1行ずつ読むのは、根拠が台帳に無い行と、読み取れなかった行だけです。 全部の行を人が読み直す設計にすると、60.0時間はほとんど減りません。
8番目を規則で決めているのも意図してのことです。 差額をいくらまで許すか、合算行を照会するかは、代理人ごとに変わる事務所の方針なので、規則の側に置きます。
02今回想定するシステム構成
デビットノート(英文のPDF) ▼【トリガー】受付フォルダ(Amazon S3)への保存 AWS Lambda ── 形式・ページ数・サイズ・パスワードの確認 ▼ AWS Textract(StartExpenseAnalysis:請求書・領収書の分析) │ 標準の項目(請求番号、日付、代理人名、合計、通貨)と明細の行、信頼度 ▼ 完了の通知(Amazon SNS)→ AWS Lambda が結果を取る Python ── 数値・日付・通貨の正規化 ▼ Claude API ── 明細の1行ずつを対応付ける │ ① 案件の整理番号 ② 作業区分 ③ 費用の種類(手数料/庁費用/実費) ▼ Python ── 案件台帳・指示記録・料金の取り決め・庁費用の表と照合し、差額を計算 ▼ 判定(approve / query_associate / needs_human) ▼ 【外国部の担当者が要確認のものを確認】 ├──▶ 代理人への英文の照会(下書き) └──▶ 顧客への請求明細(日本語の下書き)→ 経理へ
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| OCR | AWS Textract(AnalyzeExpense/StartExpenseAnalysis) | Azure AI Document Intelligence、Google Document AI |
| 生成AI | Claude API(明細の対応付けと、照会文・請求明細の下書き) | OpenAI API、Gemini API |
| 差異計算 | Python(台帳・取り決め・庁費用の表との照合と差額の計算) | 案件管理システムの費用照合の機能 |
| 連携 | AWS Lambda(保存と完了の通知を起点に処理を動かす) | Amazon EventBridge |
| 保管 | Amazon S3(デビットノート、読み取り結果、照合の結果) | 事務所のファイルサーバー |
案件管理システムと会計システムは、新しく足すものではありません。 最初の準備は、料金の取り決めの表に作業区分のコードと適用開始日を足し、案件台帳に代理人側の整理番号の列をそろえることです。
OCRに AWS Textract を選ぶのは、デビットノートが英文だからです。 対応言語は英語、フランス語、ドイツ語、イタリア語、ポルトガル語、スペイン語で、日本語や中国語、韓国語は対象外です。 中国の代理人の請求で中国語と英語を併記したものは、英語の部分だけが読み取りの対象になります。
使う機能は、請求書と領収書の分析(AnalyzeExpense)です。 テンプレートなしで日付、番号、品目の金額、合計を取り出し、違う言い方を標準の項目名にそろえて返します。 請求の番号は書き方によらず INVOICE_RECEIPT_ID に、標準に当たらない項目は OTHER になります。
金額には通貨の情報が付きます。 公開されている出力例では、「$55.64」に Currency の Code として USD が付いています。記号の無い明細もあるので、代理人の一覧の既定値と突き合わせます。
複数ページのPDFは、非同期の処理(StartExpenseAnalysis)で読みます。 同期の処理はPDFとTIFFで1ページ・10MBまでで、非同期はPDFとTIFFで500MB・3,000ページまでです。Textract に人の確認を組み込む Amazon Augmented AI は、2026年7月に保守モードに入り新規の顧客を受け付けていないため使いません。
03どうやって実装するのか
処理の起点を決める
受付フォルダ(Amazon S3)にPDFが保存されたことを起点にします。 デビットノートは月末と月初に集中しますが、1日1回の定時処理にはしません。照会が必要なものを早く見つけ、代理人の月次の締めに間に合わせたいからです。照会が翌月にずれると、代理人の側でも当時の記録を探し直す手間がかかります。
メールの添付も、代理人のポータルから取得したものも、同じフォルダに入れ、そこから先は区別しません。
処理が終わったファイルは処理済みの場所へ移します。移すのは、判定の一覧への書き出しまで成功したときだけです。 受付フォルダに残っている数が、そのまま未処理の数になります。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| デビットノート | PDF。受け取った日時と送り元の代理人 | 受付フォルダ |
| 読み取り結果 | 標準の項目、明細の行、書かれていた項目名、値と信頼度、通貨 | AWS Textract |
| 案件台帳 | 自社の整理番号、代理人側の整理番号、国、顧客、出願番号 | 案件管理システム |
| 指示記録 | いつ、どの作業を代理人に指示したか。取り下げ・放棄の連絡の日 | 案件管理システム |
| 料金の取り決め | 代理人ごと・作業区分ごとの手数料、時間制の上限、値引き、適用開始日 | 取り決めの表 |
| 庁費用の表 | 国・手続きごとに自社が想定する庁費用(庁の公表する料金表から自社で作る) | 自社で整備する表 |
| 代理人の一覧 | 既定の通貨、数字と日付の書き方、整理番号の書き方、登録済みの振込先 | 自社で用意する一覧 |
質を決めるのは、下の4つです。 指示記録が無ければ「指示した作業か」を確かめられません。料金の取り決めに適用開始日が無ければ、値上げの前に指示した作業に新しい料金が当たっているのか、正しく旧料金なのかを決められません。
登録済みの振込先は、なりすましを見つけるために持ちます(第13章)。
データの取得方法を決める
読み取りは、Lambda から StartExpenseAnalysis を呼んで始めます。 文書はS3の場所で指定し、完了の通知先にSNSのトピックを渡します。ClientRequestToken に受付のファイルごとの値を入れ、同じ文書の処理が誤って二重に始まらないようにします。 返ってくる JobId は7日間しか有効でないので、完了を受けたらすぐに結果を取り、自社のバケットへ書き出します。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 請求番号・日付 | INVOICE_RECEIPT_ID・INVOICE_RECEIPT_DATE | 二重請求の検知、料金の適用日の判定 |
| 代理人と請求先 | VENDOR_NAME・RECEIVER_NAME・VENDOR_ADDRESS | 代理人の特定、請求先が自社かの確認 |
| 参照番号 | PO_NUMBER・CUSTOMER_NUMBER・OTHER | 自社の整理番号の手がかり |
| 合計と小計 | TOTAL・SUBTOTAL・AMOUNT_DUE・TAX | 明細の合計との突き合わせ |
| 振込先 | ACCOUNT_NUMBER と OTHER の項目 | 登録済みの振込先との照合 |
| 明細の行 | EXPENSE_ROW の中の ITEM・PRICE・QUANTITY・UNIT_PRICE | 1行ずつの作業と金額 |
| 項目名・値・信頼度 | LabelDetection・ValueDetection・Confidence | 根拠と、読み直しの要否 |
自社の整理番号は、標準の項目に決まった場所がありません。 「Your Ref.」として書かれることが多く、PO_NUMBER に入ることもあれば OTHER になることもあります。LabelDetection(書類に書かれていた項目名)を見て、「Your Ref」「Client Ref」に当たる値を拾います。
AIへ渡す前に整形する
- 形式の確認 … StartExpenseAnalysis が扱うのはJPEG、PNG、PDFです。XFA形式のPDFには対応していません。 対応外のものはPDFに変換します
- パスワードの確認 … パスワードで保護されたPDFは読めません。 代理人に保護のないものを送り直してもらいます
- ページ数とサイズの確認 … 非同期の処理はPDFで500MB・3,000ページまで。1枚の請求ならまず収まります
- 解像度の確認 … 読み取れる文字の高さは15ピクセル以上で、150dpiで8ポイントの文字に当たります。明細の脚注の小さな文字が、この下限に近いことがあります
- 数値・日付の正規化 … 代理人の一覧の書き方で、金額と日付を自社の形に直します。元の文字列は残します
- 複数の請求の分割 … 1つのPDFに複数のデビットノートがあれば、
ExpenseIndex(文書内の請求書の番号)で分けます - 重複の検知 … 同じ代理人・同じ請求番号のものが既にあれば、再送か重複かの印を付けます
5番目はAIに任せません。 「1.250,00 EUR」の読み方を生成AIに決めさせると、千倍ずれた値を返すことがあります。 書き方は代理人の一覧で決め打ちします。
AIに処理させる
させるのは、明細の1行ずつを「どの案件の、どの作業の、どの種類の費用か」に対応付け、根拠にした文字列を写すことだけです。
| 見るもの | 書き出す内容 | 判断できないときの扱い |
|---|---|---|
| 整理番号 | 行または請求全体に書かれた自社の整理番号、代理人側の整理番号 | 候補が複数あれば ambiguous |
| 作業名 | 取り決めの表の作業区分のどれに当たるか(出願、中間応答、報告、年金納付など) | 当たる区分が無ければ unmapped |
| 費用の種類 | 手数料(service)/庁費用(official)/実費(disbursement) | 1行に合算されていれば combined |
| 作業の日付 | 行に書かれた作業日や、引用されている庁の通知の日付 | 書かれていなければ not_stated |
| 時間制の記載 | 時間数と時間単価が書かれていれば、その値 | 書かれていなければ空 |
| 金額と通貨 | 行の金額と通貨(OCRの値をそのまま) | 読めなければ unreadable |
3行目の combined が、この構成で大事な区別です。 手数料と庁費用が1行に合算されているものを、どちらか一方として扱うと、取り決めの照合が通ってしまうか、根拠の無い差額が出ます。 合算は合算として記録し、内訳を求めるかは規則で決めます。
| させないこと | 理由 |
|---|---|
| 料金が正しいかの判断 | 比較は Python で行う。AIは対応付けまで |
| 通貨の換算 | 換算は自社の規則(どの日のどの相場か)で Python が行う |
| 合算行の内訳の推定 | 取り決めの手数料を引いて庁費用を逆算しない |
| 整理番号の補完 | 似た番号に近づけない。読めなければ unreadable |
| 信頼度の付け直し | OCRが返した値をそのまま使う |
3行目がいちばん起きやすい失敗です。 合算行を渡すと、取り決めの手数料を差し引いて「残りが庁費用」と割り振りたがります。その瞬間、手数料が取り決めどおりかという、確かめたかったことが確かめようのない値で埋まります。
指示内容を固定する
あなたは特許事務所の外国部で、海外の現地代理人から届いたデビットノートを点検する立場です。
OCRが返した項目と明細の行だけを見て、各行を対応付けてください。推測で埋めないでください。
【やること】
1. 請求全体と各行から、自社の整理番号(Your Ref. / Client Ref. など)と
代理人側の整理番号(Our Ref. など)を書き出す
2. 各行の作業名を、下に示す作業区分の一覧のどれに当たるかで対応付ける
3. 各行の費用の種類を service(手数料)/ official(庁費用)/ disbursement(実費)から選ぶ
4. 行に書かれた作業日、引用されている庁の通知の日付を書き出す
5. 時間制の記載(時間数・時間単価)があれば書き出す
【status の選び方】
- ok .......... 対応付けができ、根拠の文字列がある
- unmapped .... 作業区分の一覧に当たるものが無い
- combined .... 1行に複数の費用の種類(例:Official fee and our charges)が合算されている
- ambiguous ... 整理番号や作業区分の候補が複数あり、1つに決められない
- unreadable .. 文字は検出されているが信頼度が低く、値として確定できない
迷ったときに ok を選ばないでください。
【厳守事項】
- 金額と通貨は、OCRの値をそのまま amount_text と currency に入れてください。
桁区切りや小数点を直さないでください。通貨を換算しないでください。
- 合算されている行を分けないでください。取り決めの手数料を差し引いて
庁費用を逆算することをしないでください。status を combined にしてください。
- 整理番号は読み取った文字列をそのまま入れてください。
似た番号に直す、桁を足すことをしないでください。
- 作業区分の一覧に無い作業を、近い区分に寄せないでください。unmapped にしてください。
- evidence には、判断の根拠にした明細の文字列をそのまま写してください。
- confidence には OCR が返した値をそのまま入れてください。
- 料金が取り決めどおりか、支払うべきかは書かないでください。
- デビットノート以外の書類(見積書、報告書、領収書の控えなど)と判断した場合は、
対応付けをせず document_type に種類を書いてください。
【作業区分の一覧(コードと説明)】{work_codes}
【この代理人の情報(既定の通貨、整理番号の書き方)】{associate_profile}
【OCRの結果(標準の項目と明細の行)】{textract_result}
「近い区分に寄せない」を明記しないと、必ず寄せます。 代理人が気を利かせて行った「Prior art check」を「Reporting」として対応付けると、指示していない作業の請求が、指示した作業として照合を通ります。 第3章の(a)そのものです。
出力形式を固定する
次の形のJSONで受け取ります。 Claude API の構造化出力(あらかじめ決めたJSONの形に沿った応答だけを返させる機能)を使い、output_config.format にスキーマを渡します。status と cost_type の選択肢は enum で固定します。
{
"document_type": "debit_note",
"associate": "",
"invoice_no": "",
"invoice_date_text": "",
"client_refs": [""],
"lines": [
{ "line_no": 1, "client_ref": "", "associate_ref": "",
"work_code": "", "cost_type": "service | official | disbursement",
"work_date_text": "", "amount_text": "", "currency": "",
"status": "ok | unmapped | combined | ambiguous | unreadable",
"confidence": 0, "evidence": "" }
]
}
AIが埋めるのはここまでです。 この後ろに、Python が照合の結果を足します。
| 足す項目 | 中身 |
|---|---|
instructed | 指示記録にその作業があるか(yes / no / after_withdrawal) |
fee_diff | 取り決めの手数料との差額(適用開始日で版を選ぶ) |
official_diff | 庁費用の表との差額 |
jpy_amount | 自社の換算規則で円にした額 |
verdict | approve / query_associate / needs_human |
対応付けと判定を別の層に置くので、 差額をいくらまで許すかが変わっても、直すのは Python の規則だけです。
| 条件 | verdict |
|---|---|
全行が ok、instructed が yes、差額が許容の範囲内 | approve |
instructed が no か after_withdrawal、または差額が許容を超える | query_associate |
combined が含まれ、その代理人について内訳を求める方針 | query_associate |
unreadable・ambiguous・unmapped が1つでもある | needs_human |
| 振込先が登録と違う | needs_human(支払の保留) |
最後の行だけは、他の条件より優先します。 金額がすべて合っていても、振込先が違えば支払に回しません。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 受付フォルダ(Amazon S3) | 保存の通知で AWS Lambda を起動 | 前処理と読み取りの開始 |
| AWS Textract | StartExpenseAnalysis/GetExpenseAnalysis | 標準の項目、明細、信頼度、通貨 |
| 案件管理システム | 書き出したファイル、またはAPIで読み取り | 案件台帳と指示記録 |
| Claude API | API呼び出し | 明細の対応付け、照会文と請求明細の下書き |
| 判定の一覧 | 表で書き出し | 外国部の担当者が確認する一覧 |
| 会計システム | 既存の入力経路 | approve のものだけを経理が回す |
案件管理システムと会計システムへは書き込みません。 この構成が出すのは点検の結果と下書きまでです。支払と顧客への請求を起こすのは、経理の既存の手順です。 書き込みを足すと、対応付けの誤りがそのまま顧客への請求書に出ます。
照会文は英文、顧客への請求明細は日本語で下書きします。 照会文には合わない行を evidence の英文のまま引用させます。
人が確認する
人が開くのは query_associate と needs_human のものだけです。 approve のものは、代理人・件数・合計を一覧で流し見ます。全件を開く設計にすると、第10章の20.0時間には収まりません。
- 振込先の不一致を最初に見る … 支払を止め、登録済みの連絡先で代理人に確かめます。メールの返信で確かめないでください
needs_humanを見る … 多くは整理番号の読み違いか、作業区分の一覧の不足です。一覧に区分を足したら、それも記録しますquery_associateの根拠を確かめる … 指示記録と取り決めの表を開き、本当に台帳に根拠が無いのかを確かめます- 照会文を直して送る … 送信は人が行います。照会の要否を決めるのも人です
- 判定を覆したら記録する … どの行を、どちらに変えたかを残します
3番目を省かないでください。 指示記録の入力漏れで no になることがあり、そのまま照会すると自社の記録漏れを代理人に問い合わせることになります。
目標は、120件をならして1件10分です。 照会が3割を超える月は、作業区分の一覧か指示記録の入力に穴があります。
例外に対処する
| 起きること | 対応 |
|---|---|
| パスワードで保護されたPDF | 読めない。代理人に保護のないものを送り直してもらう |
| XFA形式のPDF | 対応しない。PDFに印刷し直して投入 |
| 英語以外の言語で書かれている | 対応言語外。needs_human で担当者が読む |
| 文字が小さすぎる | 15ピクセル(150dpiで8ポイント)が下限。下回る行は unreadable で人へ |
| 整理番号が読めない | 代理人側の整理番号と出願番号から候補を出し、人が確定 |
| 通貨の記号が無い | 代理人の一覧の既定の通貨を当て、既定と違う通貨の記載があれば人へ |
| 1つのPDFに複数の請求 | ExpenseIndex で分けて、請求ごとに判定 |
| 同じ請求が再送された | 代理人と請求番号で照合し、二重に判定しない |
| 請求番号が違うが中身が同じ | 案件・作業・金額が同じものを二重請求の候補として人へ |
| OCRが応答しない・失敗の通知 | 受付フォルダに残す。処理済みへ移すのは成功時だけ |
下から2行目は、請求番号だけでは見つかりません。 請求を作り直すと番号が変わるので、案件・作業区分・金額の組で直近の請求と照らします。
記録を残す
- 元のデビットノートと、受け取った日時・経路
- Textract が返したJSONの全文(標準の項目、明細の行、項目名、信頼度)
- 正規化の前と後の金額・日付(元の文字列を残す)
- 対応付けの結果(
lines)と、照合に使った取り決めの表の版と庁費用の表の版 - 判定(
verdict)と、人が覆した記録 - 照会を送った日時、代理人の回答、訂正されたデビットノートとの対応
- 代理人ごとの
unmappedとcombinedの件数
4つ目で表の版を残すのは、取り決めが後から変わるためです。 値上げの交渉の後に過去の請求を見直すとき、当時どの料金で照らしたかが残っていないと、照会の根拠を説明できません。
04実装レベルの3段階
最小構成は確かめるための段階で、120件はさばけません。 半自動化で、1件30分が10分になり、この段階が本記事の想定です。 読み取り・対応付け・照合が自動になり、人の仕事は判定の一覧の確認と、照会するものの根拠の確認になります。本格構成で足すのは、照会文と顧客請求明細の下書きです。 半自動化の運用で照会の割合を見てから進みます。 段階を飛ばさないでください。 半自動化を1か月回すと、unmapped の多い代理人と指示記録の入力の遅れが見え、そこを直してから下書きを足すほうが、誤った照会が減ります。
05工数削減シミュレーション
導入後 120件 × 10分 ÷ 60 = 20 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 外国出願を多く扱い、米国・欧州・アジアの現地代理人から英文のデビットノートを毎月百件前後受け取る特許事務所。外国部の担当者が、代理人ごとの料金の取り決めと案件の指示記録を記憶と表計算で照らし合わせている場合。案件台帳に、相手方の整理番号と、いつ何を指示したかの記録を持っている場合。デビットノートの内容を顧客への請求に転記している場合。
- デビットノートが英語以外(中国語・韓国語・日本語など)だけで書かれている場合(この構成のOCRは英語、フランス語、ドイツ語、イタリア語、ポルトガル語、スペイン語しか読めません)。現地代理人が数事務所で、月の件数が十件程度の場合。代理人と料金の取り決めを文書にしておらず、照らす先の料金表を作れない場合。なお、庁費用の金額そのものが正しいか、代理人へ減額を求めるかの判断は、この構成では代替できません。
07最小構成で試す方法
- 先月届いたデビットノートから20枚を選ぶ(照会したことのあるものを数枚入れる)
- その20枚について、当時どの行を照会し、どの行を通したかを担当者に聞き取る
- 作業区分の一覧(取り決めの表の区分)を1枚の表にまとめる
- 手元のAIサービスの画面に、PDFと作業区分の一覧を1枚ずつ渡す
- 「明細の各行を、作業区分の一覧のどれに当たるか、費用の種類(手数料・庁費用・実費)はどれかで対応付けてください。合算されている行は分けずに合算と書いてください。一覧に無い作業は近い区分に寄せないでください」と指示する
- 出てきた対応付けを、当時の担当者の判断と突き合わせる
20枚は必ずやってください。 料金の照合は計算なので、確かめるべきは「作業名を区分に対応付けられるか」です。
| 出てきた内容 | 判断 |
|---|---|
当時照会した行が unmapped や combined として出た | OCRとの連携に進む |
| 一覧に無い作業を近い区分に寄せた | 指示の書き方で直る。構成は有効 |
区分の一覧そのものが足りず、unmapped が多い | 一覧の整備が先。 AIの問題ではない |
3行目が出ても失敗ではありません。 古参の2名の頭の中の区分が、表になっていなかったと分かったということです。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 一覧に無い作業が近い区分に寄せられる | 寄せないことを指示に明記し、unmapped を出させる |
| 合算行が逆算で分けられる | 逆算を禁じ、combined として記録する |
| 欧州の数字の書き方で桁がずれる | 代理人の一覧で書き方を決め打ちし、元の文字列を残す |
| 日付の日と月を取り違える | 同じく代理人の一覧で決める。AIに解釈させない |
| 自社の整理番号が標準の項目に入らない | LabelDetection の項目名で「Your Ref」を拾う |
| 値上げの前後で料金の版を取り違える | 取り決めの表に適用開始日を持たせ、作業日で版を選ぶ |
| 指示記録の入力漏れで照会してしまう | 照会の前に、人が指示記録を確かめる |
JobId の期限が切れて結果が取れない | 7日間しか有効でない。完了の通知ですぐに取る |
| 中国語や韓国語の請求が混ざる | 対応言語外。英語以外は人が読むと決めておく |
| 振込先の変更に気づかない | 登録済みの振込先と照合し、違えば支払を止める |
上の2行が、この構成の失敗のほとんどです。 どちらもAIが「つじつまの合う答え」を作ろうとして起きます。合わないことを合わないまま記録させるのが勘所です。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 顧客の名前と出願の内容に関わる案件の情報、代理人との料金の取り決め、そして代理人の振込先の口座情報です。未公開の出願の案件名が明細に書かれていることもあります。
- 振込先の変更は、デビットノートだけで受け付けない … 振込先を変えたと書かれた請求は、なりすましによる送金詐欺の典型的な入口です。 登録済みの連絡先に電話などで確かめるまで支払を止めます
- 生成AIに渡す範囲を絞る … 対応付けに口座番号は要りません。振込先の照合は Python の側で行い、生成AIには明細の行と区分の一覧だけを渡します
- 照会を自動で送らない … 長く付き合う代理人との関係に直接ひびきます。送るのは人で、下書きまでが自動です
- 未公開の案件の情報を扱う前提で、保管先を決める … 非同期の結果は自社のバケットへ書き出し、
KMSKeyIdで暗号化の鍵を指定できます。保管の期間とアクセスできる人を先に決めます - 料金の取り決めの表を外へ出さない … 40事務所分の料金がまとまった一覧です。照合は Python の側で行い、表そのものを生成AIへ渡しません
- この構成は料金の妥当性を判断しない … 取り決めの料金が相場に照らして高いか、減額を求めるかは、外国部の責任者と代理人の交渉で決めることです
誤りが起きた場合のリスクは、指示していない作業を顧客に再請求することと、正しい請求を照会して代理人との関係を損ねることの2つです。
10まず何から始めるか
1週目:作業区分の一覧を作る
取り決めの表を見直し、出願、中間応答、報告、年金納付、登録といった作業区分にコードを振ります。 件数の多い上位10事務所から始めます。
2週目:20枚で試す
先月のデビットノートから20枚を選び、手元のAIサービスで対応付けをさせます。当時の担当者の判断と突き合わせ、近い区分に寄せていないか、合算行を分けていないかを最優先で見ます。
3週目:照会の基準を決める
許容する差額、合算行を照会する代理人、振込先の確認の手順を、外国部の責任者と経理で決めます。 ここが決まらないうちに照合を組むと、判定は出るのに誰も使えない状態になります。あわせて、代理人の一覧に数字と日付の書き方、既定の通貨を足します。
4週目:受付から対応付けまでをつなぐ
S3、Lambda、Textract をつなぎ、対応付けの結果を一覧に書き出すところまで作ります。この時点では verdict を出さず、lines の一覧だけを見ます。
2か月目: 案件台帳・指示記録・取り決めの表との照合を足し、verdict を出します。照会の割合を毎週数えます。3か月目以降: 照会文と顧客請求明細の下書きを足し、1件30分が何分になったかを実測します。代理人ごとの unmapped と combined の件数を見て、請求の書き方を代理人と相談できた時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
テンプレートなしで請求書から日付、番号、品目の金額、合計、支払条件を取り出すこと。異なる言い方を標準の項目にそろえ、当たらないものを OTHER にすること。標準の項目の一覧。出力の ExpenseIndex、LabelDetection、ValueDetection、Confidence、EXPENSE_ROW。値に Currency の Code が付く例。同期は AnalyzeExpense、非同期は StartExpenseAnalysis と GetExpenseAnalysis であること | AWS: Analyzing Invoices and Receipts | 2026-10-05 |
StartExpenseAnalysis がS3の JPEG・PNG・PDF を対象に非同期で分析し、完了をSNSに通知し、GetExpenseAnalysis で結果を取ること。ClientRequestToken で同じ処理の二重の開始を防げること。JobId が7日間有効なこと。OutputConfig で自社のバケットへ出力でき、KMSKeyId で暗号化の鍵を指定できること | AWS: StartExpenseAnalysis | 2026-10-05 |
| XFA形式のPDFに対応しないこと。同期処理が10MB・PDFとTIFFで1ページまで、非同期処理がPDFとTIFFで500MB・3,000ページまでであること。パスワード付きPDFを扱えないこと。対応言語が英・仏・独・伊・葡・西であること。文字の高さの下限が15ピクセル(150dpiで8ポイント)であること | AWS: Amazon Textract の固定のクォータ | 2026-10-05 |
Textract の人による確認の仕組み(HumanLoopConfig)が Amazon Augmented AI(A2I)を使うこと。A2I が2026年7月に保守モードに入り、新規の顧客を受け付けていないこと | AWS: AnalyzeDocument | 2026-10-05 |
構造化出力で output_config.format にJSONスキーマを指定できること。enum が使えること。オブジェクトに additionalProperties: false が必要なこと | Claude: Structured outputs | 2026-10-05 |
庁費用の照会や減額の求め方は、外国部の責任者と代理人との取り決めで決めてください。 庁費用の金額は国・時期で変わるため、本記事では数値を扱っていません。庁費用の表は、各国の庁が公表する料金表から自社で作り、定期的に見直してください。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0410)についてのご相談はこちらから。
