Following these steps makes implementing bitcoin at your business easy as can be.
Dear Business Owners
Don’t you love giving away 3% or more of every sale to Visa and Mastercard? And isn’t it even better when people whip out their Amex? Who doesn’t like those fees? Oh, that’s right. Business owners don’t.
Would you offer your customers a payment method which eliminates those transaction fees? If so, keep reading.
Hopefully by now you’ve heard of Bitcoin, if not this article isn’t for you. But if you have, let’s walk through using Bitcoin’s Layer 2 payment solution known as the Lightning Network for your business. The Lightning Network will work for you regardless of whether you sell donuts or fix mowers or cut hair. If you can create an invoice, your customer can pay it with their cell phone.
Why Accept Bitcoin?
Your first question is probably, “Why should I add Bitcoin as a payment method?”
Assuming you’ve been accepting credit cards for a while, you’re well aware of the drawbacks to credit cards:
- Those rewards cards that customers love so much are paid for by the 3+% fee that the processor deducts from every one of your sales.
- Then there is the per transaction fee, effectively deciding the minimum amount you can charge. If your base fee is $0.45, don’t you cringe when your customer wants to spend just $1?
- Depending upon your sales volume, your credit card processor probably charges a monthly fee as well.
- And who can forget chargebacks? If you’ve been in business long enough, surely you’ve felt the sting of a customer disputing a charge and losing the appeal with your credit card processor.
Bitcoin reduces or eliminates each of these pains:
- The Bitcoin Lightning Network has significantly lower fees. You can expect to pay around 0.2% or less. That’s more than ten times lower fees. What could you do with 2% to 3% more income?
- And while per-transaction fees are common, they’re usually less than one penny, and it is included in the estimated fee above.
- Regardless of your sales volume, there are no monthly fees.
- Additionally, Bitcoin transactions are final. There are no chargebacks ever.
Converting Bitcoin Into Dollars
Your next question might be: “How am I going to get the money into my bank account so that I can pay bills?”
While some of you might want to keep some or all of the bitcoin collected as bitcoin, most businesses spend a large percentage of their gross income on bills which can only be paid with dollars, so converting between bitcoin and dollars is the most important issue.
The flow will go like this:
- Customer asks for an item.
- On a tablet, you create a Lightning invoice.
- Customer scans a QR code from your tablet.
- You receive bitcoin.
- Later, you transfer that bitcoin to an exchange to convert into dollars.
- You transfer from the exchange to your bank account.
There are several exchanges that support Lightning. What follows is a walk-through using either Strike or River Financial. You’ll only need to work with one of these two companies, but hopefully seeing two options will give you the sense for what is involved.
Strike is included because what they are trying to achieve — hyperbitcoinization — both in El Salvador and world wide, is worth supporting with your business.
River Financial is included because they support Lightning Network and would be simple for you to integrate into your business.
Additionally, this guide is going to describe working with something called an Umbrel. At this point you only need to know that it is an inexpensive computer which you’ll want to purchase to be the center of your new payment system. Umbrel will be described more fully in the section “Set up a node.”
Using Strike As Your Exchange
Step 1: Create an account on Strike
Creating an account starts out lightweight. You only need to give them an email address and a cell phone number, but to transfer higher dollar amounts you’re going to need to prove your identity with them by sending pictures of your government identification.
Once you’re all verified you should be able to connect your bank account. On the “Profile” tab, there is a “Payments Method” button that you use to connect Strike to your bank account.
Step 2: Request payment on Strike
You’ll need to create a Lightning invoice in the Strike mobile app.
- From the “Home” tab, select Request.
- Select the Bitcoin logo in the top right corner.
- Enter a note for the transfer. You might use today’s date or anything unique to help your record keeping.
- Enter the amount you want to move in dollars. Strike will convert this into bitcoin automatically.
- On the following “Request” page, select the QR code icon in the top right.
- Tap the “Share” button at the bottom to reveal the QR code.
- Scan the QR code to get the invoice as text or, if you don’t have a QR code scanner, use the “Share” button to get access to the text version of the invoice.
Step 3: Send payment on Umbrel
- On your Umbrel node, go to the “Lightning” tab.
- Click “Send.”
- Paste in the Lightning invoice.
- Press “Send” again.
- The Lightning Network will route the bitcoin from your node to Strike, and they will automatically convert it into dollars.
- You can transfer to your bank account through ACH right away.
Using River Financial As Your Exchange
Step 1: Create an account on River Financial
On their website they have a “Sign Up” button. You’re essentially creating another bank account, so be prepared with your address and other identifying information.
Step 2: Transfer bitcoin to River
- Select the “Transfer” tab on their website.
- Select “Transfer Bitcoin” and click “Next.”
- Select “Receive to River Account” and click “Next.”
- The next screen is for people with multiple accounts. Select your account and click “Next.”
- Select “Lightning Transfer” and click “Next.”
- Enter the amount of bitcoin you want to transfer and click “Next.”
- Copy the long string of text (start with “ln”).
Step 3: Send payment on Umbrel
- On your Umbrel node, go to the “Lightning” tab.
- Click “Send.”
- Paste in the Lightning invoice.
- Press “Send” again.
- The Lightning Network will route the bitcoin from your node to River Financial.
Step 4: Converting bitcoin to dollars on River
- Select the “Buy/Sell” button on the website.
- Select the “Sell” tab.
- Toggle what you’re selling to bitcoin (from dollars).
- Enter the amount of bitcoin you transferred.
- Select “Preview Order.”
- Click “Sell.”
- Once sold, you can transfer to your bank account through ACH.
What About Taxes?
Everyone’s favorite, right? You must love paying the correct amount of income tax, if only because it keeps the government off of your back.
You’re going to be reporting sales in dollars both for income tax and sales tax, however, you’ll be receiving funds in bitcoin. You’ll have to keep records of the sales as well as the conversions from bitcoin to dollars.
Keeping Sales Records
You’re already keeping records of all of your sales, maybe with a point-of-sale (POS) system. The easiest solution will be to ring the customer up on your POS and close the transaction as settled with cash. Then collect the bitcoin as described below. This will keep your sales numbers all in one place for tax purposes, but your bank balance will be split between cash register receipts and your bitcoin balance on your Umbrel.
Capital Gains Tax
While it would be great if it weren’t true, you’ll be creating a taxable event each time you convert bitcoin into dollars.
When you collect the bitcoin, you record the sale as having been in dollars. This is essentially an instant purchase of bitcoin with the dollars from that sale. So, naturally, your cost basis for that bitcoin is the amount of that sale.
You could report each and every Lightning Network sale independently, but a far simpler approach (which you can defend in any audit) will be the use of your average cost basis.
Whenever you convert from bitcoin to dollars, you’ll record:
- The date of the conversion.
- The average amount you paid for the bitcoin. Calculating this is described below.
- The average amount you received for selling the bitcoin, which you’ll get from your exchange when you sell, as described above.
This will be all the information you need for you or your bookkeeper to fill out your taxes.
These will be short-term capital gains, which are currently taxed at your income level, but you’re not paying tax on the whole amount. You already recorded much of the value in your cash sales receipts. You’ll only be paying tax on any gains that might have happened after you received the bitcoin but before you converted it to dollars.
Everyone loves examples, right?
- You want to sell ice cream for $5, but your customer wants to pay in bitcoin.
- You follow the steps in this article and now you have bitcoin and your customer has ice cream.
- If at the moment of the sale bitcoin was trading for $10,000 each, you would receive 0.0005 bitcoin.
- At some point later, you send that bitcoin to Strike but because bitcoin’s price changed, you wind up with $7.
- The first $5 you reported as regular income, just like the customer had paid you in cash.
- The extra $2 you’ll have to report as short-term capital gains. Yes, you’ll have to give up around 30% to Uncle Sam, but you have an extra $1.70 that you wouldn’t have had if you’d sold the ice cream for cash.
You want to know “What if the value of Bitcoin goes down before you sell?” Great question.
If you have a mix of gains and losses, you’ll add them together at the end of the tax year and pay taxes on the total.
“What if I lose money on every transaction?” you ask.
If the total of all of your transactions result in a negative number, the first $3,000 of these losses can be written off against your sales income. Any additional losses can be rolled into the future to reduce future gains.
But if these losses are so large that they pose a material threat to your business, you can add a “spread” to the conversion on each Bitcoin transaction to insulate yourself from these exchange rate fluctuations. This is essentially like charging your credit card customers more than your cash customers, and savvy customers may not appreciate this practice. Use this power wisely.
What Does It Take To Accept Payments?
If you’re still interested in what it would take to get set up to receive payments over the Lightning Network, the rest of this article is for you.
The high-level steps are:
- Open an account with an exchange.
- Set up a bitcoin node.
- Install BTCPay.
- Set up a store.
- Set up inbound liquidity.
- Set up security and safety.
Step 1: Open an account with an exchange
You’ll want to have an account with an exchange like Strike or River Financial, which is outlined above.
Step 2: Set up a bitcoin node
The Lightning payment network is really a bunch of connections between many Bitcoin Nodes. You’re going to need to set up a node for yourself, and this walk-through will point you toward Umbrel. You could do this with several other easy-to-set-up node providers such as RaspiBlitz or myNode, or even running Bitcoin Core directly, but Umbrel is very easy to use, even for people not too comfortable with technology.
The setting up of an Umbrel involves purchasing around $300 worth of computer parts. Available at places like Amazon.
The full list of items can be found on their website but a quick summary:
- A Raspberry Pi 4B
- Raspberry Pi power supply
- MicroSD card
- Raspberry Pi case
- External hard drive (such as Samsung T7)
Once the gear arrives, you follow Umbrel’s instructions or you can watch a good walk-through on YouTube from BTCSessions.
There are things called Lightning channels, which are described under the heading of “Set up inbound liquidity” below.
Step 3: Install BTCPay
Umbrel has an App Store from which you can install BTCPay, which lets you easily accept payments over the Lightning Network.
Once you install BTCPay and launch it from your Umbrel, you create an account with email and password and set up your store.
Setting up your store has these high-level steps:
- Create a new “Store.”
- Associate with the node’s wallet.
- Create a new “App.”
- Set up the keypad.
- Create a bookmark.
Additionally, you’ll use BTCPay to determine your cost basis for the bitcoin you’ve collected.
Step 4: Create the store
Creating the store is a one button step. Just type in a name and click “Create.” (You can change the name later.)
Associate with the node’s wallet
- Immediately after you create the store, you’ll see the “Settings” page.
- To get back here later, you choose the “Stores” tab, followed by “Settings.”
- On this page, the most important thing to change is the “Set Up” button underneath the word “Lightning.”
- This shows you the “Connect to a Lightning node” screen. Select “Use Internal Node” and “Save.”
- At some point, you might want to update the “Description template of the Lightning invoice” but that can come later.
Create the app
Here is where you could get fancy and have several different ways to see the store you set up in the first step. Let’s keep it simple and just create the cash register experience.
- From the “Apps” tab, choose “Create a new app.”
- Choose the store you set up earlier.
- Choose “Point of Sale.”
- Type in any name, such as the name of your store. (You can change this later.)
- Click “Create.”
Set up the keypad
- Immediately after you create the app, you’ll see the “Update Point of Sale” page.
- To get back here later, you choose the “Apps” tab, followed by “Settings.”
- There are several default inventory items here, but you can ignore them.
- Scroll down to “Appearance” change this to “Keypad only.”
- Scroll down and click the “Save” button.
Create a bookmark
On the “Apps Settings” page, or on the list of “Apps” page, you’ll see “View.”
- Click “View” to see the keypad. This is a web page.
- Create a bookmark for this web page so you can easily get to this on your phone or tablet.
- Whenever you have a customer who wants to pay in bitcoin, bring up this web page, enter the amount you want them to pay and click the “Pay” button to show them a Lightning Network invoice.
- Once the customer pays, the invoice will change to show a big check mark and the words, “This invoice has been paid.”
- At this point, the payment has been sent and cannot be reversed by anyone. There are no sneaky computer tricks that the customer can pull to reverse the transaction.
- If you need to refund the customer, you can either use some of the techniques described in getting your new bitcoin to your exchange, or you can hand them cash.
Bitcoin Cost Basis
At some point, perhaps at the end of every day or the end of the week, you’ll move your bitcoin to an exchange to convert them into dollars as described above. When you do this, you’ll want to record your cost basis.
BTCPay makes it very easy to see a list of all paid invoices and export them to a CSV file.
From the “Invoices” page:
- Click the triangle next to the “Search” button.
- Choose “Last 7 days” to see the invoices from the last 7 days.
- Choose “Export” and “CSV” to download a CSV file of your invoices.
- Open this CSV in your favorite spreadsheet program.
- One of the columns (“M”) shows the amount paid in bitcoin.
- One of the columns (“P”) shows the amount you report as paid in dollars.
- The sum of “P” is the total income you’ll report to the IRS.
- This is also your cost basis for the bitcoin you hold. You bought this bitcoin by providing your valuable service to your customer.
- The sum of “P” divided by the sum of “M” is the average price you paid in dollars for the bitcoin you have.
Step 5: Set up inbound liquidity
Lightning Network moves bitcoin between nodes on private one-to-one ledgers called Lightning channels. It is very similar to how you and your friends keep track of who paid for lunch or drinks last time, but channels keep track right down to the penny.
You open channels to a few other nodes on the network. You can do this with the “Open Channel” button on the Umbrel’s “Lightning” tab. This is an interesting process, but let’s skip it because all it will get is “outbound liquidity,” which is the ability to send bitcoin out. We’re talking about how to get you the ability to receive bitcoin, which is also known as “inbound liquidity.”
Inbound liquidity may be the most challenging thing about the Lightning Network because you can only receive as much bitcoin as your total inbound liquidity. If you have 0.01 bitcoin of inbound liquidity and someone wants to pay you 0.011, the payment will fail. It would be like your customer wanting to pay with a big stack of cash, but you had to refuse the sale because your cash register drawer was too small. Your customer could open a channel to you as a part of the transaction, but that makes the process last minutes instead of seconds.
So, before you prop up your “Bitcoin Accepted Here” sign, you’ll want to make sure you have enough inbound liquidity.
Pay for liquidity
The easiest way is to pay for it. Here is a list of places you can buy inbound liquidity. Services like LNBIG work well, but the open channel is only guaranteed to remain open for one month, so you might start to question whether the credit card fees were really all that bad.
Liquidity from Customers
If you see paying for inbound liquidity as similar to paying credit card transaction fees, you might spend a little time trying to develop some inbound liquidity organically. Bitcoiners are often enthusiastic supporters of others trying to learn about or make use of bitcoin. If you post a sign in your window asking people to open a channel to your node, you should soon have a few channels giving you inbound liquidity. Additionally, this could give you a reading on how interested your customers are in paying with bitcoin.
Liquidity from Bitcoiners
If you went on Twitter and tweeted something like:
I’m adding #LightningNetwork payments to my store. Any #Bitcoiners out there willing to help me out with some inbound liquidity? #Bitcoin
You’ll receive plenty of new channels offering inbound liquidity.
You could go on Plebnet on Telegram and ask for inbound liquidity for your business. Plebnet is full of friendly Bitcoiners who would love to help you out.
If you were willing to invest a few hundred dollars (in bitcoin), you could join a ring with other Bitcoiners on LightningNetwork.plus. Here, you open a channel to someone else and in return another user opens a channel to you, forming a triangle- or square-shaped ring where bitcoin can flow back and forth, giving you inbound liquidity.
At some point, a Bitcoiner is going to ask you what size channel you need and what is your node’s address.
Most Lightning Network users will be OK with giving you a channel of between 1 million to 5 million satoshis (sats). This is 0.01 to 0.05 of a bitcoin, which is a few hundred to a couple thousand dollars.
To be clear, they’re not giving that money to you. They’re opening a shared ledger with you. The bitcoin can flow to you, from your customers, through them. They will do this because they get to keep a small percentage of each transaction, paid by your customer. They’re taking the place of Visa and Mastercard, but they take far less. As an example, $50 dollars (approximately 110,000 satoshis) can be sent for around 2 satoshis, which is less than one one-hundredth of a penny.
Your Node Address
For anyone to open a channel to you, they’re going to need your Lightning address. You get it from the “Lightning” tab on your Umbrel.
- Tap the three dots in the top right on the “Lightning” tab.
- This shows a menu with the option “Lightning Address.”
- If the menu pops up saying “Download channel backup file,” you’ve clicked on the wrong three dots. It’s just a little above where you clicked.
- The address is that big long series of letters and numbers, which usually ends with “.onion:9735”.
This Lightning address is not private and giving it out does not expose any private information about your business or your physical location. People can see how many Lightning channels you have open, and the total liquidity available to you, but not the per-channel balances.
Step 6: Set Up Security and Safety
Your node is going to be receiving bitcoin, so much like protecting your cash register, you’re going to want to protect your node.
- If someone were to get physical access to your Umbrel, they will be able to steal the bitcoin that you have not yet transferred to your exchange.
- If your Umbrel were to become corrupt due to physical or electrical damage, you could lose any bitcoin that you have not yet transferred to your exchange.
- If your Umbrel stays offline for a long time, your channel partners could try to close the channel in a way that steals some or all of the bitcoin that you have not yet transferred to your exchange.
Protecting your node from theft
If the device you plan to use as your BTCPay Keypad has access to the internet, even if it is through a cellular network, your Umbrel does not need to be located at your place of business. You could keep your Umbrel in a closet at your house, assuming your house has good internet access. If you do locate your Umbrel offsite, the bookmark to your BTCPay Keypad will need to be different.
To get the remote access address:
- On your Umbrel’s home page, select “Settings” in the lower left.
- Find the “Tor” section and copy the long URL near the bottom.
- You’ll use this URL in a Tor browser to remotely access your Umbrel.
- You can load the BTCPay app in the Tor browser and bookmark the keypad.
Recovering from a damaged node
Your Umbrel can be recreated from a series of 24 words, and the channels can be recreated from a backup.
If you plan to leave any significant amount of bitcoin on your Umbrel, you should write down the 24 words and keep them somewhere safe. To get to the secret words:
- On your Umbrel’s home page, select “Settings” in the lower left.
- Find the “Account” section, and choose the “View” button.
- These words should never be shared with anyone or you risk losing all bitcoin on your Umbrel. Trust no one.
Also, you should download a backup of your Lightning channels each time you open a new channel. To get to the channel backup:
- On your Umbrel’s “Lightning” tab, find the “Payment Channels” section.
- Select the three dots, next to the “+ Open Channel” button.
- Choose the “Download channel backup file” option.
- Store the downloaded file somewhere safe.
Restoring the backup is a bit too technical for this article. If you need to know how this will work before you start accepting Lightning Network payments in your business, DM me or look for my upcoming article on the topic.
Protecting your channels from dishonesty
If your node stays offline for more than a few hours, an unscrupulous person might try to close the channel they share with you with information from another time when more of the bitcoin was on their side of the ledger. While Bitcoiners are honest and upright people, the Bitcoin motto is “Don’t Trust. Verify.”
In the spirit of this motto, you will want to set up something called a watchtower to verify that your channels are not closed while you’re offline. Though easy, setting up the watchtower on your Umbrel is too technical for this article. LightningNetwork.plus has some instructions on setting this up, but if you need a less-technical walk-through DM me or look for my upcoming article on the topic.
If this omission leaves you concerned, keep your Umbrel online or send the bitcoin to your exchange frequently.
To Readers Outside The U.S.
Let me apologize for the U.S.-centric aspects of this article. As a U.S.-based person, many institutions that are available world wide are not available to me. For this reason, I chose exchanges that I have personal experience with. Once I’d made that decision, I bent the instructions toward a U.S.-based reader. There should be many parts in there which will be applicable to you in your country.
- I am not affiliated with Umbrel, BTCPay, LNBIG or any pay-for-liquidity services mentioned in this article in any way.
- I am not affiliated with Strike, River Financial, Amazon, Twitter, Telegram or LightningNetwork.plus, but I do have an end-user account with these services.
- My node does have the word Plebnet.org in its alias, but I do not derive any income from that affiliation.
Was This Financial Advice?
I did not intend anything in this article as financial advice. I am not a financial advisor. I am just a pleb trying to help people learn something about Bitcoin and the Lightning Network.
Was This Tax Advice?
I’m not a tax professional so take this article as hearsay from an experienced business owner and self-filing taxpayer. If something doesn’t sound right, you can use this as a guide for discussing this with your accountant.
This is a guest post by Raymond Walsh. Opinions expressed are entirely their own and do not necessarily reflect those of BTC, Inc. or Bitcoin Magazine.