Accepting Bitcoin Payments with Coinbase
What is Bitcoin?
"Bitcoin is a peer-to-peer payment system and digital currency introduced as open source software in 2009 by pseudonymous developer Satoshi Nakamoto. It is a cryptocurrency, so-called because it uses cryptography to control the creation and transfer of money. Users send payments by broadcasting digitally signed messages to the network. Participants known as miners verify and timestamp transactions into a shared public database called the block chain, for which they are rewarded with transaction fees and newly minted bitcoins. Conventionally "Bitcoin" capitalized refers to the technology and network whereas "bitcoins" lowercase refers to the currency itself. Bitcoins can be obtained by mining or in exchange for products, services, or other currencies." -Wikipedia article on Bitcoin
Prerequisites for accepting Bitcoin
- UltraCart account operating in USD.
- Coinbase account (signup at https://www.coinbase.com )
- Use the UltraCart regular checkout
Once you have a Coinbase account it is easy to configure the UltraCart side. Navigate to:
Scroll down the page to the Coinbase section which should look like this:
Click on the button "Link Coinbase.com to UltraCart with OAuth2" as shown in the screen shot above. Once you click the button a Coinbase.com login page will appear as shown below.
After logging in to Coinbase you will see a screen asking if it's OK for UltraCart to perform certain actions on your Coinbase account.
Authorize button. UltraCart will then be granted API permission to perform the necessary operations to receive Bitcoin payments from your customers. UltraCart will display a confirmation page.
How the checkout works
During the checkout process the customer will be prompted to select their form of payment as shown below.
After selecting Bitcoin and clicking
Continue they will be shown the Coinbase payment page that looks like:
The customer can pay with their Coinbase account or send bitcoins to an address. Once they've completed the payment they will see a Coinbase confirmation screen like the one below.
At this point Coinbase has notified UltraCart of the payment and their order has been created. When the customer clicks the
Return to button at the bottom of the Coinbase confirmation screen they will see the UltraCart receipt.
Frequently Asked Questions
Q: Why is there a second method of authentication for Coinbase labeled API Key?
A: Using the Coinbase API key method of authentication is necessary when you are sharing a Coinbase account with multiple UltraCart accounts.
Q: What if the customer does not click the blue return to button?
A: UltraCart will still create the order, but since the receipt does not appear, you may not fire all your conversion and tracking pixels. Most customers want to see their receipt so they will click it. In the future Coinbase will probably add an option to automatically redirect the customer to the confirmation page as most other 3rd party payment pages have done over time.
Q: Bitcoin transactions are not instantaneous. How does UltraCart handle this?
A: Correct. If not a Coinbase-to-Coinbase account transaction there is a certain amount of time before the transaction will be fully confirmed by the network. When this happens UltraCart keeps the order in the Pending Clearance status and checks every 10 minutes with Coinbase to see when the transaction goes from Pending to Completed. Once it's Completed it is safe for UltraCart to release the transaction to your shipping department.
Q: Can a customer charge back or reverse a payment on the merchant?
A: No, it is not possible to perform a charge back against the merchant. Think of Bitcoin as digital cash and treat it as such. If the customer came into your physical store and paid you $100 of cash for a product they would be trusting you as the merchant to make things right if there is a problem with the order. Bitcoin is new. If you harm a customer that paid you with Bitcoin you will establish a negative reputation for the payment method and discourage others from using it in the future.
Q: Bitcoin is very volatile. How can I hedge my risk against this volatility?
A: Do what Overstock.com does. They use Coinbase to convert the Bitcoin to USD instantly and then extract the funds on a daily basis. Under Merchant Settings in your Coinbase account you can enable this feature as shown below.
UltraCart highly recommends that you enable this feature to take the intraday volatility risk out of holding Bitcoins.
Q: What if I need to refund a customer who paid with Bitcoin?
A: UltraCart does not currently support sending refunds through Coinbase automatically. We recommend that you establish in your return policy that all refunds are performed in USD regardless of the form of payment. If you want to refund the customer using Bitcoin at the time of the refund, you can manually send them the USD equivalent to their Bitcoin address at the time of the refund. It's important that you establish this policy before accepting bitcoin or refunds will become a form of risk that you will be taking on.