---
title: "Subscriptions and reconciliation"
description: "Sync Pax8 and StreamOne subscriptions, map companies to clients, watch NCE cancel deadlines, drive agreement seats, and reconcile monthly bills."
url: "https://support.outpostplatform.com/procurement/subscriptions/"
product: "depot"
type: "how-to"
status: "draft"
ai_summary: "Pax8 and StreamOne subscriptions sync daily. Companies map to clients by vendor company, never by name. NCE cancel deadline is 7 days after term start, alerted 48 hours ahead. Subscription orders need confirmation. MSP: subscriptions drive agreement lines, and monthly reconciliation flags differences with a true-up at sell price, never cost."
availability:
  plans: ["home-lab", "essentials", "enterprise", "msp"]
  permission: "procurement:read"
  preview: false
source: "https://gitlab.com/outpostplatform/docs/-/edit/main/src/content/docs/procurement/subscriptions.mdx"
license: "CC BY 4.0"
---

# Subscriptions and reconciliation

A Pax8 or StreamOne connection brings every subscription the distributor holds
for you into Outpost: the product, the seats, the term, and the cancel
deadline. On the MSP plan, subscriptions also set the seat counts your clients
are billed for, and a monthly reconciliation checks the distributor's bill
against what you billed. This page covers subscriptions, company mapping,
cancel deadlines, subscription orders, agreement quantities, and
reconciliation.

## Before you begin

- A Pax8 or StreamOne connection. See
  [Distributor connections](/procurement/distributors/#pax8).
- Reading subscriptions needs `procurement:read`. Placing subscription orders
  needs `procurement:approve`. Linking subscriptions to agreement lines needs
  `psa:write`. Reconciliation needs `psa:read` to read, `psa:write` to run
  and close, and `psa:invoice` to true up or ignore an item.

## Find subscriptions

On the MSP plan, select **Client billing** > **Subscriptions**. On Home Lab,
Essentials, and Enterprise, select **Procurement** > **Subscriptions**.

Each row shows the **Product**, **Client**, **Quantity**, **Term**, **Term
ends**, **Cancel deadline**, **Status**, **Unit cost**, and, on the MSP plan,
the **Agreement line**. Filter by **Distributor**, **Client**, **Status**, or
**Cancel deadline before**, or select **Unmapped only**.

Subscriptions sync every day, and when the distributor's webhook reports a
change. To sync at once, select **Sync now** for **Subscriptions** on the
connection.

| Term | Values |
| --- | --- |
| Billing | **Monthly**, **Annual**, **Every three years**, **One time** |
| Commitment | **No commitment**, **Monthly (NCE)**, **Annual (NCE)**, **Three years (NCE)** |
| Status | **Active**, **Pending**, **Trial**, **Suspended**, **Cancelled** |

## Map companies to clients

A distributor lists subscriptions under its own companies. Outpost bills a
subscription to a client only after you map the company to that client.

1. Select **Settings** > **Integrations** > **Distributors** and open the
   connection.
2. On the **Company map** card, find the **Vendor company**, choose the
   **Client**, and select **Map**.

Outpost never maps companies for you, even when the names look alike,
because two companies with similar names are a common source of billing
mistakes. A company maps to one client, and a client to one company on each
connection. To change a mapping, select **Unmap** first. Subscriptions under an
unmapped company are billed to nobody and show **Unmapped**.

## Cancel deadlines

Microsoft NCE subscriptions can be canceled only shortly after their term
starts. For a subscription with an NCE commitment term, the **Cancel
deadline** is 7 days after the term starts, and the list counts it down. Once
it passes, it shows **Deadline passed**.

48 hours before a deadline, Outpost raises an alert in the `procurement`
category. The alert clears when the deadline passes or the subscription is
canceled. To send deadlines to another tool, subscribe a webhook to
`subscription.cancel_deadline`. See
[API keys and webhooks](/depot/api-keys-and-webhooks/#events).

## Change a subscription

**Change quantity** and **Cancel** on a subscription place real orders with
the distributor, and change what it bills you. Three things must be in place:

- Live ordering is turned on for the connection. Turning it on needs
  `integrations:admin` and a second factor. See
  [Turn on live ordering](/procurement/distributors/#turn-on-live-ordering).
- You hold `procurement:approve`.
- You confirm each order explicitly, as below.

1. Select **Change quantity**, and enter the **New quantity**. To cancel,
   select **Cancel** instead.
2. Check the **Expected monthly change**.
3. Select **I understand this places a real order with** followed by the
   distributor.
4. Select **Place order**, or **Place cancel order**.

The order is queued and placed with the distributor. **Recent subscription
orders** shows it as **Queued**, **Sent to the distributor**, **Done**, or
**Failed**.

A commitment term may not allow a cancel after its cancel deadline.

## Drive agreement quantities from subscriptions

A subscription can set the quantity of a line on the client's agreement, so a
client who adds seats in Pax8 is billed for them on the next invoice without
anyone editing the agreement.

1. On the subscription's row, under **Agreement line**, select **Link**.
2. Choose the client's **Agreement** and the **Line**.
3. Select **Link line**.

The line's quantity follows the subscription's seat count, updated every
hour. Several subscriptions can drive one line, and their seats are added
together. The line must be billed per seat, per user, or as a fixed amount.
To stop, select **Unlink**. See [Client agreements](/msp/agreements/).

## Reconcile a month

Reconciliation sets the distributor's bill for a month against what each
client was billed, subscription by subscription, and flags the differences.

Outpost reconciles last month on the 3rd of each month at 06:00 UTC. To run a
month yourself:

1. Select **Client billing** > **Reconciliation**.
2. Under **Run reconciliation**, choose the **Distributor** and the
   **Month**.
3. Select **Run reconciliation**.

Running a month again replaces its results, unless the month is closed.

Open the month to see each item with the **Vendor qty**, **Billed qty**,
**RMM seats**, **Directory seats**, **Vendor cost**, **Sell price**,
**Margin**, **Billed**, **Flags**, and **Outcome**.

### Flags

| Flag | Meaning |
| --- | --- |
| **Pro rata** | The distributor billed part of a period, such as seats added mid-month. |
| **Seat drift** | On a per-seat or per-user line, the distributor's seat count differs from the client's users from directory sync, or from its endpoint count when there is no directory. |
| **Unbilled** | The client was billed for fewer seats than the distributor billed you, or not at all, or the subscription drives no agreement line. |
| **Price mismatch** | The distributor's unit cost differs from the synced subscription's cost, or the client was billed below cost. |
| **Unmapped** | The subscription's company is not mapped to a client. |

### True up or ignore

For each flagged item, choose an **Outcome**:

- **True up** raises a draft invoice to the client for the seats the
  distributor billed that the client was not, at a sell price. The price is
  the linked agreement line's price, else the price of the catalog item with
  the vendor's SKU, else the distributor's sell price. A true-up is never
  priced at your cost. An item with no price shows **No price set**, and
  needs a price before it can be trued up.
- **Ignore** records that the difference is expected.

An **Unmapped** item cannot be trued up. Select **Map the company first**.

When the month is settled, select **Close month**. A closed month is read only.

## Plans

On Home Lab, Essentials, and Enterprise, a Pax8 or StreamOne connection syncs
subscriptions and the distributor's bills, and subscription orders work the
same. There are no clients to map, no agreement lines to drive, and no
reconciliation.

## Verify

- After a sync, the subscriptions list shows the distributor's subscriptions
  with their terms and cancel deadlines.
- After a reconciliation, **Client billing** > **Reconciliation** lists the
  month with its **Items** and **Flagged** counts.

## Next steps

- [Client agreements](/msp/agreements/)
- [Invoice clients](/msp/client-invoicing/)
