{"number":72,"title":"bitcoin: uri extensions for Payment Protocol","authors":["Gavin Andresen"],"status":"Deployed","type":"Specification","layer":"Applications","created":"2013-07-29","requires":[],"replaces":[],"replacedBy":[],"discussion":[],"abstract":"This BIP describes an extension to the bitcoin: URI scheme (BIP 21) to support the payment protocol (BIP 70).","eli5":"Extends \"bitcoin:\" links (BIP 21) with a parameter pointing to a payment request from the payment protocol (BIP 70). Wallets that support the protocol fetch the merchant's signed request, while older wallets fall back to the plain address.","categories":["payments","uri"],"filename":"bip-0072.mediawiki","githubUrl":"https://github.com/bitcoin/bips/blob/master/bip-0072.mediawiki","format":"mediawiki","readingMinutes":1,"inbound":2,"revisions":16,"impact":69,"core":false,"references":[],"lastModified":"2025-10-08","html":"<h2 id=\"abstract\">Abstract</h2>\n<p>This BIP describes an extension to the bitcoin: URI scheme (BIP 21) to support the payment protocol (BIP 70).</p>\n<h2 id=\"motivation\">Motivation</h2>\n<p>Allow users to click on a link in a web page or email to initiate the payment protocol, while being backwards-compatible with existing bitcoin wallets.</p>\n<h2 id=\"specification\">Specification</h2>\n<p>The bitcoin: URI scheme is extended with an additional, optional \"r\" parameter, whose value is a URL from which a PaymentRequest message should be fetched (characters not allowed within the scope of a query parameter must be percent-encoded as described in RFC 3986 and bip-0021).</p>\n<p>If the \"r\" parameter is provided and backwards compatibility is not required, then the bitcoin address portion of the URI may be omitted (the URI will be of the form: bitcoin:?r=... ).</p>\n<p>When Bitcoin wallet software that supports this BIP receives a bitcoin: URI with a request parameter, it should ignore the bitcoin address/amount/label/message in the URI and instead fetch a PaymentRequest message and then follow the payment protocol, as described in BIP 70.</p>\n<p>Bitcoin wallets must support fetching PaymentRequests via http and https protocols; they may support other protocols. Wallets must include an \"Accept\" HTTP header in HTTP(s) requests (as defined in RFC 2616):</p>\n<pre><code>Accept: application/bitcoin-paymentrequest</code></pre>\n<p>If a PaymentRequest cannot be obtained (perhaps the server is unavailable), then the customer should be informed that the merchant's payment processing system is unavailable. In the case of an HTTP request, status codes which are neither success nor error (such as redirect) should be handled as outlined in RFC 2616.</p>\n<h2 id=\"compatibility\">Compatibility</h2>\n<p>Wallet software that does not support this BIP will simply ignore the r parameter and will initiate a payment to bitcoin address.</p>\n<h2 id=\"examples\">Examples</h2>\n<p>A backwards-compatible request:</p>\n<pre><code>bitcoin:mq7se9wy2egettFxPbmn99cK8v5AFq55Lx?amount=0.11&r=https://merchant.com/pay.php?h%3D2a8628fc2fbe</code></pre>\n<p>Non-backwards-compatible equivalent:</p>\n<pre><code>bitcoin:?r=https://merchant.com/pay.php?h%3D2a8628fc2fbe</code></pre>\n<h2 id=\"references\">References</h2>\n<p><a href=\"http://www.w3.org/Protocols/rfc2616/rfc2616.html\">RFC 2616</a> : Hypertext Transfer Protocol -- HTTP/1.1</p>","toc":[{"id":"abstract","title":"Abstract","level":2},{"id":"motivation","title":"Motivation","level":2},{"id":"specification","title":"Specification","level":2},{"id":"compatibility","title":"Compatibility","level":2},{"id":"examples","title":"Examples","level":2},{"id":"references","title":"References","level":2}],"history":{"totalCommits":16,"firstCommit":"2013-10-21T01:00:23-04:00","lastUpdated":"2025-10-08T14:59:36-07:00","events":[{"sha":"24e96e870fffaa257b465ce1f0370c14aac588e8","date":"2025-10-08T14:59:36-07:00","author":"Murch","message":"process: Created ↦ Assigned","url":"https://github.com/bitcoin/bips/commit/24e96e870fffaa257b465ce1f0370c14aac588e8","kind":"edit"},{"sha":"5207ef92a52d0b8902895b0dbb40823a4d698ec9","date":"2025-04-11T20:08:17-07:00","author":"Murch","message":"process: Author ↦ Authors","url":"https://github.com/bitcoin/bips/commit/5207ef92a52d0b8902895b0dbb40823a4d698ec9","kind":"edit"},{"sha":"59730dec4fb641a41589aa1b91d3c452f13e0e36","date":"2025-04-11T20:05:13-07:00","author":"Murch","message":"process: Remove Comments-URI and -Summary","url":"https://github.com/bitcoin/bips/commit/59730dec4fb641a41589aa1b91d3c452f13e0e36","kind":"edit"},{"sha":"a233bde4af52c6a11269e2e6dd9707abce441ffe","date":"2025-04-11T18:19:21-07:00","author":"Murch","message":"process: Standards Track ↦ Specification","url":"https://github.com/bitcoin/bips/commit/a233bde4af52c6a11269e2e6dd9707abce441ffe","kind":"edit"},{"sha":"5d3ceb37734f80b2ec206fc94245e3bfd6d5b0f0","date":"2025-04-11T18:08:44-07:00","author":"Murch","message":"process: Final/Active ↦ Deployed","url":"https://github.com/bitcoin/bips/commit/5d3ceb37734f80b2ec206fc94245e3bfd6d5b0f0","kind":"status"},{"sha":"9a56d3544eac1f949a747c251810f7a440d63fb9","date":"2024-07-25T18:35:39+03:00","author":"Orfeas Stefanos Thyfronitis Litos","message":"Remove trailing whitespace from all BIPs","url":"https://github.com/bitcoin/bips/commit/9a56d3544eac1f949a747c251810f7a440d63fb9","kind":"edit"},{"sha":"959fecc15bdad070afa63455468b1dba54655fa6","date":"2016-11-30T09:47:31+00:00","author":"Luke Dashjr","message":"Promote BIP 2 Draft->Active, and implement it","url":"https://github.com/bitcoin/bips/commit/959fecc15bdad070afa63455468b1dba54655fa6","kind":"status"},{"sha":"72f18918a8ae655212ea2700b30f0dc4d758b843","date":"2016-11-30T09:45:33+00:00","author":"Luke Dashjr","message":"Promote BIP 123 Draft->Active, and implement it","url":"https://github.com/bitcoin/bips/commit/72f18918a8ae655212ea2700b30f0dc4d758b843","kind":"status"},{"sha":"83ade87ba339b1895a70ea172e2369810bdc3708","date":"2014-06-12T10:47:49-04:00","author":"Gavin Andresen","message":"Status changed from Draft to Final","url":"https://github.com/bitcoin/bips/commit/83ade87ba339b1895a70ea172e2369810bdc3708","kind":"status"},{"sha":"e91d87919bf3cce6d0dcd5c5bf1960c65129c0a5","date":"2014-04-26T17:39:26+01:00","author":"Ross Nicoll","message":"Added note about handling HTTP statuses which are neither error nor success.","url":"https://github.com/bitcoin/bips/commit/e91d87919bf3cce6d0dcd5c5bf1960c65129c0a5","kind":"edit"},{"sha":"d3d1f242fd13527137f01310458132c5a324e79a","date":"2014-04-26T17:34:03+01:00","author":"Ross Nicoll","message":"Added reference to RFC 2616 to BIP0072.","url":"https://github.com/bitcoin/bips/commit/d3d1f242fd13527137f01310458132c5a324e79a","kind":"edit"},{"sha":"1647c7e6d3e3866454b803fd874df2d0c4991f4a","date":"2014-04-05T13:46:56+02:00","author":"Wladimir J. van der Laan","message":"Change date format to ISO 8601","url":"https://github.com/bitcoin/bips/commit/1647c7e6d3e3866454b803fd874df2d0c4991f4a","kind":"edit"},{"sha":"820736896ec0ee34c4a7b2432e0164ace75745b9","date":"2014-03-06T17:16:03-08:00","author":"William Swanson","message":"BIP 72: Reduce the amount of escaping needed","url":"https://github.com/bitcoin/bips/commit/820736896ec0ee34c4a7b2432e0164ace75745b9","kind":"edit"},{"sha":"b8028440f00dddd92d64bb5db982e57f6872af89","date":"2013-12-06T09:09:22+10:00","author":"Gavin Andresen","message":"Replace request= with shorter, QR-friendlier, r=","url":"https://github.com/bitcoin/bips/commit/b8028440f00dddd92d64bb5db982e57f6872af89","kind":"edit"},{"sha":"d9e890a8f27e46806238e298a346397871fd7e87","date":"2013-10-21T02:18:47-04:00","author":"Peter Todd","message":"Fix formatting","url":"https://github.com/bitcoin/bips/commit/d9e890a8f27e46806238e298a346397871fd7e87","kind":"edit"},{"sha":"63416823c0fa984a92e03acc0e57a45ce2bc8b35","date":"2013-10-21T01:00:23-04:00","author":"Peter Todd","message":"Archive Revision as of 01:33, 28 August 2013","url":"https://github.com/bitcoin/bips/commit/63416823c0fa984a92e03acc0e57a45ce2bc8b35","kind":"edit"}]}}