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

# Directo

> Send hours and absences straight into Directo, ready for payroll to confirm.

![Directo in Begin](https://mintcdn.com/beginltd/1mEPFiNo-I-MmRlW/images/cover/integrations-directo-light.png?fit=max\&auto=format\&n=1mEPFiNo-I-MmRlW\&q=85\&s=236a18468a070f15e4b11b965fa502b8)

**Directo API** writes each person's hours and approved absences into Directo, so nobody types them in again. Begin sends them unconfirmed: payroll checks them in Directo and confirms them there.

> [!NOTE]
>
> Directo appears in **Settings → Integrations** once Begin support has turned it on for your
> workspace. Your Directo also needs its XML Direct interface, which you order from Directo: one
> input for absences and one for resources. Ask Directo to allow updates on the key, and to set
> payroll to read hours from resource documents.

## Connect Directo

**1. Get the key**

A Directo user with SUPER rights opens the employee card the key was made for, then **Admin →
XML interfaces**, and reveals the key.

**2. Save it in Begin**

Open **Settings → Integrations → Directo API**, choose **Connect**, paste the key into **XML
Direct token** and choose **Connect**.

**3. Choose the document numbers**

Enter a **First document number** that Directo will never use for anything else, such as
`900000001`. Begin numbers its documents upward from it.

**4. Map hours and absences**

In **Field mappings**, give each hour type the Directo item code it is paid as, and each absence
policy its Directo absence type. Turn on **Hours and pay** and **Absences**.

Each person's **export code** in Begin must be their employee code in Directo. People without one are left out and counted in the run.

## What Directo receives

Each run writes one resource document with the person's hours and one absence document with their absences, per person and pay period. In the hours document a row is one day and one item code; in the absence document a row is one absence.

Running the same month again updates those documents rather than adding new ones. Hours that are no longer in Begin go to Directo as zero.

> [!WARNING]
>
> Directo lets Begin change a document but not delete one, and only until it is confirmed. If an
> absence Begin already sent is cancelled, **Run history** names the document: check it in Directo
> and remove the absence if it is still there. A confirmed document is left as it is, and the run
> says so.

## Check the first result

Run one month from **Manual run** for a couple of people, then open the documents in Directo before you confirm anything or turn on **Sync on a schedule**. If you only need a file to import by hand, use **Directo** (the hours file) instead: it needs no XML Direct.

**Directo API: access and limits**

* **Who can:** the default Administrator role manages integrations; a custom role can carry that permission. Directo is a custom integration that Begin support grants per workspace.
* **Interface:** Directo XML Direct, components `resource` and `absence`, both sent unconfirmed. Directo's API Direct only reads, so Begin does not use it. Directo charges per input component and an activation fee; the customer arranges it with Directo.
* **Not supported:** splitting hours by object, deleting a document, and changing a confirmed one. Part-day absences are sent with their start and end times.
* **Number range:** Begin keeps its numbers per workspace, so a token for another Directo company reuses them; keep the range free in every company the integration has used.
* **Hours:** approved hours only, unless **Include unconfirmed hours** is on.
* **Errors in Run history:** no first document number, numbers used up, people without an export code, absences whose policy has no Directo type, confirmed documents, absences to remove in Directo, and Directo's own refusal text.

## Next

> [card] [Run the integration](https://docs.begin.eu/for-managers/integrations/running-payroll-integrations.md)
>
> Choose a month, run it and check the result.

> [card] [Choose an integration](https://docs.begin.eu/for-managers/integrations/available-integrations.md)
>
> Compare providers and connection methods.

## Still need help?

> [card] [Contact support](mailto:support@heybegin.eu)
>
> Email the Begin team and we'll get back to you.

> [card] [Ask Begin AI](?assistant=open)
>
> Open the AI assistant and get instant answers based on these docs.


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