Bulk Documentation
AdministrationOrganization settings

Manage currencies

Set your organization's global display currency and maintain dated conversion rates between the currencies you trade in.

Last updated

The Currencies page is where you choose the single currency Bulk shows by default and where you keep the exchange rates that convert amounts between the currencies your business uses. In a manufacturing business you often quote, buy, and invoice in more than one currency: you might price a job in pounds, pay a European material supplier in euros, and bill an overseas customer in dollars. This page gives Bulk the one default currency to fall back on and the rates it needs to convert between them.

The global currency also seeds new customer records. Each customer can then have its own allowed currencies and one required default currency under Settings › Master Data › Customers.

You reach it at Settings › Organization › Currencies (/settings/organization/currencies). The page contains Global Currency, Rate Matrix, and Rate history. A direct rate tells Bulk how many units of the to currency one unit of the from currency buys. Bulk multiplies the source amount by that rate. Open a matrix cell to edit its latest dated rate, or a row in Rate history to edit that specific period.

Currencies settings with GBP global, GBP and USD enabled, reciprocal rates of 1.27 and 0.7874, and dated rate-history rows.
The global display currency, latest direct rates and saved rate history appear together. These values are a fictional practice example.

Before you start

Two things need to be in place before this page is useful.

Enable your currencies as units first. Currencies are configured one by one in Settings › Organization › Units. Only active units whose Category and Display Type are both set to Currency appear on this page. Configure Symbol, Display Symbol, Display Position, and Decimal Places there. The Currencies page only manages the global display currency and rates between those active currency units. If none are active, it shows No currencies enabled and directs you back to Settings › Units.

You need the right permission. Viewing this page requires units.view; changing the global currency or a rate requires units.update. In the default roles, Super user, Entity admin, Manager, and Master data can make changes. Dashboards has units.view only. The page does not hide every edit control from a view-only user, but the server rejects a save without units.update.

Set the global display currency

The Global Currency card sets the currency Bulk uses when no other currency applies. Its subtitle states this plainly: Used when no customer currency is set. This default appears across quotes, invoices, and price displays for any customer who does not have their own currency assigned.

To change it:

  1. Open the Change global currency dropdown and pick a currency. Selecting one only stages the change. The card shows a staged indicator and a hint that nothing applies until you save. Use Reset to discard a staged choice.
  2. Select Save changes. A confirmation dialog titled Change global currency? appears, labelled System-wide change.
  3. Review the before-and-after, then select Confirm change. A Global currency updated message confirms the switch.

The card also shows how many currencies are enabled and marks the current global currency with a star.

Changing the global currency does not re-convert existing amounts

The confirmation dialog spells this out: the new currency replaces the old one as the default shown to customers without their own currency, across every quote, invoice, and price. Amounts already recorded are not recalculated; only the default display currency changes. Switch back the same way if you picked the wrong one.

Maintain conversion rates

The Rate Matrix holds the direct rates Bulk uses to convert between currencies. Its subtitle reads Latest direct rate by active pair. Click a cell to set or edit. Each row is a from currency and each column is a to currency:

  • The diagonal, where a currency meets itself, is always 1 and cannot be edited.
  • A filled cell shows the row with the most recent Valid from date for that pair. It is the latest configured row, not necessarily the rate that covers today.
  • An empty cell shows a dash and a set prompt, inviting you to add the first rate.

Add or edit a rate

Select an editable matrix cell or a Rate history row to open the dialog. Its heading shows the currency pair, such as GBP → USD. In the dialog:

  1. Enter the rate in the field labelled with how many of the to currency equal one of the from currency. For example, if 1 GBP = 1.17 EUR, enter 1.17 in the GBP row and EUR column. A GBP amount is then multiplied by 1.17 when this rate applies.
  2. Bulk shows the Reverse value directly beneath, calculated as one divided by your rate. You do not enter the opposite direction yourself.
  3. Set the required Valid from and Valid to dates. Both endpoints are included: a rate is eligible when the record's value date is on or between them.
  4. Select Save rate. A Rates updated message confirms the change.

Rates are saved as a matched pair for the same validity range. The dialog notes that the opposite direction is created or updated automatically as the reciprocal, so setting pounds-to-euros also writes euros-to-pounds in the same step. Deleting works the same way: choose Delete rate, then confirm removal of both directions. The selected rate and its matching reverse row are removed, confirmed by a Rates deleted message. Other dated rows are retained.

GBP to USD rate draft with 1.27 entered, reciprocal 0.7874 GBP, validity dates, Cancel and Save rate.
Enter one direction and check the reciprocal and validity dates. This is a fictional practice rate.

A few rules the page enforces when you save:

  • A rate must be greater than zero.
  • Valid from must not be after Valid to.
  • Date ranges for the same pair cannot overlap. If they do, saving fails with a message naming the range you clash with, so you can adjust your dates.

Rate values are shortened in the matrix

The matrix and Reverse preview show rates to at most four decimal places. Bulk keeps the forward value you entered and stores the generated reciprocal rounded to 10 decimal places. Converted values are calculated to six decimal places before money is displayed using that currency unit's Decimal Places setting.

Choose the period you intend to edit

A filled matrix cell opens the row with the most recent Valid from date. Rate history lists all saved rates and validity dates; select a row to edit that exact period. Saving edits the selected row. There is no separate Add period action for a populated pair, so do not overwrite an existing period when you need a new one.

When coverage has gaps

The matrix flags a pair with no rate as an empty set cell. A coverage gaps notice below the matrix identifies gaps between saved periods. Conversions dated inside a gap have no direct rate to use and cannot be calculated. Review the dated rows in Rate history before adjusting coverage. The page has no separate action to add another period for a populated pair.

Inbound documents and production orders use this coverage when a user chooses Convert currency. Bulk checks the relevant value date, normally the record's received date, before starting. If no direct rate covers that date, the preview explains the missing rate and leaves the start action disabled. A successful conversion recalculates stored amounts and updates their currency stamps; changing only the global currency never does this.

Preview a currency conversion

Open an inbound document or production order and choose Actions › Convert currency. Select one of the currencies allowed for that customer. Before anything changes, Bulk shows the direction, direct rate, affected records, and value date it will use.

Review that preview carefully. If the rate or value date is wrong, choose Cancel and correct the currency setup first. Choose Convert only when the preview matches the transaction you intend to update.

Convert document currency preview for GBP to USD at 1.27, showing 10 affected line items, zero services, value date 2026-10-04, Cancel and Convert.
Check the rate, affected records, and value date before starting a currency conversion.

Example: Wayne Corp

Wayne Corp runs Gotham Applied Sciences in pounds and allows its Gotham Rail Works customer to trade in US dollars. For a fictional training exercise, an administrator sets this up:

  1. In Settings › Units, they make sure GBP and USD are active currency units.
  2. On the Currencies page, they set GBP as the global currency, because most customers are UK-based and should see prices in pounds.
  3. In the Rate Matrix, they enter a practice GBP-to-USD rate of 1.27, valid from 4 October to 31 December 2026. Bulk saves the reciprocal automatically.
  4. They review both saved rows in Rate history, then open a document conversion preview and cancel without converting any amounts.

The matrix shows the configured row with the latest Valid from date for each direction. Rate history shows each saved period. These sample values illustrate the workflow; your finance team supplies the rates appropriate to your transactions.

Expected result

After setup, your organization has one clear default display currency and a set of dated, two-directional conversion rates. Each customer can have allowed currencies and one default; Bulk falls back to the global currency where no customer currency applies. Explicit conversions use the rate whose date range covers the record's value date. Every change you make here is recorded in your organization's activity log.

Limitations and feature state

This feature is generally available. Keep these behaviours in mind:

  • Rates are entered manually. Bulk does not fetch live exchange rates from an external feed; you keep them current yourself.
  • Conversion depends on date coverage. An amount converts only when a rate's validity range covers its value date. If no rate covers that date, the amount cannot be converted until you add one.
  • The matrix shows the latest period. It opens the row with the latest Valid from date for each direction. Rate history lists all saved rows and opens the exact selected period. The page has no separate action to add a new period to a populated pair.
  • Displayed rates are rounded for readability. Matrix cells and the reverse preview show at most four decimal places; currency amount formatting follows the unit's Decimal Places setting.
  • The global currency is a display default, not a re-pricing action. Switching it changes what customers without their own currency see going forward; it does not recalculate stored amounts.
  • If no global currency is set, Bulk falls back to GBP when that currency is active, and otherwise to your first active currency.

Troubleshooting

  • The page shows "No currencies enabled". No currency units are active. Open Settings › Units, activate the currencies you need, then return here.
  • Saving reports Access denied: you need the "Update Units" permission. Your role can view the page but cannot change currency settings. Ask an administrator for units.update.
  • Saving a rate reports an overlap. The date range overlaps an existing rate for the same pair. Review the relevant Rate history rows and adjust the dates so the periods do not overlap.
  • A coverage gap warning appears. A pair has dated rows on either side of a missing stretch. Review those rows in Rate history. Adding another separate period is not available for a populated pair on this page.
  • Manage units: enable and configure the currency units this page draws on.
  • Manage customers: set the currencies a customer may use and choose its default.
  • Manage pricing: the prices and rates that conversions are applied to.
  • Activity logs: review who changed the global currency or a rate, and when.