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

# Connecting ITCloud.ca to Neo

> Create an ITCloud.ca API integration with an RSA key pair, save its keys in Neo, check the customer mapping, and turn on seat changes

ITCloud.ca's Partner API signs each request with an RSA key pair. You keep the private key, give ITCloud.ca the public key, and ITCloud.ca gives you an integration key. Neo signs each call with the private key, so no password leaves your hands.

## 1. Make a key pair

On any computer with OpenSSL, run:

```bash theme={null}
openssl genrsa -out itcloud-neo-private.pem 2048
openssl rsa -in itcloud-neo-private.pem -pubout -out itcloud-neo-public.pem
```

`itcloud-neo-private.pem` is the private key you give Neo; `itcloud-neo-public.pem` is the public key you give ITCloud.ca.

## 2. Create the API integration in ITCloud.ca

**1. Open the Partner API settings**

Sign in to the [ITCloud.ca partner portal](https://zone.itcloud.ca) and open its Partner API settings, the same area as the API documentation.

**2. Add the public key**

Create an API integration and add the contents of `itcloud-neo-public.pem`.

**3. Give it the scopes Neo uses**

If the portal asks which scopes the integration may use, allow `customer.read`, `customer.write`, `product.read`, `order.read`, `order.write`, `report.read` and `service.write`. Without `customer.read` the keys do not save; without another scope, only the calls that need it are refused.

**4. Copy the integration key**

Copy the integration key ITCloud.ca shows for it (a GUID).

## 3. Add the keys in Neo

**1. Open Integrations**

In the Neo Dashboard, open **Integrations** and find the ITCloud.ca card, under Cloud Marketplace.

**2. Save the keys**

Paste the integration key, and the whole private key file from `-----BEGIN` to `-----END`. Click **Save settings**. Neo reads your customer list with them before saving, so a key pair that does not match is rejected straight away.

> [!WARNING]
>
> If you remove the integration or replace its key pair in ITCloud.ca, Neo loses access until you save the new keys here.

> [!NOTE]
>
> Real orders through the API must be switched on for your partner account by ITCloud.ca. Until then, ITCloud.ca only checks each order and creates nothing; Neo tells the technician so, and never reports such an order as placed.

## 4. Check the customer mapping

Neo matches each ITCloud.ca customer to a PSA company by the Microsoft tenant ID on its Microsoft services, then by name. Open the ITCloud.ca card's **Organization Mapping** tab to correct a match or confirm a suggested one. To set one by hand, click **Map** or **Re-map** on the customer's row; your mapping wins over a match and is kept across syncs. The mapping is all a seat change needs. When the company also has its Microsoft tenant ID and Microsoft 365 access in Neo, Neo checks the seat in Microsoft 365 as well.

## 5. Turn on seat changes

Add **Change License Seats** and **List License Subscriptions** to the agents that handle licence requests, onboarding and offboarding. In Change License Seats, turn on **Require technician approval** if a technician should confirm each seat change. Ask your Neo Support Agent to set this up: for example, "When a ticket asks for a licence, use a free one if there is one; otherwise add a seat on ITCloud.ca, or order the product if the customer does not have it."

## 6. Turn the ITCloud.ca API on per agent

For orders, reports and everything beyond seat counts, open the agent, go to its **Tools & Settings** tab, click **Cloud Marketplace**, and expand the **ITCloud.ca** block. Pick one of its **Presets**, or set each area yourself:

| Area | Access levels you can pick | Notes |
| - | - | - |
| **Customers** | Disabled, Read Only, Read / Write | Your customers and their contact details. |
| **Products** | Disabled, Read Only | The products you can order, with prices and billing cycles. |
| **Orders** | Disabled, Read Only, Read / Write | Orders for products a customer does not hold yet. An order is charged to you. |
| **Services** | Disabled, Read Only, Read / Write | Each customer's services, quantity changes for services that are not Microsoft, and cancellations. A cancellation cannot be undone. |
| **Reports** | Disabled, Read Only | The services report, invoice items and Azure consumption. |

| Preset | What runs on its own | What asks a technician |
| - | - | - |
| **Read Only** | Every read | No write is allowed |
| **Helpdesk** | Every read | Every write |
| **IT Admin** | Every read, customers and orders | Cancellations and quantity changes |
| **Full Automation** | Every read and every write | Nothing |

See [ITCloud.ca API](https://docs.neoagent.io/agents/tools/marketplace/itcloud-api.md) for what the agent can read and change.


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