In QuickBooks Online v87 (to be released at the end of June), we will provide US QuickBooks Online companies the capability to enable multicurrency, a highly requested feature. Multicurrency is already available to global QuickBooks Online companies. If you are familiar with the multicurrency feature for global companies, then this post simply outlines some of the differences with US multicurrency. There are no additional features for US multicurrency. If you are new to multicurrency altogether, please read on to ensure your integration can handle multicurrency companies.
What is Multicurrency?
Multicurrency enables a company to work with transactions and lists in more than one currency. For example, you can specify a new customer as a UK customer that uses British Pounds (GBP). You can then create Sales Receipts and Invoices to that customer with values in GBP, even if you usually deal in a home currency of USD. Each company has a home currency that denotes the base currency of the company. In global companies, the user chooses their home currency before turning on multicurrency; while in U.S companies, the home currency is set to USD. For US companies, multicurrency is off by default and the user can decide if they want to enable the feature through their company settings (preferences). When multicurrency is enabled, all objects are, by default, in the home currency.
Once a user enables multicurrency, it cannot be disabled because there are accounting implications to their books that are not easily reversed. The user can always choose not to use any of the multicurrency features even if it is turned on.
API Implications
The main changes to a US company that enables US multicurrency are:
- Transactions can now be in a foreign currency and the values returned will be in that foreign currency.
- There can now be foreign currency accounts. Each account can only have one currency associated with it.
- Customers/vendors can also be associated with a single foreign currency.
- The currency of a transaction must be consistent with the currencies of the accounts or customers/vendors used in the transaction.
If you are familiar with multicurrency with global companies, you’ll also know that there are certain fields that are returned/required for a multicurrency enabled company to achieve this. These include
- CurrencyRef: Denotes the currency for the transaction or the currency used by this customer/account/vendor, and so on.
- ExchangeRate: Denotes the exchange rate between a foreign currency and your home currency if the transaction is in a foreign currency.
- HomeTotalAmt: Available in some transactions, this is a convenience field to show the total amount of a transaction in the home currency when the transaction is in a foreign currency.
These fields are already in the xsd and are available through our SDKs and REST APIs.
To identify if multicurrency is enabled and to determine the home currency setting, check the CurrencyPrefs via the /preferences.
“CurrencyPrefs”: {
“MultiCurrencyEnabled”: false,
“HomeCurrency”: {
“value”: “USD”
}
}
We do not allow developers to enable multicurrency via the API because of its irreversibility. The end user must enable it through the UI. We encourage you to run through use cases to ensure your app works correctly with multicurrency enabled.
Where Can I Learn More?
Join me and David Leary on Friday, June 19 at 9am Pacific time for our Intuit Developer Hangout to discuss multicurrency and what it means to developers. Sign up for that right here. Hope to see you there!
Also, be sure to check out the Currency Developer Guide for detailed information. For additional help, reach out on our developer forums.
What’s Next?
Look for these multicurrency service enhancements in QuickBooks Online v88:
- Multicurrency support for Deposit object create and update operations
- Multicurrency support for Transfer object
- New Currency endpoint for retrieving exchange rates.
Leave a Reply