Group currency
The group currency is the main, default currency of your Engage instance. It's used in BI exports, in purchases and returns, for generating points and in reward vouchers.
The format of the Engage group currency is ISO 4217. For example:
EUR
SEK
GBP
NOK
USD
Your group currency is configured in the Engage back-end. You can send transactions in other currencies, which will then be converted into the group currency in Engage. The currencies you wish to use must be configured in your Engage instance along with the exchange rates to and from the group currency, to allow correct value conversion.
For example, if your group currency is set as SEK but you want to also sometimes send in transactions in EUR and GBP, you'll need to add this configuration (often called "the conversion table") in the Engage back-end:
[ {"currency": "EUR", "toFactor": 0.1, "fromFactor": 10}, {"currency": "GBP", "toFactor": 0.075, "fromFactor": 13.3} ]
A group currency value multiplied by toFactor gives you the value in the secondary currency.
A secondary currency value multiplied by fromFactor gives you the value in the group currency.
Caution
Clearly, fromFactor multiplied by toFactor for a currency has to equal 1.0.
Group currency in transactions
If a transaction is sent to Engage in a currency that isn't the group currency, it will be converted to the group currency using the values given in the conversion table. These values, though, are static and don't consider the daily fluctuations in the currency. A more exact way is to send the currency conversion at the moment the transaction was made, using the exchangeRateToGroupCurrency field in the transaction payload.
Here is an example when the group currency in Engage is set to EUR:
{ "contact": { "matchKey": "1c333c0a-ed33-3333-33cb-b0333333c333", "matchKeyType": "contactId" }, "uniqueReceiptId": "20180906468464468", "receiptNumber": "468464468", "createdDate": "2018-09-06T15:55:54+01:00", "storeExternalId": "321", "currency": "GBP", "exchangeRateToGroupCurrency": 0.877969, "totalGrossPrice": 11.00, "paymentMethods": [{ "type": "Card", "description": "Debit Card", "value": 11.00 }], "items": [{ ...
So if exchangeRateToGroupCurrency exists in the payload, it will be used to convert the amount to the group currency. Otherwise the default value in the conversion table will be used to do that.