I would have expected there to be some kind of law against the refusal of a country's own currency's cash as form of payment in any transaction. Shouldn't a government ensure that its currency is always a valid/accepted form of payment within its borders?
Broadly speaking, in most countries you're always required to accept legal tender for debts, but for up-front transactions you can limit what you accept to whatever you want, whether that be credit cards or live chickens.