I regularly pay freelancers with bitcoin. When we agree on the price in fiat, due to volatility, the numbers never add up. I have to pay again, or they have to refund me. If we agree on the amount a few days in advance, someone is always at financial or time loss. Making sure they don’t re-use the address is a story for another day, but you feel the pain. (GitHub #314 )
BTCPay is free and open-source cryptocurrency payment processor. In this article we would like to share how we addressed the above problem for our users.
Our good old client Satoshi wants to pay us for a logo we designed.
- Satoshi needs to ask for the exact amount.
- Satoshi needs our address
- Satoshi needs to make sure there is no address re-use, since that’s a huge privacy issue
- Satoshi’s ISP may block the email if he mentions Bitcoin.
- Satoshi does not have enough BTC, he needs repeat the same process
- All this time the rates change
- Satoshi has no invoice confirmation to print for his accountant
Introducing – Payment Requests, a new type of time-sensitive invoice pages built into BTCPay that allow you to get paid in cryptocurrency just by sharing a simple URL.
- Seller creates an invoice, adds expiration date, customizes it and shares as a regular link.
- Buyer can pay invoice whenever preferred. The exchange rates update accordingly.
- Buyer can pay right away or later, on-chain or via the Lightning Network. The invoice can even be paid partially with LN and partially on-chain, or even with multiple coins.
- The exchange rate is determined when buyer tries to pay the invoice.
- Buyer can print the paid invoice.
- Seller can export all the relevant data as CSV later and send it to accountant.
- Since they’re using BTCPay, money goes directly from one wallet to another, no custodians, no fees.
How it works?
- Create a payment request (enter the amount, the expiration time, and description)
- Customize the design (optional)
- Share the URL.
We’ve added lots of flexibility, so you can use custom CSS, or add a ready-made BootStrap theme.
You can save the invoice for later and preview it, or publish it right away and send it to your customers.
- Set the expiration time
- Printer-friendly mode
- Customizable design (css/theme)
- Custom or fixed amount
We plan to further develop and improve the payment requests based on your feedback.
Short term improvements we plan to implement are:
- One-Time or Recurring requests (subscriptions)
- Send a request automatically via an e-mail (SMTP integration)
Try it out
Excited? Here’s how you can create a payment request quickly:
- Register on our demo server (you can self-host BTCPay or use a third-party host)
- Create a store and connect your wallet (no private keys required).
- Payment Requests > Create.
We’re very proud of this feature. In order to improve it further, we need more people to use it. Give it a try, and share your invoices and experiences with us on Twitter.