# Platform administration

Manage tenants, schools, plans, subscriptions, billing and cross-tenant reporting.

Category: Platform
Guide: https://avkul.in/docs/guides/module-saas/
Guided sample demo: https://avkul.in/docs/demo/module-saas/
Snapshot: 11 October 2026

## Features

- Tenant onboarding
- Schools and quotas
- Plans and module toggles
- Subscriptions
- Invoices and coupons
- Analytics and reports
- Usage
- Audit and support

## Access and setup

Intended access: Platform administrator
- A platform administrator account.
- The academic, student or staff setup used by this workflow.


## Workflow

1. Select the tenant or platform overview.
2. Review plan, subscription, usage and school details.
3. Apply an authorized administrative action.
4. Review the resulting invoice, audit or report.

## Fields and controls

- code (string, declared required)
- description (string, optional)
- type (string, optional)
- value (number, declared required)
- maxRedemptions (number, optional)
- validFrom (string, optional)
- validUntil (string, optional)
- isActive (boolean, optional)
- question (string, declared required)
- planCode (string, optional)
- amount (number, optional)
- paymentLogId (string, declared required)
- razorpayPaymentId (string, optional)
- razorpaySignature (string, optional)
- name (string, declared required)
- billingCycle (string, optional)
- priceMonthly (number, optional)
- priceYearly (number, optional)
- trialDays (number, optional)
- maxStudents (number, optional)
- maxStaff (number, optional)
- maxSchools (number, optional)
- maxBranches (number, optional)
- isPublic (boolean, optional)

## Current limits

- Platform access is distinct from a school role. Online SaaS invoice collection and invitation delivery require configured providers.

## Actual application access

- https://avkul.in/en/saas/ai-center
- https://avkul.in/en/saas/analytics
- https://avkul.in/en/saas/audit-log
- https://avkul.in/en/saas/command-center
- https://avkul.in/en/saas/coupons
- https://avkul.in/en/saas/invoices
- https://avkul.in/en/saas/invoices — select the actual record from this list.
- https://avkul.in/en/saas
- https://avkul.in/en/saas/plans
- https://avkul.in/en/saas/reports
- https://avkul.in/en/saas/subscriptions
- https://avkul.in/en/saas/tenants
- https://avkul.in/en/saas/tenants — select the actual record from this list.
- https://avkul.in/en/saas/usage
- https://avkul.in/en/school/plan

## API reference

- GET /api/v1/saas/coupons — List discount codes with their redemption counts; Platform admin
- POST /api/v1/saas/coupons — Issue a discount code; Platform admin
- PATCH /api/v1/saas/coupons/:id — Change a code’s window, cap or active flag; Platform admin
- GET /api/v1/saas/coupons/preview/:code — What a code would do to an invoice, without spending it; Platform admin
- POST /api/v1/saas/coupons/invoices/:invoiceId/apply — Apply a code to an invoice and spend one redemption; Platform admin
- DELETE /api/v1/saas/coupons/invoices/:invoiceId — Take the code back off an invoice; Platform admin
- POST /api/v1/saas/ai-center/ask — Ask a plain-English question about the platform — answered from real, computed aggregates; Platform admin
- GET /api/v1/saas/analytics — Cross-tenant growth/revenue/churn analytics with an AI-generated narrative summary; Platform admin
- GET /api/v1/saas/audit-log — Platform activity trail — every superadmin action across every tenant; Platform admin
- GET /api/v1/saas/subscriptions — List subscriptions across all tenants; Platform admin
- PATCH /api/v1/saas/subscriptions/:id/plan — Upgrade/downgrade a tenant subscription; Platform admin
- GET /api/v1/saas/invoices — List SaaS invoices; Platform admin
- GET /api/v1/saas/invoices/:id — Invoice; Platform admin
- POST /api/v1/saas/invoices/:id/payment-order — Create a Razorpay order to collect payment against an invoice; Platform admin
- POST /api/v1/saas/payments/verify — Verify a Razorpay payment callback and mark the invoice paid; Platform admin
- GET /api/v1/saas/payments/test-connection — Check whether configured Razorpay credentials actually authenticate; Platform admin
- GET /api/v1/saas/overview — Platform KPIs (tenants, footprint, MRR/ARR, billing); Platform admin
- GET /api/v1/saas/modules — List all toggleable platform modules; Platform admin
- GET /api/v1/saas/plans — List subscription plans with their modules; Platform admin
- GET /api/v1/saas/plans/:id — Get One; Platform admin
- POST /api/v1/saas/plans — Create a plan (with module toggles); Platform admin
- PATCH /api/v1/saas/plans/:id — Update; Platform admin
- DELETE /api/v1/saas/plans/:id — Soft-delete (archive) a plan; Platform admin
- GET /api/v1/saas/reports/:type — Cross-tenant report (revenue/usage/churn/activity) as JSON, CSV, or PDF; Platform admin
- GET /api/v1/saas/tenants — List tenants (search, status filter, paginated); Platform admin
- GET /api/v1/saas/tenants/:id — Tenant detail with schools, subscription and counts; Platform admin
- POST /api/v1/saas/tenants — Onboard a new tenant/school (provisions admin + plan); Platform admin
- POST /api/v1/saas/tenants/:id/schools — Add a school to an existing tenant (counts against the plan); Platform admin
- POST /api/v1/saas/tenants/ai-provision — AI Command Center — provision a full tenant from just school/owner facts and email the owner their access; Platform admin
- PATCH /api/v1/saas/tenants/:id/status — Activate / suspend / cancel a tenant; Platform admin
- POST /api/v1/saas/tenants/bulk-action — Apply activate/suspend/cancel to multiple tenants at once; Platform admin
- GET /api/v1/saas/tenants/health/scores — Composite health score per tenant (status, overdue invoices, login recency, trial runway); Platform admin
- PATCH /api/v1/saas/tenants/:id/branding — Update white-label branding (brand name, color, custom domain); Platform admin
- POST /api/v1/saas/tenants/:id/logo — Upload the tenant logo; Platform admin
- POST /api/v1/saas/tenants/:id/favicon — Upload the tenant favicon; Platform admin
- POST /api/v1/saas/tenants/:id/domain — Claim a custom domain — returns a DNS TXT record to publish for ownership proof; Platform admin
- DELETE /api/v1/saas/tenants/:id/domain — Remove the custom domain and reset verification; Platform admin
- POST /api/v1/saas/tenants/:id/domain/verify — Verify domain ownership via a real DNS TXT lookup; Platform admin
- GET /api/v1/saas/usage — Every tenant against its plan limits; Platform admin
- GET /api/v1/saas/usage/:tenantId — Status; Platform admin
- GET /api/v1/saas/usage/:tenantId/counters — Counters; Platform admin
- POST /api/v1/saas/usage/:tenantId/refresh — Recount usage and write this period's counters; Platform admin
- GET /api/v1/my-plan/usage — This tenant's usage against its own plan; Authenticated scope

## Demo access

No login is required for the guided sample demo. Its fictional records and actions stay in this browser tab; they do not modify ERP records or send messages/payments. An assigned account is required for the actual ERP links.

Source inventory checked on 11 October 2026. This source inventory is not a certification of every external provider or device flow.
