Looking at the code I think this is because the API docs state that value is supposed to be the 3-letter ISO code of the currency "EUR" rather than the ID of the currency object.
I was able to workaround this by running
currency = QBCurrency.where("Code='EUR'", qb=self.qb_client)[0]
currency_ref = currency.to_ref()
currency_ref.value = currency.Code # hack
customer.currencyRef = currency_ref
customer.save(qb=self.qb_client)
Repro steps:
currency = QBCurrency.where("Code='EUR'", qb=self.qb_client)[0] customer.currencyRef = currency.to_ref() customer.save(qb=self.qb_client)
Looking at the code I think this is because the API docs state that value is supposed to be the 3-letter ISO code of the currency "EUR" rather than the ID of the currency object.
I was able to workaround this by running currency = QBCurrency.where("Code='EUR'", qb=self.qb_client)[0] currency_ref = currency.to_ref() currency_ref.value = currency.Code # hack customer.currencyRef = currency_ref customer.save(qb=self.qb_client)