ビジネスアカウント・店舗・POS端末の一覧を取得する
API
OAuth
ビジネスアカウント
店舗
POS
Android
iOS
このガイドの目的
モバイルアプリやサーバーアプリから、レシートローラーのビジネスアカウント(旧称:組織)・店舗・POS端末を一覧したいときの API 利用方法をまとめます。よくあるユースケースは次のとおりです。
- アプリ内で「どのビジネスアカウントとして操作するか」をユーザーに選んでもらう画面
- 選択したビジネスアカウントの配下にある店舗を一覧して、レポートや操作対象を切り替える画面
- 選択した店舗のPOS端末を一覧し、取引照会や端末QR連携の対象を選ぶ画面
- 1人のユーザーが複数のビジネスアカウントを横断してアクセスする業務アプリ
前提
- 開発者ダッシュボードでアプリケーション登録を済ませていること
- OAuth 2.0 認可コードフローで ユーザーに紐づくアクセストークンを取得済みであること(マルチビジネスアカウント対応の場合は、アプリの設定で「認可時に1つのビジネスアカウントへトークンを紐付ける」のチェックをオフにしてください — 詳細は ネイティブモバイルアプリ向けガイド を参照)
- ベースURL:
https://receiptroller.io
1. ユーザーが所属するビジネスアカウントを一覧する
まず、現在のユーザーがメンバーになっているビジネスアカウントを取得します。
GET /api/v1/me/organizations
Authorization: Bearer {access_token}
クエリパラメータ(任意)
page— ページ番号(1始まり、既定 1)pageSize— 1ページあたりの件数(既定 100、最大 1000)
レスポンス例
{
"organizations": [
{
"id": "a04507de-043a-4b47-b0a3-6204562f6e20",
"name": "株式会社レシートローラー",
"role": "Owner"
},
{
"id": "7c2e0e9b-1f3a-4c6d-8a01-2b9f4d5e6c00",
"name": "サンプル小売株式会社",
"role": "Member"
}
],
"page": 1,
"pageSize": 100,
"totalCount": 2,
"totalPages": 1
}
ポイント
idがビジネスアカウントID(UUID)。次のリクエストでそのまま使いますroleはそのユーザーの権限ロール(Owner/Member/ProductManagerなど)totalPagesが2以上のときはpageを進めて全件取得してください — モバイルアプリ側で 1ページ目だけ表示して終わらせないのがポイントです
2. ビジネスアカウント配下の店舗を一覧する
1で取得した id を使って、店舗の一覧を取得します。
GET /api/v1/me/organizations/{organizationId}/stores
Authorization: Bearer {access_token}
クエリパラメータ(任意)
includeDeleted— 削除済み店舗を含めるかどうか(既定false)。通常は指定不要です
レスポンス例
{
"organizationId": "a04507de-043a-4b47-b0a3-6204562f6e20",
"role": "Owner",
"stores": [
{
"id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"name": "渋谷店",
"storeType": "Retail",
"primaryCategory": "コーヒーショップ",
"status": "Active",
"isDeleted": false,
"isPosConnected": true,
"address": {
"country": "JP",
"prefecture": "東京都",
"city": "渋谷区",
"line1": "宇田川町1-1",
"line2": "",
"postalCode": "150-0042",
"latitude": 35.6595,
"longitude": 139.7005
},
"phone": "03-1234-5678",
"websiteUrl": "https://example.com/shibuya",
"updatedAt": "2026-05-30T12:34:56Z"
}
],
"totalCount": 1
}
ポイント
idが店舗ID。/api/v1/sales/*等のレポートAPIにstoreIdとして渡せます- 呼び出し元のユーザーがそのビジネスアカウントのメンバーでない場合は
403 Forbiddenが返ります includeDeleted=trueで削除済み店舗も含められますが、通常のアプリでは付けないでください(誤って閉店済み店舗を表示してしまいます)
3. 店舗配下のPOS端末を一覧する
2で取得した店舗の id を使って、その店舗に登録されているPOS端末を取得します。
GET /api/v1/me/organizations/{organizationId}/stores/{storeId}/pos-terminals
Authorization: Bearer {access_token}
クエリパラメータ(任意)
includeDeleted— 削除済み端末を含めるかどうか(既定false)
レスポンス例
{
"organizationId": "a04507de-043a-4b47-b0a3-6204562f6e20",
"storeId": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"terminals": [
{
"id": "term-001",
"name": "レジ1(フロント)",
"vendor": "Smaregi",
"integrationType": "API",
"location": "1F カウンター",
"serialNumber": "SMG-2024-0001",
"isActive": true,
"publicTerminalId": "T-XYZ123",
"transactionCount": 4821,
"lastSyncAt": "2026-06-01T03:00:00Z",
"lastSyncStatus": "Success",
"lastTransactionAt": "2026-06-01T11:42:18Z",
"updatedAt": "2026-06-01T03:00:00Z"
}
],
"totalCount": 1
}
セキュリティに関する注意
- POS端末のベンダー認証情報(
apiKey/apiSecret/accessToken/refreshToken)は絶対に返却されません。レスポンスは運用メタデータのみです - 店舗が指定されたビジネスアカウントに属さない場合は
404が返ります(IDを推測した他テナント参照を防ぐため)
4. (任意)ビジネスアカウント全体のPOS端末を一括取得する
「アカウント全体でPOS同期がどこまで進んでいるか」を見たい場合など、ビジネスアカウント全体のPOS端末を一覧することもできます。各端末には storeId と storeName が付くので、店舗別にグルーピング可能です。
GET /api/v1/me/organizations/{organizationId}/pos-terminals
Authorization: Bearer {access_token}
レスポンス例
{
"organizationId": "a04507de-043a-4b47-b0a3-6204562f6e20",
"role": "Owner",
"terminals": [
{
"storeId": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"storeName": "渋谷店",
"terminal": {
"id": "term-001",
"name": "レジ1(フロント)",
"vendor": "Smaregi",
"integrationType": "API",
"isActive": true,
"lastSyncAt": "2026-06-01T03:00:00Z",
"lastSyncStatus": "Success"
}
}
],
"totalCount": 1
}
店舗ごとの選択UIを作る場合は section 3 の店舗スコープ版(/stores/{storeId}/pos-terminals)を、ダッシュボードで横断表示する場合はこのエンドポイントを使い分けてください。
典型的なフロー(モバイルアプリ)
- OAuth で取得したアクセストークンをセキュアストレージ(iOS Keychain / Android EncryptedSharedPreferences)に保存
- アプリ起動時に
GET /api/v1/me/organizationsを呼び、ビジネスアカウント選択UIに表示 - ユーザーがビジネスアカウントを選んだら、
GET /api/v1/me/organizations/{organizationId}/storesで店舗一覧を取得 - 店舗が選ばれたら、
GET /api/v1/me/organizations/{organizationId}/stores/{storeId}/pos-terminalsでPOS端末を取得 - 選択中のビジネスアカウントID/店舗ID/端末IDをローカルに保持し、以降の業務APIに渡す
- ユーザーが「切り替える」を選んだら、選択UIに戻して同じフローを繰り返す
エラーレスポンス
| ステータス | 意味 | 対処 |
|---|---|---|
| 401 Unauthorized | アクセストークンが無効/期限切れ | リフレッシュトークンで再取得、もしくは再ログイン |
| 403 Forbidden | ユーザーがそのビジネスアカウントのメンバーでない | /api/v1/me/organizations を再取得して選択画面を更新 |
| 404 Not Found | POS端末APIで、店舗IDがそのビジネスアカウントに属さない | 店舗選択UIを再取得 |
| 400 Bad Request | organizationId の形式が不正(UUIDでない) | クライアント側のパラメータを見直し |
関連情報
公開日: 2026-06-01
更新日: 2026-06-01
カテゴリ
タグ
API (17)
OAuth (11)
Android (8)
Webhook (8)
iOS (7)
api (6)
oauth (5)
トラブル (5)
POS連携 (4)
getting-started (4)
関連記事
-
リクエストとレスポンスの基本(JSON)レシートローラーAPIのリクエスト形式、必須ヘッダー、レスポンス構造、ページネーション、フィルタリング、日時形式の規則を解説します。
-
ネイティブモバイルアプリ向けガイド: 複数ビジネスアカウントアクセスと OAuth フローAndroid / iOS のネイティブアプリ向け実装ガイド。アプリ登録時に「認可時に1つのビジネスアカウントへトークンを紐付ける」をオフにすると、user-scoped OAuth トークンが発行されます。/api/v1/me/organizations + ?organizationId= パターンで複数ビジネスアカウントを横断アクセスできます。
-
取引一覧API(Transactions API:POS+OMS統合フィード)の使い方レシートローラーのTransactions APIは、レジ売上(PosTransactions)と販売管理注文(OmsOrders)を1つのフィードに統合した読み取り専用APIです。Android/iOSアプリで「ビジネスアカウント全体の取引」を一覧表示する際の入り口になります。
-
PosTransactionDto 仕様 — 取引データのフィールドリファレンスレシートローラーが扱う取引データの正規モデル PosTransactionDto の全フィールドを解説します。識別子・日時・金額・明細・支払い・スタッフ・ステータス・CRM 連携の各カテゴリーごとに、フィールド名・型・意味・各 POS ベンダーからの埋め方をまとめた、開発者および外部システム連携担当者向けのリファレンスです。スマレジ・Square 双方のマッピング記事からも参照されます。
-
商品管理API(Products API)の使い方レシートローラーの商品管理API(/api/v1/products)でビジネスアカウント配下の商品をCRUD操作するためのガイドです。Android/iOSアプリやサーバー連携でPIM(商品マスター)を読み書きする際の入門記事です。