Many merchants assume Bitcoin works like cards: you need an acquirer, an application and a monthly statement. It doesn't. Bitcoin is a bearer asset that moves directly from one wallet to another, and anyone can check the public ledger to see whether a payment arrived. A processor adds convenience on top of that, but it is not required. This article explains what a processor really does, what you can replace it with, and what you give up.
What does a Bitcoin payment processor actually do?
Strip away the branding and a hosted crypto processor performs five jobs:
- Converts your price (say $120) into a BTC amount at a current rate.
- Gives the customer an address and amount to pay, usually with a QR code.
- Watches the blockchain until the payment has enough confirmations.
- Notifies your store so the order is marked paid.
- Holds the coins and pays them out to you, often after converting to your local currency.
Jobs one to four are software. Only job five requires a company in the middle, and it is the job that brings account reviews, payout delays, frozen balances and a fee on every sale. If you are happy to receive Bitcoin itself, you can run the first four jobs yourself and skip the fifth entirely.
What are your options for accepting Bitcoin directly?
| Approach | How it works | Good for | Main drawback |
|---|---|---|---|
| Manual address on the invoice | You paste your address on an invoice or product page and check your wallet by hand. | A handful of B2B invoices a month. | No automatic order updates; hard to tell which customer paid what. |
| BTCPay Server | Free, open-source payment server, usually deployed with Docker on a VPS, a managed BTCPay host or dedicated hardware. | Bitcoin-focused merchants who want Lightning and a fresh address per invoice. | Needs a server you can run Docker on; more moving parts to maintain. |
| Payfim Gateway | A PHP app you install on ordinary web hosting, plus a module for your store platform. | Stores that want Bitcoin alongside stablecoins and other coins on existing shared or cPanel hosting. | On-chain only (no Lightning); one receiving address per coin. |
We are obviously biased toward the third row, but BTCPay Server is a strong project: it is free, MIT-licensed, supports the Lightning Network and derives a new address for every invoice from your wallet's extended public key. If Lightning or address-per-invoice privacy matters most to you, it is worth a look. Our Payfim vs BTCPay Server comparison goes through the differences in detail, and self-hosted vs hosted gateways covers the bigger decision.
How does Payfim confirm a Bitcoin payment without running a node?
Running a full Bitcoin node is the gold standard, but it is heavy for a typical web shop. Payfim takes a lighter route: your gateway reads the public blockchain through the mempool.space API, which needs no API key.
Here is what happens for a $120 order:
- The customer picks Bitcoin on your payment page. The gateway fetches a rate (CoinGecko first, then Coinbase and Binance as fallbacks) and locks it for 30 minutes by default.
- It adds a tiny unique fraction to the amount, worth at most about five cents by default, so the invoice might read
0.00109473 BTC. No other open invoice has that exact amount. - The customer sends to your address. Your gateway spots the transaction, records its hash so it can never pay a second invoice, and waits for the number of confirmations you set. The default for Bitcoin is one.
- Bitcoin targets an average of about ten minutes per block, so most payments are final within one or two blocks. The gateway then sends a signed webhook and your store marks the order paid.
If you want more certainty on large orders, raise the confirmation count for Bitcoin in Wallets & coins. Our explainer on blockchain confirmations helps you pick a number.
How much does it cost to accept Bitcoin without a processor?
You pay nothing per transaction. The customer pays the Bitcoin network fee when they send, and that fee depends on how busy the network is rather than on the size of your order. On September 28, 2026, mempool.space was recommending fee rates in the single digits of satoshis per virtual byte, which is low by historical standards, but rates rise sharply when blocks are full, so don't promise customers a fixed cost.
Your only fixed cost is the software license. With Payfim that is a one-time payment per store platform (for example $20 for WooCommerce, $15 for WHMCS or OpenCart) with 12 months of updates, or $99 for every module. There is no monthly plan. See pricing for the full list, or compare the numbers with card fees.
What do you give up by skipping the processor?
Being fair about the trade-offs will save you surprises:
- No automatic conversion. You receive BTC, not dollars or euros. If you want fiat, you send coins to an exchange yourself and pay that exchange's fees. If price swings worry you, offer stablecoins such as USDT on TRON next to Bitcoin.
- You are the custodian. Nobody can freeze your funds, and nobody can recover them if you lose your seed phrase. Use a hardware wallet or a reputable non-custodial wallet and store the recovery phrase offline.
- Address reuse. Payfim uses one Bitcoin address that you choose and tells payments apart by amount. That is simple and works on any hosting, but anyone who knows the address can see its incoming payments. BTCPay Server's fresh-address-per-invoice design is better if that concerns you.
- No Lightning. Payfim handles on-chain Bitcoin only. Customers who only use Lightning wallets will need another method.
- Your own paperwork. There is no processor statement. Keep the invoice records your gateway stores (order, fiat amount, BTC amount, rate, transaction hash) and ask a qualified accountant how Bitcoin income is treated where you operate.
What should you tell customers on the payment page?
Paying from a wallet is new for some shoppers, and a few clear lines prevent most support tickets. Tell them to send the exact amount shown, including the long decimal tail, because that is how the order is recognized. Remind them that exchange apps sometimes subtract a withdrawal fee from what they type, so they should check the amount that actually leaves. Explain that the order updates automatically after the network confirms, which for Bitcoin usually means waiting for the next block or two, and that they can close the page once they have sent. Payfim's checkout already shows a QR code, a countdown for the locked rate and a live status, so your own text can stay short.
If someone does send too little, the invoice is flagged Underpaid rather than paid. Our guide to underpayments and refunds covers what to do next.
Is accepting Bitcoin directly legal?
In many countries, a business may accept Bitcoin as payment for goods and services, but the rules differ widely and change often. Some places treat crypto receipts as property, some as foreign currency, and a few restrict crypto payments altogether. This article is not legal or tax advice. Check with a qualified professional in your jurisdiction before you go live, especially if you sell regulated products.
How do you set it up, step by step?
The short version with Payfim:
- Pick a wallet you control and copy a receiving address. Native SegWit addresses start with
bc1. - Install the gateway on your hosting, ideally on a subdomain like
pay.yourstore.comwith HTTPS. - In Wallets & coins, paste the address next to Bitcoin, enable it and click Test. No API key is needed. Details are in Add your wallets.
- Add the cron job so confirmations are checked every minute even when nobody has the payment page open.
- Install the module for your store (see supported coins and the platform list on the integrations page) and connect it with your gateway URL and API key.
- Buy something small from yourself and watch the order turn paid.
That's it: no application form, no identity documents sent to a processor, no waiting for approval. The next Bitcoin payment a customer sends will be in your wallet as soon as the network confirms it.
Sources
Third-party facts were checked on the date shown above. Prices and features of other services change - always confirm on their official pages.

