In practice your invoice fee should be cited in the most stable and liquid of the currencies you support. Typically your national currency since you live with it anyway.
The contract would then stipulate that if the client pays in another currency that the amount that the client must pay is the going rate to sell that currency back into the primary contractual currency at the time of payment.
The client, if they don't have enough bitcoins at time of payment, may care more about the buy/bid exchange rate. But you care much more about the value of your work in the most stable and liquid currency, hence the sell/ask exchange rate at time of payment.
For example:
- Contract stipulates a payment of $100 USD
- Contract stipulates that payment in bitcoin is the amount of bitcoins if sold at the weighted global average at the time of transfer would be equivalent to $100 USD; rounded to the nearest desired fraction of a bitcoin (e.g. 0.001 BTC).
This should completely resolve currency volatility between the time of invoice and payment. I'm sure most modern bitcoin payment gateways auto-convert currency exchange rates, so the logistical burden to a client should be minor.