---
title: "User Guide: Dynamic Currency Sync for Blesta"
description: "Dynamic Currency Sync keeps your Blesta package prices correct in every currency. Whenever Blesta updates its exchange rates, the plugin recalculates prices in your non-base currencies, adds your safety margin and applies the price ending you choose. ## Requirements -…"
url: "https://my.topeta.com/docs/blesta-dynamic-currency-sync/setup-guides/user-guide-blesta-dynamic-currency-sync/"
updated: "2026-11-07"
category: Setup Guides
---

# User Guide: Dynamic Currency Sync for Blesta

Dynamic Currency Sync keeps your Blesta package prices correct in every currency. Whenever Blesta updates its exchange rates, the plugin recalculates prices in your non-base currencies, adds your safety margin and applies the price ending you choose.

## Requirements

- Blesta 5.0 to 6.x
- PHP 7.4 or later
- MySQL 5.7+ or MariaDB 10.2+
- The free [Blesta Topeta Framework](https://my.topeta.com/downloads/blesta-topeta-framework/) v1.1.0 or later
- A Dynamic Currency Sync license key from your [Topeta account](https://my.topeta.com/dashboard/)

Back up your Blesta database before installing any plugin.

## 1. Install the Blesta Topeta Framework

Skip this step if the **Topeta Helper** plugin is already installed.

1. Download the free [Blesta Topeta Framework](https://my.topeta.com/downloads/blesta-topeta-framework/).
2. Extract the ZIP in your Blesta root folder (the folder that contains `plugins/`). It creates `plugins/topeta_helper/`.
3. In Blesta, go to **Settings → Company → Plugins → Available** and click **Install** next to **Topeta Helper**.

## 2. Install Dynamic Currency Sync

1. Download `blesta-dynamic_currency_sync-vX.X.X.zip` from **Downloads** in your [Topeta account](https://my.topeta.com/dashboard/).
2. Extract the ZIP in your Blesta root folder. It creates `plugins/dynamic_currency_sync/`.
3. Go to **Settings → Company → Plugins → Available** and click **Install** next to **Dynamic Currency Sync**.

## 3. Activate your license

1. Go to **Tools → Topeta Helper**.
2. Find **Dynamic Currency Sync** in the list.
3. Paste your license key from **Licenses** in your Topeta account and click **Save License Keys**.
4. The status changes to active, and a green **PRO** badge appears on the plugin's settings page.

**Important:** the license is checked when you save it in Topeta Helper. Until you do, the plugin shows "License verification pending" and does not sync prices. If you renew or change your license, open Tools → Topeta Helper and save again.

## 4. Configure the plugin

Open **Settings → Company → Plugins → Installed → Dynamic Currency Sync → Manage**, or **Tools → Dynamic Currency Sync**. Settings are saved per company.

| Setting | What it does | Default |
| --- | --- | --- |
| Enable Automatic Price Sync | Turns automatic recalculation on or off. | Off |
| Safety Margin (%) | Added on top of the exchange rate. For example, 2.5 adds 2.5%. | 0 |
| Default Rounding Strategy | The price ending used for all currencies. | Standard 2 decimals |
| Target Currencies | The currencies to update. Leave empty to update all non-base currencies. | All |
| Excluded Packages | Packages that keep the prices you set by hand. | None |
| Per-Currency Rounding Overrides | A different price ending for a specific currency. | None |

### Buttons

- **Save Settings** saves everything above.
- **Preview (Dry Run)** calculates the new prices and shows them next to the current ones, without saving anything.
- **Sync Prices Now** recalculates and saves prices immediately.

We recommend running a preview first, then **Sync Prices Now**, then turning on automatic sync.

## How prices are calculated

New price = base price × exchange rate × (1 + safety margin ÷ 100), then the rounding rule is applied.

Example: a $10.00 package, EUR rate 0.92, 3% margin and the .99 ending gives 10 × 0.92 × 1.03 = €9.48, shown as **€9.99**.

### Rounding rules

| Rule | Example input | Result |
| --- | --- | --- |
| .99 ending | 12.34 | 12.99 |
| .95 ending | 12.34 | 12.95 |
| .90 ending | 12.34 | 12.90 |
| .49 ending | 12.34 | 12.49 |
| .50 ending | 12.34 | 12.50 |
| Nearest whole number | 12.34 / 12.60 | 12.00 / 13.00 |
| Round up to whole number | 12.01 | 13.00 |
| Nearest 10 | 14.50 / 16.00 | 10.00 / 20.00 |
| Standard 2 decimals | 12.345 | 12.35 |

The ending rules keep the whole-number part and replace the decimals, so 12.34 becomes 12.99, not 13.99.

Terms priced at 0.00 in your base currency always stay at 0.00.

## When syncing happens

- When Blesta updates exchange rates automatically.
- When you edit an exchange rate or a currency in Blesta.
- Once a day through the **Sync Prices** cron task (Settings → System → Automation), as a backup.

Only catalog package prices change. Existing client services and their renewal prices are never changed.

## Staff access

Go to **Settings → Company → Staff → Staff Groups**, edit a group, and under **Plugins** tick **Dynamic Currency Sync Main Access**.

## Audit log

Each automatic sync is recorded under **Settings → System → System Logs**.

## Troubleshooting

**Prices don't update when exchange rates change**

- Check that **Enable Automatic Price Sync** is on.
- Check that your license is active under **Tools → Topeta Helper**. If it says "License verification pending", click **Save License Keys** once.
- Check that the currency is selected under **Target Currencies**, or that the list is empty.
- Check that the package isn't in **Excluded Packages**.

**"A valid Topeta Premium License is required"**

Your key is missing, expired, on another domain or not yet verified. Open Tools → Topeta Helper and save the key again. If the problem continues, open a support ticket.

**Will this change my clients' renewals?**

No. Only prices for new orders are updated.

**What if something fails during a sync?**

All price changes run in one database transaction. If an error happens, nothing is saved.

## Upgrading

1. Download the new version from your Topeta account.
2. Extract it over `plugins/dynamic_currency_sync/`.
3. Go to **Settings → Company → Plugins → Installed** and click **Upgrade** next to Dynamic Currency Sync.

## Need help?

[Open a support ticket](https://my.topeta.com/support-portal/) from your account. The developers who built the plugin answer it.
