I'm a freelancer who bills per hour and invoices my clients at the end of the month. The total amount is represented in my local currency.

I also give the option for my clients to pay in Bitcoin at a 10% discount. The way I currently do it is by adding my Bitcoin address to the invoice and then add the discounted, equivalent Bitcoin price at the time of sending the invoice.

This isn't all too fair. Or rather it is unfair to both parties since, for them, the client may not have anticipated the exchange rate at the point of invoicing; and, for me, I need to wait until the client pays me (within the constraints of the payment due date, naturally) which may lead to an unfavourable exchange rate.

How can I structure the agreement so that it's fair for both parties while still charging in two possible currencies like this?

  • 111
    Why would you accept a 10% discount to be paid in BTC? Wouldn't it be better for you to just accept USD and then buy the BTC yourself, paying regular crypto transaction costs instead? Aug 23, 2021 at 12:49
  • 12
    @Grade'Eh'Bacon I've seen a number of crypto enthusiasts offer discounts as a way of "doing their part" to encourage crypto use.
    – glibdud
    Aug 23, 2021 at 16:37
  • 13
    @glibdud Right; I'm aware of the practice, just trying to point out that this isn't how business is typically done [even 'cash payment discount' is either 2% / less to avoid cc fees or 10% implying some form of tax avoidance attempt]. Aug 23, 2021 at 17:10
  • 1
    Comments are not for extended discussion; this conversation has been moved to chat. Aug 24, 2021 at 17:00
  • 4
    Does the client get to choose how to pay after receiving the invoice? If so, I don't understand how you see this as being unfair to the client.
    – TonyK
    Aug 24, 2021 at 18:33

7 Answers 7


I would not hand out a BTC address and hope the exchange rate stays relatively stable until the client can pay so that everything stays fair.

Rather, you could include a link to a bitcoin payment page on the invoice that directs them to a page online where they can pay using bitcoin at the current exchange rate at the time of payment for an amount equal to 90% of the full invoice amount. This can be done with one of the crypto payment services, or by setting up a self-hosted one such as BTCPay Server.

  • 4
    Exactly, do not explicitly mention the bitcoin amount on your invoice. Just refer to a link and mention payments using bitcoin are 10% off Aug 24, 2021 at 10:24
  • 2
    This seems like the answer to me and is pretty standard practice across merchants accepting bitcoin. Not sure why it's currently the least-upvoted answer.
    – CharlieB
    Aug 24, 2021 at 16:02
  • that makes the most sense
    – Thomas
    Aug 26, 2021 at 9:54
  • I'm guessing the reason they're not involving a 3rd party (which seems like a rather obvious solution) is that their goal here might be to obtain Bitcoin that's hard to trace...
    – user541686
    Aug 26, 2021 at 11:16
  • 1
    @MTilsted You are not taxed based on what your invoices show; you are taxed based on what you declare as your income on your tax return, which is supported by your business’s financial books. There is no need to issue new invoices.
    – Ben Miller
    Aug 28, 2021 at 12:42

When you decide to accept multiple currencies as payment, you need to decide what the price will be for each currency. That price really needs to stay fixed between the invoice date and the due date.

You have decided that you will set the Bitcoin price by using the exchange rate at the time of invoice creation and then knocking 10% off, and that is fine. However, as you noted, the value of Bitcoin is very volatile, and that amount of Bitcoin probably won’t be the same value as the other currency by the time the payment happens.

That is the risk you take when you offer to accept Bitcoin. If the volatility bothers you, then you should stick with a more stable currency.

  • 32
    ^^ This. If you decide the work you've done is worth $5,000 USD or 0.1 bitcoin, that is the price you set for your work. If the price of a bitcoin drops from $45,000 USD to $20,000 USD before the due date, they have the right to send you what is $2,000 worth of bitcoin at the time when it was worth $4,500 when you invoiced. If the price rises to $80,000 USD they would probably pay you in currency instead. This might actually lead to companies waiting to pay you until later so they can see if the price will fall. Aug 24, 2021 at 4:06
  • 52
    Companies may end up using you as leverage to "gamble" on bitcoins. Instead of paying you on time, they buy the bitcoin and wait. If the bitcoins go up, they sell, pocket the difference, and pay in in USD. If bitcoin falls, they pay you with bitcoin and settle the bill. BTC is so volatile that this may actually be done even with small bills.
    – Nelson
    Aug 24, 2021 at 9:03
  • 4
    @Nelson This can be solved by asking the buyer to choose a currency before you send the invoice, or before you do the work.
    – user253751
    Aug 24, 2021 at 9:04
  • 3
    @user253751 There have been a good set of valid answers but what you said about letting the client decide beforehand solves my personal problem. If you (or someone else) posts that as an answer I will accept it.
    – NeRoboto
    Aug 24, 2021 at 11:34
  • 10
    @LordRatte Well, it doesn't solve the problem since you still have to deal with the exchange rate risk. It only solves the other problem where the customer can take the upside of the exchange rate risk without taking the downside. The risk is still there.
    – user253751
    Aug 24, 2021 at 12:19

If you're a big company that accepts payment in one currency but has expenses in another (i.e. you're building widgets in Mexico where you pay for everything in pesos and selling widgets in America where your customers pay in dollars at some later date), you hedge against fluctuations in the exchange rate to ensure that you don't end up losing money if currencies move against you. You can do the same thing (though it's one more thing for you to manage and one more expense for your business).

For example, if 1 BTC = $50,000 on the day you generate an invoice for $5,000 (0.1 BTC - 10% discount = 0.09 BTC), you can buy an option to sell 0.09 BTC on the invoice due date for $4,500. If the client sends you 0.09 BTC immediately, you're satisfied. If they send you 0.09 BTC later when 1 BTC = $40,000, you exercise your option and get your $4,500. If the client sends you 0.09 BTC later when 1 BTC = $60,000 then, presumably, you're happy and don't exercise your option. Depending on the country in which you live and the trading platforms you have access to, you may be able to use a contract for difference (CFD) to produce the same sort of hedge.

Of course, buying this option (particularly for an asset like BTC which is very volatile) isn't free-- you'd be paying someone to take on the volatility risk. So it would be one more expense for your business to manage. Depending on your clients and your tolerance for risk, you can adjust how much you hedge. If you generate $50,000 in invoices for the month for all clients but you know that many of them aren't set up to pay in bitcoin, you probably don't need to hedge a full bitcoin. And if you're willing to take a discount for bitcoin, you can probably choose a strike price of the option that is less than the current value (i.e. you accept the risk of a 5% drop but use the option to hedge against a larger drop) which will make the option less costly. Of course, you'd need to adjust for the ability/ willingness of your clients to pay in bitcoin, the probability that they'll be watching the exchange rate to figure out which currency to use, and the expense of the different options along with your tolerance for exchange rate risk.


There are two options that I am aware of for multi-currency invoicing, and you should always specify what the system will be in the initial contract that gives rise to the invoice(s).

Option 1: Specify the exchange rate up front so that you can calculate the Bitcoin amount at the time you create the invoice. In this example you might say "Invoices will be calculated in US$ and a Bitcoin amount will also be provided, this will be a 10% discount on the US$ price using the exchange rate from [site] on the invoice date. [Client] may choose to pay the US$ amount via bank transfer or the Bitcoin amount via transfer to [Bitcoin wallet]; in either case, the payment is due within X days of the invoice date and late payments will attract an additional charge [blah blah blah]"

Option 2: Allow the client to determine the Bitcoin amount at the time they make the payment. In this example you might say "Invoices will be calculated and provided in US$ which should be paid by bank transfer. Alternatively payment may be made in Bitcoin to [Bitcoin wallet] at a 10% discount rate from the US$ price calculated at the time of making the payment. In either case, the payment is due within X days of the invoice date and late payments will attract an additional charge [blah blah blah]"

The factors to consider are whether you need/want to know exactly the amount you will receive in advance, who you want to carry the exchange rate risk, how much you want to have to check the calculations made by the client at the time of making the transfer, etc.

  • 11
    If you go with option 2, you need to also specify exactly how the exchange rate is determined. You cannot just put "at market rate" in a contract - you must indicate a specific source of information, and provide for what happens if that source becomes unavailable. Otherwise, the volatility of BTC virtually guarantees that you'll get into a messy legal fight at some point.
    – Kevin
    Aug 23, 2021 at 22:37

Since (I assume) few or none of your expenses are fixed in BTC and you "think" in your local currency.

You may use the formula pretty much popular in economies where the local currency is unstable:

The customer owes XXX.xx (whatever your preferred currency is), or the BTC equivalent at the rate published in (reputable authoritative source) at the moment of the payment with additional 10% discount.


You just can't accept multi-currency payments if the exchange rate is not stable.

Nowadays Bitcoin is too volatile even for the purpose of being used as a payment method.

Emphasizing/exaggerating it: you work your day at morning for Bitcoins, but you don't know if you can afford dinner at evening, or buy a new car.

That's not just Bitcoin, which is just the best fit as an example, it is a problem of multi-currency. Nowadays, fiat currencies are decently stable each other. Cryptos that are stable with fiat currencies (stablecoins!!) exist, so they are not such of a problem.

But think about inflational and better hyper inflational currencies, of which history has examples. If your purpose is to convert the alternate coin other than spending it for your living, you better not accept alternate currencies.

You do always have two option: one is to accept the payment in any other currency giving the payer the duty to check the exchange rate. Nothing different from cyber extortionist to ask you "send us any amount of Bitcoins worth 1000$ at the time you buy them". In this case the price is set to one currency (dollars?) and both parties suffer rate risk.

In the latter case, you compute your own due amounts at your desired exchange rate, but the value worth can change significantly over time.

What I am going to say with this answer is, even if the exchange rate between Indian Rupee and Czech Koruna is oscillating, you know very well how many Pilsens you'll be drinking after your job.

Indian Rupee vs Czech Koruna 1Y

With oscillating cryptos, we all need to establish an economy where one can buy daily asset with crypto (food, gasoline, probably not utilities bills). By that time, invoices in crypto will gain a lot more sense.

Another point of view of this answer is the market where the alt currency will be spent. In the world of fiat coins, you should also be aware of how and where you will be spending the money. The price of a single commodity (such as... beer) is dramatically and substantially different by country (compare Czechia with Denmark for example).

This assumes you are getting paid for your living, not to accumulate liquid assets. In the example right above, if you get paid in CZK you buy a certain amount of things in Czechia. But if you get paid the same worth amount in DKK, you'll find it harder to buy things in Denmark.

This ends with a new question then: how are you going to use your crypto assets? Are you going to buy your living?


Is there not a crypto payment system that will allow the client to specify an exact USD value (or whatever your local currency is) of BTC to send, and which will also allow you to see the exact USD value of what you receive at the moment it was transacted? If you can find something like that, then you wouldn't need to put the amount of BTC on the bill, you just tell them the amount in your currency that they owe (minus 10% or whatever) and then they use a payment system where they can send that exact currency's-worth of BTC. Of course, this will leave them to possibly strategically try to wait for a day when BTC is most cheap, but it will still be worth the correct value of $$$ at the moment it arrives, and at least it will eliminate your problem of having to state an approximate/incorrect BTC amount on the invoice, which seemed to be your main problem.

Edit: actually wait a minute, now that I think about it this actually does solve both "problems." Because they can't "strategically" wait for anything. Whether the coins go up or down, they are still giving you the same USD value. The issue only arose because you were giving them a BTC amount on the invoice which they could leverage. I suppose there could be a slight strategy still, but it would only involve what happened to the BTC price after the transaction happens. That is, if the price goes up after, you win (as long as you hold to that higher price); and if it goes down, then they do. But that is complicated enough of a "strategy" that it mostly can be disregarded.

  • There is a Crypto currency pegged to USD but not my local currengy.
    – NeRoboto
    Aug 25, 2021 at 5:30
  • There is no such thing as an exact USD amount of BTC. By the time your payment goes through (1 hour?) the exchange rate has changed.
    – user253751
    Aug 26, 2021 at 9:56
  • @user253751 USD coin is backed by a promise to exchange it for real USD. So it does actually follow USD's value almost exactly at the cost of centralizing it somewhat. It supposedly works like a gold-backed currency.
    – NeRoboto
    Aug 26, 2021 at 16:38
  • @LordRatte Sure, but the question asks about Bitcoin, not USD-coin. (Also there are rumours that the USD-coin is insolvent)
    – user253751
    Aug 27, 2021 at 8:06
  • @user253751 ah, you've exposed yourself now as someone who is simply here to bash Bitcoin. First you give a transaction time which is much closer to a worse-case-scenario than an average, and now you say "this question is about A not B" yet go on to add "rumours" that are even more irrelevant to the question than what you were responding to.
    – Brimby
    Aug 27, 2021 at 19:51

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .