レシート 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 キーには影響しません。
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 キーには影響なし
エンドポイント
/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.datestring
取引日
YYYY-MM-DD形式の取引日
transaction.timestring
取引時間
HH:MM:SS形式の取引時刻
transaction.receipt_numberstring
レシート番号
レシートの識別番号
transaction.payment.methodstring
支払方法
現金、IC、クレジットカードなど
transaction.payment.brandstring
ブランド名
Suica、Pasmo など
merchant.namestring
店舗名
レシートに表記された店舗名
merchant.telephonestring
電話番号
店舗の連絡先
merchant.addressstring
住所
店舗の所在地
merchant.registration_numberstring
インボイス登録番号
T + 13桁の形式。例: T1234567890123
merchant.corporate_numberstring
法人番号
企業の法人番号
merchant.store_codestring
店舗コード
店舗を識別するコード
amounts.subtotalnumber
小計
税抜き合計金額
amounts.tax_totalnumber
消費税合計
すべての税額の合計
amounts.discountnumber
割引金額
適用された割引額
amounts.totalnumber
合計金額
税込み合計金額
amounts.tax_breakdownarray
税率別内訳
8%と10%の消費税別内訳(配列形式)
items[].indexnumber
行番号
商品行の行番号
items[].descriptionstring
商品説明
商品名またはサービス説明
items[].quantitynumber
数量
購入数量
items[].unit_pricenumber
単価
商品の単価
items[].amountnumber
金額
数量 × 単価
items[].taxenum
税率
8%, 10%, または非課税
items[].markerstring
税率マーカー
税率を表す記号
fieldConfidenceobject
フィールド信頼度
各フィールドの抽出信頼度(0-1のスコア、ドット記法)
metadata.extractedAtstring
抽出日時
ISO 8601形式のタイムスタンプ
metadata.fileNamestring
ファイル名
アップロードされたファイル名
metadata.fileSizenumber
ファイルサイズ
ファイルサイズ(バイト単位)
metadata.processingTimeMsnumber
処理時間
処理にかかった時間(ミリ秒単位)
エラーコード
ファイル形式がサポートされていません
対応形式: JPG, PNG, JPEG
ファイルサイズが大きすぎます
最大サイズ: 2MB
データ抽出に失敗しました
PDFの処理中にエラーが発生しました
画像品質が低すぎます
より鮮明な画像を提供してください
APIキーの発行をご希望の方
まずはご登録でお試しいただけます