17 Managing System and Account Currencies

This chapter describes how to set up the Oracle Communications Billing and Revenue Management (BRM) system currencies and account currencies.

About System and Account Currencies

You specify two types of currency in your BRM system:

  • System currency

  • Account currency

The system currency is the default currency for your entire database. It is typically the currency of the country where your BRM system is installed. Every BRM installation includes a system currency. The default system currency is US Dollars (ISO code 840).

The account currency is the currency for a specific customer account. For example, a customer living in France has euro as the account currency. All payments, balance impacts, and billing adjustments use the customer's account currency.

To set the system currency, see "Setting the System Currency".

The account currency is set by the customer or customer service representative (CSR) when the account is created. After the account is created, you cannot change the account currency for an account. See "Defining the Currency for Individual Accounts".

To set the default account currency, see "Setting the Default Account Currency".

About Currency Conversion

Your price list might include balance impacts in the system currency, which might be different from a customer's account currency. If so, BRM needs to convert the system currency that is used when rating to the customer's account currency before making an impact on the customer's account balance. Currency conversion takes effect in real time by using the following process:

  1. When an event is rated, the balance impact is calculated by using the system currency.

  2. The balance impact is converted to the customer's account currency and added to the balance.

When currency conversion rates change, you need to update the /config/currency/conversionrates object. See "Changing Currency Conversion Rates".

Setting the System Currency

The default system currency is US Dollars (ISO code 840). To use US Dollars as the system currency, you do not have to do anything.


If your system currency is not US Dollars, you must set the system currency during installation. After installing BRM, you cannot change the system currency unless you use an SQL query, a method that BRM does not support.

To set the system currency to a currency other than US Dollars, do not preconfigure BRM during installation. Instead, edit the $PIN_CONF_SYS_CURRENCY entry in the pin_setup.values file and run the setup script.

Example of changing the system currency to the euro:


For more information, see "Installing BRM" in BRM Installation Guide.

Setting the Default Account Currency

The default account currency sets the account currency for an account when the currency is not specified at registration.

  1. Open the Connection Manager (CM) configuration file (BRM_Home/sys/cm/pin.conf). BRM_Home is the directory in which you installed the BRM software.

  2. Change the value of the currency entry.

    For example, to change currency from US Dollars to British Pounds, change 840 to 826:

    - fm_cust_pol currency 826  
  3. Save and close the file.

  4. Stop and restart the CM.

Defining the Currency for Individual Accounts

You define account currencies when accounts are created. For more information on creating accounts, see Customer Center Help.


  • You cannot change an account currency after the account has been created.

  • An account can have only one primary currency. If a customer requires two primary currencies, you need to create two accounts for that customer.

Currencies for Account Groups

A subordinate bill unit or sponsored account must use the same account currency as the parent or sponsor account. See "About Account Groups" in BRM Managing Accounts Receivable.

Managing Currencies in Customer Accounts

You can do the following tasks when managing customers:

  • Specify the currency when you create the account.

    You specify the account currency during registration by choosing from a list of currencies and secondary currencies.

    If your account uses two currencies, and the primary currency is the euro, the list of secondary currencies is limited to the EMU currencies for countries that are still in the currency crossover period. (Countries that joined before February, 2002 can only use the euro.)

  • Display the currency in an account in either the primary or secondary currency. Some amounts are always displayed in the primary currency.

Currency Display in the Event Browser

The Event Browser always displays the balance impact of an event in the account's primary currency. If the balance impact affects the system currency or secondary currency, the Event Browser shows the balance impact of the event in that currency also.

Supporting a New Currency

To add a currency resource, use the Resource Editor in Pricing Center.


If you add a resource when Pricing Center is running, you must refresh the price list snapshot to see the new resources.

For more information, see "About Resources" in BRM Setting Up Pricing and Rating.

Finding Currency Codes

To support a currency, you need to know its ISO currency code, for example, 840 for US Dollars. To find ISO currency codes, refer to the ISO 3166 standard.


The ISO currency codes are listed in the BRM_Home/include/pin_currency.h file.

Using Multiple Currencies in Your Price List

When you create your price list, you specify the currency resource for rate plans. Most rate plans use the system currency.

Customers can purchase products that are rated with the system currency or with their account currency. However, the balance impacts must use the account currency. There are two ways to accomplish this:

  • Allow BRM to translate all currencies to the account currency.

  • Create products in each currency.

Creating Products in Multiple Currencies

Converting currencies can result in fluctuating charges based on fluctuating exchange rates. Table 17-1 shows how exchange rates can cause variations in how much a customer pays for the same event, even if the amount charged by the product stays the same:

Table 17-1 Effect of Exchange Rate Variation

Charge in System Currency Exchange Rate What Customer Pays in Account Currency


1 - 1.1



1 - 1.2



1 - .9


If you are contractually obligated to maintain consistent charges, you might need to create products in multiple currencies.

For example, to charge for Internet access time, you could create products that include Internet usage rates with different currency balance impacts. There are advantages to this approach:

  • You do not have to update the currency conversion rates.

  • Your customers are billed in consistent amounts that do not change with exchange rates.

  • When customers register, they see prices in a familiar currency.


    To create multiple products by using different resources, create a set of products for one currency, then use the Product Creation wizard to copy the products for each currency.

About Rating with Multiple Currencies

When rating an event, BRM tries to use a rate plan that charges in the account currency by default. If BRM can't find a rate plan that charges in the account currency, BRM searches for one that uses the system currency. If it can't find one that uses the system currency, it continues to the next product in priority order to rate the event.

About Collecting Credit Card Payments in Multiple Currencies

When you use a credit card processing service, you must deposit payments in a different bank account for each currency. To do so, use a separate merchant ID for each currency, as explained in "About merchant numbers and account identifiers" in BRM Configuring and Collecting Payments.


Credit card processors typically support only a small set of currencies. See the documentation for your credit card processor.

Changing Currency Conversion Rates

BRM stores conversion rate information in the /config/currency/conversionrates object. You must update the object when conversion rates change.

The object can store conversion rates that apply to multiple time periods. For example, you could have different rates for the period from January 1, 2009 to July 31, 2009 and the period from August 1, 2009 to October 31st, 2009.

At CM startup, BRM caches the /config/currency/conversionrates object. To support accurate conversion for suspended payments, the entire object, including all conversion rates, is cached. When you recycle a suspended payment, BRM uses the conversion rate that was valid for the period when the payment was originally made.

It's important therefore to configure the /config/currency/conversionrates object to include conversion rates for all time periods that might be relevant to suspended payments.


Include only conversion rates for time periods that are required to support suspended payments. If the /config/currency/conversionrates object includes a very large number of conversion rates, caching it can consume significant amounts of memory.

By default, the conversion rates for EMU currencies to euro and for euro to EMU currencies is preconfigured and loaded into the database when BRM is installed.

You define the conversion rates and their time periods by adding PIN_FLD_CUR_RATES_TIMEFRAMES arrays to the /config/currency/conversionrates object. There is a separate array for each time period. The rates themselves are defined in the PIN_FLD_CUR_CONV_RATES array in PIN_FLD_CUR_RATES_TIMEFRAMES. The time periods are defined by PIN_FLD_START_T and PIN_FLD_END_T fields.


To verify that you changed the fields, read the object by using the testnap utility or by displaying the /config/currency/conversionrates object in the Object Browser.


Stop and restart the CM after editing the object.

Supporting EMU Currencies and the Euro

Countries that joined the Economic and Monetary Union (EMU) before February, 2002, can only use the euro as their legal currency. Countries that joined the EMU after February, 2002 can still use their national currency and the euro during the crossover period. By default, accounts in crossover countries use a primary account currency and a secondary account currency. These two account currencies handle the process of converting to the euro. They allow customers to pay in euros or in their native EMU currency until the conversion to the euro is complete.

When customers in EMU member countries register, they can select either the euro or the EMU as their primary account currency.

  • When the primary account currency is an EMU currency, the secondary currency must be the euro. BRM automatically assigns the euro as the secondary account currency.

  • When the euro is used as the primary account currency, the customer can choose an EMU currency as the secondary currency, or choose no secondary currency.


    You can specify whether BRM requires a secondary currency when the euro is the primary currency. See "Changing Supported Secondary Account Currencies".

Using the Euro and EMU Currencies in Your Price List

You cannot convert directly from one EMU currency to another EMU currency. You must use triangulation, that is, convert from one EMU currency to the euro and then from the euro to the other EMU currency. There are several implications of using triangulation:

  • If you have customers from many countries, you should use the euro as the system currency. That way, all currency conversion is between the euro and EMU currencies, and never between two EMU currencies, because you cannot convert between account currencies.

    If you must use an EMU currency as the system currency, then you should make sure that customers who have an account currency different from the system currency cannot purchase products by using the system currency. To do so, use the euro as the primary currency for those accounts.

  • Restrict all rates to use either the euro currency or the national EMU currencies, but not both. This ensures you do not redefine the EMU to euro conversion ratio and charge two different amounts for the same service.

Handling Euro Conversion Rounding Errors

Converting between the euro and EMU currencies can result in rounding discrepancies. To allow BRM to accept these rounding discrepancies without reporting an error, you define currency error-tolerance values for EMU currencies.

You set the currency error tolerance separately for each EMU currency. It can be based on a percentage or on minimum and maximum amounts of the total amount billed.

Example of percentage tolerance

You might set the percentage error tolerance amounts for French Francs to 98%:

  • If a customer pays in euros for a 100 FF charge, and the euro amount converts to 99 FF, the payment is accepted.

  • If a customer pays in euros for a 100 FF charge, and the euro amount converts to 97 FF, the payment is not accepted.

Example of amount tolerance

You might set the minimum and maximum error tolerance amounts for French Francs to 3:

  • If a customer pays in euros for a 50 FF charge, and the euro amount converts to 49 FF, the payment is accepted.

  • If a customer pays in euros for a 50 FF charge, and the euro amount converts to 46 FF, the payment is not accepted.

Example of percentage and amount tolerance

If you set both an error tolerance percentage and a tolerance amount, the tolerance percentage overrides the tolerance amount. For example, you might set the percentage tolerance to 1% and the minimum amount tolerance to 5. The customer pays in euros for a 1000 FF charge, and the euro amount converts to 992. The percentage tolerance is met, so the payment is accepted, even though the amount minimum has not been met.

Setting the Error Tolerance

Use the Resource Editor in Pricing Center to set error tolerance.


After you set error tolerance values for your supported currencies, you must activate the error tolerance by modifying the Connection Manager (CM) configuration file. See "Rounding Errors for Overpayments and Underpayments".

Rounding Errors for Overpayments and Underpayments

By default, BRM ignores conversion errors for overpayments and credits the excess to the customer's account. For underpayments, BRM uses the tolerance settings if the customer pays in the secondary currency. You can change how BRM uses the tolerance settings from the Resource Editor.

In addition, you can specify how tolerance values are applied to primary and secondary currencies. See the underdue_tolerance and overdue_tolerance entries in the CM configuration file in BRM_Home/sys/cm.

Limiting the Number of EMU Currencies

You can limit the EMU currency choices available for account currencies. For example, you might want to offer only the currencies in the countries where you do business. See "Changing Supported Secondary Account Currencies".

Euro Support in BRM Client Tools

BRM client applications support multiple currencies in the following ways:

  • Use Event Browser to display the euro and EMU currencies and their balance impacts.


    If the event involved the primary currency, you see only the primary currency. If the event involved the secondary currency, you see the primary and secondary currencies.
  • Use Customer Center to toggle views between the euro and EMU currencies.

  • Use Payment Tool to enter payments in the euro or EMU currencies.

Assigning Primary and Secondary Account Currencies at Registration

When you create an account in Customer Center and select an EMU national currency, the euro is specified as the secondary currency automatically. If you select the euro as the account currency, you must choose an EMU national currency for the secondary currency.


You can configure BRM to not require a secondary currency when the euro is the primary currency. See "Changing Supported Secondary Account Currencies".

Changing the Euro Conversion Error Tolerance

You set the euro conversion error tolerance in the Resource Editor, an application in the Pricing Center. See the Resource Editor help.

Changing Supported Secondary Account Currencies

To limit the EMU currency choices displayed in Customer Center, you need to edit the /config/currency/supportedcombinations object.

Make the following changes to the object:

  • Delete entries for currencies that you do not want displayed.

  • Delete the PIN_FLD_CREATED_T field.

  • Delete the PIN_FLD_MOD_T field.

  • (Optional) To use the euro as the primary account currency without using a secondary currency, change the secondary currency required field to 0:



    Stop and restart the CM after editing the object.


    To set the default secondary currency, move the currency entry to the top of the list of supported currencies. If a secondary currency is required, and the secondary account currency is not supplied during registration, the default secondary currency is the first supported currency listed.


To verify that you changed the fields, read the object by using the testnap utility or by displaying the /config/currency/supportedcombinations object in the Object Browser.