<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.30 (Ruby 3.4.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-zehavi-oauth-rar-metadata-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="OAuth 2.0 RAR Metadata and Error Signaling">OAuth 2.0 RAR Metadata and Error Signaling</title>
    <seriesInfo name="Internet-Draft" value="draft-zehavi-oauth-rar-metadata-01"/>
    <author fullname="Yaron Zehavi">
      <organization>Raiffeisen Bank International</organization>
      <address>
        <email>yaron.zehavi@rbinternational.com</email>
      </address>
    </author>
    <date year="2026" month="January" day="19"/>
    <area>Security</area>
    <workgroup>Web Authorization Protocol</workgroup>
    <keyword>RAR</keyword>
    <keyword>Step-up</keyword>
    <keyword>oauth</keyword>
    <abstract>
      <?line 49?>

<t>OAuth 2.0 Rich Authorization Requests (RAR), as defined in <xref target="RFC9396"/>, enables fine-grained authorization requests, using structured JSON objects.</t>
      <t>While RAR <xref target="RFC9396"/> standardizes the exchange and handling of authorization details, it does not define a mechanism for clients to discover how to construct valid authorization details types.</t>
      <t>This document defines a machine-readable metadata format for authorization servers to provide authorization details type documentation and JSON Schema <xref target="JSON.Schema"/> definitions, as well as interoperable discovery via OAuth Resource Server Metadata <xref target="RFC9728"/>.</t>
      <t>This document also defines a new WWW-Authenticate normative OAuth error code, <tt>insufficient_authorization_details</tt>, enabling resource servers to indicate inadequate authorization details as the cause of failure.</t>
      <t>It also defines an <bcp14>OPTIONAL</bcp14> response body which <bcp14>MAY</bcp14> be returned alongside the <tt>insufficient_authorization_details</tt> error, providing an informative yet actionable authorization details object, which can be used directly in a subsequent OAuth request.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://yaron-zehavi.github.io/oauth-rich-authorization-requests-metadata/draft-zehavi-oauth-rar-metadata.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-zehavi-oauth-rar-metadata/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Web Authorization Protocol Working Group mailing list (<eref target="mailto:oauth@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/oauth/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/oauth/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/yaron-zehavi/oauth-rich-authorization-requests-metadata"/>.</t>
    </note>
  </front>
  <middle>
    <?line 61?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>OAuth 2.0 Rich Authorization Requests (RAR) <xref target="RFC9396"/> allows OAuth clients to request structured, fine-grained authorization, beyond the coarse-grained access offered by simple scopes, which has enabled advanced authorization models across many domains, such as open banking &amp; API marketplaces.</t>
      <t>However, RAR <xref target="RFC9396"/> does not specify how a client learns how to construct syntactically valid authorization details objects. As a result, clients must rely on out-of-band documentation or static ecosystem profiles, limiting interoperability and preventing dynamic client behavior.</t>
      <t>This document addresses this gap by:</t>
      <ul spacing="normal">
        <li>
          <t>Defining a new authorization server endpoint: <tt>authorization_details_types_metadata_endpoint</tt>, providing metadata for authorization details types, including human-readable documentation as well as embedded JSON Schema definitions <xref target="JSON.Schema"/>.</t>
        </li>
        <li>
          <t>Adding accepted authorization details types to OAuth 2.0 Protected Resource Metadata <xref target="RFC9728"/> response, facilitating RAR metadata discovery.</t>
        </li>
        <li>
          <t>Defining a standardized error signaling mechanism using the WWW-Authenticate response header, allowing resource servers to specify <tt>insufficient_authorization_details</tt> as the cause of error.</t>
        </li>
        <li>
          <t>Defining an <bcp14>OPTIONAL</bcp14> response body, included with an <tt>insufficient_authorization_details</tt> error, providing an informative authorization details object, whose inclusion in a new OAuth request shall result, if approved, in an access token satisfying the endpoint's requirements.</t>
        </li>
      </ul>
      <t>The <bcp14>OPTIONAL</bcp14> providing of actionable authorization details objects by resource servers enables:</t>
      <ul spacing="normal">
        <li>
          <t>High interoperability and simplification by relieving clients from having to figure out how to construct valid authorization details objects, instead providing them with required authorization_details object, to be included in a subsequent OAuth request.</t>
        </li>
        <li>
          <t>Support for including ephemeral, interaction-specific details originating from the resource domain, in the authorization details object, such as for example a risk score, a risk profile or an internal interaction identifier. Resource servers <bcp14>MAY</bcp14> use this to guide authorization servers as to the required authentication strength and consent flow.</t>
        </li>
      </ul>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="protocol-overview">
      <name>Protocol Overview</name>
      <t>There are two main proposed flows:</t>
      <ul spacing="normal">
        <li>
          <t>Client <strong>learns</strong> to construct valid authorization details objects using authorization details types metadata.</t>
        </li>
        <li>
          <t>Client <strong>obtains an actionable authorization details object</strong> from resource server's error response.</t>
        </li>
      </ul>
      <section anchor="client-learns-to-construct-valid-authorization-details-objects-using-metadata">
        <name>Client learns to construct valid authorization details objects using metadata</name>
        <artwork type="ascii-art"><![CDATA[
                                                +---------------------+
             +----------+ (B) API Request       |                     |
             |          |---------------------->|      Resource       |
(A) User +---|          |                       |       Server        |
   Starts|   |          |<----------------------|                     |
   Flow  +-->|          | (C) 403 Forbidden     +---------------------+
             |          |     WWW-Authenticate: Bearer
             |          |     error="insufficient_authorization_details",
             |          |     resource_metadata="[resource metadata url]"
             |          |           :
             |          |        Resource       +---------------------+
             |          | (D) Metadata Request  |   Resource Server   |
             |          |---------------------->|+-------------------+|
             |          |                       || Resource Metadata ||
             |  Client  |<----------------------||    Endpoint       ||
             |          | (E) Metadata Response |+-------------------+|
             |          |    (Discover also     +---------------------+
             |          |     expected RAR types)
             |          |           :           +---------------------+
             |          |        RAR Types      |    Authorization    |
             |          | (F) Metadata Request  |       Server        |
             |          |---------------------->|+-------------------+|
             |          |                       ||     RAR Types     ||
             |          |<----------------------|| Metadata Endpoint ||
             |          | (G) Metadata Response |+-------------------+|
             |          |           :           |                     |
             |          | (H) Construct RAR     |                     |
             |          |     Using Metadata    |                     |
             |          |        :              |                     |
             |          | (I) Authorization     |                     |
             |          |     Request + RAR     |                     |
             |          |---------------------->|+-------------------+|
             |          |                       ||   Authorization   ||
             |          |<----------------------||     Endpoint      ||
             |          | (J) Authorization Code||                   ||
             |          |        :              |+-------------------+|
             |          |        :              |                     |
             |          | (K) Token Request     |+-------------------+|
             |          |---------------------->||                   ||
             |          |                       ||   Token Endpoint  ||
             |          |<----------------------||                   ||
             |          | (L) Access Token      |+-------------------+|
             |          |        :              +---------------------+
             |          |        :
             |          | (M) API Call with
             |          |     Access Token      +---------------------+
             |          |---------------------->|                     |
             |          |                       |   Resource Server   |
             |          |<----------------------|                     |
             |          | (N) 200 OK + Resource +---------------------+
             |          |
             +----------+
]]></artwork>
        <t>Figure: Client learns to construct valid authorization details objects from metadata</t>
        <ul spacing="normal">
          <li>
            <t>(A) The user starts the flow.</t>
          </li>
          <li>
            <t>(B) The client calls an API with an access token.</t>
          </li>
          <li>
            <t>(C) Resource server returns HTTP 403 forbidden including a WWW-Authenticate header with error code <tt>insufficient_authorization_details</tt> and the resource metadata url (OAuth 2.0 Protected Resource Metadata <xref target="RFC9728"/>).</t>
          </li>
          <li>
            <t>(D-E) The client discovers expected authorization details types from resource metadata endpoint's response.</t>
          </li>
          <li>
            <t>(F-G) The client consumes authorization details type metadata from authorization server's <tt>authorization_details_types_metadata_endpoint</tt>.</t>
          </li>
          <li>
            <t>(H-I) The client constructs a valid authorization details object and makes an OAuth + RAR <xref target="RFC9396"/> request.</t>
          </li>
          <li>
            <t>(J) Authorization server returns authorization code.</t>
          </li>
          <li>
            <t>(K-L) The client exchanges authorization code for access token.</t>
          </li>
          <li>
            <t>(M) The client makes an API request with the (RAR) access token.</t>
          </li>
          <li>
            <t>(N) Resource server validates access token and returns successful response.</t>
          </li>
        </ul>
      </section>
      <section anchor="client-obtains-authorization-details-object-from-resource-servers-error-response">
        <name>Client obtains authorization details object from resource server's error response</name>
        <artwork type="ascii-art"><![CDATA[
                                                +--------------------+
             +----------+ (B) API Request       |                    |
             |          |---------------------->|      Resource      |
(A) User +---|          |                       |       Server       |
   Starts|   |          |<----------------------|                    |
   Flow  +-->|  Client  | (C) 403 Forbidden     +--------------------+
             |          |     WWW-Authenticate: Bearer
             |          |     error="insufficient_authorization_details",
             |          |     resource_metadata="[resource metadata url]"
             |          |        +
             |          |     HTTP body provides authorization_details
             |          |        :
             |          |        :              +--------------------+
             |          |        :              |   Authorization    |
             |          | (D) Authorization     |      Server        |
             |          |     Request + RAR     |+------------------+|
             |          |---------------------->||                  ||
             |          |                       ||  Authorization   ||
             |          |<----------------------||    Endpoint      ||
             |          | (E) Authorization Code||                  ||
             |          |        :              |+------------------+|
             |          |        :              |                    |
             |          | (G) Token Request     |+------------------+|
             |          |---------------------->||                  ||
             |          |                       || Token Endpoint   ||
             |          |<----------------------||                  ||
             |          | (H) Access Token      |+------------------+|
             |          |        :              +--------------------+
             |          |        :
             |          |        :
             |          | (I) Retry API Call    +--------------------+
             |          |     with Token        |                    |
             |          |---------------------->|      Resource      |
             |          |                       |       Server       |
             |          |<----------------------|                    |
             |          | (J) 200 OK + Resource +--------------------+
             |          |
             +----------+
]]></artwork>
        <t>Figure: Client obtains authorization details object from resource server's error response</t>
        <ul spacing="normal">
          <li>
            <t>(A) The user starts the flow.</t>
          </li>
          <li>
            <t>(B) The client calls an API with an access token.</t>
          </li>
          <li>
            <t>(C) Resource server returns HTTP 403 forbidden including a WWW-Authenticate header with error code <tt>insufficient_authorization_details</tt> and in the response body <strong>includes the authorization details object requiring approval</strong>.</t>
          </li>
          <li>
            <t>(D) The client uses the obtained authorization details object in a new OAuth + RAR <xref target="RFC9396"/> request.</t>
          </li>
          <li>
            <t>(E) Authorization server returns authorization code.</t>
          </li>
          <li>
            <t>(G-H) The client exchanges authorization code for access token.</t>
          </li>
          <li>
            <t>(I) The client makes an API request with the (RAR) access token.</t>
          </li>
          <li>
            <t>(J) Resource server validates access token and returns successful response.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="oauth-20-protected-resource-metadata-rfc9728">
      <name>OAuth 2.0 Protected Resource Metadata <xref target="RFC9728"/></name>
      <t>This document specifies that the metadata attribute: <tt>authorization_details_types_supported</tt>, defined by RAR <xref target="RFC9396"/>, shall be included as an <bcp14>OPTIONAL</bcp14> response attributes in Protected Resource Metadata <xref target="RFC9728"/>.</t>
      <t>Note: When resource servers accept access tokens <em>from several authorization servers</em>, interoperability is maintained as client can discover each authorization server' supported authorization details types.</t>
      <t>The following is a non-normative example response with the added <tt>authorization_details_types_supported</tt> attribute:</t>
      <artwork><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json

{
  "resource":
  "https://resource.example.com",
  "authorization_servers":
    ["https://as1.example.com",
     "https://as2.example.net"],
  "bearer_methods_supported":
    ["header", "body"],
  "scopes_supported":
    ["profile", "email", "phone"],
  "resource_documentation":
    "https://resource.example.com/resource_documentation.html",
  "authorization_details_types_supported":
    ["payment_initiation"]
}
]]></artwork>
    </section>
    <section anchor="authorization-details-types-metadata-endpoint">
      <name>Authorization Details Types Metadata Endpoint</name>
      <t>The following authorization server metadata <xref target="RFC8414"/> parameter is introduced to signal the server's support for Authorization Details Types Metadata:</t>
      <dl>
        <dt>"authorization_details_types_metadata_endpoint":</dt>
        <dd>
          <t><bcp14>OPTIONAL</bcp14>. The URL of the Authorization Details Types Metadata endpoint.</t>
        </dd>
      </dl>
      <section anchor="authorization-details-types-metadata-endpoint-response">
        <name>Authorization Details Types Metadata Endpoint Response</name>
        <t>The Authorization Details Types Metadata endpoint's response is a JSON document with the key <tt>authorization_details_types_metadata</tt> whose attributes are authorization details type identifiers.</t>
        <t>Each identifier is an object describing a single authorization details type.</t>
        <artwork><![CDATA[
{
  "authorization_details_types_metadata": {
    "type": {
    "version": "...",
    "description": "...",
    "documentation_uri": "...",
    "schema": { },
    "schema_uri": "...",
    "examples": [ ]
    }
  }
}
]]></artwork>
        <t>Attributes definition:</t>
        <dl>
          <dt>"version":</dt>
          <dd>
            <t><bcp14>OPTIONAL</bcp14>. String identifying the version of the authorization details type definition. The value is informational and does not imply semantic version negotiation.</t>
          </dd>
          <dt>"description":</dt>
          <dd>
            <t><bcp14>OPTIONAL</bcp14>. String containing a human-readable description of the authorization details type. Clients <bcp14>MUST NOT</bcp14> rely on this value for authorization or validation decisions.</t>
          </dd>
          <dt>"documentation_uri":</dt>
          <dd>
            <t><bcp14>OPTIONAL</bcp14>. URI referencing external human-readable documentation describing the authorization details type.</t>
          </dd>
          <dt>"schema":</dt>
          <dd>
            <t>The <tt>schema</tt> attribute is a JSON Schema document <xref target="JSON.Schema"/> describing a single authorization detail object. The schema <bcp14>MUST</bcp14> validate a single authorization detail object and <bcp14>MUST</bcp14> constrain the <tt>type</tt> attribute to the authorization detail type identifier. This attribute is <bcp14>REQUIRED</bcp14> unless <tt>schema_uri</tt> is specified. If this attribute is present, <tt>schema_uri</tt> <bcp14>MUST NOT</bcp14> be present.</t>
          </dd>
          <dt>"schema_uri":</dt>
          <dd>
            <t>The <tt>schema_uri</tt> attribute is an absolute URI, as defined by RFC 3986 <xref target="RFC3986"/>, referencing a JSON Schema document describing a single authorization details object. The referenced schema <bcp14>MUST</bcp14> satisfy the same requirements as the <tt>schema</tt> attribute. This attribute is <bcp14>REQUIRED</bcp14> unless <tt>schema</tt> is specified. If this attribute is present, <tt>schema</tt> <bcp14>MUST NOT</bcp14> be present.</t>
          </dd>
          <dt>"examples":</dt>
          <dd>
            <t><bcp14>OPTIONAL</bcp14>. An array of example authorization details objects. Examples are non-normative.</t>
          </dd>
        </dl>
        <t>See Examples <xref target="metadata-examples"/> for non-normative response example.</t>
      </section>
    </section>
    <section anchor="resource-server-error-signaling-of-inadequate-authorizationdetails">
      <name>Resource Server Error Signaling of Inadequate authorization_details</name>
      <t>This document defines a new normative OAuth error code, <tt>insufficient_authorization_details</tt>, which resource servers <bcp14>SHALL</bcp14> return using the <tt>WWW-Authenticate</tt> header, to signal access is denied due to missing or insufficient authorization details.</t>
      <t>Example HTTP response:</t>
      <artwork><![CDATA[
HTTP/1.1 403 Forbidden
WWW-Authenticate: Bearer error="insufficient_authorization_details",
    resource_metadata="https://resource.example.com/
    .well-known/oauth-protected-resource/payments"
]]></artwork>
      <section anchor="optional-authorizationdetails-in-response-body">
        <name>OPTIONAL authorization_details in response body</name>
        <t>Resource server <bcp14>MAY</bcp14> provide alongside the <tt>insufficient_authorization_details</tt> error, an HTTP response body of content type application/json, containing the required authorization details to satisfy the currently failing request.</t>
        <t>Note:</t>
        <ul spacing="normal">
          <li>
            <t>Authorization details objects provided by a resource server in an error response are intended for its trusted authorization servers, as advertised by the Resource Server’s metadata endpoint.</t>
          </li>
          <li>
            <t>Resource servers <bcp14>SHALL</bcp14> provide authorization_details objects only if <strong>all</strong> trusted authorization servers accept the <strong>authorization details type</strong> used.</t>
          </li>
        </ul>
        <t>HTTP response body definition:</t>
        <dl>
          <dt>"authorization_details":</dt>
          <dd>
            <t><bcp14>OPTIONAL</bcp14>. Array of authorization details objects, matching the format specified in RAR <xref target="RFC9396"/> for the <tt>authorization_details</tt> request parameter.</t>
          </dd>
        </dl>
        <t>Clients <bcp14>MAY</bcp14> use the provided <tt>authorization_details</tt> in a subsequent OAuth request to obtain an access token satisfying the resource's requirements.</t>
        <t>Example resource server response with <bcp14>OPTIONAL</bcp14> authorization_details:</t>
        <artwork><![CDATA[
HTTP/1.1 403 Forbidden
WWW-Authenticate: Bearer error="insufficient_authorization_details",
    resource_metadata="https://resource.example.com/
    .well-known/oauth-protected-resource/payments"
Content-Type: application/json
Cache-Control: no-store

{
  "authorization_details": [{
    "type": "payment_initiation",
    "instructedAmount": {
      "currency": "EUR",
      "amount": "100.00"
    },
    "creditorAccount": {
      "iban": "DE02120300000000202051"
    }
  }]
}
]]></artwork>
      </section>
    </section>
    <section anchor="processing-rules">
      <name>Processing Rules</name>
      <section anchor="client-processing-rules">
        <name>Client Processing Rules</name>
        <ul spacing="normal">
          <li>
            <t>If encountering error <tt>insufficient_authorization_details</tt>, check if body.authorization_details exists and if provided <bcp14>MAY</bcp14> include in subsequent OAuth request.</t>
          </li>
          <li>
            <t>Otherwise consult metadata:
            </t>
            <ul spacing="normal">
              <li>
                <t>Fetch resource metadata to discover accepted authorization servers and supported <strong>authorization_details types</strong>.</t>
              </li>
              <li>
                <t>Fetch authorization server metadata to discover <tt>authorization_details_types_supported</tt>.</t>
              </li>
              <li>
                <t>Fetch authorization server's <tt>authorization_details_types_metadata_endpoint</tt> to obtain metadata and schema</t>
              </li>
              <li>
                <t>Locate schema or retrieve schema_uri.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Construct authorization details conforming to the schema and include in subsequent OAuth request.</t>
          </li>
        </ul>
      </section>
      <section anchor="resource-server-processing-rules">
        <name>Resource Server Processing Rules</name>
        <ul spacing="normal">
          <li>
            <t>Advertise in resource metadata <tt>authorization_details_types_supported</tt>, where relevant.</t>
          </li>
          <li>
            <t>Verify access tokens against required authorization details.</t>
          </li>
          <li>
            <t>If insufficient, return HTTP 403 with WWW-Authenticate: Bearer error="insufficient_authorization_details".</t>
          </li>
          <li>
            <t>OPTIONALLY provide also an HTTP body with an informative actionable authorization_details object.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="cacheability-and-intermediaries">
        <name>Cacheability and Intermediaries</name>
        <t>HTTP 403 responses with response bodies may be cached or replayed in unexpected contexts.
Recommended mitigation is resource servers <bcp14>SHALL</bcp14> use <tt>Cache-Control: no-store</tt> response header.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="oauth-20-bearer-token-error-registry">
        <name>OAuth 2.0 Bearer Token Error Registry</name>
        <table>
          <thead>
            <tr>
              <th align="left">Error Code</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">insufficient_authorization_details</td>
              <td align="left">The request is missing required authorization details or the provided authorization details are insufficient.</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="oauth-metadata-attribute-registration">
        <name>OAuth Metadata Attribute Registration</name>
        <t>The metadata attribute <tt>authorization_details_types_metadata_endpoint</tt> is defined for OAuth authorization server metadata as a URL.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC3986">
        <front>
          <title>Uniform Resource Identifier (URI): Generic Syntax</title>
          <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
          <author fullname="R. Fielding" initials="R." surname="Fielding"/>
          <author fullname="L. Masinter" initials="L." surname="Masinter"/>
          <date month="January" year="2005"/>
          <abstract>
            <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="STD" value="66"/>
        <seriesInfo name="RFC" value="3986"/>
        <seriesInfo name="DOI" value="10.17487/RFC3986"/>
      </reference>
      <reference anchor="RFC6749">
        <front>
          <title>The OAuth 2.0 Authorization Framework</title>
          <author fullname="D. Hardt" initials="D." role="editor" surname="Hardt"/>
          <date month="October" year="2012"/>
          <abstract>
            <t>The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf. This specification replaces and obsoletes the OAuth 1.0 protocol described in RFC 5849. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="6749"/>
        <seriesInfo name="DOI" value="10.17487/RFC6749"/>
      </reference>
      <reference anchor="RFC8414">
        <front>
          <title>OAuth 2.0 Authorization Server Metadata</title>
          <author fullname="M. Jones" initials="M." surname="Jones"/>
          <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
          <author fullname="J. Bradley" initials="J." surname="Bradley"/>
          <date month="June" year="2018"/>
          <abstract>
            <t>This specification defines a metadata format that an OAuth 2.0 client can use to obtain the information needed to interact with an OAuth 2.0 authorization server, including its endpoint locations and authorization server capabilities.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8414"/>
        <seriesInfo name="DOI" value="10.17487/RFC8414"/>
      </reference>
      <reference anchor="RFC9396">
        <front>
          <title>OAuth 2.0 Rich Authorization Requests</title>
          <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
          <author fullname="J. Richer" initials="J." surname="Richer"/>
          <author fullname="B. Campbell" initials="B." surname="Campbell"/>
          <date month="May" year="2023"/>
          <abstract>
            <t>This document specifies a new parameter authorization_details that is used to carry fine-grained authorization data in OAuth messages.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9396"/>
        <seriesInfo name="DOI" value="10.17487/RFC9396"/>
      </reference>
      <reference anchor="RFC9728">
        <front>
          <title>OAuth 2.0 Protected Resource Metadata</title>
          <author fullname="M.B. Jones" initials="M.B." surname="Jones"/>
          <author fullname="P. Hunt" initials="P." surname="Hunt"/>
          <author fullname="A. Parecki" initials="A." surname="Parecki"/>
          <date month="April" year="2025"/>
          <abstract>
            <t>This specification defines a metadata format that an OAuth 2.0 client or authorization server can use to obtain the information needed to interact with an OAuth 2.0 protected resource.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9728"/>
        <seriesInfo name="DOI" value="10.17487/RFC9728"/>
      </reference>
      <reference anchor="IANA.oauth-parameters" target="https://www.iana.org/assignments/oauth-parameters">
        <front>
          <title>OAuth Parameters</title>
          <author>
            <organization>IANA</organization>
          </author>
        </front>
      </reference>
      <reference anchor="JSON.Schema" target="https://json-schema.org/draft/2020-12/json-schema-core">
        <front>
          <title>JSON Schema: A Media Type for Describing JSON Documents</title>
          <author initials="A." surname="Wright, Ed">
            <organization/>
          </author>
          <author initials="H." surname="Andrews, Ed">
            <organization/>
          </author>
          <author initials="B." surname="Hutton, Ed Postman">
            <organization/>
          </author>
          <author initials="G." surname="Dennis">
            <organization/>
          </author>
          <date year="2022" month="June"/>
        </front>
      </reference>
      <reference anchor="RFC2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner"/>
          <date month="March" year="1997"/>
          <abstract>
            <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
    </references>
    <?line 395?>

<section anchor="examples">
      <name>Examples</name>
      <t>This section provides non-normative examples of how this specification may be used to support specific use cases.</t>
      <section anchor="metadata-examples">
        <name>Metadata Examples</name>
        <section anchor="example-authorizationdetailstypesmetadataendpoint-response-with-payment-initiation">
          <name>Example authorization_details_types_metadata_endpoint response with Payment Initiation</name>
          <artwork><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json

{
    "authorization_details_types_metadata": {
        "payment_initiation": {
            "version": "1.0",
            "description": "Authorization to initiate a single payment from a payer account to a creditor account.",
            "documentation_uri": "https://example.com/docs/payment-initiation",
            "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "title": "Payment Initiation Authorization Detail",
                "type": "object",
                "required": [
                    "type",
                    "instructed_amount",
                    "creditor_account"
                ],
                "properties": {
                    "type": {
                        "const": "payment_initiation",
                        "description": "Authorization detail type identifier."
                    },
                    "actions": {
                        "type": "array",
                        "description": "Permitted actions for this authorization.",
                        "items": {
                            "type": "string",
                            "enum": ["initiate"]
                        },
                        "minItems": 1,
                        "uniqueItems": true
                    },
                    "instructed_amount": {
                        "type": "object",
                        "description": "Amount and currency of the payment to be initiated.",
                        "required": ["currency", "amount"],
                        "properties": {
                            "currency": {
                                "type": "string",
                                "description": "ISO 4217 currency code.",
                                "pattern": "^[A-Z]{3}$"
                            },
                            "amount": {
                                "type": "string",
                                "description": "Decimal monetary amount represented as a string.",
                                "pattern": "^[0-9]+(\\.[0-9]{1,2})?$"
                            }
                        },
                        "additionalProperties": false
                    },
                    "creditor_account": {
                        "type": "object",
                        "description": "Account to which the payment will be credited.",
                        "required": ["iban"],
                        "properties": {
                            "iban": {
                                "type": "string",
                                "description": "International Bank Account Number (IBAN).",
                                "pattern": "^[A-Z0-9]{15,34}$"
                            }
                        },
                        "additionalProperties": false
                    },
                    "remittance_information": {
                        "type": "string",
                        "description": "Unstructured remittance information for the payment.",
                        "maxLength": 140
                    }
                },
                "additionalProperties": false
            }
        }
    }
}
]]></artwork>
        </section>
      </section>
      <section anchor="payment-initiation-with-rar-error-signaling">
        <name>Payment initiation with RAR error signaling</name>
        <section anchor="client-initiates-api-request">
          <name>Client initiates API request</name>
          <t>Client uses access token obtained at login to call payment initiation API</t>
          <artwork><![CDATA[
POST /payments HTTP/1.1
Host: resource.example.com
Content-Type: application/json
Authorization: Bearer eyj... (access token from login)

{
    "type": "payment_initiation",
    "locations": [
        "https://resource.example.com/payments"
    ],
    "instructedAmount": {
        "currency": "EUR",
        "amount": "123.50"
    },
    "creditorName": "Merchant A",
    "creditorAccount": {
        "bic": "ABCIDEFFXXX",
        "iban": "DE02100100109307118603"
    }
}
]]></artwork>
        </section>
        <section anchor="resource-server-signals-insufficientauthorizationdetails-with-actionable-rar-object">
          <name>Resource server signals insufficient_authorization_details with actionable RAR object</name>
          <t>Resource server requires payment approval and responds with:</t>
          <artwork><![CDATA[
HTTP/1.1 403 Forbidden
WWW-Authenticate: Bearer error="insufficient_authorization_details",
    resource_metadata="https://resource.example.com
    /.well-known/oauth-protected-resource/payments"
Content-Type: application/json
Cache-Control: no-store

{
    "authorization_details": [{
      "type": "payment_initiation",
      "locations": [
          "https://example.com/payments"
      ],
      "instructedAmount": {
          "currency": "EUR",
          "amount": "123.50"
      },
      "creditorName": "Merchant A",
      "creditorAccount": {
          "bic": "ABCIDEFFXXX",
          "iban": "DE02100100109307118603"
      },
      "interactionId": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "riskProfile": "B-71"
}]
}
]]></artwork>
          <t>Note: the resource server has added the ephemeral attributes <tt>interactionId</tt> and <tt>riskProfile</tt>.</t>
        </section>
        <section anchor="client-initiates-oauth-flow-using-the-provided-authorizationdetails-object">
          <name>Client initiates OAuth flow using the provided authorization_details object</name>
          <t>After user approves the request, client obtains single-use access token representing the approved payment</t>
        </section>
        <section anchor="client-re-attempts-api-request">
          <name>Client re-attempts API request</name>
          <artwork><![CDATA[
POST /payments HTTP/1.1
Host: resource.example.com
Content-Type: application/json
Authorization: Bearer eyj... (payment approval access token)

{
    "type": "payment_initiation",
    "locations": [
        "https://resource.example.com/payments"
    ],
    "instructedAmount": {
        "currency": "EUR",
        "amount": "123.50"
    },
    "creditorName": "Merchant A",
    "creditorAccount": {
        "bic": "ABCIDEFFXXX",
        "iban": "DE02100100109307118603"
    }
}
]]></artwork>
        </section>
        <section anchor="resource-server-authorizes-the-request">
          <name>Resource server authorizes the request</name>
          <artwork><![CDATA[
HTTP/1.1 201 Accepted
Content-Type: application/json
Cache-Control: no-store

{
    "paymentId": "a81bc81b-dead-4e5d-abff-90865d1e13b1",
    "status": "accepted"
}
]]></artwork>
        </section>
      </section>
    </section>
    <section anchor="document-history">
      <name>Document History</name>
      <t>-01</t>
      <ul spacing="normal">
        <li>
          <t>Authorization details moved to HTTP body and made <bcp14>OPTIONAL</bcp14></t>
        </li>
        <li>
          <t>Metadata pointer from resource metadata url, full authorization details types metadata on authorization server new endpoint</t>
        </li>
      </ul>
      <t>-00</t>
      <ul spacing="normal">
        <li>
          <t>Document creation</t>
        </li>
      </ul>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+1d63bbRpL+z6foZebsSrJAkbJ808llaEmOlNiWV5LXyWS8
UhNoSohBgIsGJDOWcvY19t8+yz7KPslWVV9wJQjSyiRndnhmIhLoS3V11ddV
1dVtx3E6iZ8EYpd1j4dpcsW2e312Mjxhr0TCPZ5wxkOPHcRxFLNT/zLkgR9e
djt8NIrF9ZKVXJ6Iyyie7TKZeJ2OF7khn0DPXszHifOLuOLXvhNxaNCJeexM
dGNOf9CR6WjiS+lHYTKbQpWjg7MXnTCdjES824FCYrfjRqEUoUzlLkviVHSA
uocdHgsOVJ4KN439ZNbt3ETxh8s4Sqfw9J0YMSQ/iv1feAJtszdxlERuFHQ7
H8QMinq7HebgyPDPaSKmTjrFr0Rk51qEKXTMWJsGGVOUd98BBcAO9i1WwucT
7gfwnNr8sy+ScS+KL/EFj90reHGVJFO5u7WF5fCRfy16ptgWPtgaxdGNFFvU
whbWvPSTq3QEdWc8jkLN2i3NWt+9cnieSicW/5EKmUjLcmwjAK7KJNd/vq2e
6qHnR0u0urVgontXyQQ41VHNIOuBDMbGaRAoQfkRKWB/ofr0CjjAQ93fLjvh
/ngsfJAC9pyHH9hRmIg4pJc8oPJC8ZpG0lN0/Dke+flyPTeadDphFE/gwTVN
78mLvYfPnj7WXx8/2Xmmvz7dGezor88ePjMFnj3Zfopfj4avhz01yimPYQDQ
i8QX350ev+6duldAzS6RZTQQXzD9gg1BmzyfszMQGzYGTdoX0o39EcoOFdyP
3HQiwkR2VSM8vhQwX2a6fpYwB5IaI0kh5m9t97f7zmA7/9Zxo1hQE6RI7Ls0
FGzweJNB2W16bieEPg7zQ1CyYY+9i/3Lq2STHXi94rvDHhuGXixuZM3L5z12
mCZJFNI79iaSyYSHxTLf9mC4YejLTsdxHMZHMom5m3Q6ObwBiStp24mWOLYG
Kru+ybhknhj7ofCgVfbpk56nu7tNJkI+CoRk+Na5jDkVKsgvM/K7yVKJTAcS
UjdJYyhI/I9GPws3kb1O592VHwgCwFwfUB5QkMee/wv0k1wJJj66Vzy8FISO
8M1DWGTRuNSvB+rgB9CtnzAvgrphlOhxMM4mAhvx5YRkwg18lACWRMzzpRtd
i5hdRTf4G/GQKGbXgL/lwelOCJRwCGdXPjBLS5TuTWJ3HAAHWAQ46iHHmFFW
7B5UhKgoNi1FDGQQTdM4uvY90dC37VO9Qs7ktAD4mVMW4CkR5mNRSdN7I4IA
/5IKR1MRE42GFTN2DQqkROZEyCiNXcFOibxsqVJTBjp7d1fhAw9klGNGKG7Y
u3fvHGwQXvu4oDELFbojQcueG3lik12AMKfjse/iLJ0XuHCuuXChZRFFITY0
5ljoh57qxw+5BxKJX+vZyZWUuTyVAqVqDE9BWmFQR+WRhOz4zdnR8evhS+xz
iisnG0XejN1coVa9Gv7IRgJegbSTXgRReClxIrGDNoNSXNjUAoBjgz79cGx5
NRNAk0uQizNWPyKlYZuaKheaAKpgdB7McAxvghnqNWdgHUhUVpgxNQdadXsK
PSa+5wWi0/kCV4Q48lLqdyksKSg2DwJYb3VXOQ3UveaAYrMBXzZhMLMI5J0m
LeKxzBV0XSFh/LCcIdyMZkz6kynwCeQa9NVw5AqmXAEZVPGueehWQGwCcoiy
4cYRNAg4OwPphlUQ9Uem0AY0AU0CZ2HFxHn6ZzZ8cwQF4w8imQbcJXQ4jG4E
CORmBeMsPsmpcP3xjMCHa6awQPA4lFVAkjPQdxf1J4ApbIIng7FsiPoHspoG
IA+G55MUuB0LaAOqRGniRGNnhBBSBBVQR4lfXSbcSM5kIiYomGMAbeBC4E8A
UGDkOQzxAzAWCYymYOaiqsN7bwZWCDSiBzci8yGKq6DhwconJYE+PL/kU5jA
3U5nA5Y0RC9UBoKSOtiE+fSmEZCyyy5qVeucEPvcwPC5KX+RV7Y8SDcBP6wx
oRukVOcqBenIcL6EyxnUCjC6PU8UcTqHy2XM7sHAh57CABDraVKR0QJJKCmZ
YqL9DAIAVSx+1wG3RTFQOO7i7HGaMhRXywu7KvSKU5Fbpz2N3tI4LbnlVhkB
qKyVJcBi6BVwD9WEEGIeohtVaYWjZVAn+ooDmAfmZnJhVDdgrWPBe4HuRVgd
SaF6RndNATRKewGZmbwCHlmF9sEGmmKHCJlYIzQQmEQfAJwk9CXHMzMBRub/
RVJ7sBaQHUyaKDJuZCNAG6vdYiMRbCuzpq1FUuJDsHnrsYIw2h+jTGDD1BBg
xTVSYCBrHEcThsCBQ4lgebiEdQKxazmzTROLzAI4415urMCgiZpwzZtSG+fl
GYNORyKTlQUr6gY7TafTKFaWXwYfYgr9Aj+CTcUcxW9HCTugpu0VfAY/VOpJ
zMAJtQxXaxPJAD5vFjWzfiEh4iOnBRIWCV9+wHUyBjDQvzTY40JAskzuXpCn
k4FxA9o89kXcy6DGTD/aQ6h/hOfArsu0atSaspxKqEHl2K+xgkomsQgvSSE9
pqIWwEwAjB6aKHtRSAsOIikW2M+QVYn3BwFmWhR7knVfvT09626qv+z1MX0/
OfjXt0cnB/v4/fRw+PKl/dLRJU4Pj9++3M++ZTX3jl+9Oni9ryrDU1Z41OkC
H+ANUtU1StZVU1VY/0CgjUwBg2EFJciXHU85sErGnu+9+Z//HuwAiv8TwPj2
YPAMYFz9eDp4sgM/boBpqrcoDGb6J3By1gGsAMuCJBVAxOVTwPtAOQQS1CgE
HCa7d+Mn5Mz7XfblyJ0Odr7WD3DAhYeGZ4WHxLPqk0plxcSaRzXdWG4Wnpc4
XaR3+GPht+F77uGX3wToGjqDp9983UERMkEndgwSee2LGxIcmBWamZsII04h
KsU0QlsaRU9B256ybDY2lOG2sbE0IOlVsml9t9GefIfRKEGbVAF/K6AG4gg+
SlgNS4Jaws1SiEr1helIG6QrjspQ3un8+uuvIGyu7zs8TnTkov3ngVP3edCZ
V+gBW3u+Tma5dkp0kdva1m+L7eQK3db263yti1jYM+2sDdfZW2Ar0XJb22Rt
V9rDztNzmgCj5G2Jni/rCWoY1wuQVeLN1wV61vbW2U7/IXsRxSNw9sBiwE8r
PlfGVbbudtlzkBoRL6hGUvdVd7GBBUDa3JKRaGvjf9X9yUq5tWbTOHjfXdCS
+uwuLlWa+uUZt7a/nhnmVkpv801bqVhBQOsIetDQDqv/3N7WuBG31XY0WswX
UOrgQFuhtvEm/hwU+KOt9JXGtbZvAn0U08HPaoIuPk61awVeEmHzejt5yn1f
rWf4YJ9ntB5kz4sBGNYoKWztxTyJw08NBNW389tLXHW0TZIyX+LsYK3cNUvc
t/cmcfqzW18k/7SJnsN1tG31oosMWa0d/Lyl5diObuV2WHFQK7WzdrReFdwV
6TFi/GB1/vwt5Lk83NXkGT9FCG2W5+/KfN6LPHFbR2hjO/pTnvdV+fP58vP9
OjujIEfeuFuannnzvip/KlXgP4rMbM5Wn/cl6Fl7CfOuYkGqf/X8nuZr5fWr
yahae6Ws9T30TjESs6C56vCWJmve9LO6zwrTz5Y05Ja37OfQs/Z6nW33++z4
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
l/C+6pLr0L3r/B+jKCLVl2wAAA==

-->

</rfc>
