space ocr
ガイド記事料金ドキュメント
Invoice OCR

仕入先の請求書を、信頼できるデータに変える請求書OCR

請求書の打ち直しは不要です。宣言したフィールドに請求先・番号・日付・合計・明細行を読み取り、各値を box・quad 座標と verified 判定、そして確認対象を並べた data.review.flagged とともに返します。

受信箱に届く請求書は、どれも小さな入力作業の税金です。誰かがPDFを開き、請求先・請求書番号・日付・税の行・合計を探し、それをすべて会計システムに打ち直す——明細が必要なら、それも手で写します。時間がかかり、入力ミスの温床になり、合計をひとつ打ち間違えれば支払処理が止まります。

請求書OCRは本来、その手間を肩代わりするものです。請求書を読んで、フィールドを返す、と。ただ問題は、ほとんどのツールが数字を渡して「これを信じてください」と言うだけなこと。space-ocr は宣言されたフィールドに請求書を読み込み、各値を、ページ上のどこから読み取ったかという領域とともに返します——さらに、照合が通らなかった値を並べた確認リストが付きます。支払の承認前に確認するのは、ページ全体ではなくその数件です。

その場で確認できる、実際の請求書

下のフィールドにマウスを合わせてみてください——請求書上のボックスが、その値を読み取った場所です。請求先・発行日・対象期間・支払期限・ご請求金額・合計、そして各明細行はすべて、実際の解析結果から読み込んだもので、モックアップではありません。

Invoice with extracted-field bounding boxes
Verified fields
Invoice

Each value with a box carries a verified on-page location — in data.cells[path], that is box + 4-point quad + evidence.match_ratio — on a 0–1000 normalized grid (0,0 top-left → 1000,1000 bottom-right), the same shape the live API returns. Hover a field to trace it back to the pixels it came from.

3 つの形、同じ契約
同じ 1 ページを、宣言したフィールドとして(POST /ocr/fields)・レイアウトを保った Markdown として(POST /ocr/markdown)・読み順を直したプレーンテキストとして(POST /ocr/text)受け取れます。どれも応答の外形は同じで、data.values・path をキーにした data.cells・data.review・data.image が返るため、検証側のコードは一度書けば使い回せます。
すべての値に参照先
請求先・請求書番号・発行日・支払期限・各金額は data.cells[path] に入り、軸並行の box(0〜1000 正規化グリッド上の xmin/ymin/xmax/ymax)と、傾きに追従する 4 点の quad を持ちます。座標の基準となる幅・高さは data.image が示します。
合計だけでなく明細行も
明細行は children を持つ array フィールドとして宣言し、1 行(品名・数量・単価・金額)を記述します。各セルは items[0].amount のようなパスで自分の座標を保持し、行そのものは items[0] の統合ボックスになるため、折り返しや結合された行も追跡できます。
ルールを宣言し、例外を受け取る
選ぶテンプレートはありません。フィールドは自分で名付けます。請求書番号に required、日付に type date、金額に type number と min を付け、請求先に not_near を添えれば、宛先欄から拾われた名称が near_conflict として表面化し、そのまま通り抜けません。
税と合計
小計・税の行・総額は通常の number フィールドです。data.values は読み取られた表記をそのまま保ち、スカラー型を宣言すると data.normalized に解析済みの数値が並びます。解析できなければ type_mismatch、min/max を外れれば out_of_range が立ちます。
きれいなエクスポート
UTF-8 BOM付きCSV(Excel・CJK対応、明細行はサブ行に展開)と、REST API経由のJSON——表計算や会計ソフトの取込にそのまま流せます。
AP(買掛)自動化
請求書を /upload に非同期ジョブとして投げ、読み取り完了時に HMAC 署名付きの ocr.completed Webhook を受け取れます。新しい仕入先請求書が、誰も待機しなくてもシートに流れ込みます。

space-ocrでの請求書OCRの仕組み

アプリに請求書をドロップすると、ひとつの行に読み込まれます——請求先・日付・金額、そして明細行は並べ替え・絞り込み・エクスポートできるサブテーブルに。PDFの請求書はまずページごとに画像化され、それから読み取られます。APIを直接呼ぶ場合は、ページ画像を送ってください(公開APIはラスター画像を受け付けます——JPEG・PNG・GIF・BMP・TIFF・WebP)。返ってくる構造化結果は同じです。

請求書を一から記述する必要も、テンプレートを選ぶ必要もありません。会計側で使っている名称をそのまま fields として送り、請求書に合う検査を添えます。様式が未知なら autoFields を送り、返ってきた名称をそのまま宣言として使えます。明細行は children を持つ array フィールド 1 つです。

1 枚の請求書から返るもの:

  • data.values — 宣言した形そのままの業務データ。
  • data.cells[path] — その値の box と quad、および verified・review・evidence(文字照合の裏付けで、text_match・printed_text・match_ratio を含みます)。
  • data.review.flagged — 確認リスト。各項目は path と reasons を持ち、reasons はランク順で 0 番目が代表です。
  • data.normalized — スカラー型を宣言したフィールドの解析済み数値・ISO 日付。
  • data.image — すべての座標が基準とする幅と高さ。
請求書フィールドを宣言してページ画像を読む
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
curl -s https://api.space-ocr.com/ocr/fields \
  -H "Authorization: Bearer $SPACE_OCR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "image": "https://example.com/invoice-page-1.png",
    "imageType": "url",
    "fields": [
      { "name": "supplier", "type": "string", "required": true, "not_near": ["Bill To", "御中"] },
      { "name": "bill_to", "type": "string", "near": ["Bill To", "御中"] },
      { "name": "invoice_no", "type": "string", "required": true, "pattern": "^[A-Za-z0-9-]{4,}$" },
      { "name": "issue_date", "type": "date", "required": true },
      { "name": "due_date", "type": "date" },
      { "name": "subtotal", "type": "number", "min": 0 },
      { "name": "tax", "type": "number", "min": 0 },
      { "name": "total", "type": "number", "required": true, "min": 0 },
      {
        "name": "items", "type": "array",
        "children": [
          { "name": "description", "type": "string" },
          { "name": "quantity", "type": "number" },
          { "name": "unit_price", "type": "number" },
          { "name": "amount", "type": "number" }
        ]
      }
    ]
  }'

請求書をOCRする手順

  1. 請求書を追加
    アプリに請求書(PDFまたは画像)をドロップすると、各ページが画像にレンダリングされOCR待ち行列に入ります。AP自動化では /upload に投げ、読み取り完了時にWebhookを受け取ります。
  2. フィールドを宣言する
    会計側の名称をそのまま fields として送り、請求書に合う検査を添えます——請求書番号に required、日付に type date、金額に type number と min。様式が未知なら autoFields を送り、返ってきた名称を宣言として使います。明細行は children を持つ array フィールド 1 つです。
  3. 構造化された結果を読む
    業務データは data.values に入ります。座標と値ごとの判定は data.cells[path](box・quad・verified・review・evidence)にあり、その座標の基準となる寸法は data.image が示します。
  4. 計上前に検証
    閾値ではなく data.review.flagged を回します。各項目が path と reasons を示すので、data.cells[path] に飛び、box か quad をページ上で強調して値を直します。編集は元のOCR値の隣に保存されます。
  5. エクスポートまたはクエリ
    会計取込用にCSV(UTF-8 BOM、明細行は展開済み)をダウンロードするか、保存済みシートを GET /view で where・sort・select を使ってクエリします——OCR再実行も追加料金もありません。

シンプルで予測できる料金

1 ページの読み取りが 1 クレジット——¥10(税込)で、アプリでも API でも同じ価格です。どのアカウントにも毎月 100 クレジットの無料枠があり、カード登録は不要、失敗時は課金なしです。定額プランは月間クレジット数・シート数・ストレージを追加します。

Free
¥0
  • 100 クレジット/月
  • 3 シート
  • 1 GB ストレージ
無料 — カード不要
Starter
¥3,980/月
  • 500 クレジット/月
  • 15 シート
  • 10 GB ストレージ
無料で始める
おすすめ
Pro
¥8,980/月
  • 1,100 クレジット/月
  • シート無制限
  • 100 GB ストレージ
無料で始める
請求書OCRは請求書から何を取り出しますか?
宣言したものを取り出します。請求先名・請求書番号・発行日・支払期限・対象期間・小計・税・総額は通常の string / date / number フィールドで、明細行は children で 1 行を記述する array フィールド 1 つです。すべての値が data.cells[path] に入り、読み取り元の box と quad を持ちます。
合計だけでなく明細行も読めますか?
読めます。明細行を type が 'array' のフィールドとして宣言し、children で 1 行(品名・数量・単価・金額)を記述します。各セルは items[0].amount のようなパスで自分の座標を保ち、行そのものは items[0] の統合ボックスになります。エクスポート時はサブ行に展開されます。
読み取った合計が正しいとどう確認できますか?
スコアの閾値を調整するのではなく、確認リストを処理します。data.review.flagged にフラグの立ったパスが並び、それぞれ text_mismatch・missing・type_mismatch・out_of_range といった理由をランク順に持ちます。verified は、照合が走って何も立たなければ true、何か立てば false、照合対象がなければ null です。data.cells[path] を開き、box か quad をページ上に重ねて印字をご自身で確かめてください。座標は「どこから来たか」の根拠であって、値が正しいことの証明ではありません——2 つの読み手が同じ誤読で一致することもあるため、業務側の検算は残してください。
請求書をCSVに書き出したり会計に取り込んだりできますか?
できます。UTF-8 BOM付きのCSV(Excelが日本語・韓国語・中国語を正しく開き、明細行はサブ行に展開)をダウンロードするか、REST API のJSONを使います。請求書を /upload に非同期ジョブとして投げれば、読み取り完了時に署名付きWebhookが届きます。
PDFの請求書にも対応していますか?
Webアプリは PDF の請求書を直接受け付け、各ページを画像にレンダリングしてOCRします。公開APIはラスター画像(JPEG・PNG・GIF・BMP・TIFF・WebP)を受け付けるので、API利用時はページ画像を送ります。
請求書OCRの料金はいくらですか?
1 ページ 1 クレジット——¥10(税込)で、毎月 100 クレジットの無料枠があり、カード登録は不要です。失敗時は課金なしです。定額プラン(StarterとPro)は月間クレジット数・シート数・ストレージを追加します——上の料金表をご覧ください。

仕入先の請求書を、確認できるデータに

無料枠——月100クレジット、クレジットカード不要。すべての値がページ上の位置とともに返ります。

関連