<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.30 (Ruby 3.2.10) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

<!ENTITY RFC2119 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC8174 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY RFC9110 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9110.xml">
]>


<rfc ipr="trust200902" docName="draft-ryan-httpauth-payment-00" category="exp" submissionType="independent">
  <front>
    <title abbrev="Payment Auth Scheme">The "Payment" HTTP Authentication Scheme</title>

    <author initials="B." surname="Ryan" fullname="Brendan Ryan">
      <organization>Tempo Labs</organization>
      <address>
        <email>brendan@tempo.xyz</email>
      </address>
    </author>
    <author initials="J." surname="Moxey" fullname="Jake Moxey">
      <organization>Tempo Labs</organization>
      <address>
        <email>jake@tempo.xyz</email>
      </address>
    </author>
    <author initials="T." surname="Meagher" fullname="Tom Meagher">
      <organization>Tempo Labs</organization>
      <address>
        <email>thomas@tempo.xyz</email>
      </address>
    </author>
    <author initials="J." surname="Weinstein" fullname="Jeff Weinstein">
      <organization>Stripe</organization>
      <address>
        <email>jweinstein@stripe.com</email>
      </address>
    </author>
    <author initials="S." surname="Kaliski" fullname="Steve Kaliski">
      <organization>Stripe</organization>
      <address>
        <email>stevekaliski@stripe.com</email>
      </address>
    </author>

    <date year="2026" month="February" day="15"/>

    
    
    

    <abstract>


<?line 39?>

<t>This document defines the "Payment" HTTP authentication scheme,
enabling HTTP resources to require a payment challenge to be
fulfilled before access. The scheme uses the HTTP 402 "Payment
Required" status code with the WWW-Authenticate and Authorization
headers to negotiate payment between clients and servers.</t>

<t>The protocol is payment-method agnostic; specific payment methods
are defined in separate specifications.</t>



    </abstract>



  </front>

  <middle>


<?line 50?>

<section anchor="introduction"><name>Introduction</name>

<t>HTTP 402 "Payment Required" was reserved in HTTP/1.1 <xref target="RFC9110"/>
for future use but never standardized. This specification defines
the "Payment" authentication scheme that gives 402 concrete
semantics.</t>

<t>A server requiring payment responds with 402 and a
<spanx style="verb">WWW-Authenticate: Payment</spanx> challenge describing the payment
requirements. The client fulfills the payment and retries with
an <spanx style="verb">Authorization: Payment</spanx> credential. The server verifies the
credential and grants access.</t>

<t>Payment methods, intents, and protocol details are defined in
subsequent revisions of this document and companion
specifications.</t>

</section>
<section anchor="requirements-language"><name>Requirements Language</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="security-considerations"><name>Security Considerations</name>

<t>Payment credentials authorize financial transactions and <bcp14>MUST</bcp14>
be treated as sensitive bearer tokens. Implementations <bcp14>MUST</bcp14> use
TLS for all Payment authentication flows. Detailed security
analysis will be provided in a future revision.</t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>This document registers the "Payment" authentication scheme in
the "Hypertext Transfer Protocol (HTTP) Authentication Scheme
Registry" established by <xref target="RFC9110"/>:</t>

<t><list style="symbols">
  <t><strong>Authentication Scheme Name</strong>: Payment</t>
  <t><strong>Reference</strong>: This document</t>
  <t><strong>Notes</strong>: Used with HTTP 402 for proof-of-payment flows</t>
</list></t>

<t>Future revisions will request creation of additional registries
for payment methods and payment intents.</t>

</section>


  </middle>

  <back>



    <references title='Normative References' anchor="sec-normative-references">

&RFC2119;
&RFC8174;
&RFC9110;


    </references>




<?line 111?>

<section anchor="acknowledgements"><name>Acknowledgements</name>

<t>TBD</t>

</section>


  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA41WbW8bNwz+rl/BuV+2IPbsIMBar2jrJC2SLm+zHQTFMKDy
HW1rPktXSRfHLfJf9lv2y0ZKOtuXZEOB1tHxKL48fEheu90WXvkC+zCeI7Su
5XqJ2rfgdDy+hkHl5/SkMumV0TDK5rhEIScTi3d9SLpBq36Xm0zLJVnLrZz6
tl1L3Z57X0rSaZfxQrvbFXdoHZnsA53JOs6MXfcB70uhStsHbyvnD7rdV90D
4arJUjnW9uuSLCudY4n0o73IjHaoXeX6MJWFQyHYkbF9AdCGGMmRJWWpYUix
kBjIAKkfdbYCXEpV9GESFd95XJamc7/+Gl4aOyNsWATncuJ2DH+UC4QLc4/r
rdmPnR1JsvsX6X230bFZwgXK2Rzt1uq405Alu5ToUrrvDxenU7hFMujppxFy
U1qHvaql75y3qsROZpZbH6Mg27E/8niH8JsslFuorflRpyFLxh0rL6L8/8wL
beyS2HeHXNLhh+ODXu9VOr7s/XKYjq96vW5ftInM/AOUuLcy80KM58oBkbIK
TM1xqjQ6Qu4J1WWT6i7QeV+glpNC6VlUsuhMZTO2YOjhS6UsgoTEa8jmsihQ
z5BfT1BMq2KqSJLTw9SwakZ3XSe0WvQAlUvxBAeH3YNNYGIYHeQtQkv6ykFm
coSVom7jC7e3t+2dBiXrOg+9aKz6GrIQc5Q5NRqHo6nFvGK1OtoJ+hWihqxQ
9OjCdYeWO7PDwJGmNd5kpgDCsO7dJZKDHORMG0d+fwVXYqamKtvYjRpOSEo4
Ap4TE8h0KS37ry+EENkVV2yp8rygcr+AM+2tyassJCCeoAJbVFbScUU45OCB
dX/udXrw7VuixMODINxhWvnKBqhhUnmCgnJkTKnbba6+Ys4VoRwbkdVkEU2y
PMsTqof0MCOWuhAsjaXMokfhiO6szGkOErqJOEyqGjLKojQ6d7G4bIGLIcXn
xzXeDN3PO2TL0WVWTdggx5qMisRPPifKxUpDoqXb1Q4OKWSrMEYhaGJ+brBp
1zfhzyHJInE5Jkb/Cb7IZ7HVCbZnVgaSxQ4Q4rrJln0qoOdI94P2hnk5epoX
dK9BJt4JjtKL2N0pXg4OzJQc77Y7W6KhUkrNXHrCuxc1lwJENC71rJIzjNxf
4BpWxlJNWhc3o3FrP/6Fy6twHr7//eZs+P6Ez6PTwfn55iCSxuj06ub8ZHva
3jy+urh4f3kSL5MUGiLRuhh8akUYWlfX47Ory8F5i/n9KDmbxkxAzpbMN+KM
E4kOsSeOjq//+bt3SC3xQxqeDw/pgccnPayIXNGb0cU6PVIB10KWJUrLVohp
kMlSedqxpEudMjcrDbSPkHDc+4OR+bMPrydZ2Tt8kwSccENYY9YQBsyeSp5c
jiA+I3rGzQbNhvwR0s14B58azzXuO8LXb2kPILR7L9++EUyeEWaVVX4Nx0Qn
RXM2EmtL7W0HOJCpkxCIw1Jn3Ba0orSTYdDF6cuoCSqotyhjMYG/bhSvPyo0
VdxSyRck6sDZsiwCcaPXcJcnnBifj4CHHtesjuTR0JoWZkUmTkJvIU/9mAn1
vCzWTvEEoNuTsAHuKLVAJVnP0brjQgudDS4HTxBobl2LM0X73j7eu8+PUuru
oHZKH3vW472HMeM0pdyv66nwI4/6n/7j83QY3Nl1C5BmPG1vN+cNvN5dC33a
OrC396wBuKTPmb29zbgLmkOkAFBn4UUjvfD60nh0/OrGka8wxTebi4tBOJpp
m/7V4zaUQIgPTUQT8Dy5KXYmUAyMJpvMc8VnWSQ8eVKH7fZo78b5mWRpqKYl
O5HZgms2yBbarKjyszj6qGBHJ+JfG89w6wsMAAA=

-->

</rfc>

