Expiration of a Bitcoin payment from the point of view of an online shop
This post is also available in: German
Bitcoin payment from the point of view of an online shop
The following post describes how a Bitcoin payment is made from a merchant’s point of view. Here you will learn how to initiate a Bitcoin payment, how to convert Euros to Bitcoin and How the merchant is informed of the successful payment in order to deliver the goods.
If you already run your own online shop, you have already integrated the most common payment methods such as credit card, PayPal and online transfers. Thus, you are familiar with the basics of payment processing. Payment processing for Bitcoin payments is identical in many areas and even easier in technical implementation. For a better understanding of the integration of Bitcoin, as another payment method, this contribution should serve.
Customer payment in the online shop
In an online shop, prices are usually awarded euros, but how can the customer pay with Bitcoin?
The end customer selects the goods awarded in euros in an online shop and puts everything in the shopping cart. After completion of the purchase, the customer goes to the checkout and the so-called checkout process begins. When purchasing physical goods, the end customer gives the required data at the checkout, such as shipping address and contact details, and then reaches the payment page.
The payment page lists all payment options offered. In addition to credit cards and PayPal, Bitcoin and other cryptocurrencies can also be listed as a payment method.
If the customer chooses Bitcoin as a payment method, the current Bitcoin price is requested in the background at a Bitcoin exchange. Based on the current exchange rate, the Euro value of the shopping cart is converted and the value of the shopping cart converted into Bitcoin.
At the same time, a unique Bitcoin address is generated for this order. This Bitcoin address, including the invoice amount in Bitcoin, is displayed to the end customer in the form of a QR code.
The end customer pays by scanning the QR code and the payment process is initiated.
Bitcoin payment incurs fees in the form of a transaction fee. This fee is paid by the buyer. The transaction fee is paid to the miner for the processing and confirmation of this transaction.
Each transaction must be recorded and confirmed in a block. Only when the Bitcoin payment has been confirmed, this payment is considered final and irrevocably completed. Before a transaction can be confirmed in a block, the transaction waits for it to get a place in a future block.
The order on the waiting list is assigned according to the principle of an auction. The higher the transaction fees that the payer is willing to pay, the further ahead is the space in the queue and the faster the transaction is processed and confirmed.
The price of a transaction depends on the size of the file and is paid in Satoshi per byte. The average file size is about 220 bytes. The price per byte is determined by what you are willing to pay to be in the next block.
Learn more about calculating transaction fees
This procedure can be imagined as at a bus stop where many people are waiting for the next bus. On average, there is a bus every 10 minutes. If the current bus has only a few seats left, the price will increase by the few last seats. Some waiters forgo the current bus and prefer to secure a cheap place in the next empty bus.
Typically, it is divided into three speed levels (fast, normal, slow). When the payer makes a payment in their wallet, most wallets suggest a normal speed. This recommendation can be followed by the customer or the fee can be adjusted itself.
The amount of the transaction fee and the associated speed of payment lies solely with the payer. The payee (merchant) has no influence to speed up the crediting of the payment.
Bitcoin payment is in the mempool
The life cycle of a Bitcoin transaction consists of two steps: First, the transaction is propagated on the network. This means that every transaction can be detected by anyone after just a few milliseconds. In this state, the transaction is still considered unconfirmed.
Only when a miner packs the transaction into a block and attaches this block to the Blockchain, the transaction is considered confirmed. This can happen after just one or two minutes. Depending on the selected amount of the transaction fee by the payer and the operation on the Blockchain, a transaction can also take hours or days.
The Mempool is virtually the waiting room for all unconfirmed transactions waiting for a free seat in one of the next blocks.
When the payer makes the payment, this transaction is propagated within a millisecond in the mempool. The merchant immediately recognizes that the transaction is on the way. The merchant can also see how high the transaction fee paid has been and draw conclusions as to how long it might take for the transaction to be finally confirmed.
Depending on the business model, there are different recommendations for action. In the case of high-priced goods, the delivery of the order should be waited until at least 6-7 confirmations have been made about the transaction. Then the payment is secure and can no longer be reversed. The payment is virtually guaranteed.
However, this can still take one to two hours with a normal or high transaction fee. If the goods are sent by post, this is not a major problem. In the meantime, the goods can be made ready for dispatch and will not travel until the confirmations of the transaction are recorded in the Blockchain.
In the case of digital or low-quality goods, customers cannot be expected to wait so long. Therefore, it is recommended to allow access to the digital goods as soon as the payment has been made by the customer. The payment is made by the customer, but has not yet been credited to the merchant. It is only a matter of time when the credit will be made.
There is little risk that the payment will not be completed at all. In theory, this is only possible if no transaction fee has been paid by the customer at all. The marginal default risk should be accepted by a merchant, as customers expect a quick settlement. The added value from satisfied customers is much higher than the low potential risk of default.
Receipt of payment at the merchant
If the customer’s Bitcoin payment has been successfully processed and confirmed in a block, the Bitcoin sits on the merchant’s wallet.
The merchant must now assign the payment receipt to the corresponding order.
In the case of a Bitcoin payment, the merchant knows the Bitcoin address assigned to the particular order. The amount of Bitcoin is also known, which is expected to be received on the wallet.
There is no clear use that would allow a clear identification of the receipt of payment. This function indirectly fulfills the Bitcoin address used only once.
The Bitcoin amount cannot be used as a unique identifier. The amount transferred may have been changed by the payer and an underpayment or overpayment will occur.
There are two main reasons for this. For example, the customer wants to buy a product for €50,- in Bitcoin. The merchant calculated the value based on the current price at the time of ordering.
The end customer will be shown the equivalent value in his Wallet at the time of payment. This may result in different courses. This may result because some time has passed or because different stock exchanges were used to calculate the price.
More often, an underpayment occurs because the end customer does not execute the Bitcoin payment from his wallet, but directly from an exchange. Here, the transaction fees are deducted from the payout amount by the stock exchange. Accordingly, the payment received by the merchant is reduced by the transaction fee.
The merchant must decide how to deal with such underpayment. If the underpayment is tolerated and accepted as a successful payment or the difference will be demanded subsequently.
Due to the potential difference between the expected Bitcoin amount and the actual credit, a clear assignment of the Bitcoin payment alone over the amount is not clearly possible.
This problem is solved by the merchant using a separate and unique Bitcoin address for each order. This ensures a clear assignment from an order to a payment receipt.
The organization and processing of a Bitcoin payment is offered by Bitcoin payment provider as a service for online merchant. A detailed description of the services, you can find in the post “What does a Bitcoin payment provider do?“
This post is also available in: German