By Parker Lewis
At Zaprite, we focus on enabling individuals and businesses to receive bitcoin as payment through a combination of Business Invoices, Payment Links and eCommerce stores. What differentiates Zaprite is that users connect bitcoin wallets (and lightning nodes) or custodial accounts to receive payments directly rather than Zaprite acting as a financial intermediary. We also support the connection of fiat payment rails so individuals and merchants can receive bitcoin payments side-by-side with fiat, which reduces the operational friction for anyone who may want to begin offering bitcoin as a payment option.
Our Business Invoices are typically used by independent contractors (such as software developers, designers and freelancers), lawyers, podcasters, artists or conference organizers as a few examples–really anyone who offers a service on a contract basis that would need to bill a customer or client by issuing an invoice and who wants to be paid in bitcoin (or at least offer bitcoin payment as an option). These amounts can often be significant in value. Think about an attorney’s monthly billing or an advertising sponsorship for a conference.
Reserving Bitcoin Addresses on Invoices
Prior to Zaprite, if an individual or business wanted an invoice to be paid in bitcoin, a bitcoin address would typically need to be manually pasted into an invoice generated by software that does not natively support bitcoin payments. With Zaprite, a user can connect a bitcoin wallet as a method of payment to an invoice–a static address can be used or an address can be dynamically generated from a user’s bitcoin wallet (via an xpub).
To preserve privacy, Zaprite does not show the full bitcoin address on the invoice, but instead, only exposes the address when the payer of the invoice actually goes to pay in bitcoin. This is an improvement to simply pasting a full bitcoin address on an invoice because everyone within a business who may need to be aware of an invoice’s details–and business context–may not need to know the bitcoin address of the individual or business being paid, regardless of whether it is a static address or dynamically generated.
By dynamically generating bitcoin addresses from a bitcoin wallet–such as Coldcard, Trezor, Sparrow or Ledger–a Zaprite user does not need to access their wallet to generate an invoice while still being able to use a fresh, unused address for each invoice. Wallets can also be used to verify addresses as needed. For smaller invoices, a Zaprite user may not care to reserve a specific address for a specific invoice–consider a $500 monthly recurring invoice to a sponsor of a local event. However, for invoices with large amounts ranging from a few thousand dollars to multiple bitcoin, an individual or business typically wants to verify the address directly on a wallet in advance and be sure that a specific bitcoin address is reserved for a dedicated invoice. This allows an issuer of an invoice to monitor for an incoming payment to the specific bitcoin address and to provide a mechanism for the payer of an invoice to have greater confidence the bitcoin address being paid is the correct address.
Now with Zaprite, users of our invoices can utilize two features that make the issuance of large invoices more secure and more seamless, while preserving an important level of privacy: the ability to reserve a bitcoin address dynamically generated from a wallet for a dedicated invoice AND display the first six digits and last six digits of a bitcoin address on an invoice without displaying the full bitcoin address. While still being able to verify an address directly on a wallet, a Zaprite user can create an invoice with a static address that is dynamically generated from a bitcoin wallet without having to access the device. When the payer goes to pay the invoice, the full address will only be exposed when the bitcoin payment method is selected and the payer can verify the first six digits and last six digits against the full address from a static (and second) source of truth–the PDF of an invoice.
For anyone who understands the nuances of bitcoin, bitcoin addresses are not random. It is statistically (near) impossible for an adversary to quickly generate a valid bitcoin address that shares the first six digits and last six digits of another valid bitcoin address. More practically, it is not possible without expending a massive amount of work (that requires cost and time), making it not feasible to quickly spoof a valid bitcoin address with a bitcoin address that looks similar but is actually different.
Malicious software–if downloaded by an unassuming victim–could facilitate quickly swapping out and inserting a bitcoin address of an adversary but not one that looks similar to another valid bitcoin address. Providing a second source of truth to verify a bitcoin address with this new feature materially improves the overall payment security and workflow, while preserving as much privacy as possible by shielding the full address on an invoice.
These are the things that bitcoiners building invoicing software think about all the time to make the lives of our customers better–collectively when it comes to balancing security, privacy and convenience of bitcoin payments–the things fiat invoice software would never think to worry about!
Applying Negative Amounts to Invoices
In our latest release, we also added a feature to allow for negative amounts on invoices (which are different from the discount feature previously available). Several users had requested this ability which is specifically helpful for merchants that often take deposits or down-payments.
A business might offer a discount to a standard contractual rate, and Zaprite users can still clearly display a discount within an invoice. However, if an artist for example required a down-payment for a commissioned piece of art, the context of a discount to invoice for the remaining balance would not make sense. Now a user can create a line item with a negative balance, noting the proper business context, to more intuitively reflect remaining amounts owed on a current invoice.
Square Fiat Payments for Invoices
A few weeks ago we announced our integration enabling Square fiat payments. While this opens up a range of fiat payments for Zaprite users with Square merchant accounts, including credit card, Apple Pay, and Google Pay, it importantly enables automated ACH for invoice users.
ACH is the most popular fiat method of payment for larger invoices, particularly due to reduced transaction fees compared to credit card processing. Having the ability to automate ACH payments with Square connected to Zaprite allows users of our invoicing platform to issue invoices with a cost effective fiat method of payment side-by-side with on-chain bitcoin and lightning payment options.
Automated ACH was a key missing component to allow Zaprite users to confidently issue invoices to customers with both bitcoin and fiat payment options, specifically ones with large balances. This allows Zaprite users to credibly issue any invoice with bitcoin as payment option without previously discussing it with a customer beforehand, something that was not realistic absent a cost-effective fiat method of payment side-by-side.
If you are interested in Zaprite–whether for invoices or other services–and have questions, please reach out to us using this contact form. You can also sign up for Zaprite with a 30-day free trial to explore the platform and see if it is a fit to help you and your business begin to accept bitcoin as payment. Lastly, if you are an existing Zaprite customer, please reach out with feedback. Each of these features was a direct result of customer feedback so please share your input and be on the lookout for more product and feature releases coming soon!