[API] 店舗データ管理

API
Store

店舗データ管理

店舗データを利用する場合は、組織Idとアクセストークンが必ず必要です。各組織の下に複数の店舗を管理できます。このセクションでは、店舗情報の取得・管理について説明します。


店舗一覧の取得 (`/

リクエスト

curl -X 'POST' \
  'https://api.receiptroller.com/{organizationId}/stores' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer {YOUR TOKEN}' \
  -H 'Content-Type: application/json' \
  -d '{
    "keyword": "渋谷",
    "currentPage": 1,
    "itemsPerPage": 10,
    "sort": "storeName asc"
}'
  • keyword: 検索に使用されるキーワード
  • currentPage: 現在のページ(ページネーション)
  • itemsPerPage: ページごとのアイテム数。上限は1000件です。
  • sort: 並び順(storeName asc, storeName desc, storeCode asc, storeCode desc のいずれか)

レスポンス

{
  "stores": {
    "items": [
      {
        "id": "9356c405-b51a-4c40-8a11-9898c6d4be66",
        "organizationId": "1234-organization-5678",
        "storeCode": "001",
        "storeName": "渋谷ストア",
        "storePrintName": "渋谷ストア",
        "storeAddress": "東京都渋谷区道玄坂1-2-3",
        "storePrintAddress": "渋谷区道玄坂1-2-3",
        "storeRegistrationName": "渋谷ストア有限会社",
        "storeRegistrationCode": "RG12345678",
        "storeTel": "03-1234-5678",
        "storeMemo": "店舗メモ内容"
      }
    ],
    "currentPage": 1,
    "itemsPerPage": 10,
    "totalItems": 1,
    "totalPages": 1,
    "keyword": "渋谷",
    "sort": "storeName asc"
  }
}

エラーレスポンス

  • 401 Unauthorized: 認証エラー(無効なトークンの場合)

    {
      "error": "Invalid or missing token"
    }
    
  • 400 Bad Request: 不正なリクエスト(無効なフィールドやページ番号)

    {
      "error": "Invalid request format"
    }
    
  • 404 Not Found: 組織が存在しない場合

    {
      "error": "Organization not found"
    }
    

店舗電話番号による検索 (`/

リクエスト

curl -X 'POST' \
  'https://api.receiptroller.com/{organizationId}/stores/phonenumber' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer {YOUR TOKEN}' \
  -H 'Content-Type: application/json' \
  -d '{
    "phoneNumber": "03-1234-5678",
    "currentPage": 1,
    "itemsPerPage": 10,
    "sort": "storeName asc"
}'
  • phoneNumber: 検索対象の店舗の電話番号
  • currentPage: 現在のページ(ページネーション)
  • itemsPerPage: ページごとのアイテム数。上限は1000件です。
  • sort: 並び順(storeName asc, storeName desc, storeCode asc, storeCode desc のいずれか)

レスポンス

{
  "stores": {
    "items": [
      {
        "id": "9356c405-b51a-4c40-8a11-9898c6d4be66",
        "organizationId": "1234-organization-5678",
        "storeCode": "001",
        "storeName": "渋谷ストア",
        "storePrintName": "渋谷ストア",
        "storeAddress": "東京都渋谷区道玄坂1-2-3",
        "storePrintAddress": "渋谷区道玄坂1-2-3",
        "storeRegistrationName": "渋谷ストア有限会社",
        "storeRegistrationCode": "RG12345678",
        "storeTel": "03-1234-5678",
        "storeMemo": "店舗メモ内容"
      }
    ],
    "currentPage": 1,
    "itemsPerPage": 10,
    "totalItems": 1,
    "totalPages": 1,
    "keyword": "03-1234-5678",
    "sort": "storeName asc"
  }
}

エラーレスポンス

  • 404 Not Found: 電話番号に一致する店舗が見つからない場合

    {
      "error": "Store not found"
    }
    
  • 400 Bad Request: 不正なリクエストフォーマット

    {
      "error": "Invalid request format"
    }
    
  • 401 Unauthorized: 認証エラー

    {
      "error": "Invalid or missing token"
    }
    

店舗詳細の取得 (`/

リクエスト

curl -X 'GET' \
  'https://api.receiptroller.com/{organizationId}/store/{id}' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer {YOUR TOKEN}'

レスポンス

{
  "id": "9356c405-b51a-4c40-8a11-9898c6d4be66",
  "organizationId": "1234-organization-5678",
  "storeCode": "001",
  "storeName": "渋谷ストア",
  "storePrintName": "渋谷ストア",
  "storeAddress": "東京都渋谷区道玄坂1-2-3",
  "storePrintAddress": "渋谷区道玄坂1-2-3",
  "storeRegistrationName": "渋谷ストア有限会社",
  "storeRegistrationCode": "RG12345678",
  "storeTel": "03-1234-5678",
  "storeMemo": "メモ内容"
}

エラーレスポンス

  • 404 Not Found: 指定された storeId が存在しない場合

    {
      "error": "Store not found"
    }
    
  • 401 Unauthorized: 認証に失敗した場合(無効なトークン)

    {
      "error": "Invalid or missing token"
    }
    
  • 400 Bad Request: 無効な storeId 形式の場合

    {
      "error": "Invalid store ID format"
    }
    

店舗の作成 (`/

リクエスト

curl -X 'POST' \
  'https://api.receiptroller.com/{organizationId}/store/create' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer {YOUR TOKEN}' \
  -H 'Content-Type: application/json' \
  -d '{
    "storeCode": "001",
    "storeName": "新しい店舗名",
    "storePrintName": "新しい店舗名",
    "storeAddress": "東京都渋谷区道玄坂1-2-3",
    "storePrintAddress": "渋谷区道玄坂1-2-3",
    "storeRegisgrationName": "渋谷ストア有限会社",
    "storeRegisgrationCode": "RG12345678",
    "storeTel": "03-1234-5678",
    "storeMemo": "店舗メモ内容"
}'

リクエストボディ

  • storeCode: 店舗コード
  • storeName: 店舗名
  • storePrintName: 印刷用店舗名
  • storeAddress: 店舗住所
  • storePrintAddress: 印刷用店舗住所
  • storeRegisgrationName: 店舗登録名
  • storeRegisgrationCode: 店舗登録コード
  • storeTel: 店舗電話番号
  • storeMemo: 店舗メモ

レスポンス

{
  "id": "新しい店舗ID",
  "organizationId": "1234-organization-5678",
  "storeCode": "001",
  "storeName": "新しい店舗名",
  "storePrintName": "新しい店舗名",
  "storeAddress": "東京都渋谷区道玄坂1-2-3",
  "storePrintAddress": "渋谷区道玄坂1-2-3",
  "storeRegistrationName": "渋谷ストア有限会社",
  "storeRegistrationCode": "RG12345678",
  "storeTel": "03-1234-5678",
  "storeMemo": "店舗メモ内容"
}

エラーレスポンス

  • 400 Bad Request: 不正なリクエスト

    {
      "error": "Invalid request format"
    }
    
  • 401 Unauthorized: 認証エラー

    {
      "error": "Invalid or missing token"
    }
    
  • 409 Conflict: 店舗コードが重複している場合

    {
      "error": "Store code already exists"
    }
    

店舗情報の更新 (`/

リクエスト

curl -X 'POST' \
  'https://api.receiptroller.com/{organizationId}/store/update' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer {YOUR TOKEN}' \
  -H 'Content-Type: application/json' \
  -d '{
    "storeCode": "001",
    "storeName": "更新された店舗名",
    "storePrintName": "更新された店舗名",
    "storeAddress": "東京都新宿区新宿1-2-3",
    "storePrintAddress": "新宿区新宿1-2-3",
    "storeRegisgrationName": "新宿ストア有限会社",
    "storeRegisgrationCode": "RG98765432",
    "storeTel": "03-5678-1234",
    "storeMemo": "更新された店舗メモ"
}'

リクエストボディ

  • storeCode: 店舗コード
  • storeName: 店舗名
  • storePrintName: 印刷用店舗名
  • storeAddress: 店舗住所
  • storePrintAddress: 印刷用店舗住所
  • storeRegisgrationName: 店舗登録名
  • storeRegisgrationCode: 店舗登録コード
  • storeTel: 店舗電話番号
  • storeMemo: 店舗メモ

注意: 各フィールドが null の場合は変更されませんが、空文字列が指定された場合、その値で上書きされます。

レスポンス

{
  "id": "9356c405-b51a-4c40-8a11-9898c6d4be66",
  "organizationId": "1234-organization-5678",
  "storeCode": "001",
  "storeName": "更新された店舗名",
  "storePrintName": "更新された店舗名",
  "storeAddress": "東京都新宿区新宿1-2-3",
  "storePrintAddress": "新宿区新宿1-2-3",
  "storeRegistrationName": "新宿ストア有限会社",
  "storeRegistrationCode": "RG98765432",
  "storeTel": "03-5678-1234",
  "storeMemo": "更新された店舗メモ"
}

エラーレスポンス

  • 400 Bad Request: 不正なリクエスト

    {
      "error": "Invalid request format"
    }
    
  • 401 Unauthorized: 認証エラー

    {
      "error": "Invalid or missing token"
    }
    
  • 404 Not Found: 店舗が見つからない場合

    {
      "error": "Store not found"
    }
    
更新日: 2024-09-26