請求書をAIで読み取る精度検証
複数税率8%・10%の区分とプロンプト
請求書のデータ化はAI-OCR(用語集のOCRの項に意味と注意点があります)の定番領域ですが、そのAI-OCRでも取りこぼしやすいのが複数税率です。どの品目が8%でどれが10%かは、レイアウトではなく文脈で読み分けるしかありません。マルチモーダル生成AIに画像を直接渡すと、この税区分の判断まで踏み込めるのか。標準・複数税率・手書き風の3種を自作して読ませました(架空サンプル)。
検証方法
難易度の違う請求書を3パターン自作し(すべて架空のデータ)、クリーンなデジタル画像(PDF出力やキャプチャ相当)として生成AIに読み取らせ、抽出結果を元データと1項目ずつ照合しました。
- パターン1:標準──一般的なレイアウトの請求書
- パターン2:複数税率──軽減8%と10%が混在する明細
- パターン3:手書き風+低コントラスト──手書き風フォント・薄い文字色
結果1:標準レイアウト → 全項目正確
請求書番号・発行日・支払期限・取引先・インボイス登録番号・品目4行(数量/単価/金額)・小計/消費税/合計・振込口座まで、すべて正確に抽出できました。
結果2:複数税率 → 税区分の判断まで正確
ここが一番のポイントです。軽減8%と10%が混在する5品目で、どの品目がどの税率かを正しく区別し、さらに 8%対象 54,600円/10%対象 28,500円、それぞれの税額、合計 90,318円 まで正確に抽出しました。税区分の判断は従来型のOCR単体では弱い領域ですが、文脈を理解する生成AIは取りこぼしませんでした。
結果3:手書き風+低コントラスト → これも正確
手書き風フォント・薄いグレーの文字という、読み取りにくい条件でも、品目・金額・合計(65,640円)・振込口座まで全項目を正確に抽出できました。フォントの違いには思ったより強い印象です。
わかったこと
- クリーンな画像なら、読み取り精度はかなり高い。3パターンとも抽出ミスはゼロだった。
- 複数税率の税区分判断に強い。「どの品目が軽減税率か」を文脈から正しく判断できた。
- 手書き風フォントにも耐性がある。レイアウトや書体の違いで大きく崩れなかった。
請求書の読み取りプロンプト(コピーして使えます)
ChatGPT・Gemini・Claudeなど、画像を読み込めるチャットAIに請求書の画像と一緒に貼り付けて使う形にしています。当社が結果を確かめたのはClaudeだけで、ChatGPT・Geminiでの精度は検証していません。
添付した請求書の画像から、次の項目を読み取ってください。 1. 請求書番号、発行日、支払期限、請求元の会社名、登録番号(T+13桁)、請求先 2. 明細:品名/税区分(8%・10%)/数量/単価/金額 を1行ずつ表にする 3. 税率ごとの対象額と消費税額、合計金額 4. 振込先 ルール: - 画像に書かれていない項目は推測せず「記載なし」とする - 税区分は、明細の「※」「軽減」などの印と欄外の注記から判断し、根拠にした印も書く - 最後に検算する。各明細の「数量×単価=金額」、明細の合計=小計、小計+消費税=合計 がそれぞれ一致するかを確かめ、合わない箇所があれば指摘する - 表のあとに、会計ソフトへ貼り付けられるCSV(見出し行つき)も付ける
2026年9月の再確認(Claude Opus 5.5)
上のプロンプトで、この記事の3枚をもう一度読み取らせました。
| サンプル | 読み取り結果 | 検算 |
|---|---|---|
| 標準(INV-2026-0418) | 明細4行、小計399,000円・消費税39,900円・合計438,900円、登録番号・振込先まで一致 | 4行すべて一致。小計+消費税=合計も一致 |
| 複数税率(No. 2026-0573) | 5品目の税区分(軽減8%が2品目、10%が3品目)、8%対象54,600円・税4,368円、10%対象28,500円・税2,850円、合計90,318円まで一致 | 税率ごとの対象額と明細の合計が一致 |
| 手書き風(A-0091) | 3品目・合計65,640円(税込)・振込先が一致。登録番号と税率の内訳は画像に無く、「記載なし」と返した | 明細の合計=合計で一致 |
答えを知っている同じサンプルでの再確認なので、初めて見る請求書での精度を示すものではありません。
使うときのコツ
- 検算を必ず指示する。数字の読み違いは、明細の合計と小計が合わないことで見つかります。AIに読ませるだけでなく、合計が合うかを同じ回答の中で確かめさせると、確認の手間が減ります。
- 「記載なし」を許す。手書き風のサンプルには登録番号がありませんでした。空欄を埋めないよう指示しておくと、登録番号の有無を経理側で確かめるきっかけになります。
- 1回に1枚ずつ渡す。複数枚をまとめて渡すと、どの明細がどの請求書のものかの取り違えを確かめにくくなります。
税率ごとの消費税の検算:追加検証(10%の税額に100円の誤りを入れた請求書)
ここまでの3枚は、当社が作ったサンプルの読み取りでした。追加で、複数税率の請求書を2枚新しく作り、AIに検算させました。1枚は記載がすべて正しく、もう1枚は10%の消費税欄を2,300円のところ2,200円と書き、ご請求金額もその分(100円)少なくしてあります。明細の金額と8%の欄は正しいままです。モデルには、この依頼文と画像を開く手順だけを渡し、誤りの有無も場所も伝えていません(2026年9月29日・架空のデータ)。
添付した請求書の画像の明細を表にまとめ、税率ごとの対象額と消費税、ご請求金額が合っているか検算してください。記載と計算が違う場合は、どの数字が何円違うかを示してください。
| 条件 | 転記 | 検算の結論 |
|---|---|---|
| Opus 5.5・サンプル1 | 明細4行・対象額・税額・ご請求金額とも一致 | すべて合っていると回答(正しい) |
| Opus 5.5・サンプル2 | 明細4行・対象額・税額・ご請求金額とも一致 | 10%の消費税が2,300円のところ2,200円で100円少ない、ご請求金額は55,108円のところ55,008円で100円少ないと指摘(正しい) |
| Haiku 4.5・サンプル1 | 明細4行は一致。対象額・税額・ご請求金額は、計算した値を示して✓を付けた | すべての計算が正確と回答(正しい) |
| Haiku 4.5・サンプル2 | 明細4行・対象額・税額・ご請求金額とも一致 | 10%の消費税が100円少ないと指摘(正しい)。ただしご請求金額の差を1,000円少ないと書いた(正しくは100円) |
4回とも、明細と金額に読み違いはありませんでした。10%の税額の誤りは、2つのモデルとも見つけました。差が出たのは、ご請求金額の差額の数字です。Haikuは正しい合計55,108円と記載の55,008円を並べながら、差を1,000円と書きました(正しくは100円)。指摘の場所が合っていても、金額の数字は人の目で確かめる必要があります。1回ずつの結果なので、モデルの優劣を示すものではありません。
使った画像は税率ごとの内訳欄が印字されたものです。内訳欄の無い請求書や、スマホで撮った画像での検算は確かめていません。
振込先の口座番号と登録番号の桁:追加検証(請求書3枚・Haikuは登録番号を1桁多く読んだ)
請求書の読み取りで、実務の事故につながりやすいのは振込先の口座番号(7桁)と登録番号(「T」+13桁)の取り違えです。桁が1つ違うと、別の口座・別の事業者の番号や、存在しない番号になります。そこで、口座番号と登録番号の数字がそれぞれ異なる架空の請求書を3枚作り、答えを知らないAIに読み取らせました。3枚目は文字を小さく薄くしてあります。モデルにはツールを使わせず、画像を開く手順と次の依頼文だけを渡しました。
添付した3枚の請求書の画像から、請求元・振込先・登録番号を読み取ってください。
「プロンプトあり」の条件では、上の依頼を次の形に替えました。振込先は銀行名・支店名・口座種別・口座番号・口座名義を表にさせ、桁数(口座番号7桁、登録番号は「T」の後13桁)を伝え、「読めない数字は『?』にする」「紛らわしい数字は見直す」「先頭の0を落とさない」を加えています。
| 条件 | 口座番号(3枚) | 登録番号(3枚) | 備考 |
|---|---|---|---|
| Opus 5.5・ただ頼んだだけ | 3 / 3 | 3 / 3 | 誤りなし |
| Opus 5.5・プロンプトあり | 3 / 3 | 3 / 3 | 数字を1桁ずつ区切って桁数を示し、「?」は使わなかった。依頼に無い、請求書3の登録番号を国税庁の公表サイトで照会する助言を足した |
| Haiku 4.5・ただ頼んだだけ | 3 / 3 | 3 / 3 | 数字の誤りはなし。ただし3枚とも、請求元に宛名側の会社名(「見本工業株式会社」など)を書いた |
| Haiku 4.5・プロンプトあり | 3 / 3 | 1 / 3 | サンプル2を「T30928471506833」、サンプル3を「T57260389142770」と読み、どちらも1桁多い14桁にした(正しくは末尾が683と270)。桁数を数えるよう頼んでいたが、回答に桁数の記載は無く、「?」も使わなかった。請求元は3枚とも宛名側の会社名を書き、3枚を1つの表にまとめた |
口座番号は4条件×3枚=12回すべて正確で、先頭が0のサンプル2や、文字を小さく薄くしたサンプル3も読み違えはありませんでした。崩れたのは登録番号で、Haiku 4.5がプロンプトありの条件で、13桁を14桁に読みました。登録番号を1桁多く読んだ例は、レシートの記載の点検でもHaikuに出ています。桁数を伝えたことが読み取りの正確さにつながるとは限らず、このHaikuでは、桁数を伝えた条件のほうが誤りました。ただし各条件1回ずつなので、プロンプトが原因だとは言えません。
読み取った登録番号は、桁数が13桁か(「T」を除く)を機械的に確かめる、国税庁の適格請求書発行事業者公表サイトで照会する、といった手順を人が必ず入れてください。口座番号は振込の前に、請求元に確かめた番号と照合するのが安全です。使った画像は印字されたものだけです。スマホで斜めに撮った写真や、手書きの口座番号は確かめていません。回答の原文は当社の検証記録に保存しています。
AIが間違えた箇所の一覧(回答の原文から)
上の追加検証2件で、実際に誤りが出た箇所を並べます。いずれもHaiku 4.5の1回の回答で、Opus 5.5には誤りがありませんでした。
| 検証 | 正しい値 | AIの回答 | どう間違えたか |
|---|---|---|---|
| 振込先の桁・サンプル2(プロンプトあり) | T3092847150683(13桁) | T30928471506833 | 末尾に3が1つ多く、14桁になった |
| 振込先の桁・サンプル3(プロンプトあり) | T5726038914270(13桁) | T57260389142770 | 末尾に0が1つ多く、14桁になった |
| 検算・サンプル2 | ご請求金額の差は100円 | 1,000円少ない | 差額の桁を取り違えた(指摘した場所は合っていた) |
どれも、数字が1文字ずれただけで、文章の流れからは気づきにくい誤りです。桁数や差額は、読み取りのあとに機械的に確かめる手順を置いてください。
まとめ
3種とも抽出ミスはゼロ。とくにどの品目が軽減税率かを文脈から判断できたのは、文字起こしを超えて「読んで判断する」段階に来ている証拠です。ただし今回はきれいなデジタル画像での結果。実際のスマホ撮影(影・傾き・低解像度)は精度が落ちうるので、実運用は撮影品質の確保とAI出力の最終確認をセットにするのが現実的です。
よくある質問
AIは請求書の軽減税率(8%と10%)を正しく分けて読めますか?
今回の検証では、どの品目が軽減8%でどれが10%かを文脈から判断し、税区分ごとの集計まで正確でした。ただしクリーンなデジタル画像での結果です。
スマホで撮った請求書でも同じ精度で読めますか?
今回はHTMLで作ったきれいな画像での検証です。実際のスマホ撮影(影・傾き・低解像度)や紙のしわ、極端な手書きは精度が落ちうるため、撮影品質の確保とAI出力の人による最終確認をセットにするのが現実的です。
AIは請求書の登録番号や口座番号の桁を間違えますか?
追加検証では、口座番号は12回すべて正確でしたが、Haiku 4.5が登録番号を13桁のところ14桁に読んだ例が2件ありました(プロンプトありの条件、各条件1回)。桁数を機械的に確かめ、国税庁の公表サイトで照会する手順が必要です。
合同会社フューチャープロンプト(AIプロダクト開発・業務自動化/東京・渋谷)が2026年6月に実施した一次検証です。2026年9月25日に、同じサンプルをClaude(Opus 5.5)で再確認し、使ったプロンプトと結果を追記しました。マルチモーダル生成AI(Claudeを使用)に実際のサンプルを処理させ、結果を自社で記録しました。当社は「今日の一皿」「LLM News」「資格問題ドリル」などのAIプロダクトを自社開発・本番運用しています。会社の詳細はトップページをご覧ください。
検証の進め方は実測の進め方をご覧ください。
自社の書類をAIでどこまで読めるかの検証のご相談
合同会社フューチャープロンプトは、請求書・見積書などの書類をAIで読み取ってデータ化する仕組みづくりを、検証から運用まで伴走します。
お問い合わせ →