Since BitPay started in 2011, we've been obsessed with improving the bitcoin payment experience.
Bitcoin has powerful benefits for online payments. But there are always challenges with introducing a big change in how payments work. Bitcoin has been no exception. It's our goal to make this new form of payment secure, seamless, and reliable for businesses and their customers.
In 2014, we took a major step toward that goal by adopting the Bitcoin Payment Protocol on all BitPay invoices and in BitPay's wallet platform. We are now beginning the work to require Payment Protocol wallet payments for all BitPay invoices.
What is the problem?
If you have used Bitcoin before, you've noticed that it's possible to make mistakes that don't happen with other online payments. You can send too much or too little bitcoin. You can send bitcoin to the wrong bitcoin address. You can send a bitcoin payment with a bitcoin miner fee that is too small, causing your payment to take days to confirm.
We answer thousands of customer support requests every month, and we see first-hand how these problems affect BitPay merchants and their customers. Correcting these mistakes by sending refunds back to customers is a bad solution. It costs customers time and money, and it costs merchants successful orders.
With the rising cost of bitcoin miner fees, refunds are also often costly to send. Customers with mistaken payments only receive partial refunds of the BTC they sent because of miner fee costs. One customer of a BitPay merchant recently spent 0.003853 BTC on a payment which was mistakenly underpaid by a small amount. They were only able to receive a refund of 0.002247 BTC. This is not the experience we want bitcoin users to have.
In some cases, the miner fees required to send a refund are higher than the refundable amount. This means that customers can send funds and receive neither their order nor a refund. BitPay can’t even access these funds. They are unspendable.
While BitPay does not control bitcoin miner fee levels, we can take steps to reduce the risk of mistaken payments for our merchants and their customers.
Why is payment protocol the solution?
Payment Protocol eliminates user error in bitcoin payments.
When a Payment Protocol wallet interacts with a Payment Protocol URL, it creates an SSL-secured connection to the true owner of the receiving bitcoin address (in this case, BitPay).
Instead of copying and pasting a bitcoin address and entering any BTC amount, customers simply click or copy/paste a payment protocol URL on a BitPay invoice. If their wallet also "speaks" Payment Protocol, the correct receiving bitcoin address and the correct sending amount are locked in automatically.
If a user tries to send an incorrect payment amount, or if the wallet sending the payment doesn't "speak" payment protocol, BitPay's servers will reject and not broadcast the transaction.
We can also analyze transactions to make sure an adequate bitcoin miner fee is included. If the fee isn't sufficient to allow the transaction to confirm on the bitcoin network on time, BitPay can return a helpful message back to the wallet to let the user know. Mistaken payments will never reach the Bitcoin network.
No funds move unless they're secure and successful. By preventing mistaken payments from ever being broadcast, the Payment Protocol reduces unnecessary Bitcoin network congestion. Most importantly, it will save bitcoin users the cost of bitcoin miner fees for payments that don’t succeed.
What will this mean for BitPay merchants?
BitPay merchants can expect fewer payment support issues and better customer experiences. Even better, this Payment Protocol standard for BitPay invoices will require no technical change from BitPay merchants. Payment protocol has been working as a payment option on BitPay invoices since 2014.
Some of your customers are not using Payment Protocol-compatible wallets. As we deploy this change, we will be working with them so they can easily migrate to compatible payment solutions.
We will be sending more information and advance notification to merchants like you before we roll this change out to all BitPay invoices.
What will this change if I'm paying a BitPay merchant?
If you are using the BitPay, Copay, Mycelium, Bitcoin Core, Airbitz, or Electrum wallets for your bitcoin payments, nothing will change. These true bitcoin wallets all already "speak" Payment Protocol. If you are using a non-Payment Protocol wallet or service to pay BitPay invoices, you will need to move your spending bitcoin to a wallet or service which can support Payment Protocol. We strongly recommend that you use a true bitcoin wallet for spending to avoid delayed transactions, but you will be able to use any service compatible with Payment Protocol.
You can already start sending payment protocol payments today. Learn more about how to pay from a payment protocol wallet.
In the coming months, we will be working with the top wallets and exchanges in the bitcoin space to advance this adoption of Payment Protocol. We will move as quickly as possible toward full adoption and full rollout of Payment Protocol-only payments for all BitPay invoices.
The Payment Protocol implementation which BitPay invoices will support is detailed in Bitcoin Improvement Proposals 70, 71, and 72. However, we recommend that wallets take an additional step and not broadcast payments rejected via the Bitcoin Payment Protocol.
We want to work together with our industry to solve the problem of secure, reliable payment experiences for bitcoin users. This is something which is essential for our customers, so if necessary, we will carry this forward alone. But we believe that if we work together, the entire Bitcoin ecosystem will be better prepared to provide scalable, user-friendly internet payments for a world that needs the Bitcoin alternative.
Subscribe to the BitPay blog for more updates as we move toward our goal.
12/15/17: A previous version of this post did not include the Bitcoin Core wallet as a compatible wallet. We have updated the post.
1/7/18: A previous version of this post did not include the Airbitz wallet as a Payment Protocol compatible wallet.