購買・レシートデータ連携
レシート
購買
データ連携
API
この記事の対象
レシートローラーの中核データである購入・レシート情報を連携したい開発者向けです。
レシートローラーの中核データである購入・レシート情報を連携したい開発者向けです。
レシートローラーで最も中心にあるデータがレシート(receipt)です。1回の決済が1レシートに対応し、複数の明細(item)を持ちます。POSや自社決済システムから発行され、店舗系・User系の両方のスコープでアクセスできます。
内部モデルの正式仕様は別記事に
この記事では概念と統合パターンを扱います。実際に POS から取り込まれた取引データの C# モデル(
この記事では概念と統合パターンを扱います。実際に POS から取り込まれた取引データの C# モデル(
PosTransactionDto)のフィールド定義については PosTransactionDto リファレンス を参照してください。
取引モデルが拡張されました
ソース POS が送るデータを取りこぼさないよう、取引モデルを拡張しました。1 件の取引について、明細(商品名・数量・単価・明細単位の税額/割引額・カタログ ID)、分割テンダーの支払い内訳(現金+カードなど、各テンダーの金額・カードブランド/下4桁)、返金内訳、通貨、レシート URL、外部連携 ID などを取得できます。フィールドの詳細は PosTransactionDto リファレンス をご覧ください。
ソース POS が送るデータを取りこぼさないよう、取引モデルを拡張しました。1 件の取引について、明細(商品名・数量・単価・明細単位の税額/割引額・カタログ ID)、分割テンダーの支払い内訳(現金+カードなど、各テンダーの金額・カードブランド/下4桁)、返金内訳、通貨、レシート URL、外部連携 ID などを取得できます。フィールドの詳細は PosTransactionDto リファレンス をご覧ください。
主なフィールド
| フィールド | 内容 |
|---|---|
id | レシートID(rcp_) |
store_id | 発行店舗 |
issued_at | 発行時刻 |
total_amount | 合計金額(最小通貨単位) |
tax_amount | 消費税額 |
currency | 通貨コード |
payment_method | 支払方法(cash / credit_card / qr / etc)。分割会計のときは各テンダーの内訳も保持 |
status | issued / voided / refunded |
customer_id | 紐付け顧客(任意) |
items[] | 明細配列(商品名・数量・単価のほか、明細単位の税額・割引額も含む) |
関連スコープ
receipt.read— 店舗のレシート読み取りreceipt.write— レシートの新規発行・取消user.receipts.read— 一般消費者本人のレシート(要審査)user.receipts.write— 本人のレシートにメモ・タグ追加(要審査)
取得パターン
店舗オーナーとして取得
GET /v1/receipts?store_id=str_abc123&issued_after=2026-04-01
Authorization: Bearer {店舗トークン}
消費者本人として取得
GET /v1/me/receipts?limit=20
Authorization: Bearer {ユーザートークン}
レシートQRの発行(claim-token)
受け取りそびれたレシートを、その場で QR コードとして渡せます。ネイティブアプリ(Android / iOS)でレシートを表示したあと、対象取引の id から claim-token(ワンタイムの受け取りトークン)を発行し、返ってきた URL を QR にエンコードして画面に表示してください。お客様がスキャンすると、その 1 件のレシートを受け取れます(Web の POS 画面が出す QR と同じ仕組みです)。
1. claim-token を発行する
POST /api/v1/transactions/{id}/claim-token?organizationId={organizationId}
Authorization: Bearer {access_token}
Content-Type: application/json
{ "ttlMinutes": 1440 }
{id} は取引一覧/詳細が返す合成 ID(pos:{terminalId}:{transactionId})です。POS 取引のみ対応します(OMS 注文は 400)。スコープは store.orders.read または sales.read。ttlMinutes は任意(既定 1440 = 24 時間)。
レスポンス
{
"id": "pos:9edfb4b8-...:6a8c44a6-...",
"claimToken": "a7K3xQ9mZp2v",
"claimUrl": "https://receiptroller.io/rx/a7K3xQ9mZp2v",
"expiresAt": "2026-06-22T06:40:00Z"
}
2. QR を生成する — claimUrl をそのまま QR ライブラリ(Android は ZXing など)でエンコードして表示します。QR にはレシートデータ自体は含まれず、URL のみが入ります。画像はアプリ側で生成するため、サーバーへの画像リクエストは不要です。
- トークンは単回使用・既定 24 時間で失効します(
ttlMinutesで変更可)。スキャンされなかった場合は再度発行してください。 - お客様がスキャンすると
https://receiptroller.io/rx/{claimToken}に着地し、ネイティブアプリ(ユニバーサルリンク/アプリリンク)または Web プレビューがその取引のレシートを表示します。 - 店舗端末に固定で貼る QR(レジ単位・最新取引を表示)が必要な場合は、端末の
publicTerminalIdからhttps://receiptroller.io/r/{publicTerminalId}をエンコードしてください。
Webhookイベント
receipt.issued— 発行receipt.voided— 取消receipt.refunded— 返金receipt.updated— 内容更新(補足追加など)
よくあるユースケース
- 会計連携:日次でレシートを取得して会計ソフトに登録
- 消費者向けレシート管理アプリ:本人レシートを家計簿アプリに同期
- レシートQRの受け渡し:レジ後にアプリでQRを表示し、お客様が電子レシートを受け取る
- BI集計:時間帯別・商品別の売上分析(明細単位の税・割引も活用)
- 不正検知:返金率の異常値検知
注意点
- 明細を含むレシートはペイロードが大きいため、一覧取得時は明細を含めない(
?expand=itemsで明示時のみ含む) - 取消・返金された場合、元レシートは残り
statusが変わる。集計時はstatusを必ず参照 - 金額は税込・税抜の両方が
total_amount/subtotalとして提供される - 明細単位の税額・割引額、決済テンダーの内訳(分割会計)、返金内訳、カードブランド/下4桁は、ソース POS が送る場合に保持される(取りこぼし防止のため生ペイロードもサーバー側に保管)
- レシートQR(claim-token)の payload は URL のみ。レシートデータは
/rx/{token}着地後に取得されるため、QR 自体に個人情報は含まれません
関連ガイド
- PosTransactionDto リファレンス — POS から取り込まれた取引の内部モデル仕様
- ウォレットアプリ向けレシート取得ガイド
- 店舗向けレシート発行・Webhookガイド
- OAuthスコープ一覧
- 開発者ヘルプトップへ戻る
公開日: 2026-04-27
更新日: 2026-06-21
カテゴリ
タグ
API (22)
OAuth (15)
Android (10)
iOS (9)
Webhook (8)
api (6)
oauth (5)
トラブル (5)
POS連携 (4)
getting-started (4)