レシート OCR API

レシート画像からデータを抽出し、構造化されたJSON形式で返します

概要

  • Base URL: https://ai.transmit.work/v1
  • 認証方式: Bearer Token
  • レスポンス形式: JSON

認証

APIキーを使用した認証

すべてのリクエストには認証ヘッダーが必須です(以下のいずれか)

方法1: Authorization ヘッダー(推奨)

curl -X POST \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@document.jpg" \
  /receipt/api

方法2: X-API-Key ヘッダー

curl -X POST \
  -H "X-API-Key: YOUR_API_KEY" \
  -F "file=@document.jpg" \
  /receipt/api

サンドボックスモード

実際のファイルや課金なしで API をテストできます

test_ で始まる API キーを使用すると、OCR 処理をスキップして固定のサンプルレスポンスを返します。本番 API キーには影響しません。

サンドボックス API キーの形式
test_<any string>

# Examples:
test_mysandboxkey
test_dev_local
test_12345

curl での使用例

# Works even without a file
curl -X POST https://ai.transmit.work/receipt/api \
  -H "Authorization: Bearer test_mysandboxkey"

# Test with an attached file
curl -X POST https://ai.transmit.work/receipt/api \
  -H "Authorization: Bearer test_mysandboxkey" \
  -F "file=@receipt.jpg"

✅ レスポンスは本番と同一のスキーマ

✅ 課金なし・OCR 処理なし

✅ 毎回同一のサンプルデータを返す(決定論的)

✅ 本番 API キーには影響なし

エンドポイント

POST/receipt/api

レシート画像からデータを抽出し、構造化されたJSON形式で返します

Content-Type

multipart/form-data

最大ファイルサイズ

2MB

対応フォーマット

JPG, PNG, JPEG

レシートデータ抽出

レシート画像から構造化データを抽出し、merchant(店舗)、transaction(取引)、amounts(金額)、items(商品)のネストされたJSONで返します

リクエストパラメータ

filerequired

画像ファイル(multipart/form-data)
対応形式: JPG, PNG, JPEG

📋 ファイルサイズ & 圧縮要件

サイズ制限:

  • 最大アップロードサイズ: 2MB

API直接呼び出し時の圧縮必須:

  • 推奨最大辺: 1500ピクセル以下
  • 推奨JPEG品質: 80% (0.80)
  • 推奨ファイルサイズ: 800KB以下

💡 /receipt/ocr ページでは自動的に画像が圧縮されます。参考実装はこちらをご覧ください。

レスポンス例

成功(200)

{
  "success": true,
  "data": {
    "merchant": {
      "name": "サンプル店舗",
      "telephone": "03-1234-5678",
      "address": "東京都渋谷区",
      "registration_number": "T1234567890123",
      "corporate_number": null,
      "store_code": "S001"
    },
    "transaction": {
      "date": "2025-02-10",
      "time": "15:30:00",
      "receipt_number": "RCP123456",
      "payment": {
        "method": "cash",
        "brand": null
      }
    },
    "amounts": {
      "subtotal": 9000,
      "tax_total": 740,
      "discount": 0,
      "total": 9740,
      "tax_breakdown": [
        {
          "tax": "8%",
          "marker": null,
          "taxable_amount": 5000,
          "tax_amount": 400
        },
        {
          "tax": "10%",
          "marker": null,
          "taxable_amount": 4000,
          "tax_amount": 400
        }
      ]
    },
    "items": [
      {
        "index": 1,
        "description": "商品A",
        "quantity": 2,
        "unit_price": 3000,
        "amount": 6000,
        "tax": "10%",
        "marker": null
      },
      {
        "index": 2,
        "description": "商品B",
        "quantity": 1,
        "unit_price": 5000,
        "amount": 5000,
        "tax": "8%",
        "marker": null
      }
    ],
    "fieldConfidence": {
      "merchant.name": 0.95,
      "merchant.address": 0.88,
      "merchant.telephone": 0.92,
      "merchant.registration_number": 0.92,
      "transaction.date": 0.98,
      "transaction.time": 0.96,
      "amounts.subtotal": 0.97,
      "amounts.total": 0.99,
      "amounts.tax_breakdown": 0.94,
      "items": 0.91
    },
    "metadata": {
      "fileName": "receipt.jpg",
      "fileSize": 209920,
      "processingTimeMs": 2500,
      "extractedAt": "2025-02-10T15:35:20.123Z"
    }
  }
}

エラー

{
  "success": false,
  "error": {
    "code": "INVALID_FILE_FORMAT",
    "message": "ファイル形式がサポートされていません",
    "details": "対応形式: JPG, PNG, JPEG",
    "level": "error"
  }
}

フィールド説明

基本情報
レシートの基本的な取引情報
transaction.date

string

取引日

YYYY-MM-DD形式の取引日

transaction.time

string

取引時間

HH:MM:SS形式の取引時刻

transaction.receipt_number

string

レシート番号

レシートの識別番号

transaction.payment.method

string

支払方法

現金、IC、クレジットカードなど

transaction.payment.brand

string

ブランド名

Suica、Pasmo など

店舗情報
店舗の基本情報(インボイス登録番号を含む)
merchant.name

string

店舗名

レシートに表記された店舗名

merchant.telephone

string

電話番号

店舗の連絡先

merchant.address

string

住所

店舗の所在地

merchant.registration_number

string

インボイス登録番号

T + 13桁の形式。例: T1234567890123

merchant.corporate_number

string

法人番号

企業の法人番号

merchant.store_code

string

店舗コード

店舗を識別するコード

金額情報
レシートの金額と税額に関する情報
amounts.subtotal

number

小計

税抜き合計金額

amounts.tax_total

number

消費税合計

すべての税額の合計

amounts.discount

number

割引金額

適用された割引額

amounts.total

number

合計金額

税込み合計金額

amounts.tax_breakdown

array

税率別内訳

8%と10%の消費税別内訳(配列形式)

商品情報
レシートの各商品行の詳細情報
items[].index

number

行番号

商品行の行番号

items[].description

string

商品説明

商品名またはサービス説明

items[].quantity

number

数量

購入数量

items[].unit_price

number

単価

商品の単価

items[].amount

number

金額

数量 × 単価

items[].tax

enum

税率

8%, 10%, または非課税

8%10%非課税
items[].marker

string

税率マーカー

税率を表す記号

品質指標とメタデータ
抽出精度とファイル処理情報
fieldConfidence

object

フィールド信頼度

各フィールドの抽出信頼度(0-1のスコア、ドット記法)

metadata.extractedAt

string

抽出日時

ISO 8601形式のタイムスタンプ

metadata.fileName

string

ファイル名

アップロードされたファイル名

metadata.fileSize

number

ファイルサイズ

ファイルサイズ(バイト単位)

metadata.processingTimeMs

number

処理時間

処理にかかった時間(ミリ秒単位)

エラーコード

INVALID_FILE_FORMAT

ファイル形式がサポートされていません

対応形式: JPG, PNG, JPEG

FILE_TOO_LARGE

ファイルサイズが大きすぎます

最大サイズ: 2MB

EXTRACTION_FAILED

データ抽出に失敗しました

PDFの処理中にエラーが発生しました

LOW_QUALITY

画像品質が低すぎます

より鮮明な画像を提供してください

APIキーの発行をご希望の方

まずはご登録でお試しいただけます