Registration
BCCL works in trial mode without a license key, but with significant limitations. Registering BCCL removes these limits and unlocks full functionality.
Trial Mode
When BCCL is not registered, it operates in trial mode. You will see this message when running any command:
Trial version detected, data transfers are limited to 100 records upload and 50000 bytes download.
Trial mode limitations:
| Operation | Limit |
|---|---|
| Upload (import) | Maximum 100 records per transfer |
| Download (export) | Maximum 50,000 bytes per transfer |
Trial mode is useful for:
- Verifying that BCCL connects to your Business Central environment
- Testing your command-line syntax and mapping files
- Confirming that your data format and structure are correct
- Evaluating whether BCCL meets your requirements
All features are available in trial mode -- only the data volume is limited.
License Types
BCCL offers two license types:
Commercial License
- Product IDs: 5864, 1909 (sold as "BCCL Subscription (Enduser)")
- Tied to a specific Azure AD / Entra ID tenant
- Covers all companies and all environments within that single tenant, production and cloud sandboxes alike, so no extra license is needed for sandbox testing
- Suitable for end customers and organizations using BCCL for their own Business Central environment, including downloading BC cloud data into their own on-premises SQL Server for reporting
See "Which License Do I Need?" in License Terms.
Partner License
- Product IDs: 2062, 5865
- Supports cross-tenant scenarios -- you can use a single Partner license to work with multiple customer tenants
- Enables the
--tenantidparameter with OAuth authentication for delegate admin access - Suitable for Microsoft partners, consultants, and managed service providers who deploy and manage BCCL across multiple customer environments
You can purchase licenses from hougaard.com/product-category/bccl.
Registering BCCL
To register BCCL, you need two pieces of information:
- Your license key (received after purchase)
- Your tenant ID (your Azure AD / Entra ID tenant GUID)
Finding Your Tenant ID
If you are using cloud Business Central, your tenant ID is the GUID in your Business Central URL. For example:
https://businesscentral.dynamics.com/abcd1234-5678-9012-3456-789012345678/Production
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This is your tenant ID
You can also find it in the Azure portal under Azure Active Directory > Properties > Tenant ID.
For on-premises environments, you can use any GUID as your tenant ID. It serves as an identifier for your registration.
Running the Registration Command
Open a command prompt or terminal and run:
BCCL --register <your-license-key> --tenantid <your-tenant-guid>
For example:
BCCL --register 00000000-0000-0000-0000-000000000000 --tenantid 00000000-0000-0000-0000-000000000000
--registertakes the license key (GUID format) issued for your organization.--tenantidtakes the Business Central / Entra tenant ID (GUID format) that the license must be tied to.
Warning: The tenant ID you supply here is the tenant the license becomes locked to. If you register with the wrong tenant ID, the registration can only be reset by hougaard.com support (see "Troubleshooting Registration" below). Verify the tenant ID before running the command.
Register Every Installation
The registration is stored locally on the machine (per Windows user profile). When you copy BCCL to another server, for example from a test server to a production server, that instance must be registered on that machine before it runs licensed; until then it prints Trial version detected, data transfers are limited to 100 records upload and 50000 bytes download. Recommended practice: put the --register line as the first line of your batch file, so every run verifies that the instance it runs on is registered. Remembered parameters (--remember) are also machine-local, so a new server needs its own --remember run too. See "Deploying BCCL to an Additional Server" in Installation.
Successful Registration
If the key is valid and the tenant ID matches, you will see:
Registration completed, key is valid.
BCCL will also display the license expiration date:
License expiration date 2027-03-25
Failed Registration
If registration fails, you may see one of these messages:
| Message | Cause |
|---|---|
Please specify --tenantid together with --register |
You forgot to include the --tenantid parameter |
This license key is not for BCCL |
The key belongs to a different hougaard.com product |
Registration failed, please use --register with a valid key |
The key is invalid, expired, or does not match the tenant |
Cannot connect to license server, network issue? |
BCCL cannot reach check.hougaardlicense.com -- check your network/firewall |
Cannot contact hougaard.com for license verification (Object reference not set to an instance of an object.) followed by Registration failed, please use --register with a valid key |
A firewall or proxy blocks check.hougaardlicense.com. Ping the host and open it in a browser on the server itself; a successful ping alone is not proof. |
Registration failed although the key is valid |
The key is already registered against a different tenant ID. Support must reset it. |
How Registration Works
When you register, the following happens:
- BCCL contacts the hougaard.com license server at
https://check.hougaardlicense.comto validate your key. - The server verifies that the key exists, is associated with a BCCL product, and is valid for the specified tenant.
- If validation succeeds, BCCL stores the registration information locally in isolated storage -- a secure, per-user storage area managed by the .NET runtime.
- The registration file is stored at
BCCL/BCCL.registration.datwithin isolated storage. - The stored data includes: the license key, tenant ID, product ID, and expiration date.
Registration Persistence
- Registration persists across sessions. You only need to register once per user profile on each machine.
- The registration is stored per-user -- if multiple users run BCCL on the same machine, each user must register separately.
- Registration is specific to the BCCL executable's assembly identity. If you replace the executable with a different build, you may need to re-register.
Verifying Registration
To check whether your BCCL installation is registered and the license is still valid, run:
BCCL --check
If the license is valid, you will see:
Verifying your BCCL license ...
License OK
If the license has expired:
Verifying your BCCL license ...
License expired {"productid": "5864", ...}
Verbose Verification
For more detailed output during verification, combine --check with --verbose:
BCCL --check --verbose
This shows additional details about the license validation process.
License Verification at Runtime
Every time you run a BCCL command, the client performs a license check:
- It reads the stored registration from isolated storage.
- It checks whether the expiration date has passed (locally).
- It contacts the license server to verify the key is still valid.
- If the license is valid, the command runs without limits.
- If the license is expired or invalid, BCCL falls back to trial mode with the 100 records upload / 50,000 bytes download limits.
If the license server cannot be reached (for example, due to a temporary network issue), BCCL will display a warning but may still proceed based on the locally stored expiration date.
Re-Registration and Renewal
Renewing an Expired License
When you renew your license, you receive a new key. Run the registration command again with the new key:
BCCL --register <new-key> --tenantid <your-tenant-guid>
The new registration overwrites the previous one.
Changing Tenant ID
A license is tied to a tenant ID. If your BC environment moves to a different tenant (for example, when a sister company's tenant is consolidated into the parent's tenant), register the existing license on the new tenant:
BCCL --register <your-key> --tenantid <new-tenant-guid>
Two common assumptions about this step are wrong:
- Re-registering on the new tenant does not automatically release the old tenant. Both tenant registrations remain on the license server until hougaard.com support removes the old one manually, which they do when you state explicitly which tenant ID to remove.
- You do not need to buy a second license for the new tenant. The existing license is re-bound.
No customer-runnable command releases the tenant binding on the license server; --forget only clears local settings on the client machine. For the full procedure, including a temporary two-tenant period during the cut-over, see "Moving a BCCL License to Another Business Central Tenant" in License and Registration Issues.
Partner License Cross-Tenant Usage
If you have a Partner license, you can use BCCL with multiple tenants. During runtime, you can override the registered tenant ID by specifying --tenantid on the command line:
BCCL --tenantid <customer-tenant-guid> -t getdata -s table=18 -f json -o customers.json
This only works with Partner licenses. Commercial licenses are bound to the tenant specified during registration.
Clearing Registration
To remove the stored registration and all saved settings (including authentication tokens), run:
BCCL --forget
This deletes:
BCCL/BCCL.Settings.json(remembered connection settings)BCCL/BCCL.token.json(cached OAuth token)
Note that --forget clears settings but does not delete the registration file. To fully reset, you would need to clear the isolated storage manually or re-register with a new key.
Troubleshooting Registration
"Cannot connect to license server" / "Cannot contact hougaard.com for license verification"
- The machine running BCCL must be able to reach
check.hougaardlicense.comover HTTPS (port 443). - Step 1:
ping check.hougaardlicense.comfrom the server. The host resolves to an Azure web app host name. - Step 2: a successful ping is not sufficient proof. Also open
check.hougaardlicense.comin a browser on the server itself. If ping replies but the browser cannot open the site, the block is at the HTTP/HTTPS or proxy level. - Have your network administrators allow outbound access to
check.hougaardlicense.comfrom the server, then re-run--register.
Registered on the wrong tenant
- A key is bound to the tenant ID it was registered against. You cannot re-register it on another tenant yourself.
- Send the license key, the tenant ID it was incorrectly registered on, and the correct tenant ID to hougaard.com support. Support resets the key and confirms in the ticket; then run
--registeragain with the correct tenant ID. The key itself is unchanged. This applies regardless of where the license was purchased (for example through a partner or reseller). - See License and Registration Issues.
Registration succeeds but BCCL still shows trial mode
- Verify with
BCCL --checkthat the license is recognized. - Check that the license expiration date has not passed.
- Ensure you are running BCCL as the same user who performed the registration (registration is per-user).
"Trial version detected" after BCCL has been working for a long time
- The license has expired. When the license is no longer valid, BCCL falls back to trial behaviour: the running operation stops updating and command output reports the trial message. This is not a corruption, reinstall, or configuration problem.
- Contact
support@hougaard.comto have the license status checked and renewed. Mention thatTrial version detectedappeared and roughly when BCCL stopped updating. There is no self-service reset or re-activation command. - Run
BCCL --check --verboseto see the actual expiration date.