{
"resultCode": "A001215",
"resultMessage": "[A001215] /auth/authorization, The client (ID = 26837717140341) is locked."
}
{
"resultCode": "A001311",
"resultMessage": "[A001311] /auth/authorization, Too many requests, retry after 1 seconds. (Entity: 23769878923/87122303)"
}
{
"resultCode": "A001101",
"resultMessage": "[A001101] /auth/authorization, Authlete Server error."
}
CIBA
Complete Backchannel Authentication
This API returns information about what action the authorization server should take after it receives the result of end-user’s decision about whether the end-user has approved or rejected a client application’s request on the authentication device.
POST
/
api
/
{serviceId}
/
backchannel
/
authentication
/
complete
Typescript (SDK)
import { Authlete } from "@authlete/typescript-sdk";const authlete = new Authlete({ serviceId: "<id>", bearer: process.env["AUTHLETE_BEARER"] ?? "",});async function run() { const result = await authlete.ciba.complete({ backchannelAuthenticationCompleteRequest: { ticket: "NFIHGx_btVrWmtAD093D-87JxvT4DAtuijEkLVHbS4Q", result: "AUTHORIZED", subject: "john", }, }); console.log(result);}run();
require 'authlete_ruby_sdk'
Models = ::Authlete::Models
s = ::Authlete::Client.new(
service_id: '<id>',
bearer: '<YOUR_BEARER_TOKEN_HERE>'
)
res = s.ciba.complete_request(backchannel_authentication_complete_request: Models::Components::BackchannelAuthenticationCompleteRequest.new(
ticket: 'NFIHGx_btVrWmtAD093D-87JxvT4DAtuijEkLVHbS4Q',
result: Models::Components::BackchannelAuthenticationCompleteRequestResult::AUTHORIZED,
subject: 'john'
))
unless res.backchannel_authentication_complete_response.nil?
# handle response
end
{
"resultCode": "A001215",
"resultMessage": "[A001215] /auth/authorization, The client (ID = 26837717140341) is locked."
}
{
"resultCode": "A001311",
"resultMessage": "[A001311] /auth/authorization, Too many requests, retry after 1 seconds. (Entity: 23769878923/87122303)"
}
{
"resultCode": "A001101",
"resultMessage": "[A001101] /auth/authorization, Authlete Server error."
}
Full description
After the implementation of the backchannel authentication endpoint returns JSON containing an auth_req_id to the client, the authorization server starts a background process that communicates with the authentication device of the end-user. On the authentication device, end-user authentication is performed and the end-user is asked whether they give authorization to the client or not. The authorization server will receive the result of end-user authentication and authorization from the authentication device. After the authorization server receives the result from the authentication device, or even in the case where the server gave up receiving a response from the authentication device for some reasons, the server should call the /backchannel/authentication/complete API to tell Authlete the result. When the end-user was authenticated and authorization was granted to the client by the end-user, the authorization server should call the API with result=AUTHORIZED. In this successful case, the subject request parameter is mandatory. If the token delivery mode is push, the API will generate an access token, an ID token and optionally a refresh token. On the other hand, if the token delivery mode is poll or ping, the API will just update the database record so that /auth/token API can generate tokens later. When the authorization server received the decision of the end-user from the authentication device and it indicates that the end-user has rejected to give authorization to the client, the authorization server should call the API with result=ACCESS_DENIED. In this case, if the token delivery mode is push, the API will generate an error response that contains the error response parameter and optionally the error_description and error_uri response parameters (if the errorDescription and errorUri request parameters have been given). On the other hand, if the token delivery mode is poll or ping, the API will just update the database record so that /auth/token API can generate an error response later. In any token delivery mode, the value of the error parameter will become access_denied. When the authorization server could not get the result of end-user authentication and authorization from the authentication device for some reasons, the authorization server should call the API with result=TRANSACTION_FAILED. In this error case, the API will behave in the same way as in the case of ACCESS_DENIED. The only difference is that expired_token is used as the value of the error parameter. The response from /backchannel/authentication/complete API has various parameters. Among them, it is action parameter that the authorization server implementation should check first because it denotes the next action that the authorization server implementation should take. According to the value of action, the service implementation must take the steps described below.
When the value of action is SERVER_ERROR, it means either (1) that the request from the authorization server to Authlete was wrong, or (2) that an error occurred on Authlete side. When the backchannel token delivery mode is ping or push, SERVER_ERROR is used only when an error is detected before the record of the ticket (which is included in the API call to /backchannel/authentication/complete) is retrieved from the database successfully. If an error is detected after the record of the ticket is retrieved from the database, NOTIFICATION is used instead of SERVER_ERROR. When the backchannel token delivery mode is poll, SERVER_ERROR is used regardless of whether it is before or after the record of the ticket is retrieved from the database.
When the value of action is NO_ACTION, it means that the authorization server does not have to take any immediate action. NO_ACTION is returned when the backchannel token delivery mode is poll. In this case, the client will receive the final result at the token endpoint.
When the value of action is NOTIFICATION, it means that the authorization server must send a notification to the client notification endpoint. According to the CIBA Core specification, the notification is an HTTP POST request whose request body is JSON and whose Authorization header contains the client notification token, which was included in the backchannel authentication request as the value of the client_notification_token request parameter, as a bearer token. When the backchannel token delivery mode is ping, the request body of the notification is JSON which contains the auth_req_id property only. When the backchannel token delivery mode is push, the request body will additionally contain an access token, an ID token and other properties. Note that when the backchannel token delivery mode is poll, a notification does not have to be sent to the client notification endpoint. In error cases, in the ping mode, however, the content of a notification is not different from the content in successful cases. That is, the notification contains the auth_req_id property only. The client will know the error when it accesses the token endpoint. On the other hand, in the push mode, in error cases, the content of a notification will include the error property instead of an access token and an ID token. The client will know the error by detecting that error is included in the notification. In any case, the value of responseContent is JSON which can be used as the request body of the notification. The client notification endpoint that the notification should be sent to the value of the clientNotificationEndpoint parameter. Likewise, the client notification token that the notification should include as a bearer token is the clientNotificationToken parameter. With these methods, the notification can be built like the following.
POST {clientNotificationEndpoint} HTTP/1.1HOST: {The host of clientNotificationEndpoint}Authorization: Bearer {notificationToken}Content-Type: application/json{responseContent}
Authenticate every request with a Service Access Token or Organization Token. Set the token value in the Authorization: Bearer <token> header.
Service Access Token: Scoped to a single service. Use when automating service-level configuration or runtime flows.
Organization Token: Scoped to the organization; inherits permissions across services. Use for org-wide automation or when managing multiple services programmatically.
Both token types are issued by the Authlete console or provisioning APIs.
Scopes to replace the scopes specified in the original backchannel authentication request with. When nothing is specified for this parameter, replacement is not performed.
The description of the error. If this optional request parameter is given, its value is used as the value of the error_description property, but it is used only when the result is not AUTHORIZED. To comply with the specification strictly, the description must not include characters outside the set %x20-21 / %x23-5B / %x5D-7E.
The duration (in seconds) of the access token that may be issued as a result of the Authlete API call.
When this request parameter holds a positive integer, it is used as the duration of the access token in. In other cases, this request parameter is ignored.
The duration (in seconds) of the refresh token that may be issued as a result of the Authlete API call.
When this request parameter holds a positive integer, it is used as the duration of the refresh token in. In other cases, this request parameter is ignored.
The content that the authorization server implementation is to return to the client application. Its format varies depending on the value of action parameter.
true if the value of the client_id request parameter included in the backchannel authentication request is the client ID alias. false if the value is the original numeric client ID.
The client notification endpoint to which a notification needs to be sent. This corresponds to the client_notification_endpoint metadata of the client application.
The client notification token which needs to be embedded as a Bearer token in the Authorization header in the notification. This is the value of the client_notification_token request parameter included in the backchannel authentication request.
The resources specified by the resource request parameters or by the resource property in the request object. If both are given, the values in the request object should be set. See "Resource Indicators for OAuth 2.0" for details.
The authorization details. This represents the value of the authorization_details request parameter in the preceding device authorization request which is defined in "OAuth 2.0 Rich Authorization Requests".
the claims that the user has consented for the client application to know.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Authlete Documentation","colors":{"primary":"#0057B7","light":"#4D8FEA","dark":"#0057B7"},"logo":{"light":"https://mintcdn.com/authlete/EJDZNZMvOu_9CJHJ/authlete-blue-horizontal-logo.svg?fit=max\u0026auto=format\u0026n=EJDZNZMvOu_9CJHJ\u0026q=85\u0026s=ed123a3de8b7791dffde03e7705c7460","dark":"https://mintcdn.com/authlete/EJDZNZMvOu_9CJHJ/authlete-blue-horizontal-logo.svg?fit=max\u0026auto=format\u0026n=EJDZNZMvOu_9CJHJ\u0026q=85\u0026s=ed123a3de8b7791dffde03e7705c7460"},"favicon":{"light":"https://mintcdn.com/authlete/gV1fxQkuH3uz_H3j/images/favicon-32x32.png?fit=max\u0026auto=format\u0026n=gV1fxQkuH3uz_H3j\u0026q=85\u0026s=9838a40b23e11ab35d7737e4c94a2d9a","dark":"https://mintcdn.com/authlete/gV1fxQkuH3uz_H3j/images/favicon-32x32.png?fit=max\u0026auto=format\u0026n=gV1fxQkuH3uz_H3j\u0026q=85\u0026s=9838a40b23e11ab35d7737e4c94a2d9a"},"api":{"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples","playground":{"display":"interactive","proxy":true},"examples":{"languages":["typescript","ruby","go","shell"],"autogenerate":true},"mdx":{"auth":{"method":"bearer"},"server":"https://us.authlete.com"}},"navbar":{"primary":{"type":"button","label":"Get Started","href":"https://console.authlete.com/"}},"footer":{"socials":{"x":"https://x.com/authlete","github":"https://github.com/authlete","linkedin":"https://linkedin.com/company/authlete"}},"contextual":{"options":["copy","view","chatgpt","claude","mcp","cursor"],"display":"header"},"thumbnails":{"fonts":{"family":"Noto Sans JP"}},"markdown":{"instructions":["### Authlete versions","Authlete 3.0 is the current version. Unless the user says they use another version, answer for Authlete 3.0 using the 3.x documentation.","Documentation for Authlete 2.x (pages under `/v2/` and `/ja/v2/`) is for the legacy version. Refer to it only when the user is on Authlete 2.x.","","### Authlete architecture","Authlete is a backend engine for OAuth 2.0 and OpenID Connect processing. End users and client applications do not call it directly; the service provider's authorization server and API server call Authlete's APIs. Authlete handles protocol processing and token, client, and service management, while the service provider owns the OAuth/OIDC endpoints and user authentication.","See [Architecture](https://developers.authlete.com/get-started/introduction-to-authlete/architecture.md).","","### Concepts","If the user is new to Authlete, read these pages first:","- [Request and Response](https://developers.authlete.com/get-started/concepts/request-and-response.md): Core API requests pass the client's request parameters as-is, and responses return `resultCode`, `action`, and `responseContent`.","- [Action Handling](https://developers.authlete.com/get-started/concepts/action-handling.md): Branch on `action`, never on `resultCode`, and map each action to the HTTP response your server returns.","- [Two-Step API Calls](https://developers.authlete.com/get-started/concepts/two-step-api-calls.md): Actions such as `INTERACTION` are completed with a second call (`/auth/authorization/issue` or `/auth/authorization/fail`) linked by a `ticket`.","- [Management API Overview](https://developers.authlete.com/get-started/concepts/overview.md): The Management API configures services, manages clients, and operates issued tokens, separately from the protocol flows handled by the Core API.","- [API Authentication](https://developers.authlete.com/get-started/concepts/authentication.md): Authlete APIs use bearer tokens: a Service Access Token (one service) or an Organization Token (the whole organization)."]},"styling":{"latex":false},"navigation":{"languages":[{"language":"en","default":true,"href":"get-started/introduction-to-authlete"},{"language":"ja","href":"ja/get-started/introduction-to-authlete"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"authlete","hasAudioNarration":false,"actualSubdomain":"authlete","customDomains":["developers.authlete.com"],"gitSource":{"type":"github","owner":"authlete","repo":"developer-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ad86bfbbcc1b0bac5b9a633","collectionId":"102eb795-336b-4b91-aae6-f3939575b917","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ad86bfbbcc1b0bac5b9a633"},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ad86bfbbcc1b0bac5b9a633","clientVersion":"0.0.3965","searchFilterCounts":[{"language":"en","tag":"Release Notes","count":103},{"language":"ja","tag":"リリースノート","count":103},{"language":"ja","tag":"設定リファレンス","count":92},{"language":"default","tag":"API Reference","count":87},{"language":"default","tag":"Authlete","count":87},{"language":"en","tag":"Configuration Reference","count":83},{"language":"en","tag":"Protocols \u0026 Flows","count":46},{"language":"en","tag":"Deployment \u0026 Operations","count":44},{"language":"ja","tag":"プロトコル \u0026 フロー","count":42},{"language":"ja","tag":"デプロイと運用","count":39},{"language":"ja","tag":"トークン \u0026 クレーム","count":38},{"language":"ja","tag":"はじめに","count":34},{"language":"ja","tag":"エンドポイント","count":33},{"language":"en","tag":"Get Started","count":32},{"language":"en","tag":"Tokens and Claims","count":28},{"language":"default","tag":"Client Management","count":26},{"language":"en","tag":"Endpoints","count":25},{"language":"en","tag":"Server Releases (v2.2)","count":23},{"language":"en","tag":"Server Releases (v2.3)","count":23},{"language":"ja","tag":"サーバーリリース (v2.2)","count":23},{"language":"ja","tag":"サーバーリリース (v2.3)","count":23},{"language":"en","tag":"Server Releases (v3.0)","count":20},{"language":"ja","tag":"サーバーリリース (v3.0)","count":20},{"language":"default","tag":"Verifiable Credential Issuer","count":11},{"language":"default","tag":"Service Management","count":6},{"language":"default","tag":"Authorization Endpoint","count":5},{"language":"default","tag":"Token Operations","count":5},{"language":"default","tag":"CIBA","count":4},{"language":"default","tag":"Dynamic Client Registration","count":4},{"language":"default","tag":"Hardware Security Key","count":4}],"searchSettings":{"maxResults":7}},"assistantConfig":{},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"privacy":{"consentBanner":{"enabled":true}},"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"#content-area,#navbar,#sidebar,[data-sidebar],body{background-image:none!important}.dynamic-curl-wrapper{width:100%;max-width:100%;min-width:0}.dynamic-curl-output{width:100%!important;max-width:100%!important;min-width:0!important}table[style*=tableLayout] td:last-child{overflow:hidden;min-width:0}table[style*=tableLayout] input{min-width:0}"}],"page":{"pagePath":"api-reference/ciba/complete-backchannel-authentication","slug":"/api-reference/ciba/complete-backchannel-authentication","pageMetadata":{"title":"Complete Backchannel Authentication","description":"This API returns information about what action the authorization server should take after it receives the result of end-user's decision about whether the end-user has approved or rejected a client application's request on the authentication device.","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/backchannel/authentication/complete","href":"/api-reference/ciba/complete-backchannel-authentication","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"This API returns information about what action the authorization server should take after it receives the result of end-user’s decision about whether the end-user has approved or rejected a client application’s request on the authentication device.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,p:`p`,pre:`pre`,span:`span`,..._provideComponents(),...props.components},{Accordion,CodeBlock,Heading}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);return _jsxs(Accordion,{title:`Full description`,defaultOpen:false,id:`full-description`,children:[_jsxs(_components.p,{children:[`After the implementation of the backchannel authentication endpoint returns JSON containing an `,_jsx(_components.code,{children:`auth_req_id`}),` to the client, the authorization server starts a background process that communicates with the authentication device of the end-user. On the authentication device, end-user authentication is performed and the end-user is asked whether they give authorization to the client or not. The authorization server will receive the result of end-user authentication and authorization from the authentication device. After the authorization server receives the result from the authentication device, or even in the case where the server gave up receiving a response from the authentication device for some reasons, the server should call the `,_jsx(_components.code,{children:`/backchannel/authentication/complete`}),` API to tell Authlete the result. When the end-user was authenticated and authorization was granted to the client by the end-user, the authorization server should call the API with `,_jsx(_components.code,{children:`result=AUTHORIZED`}),`. In this successful case, the `,_jsx(_components.code,{children:`subject`}),` request parameter is mandatory. If the token delivery mode is `,_jsx(_components.code,{children:`push`}),`, the API will generate an access token, an ID token and optionally a refresh token. On the other hand, if the token delivery mode is `,_jsx(_components.code,{children:`poll`}),` or `,_jsx(_components.code,{children:`ping`}),`, the API will just update the database record so that `,_jsx(_components.code,{children:`/auth/token`}),` API can generate tokens later. When the authorization server received the decision of the end-user from the authentication device and it indicates that the end-user has rejected to give authorization to the client, the authorization server should call the API with `,_jsx(_components.code,{children:`result=ACCESS_DENIED`}),`. In this case, if the token delivery mode is `,_jsx(_components.code,{children:`push`}),`, the API will generate an error response that contains the error response parameter and optionally the `,_jsx(_components.code,{children:`error_description`}),` and error_uri response parameters (if the `,_jsx(_components.code,{children:`errorDescription`}),` and `,_jsx(_components.code,{children:`errorUri`}),` request parameters have been given). On the other hand, if the token delivery mode is `,_jsx(_components.code,{children:`poll`}),` or `,_jsx(_components.code,{children:`ping`}),`, the API will just update the database record so that `,_jsx(_components.code,{children:`/auth/token`}),` API can generate an error response later. In any token delivery mode, the value of the error parameter will become `,_jsx(_components.code,{children:`access_denied`}),`. When the authorization server could not get the result of end-user authentication and authorization from the authentication device for some reasons, the authorization server should call the API with `,_jsx(_components.code,{children:`result=TRANSACTION_FAILED`}),`. In this error case, the API will behave in the same way as in the case of `,_jsx(_components.code,{children:`ACCESS_DENIED`}),`. The only difference is that `,_jsx(_components.code,{children:`expired_token`}),` is used as the value of the `,_jsx(_components.code,{children:`error`}),` parameter. The response from `,_jsx(_components.code,{children:`/backchannel/authentication/complete`}),` API has various parameters. Among them, it is `,_jsx(_components.code,{children:`action`}),` parameter that the authorization server implementation should check first because it denotes the next action that the authorization server implementation should take. According to the value of `,_jsx(_components.code,{children:`action`}),`, the service implementation must take the steps described below.`]}),_jsx(Heading,{level:`2`,id:`server_error`,children:`SERVER_ERROR`}),_jsxs(_components.p,{children:[`When the value of `,_jsx(_components.code,{children:`action`}),` is `,_jsx(_components.code,{children:`SERVER_ERROR`}),`, it means either (1) that the request from the authorization server to Authlete was wrong, or (2) that an error occurred on Authlete side. When the backchannel token delivery mode is `,_jsx(_components.code,{children:`ping`}),` or `,_jsx(_components.code,{children:`push`}),`, `,_jsx(_components.code,{children:`SERVER_ERROR`}),` is used only when an error is detected before the record of the ticket (which is included in the API call to `,_jsx(_components.code,{children:`/backchannel/authentication/complete`}),`) is retrieved from the database successfully. If an error is detected after the record of the ticket is retrieved from the database, `,_jsx(_components.code,{children:`NOTIFICATION`}),` is used instead of `,_jsx(_components.code,{children:`SERVER_ERROR`}),`. When the backchannel token delivery mode is `,_jsx(_components.code,{children:`poll`}),`, `,_jsx(_components.code,{children:`SERVER_ERROR`}),` is used regardless of whether it is before or after the record of the ticket is retrieved from the database.`]}),_jsx(Heading,{level:`2`,id:`no_action`,children:`NO_ACTION`}),_jsxs(_components.p,{children:[`When the value of `,_jsx(_components.code,{children:`action`}),` is `,_jsx(_components.code,{children:`NO_ACTION`}),`, it means that the authorization server does not have to take any immediate action. `,_jsx(_components.code,{children:`NO_ACTION`}),` is returned when the backchannel token delivery mode is `,_jsx(_components.code,{children:`poll`}),`. In this case, the client will receive the final result at the token endpoint.`]}),_jsx(Heading,{level:`2`,id:`notification`,children:`NOTIFICATION`}),_jsxs(_components.p,{children:[`When the value of `,_jsx(_components.code,{children:`action`}),` is `,_jsx(_components.code,{children:`NOTIFICATION`}),`, it means that the authorization server must send a notification to the client notification endpoint. According to the CIBA Core specification, the notification is an HTTP POST request whose request body is JSON and whose `,_jsx(_components.code,{children:`Authorization`}),` header contains the client notification token, which was included in the backchannel authentication request as the value of the `,_jsx(_components.code,{children:`client_notification_token`}),` request parameter, as a bearer token. When the backchannel token delivery mode is `,_jsx(_components.code,{children:`ping`}),`, the request body of the notification is JSON which contains the `,_jsx(_components.code,{children:`auth_req_id`}),` property only. When the backchannel token delivery mode is `,_jsx(_components.code,{children:`push`}),`, the request body will additionally contain an access token, an ID token and other properties. Note that when the backchannel token delivery mode is `,_jsx(_components.code,{children:`poll`}),`, a notification does not have to be sent to the client notification endpoint. In error cases, in the ping mode, however, the content of a notification is not different from the content in successful cases. That is, the notification contains the `,_jsx(_components.code,{children:`auth_req_id`}),` property only. The client will know the error when it accesses the token endpoint. On the other hand, in the `,_jsx(_components.code,{children:`push`}),` mode, in error cases, the content of a notification will include the `,_jsx(_components.code,{children:`error`}),` property instead of an access token and an ID token. The client will know the error by detecting that error is included in the notification. In any case, the value of `,_jsx(_components.code,{children:`responseContent`}),` is JSON which can be used as the request body of the notification. The client notification endpoint that the notification should be sent to the value of the `,_jsx(_components.code,{children:`clientNotificationEndpoint`}),` parameter. Likewise, the client notification token that the notification should include as a bearer token is the `,_jsx(_components.code,{children:`clientNotificationToken`}),` parameter. With these methods, the notification can be built like the following.`]}),_jsx(CodeBlock,{numberOfLines:`6`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`POST \u0026#123;clientNotificationEndpoint\u0026#125; HTTP/1.1`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`HOST: \u0026#123;The host of clientNotificationEndpoint\u0026#125;`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Authorization: Bearer \u0026#123;notificationToken\u0026#125;`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Content-Type: application/json`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\u0026#123;responseContent\u0026#125;`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Complete Backchannel Authentication","description":"This API returns information about what action the authorization server should take after it receives the result of end-user's decision about whether the end-user has approved or rejected a client application's request on the authentication device.","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/backchannel/authentication/complete","href":"/api-reference/ciba/complete-backchannel-authentication","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/authlete/a07b398e9c8556ba/snippets/oauth-dynamic.js"],"openApiReferenceData":{"operation":{"summary":"Complete Backchannel Authentication","description":"This API returns information about what action the authorization server should take after it receives the result of end-user's decision about whether the end-user has approved or rejected a client application's request on the authentication device.","x-mint":{"metadata":{"description":"This API returns information about what action the authorization server should take after it receives the result of end-user's decision about whether the end-user has approved or rejected a client application's request on the authentication device."},"content":"\u003cAccordion title=\"Full description\" defaultOpen={false}>\nAfter the implementation of the backchannel authentication endpoint returns JSON containing an `auth_req_id` to the client, the authorization server starts a background process that communicates with the authentication device of the end-user. On the authentication device, end-user authentication is performed and the end-user is asked whether they give authorization to the client or not. The authorization server will receive the result of end-user authentication and authorization from the authentication device. After the authorization server receives the result from the authentication device, or even in the case where the server gave up receiving a response from the authentication device for some reasons, the server should call the `/backchannel/authentication/complete` API to tell Authlete the result. When the end-user was authenticated and authorization was granted to the client by the end-user, the authorization server should call the API with `result=AUTHORIZED`. In this successful case, the `subject` request parameter is mandatory. If the token delivery mode is `push`, the API will generate an access token, an ID token and optionally a refresh token. On the other hand, if the token delivery mode is `poll` or `ping`, the API will just update the database record so that `/auth/token` API can generate tokens later. When the authorization server received the decision of the end-user from the authentication device and it indicates that the end-user has rejected to give authorization to the client, the authorization server should call the API with `result=ACCESS_DENIED`. In this case, if the token delivery mode is `push`, the API will generate an error response that contains the error response parameter and optionally the `error_description` and error_uri response parameters (if the `errorDescription` and `errorUri` request parameters have been given). On the other hand, if the token delivery mode is `poll` or `ping`, the API will just update the database record so that `/auth/token` API can generate an error response later. In any token delivery mode, the value of the error parameter will become `access_denied`. When the authorization server could not get the result of end-user authentication and authorization from the authentication device for some reasons, the authorization server should call the API with `result=TRANSACTION_FAILED`. In this error case, the API will behave in the same way as in the case of `ACCESS_DENIED`. The only difference is that `expired_token` is used as the value of the `error` parameter. The response from `/backchannel/authentication/complete` API has various parameters. Among them, it is `action` parameter that the authorization server implementation should check first because it denotes the next action that the authorization server implementation should take. According to the value of `action`, the service implementation must take the steps described below.\n\n## SERVER_ERROR\n\nWhen the value of `action` is `SERVER_ERROR`, it means either (1) that the request from the authorization server to Authlete was wrong, or (2) that an error occurred on Authlete side. When the backchannel token delivery mode is `ping` or `push`, `SERVER_ERROR` is used only when an error is detected before the record of the ticket (which is included in the API call to `/backchannel/authentication/complete`) is retrieved from the database successfully. If an error is detected after the record of the ticket is retrieved from the database, `NOTIFICATION` is used instead of `SERVER_ERROR`. When the backchannel token delivery mode is `poll`, `SERVER_ERROR` is used regardless of whether it is before or after the record of the ticket is retrieved from the database.\n\n## NO_ACTION\n\nWhen the value of `action` is `NO_ACTION`, it means that the authorization server does not have to take any immediate action. `NO_ACTION` is returned when the backchannel token delivery mode is `poll`. In this case, the client will receive the final result at the token endpoint.\n\n## NOTIFICATION\n\nWhen the value of `action` is `NOTIFICATION`, it means that the authorization server must send a notification to the client notification endpoint. According to the CIBA Core specification, the notification is an HTTP POST request whose request body is JSON and whose `Authorization` header contains the client notification token, which was included in the backchannel authentication request as the value of the `client_notification_token` request parameter, as a bearer token. When the backchannel token delivery mode is `ping`, the request body of the notification is JSON which contains the `auth_req_id` property only. When the backchannel token delivery mode is `push`, the request body will additionally contain an access token, an ID token and other properties. Note that when the backchannel token delivery mode is `poll`, a notification does not have to be sent to the client notification endpoint. In error cases, in the ping mode, however, the content of a notification is not different from the content in successful cases. That is, the notification contains the `auth_req_id` property only. The client will know the error when it accesses the token endpoint. On the other hand, in the `push` mode, in error cases, the content of a notification will include the `error` property instead of an access token and an ID token. The client will know the error by detecting that error is included in the notification. In any case, the value of `responseContent` is JSON which can be used as the request body of the notification. The client notification endpoint that the notification should be sent to the value of the `clientNotificationEndpoint` parameter. Likewise, the client notification token that the notification should include as a bearer token is the `clientNotificationToken` parameter. With these methods, the notification can be built like the following.\n```\nPOST \u0026#123;clientNotificationEndpoint\u0026#125; HTTP/1.1\nHOST: \u0026#123;The host of clientNotificationEndpoint\u0026#125;\nAuthorization: Bearer \u0026#123;notificationToken\u0026#125;\nContent-Type: application/json\n\u0026#123;responseContent\u0026#125;\n```\n\u003c/Accordion>\n"},"parameters":["0681ea57-9324-4c09-b2e4-e2949f4e8174"],"requestBody":"d9a3b3d0-1e4c-47eb-933d-26fffb83c0ac","responses":{"200":"c6de1947-c2f0-4143-bfa0-9cb830b8381d","400":"9d342706-00b7-4aa0-b29a-331a0b9cb054","401":"2160cbaa-8998-4607-bad3-474680853f88","403":"90603251-c5ac-42ca-8c88-4ff4d21ce220","429":"0e8231af-21ea-4502-a883-769cbcf53405","500":"c1096729-d505-45b2-8caf-c77e31c9bbde"},"operationId":"backchannel_authentication_complete_api","x-code-samples":[{"lang":"shell","label":"curl","source":"curl -v -X POST https://us.authlete.com/api/21653835348762/backchannel/authentication/complete \\\n-H 'Content-Type: application/json' \\\n-H 'Authorization: Bearer V5a40R6dWvw2gMkCOBFdZcM95q4HC0Z-T0YKD9-nR6F' \\\n-d '{ \"ticket\": \"NFIHGx_btVrWmtAD093D-87JxvT4DAtuijEkLVHbS4Q\", \"result\": \"AUTHORIZED\", \"subject\": \"john\" }'\n"},{"lang":"java","label":"java","source":"AuthleteConfiguration conf = ...;\nAuthleteApi api = AuthleteApiFactory.create(conf);\n\nBackchannelAuthenticationCompleteRequest req = new BackchannelAuthenticationCompleteRequest();\nreq.setTicket(\"NFIHGx_btVrWmtAD093D-87JxvT4DAtuijEkLVHbS4Q\");\nreq.setResult(BackchannelAuthenticationCompleteRequest.Result.AUTHORIZED);\nreq.setSubject(\"john\");\n\napi.backchannelAuthenticationComplete(req);\n"},{"lang":"python","source":"conf = ...\napi = AuthleteApiImpl(conf)\n\nreq = BackchannelAuthenticationCompleteRequest()\nreq.ticket = 'NFIHGx_btVrWmtAD093D-87JxvT4DAtuijEkLVHbS4Q'\nreq.result = BackchannelAuthenticationCompleteResult.AUTHORIZED\nreq.subject = 'john'\n\napi.backchannelAuthenticationComplete(req)\n"}],"tags":["CIBA"],"x-speakeasy-group":"ciba","x-speakeasy-name-override":"complete","x-codeSamples":[{"lang":"typescript","label":"Typescript (SDK)","source":"import { Authlete } from \"@authlete/typescript-sdk\";\n\nconst authlete = new Authlete({\n serviceId: \"\u003cid>\",\n bearer: process.env[\"AUTHLETE_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await authlete.ciba.complete({\n backchannelAuthenticationCompleteRequest: {\n ticket: \"NFIHGx_btVrWmtAD093D-87JxvT4DAtuijEkLVHbS4Q\",\n result: \"AUTHORIZED\",\n subject: \"john\",\n },\n });\n\n console.log(result);\n}\n\nrun();"},{"lang":"ruby","label":"Ruby (SDK)","source":"require 'authlete_ruby_sdk'\n\nModels = ::Authlete::Models\ns = ::Authlete::Client.new(\n service_id: '\u003cid>',\n bearer: '\u003cYOUR_BEARER_TOKEN_HERE>'\n)\nres = s.ciba.complete_request(backchannel_authentication_complete_request: Models::Components::BackchannelAuthenticationCompleteRequest.new(\n ticket: 'NFIHGx_btVrWmtAD093D-87JxvT4DAtuijEkLVHbS4Q',\n result: Models::Components::BackchannelAuthenticationCompleteRequestResult::AUTHORIZED,\n subject: 'john'\n))\n\nunless res.backchannel_authentication_complete_response.nil?\n # handle response\nend"},{"lang":"go","label":"Go (SDK)","source":"package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tauthlete \"github.com/authlete/authlete-go-sdk\"\n\t\"github.com/authlete/authlete-go-sdk/models/components\"\n\t\"github.com/authlete/authlete-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := authlete.New(\n authlete.WithServiceID(\"\u003cid>\"),\n authlete.WithSecurity(os.Getenv(\"AUTHLETE_BEARER\")),\n )\n\n res, err := s.Ciba.Complete(ctx, operations.BackchannelAuthenticationCompleteAPIRequest{\n Body: components.BackchannelAuthenticationCompleteRequest{\n Ticket: \"NFIHGx_btVrWmtAD093D-87JxvT4DAtuijEkLVHbS4Q\",\n Result: components.BackchannelAuthenticationCompleteRequestResultAuthorized,\n Subject: \"john\",\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.BackchannelAuthenticationCompleteResponse != nil {\n // handle response\n }\n}"}],"method":"post","type":"path","servers":["86730d38-5978-49f4-83dc-79ee32a13d9f","6b1844ca-4ef4-4a3a-aa78-226ce86b6b87","428ca9ef-6a06-47df-8d21-45d932468e02","02c44588-9e42-4914-bdc7-134510ec7325"],"security":["462b635e-c1d5-42f6-b3a8-ef7d418285aa"],"path":"/api/{serviceId}/backchannel/authentication/complete","baseUrlOptions":["https://us.authlete.com","https://jp.authlete.com","https://eu.authlete.com","https://br.authlete.com"],"title":"Complete Backchannel Authentication","codeSamples":[{"label":"Typescript (SDK)","lang":"typescript","source":"import { Authlete } from \"@authlete/typescript-sdk\";\n\nconst authlete = new Authlete({\n serviceId: \"\u003cid>\",\n bearer: process.env[\"AUTHLETE_BEARER\"] ?? \"\",\n});\n\nasync function run() {\n const result = await authlete.ciba.complete({\n backchannelAuthenticationCompleteRequest: {\n ticket: \"NFIHGx_btVrWmtAD093D-87JxvT4DAtuijEkLVHbS4Q\",\n result: \"AUTHORIZED\",\n subject: \"john\",\n },\n });\n\n console.log(result);\n}\n\nrun();"},{"label":"Ruby (SDK)","lang":"ruby","source":"require 'authlete_ruby_sdk'\n\nModels = ::Authlete::Models\ns = ::Authlete::Client.new(\n service_id: '\u003cid>',\n bearer: '\u003cYOUR_BEARER_TOKEN_HERE>'\n)\nres = s.ciba.complete_request(backchannel_authentication_complete_request: Models::Components::BackchannelAuthenticationCompleteRequest.new(\n ticket: 'NFIHGx_btVrWmtAD093D-87JxvT4DAtuijEkLVHbS4Q',\n result: Models::Components::BackchannelAuthenticationCompleteRequestResult::AUTHORIZED,\n subject: 'john'\n))\n\nunless res.backchannel_authentication_complete_response.nil?\n # handle response\nend"},{"label":"Go (SDK)","lang":"go","source":"package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tauthlete \"github.com/authlete/authlete-go-sdk\"\n\t\"github.com/authlete/authlete-go-sdk/models/components\"\n\t\"github.com/authlete/authlete-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n ctx := context.Background()\n\n s := authlete.New(\n authlete.WithServiceID(\"\u003cid>\"),\n authlete.WithSecurity(os.Getenv(\"AUTHLETE_BEARER\")),\n )\n\n res, err := s.Ciba.Complete(ctx, operations.BackchannelAuthenticationCompleteAPIRequest{\n Body: components.BackchannelAuthenticationCompleteRequest{\n Ticket: \"NFIHGx_btVrWmtAD093D-87JxvT4DAtuijEkLVHbS4Q\",\n Result: components.BackchannelAuthenticationCompleteRequestResultAuthorized,\n Subject: \"john\",\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n if res.BackchannelAuthenticationCompleteResponse != nil {\n // handle response\n }\n}"}],"requestExampleLanguages":["typescript","ruby","go","bash"],"requiredOnlyExamples":false,"requestExampleType":"codeSamples","responseExampleType":"generated"},"dependencies":{"parameters":{"0681ea57-9324-4c09-b2e4-e2949f4e8174":{"in":"path","name":"serviceId","description":"A service ID.","schema":{"type":"string","isRequired":true,"description":"A service ID.","uniqueKey":"","typeLabel":"string"},"required":true}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["ticket","result","subject"],"properties":{"ticket":{"type":"string","description":"The ticket issued by Authlete's `/backchannel/authentication` API.\n","isRequired":true,"uniqueKey":"ticket","typeLabel":"string"},"result":{"type":"string","enum":["TRANSACTION_FAILED","ACCESS_DENIED","AUTHORIZED"],"description":"The result of the end-user authentication and authorization. One of the following. Details are described in the description.\n","isRequired":true,"uniqueKey":"result","typeLabel":"enum\u003cstring>"},"subject":{"type":"string","description":"The subject (= unique identifier) of the end-user.\n","isRequired":true,"uniqueKey":"subject","typeLabel":"string"},"sub":{"type":"string","description":"The value of the sub claim that should be used in the ID token.\n","uniqueKey":"sub","typeLabel":"string"},"authTime":{"type":"integer","format":"int64","description":"The time at which the end-user was authenticated. Its value is the number of seconds from `1970-01-01`.\n","uniqueKey":"authTime","typeLabel":"integer\u003cint64>"},"acr":{"type":"string","description":"The reference of the authentication context class which the end-user authentication satisfied.\n","uniqueKey":"acr","typeLabel":"string"},"claims":{"type":"string","description":"Additional claims which will be embedded in the ID token.\n","uniqueKey":"claims","typeLabel":"string"},"properties":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","description":"The key part.","uniqueKey":"properties.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","description":"The value part.","uniqueKey":"properties.items.[INDEX].value","typeLabel":"string"},"hidden":{"type":"boolean","description":"The flag to indicate whether this property hidden from or visible to client applications. If `true`, this property is hidden from client applications. Otherwise, this property is visible to client applications.\n","uniqueKey":"properties.items.[INDEX].hidden","typeLabel":"boolean"}},"uniqueKey":"properties.items.[INDEX]","typeLabel":"object"},"description":"The extra properties associated with the access token.\n","uniqueKey":"properties","typeLabel":"object[]"},"scopes":{"type":"array","items":{"type":"string","uniqueKey":"scopes.items.[INDEX]","typeLabel":"string"},"description":"Scopes to replace the scopes specified in the original backchannel authentication request with. When nothing is specified for this parameter, replacement is not performed.\n","uniqueKey":"scopes","typeLabel":"string[]"},"idtHeaderParams":{"type":"string","description":"JSON that represents additional JWS header parameters for ID tokens.\n","uniqueKey":"idtHeaderParams","typeLabel":"string"},"errorDescription":{"type":"string","description":"The description of the error. If this optional request parameter is given, its value is used as the value of the `error_description` property, but it is used only when the result is not `AUTHORIZED`. To comply with the specification strictly, the description must not include characters outside the set `%x20-21 / %x23-5B / %x5D-7E`.\n","uniqueKey":"errorDescription","typeLabel":"string"},"errorUri":{"type":"string","description":"The URI of a document which describes the error in detail. This corresponds to the `error_uri` property in the response to the client.\n","uniqueKey":"errorUri","typeLabel":"string"},"consentedClaims":{"type":"array","items":{"type":"string","uniqueKey":"consentedClaims.items.[INDEX]","typeLabel":"string"},"description":"the claims that the user has consented for the client application to know.\n","uniqueKey":"consentedClaims","typeLabel":"string[]"},"jwtAtClaims":{"type":"string","description":"Additional claims that are added to the payload part of the JWT access token.\n","uniqueKey":"jwtAtClaims","typeLabel":"string"},"accessToken":{"type":"string","description":"The representation of an access token that may be issued as a result of the Authlete API call.\n","uniqueKey":"accessToken","typeLabel":"string"},"accessTokenDuration":{"type":"integer","format":"int64","description":"The duration (in seconds) of the access token that may be issued as a result of the Authlete API call.\n\nWhen this request parameter holds a positive integer, it is used as the duration of the access token in. In other cases, this request parameter is ignored.\n","uniqueKey":"accessTokenDuration","typeLabel":"integer\u003cint64>"},"refreshTokenDuration":{"type":"integer","format":"int64","description":"The duration (in seconds) of the refresh token that may be issued as a result of the Authlete API call.\n\nWhen this request parameter holds a positive integer, it is used as the duration of the refresh token in. In other cases, this request parameter is ignored.\n","uniqueKey":"refreshTokenDuration","typeLabel":"integer\u003cint64>"},"idTokenAudType":{"type":"string","description":"The type of the `aud` claim of the ID token being issued. Valid values are as follows.\n\n| Value | Description |\n| ----- | ----------- |\n| \"array\" | The type of the aud claim is always an array of strings. |\n| \"string\" | The type of the aud claim is always a single string. |\n| null | The type of the aud claim remains the same as before. |\n\nThis request parameter takes precedence over the `idTokenAudType` property of the service.\n","uniqueKey":"idTokenAudType","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"ticket":"NFIHGx_btVrWmtAD093D-87JxvT4DAtuijEkLVHbS4Q","result":"AUTHORIZED","subject":"john"},"examples":{"Example":{"title":"Example","value":{"ticket":"NFIHGx_btVrWmtAD093D-87JxvT4DAtuijEkLVHbS4Q","result":"AUTHORIZED","subject":"john"}}},"exampleType":"examples"},"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["ticket","result","subject"],"properties":{"ticket":{"type":"string","description":"The ticket issued by Authlete's `/backchannel/authentication` API.\n","isRequired":true,"uniqueKey":"ticket","typeLabel":"string"},"result":{"type":"string","enum":["TRANSACTION_FAILED","ACCESS_DENIED","AUTHORIZED"],"description":"The result of the end-user authentication and authorization. One of the following. Details are described in the description.\n","isRequired":true,"uniqueKey":"result","typeLabel":"enum\u003cstring>"},"subject":{"type":"string","description":"The subject (= unique identifier) of the end-user.\n","isRequired":true,"uniqueKey":"subject","typeLabel":"string"},"sub":{"type":"string","description":"The value of the sub claim that should be used in the ID token.\n","uniqueKey":"sub","typeLabel":"string"},"authTime":{"type":"integer","format":"int64","description":"The time at which the end-user was authenticated. Its value is the number of seconds from `1970-01-01`.\n","uniqueKey":"authTime","typeLabel":"integer\u003cint64>"},"acr":{"type":"string","description":"The reference of the authentication context class which the end-user authentication satisfied.\n","uniqueKey":"acr","typeLabel":"string"},"claims":{"type":"string","description":"Additional claims which will be embedded in the ID token.\n","uniqueKey":"claims","typeLabel":"string"},"properties":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","description":"The key part.","uniqueKey":"properties.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","description":"The value part.","uniqueKey":"properties.items.[INDEX].value","typeLabel":"string"},"hidden":{"type":"boolean","description":"The flag to indicate whether this property hidden from or visible to client applications. If `true`, this property is hidden from client applications. Otherwise, this property is visible to client applications.\n","uniqueKey":"properties.items.[INDEX].hidden","typeLabel":"boolean"}},"uniqueKey":"properties.items.[INDEX]","typeLabel":"object"},"description":"The extra properties associated with the access token.\n","uniqueKey":"properties","typeLabel":"object[]"},"scopes":{"type":"array","items":{"type":"string","uniqueKey":"scopes.items.[INDEX]","typeLabel":"string"},"description":"Scopes to replace the scopes specified in the original backchannel authentication request with. When nothing is specified for this parameter, replacement is not performed.\n","uniqueKey":"scopes","typeLabel":"string[]"},"idtHeaderParams":{"type":"string","description":"JSON that represents additional JWS header parameters for ID tokens.\n","uniqueKey":"idtHeaderParams","typeLabel":"string"},"errorDescription":{"type":"string","description":"The description of the error. If this optional request parameter is given, its value is used as the value of the `error_description` property, but it is used only when the result is not `AUTHORIZED`. To comply with the specification strictly, the description must not include characters outside the set `%x20-21 / %x23-5B / %x5D-7E`.\n","uniqueKey":"errorDescription","typeLabel":"string"},"errorUri":{"type":"string","description":"The URI of a document which describes the error in detail. This corresponds to the `error_uri` property in the response to the client.\n","uniqueKey":"errorUri","typeLabel":"string"},"consentedClaims":{"type":"array","items":{"type":"string","uniqueKey":"consentedClaims.items.[INDEX]","typeLabel":"string"},"description":"the claims that the user has consented for the client application to know.\n","uniqueKey":"consentedClaims","typeLabel":"string[]"},"jwtAtClaims":{"type":"string","description":"Additional claims that are added to the payload part of the JWT access token.\n","uniqueKey":"jwtAtClaims","typeLabel":"string"},"accessToken":{"type":"string","description":"The representation of an access token that may be issued as a result of the Authlete API call.\n","uniqueKey":"accessToken","typeLabel":"string"},"accessTokenDuration":{"type":"integer","format":"int64","description":"The duration (in seconds) of the access token that may be issued as a result of the Authlete API call.\n\nWhen this request parameter holds a positive integer, it is used as the duration of the access token in. In other cases, this request parameter is ignored.\n","uniqueKey":"accessTokenDuration","typeLabel":"integer\u003cint64>"},"refreshTokenDuration":{"type":"integer","format":"int64","description":"The duration (in seconds) of the refresh token that may be issued as a result of the Authlete API call.\n\nWhen this request parameter holds a positive integer, it is used as the duration of the refresh token in. In other cases, this request parameter is ignored.\n","uniqueKey":"refreshTokenDuration","typeLabel":"integer\u003cint64>"},"idTokenAudType":{"type":"string","description":"The type of the `aud` claim of the ID token being issued. Valid values are as follows.\n\n| Value | Description |\n| ----- | ----------- |\n| \"array\" | The type of the aud claim is always an array of strings. |\n| \"string\" | The type of the aud claim is always a single string. |\n| null | The type of the aud claim remains the same as before. |\n\nThis request parameter takes precedence over the `idTokenAudType` property of the service.\n","uniqueKey":"idTokenAudType","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"ticket":"\u003cstring>","subject":"\u003cstring>","sub":"\u003cstring>","authTime":123,"acr":"\u003cstring>","claims":"\u003cstring>","properties":[{"key":"\u003cstring>","value":"\u003cstring>","hidden":true}],"scopes":["\u003cstring>"],"idtHeaderParams":"\u003cstring>","errorDescription":"\u003cstring>","errorUri":"\u003cstring>","consentedClaims":["\u003cstring>"],"jwtAtClaims":"\u003cstring>","accessToken":"\u003cstring>","accessTokenDuration":123,"refreshTokenDuration":123,"idTokenAudType":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"examples"},"responses":{"c6de1947-c2f0-4143-bfa0-9cb830b8381d":{"description":"Backchannel authentication completed successfully","content":{"application/json":{"schema":{"type":"object","properties":{"resultCode":{"type":"string","description":"The code which represents the result of the API call.","uniqueKey":"resultCode","typeLabel":"string"},"resultMessage":{"type":"string","description":"A short message which explains the result of the API call.","uniqueKey":"resultMessage","typeLabel":"string"},"action":{"type":"string","enum":["SERVER_ERROR","NO_ACTION","NOTIFICATION"],"description":"The next action that the authorization server implementation should take.\n","uniqueKey":"action","typeLabel":"enum\u003cstring>"},"responseContent":{"type":"string","description":"The content that the authorization server implementation is to return to the client application. Its format varies depending on the value of `action` parameter.\n","uniqueKey":"responseContent","typeLabel":"string"},"clientId":{"type":"integer","format":"int64","description":"The client ID of the client application that has made the backchannel authentication request.\n","uniqueKey":"clientId","typeLabel":"integer\u003cint64>"},"clientIdAlias":{"type":"string","description":"The client ID alias of the client application that has made the backchannel authentication request.\n","uniqueKey":"clientIdAlias","typeLabel":"string"},"clientIdAliasUsed":{"type":"boolean","description":"`true` if the value of the client_id request parameter included in the backchannel authentication request is the client ID alias. `false` if the value is the original numeric client ID.\n","uniqueKey":"clientIdAliasUsed","typeLabel":"boolean"},"clientName":{"type":"string","description":"The name of the client application which has made the backchannel authentication request.\n","uniqueKey":"clientName","typeLabel":"string"},"deliveryMode":{"type":"string","enum":["PING","POLL","PUSH"],"uniqueKey":"deliveryMode","typeLabel":"enum\u003cstring>"},"clientNotificationEndpoint":{"type":"string","description":"The client notification endpoint to which a notification needs to be sent. This corresponds to the `client_notification_endpoint` metadata of the client application.\n","uniqueKey":"clientNotificationEndpoint","typeLabel":"string"},"clientNotificationToken":{"type":"string","description":"The client notification token which needs to be embedded as a Bearer token in the Authorization header in the notification. This is the value of the `client_notification_token` request parameter included in the backchannel authentication request.\n","uniqueKey":"clientNotificationToken","typeLabel":"string"},"authReqId":{"type":"string","description":"The newly issued authentication request ID.\n","uniqueKey":"authReqId","typeLabel":"string"},"accessToken":{"type":"string","description":"The issued access token.\n","uniqueKey":"accessToken","typeLabel":"string"},"refreshToken":{"type":"string","description":"The issued refresh token.\n","uniqueKey":"refreshToken","typeLabel":"string"},"idToken":{"type":"string","description":"The issued ID token.\n","uniqueKey":"idToken","typeLabel":"string"},"accessTokenDuration":{"type":"integer","format":"int64","description":"The duration of the access token in seconds.\n","uniqueKey":"accessTokenDuration","typeLabel":"integer\u003cint64>"},"refreshTokenDuration":{"type":"integer","format":"int64","description":"The duration of the refresh token in seconds.\n","uniqueKey":"refreshTokenDuration","typeLabel":"integer\u003cint64>"},"idTokenDuration":{"type":"integer","format":"int64","description":"The duration of the ID token in seconds.\n","uniqueKey":"idTokenDuration","typeLabel":"integer\u003cint64>"},"jwtAccessToken":{"type":"string","description":"The issued access token in JWT format.\n","uniqueKey":"jwtAccessToken","typeLabel":"string"},"resources":{"type":"array","items":{"type":"string","uniqueKey":"resources.items.[INDEX]","typeLabel":"string"},"description":"The resources specified by the `resource` request parameters or by the `resource` property in the request object. If both are given, the values in the request object should be set. See \"Resource Indicators for OAuth 2.0\" for details.\n","uniqueKey":"resources","typeLabel":"string[]"},"authorizationDetails":{"type":"object","description":"The authorization details. This represents the value of the `authorization_details` request parameter in the preceding device authorization request which is defined in \"OAuth 2.0 Rich Authorization Requests\".\n","properties":{"elements":{"type":"array","items":{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"The type of this element.\n\nFrom _\"OAuth 2.0 Rich Authorization Requests\"_: _\"The type of authorization data as a string. This field MAY define which other elements are allowed in the request. This element is REQUIRED.\"_\n\nThis property is always NOT `null`.\n","isRequired":true,"uniqueKey":"authorizationDetails.elements.items.[INDEX].type","typeLabel":"string"},"locations":{"type":"array","items":{"type":"string","uniqueKey":"authorizationDetails.elements.items.[INDEX].locations.items.[INDEX]","typeLabel":"string"},"description":"The resources and/or resource servers. This property may be `null`.\n\nFrom _\"OAuth 2.0 Rich Authorization Requests\"_: _\"An array of strings representing the location of the resource or resource server. This is typically composed of URIs.\"_\n\nThis property may be `null`.\n","uniqueKey":"authorizationDetails.elements.items.[INDEX].locations","typeLabel":"string[]"},"actions":{"type":"array","items":{"type":"string","uniqueKey":"authorizationDetails.elements.items.[INDEX].actions.items.[INDEX]","typeLabel":"string"},"description":"The actions.\n\nFrom _\"OAuth 2.0 Rich Authorization Requests\"_: _\"An array of strings representing the kinds of actions to be taken at the resource. The values of the strings are determined by the API being protected.\"_\n\nThis property may be `null`.\n","uniqueKey":"authorizationDetails.elements.items.[INDEX].actions","typeLabel":"string[]"},"dataTypes":{"type":"array","items":{"type":"string","uniqueKey":"authorizationDetails.elements.items.[INDEX].dataTypes.items.[INDEX]","typeLabel":"string"},"description":"From _\"OAuth 2.0 Rich Authorization Requests\"_: _\"An array of strings representing the kinds of data being requested from the resource.\"_\n\nThis property may be `null`.\n","uniqueKey":"authorizationDetails.elements.items.[INDEX].dataTypes","typeLabel":"string[]"},"identifier":{"type":"string","description":"The identifier of a specific resource. From _\"OAuth 2.0 Rich Authorization Requests\"_: _\"A string identifier indicating a specific resource available at the API.\"_\n\nThis property may be `null`.\n","uniqueKey":"authorizationDetails.elements.items.[INDEX].identifier","typeLabel":"string"},"privileges":{"type":"array","items":{"type":"string","uniqueKey":"authorizationDetails.elements.items.[INDEX].privileges.items.[INDEX]","typeLabel":"string"},"description":"The types or levels of privilege. From \"OAuth 2.0 Rich Authorization Requests\": _\"An array of strings representing the types or levels of privilege being requested at the resource.\"_\n\nThis property may be `null`.\n","uniqueKey":"authorizationDetails.elements.items.[INDEX].privileges","typeLabel":"string[]"},"otherFields":{"type":"string","description":"The RAR request in the JSON format excluding the pre-defined attributes such as `type` and `locations`. The content and semantics are specific to the deployment and the use case implemented.\n","uniqueKey":"authorizationDetails.elements.items.[INDEX].otherFields","typeLabel":"string"}},"uniqueKey":"authorizationDetails.elements.items.[INDEX]","typeLabel":"object"},"description":"Elements of this authorization details.\n","uniqueKey":"authorizationDetails.elements","typeLabel":"object[]"}},"uniqueKey":"authorizationDetails","typeLabel":"object"},"serviceAttributes":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","description":"The key part.","uniqueKey":"serviceAttributes.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","description":"The value part.","uniqueKey":"serviceAttributes.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"serviceAttributes.items.[INDEX]","typeLabel":"object"},"description":"The attributes of this service that the client application belongs to.\n","uniqueKey":"serviceAttributes","typeLabel":"object[]"},"clientAttributes":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","description":"The key part.","uniqueKey":"clientAttributes.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","description":"The value part.","uniqueKey":"clientAttributes.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"clientAttributes.items.[INDEX]","typeLabel":"object"},"description":"The attributes of the client.\n","uniqueKey":"clientAttributes","typeLabel":"object[]"},"grantId":{"type":"string","description":"the value of the `grant_id` request parameter of the device authorization request.\n\nThe `grant_id` request parameter is defined in [Grant Management for OAuth 2.0](https://openid.net/specs/fapi-grant-management.html) , which is supported by Authlete 2.3 and newer versions.\n","uniqueKey":"grantId","typeLabel":"string"},"clientEntityId":{"type":"string","description":"The entity ID of the client.\n","uniqueKey":"clientEntityId","typeLabel":"string"},"clientEntityIdUsed":{"type":"boolean","description":"Flag which indicates whether the entity ID of the client was used when the request for the access token was made.\n","uniqueKey":"clientEntityIdUsed","typeLabel":"boolean"},"metadataDocumentLocation":{"type":"string","format":"uri","description":"The location of the client's metadata document that was used to resolve client metadata.\n\nThis property is set when client metadata was retrieved via the [OAuth Client ID Metadata Document](https://datatracker.ietf.org/doc/draft-ietf-oauth-client-id-metadata-document/) (CIMD) mechanism.\n","uniqueKey":"metadataDocumentLocation","typeLabel":"string\u003curi>"},"metadataDocumentUsed":{"type":"boolean","description":"Flag indicating whether a metadata document was used to resolve client metadata for this request.\n\nWhen `true`, the client metadata was retrieved via the CIMD mechanism rather than from the Authlete database.\n","uniqueKey":"metadataDocumentUsed","typeLabel":"boolean"},"consentedClaims":{"type":"array","items":{"type":"string","uniqueKey":"consentedClaims.items.[INDEX]","typeLabel":"string"},"description":"the claims that the user has consented for the client application to know.\n","uniqueKey":"consentedClaims","typeLabel":"string[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"resultCode":"A198001","resultMessage":"[A198001] Successfully updated the database so that the token endpoint can generate tokens (mode = poll, result = AUTHORIZED).","accessTokenDuration":0,"action":"NO_ACTION","authReqId":"_mzc-ZQdAhSPuMxTlO-MC_oqaOqYCrdNQ39PVxisaiE","clientId":26862190133482,"clientIdAliasUsed":false,"clientName":"My CIBA Client","deliveryMode":"POLL","idTokenDuration":0,"refreshTokenDuration":0,"serviceAttributes":[{"key":"attribute1-key","value":"attribute1-value"},{"key":"attribute2-key","value":"attribute2-value"}]},"examples":{"Example":{"title":"Example","value":{"resultCode":"A198001","resultMessage":"[A198001] Successfully updated the database so that the token endpoint can generate tokens (mode = poll, result = AUTHORIZED).","accessTokenDuration":0,"action":"NO_ACTION","authReqId":"_mzc-ZQdAhSPuMxTlO-MC_oqaOqYCrdNQ39PVxisaiE","clientId":26862190133482,"clientIdAliasUsed":false,"clientName":"My CIBA Client","deliveryMode":"POLL","idTokenDuration":0,"refreshTokenDuration":0,"serviceAttributes":[{"key":"attribute1-key","value":"attribute1-value"},{"key":"attribute2-key","value":"attribute2-value"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"9d342706-00b7-4aa0-b29a-331a0b9cb054":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"resultCode":{"type":"string","description":"The code which represents the result of the API call.","uniqueKey":"resultCode","typeLabel":"string"},"resultMessage":{"type":"string","description":"A short message which explains the result of the API call.","uniqueKey":"resultMessage","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"resultCode":"A001201","resultMessage":"[A001201] /auth/authorization, TLS must be used."},"examples":{"Example":{"title":"Example","value":{"resultCode":"A001201","resultMessage":"[A001201] /auth/authorization, TLS must be used."}}},"exampleType":"examples"}},"exampleType":"examples"},"2160cbaa-8998-4607-bad3-474680853f88":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"resultCode":{"type":"string","description":"The code which represents the result of the API call.","uniqueKey":"resultCode","typeLabel":"string"},"resultMessage":{"type":"string","description":"A short message which explains the result of the API call.","uniqueKey":"resultMessage","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"resultCode":"A001202","resultMessage":"[A001202] /auth/authorization, Authorization header is missing."},"examples":{"Example":{"title":"Example","value":{"resultCode":"A001202","resultMessage":"[A001202] /auth/authorization, Authorization header is missing."}}},"exampleType":"examples"}},"exampleType":"examples"},"90603251-c5ac-42ca-8c88-4ff4d21ce220":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"resultCode":{"type":"string","description":"The code which represents the result of the API call.","uniqueKey":"resultCode","typeLabel":"string"},"resultMessage":{"type":"string","description":"A short message which explains the result of the API call.","uniqueKey":"resultMessage","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"resultCode":"A001215","resultMessage":"[A001215] /auth/authorization, The client (ID = 26837717140341) is locked."},"examples":{"Example":{"title":"Example","value":{"resultCode":"A001215","resultMessage":"[A001215] /auth/authorization, The client (ID = 26837717140341) is locked."}}},"exampleType":"examples"}},"exampleType":"examples"},"0e8231af-21ea-4502-a883-769cbcf53405":{"description":"The request exceeded the request rate permitted for the endpoint.","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request.","schema":{"type":"integer","example":1}},"RateLimit-Remaining":{"description":"The number of requests remaining in the next second.","schema":{"type":"integer","example":10}},"RateLimit-Reset":{"description":"The number of seconds to wait before the request rate is fully replenished.","schema":{"type":"integer","example":1}}},"content":{"application/json":{"schema":{"type":"object","properties":{"resultCode":{"type":"string","description":"The code which represents the result of the API call.","uniqueKey":"resultCode","typeLabel":"string"},"resultMessage":{"type":"string","description":"A short message which explains the result of the API call.","uniqueKey":"resultMessage","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"resultCode":"A001311","resultMessage":"[A001311] /auth/authorization, Too many requests, retry after 1 seconds. (Entity: 23769878923/87122303)"},"examples":{"Example":{"title":"Example","value":{"resultCode":"A001311","resultMessage":"[A001311] /auth/authorization, Too many requests, retry after 1 seconds. (Entity: 23769878923/87122303)"}}},"exampleType":"examples"}},"exampleType":"examples"},"c1096729-d505-45b2-8caf-c77e31c9bbde":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"resultCode":{"type":"string","description":"The code which represents the result of the API call.","uniqueKey":"resultCode","typeLabel":"string"},"resultMessage":{"type":"string","description":"A short message which explains the result of the API call.","uniqueKey":"resultMessage","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"resultCode":"A001101","resultMessage":"[A001101] /auth/authorization, Authlete Server error."},"examples":{"Example":{"title":"Example","value":{"resultCode":"A001101","resultMessage":"[A001101] /auth/authorization, Authlete Server error."}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"462b635e-c1d5-42f6-b3a8-ef7d418285aa":{"bearer":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Authenticate every request with a **Service Access Token** or **Organization Token**. Set the token value in the `Authorization: Bearer \u003ctoken>` header.\n\n**Service Access Token**: Scoped to a single service. Use when automating service-level configuration or runtime flows.\n\n**Organization Token**: Scoped to the organization; inherits permissions across services. Use for org-wide automation or when managing multiple services programmatically.\n\nBoth token types are issued by the Authlete console or provisioning APIs.\n","scopes":[],"schemeName":"bearer"}}},"servers":{"86730d38-5978-49f4-83dc-79ee32a13d9f":{"description":"🇺🇸 US Cluster","url":"https://us.authlete.com"},"6b1844ca-4ef4-4a3a-aa78-226ce86b6b87":{"description":"🇯🇵 Japan Cluster","url":"https://jp.authlete.com"},"428ca9ef-6a06-47df-8d21-45d932468e02":{"description":"🇪🇺 Europe Cluster","url":"https://eu.authlete.com"},"02c44588-9e42-4914-bdc7-134510ec7325":{"description":"🇧🇷 Brazil Cluster","url":"https://br.authlete.com"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Authenticate every request with a **Service Access Token** or **Organization Token**. Set the token value in the `Authorization: Bearer \u003ctoken>` header.\n\n**Service Access Token**: Scoped to a single service. Use when automating service-level configuration or runtime flows.\n\n**Organization Token**: Scoped to the organization; inherits permissions across services. Use for org-wide automation or when managing multiple services programmatically.\n\nBoth token types are issued by the Authlete console or provisioning APIs.\n","scopes":[],"schemeName":"bearer"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Authenticate every request with a **Service Access Token** or **Organization Token**. Set the token value in the `Authorization: Bearer \u003ctoken>` header.\n\n**Service Access Token**: Scoped to a single service. Use when automating service-level configuration or runtime flows.\n\n**Organization Token**: Scoped to the organization; inherits permissions across services. Use for org-wide automation or when managing multiple services programmatically.\n\nBoth token types are issued by the Authlete console or provisioning APIs.\n","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearer","name":"Authorization"}],"title":"bearer"}]},"originalFileLocation":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples"},"subdomain":"authlete","siteName":"Authlete Documentation","title":"Complete Backchannel Authentication - Authlete Documentation","navMaps":{"firstHrefInVersion":{"3.x":{"href":"/api-reference/ciba/complete-backchannel-authentication","matchLevel":0},"2.x":{"href":"/get-started/introduction-to-authlete/index","matchLevel":4}},"firstHrefInLanguage":{"en":{"href":"/api-reference/ciba/complete-backchannel-authentication","matchLevel":0},"ja":{"href":"/api-reference/ciba/complete-backchannel-authentication","matchLevel":0}}},"lastModified":"2026-10-21T07:38:51.841Z","originalFileLocation":"api-reference/ciba/complete-backchannel-authentication.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"This API returns information about what action the authorization server should take after it receives the result of end-user\u0026#x27;s decision about whether the end-user has approved or rejected a client application\u0026#x27;s request on the authentication device.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Authlete Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/authlete/aQ4BxffFlrUzvna2/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/authlete/aQ4BxffFlrUzvna2/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/authlete/aQ4BxffFlrUzvna2/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/authlete/aQ4BxffFlrUzvna2/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/authlete/aQ4BxffFlrUzvna2/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/authlete/aQ4BxffFlrUzvna2/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/authlete/aQ4BxffFlrUzvna2/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/authlete/aQ4BxffFlrUzvna2/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/authlete/aQ4BxffFlrUzvna2/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Complete Backchannel Authentication - Authlete Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"This API returns information about what action the authorization server should take after it receives the result of end-user\u0026#x27;s decision about whether the end-user has approved or rejected a client application\u0026#x27;s request on the authentication device.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Authlete Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://developers.authlete.com/api-reference/ciba/complete-backchannel-authentication\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://authlete.mintlify.app/_mintlify/api/og/v2?division=CIBA\u0026amp;title=Complete+Backchannel+Authentication\u0026amp;description=This+API+returns+information+about+what+action+the+authorization+server+should+take+after+it+receives+the+result+of+end-user%27s+decision+about+whether+the+end-us\u0026amp;theme=9a33e57959880538f1449aa0\u0026amp;signature=26aad3ce32f1f04640b92ba37fb0734dde13fbda580faebb2ac7e6dd82fd4725\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Complete Backchannel Authentication - Authlete Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"This API returns information about what action the authorization server should take after it receives the result of end-user\u0026#x27;s decision about whether the end-user has approved or rejected a client application\u0026#x27;s request on the authentication device.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://authlete.mintlify.app/_mintlify/api/og/v2?division=CIBA\u0026amp;title=Complete+Backchannel+Authentication\u0026amp;description=This+API+returns+information+about+what+action+the+authorization+server+should+take+after+it+receives+the+result+of+end-user%27s+decision+about+whether+the+end-us\u0026amp;theme=9a33e57959880538f1449aa0\u0026amp;signature=26aad3ce32f1f04640b92ba37fb0734dde13fbda580faebb2ac7e6dd82fd4725\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/authlete/aQ4BxffFlrUzvna2/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Authlete Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0057B7\">\u003clink data-mint-head rel=\"canonical\" href=\"https://developers.authlete.com/api-reference/ciba/complete-backchannel-authentication\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/ciba/complete-backchannel-authentication.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://developers.authlete.com/#organization\",\"name\":\"Authlete Documentation\",\"url\":\"https://developers.authlete.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/authlete/EJDZNZMvOu_9CJHJ/authlete-blue-horizontal-logo.svg?fit=max\u0026auto=format\u0026n=EJDZNZMvOu_9CJHJ\u0026q=85\u0026s=ed123a3de8b7791dffde03e7705c7460\"}},{\"@type\":\"WebSite\",\"@id\":\"https://developers.authlete.com#website\",\"name\":\"Authlete Documentation\",\"url\":\"https://developers.authlete.com\",\"publisher\":{\"@id\":\"https://developers.authlete.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://developers.authlete.com/api-reference/ciba/complete-backchannel-authentication#webpage\",\"url\":\"https://developers.authlete.com/api-reference/ciba/complete-backchannel-authentication\",\"name\":\"Complete Backchannel Authentication\",\"description\":\"This API returns information about what action the authorization server should take after it receives the result of end-user's decision about whether the end-user has approved or rejected a client application's request on the authentication device.\",\"dateModified\":\"2026-10-21T07:38:51.841Z\",\"isPartOf\":{\"@id\":\"https://developers.authlete.com#website\"},\"breadcrumb\":{\"@id\":\"https://developers.authlete.com/api-reference/ciba/complete-backchannel-authentication#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developers.authlete.com/api-reference/ciba/complete-backchannel-authentication#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Authlete\",\"item\":\"https://developers.authlete.com/api-reference/service-management/get-service\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"CIBA\",\"item\":\"https://developers.authlete.com/api-reference/ciba/process-backchannel-authentication-request\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Complete Backchannel Authentication\",\"item\":\"https://developers.authlete.com/api-reference/ciba/complete-backchannel-authentication\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://developers.authlete.com/api-reference/ciba/complete-backchannel-authentication#apireference\",\"headline\":\"Complete Backchannel Authentication\",\"name\":\"Complete Backchannel Authentication\",\"description\":\"This API returns information about what action the authorization server should take after it receives the result of end-user's decision about whether the end-user has approved or rejected a client application's request on the authentication device.\",\"url\":\"https://developers.authlete.com/api-reference/ciba/complete-backchannel-authentication\",\"mainEntityOfPage\":{\"@id\":\"https://developers.authlete.com/api-reference/ciba/complete-backchannel-authentication#webpage\"},\"dateModified\":\"2026-10-21T07:38:51.841Z\",\"publisher\":{\"@id\":\"https://developers.authlete.com/#organization\"},\"isPartOf\":{\"@id\":\"https://developers.authlete.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Authlete Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Authlete Documentation","nav":{"global":null,"languages":[{"language":"en","default":true,"versions":[{"version":"3.x","default":true,"tabs":[{"tab":"Get Started","pages":[{"title":"Get Started","href":"/get-started/introduction-to-authlete/overview"}]},{"tab":"API Reference","groups":[{"group":"Authlete","expanded":true,"pages":[{"group":"Service Management","pages":[{"title":"Get Service","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples get /api/{serviceId}/service/get","href":"/api-reference/service-management/get-service"},{"title":"List Services","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples get /api/service/get/list","href":"/api-reference/service-management/list-services"},{"title":"Update Service","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/service/update","href":"/api-reference/service-management/update-service"},{"title":"Create Service (IDP)","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/service","href":"/api-reference/service-management/create-service-idp"},{"title":"Remove Service (IDP) ⚡","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/service/remove","href":"/api-reference/service-management/remove-service-idp-⚡"},{"title":"Get Service Configuration","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples get /api/{serviceId}/service/configuration","href":"/api-reference/service-management/get-service-configuration"}]},{"group":"Audit Logs","pages":[{"title":"Get Audit Logs","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples get /api/audit/entries","href":"/api-reference/audit-logs/get-audit-logs"},{"title":"Get Audit Log Event Types","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples get /api/audit/types","href":"/api-reference/audit-logs/get-audit-log-event-types"}]},{"group":"Client Management","pages":[{"title":"Get Client","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples get /api/{serviceId}/client/get/{clientId}","href":"/api-reference/client-management/get-client"},{"title":"List Clients","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples get /api/{serviceId}/client/get/list","href":"/api-reference/client-management/list-clients"},{"title":"Create Client","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/client/create","href":"/api-reference/client-management/create-client"},{"title":"Update Client","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/client/update/{clientId}","href":"/api-reference/client-management/update-client"},{"title":"Delete Client ⚡","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples delete /api/{serviceId}/client/delete/{clientId}","href":"/api-reference/client-management/delete-client-⚡"},{"title":"Update Client Lock","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/client/lock_flag/update/{clientIdentifier}","href":"/api-reference/client-management/update-client-lock"},{"title":"Rotate Client Secret","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples get /api/{serviceId}/client/secret/refresh/{clientIdentifier}","href":"/api-reference/client-management/rotate-client-secret"},{"title":"Update Client Secret","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/client/secret/update/{clientIdentifier}","href":"/api-reference/client-management/update-client-secret"},{"title":"Get Authorized Applications","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples get /api/{serviceId}/client/authorization/get/list","href":"/api-reference/client-management/get-authorized-applications"},{"title":"Get Authorized Applications","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/client/authorization/get/list","href":"/api-reference/client-management/get-authorized-applications-1"},{"title":"Get Authorized Applications (by Subject)","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples get /api/{serviceId}/client/authorization/get/list/{subject}","href":"/api-reference/client-management/get-authorized-applications-by-subject"},{"title":"Update Client Tokens","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/client/authorization/update/{clientId}","href":"/api-reference/client-management/update-client-tokens"},{"title":"Delete Client Tokens","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/client/authorization/delete/{clientId}","href":"/api-reference/client-management/delete-client-tokens"},{"title":"Delete Client Tokens","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples delete /api/{serviceId}/client/authorization/delete/{clientId}","href":"/api-reference/client-management/delete-client-tokens-1"},{"title":"Delete Client Tokens (by Subject)","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples delete /api/{serviceId}/client/authorization/delete/{clientId}/{subject}","href":"/api-reference/client-management/delete-client-tokens-by-subject"},{"title":"Get Granted Scopes","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples get /api/{serviceId}/client/granted_scopes/get/{clientId}","href":"/api-reference/client-management/get-granted-scopes"},{"title":"Get Granted Scopes","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/client/granted_scopes/get/{clientId}","href":"/api-reference/client-management/get-granted-scopes-1"},{"title":"Get Granted Scopes (by Subject)","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples get /api/{serviceId}/client/granted_scopes/get/{clientId}/{subject}","href":"/api-reference/client-management/get-granted-scopes-by-subject"},{"title":"Delete Granted Scopes","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples delete /api/{serviceId}/client/granted_scopes/delete/{clientId}","href":"/api-reference/client-management/delete-granted-scopes"},{"title":"Delete Granted Scopes (by Subject)","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples delete /api/{serviceId}/client/granted_scopes/delete/{clientId}/{subject}","href":"/api-reference/client-management/delete-granted-scopes-by-subject"},{"title":"List Clients (Cursor Pagination)","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples get /api/{serviceId}/client","href":"/api-reference/client-management/list-clients-cursor-pagination"},{"title":"Search Clients","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples get /api/{serviceId}/client/search","href":"/api-reference/client-management/search-clients"},{"title":"Get Requestable Scopes","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples get /api/{serviceId}/client/extension/requestable_scopes/get/{clientId}","href":"/api-reference/client-management/get-requestable-scopes"},{"title":"Update Requestable Scopes","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples put /api/{serviceId}/client/extension/requestable_scopes/update/{clientId}","href":"/api-reference/client-management/update-requestable-scopes"},{"title":"Update Requestable Scopes","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/client/extension/requestable_scopes/update/{clientId}","href":"/api-reference/client-management/update-requestable-scopes-1"},{"title":"Delete Requestable Scopes","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples delete /api/{serviceId}/client/extension/requestable_scopes/delete/{clientId}","href":"/api-reference/client-management/delete-requestable-scopes"}]},{"group":"Authorization Endpoint","pages":[{"title":"Process Authorization Request","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/auth/authorization","href":"/api-reference/authorization-endpoint/process-authorization-request"},{"title":"Fail Authorization Request","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/auth/authorization/fail","href":"/api-reference/authorization-endpoint/fail-authorization-request"},{"title":"Issue Authorization Response","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/auth/authorization/issue","href":"/api-reference/authorization-endpoint/issue-authorization-response"},{"title":"Get Ticket Information","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/auth/authorization/ticket/info","href":"/api-reference/authorization-endpoint/get-ticket-information"},{"title":"Update Ticket Information","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/auth/authorization/ticket/update","href":"/api-reference/authorization-endpoint/update-ticket-information"}]},{"group":"Pushed Authorization Endpoint","pages":[{"title":"Process Pushed Authorization Request","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/pushed_auth_req","href":"/api-reference/pushed-authorization-endpoint/process-pushed-authorization-request"}]},{"group":"Token Endpoint","pages":[{"title":"Process Token Request","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/auth/token","href":"/api-reference/token-endpoint/process-token-request"},{"title":"Fail Token Request","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/auth/token/fail","href":"/api-reference/token-endpoint/fail-token-request"},{"title":"Issue Token Response","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/auth/token/issue","href":"/api-reference/token-endpoint/issue-token-response"},{"title":"Reissue ID Token","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/idtoken/reissue","href":"/api-reference/token-endpoint/reissue-id-token"}]},{"group":"Introspection Endpoint","pages":[{"title":"Process Introspection Request","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/auth/introspection","href":"/api-reference/introspection-endpoint/process-introspection-request"},{"title":"Process OAuth 2.0 Introspection Request","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/auth/introspection/standard","href":"/api-reference/introspection-endpoint/process-oauth-20-introspection-request"}]},{"group":"Revocation Endpoint","pages":[{"title":"Process Revocation Request","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/auth/revocation","href":"/api-reference/revocation-endpoint/process-revocation-request"}]},{"group":"UserInfo Endpoint","pages":[{"title":"Process UserInfo Request","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/auth/userinfo","href":"/api-reference/userinfo-endpoint/process-userinfo-request"},{"title":"Issue UserInfo Response","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/auth/userinfo/issue","href":"/api-reference/userinfo-endpoint/issue-userinfo-response"}]},{"group":"Grant Management Endpoint","pages":[{"title":"Process Grant Management Request","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/gm","href":"/api-reference/grant-management-endpoint/process-grant-management-request"}]},{"group":"Dynamic Client Registration","pages":[{"title":"Register Client","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/client/registration","href":"/api-reference/dynamic-client-registration/register-client"},{"title":"Get Client","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/client/registration/get","href":"/api-reference/dynamic-client-registration/get-client"},{"title":"Update Client","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/client/registration/update","href":"/api-reference/dynamic-client-registration/update-client"},{"title":"Delete Client","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/client/registration/delete","href":"/api-reference/dynamic-client-registration/delete-client"}]},{"group":"CIBA","pages":[{"title":"Process Backchannel Authentication Request","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/backchannel/authentication","href":"/api-reference/ciba/process-backchannel-authentication-request"},{"title":"Issue Backchannel Authentication Response","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/backchannel/authentication/issue","href":"/api-reference/ciba/issue-backchannel-authentication-response"},{"title":"Fail Backchannel Authentication Request","description":"The API prepares JSON that contains an error. The JSON should be used as the response body of the response which is returned to the client from the [backchannel authentication endpoint](https://openid.net/specs/openid-client-initiated-backchannel-authentication-core-1_0.html#auth_backchannel_endpoint).","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/backchannel/authentication/fail","href":"/api-reference/ciba/fail-backchannel-authentication-request"},{"title":"Complete Backchannel Authentication","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/backchannel/authentication/complete","href":"/api-reference/ciba/complete-backchannel-authentication"}]},{"group":"Back-Channel Logout","pages":[{"title":"Backchannel Logout Token Issuing","description":"The `/backchannel/logout/token` API issues a logout token for a client application in the context of [OpenID Connect Back-Channel Logout 1.0](https://openid.net/specs/openid-connect-backchannel-1_0.html).","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/backchannel/logout/token","href":"/api-reference/back-channel-logout/backchannel-logout-token-issuing"}]},{"group":"Device Flow","pages":[{"title":"Process Device Authorization Request","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/device/authorization","href":"/api-reference/device-flow/process-device-authorization-request"},{"title":"Process Device Verification Request","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/device/verification","href":"/api-reference/device-flow/process-device-verification-request"},{"title":"Complete Device Authorization","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/device/complete","href":"/api-reference/device-flow/complete-device-authorization"}]},{"group":"Token Operations","pages":[{"title":"List Issued Tokens","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples get /api/{serviceId}/auth/token/get/list","href":"/api-reference/token-operations/list-issued-tokens"},{"title":"Create Access Token","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/auth/token/create","href":"/api-reference/token-operations/create-access-token"},{"title":"Update Access Token","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/auth/token/update","href":"/api-reference/token-operations/update-access-token"},{"title":"Delete Access Token","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples delete /api/{serviceId}/auth/token/delete/{accessTokenIdentifier}","href":"/api-reference/token-operations/delete-access-token"},{"title":"Revoke Access Token","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/auth/token/revoke","href":"/api-reference/token-operations/revoke-access-token"}]},{"group":"Federation Endpoint","pages":[{"title":"Process Entity Configuration Request","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/federation/configuration","href":"/api-reference/federation-endpoint/process-entity-configuration-request"},{"title":"Process Federation Registration Request","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/federation/registration","href":"/api-reference/federation-endpoint/process-federation-registration-request"}]},{"group":"Hardware Security Key","pages":[{"title":"Create Security Key","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/hsk/create","href":"/api-reference/hardware-security-key/create-security-key"},{"title":"Delete Security Key","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples delete /api/{serviceId}/hsk/delete/{handle}","href":"/api-reference/hardware-security-key/delete-security-key"},{"title":"Get Security Key","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples get /api/{serviceId}/hsk/get/{handle}","href":"/api-reference/hardware-security-key/get-security-key"},{"title":"List Security Keys","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples get /api/{serviceId}/hsk/get/list","href":"/api-reference/hardware-security-key/list-security-keys"}]},{"group":"Verifiable Credential Issuer","pages":[{"title":"Get Verifiable Credential Issuer Metadata","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/vci/metadata","href":"/api-reference/verifiable-credential-issuer/get-verifiable-credential-issuer-metadata"},{"title":"Get JWT Issuer Information","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/vci/jwtissuer","href":"/api-reference/verifiable-credential-issuer/get-jwt-issuer-information"},{"title":"Get JSON Web Key Set","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/vci/jwks","href":"/api-reference/verifiable-credential-issuer/get-json-web-key-set"},{"title":"Create Credential Offer","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/vci/offer/create","href":"/api-reference/verifiable-credential-issuer/create-credential-offer"},{"title":"Get Credential Offer Information","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/vci/offer/info","href":"/api-reference/verifiable-credential-issuer/get-credential-offer-information"},{"title":"Parse Single Credential","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/vci/single/parse","href":"/api-reference/verifiable-credential-issuer/parse-single-credential"},{"title":"Issue Single Credential","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/vci/single/issue","href":"/api-reference/verifiable-credential-issuer/issue-single-credential"},{"title":"Parse Batch Credentials","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/vci/batch/parse","href":"/api-reference/verifiable-credential-issuer/parse-batch-credentials"},{"title":"Issue Batch Credentials","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/vci/batch/issue","href":"/api-reference/verifiable-credential-issuer/issue-batch-credentials"},{"title":"Parse Deferred Credential","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/vci/deferred/parse","href":"/api-reference/verifiable-credential-issuer/parse-deferred-credential"},{"title":"Issue Deferred Credential","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/vci/deferred/issue","href":"/api-reference/verifiable-credential-issuer/issue-deferred-credential"}]},{"group":"Lifecycle","pages":[{"title":"Health Check","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples get /api/lifecycle/healthcheck","href":"/api-reference/lifecycle/health-check"}]},{"group":"Native SSO","pages":[{"title":"Native SSO Processing","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/nativesso","href":"/api-reference/native-sso/native-sso-processing"},{"title":"Native SSO Logout Processing","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/nativesso/logout","href":"/api-reference/native-sso/native-sso-logout-processing"}]}]}]},{"tab":"Protocols \u0026 Flows","pages":[{"title":"Protocols \u0026 Flows","href":"/protocols-and-flows/basic-oauth-oidc-flows/oauth-2-0-and-openid-connect-authorization-endpoints"}]},{"tab":"Configuration Reference","pages":[{"title":"Configuration Reference","href":"/configuration-reference/endpoints/handling-request-parameters"}]},{"tab":"Deployment \u0026 Operations","pages":[{"title":"Deployment \u0026 Operations","href":"/deployment-and-operations/terraform/introduction"}]},{"tab":"Release Notes","pages":[{"title":"Release Notes","href":"/release-notes/console/2026-09"}]}]},{"version":"2.x","default":false,"pages":[{"title":"2.x","href":"/get-started/introduction-to-authlete"}]}]},{"language":"ja","versions":[{"version":"3.x","default":true,"tabs":[{"tab":"はじめに","pages":[{"title":"はじめに","href":"/ja/get-started/introduction-to-authlete/overview"}]},{"tab":"API リファレンス","groups":[{"group":"Authlete","expanded":true,"pages":[{"group":"Service Management","pages":[{"title":"Get Service","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples get /api/{serviceId}/service/get","href":"/api-reference/service-management/get-service"},{"title":"List Services","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples get /api/service/get/list","href":"/api-reference/service-management/list-services"},{"title":"Update Service","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/service/update","href":"/api-reference/service-management/update-service"},{"title":"Create Service (IDP)","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/service","href":"/api-reference/service-management/create-service-idp"},{"title":"Remove Service (IDP) ⚡","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/service/remove","href":"/api-reference/service-management/remove-service-idp-⚡"},{"title":"Get Service Configuration","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples get /api/{serviceId}/service/configuration","href":"/api-reference/service-management/get-service-configuration"}]},{"group":"Audit Logs","pages":[{"title":"Get Audit Logs","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples get /api/audit/entries","href":"/api-reference/audit-logs/get-audit-logs"},{"title":"Get Audit Log Event Types","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples get /api/audit/types","href":"/api-reference/audit-logs/get-audit-log-event-types"}]},{"group":"Client Management","pages":[{"title":"Get Client","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples get /api/{serviceId}/client/get/{clientId}","href":"/api-reference/client-management/get-client"},{"title":"List Clients","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples get /api/{serviceId}/client/get/list","href":"/api-reference/client-management/list-clients"},{"title":"Create Client","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/client/create","href":"/api-reference/client-management/create-client"},{"title":"Update Client","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/client/update/{clientId}","href":"/api-reference/client-management/update-client"},{"title":"Delete Client ⚡","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples delete /api/{serviceId}/client/delete/{clientId}","href":"/api-reference/client-management/delete-client-⚡"},{"title":"Update Client Lock","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/client/lock_flag/update/{clientIdentifier}","href":"/api-reference/client-management/update-client-lock"},{"title":"Rotate Client Secret","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples get /api/{serviceId}/client/secret/refresh/{clientIdentifier}","href":"/api-reference/client-management/rotate-client-secret"},{"title":"Update Client Secret","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/client/secret/update/{clientIdentifier}","href":"/api-reference/client-management/update-client-secret"},{"title":"Get Authorized Applications","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples get /api/{serviceId}/client/authorization/get/list","href":"/api-reference/client-management/get-authorized-applications"},{"title":"Get Authorized Applications","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/client/authorization/get/list","href":"/api-reference/client-management/get-authorized-applications-1"},{"title":"Get Authorized Applications (by Subject)","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples get /api/{serviceId}/client/authorization/get/list/{subject}","href":"/api-reference/client-management/get-authorized-applications-by-subject"},{"title":"Update Client Tokens","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/client/authorization/update/{clientId}","href":"/api-reference/client-management/update-client-tokens"},{"title":"Delete Client Tokens","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/client/authorization/delete/{clientId}","href":"/api-reference/client-management/delete-client-tokens"},{"title":"Delete Client Tokens","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples delete /api/{serviceId}/client/authorization/delete/{clientId}","href":"/api-reference/client-management/delete-client-tokens-1"},{"title":"Delete Client Tokens (by Subject)","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples delete /api/{serviceId}/client/authorization/delete/{clientId}/{subject}","href":"/api-reference/client-management/delete-client-tokens-by-subject"},{"title":"Get Granted Scopes","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples get /api/{serviceId}/client/granted_scopes/get/{clientId}","href":"/api-reference/client-management/get-granted-scopes"},{"title":"Get Granted Scopes","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/client/granted_scopes/get/{clientId}","href":"/api-reference/client-management/get-granted-scopes-1"},{"title":"Get Granted Scopes (by Subject)","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples get /api/{serviceId}/client/granted_scopes/get/{clientId}/{subject}","href":"/api-reference/client-management/get-granted-scopes-by-subject"},{"title":"Delete Granted Scopes","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples delete /api/{serviceId}/client/granted_scopes/delete/{clientId}","href":"/api-reference/client-management/delete-granted-scopes"},{"title":"Delete Granted Scopes (by Subject)","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples delete /api/{serviceId}/client/granted_scopes/delete/{clientId}/{subject}","href":"/api-reference/client-management/delete-granted-scopes-by-subject"},{"title":"List Clients (Cursor Pagination)","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples get /api/{serviceId}/client","href":"/api-reference/client-management/list-clients-cursor-pagination"},{"title":"Search Clients","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples get /api/{serviceId}/client/search","href":"/api-reference/client-management/search-clients"},{"title":"Get Requestable Scopes","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples get /api/{serviceId}/client/extension/requestable_scopes/get/{clientId}","href":"/api-reference/client-management/get-requestable-scopes"},{"title":"Update Requestable Scopes","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples put /api/{serviceId}/client/extension/requestable_scopes/update/{clientId}","href":"/api-reference/client-management/update-requestable-scopes"},{"title":"Update Requestable Scopes","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/client/extension/requestable_scopes/update/{clientId}","href":"/api-reference/client-management/update-requestable-scopes-1"},{"title":"Delete Requestable Scopes","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples delete /api/{serviceId}/client/extension/requestable_scopes/delete/{clientId}","href":"/api-reference/client-management/delete-requestable-scopes"}]},{"group":"Authorization Endpoint","pages":[{"title":"Process Authorization Request","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/auth/authorization","href":"/api-reference/authorization-endpoint/process-authorization-request"},{"title":"Fail Authorization Request","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/auth/authorization/fail","href":"/api-reference/authorization-endpoint/fail-authorization-request"},{"title":"Issue Authorization Response","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/auth/authorization/issue","href":"/api-reference/authorization-endpoint/issue-authorization-response"},{"title":"Get Ticket Information","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/auth/authorization/ticket/info","href":"/api-reference/authorization-endpoint/get-ticket-information"},{"title":"Update Ticket Information","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/auth/authorization/ticket/update","href":"/api-reference/authorization-endpoint/update-ticket-information"}]},{"group":"Pushed Authorization Endpoint","pages":[{"title":"Process Pushed Authorization Request","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/pushed_auth_req","href":"/api-reference/pushed-authorization-endpoint/process-pushed-authorization-request"}]},{"group":"Token Endpoint","pages":[{"title":"Process Token Request","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/auth/token","href":"/api-reference/token-endpoint/process-token-request"},{"title":"Fail Token Request","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/auth/token/fail","href":"/api-reference/token-endpoint/fail-token-request"},{"title":"Issue Token Response","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/auth/token/issue","href":"/api-reference/token-endpoint/issue-token-response"},{"title":"Reissue ID Token","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/idtoken/reissue","href":"/api-reference/token-endpoint/reissue-id-token"}]},{"group":"Introspection Endpoint","pages":[{"title":"Process Introspection Request","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/auth/introspection","href":"/api-reference/introspection-endpoint/process-introspection-request"},{"title":"Process OAuth 2.0 Introspection Request","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/auth/introspection/standard","href":"/api-reference/introspection-endpoint/process-oauth-20-introspection-request"}]},{"group":"Revocation Endpoint","pages":[{"title":"Process Revocation Request","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/auth/revocation","href":"/api-reference/revocation-endpoint/process-revocation-request"}]},{"group":"UserInfo Endpoint","pages":[{"title":"Process UserInfo Request","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/auth/userinfo","href":"/api-reference/userinfo-endpoint/process-userinfo-request"},{"title":"Issue UserInfo Response","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/auth/userinfo/issue","href":"/api-reference/userinfo-endpoint/issue-userinfo-response"}]},{"group":"Grant Management Endpoint","pages":[{"title":"Process Grant Management Request","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/gm","href":"/api-reference/grant-management-endpoint/process-grant-management-request"}]},{"group":"Dynamic Client Registration","pages":[{"title":"Register Client","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/client/registration","href":"/api-reference/dynamic-client-registration/register-client"},{"title":"Get Client","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/client/registration/get","href":"/api-reference/dynamic-client-registration/get-client"},{"title":"Update Client","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/client/registration/update","href":"/api-reference/dynamic-client-registration/update-client"},{"title":"Delete Client","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/client/registration/delete","href":"/api-reference/dynamic-client-registration/delete-client"}]},{"group":"CIBA","pages":[{"title":"Process Backchannel Authentication Request","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/backchannel/authentication","href":"/api-reference/ciba/process-backchannel-authentication-request"},{"title":"Issue Backchannel Authentication Response","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/backchannel/authentication/issue","href":"/api-reference/ciba/issue-backchannel-authentication-response"},{"title":"Fail Backchannel Authentication Request","description":"The API prepares JSON that contains an error. The JSON should be used as the response body of the response which is returned to the client from the [backchannel authentication endpoint](https://openid.net/specs/openid-client-initiated-backchannel-authentication-core-1_0.html#auth_backchannel_endpoint).","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/backchannel/authentication/fail","href":"/api-reference/ciba/fail-backchannel-authentication-request"},{"title":"Complete Backchannel Authentication","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/backchannel/authentication/complete","href":"/api-reference/ciba/complete-backchannel-authentication"}]},{"group":"Back-Channel Logout","pages":[{"title":"Backchannel Logout Token Issuing","description":"The `/backchannel/logout/token` API issues a logout token for a client application in the context of [OpenID Connect Back-Channel Logout 1.0](https://openid.net/specs/openid-connect-backchannel-1_0.html).","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/backchannel/logout/token","href":"/api-reference/back-channel-logout/backchannel-logout-token-issuing"}]},{"group":"Device Flow","pages":[{"title":"Process Device Authorization Request","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/device/authorization","href":"/api-reference/device-flow/process-device-authorization-request"},{"title":"Process Device Verification Request","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/device/verification","href":"/api-reference/device-flow/process-device-verification-request"},{"title":"Complete Device Authorization","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/device/complete","href":"/api-reference/device-flow/complete-device-authorization"}]},{"group":"Token Operations","pages":[{"title":"List Issued Tokens","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples get /api/{serviceId}/auth/token/get/list","href":"/api-reference/token-operations/list-issued-tokens"},{"title":"Create Access Token","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/auth/token/create","href":"/api-reference/token-operations/create-access-token"},{"title":"Update Access Token","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/auth/token/update","href":"/api-reference/token-operations/update-access-token"},{"title":"Delete Access Token","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples delete /api/{serviceId}/auth/token/delete/{accessTokenIdentifier}","href":"/api-reference/token-operations/delete-access-token"},{"title":"Revoke Access Token","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/auth/token/revoke","href":"/api-reference/token-operations/revoke-access-token"}]},{"group":"Federation Endpoint","pages":[{"title":"Process Entity Configuration Request","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/federation/configuration","href":"/api-reference/federation-endpoint/process-entity-configuration-request"},{"title":"Process Federation Registration Request","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/federation/registration","href":"/api-reference/federation-endpoint/process-federation-registration-request"}]},{"group":"Hardware Security Key","pages":[{"title":"Create Security Key","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/hsk/create","href":"/api-reference/hardware-security-key/create-security-key"},{"title":"Delete Security Key","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples delete /api/{serviceId}/hsk/delete/{handle}","href":"/api-reference/hardware-security-key/delete-security-key"},{"title":"Get Security Key","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples get /api/{serviceId}/hsk/get/{handle}","href":"/api-reference/hardware-security-key/get-security-key"},{"title":"List Security Keys","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples get /api/{serviceId}/hsk/get/list","href":"/api-reference/hardware-security-key/list-security-keys"}]},{"group":"Verifiable Credential Issuer","pages":[{"title":"Get Verifiable Credential Issuer Metadata","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/vci/metadata","href":"/api-reference/verifiable-credential-issuer/get-verifiable-credential-issuer-metadata"},{"title":"Get JWT Issuer Information","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/vci/jwtissuer","href":"/api-reference/verifiable-credential-issuer/get-jwt-issuer-information"},{"title":"Get JSON Web Key Set","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/vci/jwks","href":"/api-reference/verifiable-credential-issuer/get-json-web-key-set"},{"title":"Create Credential Offer","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/vci/offer/create","href":"/api-reference/verifiable-credential-issuer/create-credential-offer"},{"title":"Get Credential Offer Information","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/vci/offer/info","href":"/api-reference/verifiable-credential-issuer/get-credential-offer-information"},{"title":"Parse Single Credential","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/vci/single/parse","href":"/api-reference/verifiable-credential-issuer/parse-single-credential"},{"title":"Issue Single Credential","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/vci/single/issue","href":"/api-reference/verifiable-credential-issuer/issue-single-credential"},{"title":"Parse Batch Credentials","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/vci/batch/parse","href":"/api-reference/verifiable-credential-issuer/parse-batch-credentials"},{"title":"Issue Batch Credentials","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/vci/batch/issue","href":"/api-reference/verifiable-credential-issuer/issue-batch-credentials"},{"title":"Parse Deferred Credential","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/vci/deferred/parse","href":"/api-reference/verifiable-credential-issuer/parse-deferred-credential"},{"title":"Issue Deferred Credential","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/vci/deferred/issue","href":"/api-reference/verifiable-credential-issuer/issue-deferred-credential"}]},{"group":"Lifecycle","pages":[{"title":"Health Check","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples get /api/lifecycle/healthcheck","href":"/api-reference/lifecycle/health-check"}]},{"group":"Native SSO","pages":[{"title":"Native SSO Processing","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/nativesso","href":"/api-reference/native-sso/native-sso-processing"},{"title":"Native SSO Logout Processing","deprecated":null,"version":null,"openapi":"https://spec.speakeasy.com/authlete/sdk-workspace/authlete-api-explorer-with-code-samples post /api/{serviceId}/nativesso/logout","href":"/api-reference/native-sso/native-sso-logout-processing"}]}]}]},{"tab":"プロトコル \u0026 フロー","pages":[{"title":"プロトコル \u0026 フロー","href":"/ja/protocols-and-flows/basic-oauth-oidc-flows/oauth-2-0-and-openid-connect-authorization-endpoints"}]},{"tab":"設定リファレンス","pages":[{"title":"設定リファレンス","href":"/ja/configuration-reference/endpoints/handling-request-parameters"}]},{"tab":"デプロイと運用","pages":[{"title":"デプロイと運用","href":"/ja/deployment-and-operations/terraform/introduction"}]},{"tab":"リリースノート","pages":[{"title":"リリースノート","href":"/ja/release-notes/console/2026-09"}]}]},{"version":"2.x","default":false,"pages":[{"title":"2.x","href":"/ja/get-started/introduction-to-authlete/overview"}]}]}]},"title":"Complete Backchannel Authentication - Authlete Documentation","buildId":"dpl_849ArpqvBiCczQiT1Y1stNGpbqHT","deploymentId":"dpl_849ArpqvBiCczQiT1Y1stNGpbqHT","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-Bbp7I60D.js","utils-C3RIvJha.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DqD-vLt8.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-B31Loprg.js","snippetPresets-DKpk-b8t.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-Cj65AhOR.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BXtn5gcC.js","shallow-RY2b03Cp.js","getApiPlaygroundDisplay-B0jeiPk3.js","CodeSnippet-CYgBjjwn.js","CodeSnippets-DOngDrYB.js","Page-n7I5XbKb.js","getPastedJson-DRQbJx-T.js","icon-CQiQCicY.js","MethodPill-BKTLdNtu.js","DuplicateIcon-B9jpAdat.js","createIcon-DCddRrXv.js","DynamicMarkdown-a8hUKrw6.js","SectionHeading-eECVV2eH.js","axios-vUo_bRtp.js","Markdown--GF7ZIpf.js","clsx-DZLdJUrt.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-2LoAhjKH.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-Zwc0ZncM.js"]}