> For the complete documentation index, see [llms.txt](https://developer.ultimo.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.ultimo.net/connectors/universal-print/how-to-setup.md).

# How to setup

## Onboarding

Before Universal Print can be used in Ultimo, it has to be onboarded in your organisation first. Use the official [onboarding](https://learn.microsoft.com/en-us/universal-print/fundamentals/universal-print-getting-started#step-1-register-universal-print-ready-printers) page to set up Universal Print and make printers available.&#x20;

## Implementation steps

To make sure that Ultimo is able to connect to the shared printers in Universal Print using the Microsoft Graph API, the Ultimo application must be registered with Azure Active Directory and granted specific permissions.&#x20;

To set up the app registration and assign these permissions, use the following implementation steps.

#### 1. Register application with Microsoft Entra ID <a href="#id-1.-register-application-with-azure-active-directory" id="id-1.-register-application-with-azure-active-directory"></a>

1. Go to the [Azure portal](https://portal.azure.com/) and sign in. This account must be in the same directory as the account that will be used to access Universal Print.
2. Select **Microsoft Entra ID** and then select **Manage** > **App Registrations** in the left side menu.
3. Click on **New Registration** and use the following values:
   1. Enter a **Name** for the application
   2. For **Supported account types** choose **Accounts in this organizational directory only**
   3. For **Redirect URI** choose **Web** and enter the following value based on your situation (note: the URI is case sensitive):

      `{UltimoEnvironment}/OAuth2Callback` where `{UltimoEnvironment}` is the domain where Ultimo is hosted.\
      Example: `https://customer.ultimo.net/OAuth2Callback`
4. Click **Register**. Then copy the value of the **Application (client) ID** and the **Directory (tenant) ID** and save it. This will be needed later.
5. Select **Certificates & secrets** in the left side menu and click **New client secret**. Enter a description and click **Add**.
6. Copy the **Value** of the added client secret and save it.
7. Select **API permissions** in the left menu and select **Add permission**.
   1. select **Microsoft Graph**.&#x20;
   2. Select **Delegated permissions** and then add the following permissions: PrinterShare.ReadBasic.All, PrintJob.Create, PrintJob.ReadWrite
   3. Select **Add permissions**.

#### 2. Create credential in Ultimo <a href="#id-2.-create-credential-in-ultimo" id="id-2.-create-credential-in-ultimo"></a>

The application that was registered in the previous steps can be used to create a credential in Ultimo.

1. Go to the UCTool and select **Credentials** under **Authorisation**.
2. Click on the plus icon to create a new credential and use the following values:
   1. Enter an **Id** and **Description** for the credential
   2. For **Grant type** choose **Authorization Code**
   3. For **Authorization URL** enter\
      `https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/authorize?prompt=select_account`\
      where `{tenant-id}` should be replaced with the **Directory (tenant) ID** that was copied in the previous steps
   4. For **Access token URL** enter\
      `https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/token`\
      where `{tenant-id}` should be replaced with the **Directory (tenant) ID** that was copied in the previous steps
   5. For **Client Id** enter the value of the **Application (client) ID** that was copied in the previous steps
   6. For **Client secret** enter the **Value** of the added client secret that was copied in the previous steps
   7. For **Scope** enter the following value:

      `https://graph.microsoft.com/.default offline_access`
3. Click on the save icon.
4. Click on the key icon in the toolbar to get an access token.
5. You will be redirected to the Microsoft login screen. Sign in with an account that has access to the shared printers.
6. You will be redirected back to Ultimo.

#### 3. Add printers in Ultimo <a href="#id-2.-create-credential-in-ultimo" id="id-2.-create-credential-in-ultimo"></a>

The printers that have been shared in Universal Print can now be added as printers in Ultimo.

1. Go to the UCTool and select **Printers** under **Settings**.
2. Click on the plus icon to add a new printer and use the following values:
   1. Enter an **Id** and **Description** for the printer
   2. For **Type** choose **Universal Print**
   3. For **Share Id** enter the printer share Id. The Share Id can be found on the Universal Print page in the Azure Portal. Go to Printer shares, click on the printer you are adding to Ultimo and copy the **Share Id** property.
   4. For **Credentials** select the credential that was created in the previous steps
3. Click on the save icon.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developer.ultimo.net/connectors/universal-print/how-to-setup.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
