---
title: 権限とエラー
description: 外部連携APIの権限（scope）の一覧と、エラーの形と意味をまとめています。
---

## 権限（scope）

トークンには、読み取りの権限（`inventory:read` か `purchase-boosts:read`）が少なくとも1つ必要です。どちらもないトークンは、どのエンドポイントでも拒否されます。

| scope                  | 呼べるエンドポイント                                           |
| ---------------------- | -------------------------------------------------------------- |
| `purchase-boosts:read` | `/purchase-boosts`                                             |
| `inventory:read`       | `/inventory/*`（読み取り）、`/cards`、`/webhook`               |
| `inventory:write`      | 確保と出庫（`/inventory/holds*`）。`inventory:read` も必要です |
| `inventory:move`       | 棚の移動、拠点間の移動、持ち出し。`inventory:read` も必要です  |
| どちらかの読み取り権限 | `/connection`                                                  |

権限は、店舗が連携先を登録するときに選びます。登録で許可されていない権限を認可のときに求めると、`invalid_scope` で拒否されます。

## エラーの形

エラーは `{ "error": "コード" }` の形で返ります。権限が足りないときは、足りない権限も添えます。

```json
{ "error": "insufficient_scope", "scope": "inventory:read" }
```

このときは `WWW-Authenticate` ヘッダーにも、足りない権限と保護リソースのメタデータのURLが入ります。

## 主なエラー

| ステータス | `error`              | 意味と対処                                                                                         |
| ---------- | -------------------- | -------------------------------------------------------------------------------------------------- |
| 400        | `invalid_request`    | パラメーターが正しくありません                                                                     |
| 401        | `invalid_token`      | トークンがない、期限切れ、または別のリソース向けです。更新してから再試行します                     |
| 403        | `insufficient_scope` | 必要な権限がトークンにありません。店舗に権限の追加を頼み、許可を取り直します                       |
| 403        | `connection_revoked` | 接続がない、または店舗が解除しました。`POST /connection` を呼ぶか、許可を取り直します              |
| 403        | `client_disabled`    | 店舗または運営がアプリを停止しています                                                             |
| 403        | `forbidden`          | 許可したメンバーが退会した、または必要な権限を失いました。別のメンバーに許可を取り直してもらいます |
| 404        | `not_found`          | 対象がないか、パスのIDの形が正しくありません                                                       |
| 503        | `photo_unavailable`  | 個体の写真をいま取得できません。時間をおいて再試行します                                           |
