# Institute Billing Manager — Test Cases

User Type: **Training Institute** (Sub-Admin: Billing Manager)
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: billing_manager_role.md — every feature, sub-feature, and rule covered

## Test Execution Policy

- Zero tolerance: any deviation from the documented behavior is a defect.
- Every failed test is logged with a Bug ID, the feature, the sub-feature, the expected vs actual result, and the severity; 100% of bugs are fixed before the group passes.
- 100% pass rate is required for the group to be marked complete.

## Coverage Matrix

| Feature | Sub-feature / Rule | Test IDs |
|---------|--------------------|----------|
| 1.1 License Usage & Seat Visibility | View license usage and available seats | TC-INST-BILL-01-001 |
| 1.1 License Usage & Seat Visibility | Per-package entitlement breakdown | TC-INST-BILL-01-002 |
| 1.1 License Usage & Seat Visibility | Seat allocation summary (read-only) | TC-INST-BILL-01-003 |
| 1.1 License Usage & Seat Visibility | Utilization trend over time | TC-INST-BILL-01-004 |
| 1.1 License Usage & Seat Visibility | Usage vs entitlement alerts | TC-INST-BILL-01-005 |
| 1.1 License Usage & Seat Visibility | Available on web and mobile | TC-INST-BILL-01-006 |
| 1.1 License Usage & Seat Visibility | Event logging (viewed) | TC-INST-BILL-01-007 |
| 1.1 License Usage & Seat Visibility | Audit logging of usage views | TC-INST-BILL-01-008 |
| 1.1 License Usage & Seat Visibility | Rule: allocation summary read-only | TC-INST-BILL-01-009 |
| 1.1 License Usage & Seat Visibility | Rule: figures real-time, match Institute Admin view | TC-INST-BILL-01-010 |
| 1.1 License Usage & Seat Visibility | Rule: alerts at 80% and 95% to BM and Admin | TC-INST-BILL-01-011 |
| 1.2 License Purchase & Discounts | Purchase additional licenses | TC-INST-BILL-02-001 |
| 1.2 License Purchase & Discounts | Tiered pricing display | TC-INST-BILL-02-002 |
| 1.2 License Purchase & Discounts | Volume discount application | TC-INST-BILL-02-003 |
| 1.2 License Purchase & Discounts | Discount eligibility for bulk purchases | TC-INST-BILL-02-004 |
| 1.2 License Purchase & Discounts | Purchase quote and confirmation | TC-INST-BILL-02-005 |
| 1.2 License Purchase & Discounts | Available on web and mobile | TC-INST-BILL-02-006 |
| 1.2 License Purchase & Discounts | Event logging (quoted, purchased) | TC-INST-BILL-02-007 |
| 1.2 License Purchase & Discounts | Audit logging of purchase actions | TC-INST-BILL-02-008 |
| 1.2 License Purchase & Discounts | Rule: 500+ tier routes to account manager | TC-INST-BILL-02-009 |
| 1.2 License Purchase & Discounts | Rule: discount from cumulative volume | TC-INST-BILL-02-010 |
| 1.2 License Purchase & Discounts | Rule: quote valid for limited window | TC-INST-BILL-02-011 |
| 1.2 License Purchase & Discounts | Rule: purchase issues linked invoice | TC-INST-BILL-02-012 |
| 1.3 Billing History & Invoices | Billing history list | TC-INST-BILL-03-001 |
| 1.3 Billing History & Invoices | Invoice list and details | TC-INST-BILL-03-002 |
| 1.3 Billing History & Invoices | Invoice download and sharing | TC-INST-BILL-03-003 |
| 1.3 Billing History & Invoices | Payment history | TC-INST-BILL-03-004 |
| 1.3 Billing History & Invoices | Filter by status or period | TC-INST-BILL-03-005 |
| 1.3 Billing History & Invoices | Export the billing history | TC-INST-BILL-03-006 |
| 1.3 Billing History & Invoices | Available on web and mobile | TC-INST-BILL-03-007 |
| 1.3 Billing History & Invoices | Event logging (viewed, downloaded, exported) | TC-INST-BILL-03-008 |
| 1.3 Billing History & Invoices | Audit logging of billing history access | TC-INST-BILL-03-009 |
| 1.3 Billing History & Invoices | Rule: invoices immutable; corrections as credit notes | TC-INST-BILL-03-010 |
| 1.3 Billing History & Invoices | Rule: share links controlled and expirable | TC-INST-BILL-03-011 |
| 1.3 Billing History & Invoices | Rule: history scoped to own institute | TC-INST-BILL-03-012 |
| 1.4 Renewals, Upgrades & Expiry | License expiry alerts (60, 30, 7 days) | TC-INST-BILL-04-001 |
| 1.4 Renewals, Upgrades & Expiry | Renewal management | TC-INST-BILL-04-002 |
| 1.4 Renewals, Upgrades & Expiry | Upgrade management (prorated) | TC-INST-BILL-04-003 |
| 1.4 Renewals, Upgrades & Expiry | Downgrade management (next cycle) | TC-INST-BILL-04-004 |
| 1.4 Renewals, Upgrades & Expiry | Renewal reminders | TC-INST-BILL-04-005 |
| 1.4 Renewals, Upgrades & Expiry | Available on web and mobile | TC-INST-BILL-04-006 |
| 1.4 Renewals, Upgrades & Expiry | Event logging (renewed, upgraded, downgraded, reminded) | TC-INST-BILL-04-007 |
| 1.4 Renewals, Upgrades & Expiry | Audit logging of renewal and upgrade actions | TC-INST-BILL-04-008 |
| 1.4 Renewals, Upgrades & Expiry | Rule: alerts to BM and Admin at 60/30/7 days | TC-INST-BILL-04-009 |
| 1.4 Renewals, Upgrades & Expiry | Rule: upgrades prorated; downgrades next cycle | TC-INST-BILL-04-010 |
| 1.4 Renewals, Upgrades & Expiry | Rule: renewal extends from current end date | TC-INST-BILL-04-011 |
| 1.5 Role Restrictions | No access to student management | TC-INST-BILL-05-001 |
| 1.5 Role Restrictions | No access to student performance analytics | TC-INST-BILL-05-002 |
| 1.5 Role Restrictions | No access to content or curriculum | TC-INST-BILL-05-003 |
| 1.5 Role Restrictions | No access to integration management | TC-INST-BILL-05-004 |
| 1.5 Role Restrictions | No access to sub-admin management | TC-INST-BILL-05-005 |
| 1.5 Role Restrictions | No access to branding configuration | TC-INST-BILL-05-006 |
| 1.5 Role Restrictions | Available on web and mobile | TC-INST-BILL-05-007 |
| 1.5 Role Restrictions | Event logging (denied access attempts) | TC-INST-BILL-05-008 |
| 1.5 Role Restrictions | Audit logging of denied access attempts | TC-INST-BILL-05-009 |
| 1.5 Role Restrictions | Rule: restrictions enforced at API layer | TC-INST-BILL-05-010 |
| 1.5 Role Restrictions | Rule: data scope own institute billing data | TC-INST-BILL-05-011 |
| 1.5 Role Restrictions | Rule: restrictions not overridable by BM | TC-INST-BILL-05-012 |

## 1.1 License Usage & Seat Visibility

### TC-INST-BILL-01-001 — View license usage and available seats
**Type:** Positive
**Covers:** 1.1 → View license usage and available seats
**Preconditions:** Billing Manager logged in; licenses allocated.
**Steps:**
1. Open Billing & Licensing → License Usage.
**Expected Result:** Total, used, and available seats are shown with accurate figures.
**Priority:** Critical

### TC-INST-BILL-01-002 — Per-package entitlement breakdown
**Type:** Positive
**Covers:** 1.1 → Per-package entitlement breakdown
**Preconditions:** Multiple license packages active.
**Steps:**
1. Open the per-package breakdown.
**Expected Result:** Each package shows its entitlement, used, and available seats.
**Priority:** High

### TC-INST-BILL-01-003 — Seat allocation summary is read-only
**Type:** Negative
**Covers:** 1.1 → Seat allocation summary (read-only)
**Preconditions:** Billing Manager logged in.
**Steps:**
1. Open the seat allocation summary and attempt to allocate or transfer a seat.
**Expected Result:** The summary is view-only; allocation/transfer controls are absent and the attempt is rejected.
**Priority:** Critical

### TC-INST-BILL-01-004 — Utilization trend over time
**Type:** Positive
**Covers:** 1.1 → Utilization trend over time
**Preconditions:** Historical utilization data exists.
**Steps:**
1. Open the utilization trend for the last 6 months.
**Expected Result:** The trend chart shows monthly utilization matching the recorded data.
**Priority:** Medium

### TC-INST-BILL-01-005 — Usage vs entitlement alerts
**Type:** Positive
**Covers:** 1.1 → Usage vs entitlement alerts
**Preconditions:** A package approaching its entitlement limit.
**Steps:**
1. Cross the 80% and 95% utilization thresholds.
**Expected Result:** An alert fires at each threshold to the Billing Manager and Institute Admin.
**Priority:** High

### TC-INST-BILL-01-006 — License usage on web and mobile
**Type:** Positive
**Covers:** 1.1 → Available on web and mobile
**Preconditions:** Billing Manager logged in on both surfaces.
**Steps:**
1. View license usage on mobile; view the breakdown on web.
**Expected Result:** Both surfaces render the features correctly without horizontal scroll.
**Priority:** High

### TC-INST-BILL-01-007 — Usage view events are logged
**Type:** Positive
**Covers:** 1.1 → Event logging (viewed)
**Preconditions:** Billing Manager logged in.
**Steps:**
1. View the license usage screen.
2. Open Profile → "Activity".
**Expected Result:** The view event appears with the account and timestamp.
**Priority:** Medium

### TC-INST-BILL-01-008 — Usage views are audit-logged
**Type:** Positive
**Covers:** 1.1 → Audit logging of usage views
**Preconditions:** Usage views performed.
**Steps:**
1. Review the institute audit log.
**Expected Result:** Usage views are audit-logged with the account and timestamp.
**Priority:** Medium

### TC-INST-BILL-01-009 — Allocation summary cannot be modified
**Type:** Negative
**Covers:** 1.1 → Rule: allocation summary read-only
**Preconditions:** Billing Manager's session token.
**Steps:**
1. Call a seat-allocation endpoint directly with the token.
**Expected Result:** The API returns a denial (403).
**Priority:** Critical

### TC-INST-BILL-01-010 — Figures match Institute Admin view
**Type:** Positive
**Covers:** 1.1 → Rule: figures real-time, match Institute Admin view
**Preconditions:** Both roles logged in.
**Steps:**
1. Compare the Billing Manager's usage figures with the Institute Admin's at the same time.
**Expected Result:** The figures are identical.
**Priority:** High

### TC-INST-BILL-01-011 — Alerts reach both BM and Admin
**Type:** Positive
**Covers:** 1.1 → Rule: alerts at 80% and 95% to BM and Admin
**Preconditions:** A package with known seat counts.
**Steps:**
1. Cross the 80% threshold and check notifications for both roles.
**Expected Result:** Both the Billing Manager and Institute Admin receive the alert.
**Priority:** High

## 1.2 License Purchase & Discount Eligibility

### TC-INST-BILL-02-001 — Purchase additional licenses
**Type:** Positive
**Covers:** 1.2 → Purchase additional licenses
**Preconditions:** Billing Manager logged in; billing profile approved.
**Steps:**
1. Select "Purchase additional licenses", choose a tier, and confirm.
**Expected Result:** The purchase succeeds; new seats appear in the entitlement overview; an invoice is issued.
**Priority:** Critical

### TC-INST-BILL-02-002 — Tiered pricing display
**Type:** Positive
**Covers:** 1.2 → Tiered pricing display (10–50, 51–200, 201–500, 500+)
**Preconditions:** Billing Manager logged in.
**Steps:**
1. Open the purchase flow and review the pricing.
**Expected Result:** All four tiers are displayed with their pricing.
**Priority:** High

### TC-INST-BILL-02-003 — Volume discount application
**Type:** Positive
**Covers:** 1.2 → Volume discount application
**Preconditions:** The institute has cumulative license volume.
**Steps:**
1. Select a tier and review the quote.
**Expected Result:** The volume discount is applied to the quoted price.
**Priority:** High

### TC-INST-BILL-02-004 — Discount eligibility shown
**Type:** Positive
**Covers:** 1.2 → Discount eligibility for bulk purchases
**Preconditions:** Known cumulative license volume.
**Steps:**
1. Review the discount eligibility in the purchase flow.
**Expected Result:** The eligible discount tier matches the institute's cumulative volume.
**Priority:** High

### TC-INST-BILL-02-005 — Purchase quote and confirmation
**Type:** Positive
**Covers:** 1.2 → Purchase quote and confirmation
**Preconditions:** Billing Manager logged in.
**Steps:**
1. Generate a quote, review it, and confirm the purchase.
**Expected Result:** The quote shows the final price; confirmation completes the purchase.
**Priority:** Critical

### TC-INST-BILL-02-006 — Purchase on web and mobile
**Type:** Positive
**Covers:** 1.2 → Available on web and mobile
**Preconditions:** Billing Manager logged in on both surfaces.
**Steps:**
1. View the quote on mobile; complete the purchase on web.
**Expected Result:** Both surfaces render the purchase flow correctly without horizontal scroll.
**Priority:** High

### TC-INST-BILL-02-007 — Purchase events are logged
**Type:** Positive
**Covers:** 1.2 → Event logging (quoted, purchased)
**Preconditions:** Quote and purchase performed.
**Steps:**
1. Open Profile → "Activity".
**Expected Result:** Both events appear with the actor and timestamp.
**Priority:** High

### TC-INST-BILL-02-008 — Purchase actions are audit-logged
**Type:** Positive
**Covers:** 1.2 → Audit logging of purchase actions
**Preconditions:** Purchase performed.
**Steps:**
1. Review the institute audit log.
**Expected Result:** The purchase is audit-logged with the actor, amount, and timestamp.
**Priority:** High

### TC-INST-BILL-02-009 — Enterprise tier routes to account manager
**Type:** Negative
**Covers:** 1.2 → Rule: 500+ tier routes to account manager
**Preconditions:** Billing Manager logged in.
**Steps:**
1. Select the 500+ custom enterprise tier.
**Expected Result:** Inline purchase is not completed; the flow routes to the dedicated account manager.
**Priority:** Medium

### TC-INST-BILL-02-010 — Discount from cumulative volume
**Type:** Positive
**Covers:** 1.2 → Rule: discount from cumulative volume
**Preconditions:** Known cumulative volume spanning tiers.
**Steps:**
1. Compare the quoted discount against the tiered schedule.
**Expected Result:** The discount matches the tier for cumulative volume, not the single order size.
**Priority:** Medium

### TC-INST-BILL-02-011 — Quote validity window
**Type:** Positive
**Covers:** 1.2 → Rule: quote valid for limited window
**Preconditions:** A generated quote.
**Steps:**
1. Wait past the quote validity window and attempt to confirm.
**Expected Result:** The expired quote cannot be confirmed; a new quote is required.
**Priority:** Medium

### TC-INST-BILL-02-012 — Purchase issues a linked invoice
**Type:** Positive
**Covers:** 1.2 → Rule: purchase issues linked invoice
**Preconditions:** A completed purchase.
**Steps:**
1. Open the billing history and locate the invoice for the purchase.
**Expected Result:** An invoice exists, is linked to the purchase, and matches the quoted amount.
**Priority:** High

## 1.3 Billing History & Invoices

### TC-INST-BILL-03-001 — Billing history list
**Type:** Positive
**Covers:** 1.3 → Billing history list
**Preconditions:** Prior billing activity exists.
**Steps:**
1. Open the billing history.
**Expected Result:** All invoices and payments are listed with date, amount, and status.
**Priority:** High

### TC-INST-BILL-03-002 — Invoice list and details
**Type:** Positive
**Covers:** 1.3 → Invoice list and details (line items, tax, total)
**Preconditions:** Invoices exist.
**Steps:**
1. Open an invoice.
**Expected Result:** Line items, tax, and total are shown correctly.
**Priority:** High

### TC-INST-BILL-03-003 — Invoice download and sharing
**Type:** Positive
**Covers:** 1.3 → Invoice download and sharing
**Preconditions:** An invoice exists.
**Steps:**
1. Download the invoice and share it by link.
**Expected Result:** The download completes with full details; the share link is controlled and expirable.
**Priority:** High

### TC-INST-BILL-03-004 — Payment history
**Type:** Positive
**Covers:** 1.3 → Payment history (date, amount, method, status)
**Preconditions:** Payments exist.
**Steps:**
1. Open the payment history.
**Expected Result:** All payments show date, amount, method, and status.
**Priority:** High

### TC-INST-BILL-03-005 — Filter by status or period
**Type:** Positive
**Covers:** 1.3 → Filter by status or period
**Preconditions:** Billing history with varied statuses and periods.
**Steps:**
1. Filter by status, then by period.
**Expected Result:** The list reflects only the filtered scope.
**Priority:** Medium

### TC-INST-BILL-03-006 — Export the billing history
**Type:** Positive
**Covers:** 1.3 → Export the billing history
**Preconditions:** Billing history exists.
**Steps:**
1. Export the history.
**Expected Result:** The export completes and matches the history content.
**Priority:** Medium

### TC-INST-BILL-03-007 — Billing history on web and mobile
**Type:** Positive
**Covers:** 1.3 → Available on web and mobile
**Preconditions:** Billing Manager logged in on both surfaces.
**Steps:**
1. View invoices on mobile; export on web.
**Expected Result:** Both surfaces render the features correctly without horizontal scroll.
**Priority:** High

### TC-INST-BILL-03-008 — Billing history events are logged
**Type:** Positive
**Covers:** 1.3 → Event logging (viewed, downloaded, exported)
**Preconditions:** Billing history actions performed.
**Steps:**
1. Open Profile → "Activity".
**Expected Result:** Each action appears with the account and timestamp.
**Priority:** Medium

### TC-INST-BILL-03-009 — Billing history access is audit-logged
**Type:** Positive
**Covers:** 1.3 → Audit logging of billing history access
**Preconditions:** Billing history accessed.
**Steps:**
1. Review the institute audit log.
**Expected Result:** Access is audit-logged with the account and timestamp.
**Priority:** Medium

### TC-INST-BILL-03-010 — Invoices are immutable
**Type:** Negative
**Covers:** 1.3 → Rule: invoices immutable; corrections as credit notes
**Preconditions:** An issued invoice.
**Steps:**
1. Attempt to edit the invoice.
**Expected Result:** Editing is not possible; corrections are issued as a credit note.
**Priority:** Critical

### TC-INST-BILL-03-011 — Share links are controlled and expirable
**Type:** Positive
**Covers:** 1.3 → Rule: share links controlled and expirable
**Preconditions:** A shared invoice link.
**Steps:**
1. Open the link; then open it after expiry.
**Expected Result:** The link works until expiry; after expiry it is rejected.
**Priority:** Medium

### TC-INST-BILL-03-012 — History scoped to own institute
**Type:** Negative
**Covers:** 1.3 → Rule: history scoped to own institute
**Preconditions:** Another institute's invoices exist.
**Steps:**
1. Attempt to access another institute's billing history via direct endpoint call.
**Expected Result:** The call is denied; only own-institute billing data is accessible.
**Priority:** Critical

## 1.4 Renewals, Upgrades & Expiry Alerts

### TC-INST-BILL-04-001 — License expiry alerts
**Type:** Positive
**Covers:** 1.4 → License expiry alerts (60, 30, 7 days)
**Preconditions:** A package with a known expiry date.
**Steps:**
1. Verify alerts at 60, 30, and 7 days before expiry.
**Expected Result:** Exactly one alert per threshold is delivered.
**Priority:** High

### TC-INST-BILL-04-002 — Renewal management
**Type:** Positive
**Covers:** 1.4 → Renewal management
**Preconditions:** An active package.
**Steps:**
1. Renew the package for the same tier.
**Expected Result:** The renewal is confirmed; the expiry extends from the current end date.
**Priority:** Critical

### TC-INST-BILL-04-003 — Upgrade management (prorated)
**Type:** Positive
**Covers:** 1.4 → Upgrade management (prorated)
**Preconditions:** An active package mid-cycle.
**Steps:**
1. Upgrade to the next tier and review the charge.
**Expected Result:** The charge is prorated for the remaining cycle; entitlements update on completion.
**Priority:** Critical

### TC-INST-BILL-04-004 — Downgrade management (next cycle)
**Type:** Positive
**Covers:** 1.4 → Downgrade management (next cycle)
**Preconditions:** An active package.
**Steps:**
1. Request a downgrade and check its effective date.
**Expected Result:** The downgrade takes effect at the next billing cycle, not immediately.
**Priority:** High

### TC-INST-BILL-04-005 — Renewal reminders
**Type:** Positive
**Covers:** 1.4 → Renewal reminders
**Preconditions:** An active package.
**Steps:**
1. Set a renewal reminder.
**Expected Result:** The reminder is scheduled and delivered at the set time.
**Priority:** Medium

### TC-INST-BILL-04-006 — Renewals on web and mobile
**Type:** Positive
**Covers:** 1.4 → Available on web and mobile
**Preconditions:** Billing Manager logged in on both surfaces.
**Steps:**
1. View expiry alerts on mobile; renew on web.
**Expected Result:** Both surfaces render the features correctly without horizontal scroll.
**Priority:** High

### TC-INST-BILL-04-007 — Renewal and upgrade events are logged
**Type:** Positive
**Covers:** 1.4 → Event logging (renewed, upgraded, downgraded, reminded)
**Preconditions:** Renewal and upgrade actions performed.
**Steps:**
1. Open Profile → "Activity".
**Expected Result:** Each action appears with the actor and timestamp.
**Priority:** High

### TC-INST-BILL-04-008 — Renewal and upgrade actions are audit-logged
**Type:** Positive
**Covers:** 1.4 → Audit logging of renewal and upgrade actions
**Preconditions:** Renewal and upgrade actions performed.
**Steps:**
1. Review the institute audit log.
**Expected Result:** Every action is audit-logged with the actor and timestamp.
**Priority:** High

### TC-INST-BILL-04-009 — Alerts reach BM and Admin
**Type:** Positive
**Covers:** 1.4 → Rule: alerts to BM and Admin at 60/30/7 days
**Preconditions:** A package approaching expiry.
**Steps:**
1. Trigger the 30-day alert and check both roles' notifications.
**Expected Result:** Both the Billing Manager and Institute Admin receive the alert.
**Priority:** High

### TC-INST-BILL-04-010 — Upgrade proration and downgrade timing
**Type:** Positive
**Covers:** 1.4 → Rule: upgrades prorated; downgrades next cycle
**Preconditions:** An active package mid-cycle.
**Steps:**
1. Upgrade and verify the prorated charge; request a downgrade and verify its effective date.
**Expected Result:** The upgrade is prorated; the downgrade applies at the next cycle.
**Priority:** High

### TC-INST-BILL-04-011 — Renewal extends from current end date
**Type:** Positive
**Covers:** 1.4 → Rule: renewal extends from current end date
**Preconditions:** A package with a known end date.
**Steps:**
1. Renew mid-cycle and check the new expiry.
**Expected Result:** The new expiry is the current end date plus the renewal period (not purchase date plus period).
**Priority:** High

## 1.5 Role Restrictions

### TC-INST-BILL-05-001 — No student management access
**Type:** Negative
**Covers:** 1.5 → No access to student management or registration
**Preconditions:** Billing Manager logged in.
**Steps:**
1. Attempt to open Student Management.
**Expected Result:** Access is denied; the screen is not in navigation.
**Priority:** Critical

### TC-INST-BILL-05-002 — No student analytics access
**Type:** Negative
**Covers:** 1.5 → No access to student performance analytics
**Preconditions:** Billing Manager logged in.
**Steps:**
1. Attempt to open Analytics.
**Expected Result:** Access is denied; the screen is not in navigation.
**Priority:** Critical

### TC-INST-BILL-05-003 — No content or curriculum access
**Type:** Negative
**Covers:** 1.5 → No access to content or curriculum
**Preconditions:** Billing Manager logged in.
**Steps:**
1. Attempt to open content or curriculum screens.
**Expected Result:** Access is denied; the screens are not in navigation.
**Priority:** Critical

### TC-INST-BILL-05-004 — No integration management access
**Type:** Negative
**Covers:** 1.5 → No access to integration management
**Preconditions:** Billing Manager logged in.
**Steps:**
1. Attempt to open Integrations.
**Expected Result:** Access is denied; the screen is not in navigation.
**Priority:** Critical

### TC-INST-BILL-05-005 — No sub-admin management access
**Type:** Negative
**Covers:** 1.5 → No access to sub-admin management
**Preconditions:** Billing Manager logged in.
**Steps:**
1. Attempt to open Sub-Admins.
**Expected Result:** Access is denied; the screen is not in navigation.
**Priority:** Critical

### TC-INST-BILL-05-006 — No branding configuration access
**Type:** Negative
**Covers:** 1.5 → No access to white-label/branding configuration
**Preconditions:** Billing Manager logged in.
**Steps:**
1. Attempt to open Branding.
**Expected Result:** Access is denied; the screen is not in navigation.
**Priority:** Critical

### TC-INST-BILL-05-007 — Restrictions consistent on web and mobile
**Type:** Positive
**Covers:** 1.5 → Available on web and mobile
**Preconditions:** Billing Manager logged in on both surfaces.
**Steps:**
1. Review navigation on web and mobile.
**Expected Result:** The same restricted screens are absent on both surfaces; no horizontal scroll.
**Priority:** High

### TC-INST-BILL-05-008 — Denied access attempts are event-logged
**Type:** Positive
**Covers:** 1.5 → Event logging (denied access attempts)
**Preconditions:** Denied access attempts made.
**Steps:**
1. Open Profile → "Activity".
**Expected Result:** Each denied attempt appears with the account, target screen, and timestamp.
**Priority:** High

### TC-INST-BILL-05-009 — Denied access attempts are audit-logged
**Type:** Positive
**Covers:** 1.5 → Audit logging of denied access attempts
**Preconditions:** Denied access attempts made.
**Steps:**
1. Review the institute audit log.
**Expected Result:** Each denied attempt is audit-logged with the account and timestamp.
**Priority:** High

### TC-INST-BILL-05-010 — Restrictions enforced at API layer
**Type:** Negative
**Covers:** 1.5 → Rule: restrictions enforced at API layer
**Preconditions:** Billing Manager's session token.
**Steps:**
1. Call a student-management endpoint directly with the token.
**Expected Result:** The API returns a denial (403); no data is returned.
**Priority:** Critical

### TC-INST-BILL-05-011 — Data scope is own institute billing data
**Type:** Negative
**Covers:** 1.5 → Rule: data scope own institute billing data
**Preconditions:** Billing Manager's session token.
**Steps:**
1. Call a billing endpoint with another institute's ID.
**Expected Result:** The call is denied or returns empty; no cross-institute data is exposed.
**Priority:** Critical

### TC-INST-BILL-05-012 — Restrictions not overridable by BM
**Type:** Negative
**Covers:** 1.5 → Rule: restrictions not overridable by BM
**Preconditions:** Billing Manager logged in.
**Steps:**
1. Attempt to change own role or permissions via any UI or endpoint.
**Expected Result:** All attempts are denied; only Institute Admin or Super Administrator can change the role.
**Priority:** Critical
