メインコンテンツまでスキップ

認証とスコープ

atouch API は OAuth 2.1(client_credentials) を採用しています。アクセストークンは JWT(RS256) で、Authorization: Bearer <token> で送ります。

トークンエンドポイント

POST /v1/oauth/tokenapplication/x-www-form-urlencoded

パラメータ必須説明
grant_typeclient_credentials(他に authorization_code / refresh_token
client_idクライアント ID
client_secretクライアント秘密(confidential)
scope要求スコープ(省略時はクライアント既定)

スコープ一覧(リソース × 操作)

行=リソース、列=操作。セルが必要なスコープです( は現時点で未提供)。PII 列は付与審査の厳しさ(tier)の目安。

リソース参照(Read)書き込み(Write)PII・tier
商品 / カテゴリread_itemswrite_items(登録・編集・画像)なし
在庫read_itemswrite_items(絶対値 SET/増減)・write_reservations(予約→確定/解放)なし
配送会社read_itemsなし
自ショップ(/meread_users
注文read_orderswrite_shipping(出荷状況遷移・送り状の登録/訂正)なし
 └ 買い手 PIIread_orders_pii高(要審査)
顧客read_customers
 └ 顧客 PIIread_customers_pii最高(要審査)

書き込みスコープ(write_*)は 3 分類: write_reservations(在庫予約)・write_shipping(出荷状況)・write_items(商品・カテゴリー・画像・在庫)。参照スコープは 6 分類(うち *_pii の 2 つは高信頼クライアント限定)。

書き込みスコープの注意

  • 書き込み系エンドポイント(write_*)は Idempotency-Key ヘッダーが必須です。同一キーの再送は最初の結果をそのまま再生します(Idempotent-Replay: true ヘッダー付き)。
  • 同一キーで異なるボディを送ると 422 になります。リトライは必ず同一リクエストで行ってください。

最小権限(重要)

  • クライアントには必要なスコープだけが許可されます。許可外のスコープを要求すると 400 invalid_scope(トークンが発行されません)。
  • PII スコープ(*_pii)は高信頼クライアントにのみ付与されます。

PII の redaction

PII スコープを持たないトークンでは、購入者・お届け先・顧客プロフィールの各フィールドはレスポンスに現れません(キーごと省略)。

// read_orders のみ(purchaser 無し)
{ "data": { "id": "3823", "status": "shipped", "total": {"amount":10000,"currency":"JPY"} } }

// read_orders + read_orders_pii(purchaser あり)
{ "data": { "id": "3823", "purchaser": { "last_name": "…", "tel": "…" } } }

決済のカード番号・決済代行トークンはいかなるスコープでも返しません

トークンの失効

POST /v1/oauth/revoke(RFC 7009)で refresh token を失効できます。