Home / Standards / Browser Payment App HTTP Request Header Standard

Browser Payment App HTTP Request Header Standard

This HTTP header will help newcomers start using Bitcoins, even they don’t know anything about it.


The purpose of the Browser Payment App HTTP Request Header is to inform a web server what payment capabilities a visitor has. By having this information, a web server can adjust the payment handling so it best fits the visitor’s payment capabilities.

The HTTP request header is typical sent by a payment app which has been installed in the visitor’s web browser. Example of such payment app is the Banking App, which is part of the Bitcoin Cheque project.

The payment capabilities provided by a visitor can be used to pay for reading web content at a newspaper or for purchasing goods at a web-shop. The payment can be made in Bitcoin or in other crypto currencies. The payment procedure itself is not a part of this standard document.

The main motivation for having this HTTP header, is for the web server to know whatever the visitor have a payment app installed or not. If the header is missing, then the web server can adjust the page and send the visitor to an alternative payment site. At this site the visitor can make the payment or download a payment app. This is actual an very important feature, as it will give all visitor a possibility to pay, whatever they are using Bitcoin or not. In that way this header can help mass adaptions of Bitcoins.

List your browser HTTP headers

Typical, a Browser Payment App HTTP  Request Header looks like this:


This header tells us that the visitor can pay using Cheque Payment Protocol and Payment Cheque holding Bitcoin.

You can list your own browser’s HTTP request header here:


If you have installed the Banking App that can be downloaded from Chrome Marketplace, you will also see your own “Payment-App” HTTP header listed.


The Browser Payment App HTTP Request Header Standard is based upon the following requirements and premises:

  • The HTTP header must inform what payment capabilities a visitor can provide and if the visitor has installed
    • a payment app that are using the Cheque Payment Protocol and what versions of Payment Cheque it can handle;
    • a payment app supporting the Bitcoin BIP-70 Payment Protocol has been installed;
    • a “traditional pre-BIP-70” Bitcoin wallet has been installed;
    • and if a visitor has several payment capabilities, the header must be able to inform all capabilities;
    • and if several capabilities exist, these must be listed in a prioritize order.
  • The HTTP header must inform what currency the visitor can pay and 
    • all currencies as listed in the ISO 4217 must be supported;
    • other crypto-currencies used by the community that is not listed in the ISO 4217 must also be supported;
    • if a visitor can pay with several currencies, the header must be able to list all of them;
    • and if several currencies are be provided, the header must be able to list them in a prioritized order.
  • The web-server must be able to understand if user has no payment capabilities.
  • The HTTP header must be compact to reduce the traffic load. (The header will be sent in every HTTP requests.)
  • New payment protocols and new cheque specifications may be develop in the future. This standard must allow for a wide variety of developments, both what can be expected and what is of a more unforeseen nature.
  • Visitor’s payment app may become outdated and use old versions of the header standard. The web server must be able to read what version the header is.
  • Web server may become outdated and visitors may use newer HTTP header versions than what the web server have implemented. If the new release is only of minor matter, the web server should be able to read and understand the previous versions part of it. This can be updates like added currencies, new payment cheque versions etc.

The standard document

Below is the current draft of the standard. It can also be found on Github:


404: Not Found