← Portals
Master-admin · Frame (b) · route /admin/portals/new

Create portal

Provisioning a new tenant portal: an organization, its slug (the tenant's front door), an owner to invite as the first Portal Admin, and how it bills. Submitting kicks off provisioning — the portal starts in a pending-invite state until the owner accepts.

Contract (anticipated — @fuzefront/portal-client). POST /api/v1/admin/portals (PortalCreate201 Portal). Body: name, slug, ownerEmail, billingMode (free | platform | reseller). Slug uniqueness is validated server-side; a taken slug returns 409 SLUG_TAKEN shown inline on the field (see states frame, c). The new portal is created status: provisioned-pending-invite; the owner's invitation is dispatched as part of provisioning. reseller mode is what surfaces the Connect billing console — the plan choice here is the switch.

Review · portal-admin-consoles approve or reject each flow ↓
master-admin-portalspendingApproveReject
portal-consolependingApproveReject
portal-billingpendingApproveReject