Documentation Menu

On this page

Settings

Currencies & Locales

Currencies & Locales

Configure multi-currency support and regional formatting options for your organization.

Overview

The Currencies & Locales module allows you to:

  • Add and manage multiple currencies
  • Configure exchange rates
  • Set up regional locales
  • Configure currency symbols and formatting
  • Manage currency-specific settings

Currencies

Adding a Currency

  1. Navigate to Currencies

    • Go to Settings > Currencies & Locales
    • Click "Add Currency"
  2. Currency Details

    • Currency Code: ISO 4217 code (e.g., USD, GHS, EUR)
    • Currency Name: Full currency name (e.g., US Dollar, Ghana Cedi)
    • Symbol: Currency symbol (e.g., $, ₵, €)
    • Locale ID: Associated locale (foreign key to locales table)
    • Exchange Rate: Rate relative to base currency
    • Decimals: Number of decimal places (usually 2)
    • Is Default: Mark as organization default currency
    • Is Active: Enable/disable currency
  3. Save Currency

    • Click "Save" to create the currency
    • Currency appears in currency list

Currency Fields

Currency Code

  • Format: 3-letter ISO 4217 code
  • Examples: USD, GHS, EUR, GBP, JPY
  • Required: Yes
  • Unique: Yes

Currency Name

  • Format: Full name of currency
  • Examples: US Dollar, Ghana Cedi, Euro
  • Required: Yes
  • Display: Shown in dropdowns and reports

Symbol

  • Format: Currency symbol
  • Examples: $, ₵, €, £, ¥
  • Required: Yes
  • Display: Shown before amounts

Locale ID

  • Type: Foreign key to locales table
  • Purpose: Associates currency with regional locale
  • Required: No (can be null)
  • Impact: Affects number and date formatting

Exchange Rate

  • Format: Decimal number
  • Base: Relative to organization's base currency
  • Example: If base is USD and GHS rate is 12.5, then 1 USD = 12.5 GHS
  • Auto-Update: Can be configured for automatic updates
  • Manual Override: Can set manually

Decimals

  • Format: Integer (0-4)
  • Default: 2
  • Purpose: Number of decimal places for amounts
  • Examples: 2 for $10.50, 0 for ¥1000

Is Default

  • Type: Boolean
  • Purpose: Mark as organization's primary currency
  • Limit: Only one currency can be default
  • Impact: Used for reporting and base calculations

Is Active

  • Type: Boolean
  • Purpose: Enable/disable currency
  • Impact: Inactive currencies not shown in dropdowns
  • Data Preservation: Historical data preserved even if inactive

Managing Currencies

Editing a Currency

  1. Navigate to currency list
  2. Click on currency to edit
  3. Modify fields as needed
  4. Click "Save Changes"
  5. Changes take effect immediately

Deleting a Currency

  1. Navigate to currency list
  2. Click on currency to delete
  3. Click "Delete"
  4. Confirm deletion
  5. Currency removed from system

Restrictions:

  • Cannot delete default currency
  • Cannot delete currency with transactions
  • Cannot delete currency with inventory
  • Set as inactive instead of deleting

Exchange Rates

Manual Exchange Rate Update

  1. Navigate to Currencies

    • Go to Settings > Currencies & Locales
    • Click on currency to edit
  2. Update Exchange Rate

    • Enter new exchange rate
    • Set effective date
    • Click "Save"
  3. Rate History

    • System maintains rate history
    • Can view historical rates
    • Used for historical transactions

Automatic Exchange Rate Updates

Configure automatic rate updates:

  1. Navigate to Exchange Rate Settings

    • Go to Settings > Currencies & Locales
    • Click "Exchange Rate Settings"
  2. Configure Auto-Update

    • Enable: Enable automatic updates
    • Source: Select rate source (e.g., Central Bank)
    • Frequency: Update frequency (daily, weekly)
    • Time: Update time
  3. Save Settings

    • Click "Save"
    • System updates rates automatically

Rate Sources

  • Central Bank: Official central bank rates
  • Market Rates: Market exchange rates
  • Custom API: Custom rate provider API
  • Manual: Manual entry only

Locales

Adding a Locale

  1. Navigate to Locales

    • Go to Settings > Currencies & Locales
    • Click "Locales" tab
    • Click "Add Locale"
  2. Locale Details

    • Locale Code: IETF language tag (e.g., en-US, en-GH, fr-FR)
    • Locale Name: Human-readable name (e.g., English (United States))
    • Language: Language (e.g., English, French)
    • Country: Country (e.g., United States, Ghana)
    • Is Active: Enable/disable locale
  3. Save Locale

    • Click "Save"
    • Locale appears in locale list

Locale Fields

Locale Code

  • Format: IETF BCP 47 language tag
  • Examples: en-US, en-GH, fr-FR, es-ES
  • Required: Yes
  • Unique: Yes

Locale Name

  • Format: Human-readable name
  • Examples: English (United States), English (Ghana)
  • Required: Yes
  • Display: Shown in dropdowns

Language

  • Format: Language name
  • Examples: English, French, Spanish
  • Required: Yes
  • Purpose: Language identification

Country

  • Format: Country name
  • Examples: United States, Ghana, France
  • Required: Yes
  • Purpose: Regional identification

Is Active

  • Type: Boolean
  • Purpose: Enable/disable locale
  • Impact: Inactive locales not shown in dropdowns

Locale Impact

Locales affect:

  • Number Formatting: Decimal separators, thousand separators
  • Date Formatting: Date order, separators
  • Time Formatting: 12-hour vs 24-hour, AM/PM
  • Currency Formatting: Symbol position, spacing
  • First Day of Week: Sunday or Monday

Currency-Locale Relationship

Foreign Key Relationship

Currencies are linked to locales via the locale_id foreign key:

  • Database: currencies.locale_id references locales.id
  • Purpose: Associates currency with regional formatting
  • Flexibility: Can be null for global currencies
  • Display: Shows locale name and code in UI

Benefits

  • Normalized Data: Locale data stored centrally
  • Easy Updates: Update locale in one place
  • Consistency: Consistent formatting across system
  • Flexibility: Multiple currencies can share locale

Multi-Currency Transactions

Transaction Currency Selection

When creating transactions:

  1. Select Currency

    • Choose from active currencies
    • Default to organization default
    • Can change per transaction
  2. Exchange Rate

    • System uses current exchange rate
    • Can override if needed
    • Rate saved with transaction
  3. Base Currency Conversion

    • Amount converted to base currency
    • Both amounts stored
    • Reporting uses base currency

Reporting in Multiple Currencies

  • Base Currency: Primary reporting currency
  • Multi-Currency: Reports in selected currency
  • Conversion: Real-time or historical rates
  • Comparison: Compare across currencies

Currency Formatting

Display Formats

Currency amounts are formatted based on:

  • Symbol: Currency symbol position
  • Decimals: Number of decimal places
  • Separators: Thousand and decimal separators
  • Spacing: Space between symbol and amount

Examples

Currency Format Example
USD $1,234.56 $1,234.56
GHS ₵1,234.56 ₵1,234.56
EUR 1.234,56 € 1.234,56 €
JPY ¥1,235 ¥1,235

Best Practices

Currency Management

  • Add all currencies you'll use
  • Keep exchange rates updated
  • Set appropriate decimal places
  • Use correct currency codes
  • Mark appropriate currency as default

Locale Management

  • Add locales for all regions you operate in
  • Use correct IETF locale codes
  • Keep locale names descriptive
  • Activate only needed locales
  • Regularly review locale settings

Exchange Rate Management

  • Update rates regularly
  • Use reliable rate sources
  • Maintain rate history
  • Document rate sources
  • Test automatic updates

Multi-Currency Setup

  • Plan currency needs before setup
  • Configure base currency first
  • Set up exchange rate updates
  • Test currency conversion
  • Train users on multi-currency

Troubleshooting

Currency Not Showing in Dropdown

  • Verify currency is active
  • Check if currency is deleted
  • Refresh the page
  • Verify user permissions
  • Contact support if needed

Exchange Rate Not Updating

  • Check auto-update settings
  • Verify rate source is accessible
  • Check API credentials
  • Test manual update
  • Contact support if issue persists

Incorrect Currency Formatting

  • Verify locale is configured correctly
  • Check decimal places setting
  • Verify symbol is correct
  • Test with sample amount
  • Contact support if needed

Cannot Delete Currency

  • Check if currency is default
  • Verify no transactions exist
  • Check if inventory uses currency
  • Set as inactive instead
  • Contact support if needed

Locale Not Working

  • Verify locale code is correct
  • Check if locale is active
  • Verify currency is linked to locale
  • Test with sample data
  • Contact support if issue persists

Database Schema Reference

Currencies Table

CREATE TABLE currencies (
    id INT PRIMARY KEY AUTO_INCREMENT,
    organization_id INT,
    code VARCHAR(3) NOT NULL,
    name VARCHAR(100) NOT NULL,
    symbol VARCHAR(10) NOT NULL,
    locale_id INT,
    exchange_rate DECIMAL(20, 6) DEFAULT 1.000000,
    decimals INT DEFAULT 2,
    major_singular VARCHAR(50),
    major_plural VARCHAR(50),
    minor_singular VARCHAR(50),
    minor_plural VARCHAR(50),
    is_default BOOLEAN DEFAULT 0,
    is_active BOOLEAN DEFAULT 1,
    FOREIGN KEY (locale_id) REFERENCES locales(id)
);

Locales Table

CREATE TABLE locales (
    id INT PRIMARY KEY AUTO_INCREMENT,
    code VARCHAR(10) NOT NULL UNIQUE,
    name VARCHAR(100) NOT NULL,
    language VARCHAR(50),
    country VARCHAR(50),
    is_active BOOLEAN DEFAULT 1
);

Privacy Center.

We use cookies to enhance your experience and analyze traffic. By clicking "Accept All", you consent to our use of cookies. Read Policy

Cookie Preferences

Necessary

Essential for the website to function properly.

Analytics

Help us understand how visitors interact with the website.

Marketing

Used to display ads that are relevant and engaging.

Live Chat

Chat on WhatsApp

Reach the QoTrack team for sales questions, onboarding help, or a quick product walkthrough.

Preferred Contact

+233542795439

Mon-Fri, 8am - 6pm

Start WhatsApp Chat
Try it out Live Demo