> ## 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.

# Connect Uniconta

> Give Consile access to Uniconta with a dedicated Server-Login User and a Company ID, without a redirect. Read access is enough for every read tool.

*[Læs siden på dansk](https://docs.consile.ai/connect/forbind-uniconta.md)*

You connect Uniconta with a form in the portal, not with a login redirect. You
create a dedicated user in Uniconta and enter three fields in the portal, and
Consile stores them encrypted. Your AI never sees the login.

> [!NOTE]
>
> You need an active Uniconta subscription in the [portal](https://app.consile.ai),
> or the system must be included in your plan
> ([the free edition](https://docs.consile.ai/en/portal/free-edition.md) or
> [the Consile Studio membership](https://docs.consile.ai/en/portal/membership.md)). You can connect Uniconta before or after you have connected your AI
> ([Claude](https://docs.consile.ai/en/connect/connect-claude.md) or [ChatGPT](https://docs.consile.ai/en/connect/connect-chatgpt.md)).
> Creating the user in Uniconta requires a Uniconta administrator. In Consile,
> anyone on the team can connect an agreement that is not connected yet. Only an
> administrator can reconnect it or disconnect it. The connection applies to the
> whole company.

## Step 1: Create a Server-Login User in Uniconta

Consile logs in with a **Server-Login User** (a server user), not your own
personal user. It is a dedicated user for the integration, and its rights in
Uniconta decide what the connector can read and write.

**1. Open user administration**

Log in to Uniconta as an administrator and go to **Company → User rights →
Manage users**.

**2. Add a Standard user**

Click **Add user** and choose **Standard user → Create new**. Do **not** choose
"Workapp user": it does not provide a server login.

**3. Create it as a server user**

Fill in name, login id, email, phone and country, and set **User type =
Server user** (what the Uniconta WebAPI calls a "Server-Login User"). Choose a
strong password, repeat it, and click **Save**.

**4. Grant the user rights**

Choose the level when **User rights** appears. Read access is enough for every
read tool. If your AI should be able to create and post lines in the daily
journal, the server user needs write access to the daily journal and the right
to post. Without those rights, Uniconta refuses the change, and nothing
happens. If you only want to read, an administrator can also set the users to
**Read only** under [Team](https://docs.consile.ai/en/portal/team.md) in the portal (see
[Access level per user](https://docs.consile.ai/en/connectors/uniconta.md#access-level-per-user)).

**5. Note the Company ID (CompanyId)**

Note the **CompanyId** of the company your AI should work with. If you have
several companies, you connect one company per agreement (see
[Multiple companies](#multiple-companies)).

> [!WARNING]
>
> **It must be a Server user.** A regular user or a "Workapp user" is refused by
> Uniconta, and your AI gets an error instead of an answer. An administrator then
> disconnects and reconnects with a server user.

> [!TIP]
>
> If you set an expiry on the server user (the portal's guide suggests, for
> example, 1 year ahead), note the date and renew the user in Uniconta before it
> expires. Once the expiry has passed, the connection stops working.

## Step 2: Enter the fields in the portal

**1. Open the form in the portal**

Open the Uniconta connector in the portal. Click **Connect now** at the top of
the page, or **Connect** next to the agreement on the **Connections** card.
The portal calls each connection to a system an agreement. A short form opens
with a step-by-step guide at the top. You are not sent on to an external page.

**2. Enter your three fields**

The form shows the field labels in Danish, as below.

| Field | What it is |
| - | - |
| **Uniconta-brugernavn (Server-Login User, login-id)** | The login id of the server user you created in step 1 |
| **Adgangskode** | The server user's password (shown masked, treated as secret) |
| **Firma-ID (CompanyId)** | The id of the Uniconta company you want to connect |

All three fields are required. You find the values in Uniconta itself.
Consile handles its own partner key, so you never have to enter it.

**3. Save**

Click **Connect**. The values are encrypted and stored under your account.

> [!TIP]
>
> The **Uniconta is ready** screen shows the connector's address,
> `https://mcp.consile.ai/uniconta/mcp`. If you have not already added it in
> your AI, copy it and add it as a custom connector (see
> [Connect Claude](https://docs.consile.ai/en/connect/connect-claude.md)). Click **Go to connector** to
> return to the Uniconta page, where the status is now **Connected**.

> [!TIP]
>
> The connection is shared by the whole company, so colleagues do not have to
> connect Uniconta again. An administrator gives them access under **Team**, and
> each colleague adds the address in their own AI and logs in with their own
> Consile login. See [Team](https://docs.consile.ai/en/portal/team.md).

> [!NOTE]
>
> If you connected Uniconta with a server user that only has read access, all read
> tools keep working as before. Uniconta refuses writes in the daily journal until
> the server user gets write access to the daily journal and the right to post.

## Multiple companies

Each agreement covers one company (one Company ID). If you have several
companies, do this:

**1. Add an agreement**

Open the Uniconta connector in the portal. On the **Connections** card, an
administrator clicks **Add agreement (149.50 kr/mo.)**. The amount is excl.
VAT and is added to the existing subscription.

**2. Connect the new company**

When the new agreement is ready (typically after a few seconds), click
**Connect** next to it and enter the server user's login and the other
company's Company ID. The same server user can be used if it has access to
both companies.

**3. Add the address in your AI**

Each agreement has its own address, for example
`https://mcp.consile.ai/uniconta-2/mcp`. Copy it with the copy icon next to
the agreement, and add it as an extra connector in your AI.

Each agreement normally shows with the company's name and Company ID from
Uniconta. Your AI only works in the company the agreement is set up with, even if
the server user has access to several. If the companies belong to your customers,
for example because you are their accountant, an administrator can tie each agreement to its
customer in Studio. See
[Move an agreement to a customer](https://docs.consile.ai/en/studio/customers.md#move-an-agreement-to-a-customer).

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. One more company costs full price under
the membership. Write to [support@consile.dk](mailto:support@consile.dk), and
Consile sets it up.

An administrator removes an agreement with the menu next to it (the three dots):
choose **Remove the agreement**, and confirm with **Remove agreement**. If you
remove an agreement other than the last one, the last agreement moves up into the
free slot and takes over its address (for example `uniconta-2` instead of
`uniconta-3`). So update the address in your AI. You remove the last agreement by
cancelling the subscription under **Subscription**.

## What exactly am I approving?

> **Read + daily journal behind guardrails**
>
> The connector reads the accounts with the server user and can work in the
> daily journal: create, edit and delete unposted lines and post the lines you
> point out. Every change requires your confirmation; otherwise you only get a
> preview. Nothing else in Uniconta can be changed.

> **Encrypted per customer**
>
> Username, password and Company ID are stored encrypted with a key that applies
> only to your account. They are never logged.

> **Your AI never sees it**
>
> Your AI is never given the login itself. It only receives answers to your
> questions.

> **Disconnect at any time**
>
> An administrator clicks the menu next to the agreement on the
> **Connections** card and confirms with **Disconnect**. The login is then
> deleted from Consile immediately. The subscription continues. The server user
> still exists in Uniconta, so delete it there or change its password if it is
> no longer to be used.

> [!TIP]
>
> **Check the connection.** The **Uniconta is ready** screen means the values are
> stored. Then ask your AI a simple question, for example about the balance of an
> account. If the username, password or Company ID is wrong, you get an error
> instead of an answer. See [If a lookup fails](#if-a-lookup-fails).

## If a lookup fails

* If your AI answers that Uniconta refused the login and that a reconnect is
  needed (`reconnect required`), or it answers "Tool invocation failed." to every
  Uniconta question, the login, the Company ID or the user's rights are almost
  always the cause.
* Ask your AI: *"Which Uniconta company are you connected to?"* The answer only
  shows the company the connection is set up with:
  * If you get the company's name, the login id, password and Company ID are in
    order. The error is then in the user's rights.
  * If your AI finds no company, the login works, but the Company ID does not
    match a company the server user has access to. Find the right **CompanyId**
    in Uniconta, and ask an administrator to reconnect with it.
  * If your AI gets the message that a reconnect is needed (`reconnect
    required`), it is the login that is wrong.
* Confirm that the user is a **Server user** (not a regular or Workapp user),
  that the password is still valid, and that the Company ID matches the right
  company.
* If an expiry is set on the server user in Uniconta, check whether it has passed.
* An administrator disconnects and reconnects with correct values. An
  administrator can also ask your AI for a new connection link in the connector
  that belongs to the agreement (for example `uniconta-2`). The link opens the
  form for exactly that agreement.
* If Uniconta refuses a change in the daily journal with a message like
  *"Uniconta refused … Nothing was changed."*, nothing has been changed. If the
  server user lacks rights, give it write access to the daily journal and the
  right to post in Uniconta. Otherwise the reason is in the message, for example
  an unknown account.
* If it keeps happening, contact [support@consile.dk](mailto:support@consile.dk)
  with the time and the question you asked.

More about data processing in [Security & data](https://docs.consile.ai/en/essentials/security-and-data.md).


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