> ## Documentation Index
> Fetch the complete documentation index at: https://docs.consile.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Business Central

> Read access to Microsoft Dynamics 365 Business Central (online) for your AI: environments, companies, master data and accounting data. Early access with five tools, read-only enforced by Consile.

*[Læs siden på dansk](https://docs.consile.ai/connectors/business-central.md)*

The Business Central connector gives your AI read-only access to Microsoft Dynamics
365 Business Central (online). Your AI can find your environments and companies,
read a company's master data and fetch data such as customers, vendors, sales and
purchase invoices, general ledger entries, chart of accounts and trial balance from
Business Central's standard API. You connect with your Microsoft work account, and
your AI never sees the access itself.

> [!NOTE]
>
> Business Central is in early access. The connector currently has five read-only
> tools: three that find environments, companies and the company's master data, and
> two that read Business Central's standard data freely. The description of
> Business Central in the Marketplace also mentions tools that are not available yet.
> Today your AI can only use the five tools on this page.

> **Access**
>
> Read-only, enforced by Consile

> **Authentication**
>
> Microsoft work account

> **Hosting**
>
> Hosted in the EU · Frankfurt

* **Price:** 449 DKK/month excl. VAT. Business Central
  is billed only in DKK. No lock-in, cancel at any time. The price covers 1 user
  and 1 agreement (one connection to your Microsoft tenant, that is, your
  organization at Microsoft). Each extra user and each extra agreement costs 224.50
  DKK/month excl. VAT. Also included in [the Consile Studio membership](https://docs.consile.ai/en/portal/membership.md) and
  [the free edition](https://docs.consile.ai/en/portal/free-edition.md). See [Pricing](https://docs.consile.ai/en/portal/pricing.md).
* **Users:** whoever buys Business Central automatically gets the included
  access. If more colleagues need Business Central in their AI, an administrator
  gives them access under **Team** in the portal (choose **All tools** next to
  Business Central on the person's page). An extra user is billed pro rata from
  the day access is given. A colleague without access can still see the tools in
  their AI, but every lookup is refused with a message to ask an administrator for
  access. If you have [the Consile Studio membership](https://docs.consile.ai/en/portal/membership.md), an
  administrator instead gives one membership licence per person, and it also
  covers Business Central. See [Team](https://docs.consile.ai/en/portal/team.md).
* **Multiple Microsoft tenants and companies:** the portal calls each connection to
  the system an agreement. One agreement covers all environments and companies in
  your Microsoft tenant that the connected user has access to. You need one more
  agreement if you have Business Central in several Microsoft tenants, or if each
  company should have its own connection in the same tenant, locked to exactly
  that company (see the section on locking below). An administrator clicks **Add
  agreement** on the **Connections** card on the connector's page in the portal.
  Each agreement gets its own address, for example
  `https://mcp.consile.ai/business-central-2/mcp`, which you add as a separate
  connector in your AI. Under
  [the Consile Studio membership](https://docs.consile.ai/en/portal/membership.md#one-more-agreement-in-a-system)
  there is no button to add an agreement, so write to
  [support@consile.dk](mailto:support@consile.dk) instead. See
  [Connect Business Central](https://docs.consile.ai/en/connect/connect-business-central.md#multiple-microsoft-tenants-and-companies).
* **Endpoint:** `https://mcp.consile.ai/business-central/mcp` (your own named
  connector in your AI).

## What does it require?

* **Business Central online.** The connector reads from Microsoft's cloud edition
  of Business Central. Business Central on-premises is not supported.
* **A Microsoft work or school account.** You log in with an account in your
  organization at Microsoft. A personal Microsoft account cannot be used.
* **A Business Central user with access.** The user who connects must have a
  Business Central licence and access to the companies your AI should be able to
  read. Your AI only sees the companies and data that this user can see in
  Business Central.
* **Preferably a user with read permissions.** We recommend connecting with a
  Business Central user that only has read permissions. See
  [Read-only](#read-only) below.

## Prerequisites

**1. Subscription**

The connector must be bought in the [portal](https://app.consile.ai). See
[Buy a connector](https://docs.consile.ai/en/portal/buy-a-connector.md).

**2. Microsoft approved**

Log in with your Microsoft work account, and approve Consile at Microsoft.
The connection applies to your whole Consile account. See
[Connect Business Central](https://docs.consile.ai/en/connect/connect-business-central.md).

**3. Access for your user**

If there are several users on the account, an administrator must assign you
Business Central under **Team** in the portal. Whoever bought the connector has
access from the start. If you have created your own Consile account, but belong
to a company that already has Business Central, ask your administrator for an
invitation to the team instead of buying again. See [Team](https://docs.consile.ai/en/portal/team.md).

**4. Your AI connected**

Each user adds the connector in their own AI and logs in with their own
Consile login. See [Connect Claude](https://docs.consile.ai/en/connect/connect-claude.md) or
[Connect ChatGPT](https://docs.consile.ai/en/connect/connect-chatgpt.md).

## Read-only

Microsoft does not offer a pure read permission for Business Central. When you
connect, you therefore approve Microsoft's permission `Financials.ReadWrite.All`
(read and write) plus `offline_access`, which keeps the connection alive. Consile
itself limits the access to reading:

* The connector has no write tools. All five tools can only read.
* Consile only sends read requests to Business Central.
* If Microsoft's approval contains permissions other than the access to Business
  Central and the standard login details, the connection is refused.

Because the approval at Microsoft technically covers both reading and writing,
we recommend connecting with a Business Central user that only has read
permissions. Then Business Central itself also limits the access to reading,
wherever it is used from.

## Environments and companies

Business Central divides your data into environments (for example Production and
Sandbox) and into companies within each environment. One connection covers your
whole Microsoft tenant: all environments and all the companies the connected user
has access to.

You do not choose one company when you connect. Without a lock, your AI finds the
company per question with `list_companies` and uses the Production environment,
unless you ask for another one. If several companies match what you write, the
answer marks it, so your AI can ask you which company you mean instead of
guessing. The choice of environment and company applies only to the single
lookup.

An administrator can also lock an agreement to one environment and one company.
Then every call on that agreement keeps to that company. See the section on
locking below.

## What can it do? (tools)

You do not need to know the tool names. You ask in natural language, and your AI
picks the right one itself. The connector currently provides five read-only tools.
When your AI calls them, they are called `business-central__<tool>` (for example
`business-central__list_companies`).

| Tool | What it does |
| - | - |
| `list_environments` | The environments in your Microsoft tenant (Production or Sandbox) with country code. Used when you have several environments, or when an environment name is not found |
| `list_companies` | The companies in an environment with the id that every lookup in a company requires. Can search by the company's name, but not on a locked connection |
| `get_company_information` | The company's master data: name, address, VAT number (CVR in Denmark), currency and start of the fiscal year. Used to confirm which set of accounts is being read |
| `list_entity_metadata` | The data types the environment provides, and which of them `query_entity` can read. Hidden on a locked connection |
| `query_entity` | Free read query against one of 85 standard data types in Business Central's API, for example customers, vendors, sales and purchase invoices, general ledger entries, chart of accounts, trial balance, aged accounts receivable, bank accounts, items and fixed assets. With filters, selected fields, sorting and splitting into pages |

> **[Building on top yourself? See the API reference](https://docs.consile.ai/developers/tools/business-central.md)**
>
> Full reference with the five tools, arguments, the 85 data types, filter rules,
> pages and error messages.

## Try asking

> **Companies and master data**
>
> > *"Which companies do we have in Business Central? Show the CVR number and the start of the fiscal year for each."*
>
> > *"Which environments do we have, and which companies are in our Sandbox?"*

> **Receivables and invoices**
>
> > *"Which sales invoices in \<company name> are overdue and unpaid? Show customer, due date and remaining amount."*
>
> > *"Show the aged accounts receivable per customer for \<company name>."*

> **Finance**
>
> > *"Show the general ledger entries on account 1010 in August with document number, description and amount."*
>
> > *"What data can you read in our Business Central?"*

> [!TIP]
>
> Mention the company's name and a period in your question, and mention the
> environment if it is not Production. Ask only for the fields you need. Then the
> answer is faster, and large extracts get smaller.

## Lock to one company

One agreement covers all environments and companies in your Microsoft tenant. An
administrator can lock an agreement to one environment and one company in that
environment, so every call on that agreement keeps to that company. In the portal
you first choose **Environment** and then **Company**. The lock is optional.
Without a lock, the connection works as before.

On a locked connection:

* `list_environments` only shows the locked environment, and `list_companies` only
  shows the locked company.
* `list_companies` cannot search by name. If your AI asks for a search, the call
  is refused.
* `get_company_information` and `query_entity` use the locked environment when your
  AI does not name one. They still need the company's id (`companyId`), and it
  must be the locked one. If your AI names another company or another environment,
  the call is refused, and your AI is told what the connection is locked to.
* The Production environment is an exception. If the agreement is locked to a
  sandbox environment, and your AI asks for Production, the connection answers
  with data from the locked sandbox environment. The answer shows which
  environment the data comes from.
* `query_entity` cannot page on to the next page. The answer still shows whether
  there are more rows. Your AI must then narrow the lookup, for example with a
  filter or a shorter period, or ask for more rows at a time (at most 500) with
  fewer fields.
* `list_entity_metadata` cannot be limited to one company and is hidden. The four
  other tools are still there, and `query_entity` can read the same 85 standard
  data types as before.

A company can only be locked on one agreement at a time. A company and its copy in
a sandbox environment count as the same company when the copy has the same id.

If an administrator connects the agreement again with **Reconnect** or a link from
your AI, all calls are refused until an administrator has chosen the environment
and company again. If an administrator disconnects, the lock disappears. How to
lock, and what else happens:
[Lock a connection to one company](https://docs.consile.ai/en/portal/company-lock.md).

## Limitations

* **Early access:** there are no ready-made reports or calculations in one call
  yet. Your AI fetches data with `query_entity` and does the further calculations
  itself, so larger summaries can require several lookups.
* **Read-only:** the connector cannot create, change or post anything in Business
  Central. Consile enforces this itself, because Microsoft's approval cannot be
  limited to reading. See [Read-only](#read-only).
* **Only Business Central online and work accounts:** on-premises and personal
  Microsoft accounts are not supported.
* **Only standard data:** `query_entity` reads the 85 standard data types in
  Business Central's API. Your own API pages and data from extensions cannot be
  read. Not all data types exist in all environments. It depends on country and
  version. `list_entity_metadata` shows what your environment has, but not on a
  locked connection.
* **No PDFs:** the connector does not fetch invoices or other documents as PDF.
* **The user's permissions apply:** if the connected user lacks a licence, a
  permission set or access to a company, Business Central answers with an error
  (403), and your AI is told about it. Reconnecting does not help. Instead, ask a
  Business Central administrator for access.
* **Large answers are split up:** a page is 50 rows by default and at most 500. If
  an answer gets too large, it is refused, and your AI only gets the general error
  "Tool invocation failed." Ask for fewer fields or rows, or narrow it down, for
  example with a period.
* **Microsoft's call limit:** Business Central allows 6,000 calls per 5 minutes
  per user, and the limit is shared with other programs that use the same Business
  Central user. If a lookup hits the limit, your AI is told to wait a little and
  ask for fewer rows.
* **Response time:** if Business Central does not answer in time, the lookup fails
  with the general error "Tool invocation failed."
* **Explanatory errors, but not always:** for the common errors, the connector
  gives your AI an explanation: an access that must be connected again, missing
  permissions, an environment that does not exist, a wrong company id and a
  query that Business Central refuses. When an environment does not exist, the
  message names your environment if the connection only reaches one. Otherwise it
  asks your AI to look up the environments with `list_environments`. Other errors,
  for example an answer that is too large, a timeout or an error at Microsoft, only
  give the general error "Tool invocation failed."
* **The access is renewed automatically, but can stop:** if the renewal fails, or
  Consile is removed in your Microsoft organization, your AI is told that the
  connection must be set up again from the Consile portal. The portal can still
  show **Connected**, because the stored access is still there. Only an
  administrator can reconnect: if the agreement says **Access revoked**, click
  **Reconnect**. Otherwise the administrator chooses **Disconnect** in the menu
  next to the agreement and then clicks **Connect**. You can also ask your AI for
  a new connection link in the connector that belongs to the agreement (for
  example `business-central-2`). If the agreement was locked, an administrator
  must choose the environment and company again afterwards. See
  [Connect Business Central](https://docs.consile.ai/en/connect/connect-business-central.md#the-access-is-renewed-but-the-connection-can-stop).

Is something not working as expected? See [Troubleshooting](https://docs.consile.ai/en/troubleshooting.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.