Skip to main content
The Purchase License tool allows Neo Agent to buy additional license seats through your configured marketplace provider (Pax8, D&H, Ingram Micro, Sherweb, or Microsoft Partner Center).
This tool increases the subscription seat count but does not assign the license to any user. Assigning purchased seats to users is handled by the Microsoft 365 tools (Microsoft Graph API), gated by your M365 licensing permissions.

What It Does

When enabled, the agent can:
  • Purchase additional seats for any license SKU
  • Target a specific subscription when your provider has multiple subscriptions for the same license (e.g., separate Monthly and Annual subscriptions)
  • Auto-detect which marketplace provider to use based on the company’s configuration

Subscription Targeting

Many MSPs maintain multiple subscriptions for the same license (e.g., an 80/20 yearly/monthly split, or separate month-to-month and annual-commitment subscriptions). The agent identifies the exact subscription to modify by calling List License Subscriptions first, which returns the subscription ID, billing term, commitment term, and seat count for each subscription.
The agent always calls List License Subscriptions before purchasing to get the marketplace subscription ID for the target subscription.

Marketplace Provider Auto-Detection

The marketplace provider is automatically determined from the company’s configuration — you no longer need to select it per tool. Neo checks in this order:
  1. Pax8 — if a Pax8 marketplace company ID is configured
  2. D&H — if a D&H marketplace company ID is configured
  3. Microsoft Partner Center — if a Partner Center marketplace ID is configured, or as a fallback when Partner Center credentials are available

Waiting for the New Seat to Appear

Marketplaces accept the order asynchronously — Microsoft Graph usually shows the new seat within ~60–90 seconds, but rare cases take longer. For immediate orders, the tool waits for the new seat to become visible in Microsoft before returning, so the agent can typically move straight to assigning the license without an extra delay step. The wait is up to 5 minutes in an automation and 20 seconds in a chat conversation, where someone is waiting for the agent’s reply. If the seat is still not visible when that wait ends, the tool returns successfully but the next_steps field instructs the agent to wait a few more minutes via the delay tool and re-check via List License Subscriptions before assigning — or to hand off to a technician if it still doesn’t appear. For next-renewal orders, the tool returns immediately and the new seat will only show up on the subscription’s renewal date.

Confirming the Marketplace Applied the Order

The wait above answers “can Microsoft assign the seat yet”. That is a separate question from “did the marketplace record survive the order” — one customer had the Microsoft side fulfil correctly while the Pax8 subscription disappeared from their portal. On Pax8, the agent now also reads the subscription back on the marketplace after the order and reports the seat count Pax8 actually holds. If Pax8 does not confirm the new count, the agent is told to hand the check to a technician rather than order again — a repeat order that does apply would buy the seats twice. The other marketplaces are not read back yet. The read-back window is 90 seconds, and 30 seconds in a chat conversation. Pax8 can take longer than that to settle, so an unconfirmed result does not mean the order failed — it means nobody has confirmed it yet.

Pax8 provisioning lock

When Pax8 is in the middle of provisioning a prior change on a subscription, it returns HTTP 500 — Subscription being modified has executing provisioning actions. In an automation, Neo retries this specific error with exponential backoff (60 / 90 / 120 seconds, up to ~4.5 minutes total) before surfacing the issue. Concurrent calls against the same Pax8 subscription are also serialized at the Neo layer to avoid race conditions when multiple onboarding workflows run in parallel. In a chat conversation Neo does not wait any of that out — the shortest retry is already longer than a chat reply can take. The two ways of giving up early read differently to the agent, because they leave Pax8 in different states:
  • Another Neo run holds the subscription. Nothing was sent to Pax8, so the agent is told the subscription is unchanged and that it can run the order again on a later message. An automation waits up to 6 minutes for the peer to finish; a chat conversation waits 10 seconds.
  • Pax8 reports the subscription as still provisioning. The order did reach Pax8, and a provisioning rejection is not proof that Pax8 ignored it. The agent is told to read the seat count with List License Subscriptions before ordering again — a blind re-run could buy the seats twice.

Timing the Purchase

The agent can apply a seat increase either immediately or at the next renewal date. Use custom instructions to direct the agent based on your preference:
  • Immediately (default) — the seat increase applies now and bills for the prorated remainder of the current period.
  • Next renewal — the increase is queued to apply on the subscription’s renewal date so the new quantity bills for the full next period. Useful when you prefer additions to align with billing anniversaries.
Scheduled-at-renewal is supported via API on Ingram Micro and Microsoft Partner Center. For Pax8, D&H, and Sherweb, the API doesn’t expose this — the agent will instead suggest scheduling the workflow itself to run on the renewal day. The agent can also align the renewal date to the end of the calendar month or to the subscription’s existing anniversary when the change applies (Ingram Micro only in v1).

Settings

Tool Dependencies

When you enable this tool, the following are automatically enabled:
  • List Licenses — so the agent can look up available SKUs
  • List License Subscriptions — so the agent can discover subscriptions and get the subscription ID before purchasing
  • Request Technician Approval — when approval is enabled in settings

How to Use

Use custom instructions to guide subscription selection: