How do I ship in different currencies?

Each Delivery Manager Retailer is set up by default with a baseline trading currency of Pounds Sterling (GBP). This is indicated on the Delivery Manager Setup page:



To change the GBP Trading Currency default, you need to contact Metapack support.

Regardless of which currency is set as the Trading Currency, you can pass consignment values in other currencies to your carriers.

To do this, you need to set up the exchange rate for your Trading Currency against each of the other currencies and then ensure that you keep the rates up to date.

Setting up currencies and exchange rates
  1. Select Manage system properties from the System Properties panel near the foot of the Setup page, below Currency Selection:

  2. Ensure that Retailer Settings is selected and then click Add Property at the foot of the System Properties page:

  3. After Name, add a property called currency.supported and, after Text, add a list of the required three-letter currency codes, separated by commas, e.g.


    Click Set Property to add the property and its values to the list of existing Retailer properties.

  4. You now need to add a property for each of the currencies you added at step 3. Each property is used to maintain the current exchange rate for the Trading Currency against the particular currency.

    The properties are in the format currency.rate.<trading_currency>.<other_currency>. So, if we assume that GBP is still our base currency, then, to continue the example from step 3, we need to add the following properties: currency.rate.gbp.eur, currency.rate.gbp.usd, currency.rate.gbp.cad, currency.rate.gbp.aud and currency.rate.gbp.pln.

    The Text value should specify the current exchange rate.

    As an example, to add currency.rate.gbp.eur:

    1. Click Add property.

    2. After Name, add currency.rate.gbp.eur, and, after Text, specify the exchange rate for GBP vs. the Euro:

    3. Click Set Property to add the property and its value to the list of existing Retailer properties.

  5. Once you have added all the required exchange rates, you need to add the property that will activate the conversion of the carrier service attribute values to the currency specified in the consignment.

    To add it:

    1. Click Add property.

    2. After Name, add allocation.currency.conversion.enabled, and set the Text value to true:

    3. Click Set Property to add the property and its value to the list of existing Retailer properties.

  6. Verify that your list of Retailer system properties now contains the conversion enablement flag, the list of currencies supported, and the exchange rate for each, e.g.

  7. You can now change the default Valuation Currency shown above if required. For example, if your consignment and parcel values are always in euros, you may wish to change it to EUR:


    Once you have selected the required default, click Set my default Valuation Currency.


    This is the currency that is displayed by default when you create a delivery.

Maintaining exchange rates

You are responsible for keeping the exchange rates up to date, as they are not updated automatically.

To modify one:

  1. Go to the list of properties shown at step 6 and select the required currency property from those created at step 4.

  2. Go to the bottom of the screen and modify its Value, e.g.

  3. Click Set Property.

Adding currency values to a consignment

To create values for a consignment that are not in the Trading Currency, you need to pass the following in the particular API call:

  1. In consignmentValueCurrencyCode, enter the appropriate three-letter code of the alternative currency (e.g. EUR) that you set up in System Properties.


    If this currency is already set as the default Valuation Currency, then the consignmentValueCurrencyCode will automatically be set to this, and you do not need to specify it explicitly.

  2. Enter the consignment values in the alternative currency. For example, if EUR is associated with the consignmentValueCurrencyCode, then:

    1. if the consignmentLevelDetailsFlag is set to true, enter the overall consignmentValue in euros; or

    2. if the consignmentLevelDetailsFlag is set to false, enter each parcelValue and totalProductValue in euros (these will in turn cause the overall consignmentValue to be calculated automatically).

The API response picks up the exchange rate from the current property value, e.g.

<consignmentLevelDetailsFlag xsi:type="xsd:boolean">false</consignmentLevelDetailsFlag>
<consignmentValue xsi:type="xsd:double">3800.4</consignmentValue>
<consignmentValueCurrencyCode xsi:type="soapenc:string" xmlns:soapenc="">EUR</consignmentValueCurrencyCode>
<consignmentValueCurrencyRate xsi:type="xsd:double">1.09</consignmentValueCurrencyRate>