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

# Marketplace and tenant setup

> One-time steps outside the deployment scripts: domain, publisher verification, staff roles and Partner Center.

The deployment scripts create the Azure resources and the three Entra app registrations (see [Deployment](https://docs.valedo.uniwave.ai/developers/deployment.md)). The steps below cannot be automated and are done once per environment by a Publisher team member, after the engineers have deployed and handed over the printed app IDs.

## 1. Verify the domain

Verify `uniwave.ai` (or `valedo.uniwave.ai`) as a custom domain in the publisher tenant. Until it is verified, the add-in's identifier URI cannot use `api://valedo.uniwave.ai/...`. Create the public DNS records for the hosts listed in [Deployment → Entra app registrations](https://docs.valedo.uniwave.ai/developers/deployment.md#entra-app-registrations) (Valedo.API, Admin Portal and Publisher Console, with `dev.` names for dev).

## 2. Verify the publisher

Complete publisher verification (Partner Center / MPN ID) for the **Valedo** app registration, so customer consent screens show a verified publisher.

## 3. Assign staff roles

In the publisher tenant, open **Enterprise applications → Valedo Publisher Console** and assign groups to `Valedo.Publisher.Admin`, `Valedo.Publisher.Support` and `Valedo.Publisher.Finance` (see [roles](https://docs.valedo.uniwave.ai/publisher-guide/overview.md#roles)). Apply Conditional Access (MFA, compliant device) to the application.

## 4. Configure the offer in Partner Center

The offer is one transactable SaaS offer with the **flat rate** pricing model:

* one public plan with a flat monthly base fee;
* one custom meter dimension, `additional_mailbox`, priced per additional active mailbox per month, with the plan's included mailboxes as the included quantity;
* a 14-day free trial on the plan.

> [!WARNING]
>
> Never choose the *per user* pricing model. It makes customers buy seats, which this offer does not use, and the pricing model cannot be changed after publishing.

In **Technical configuration**, enter:

| Field | Value |
| - | - |
| Microsoft Entra tenant ID | The publisher tenant ID |
| Microsoft Entra application ID | The app ID of **Valedo Marketplace** (printed by the Entra deployment script) |
| Landing page URL | `https://admin.valedo.uniwave.ai/marketplace/landing` |
| Connection webhook | `https://valedo.uniwave.ai/api/marketplace/webhook` |

In the offer's Microsoft 365 integration, enter the app ID of the **Valedo** app registration and link the Outlook add-in listing.

> [!NOTE]
>
> The base fee, the per-mailbox price and the number of included mailboxes are still open (README §13). Take the final values from the product owner, not from this page.

## 5. Hand the IDs back to engineering

Make sure the deployed app IDs are in the App Service settings, the portal settings, the add-in manifest and the Postman environments. Engineering owns these changes; the Publisher team confirms they match Partner Center.

## Changing prices later

Partner Center stays the source of truth; the Publisher Console only mirrors prices for previews. Base fee and per-mailbox price can change through a Partner Center price change; included mailboxes and the pricing model cannot change on a published plan. Timing rules and their Microsoft sources are in README §2.3. Discounts for specific customers are private offers or private plans, not settings in Valedo.


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