全サービス共通
認証・アクセスAPI
OAuth 2.0 認可コードフロー(PKCE対応)に基づく認証基盤です。ビジネス向けアプリ(store.* スコープ)はビジネスオーナーが同意画面でアクセスを許可します。コンシューマー向けアプリ(user.* スコープ)はエンドユーザーが自身のデータへのアクセスを許可します。user.* スコープを利用するアプリは、事前にシステム管理者の承認が必要です。
oauth / api/v1/auth
APIリファレンスで確認
エンドポイント一覧
| メソッド | パス | 説明 | レスポンス |
|---|---|---|---|
| GET |
/oauth/authorize
|
認可画面にリダイレクト
ユーザーのブラウザをこのURLにリダイレクトします。同意画面が表示され、許可するとredirect_uriに認可コードが返されます。パラメータ: client_id, redirect_uri, response_type=code, scope, state, code_challenge(任意), code_challenge_method(任意)。ビジネススコープの場合はorg_idも指定可能。
|
302 400 |
| POST |
/api/v1/auth/token
|
アクセストークンを発行
認可コード(grant_type=authorization_code)を使ってアクセストークンを取得します。PKCE利用時はcode_verifierを送信してください。
|
200 401 |
| POST |
/api/v1/auth/verify
|
トークンを検証
アクセストークンの有効性を確認し、関連するスコープ・有効期限・対象ビジネスアカウントまたはユーザーIDを返します。
|
200 401 |
| POST |
/api/v1/auth/refresh
|
トークンをリフレッシュ
リフレッシュトークンを使って新しいアクセストークン+リフレッシュトークンのペアを発行します。古いトークンは無効化されます。
|
200 401 |
| POST |
/api/v1/auth/revoke
|
トークンを取り消し
アクセストークンまたはリフレッシュトークンを無効化します。ログアウト時に使用します。
|
200 400 |
エンドポイント詳細
ユーザーのブラウザをこのURLにリダイレクトします。同意画面が表示され、許可するとredirect_uriに認可コードが返されます。パラメータ: client_id, redirect_uri, response_type=code, scope, state, code_challenge(任意), code_challenge_method(任意)。ビジネススコープの場合はorg_idも指定可能。
完全パス:
GET /oauth/authorize
レスポンスコード:
302
400
認可コード(grant_type=authorization_code)を使ってアクセストークンを取得します。PKCE利用時はcode_verifierを送信してください。
完全パス:
POST /api/v1/auth/token
レスポンスコード:
200
401
アクセストークンの有効性を確認し、関連するスコープ・有効期限・対象ビジネスアカウントまたはユーザーIDを返します。
完全パス:
POST /api/v1/auth/verify
レスポンスコード:
200
401
リフレッシュトークンを使って新しいアクセストークン+リフレッシュトークンのペアを発行します。古いトークンは無効化されます。
完全パス:
POST /api/v1/auth/refresh
レスポンスコード:
200
401
アクセストークンまたはリフレッシュトークンを無効化します。ログアウト時に使用します。
完全パス:
POST /api/v1/auth/revoke
レスポンスコード:
200
400
リクエスト例
リクエスト
POST /api/v1/auth/token
Content-Type: application/json
{
"grantType": "authorization_code",
"clientId": "app_aBcDeFgH1234",
"clientSecret": "your-secret",
"code": "AUTH_CODE",
"redirectUri": "receiptroller-app://oauth-callback",
"codeVerifier": "your-pkce-verifier"
}
レスポンス
{
"accessToken": "aBcDeFgH1234567890...",
"refreshToken": "xYzAbCdEfG098765...",
"tokenType": "Bearer",
"expiresIn": 3600,
"scope": "user.profile.read user.receipts.read user.spending.read"
}