# 3. Payment Requests & Payouts — Test Cases

User Type: **Affiliate**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: payment_requests_payouts.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 |
|---------|--------------------|----------|
| 3.1 | Submit a payment request | TC-AF-4-03-001 |
| 3.1 | Minimum payout threshold check | TC-AF-4-03-002 |
| 3.1 | Select the payment method | TC-AF-4-03-003 |
| 3.1 | Confirm the request amount | TC-AF-4-03-004 |
| 3.1 | Request status tracking (pending, processed, paid) | TC-AF-4-03-005 |
| 3.1 | Request available on web and mobile | TC-AF-4-03-006 |
| 3.1 | Request event logging (submitted, processed) | TC-AF-4-03-007 |
| 3.1 | Audit logging of the payment request submission | TC-AF-4-03-008 |
| 3.1 | Rule: The request requires the minimum payout threshold. | TC-AF-4-03-001 |
| 3.1 | Rule: The request status is tracked. | TC-AF-4-03-002 |
| 3.1 | Rule: Request events (submitted, processed) are logged with the account and the timestamp. | TC-AF-4-03-003 |
| 3.1 | Rule: The payment request submission is audit-logged with the account and the timestamp. | TC-AF-4-03-004 |
| 3.2 | List of payment history | TC-AF-4-03-009 |
| 3.2 | Amount, date, method, and status per payment | TC-AF-4-03-010 |
| 3.2 | View a payment's details | TC-AF-4-03-011 |
| 3.2 | Filter by period | TC-AF-4-03-012 |
| 3.2 | Payment history available on web and mobile | TC-AF-4-03-013 |
| 3.2 | History event logging (viewed) | TC-AF-4-03-014 |
| 3.2 | Audit logging of the payment history | TC-AF-4-03-015 |
| 3.2 | Rule: The history shows amount, date, method, and status. | TC-AF-4-03-009 |
| 3.2 | Rule: The history can be filtered by period. | TC-AF-4-03-010 |
| 3.2 | Rule: History events (viewed) are logged with the account and the timestamp. | TC-AF-4-03-011 |
| 3.2 | Rule: The payment history is audit-logged with the account and the timestamp. | TC-AF-4-03-012 |
| 3.3 | List of payment statements | TC-AF-4-03-016 |
| 3.3 | View a statement | TC-AF-4-03-017 |
| 3.3 | Download a statement | TC-AF-4-03-018 |
| 3.3 | Statement for each payout | TC-AF-4-03-019 |
| 3.3 | Statements are accurate and complete | TC-AF-4-03-020 |
| 3.3 | Statements available on web and mobile | TC-AF-4-03-021 |
| 3.3 | Statements event logging (viewed, downloaded) | TC-AF-4-03-022 |
| 3.3 | Audit logging of the payment statements | TC-AF-4-03-023 |
| 3.3 | Rule: The statements are per payout. | TC-AF-4-03-016 |
| 3.3 | Rule: The statements are accurate and complete. | TC-AF-4-03-017 |
| 3.3 | Rule: Statements events (viewed, downloaded) are logged with the account and the timestamp. | TC-AF-4-03-018 |
| 3.3 | Rule: The payment statements is audit-logged with the account and the timestamp. | TC-AF-4-03-019 |

## 3.1 Payment Request Submission

### TC-AF-4-03-001 — Submit a payment request
**Type:** Positive
**Covers:** 3.1 → Submit a payment request; Rule: The request requires the minimum payout threshold.
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, set up the precondition and perform: Submit a payment request.
2. Observe the result and verify the full behavior: Submit a payment request.
**Expected Result:** Submit a payment request — delivered exactly as documented.
**Priority:** Critical

### TC-AF-4-03-002 — Minimum payout threshold check
**Type:** Edge
**Covers:** 3.1 → Minimum payout threshold check; Rule: The request status is tracked.
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, set up the precondition and perform: Minimum payout threshold check.
2. Observe the result and verify the full behavior: Minimum payout threshold check.
**Expected Result:** Minimum payout threshold check — delivered exactly as documented.
**Priority:** High

### TC-AF-4-03-003 — Select the payment method
**Type:** Positive
**Covers:** 3.1 → Select the payment method; Rule: Request events (submitted, processed) are logged with the account and the timestamp.
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, set up the precondition and perform: Select the payment method.
2. Observe the result and verify the full behavior: Select the payment method.
**Expected Result:** Select the payment method — delivered exactly as documented.
**Priority:** High

### TC-AF-4-03-004 — Confirm the request amount
**Type:** Positive
**Covers:** 3.1 → Confirm the request amount; Rule: The payment request submission is audit-logged with the account and the timestamp.
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, set up the precondition and perform: Confirm the request amount.
2. Observe the result and verify the full behavior: Confirm the request amount.
**Expected Result:** Confirm the request amount — delivered exactly as documented.
**Priority:** High

### TC-AF-4-03-005 — Request status tracking (pending, processed, paid)
**Type:** Positive
**Covers:** 3.1 → Request status tracking (pending, processed, paid)
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, set up the precondition and perform: Request status tracking (pending, processed, paid).
2. Observe the result and verify the full behavior: Request status tracking (pending, processed, paid).
**Expected Result:** Request status tracking (pending, processed, paid) — delivered exactly as documented.
**Priority:** High

### TC-AF-4-03-006 — Request available on web and mobile
**Type:** Positive
**Covers:** 3.1 → Request available on web and mobile
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, set up the precondition and perform: Request available on web and mobile.
2. Observe the result and verify the full behavior: Request available on web and mobile.
**Expected Result:** Request available on web and mobile — delivered exactly as documented.
**Priority:** High

### TC-AF-4-03-007 — Request event logging (submitted, processed)
**Type:** Positive
**Covers:** 3.1 → Request event logging (submitted, processed)
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, set up the precondition and perform: Request event logging (submitted, processed).
2. Observe the result and verify the full behavior: Request event logging (submitted, processed).
**Expected Result:** Request event logging (submitted, processed) — delivered exactly as documented.
**Priority:** High

### TC-AF-4-03-008 — Audit logging of the payment request submission
**Type:** Positive
**Covers:** 3.1 → Audit logging of the payment request submission
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, perform the payment request submission action.
2. Open the audit log and verify the entry for the action.
**Expected Result:** The payment request submission action is recorded in the audit log with the account and the timestamp.
**Priority:** Critical


## 3.2 Payment History

### TC-AF-4-03-009 — List of payment history
**Type:** Positive
**Covers:** 3.2 → List of payment history; Rule: The history shows amount, date, method, and status.
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, set up the precondition and perform: List of payment history.
2. Observe the result and verify the full behavior: List of payment history.
**Expected Result:** List of payment history — delivered exactly as documented.
**Priority:** Critical

### TC-AF-4-03-010 — Amount, date, method, and status per payment
**Type:** Positive
**Covers:** 3.2 → Amount, date, method, and status per payment; Rule: The history can be filtered by period.
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, set up the precondition and perform: Amount, date, method, and status per payment.
2. Observe the result and verify the full behavior: Amount, date, method, and status per payment.
**Expected Result:** Amount, date, method, and status per payment — delivered exactly as documented.
**Priority:** High

### TC-AF-4-03-011 — View a payment's details
**Type:** Positive
**Covers:** 3.2 → View a payment's details; Rule: History events (viewed) are logged with the account and the timestamp.
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, set up the precondition and perform: View a payment's details.
2. Observe the result and verify the full behavior: View a payment's details.
**Expected Result:** View a payment's details — delivered exactly as documented.
**Priority:** High

### TC-AF-4-03-012 — Filter by period
**Type:** Positive
**Covers:** 3.2 → Filter by period; Rule: The payment history is audit-logged with the account and the timestamp.
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, set up the precondition and perform: Filter by period.
2. Observe the result and verify the full behavior: Filter by period.
**Expected Result:** Filter by period — delivered exactly as documented.
**Priority:** High

### TC-AF-4-03-013 — Payment history available on web and mobile
**Type:** Positive
**Covers:** 3.2 → Payment history available on web and mobile
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, set up the precondition and perform: Payment history available on web and mobile.
2. Observe the result and verify the full behavior: Payment history available on web and mobile.
**Expected Result:** Payment history available on web and mobile — delivered exactly as documented.
**Priority:** High

### TC-AF-4-03-014 — History event logging (viewed)
**Type:** Positive
**Covers:** 3.2 → History event logging (viewed)
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, set up the precondition and perform: History event logging (viewed).
2. Observe the result and verify the full behavior: History event logging (viewed).
**Expected Result:** History event logging (viewed) — delivered exactly as documented.
**Priority:** High

### TC-AF-4-03-015 — Audit logging of the payment history
**Type:** Positive
**Covers:** 3.2 → Audit logging of the payment history
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, perform the payment history action.
2. Open the audit log and verify the entry for the action.
**Expected Result:** The payment history action is recorded in the audit log with the account and the timestamp.
**Priority:** Critical


## 3.3 Payment Statements

### TC-AF-4-03-016 — List of payment statements
**Type:** Positive
**Covers:** 3.3 → List of payment statements; Rule: The statements are per payout.
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, set up the precondition and perform: List of payment statements.
2. Observe the result and verify the full behavior: List of payment statements.
**Expected Result:** List of payment statements — delivered exactly as documented.
**Priority:** Critical

### TC-AF-4-03-017 — View a statement
**Type:** Positive
**Covers:** 3.3 → View a statement; Rule: The statements are accurate and complete.
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, set up the precondition and perform: View a statement.
2. Observe the result and verify the full behavior: View a statement.
**Expected Result:** View a statement — delivered exactly as documented.
**Priority:** High

### TC-AF-4-03-018 — Download a statement
**Type:** Positive
**Covers:** 3.3 → Download a statement; Rule: Statements events (viewed, downloaded) are logged with the account and the timestamp.
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, set up the precondition and perform: Download a statement.
2. Observe the result and verify the full behavior: Download a statement.
**Expected Result:** Download a statement — delivered exactly as documented.
**Priority:** High

### TC-AF-4-03-019 — Statement for each payout
**Type:** Positive
**Covers:** 3.3 → Statement for each payout; Rule: The payment statements is audit-logged with the account and the timestamp.
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, set up the precondition and perform: Statement for each payout.
2. Observe the result and verify the full behavior: Statement for each payout.
**Expected Result:** Statement for each payout — delivered exactly as documented.
**Priority:** High

### TC-AF-4-03-020 — Statements are accurate and complete
**Type:** Positive
**Covers:** 3.3 → Statements are accurate and complete
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, set up the precondition and perform: Statements are accurate and complete.
2. Observe the result and verify the full behavior: Statements are accurate and complete.
**Expected Result:** Statements are accurate and complete — delivered exactly as documented.
**Priority:** High

### TC-AF-4-03-021 — Statements available on web and mobile
**Type:** Positive
**Covers:** 3.3 → Statements available on web and mobile
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, set up the precondition and perform: Statements available on web and mobile.
2. Observe the result and verify the full behavior: Statements available on web and mobile.
**Expected Result:** Statements available on web and mobile — delivered exactly as documented.
**Priority:** High

### TC-AF-4-03-022 — Statements event logging (viewed, downloaded)
**Type:** Positive
**Covers:** 3.3 → Statements event logging (viewed, downloaded)
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, set up the precondition and perform: Statements event logging (viewed, downloaded).
2. Observe the result and verify the full behavior: Statements event logging (viewed, downloaded).
**Expected Result:** Statements event logging (viewed, downloaded) — delivered exactly as documented.
**Priority:** High

### TC-AF-4-03-023 — Audit logging of the payment statements
**Type:** Positive
**Covers:** 3.3 → Audit logging of the payment statements
**Preconditions:** A Affiliate account is active and the Affiliate is in the state required for this behavior.
**Steps:**
1. As a Affiliate, perform the payment statements action.
2. Open the audit log and verify the entry for the action.
**Expected Result:** The payment statements action is recorded in the audit log with the account and the timestamp.
**Priority:** Critical
