仕組み
- サーバーが API Key 認証でこのエンドポイントを呼び出します
- 短命のセッショントークンを受け取ります
- トークンを消費者のブラウザに渡します
- 消費者はトークン(
Authorization: Bearer <token>)を使用して注文の作成やチェックアウトを行います
リクエストボディ
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
storeId | string | No | 対象ストア ID(Short ID フォーマット STO_xxx)。productId が指定されていない場合は必須です |
productId | string | No | 商品 ID(Short ID フォーマット PROD_xxx)。storeId なしで指定した場合、サーバーが商品からストアを自動推定します |
buyerIdentity | string | Yes | 注文帰属のための消費者識別子(例:メールアドレスまたは内部ユーザー ID)。セッション JWT にエンコードされます |
リクエスト例
成功レスポンス (200)
レスポンスフィールド
| フィールド | 型 | 説明 |
|---|---|---|
token | string | Session Token |
expiresAt | string | 有効期限(ISO 8601) |
エラー
リトライポリシー:4xx は一切リトライしない — リクエストを修正してから再送信。5xx は指数バックオフでリトライ(5s 開始、最大 3 回)。
| ステータス | errors[0].message | 意味 | 推奨処理 |
|---|---|---|---|
| 400 | Missing required field: buyerIdentity | buyerIdentity が欠落または空 | リクエストボディを修正してから再送信 |
| 400 | Missing required field: provide storeId or productId | storeId と productId のいずれも未指定 | いずれかを指定してから再送信 |
| 400 | Expected format: STO_xxx, got "..." | storeId Short ID のデコード失敗 | storeId のフォーマットを修正してから再送信 |
| 400 | Expected format: PROD_xxx, got "..." | productId Short ID のデコード失敗 | productId のフォーマットを修正してから再送信 |
| 400 | Store is not active | ストアは存在するが active 状態ではない | ストアを有効化してから再送信 |
| 401 | Missing merchantId in request context | API Key 認証で merchant が解決されなかった | API Key ヘッダーと署名を確認 |
| 403 | Access denied: you do not have permission to this store | マーチャントがストアを所有していない | ストアの所有権を確認 |
| 404 | Store not found | ストアが存在しないか削除済み | store ID を確認 |
| 404 | Product not found | 商品が存在しない | product ID を確認 |
| 500 | Internal server error | サーバ側の予期しない障害 | 指数バックオフでリトライ(5s 開始、最大 3 回) |