License Activation Guide
Everything you need to know about activating your FxMath Harmony Pro license, managing MT5 accounts, and verifying your installation — from purchase to full operation.
Overview
FxMath Harmony Pro uses a remote license verification system powered by Cloudflare Workers. Each license key is bound to up to 2 MT5 account numbers of your choice. The verification is instant, secure, and works globally with zero latency.
Quick Links
Client Self-Service Portal
For end users. Login with your license key to view your subscription details and manage your MT5 account numbers.
🔑 Open Client PortalHow Licensing Works
The license system is designed to be transparent and non-intrusive. Here's the architecture at a glance:
+ MT5 account #
in 50ms globally
in Cloudflare KV
License Key Format
License keys follow the format: FHM-XXXX-XXXX-XXXX-XXXX (e.g. FHM-F32B-76FE-7C30-9C01).
Each key is automatically generated when you purchase. You will receive it via email or through your reseller.
Quick Start — 3-Step Activation
Get Your License Key
Purchase FxMath Harmony Pro and receive your license key. It looks like: FHM-XXXXXXXX-XXXX-XXXX. Keep it safe — it's your access credential.
Activate via App or Client Portal
Option A — In the App: Launch the app. A License Gate screen appears automatically. Paste your key and click Activate. The app instantly verifies with the server.
Option B — Client Portal: Visit the Client Portal, enter your license key, and manage your MT5 accounts from the web.
Register Your MT5 Account(s)
In the Client Portal, enter up to 2 MT5 account numbers that you use for trading. These are the only accounts allowed to run the app.
When you launch the app and click Connect MT5, it automatically checks if your logged-in MT5 account matches your registered account list. If not, connection is blocked.
👤 Client Self-Service Portal
The Client Portal allows end users to manage their license and MT5 accounts without contacting support.
What You Can Do
| Action | Details |
|---|---|
| 🔓 Login | Enter your license key to access your dashboard. No password needed — the key itself is your credential. |
| 📄 View License | See your key, client note, expiration date (or Lifetime), and current status. |
| ➕ Register MT5 Accounts | Enter up to 2 MT5 account numbers that will be authorized to run the app. |
| 🔄 Switch Accounts | Update or replace your account numbers at any time. Changes take effect immediately. |
| 🚪 Logout | Securely end your session. |
📱 In-App Activation
When you launch FxMath Harmony Pro, you will see a full-screen License Gate overlay. Here's exactly what to do:
Steps to Activate in the App
- Launch the application (
FxMath_Harmony_Pro.exeorpython main.py). - The License Gate appears automatically — it checks if you have a license saved already.
- If you have a key, paste it in the "License Key" field.
- Leave the License Server URL as the default (unless you were given a custom server).
- Click 🔓 Activate License.
- You'll see a green "License activated successfully!" message and the gate closes automatically.
- If you don't have a key yet, click "Skip for now" — you can activate later from Settings → License Key tab.
Where to Find License Settings in the App
After activation, you can always view your license status in the app:
- Click Settings in the top navigation bar.
- Scroll to the 🔑 License Key & Remote Activation card (usually at the bottom of the Settings page).
- Here you can see your current License Status badge (Active, Invalid, etc.), expiration details, and authorized MT5 accounts.
- You can change your key or server URL and click 🔄 Verify License to re-verify.
✅ MT5 Account Verification
This is the core security feature of the license system. When you connect MT5, the app automatically verifies that your logged-in account is authorized.
How It Works
You Click "Connect MT5"
The app first re-verifies your license key directly with the Cloudflare Worker to ensure it's still valid.
MT5 Connects
The app opens the MT5 connection using your selected terminal. It then reads the account login number (e.g. 7797917).
Account Check
The app checks if 7797917 is in your license's registered accounts list ([7797917, 509214]). If it is → full access granted. If it's not → MT5 disconnects with an error message.
"MT5 Account #XXXXXXX is not registered under this license", please visit the Client Portal, log in with your license key, and add your MT5 account number to your license's allowed list.
Account Verification Diagram
🔄 Connection Flow Summary
| Step | Action | If Valid | If Invalid |
|---|---|---|---|
| 1. App Launch | License gate checks saved key | Gate hidden | Gate shown |
| 2. Activate | Verify key with remote server | Success → dismissed | Error displayed |
| 3. Connect MT5 | Re-verify license + check account # | Full access | Blocked + error |
| 4. Scan / Trade | Check cached license (15-min TTL) | Allowed | 403 Forbidden |
❓ Frequently Asked Questions
How many accounts can I use with one license?
Each license supports up to 2 MT5 account numbers by default. You can manage them from the Client Portal. If you need more, contact your reseller to upgrade.
Can I switch my registered account numbers?
Yes, at any time. Log into the Client Portal with your license key, update the account numbers, and click Save & Apply Changes. The change takes effect immediately.
What if I don't register any accounts?
You can still verify the license and use the app. However, when you try to connect MT5, the app will warn that "no accounts are registered" and recommend you visit the Client Portal. We strongly recommend registering at least one account.
Does the app need internet to work?
Only during license verification (at startup and when connecting to MT5) and for pattern scanning/trading (which requires MT5). The license check uses a cached 15-minute window — no constant internet needed.
Is my license key safe?
Yes. License keys are stored in Cloudflare KV — enterprise-grade, globally distributed key-value storage. Communications use HTTPS/TLS encryption. The key is never transmitted in plain text.
What if my license expires?
You'll see the license gate again on the next launch. Contact your reseller to renew or extend your license. If you had a Timing license (by days), it automatically expires on the set date — no action needed.
Can I use the same key on multiple computers?
Yes — the license is bound to your MT5 account number, not to a specific computer. You can run the app on a home PC, a laptop, and a VPS simultaneously with the same key, as long as all of them connect using the same registered MT5 account.
How do I know my license is active?
In the app, go to Settings → License Key & Remote Activation. You'll see a status badge. A green "Active" badge means all is good. You can also check your portal anytime at the Client Portal.
🔧 Troubleshooting
"License verification failed: Forbidden (HTTP 403)"
Cause: The license key is invalid, expired, or the MT5 account number is not registered.
Solution: Check your key in the Client Portal. Ensure your MT5 account number is registered. If the problem persists, contact support.
"MT5 Account #XXXXXX is not registered"
Cause: Your connected MT5 account number is not in your license's allowed list.
Solution: Log into the Client Portal → enter your license key → add your MT5 account number to the list → click Save & Apply Changes. Then try connecting again.
App doesn't show the License Gate
Cause: A valid license is already saved in settings.json.
Solution: This is normal! If you want to change your key, go to Settings → License Key and update it there.
"Connection error" when verifying
Cause: The app cannot reach the Cloudflare Worker (no internet, DNS issue, or server down).
Solution: Check your internet connection. Verify the License Server URL is correct: https://fxmath-harmony-license.fxmathcp.workers.dev. Try opening the server URL in your browser — you should see a JSON response.
Can't log into the Admin Panel
Cause: Incorrect username or password.
Solution: Ensure you're using the correct credentials provided by your reseller. If you forgot your password, contact the license administrator to reset it.