Skip to content

Currency Support

Currency Support

InvenTree provides native support for multiple currencies, which can mean that data require conversion between these currencies, at defined exchange rates.

The InvenTree server maintains a set of exchange rates, which are updated periodically. These exchange rates are available via the InvenTree API, and can be used by the Python bindings.

CurrencyManager Class

The Python bindings provide the CurrencyManager class, which takes care of retrieving currency exchange data from the server. This class can be instantiated as shown below:

from inventree.currency import CurrencyManager

# The manager class must be passed a valid InvenTreeAPI instance
manager = CurrencyManager(api)

# Access the 'base currency' data
base_currency = manager.getBaseCurrency()

# Access the 'exchange rate' data
rates = manager.getExchangeRates()

Currency Conversion

Currency conversion is performed by passing the value of currency, as well as the source and target currency codes to the currency manager.

Missing Currency Data

The currency conversion only works if the manager class has valid information on both the source and target currency exchange rates!

from inventree.currency import CurrencyManager

manager = CurrencyManager(api)

# Convert from AUD to CAD
cad = manager.convertCurrency(12.54, 'AUD', 'CAD')

# Convert from NZD to USD
usd = manager.convertCurrency(99.99, 'NZD', 'USD')

Exchange Rate Update

To request a manual update of currency data (from the server), run the following command:

from inventree.currency import CurrencyManager

manager = CurrencyManager(api)
manager.refreshExchangeRates()