BCCL Documentation
Index

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 --tenantid parameter 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
  • --register takes the license key (GUID format) issued for your organization.
  • --tenantid takes 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:

  1. BCCL contacts the hougaard.com license server at https://check.hougaardlicense.com to validate your key.
  2. The server verifies that the key exists, is associated with a BCCL product, and is valid for the specified tenant.
  3. If validation succeeds, BCCL stores the registration information locally in isolated storage -- a secure, per-user storage area managed by the .NET runtime.
  4. The registration file is stored at BCCL/BCCL.registration.dat within isolated storage.
  5. 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:

  1. It reads the stored registration from isolated storage.
  2. It checks whether the expiration date has passed (locally).
  3. It contacts the license server to verify the key is still valid.
  4. If the license is valid, the command runs without limits.
  5. 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.com over HTTPS (port 443).
  • Step 1: ping check.hougaardlicense.com from 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.com in 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.com from 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 --register again 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 --check that 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.com to have the license status checked and renewed. Mention that Trial version detected appeared and roughly when BCCL stopped updating. There is no self-service reset or re-activation command.
  • Run BCCL --check --verbose to see the actual expiration date.