# Phase 12 Sprint Task Breakdown (App-Level Task IDs)

**Date:** 2026-03-26  
**Phase:** 12 - Customer Journey and Channel Completeness  
**Source Checklist:** docs/phase-12-execution-checklist.md

---

## 1. Planning Assumptions

- Sprint length: 2 weeks
- Phase length: 3 sprints (A, B, C)
- Status values: `not-started`, `in-progress`, `blocked`, `done`
- Priority values: `P0` (critical path), `P1` (important), `P2` (optimization)
- All P0 tasks require policy, audit, and observability evidence.

---

## 2. Task ID Scheme

Format:
- `P12-SA-<track><nn>` for Sprint A
- `P12-SB-<track><nn>` for Sprint B
- `P12-SC-<track><nn>` for Sprint C

Track letters:
- `A` Request money and QR
- `B` Beneficiary persistence and validation
- `C` Card-linking and sync enhancements
- `D` Withdrawals and split payment
- `E` Statements and receipt depth
- `F` Cross-cutting quality/compliance/ops

---

## 3. Sprint A Tasks (Domain Foundations)

## Track A - Request Money and QR

### P12-SA-A01
- Title: Request-money state model and command contracts
- Apps: wallet_payments (or wallet_transfers extension), wallet_api_contracts
- Priority: P0
- Owner: Payments Team + Architecture Team
- Dependencies: none
- Acceptance criteria:
  - Lifecycle states defined (created/pending/approved/declined/canceled/expired).
  - Command and query contracts published and versioned.
  - Error mapping aligned with ADR 0005.
- Evidence: lifecycle matrix and contract tests
- Status: not-started

### P12-SA-A02
- Title: Request creation and inbox UX baseline
- Apps: wallet_web, wallet_transfers
- Priority: P0
- Owner: Wallet Web Team
- Dependencies: P12-SA-A01
- Acceptance criteria:
  - Customer can create request and view incoming/outgoing request lists.
  - Basic approve/decline action handling wired.
  - UI tests for success and validation errors pass.
- Evidence: LiveView/controller tests
- Status: not-started

## Track B - Beneficiaries

### P12-SA-B01
- Title: Beneficiary persistence migration from ETS to DB
- Apps: wallet_transfers, wallet_database
- Priority: P0
- Owner: Transfers Team + Database Team
- Dependencies: none
- Acceptance criteria:
  - Canonical beneficiary schema and migration added.
  - Reads/writes switched to persistent store.
  - Existing customer flows remain backward compatible.
- Evidence: migration tests and compatibility test report
- Status: not-started

### P12-SA-B02
- Title: Phone lookup contract and anti-enumeration controls
- Apps: wallet_integrations, wallet_transfers
- Priority: P0
- Owner: Integrations Team + Transfers Team
- Dependencies: P12-SA-B01
- Acceptance criteria:
  - Phone lookup contract supports normalized search.
  - Responses are privacy-safe with masking.
  - Rate-limit and anti-enumeration checks enforced.
- Evidence: contract tests and abuse tests
- Status: not-started

## Track E - Statements and Receipts

### P12-SA-E01
- Title: Statement generation service skeleton
- Apps: wallet_web, wallet_reporting (or wallet_web service module)
- Priority: P1
- Owner: Wallet Web Team + Reporting Team
- Dependencies: none
- Acceptance criteria:
  - Async statement generation job interface created.
  - Supports CSV and PDF output placeholders.
  - Request status lifecycle available (queued/running/completed/failed).
- Evidence: service tests and lifecycle checks
- Status: not-started

## Track F - Cross-Cutting

### P12-SA-F01
- Title: API contract baseline for Phase 12 endpoints
- Apps: wallet_api_contracts, wallet_web
- Priority: P1
- Owner: Platform Team
- Dependencies: P12-SA-A01
- Acceptance criteria:
  - New endpoints registered with standard envelope and idempotency behavior.
  - Contract conformance tests pass.
- Evidence: conformance report
- Status: not-started

---

## 4. Sprint B Tasks (Channel Enhancements)

## Track A - Request Money and QR

### P12-SB-A01
- Title: Full request decision lifecycle and expiry jobs
- Apps: wallet_payments (or wallet_transfers), wallet_settlement
- Priority: P0
- Owner: Payments Team
- Dependencies: P12-SA-A01
- Acceptance criteria:
  - Approve/decline/cancel/expire states fully implemented.
  - Expiry scheduler/job transitions stale requests.
  - Duplicate decision operations are idempotent.
- Evidence: lifecycle and idempotency test report
- Status: not-started

### P12-SB-A02
- Title: QR generation and request-deeplink integration
- Apps: wallet_web, wallet_transfers
- Priority: P0
- Owner: Wallet Web Team + Payments Team
- Dependencies: P12-SA-A02
- Acceptance criteria:
  - Generate QR payload for receiving/requesting money.
  - Deeplink and parse flows route to request handling view.
  - Invalid/expired payload handling returns deterministic errors.
- Evidence: parser and UX tests
- Status: not-started

## Track B - Beneficiaries

### P12-SB-B01
- Title: QR beneficiary resolution and onboarding flow
- Apps: wallet_web, wallet_transfers
- Priority: P0
- Owner: Wallet Web Team + Transfers Team
- Dependencies: P12-SA-B01
- Acceptance criteria:
  - Beneficiary can be added from QR identity payload.
  - Invalid QR payload path is safe and observable.
  - Policy checks applied to add/remove operations.
- Evidence: flow tests and policy report
- Status: not-started

### P12-SB-B02
- Title: External account verification before beneficiary activation
- Apps: wallet_integrations, wallet_transfers
- Priority: P0
- Owner: Integrations Team
- Dependencies: P12-SA-B02
- Acceptance criteria:
  - Verification handshake required before activation.
  - Pending/verified/rejected states recorded.
  - Timeout and provider-error handling validated.
- Evidence: integration tests and failure-path report
- Status: not-started

## Track C - Card Linking and Sync

### P12-SB-C01
- Title: AFEX card-link tokenization and BIN checks
- Apps: wallet_cards, wallet_integrations
- Priority: P0
- Owner: Card Team + Integrations Team
- Dependencies: none
- Acceptance criteria:
  - Raw PAN not persisted; tokenized references only.
  - BIN validation rules applied during link flow.
  - Security tests pass.
- Evidence: tokenization validation report and tests
- Status: not-started

### P12-SB-C02
- Title: Card-wallet balance sync pipeline
- Apps: wallet_cards, wallet_settlement, wallet_ledger
- Priority: P0
- Owner: Card Team + Settlement Team
- Dependencies: P12-SB-C01
- Acceptance criteria:
  - Real-time sync events update view state and reconciliation records.
  - Drift detection creates reconciliation exceptions.
  - Replay-safe sync processing verified.
- Evidence: sync and drift report
- Status: not-started

### P12-SB-C03
- Title: AANI linking for funding and transfer routes
- Apps: wallet_integrations, wallet_transfers
- Priority: P1
- Owner: Integrations Team + Transfers Team
- Dependencies: none
- Acceptance criteria:
  - AANI identity and routing link established.
  - Funding and transfer paths can resolve linked AANI channel.
  - Contract tests pass.
- Evidence: adapter tests and routing scenarios
- Status: not-started

## Track D - Withdrawals and Split Payment

### P12-SB-D01
- Title: Branch cash-out operational flow
- Apps: wallet_transfers, wallet_journey, wallet_web
- Priority: P0
- Owner: Financial Domain Team + Operations Team
- Dependencies: none
- Acceptance criteria:
  - Branch operator cash-out flow is policy-gated and auditable.
  - Ledger postings and reversals behave correctly.
  - Operational handoff steps documented.
- Evidence: scenario tests and audit samples
- Status: not-started

### P12-SB-D02
- Title: ATM withdrawal pathway via linked cards
- Apps: wallet_cards, wallet_integrations, wallet_transfers
- Priority: P0
- Owner: Card Team + Integrations Team
- Dependencies: P12-SB-C01
- Acceptance criteria:
  - ATM withdrawal lifecycle supported.
  - Callback replay and timeout handling validated.
  - Failure compensation paths tested.
- Evidence: lifecycle tests and replay report
- Status: not-started

## Track E - Statements and Receipts

### P12-SB-E01
- Title: Statement export generation (CSV/PDF)
- Apps: wallet_web, wallet_reporting
- Priority: P0
- Owner: Reporting Team + Wallet Web Team
- Dependencies: P12-SA-E01
- Acceptance criteria:
  - CSV and PDF generation complete for supported date windows.
  - Export records tracked with statuses and metadata.
  - Failure retries and user-visible status updates available.
- Evidence: export validation report
- Status: not-started

---

## 5. Sprint C Tasks (Completion and Parity)

## Track D - Withdrawals and Split Payment

### P12-SC-D01
- Title: Split payment orchestration and compensation
- Apps: wallet_journey, wallet_transfers, wallet_limits_fees
- Priority: P0
- Owner: Journey Team + Transfers Team
- Dependencies: P12-SB-D01
- Acceptance criteria:
  - Multi-destination split flow executes deterministically.
  - Compensation for partial failures implemented and tested.
  - Idempotency preserved across retries.
- Evidence: orchestration and compensation tests
- Status: not-started

## Track E - Statements and Receipts

### P12-SC-E01
- Title: Statement download UX and history management
- Apps: wallet_web
- Priority: P0
- Owner: Wallet Web Team
- Dependencies: P12-SB-E01
- Acceptance criteria:
  - Customer can view/download generated statements.
  - Clear status and retry messaging for failed exports.
  - UI and API tests pass.
- Evidence: UX tests and API tests
- Status: not-started

### P12-SC-E02
- Title: Rich transaction detail and receipt parity
- Apps: wallet_web, wallet_ledger
- Priority: P0
- Owner: Wallet Web Team + Ledger Team
- Dependencies: P12-SB-E01
- Acceptance criteria:
  - Detail view includes channel, fee, reference, counterpart, timestamps, and status timeline.
  - Customer and admin detail models are aligned.
  - Data consistency tests pass.
- Evidence: parity checklist and consistency tests
- Status: not-started

## Track A/B/C Completion

### P12-SC-A01
- Title: Request-money and QR journey E2E closure
- Apps: wallet_web, wallet_transfers, wallet_auth, wallet_observability
- Priority: P0
- Owner: Payments Team + Wallet Web Team
- Dependencies: P12-SB-A01, P12-SB-A02
- Acceptance criteria:
  - End-to-end request and QR receive flows pass for success/failure/unauthorized scenarios.
  - Audit and risk hooks triggered consistently.
- Evidence: E2E test report and trace samples
- Status: not-started

### P12-SC-B01
- Title: Beneficiary validation E2E closure
- Apps: wallet_web, wallet_transfers, wallet_integrations
- Priority: P0
- Owner: Transfers Team + Integrations Team
- Dependencies: P12-SB-B01, P12-SB-B02
- Acceptance criteria:
  - Beneficiary add/validate/activate/remove works with persistent storage.
  - Phone/QR/account verification paths pass.
- Evidence: E2E and integration tests
- Status: not-started

### P12-SC-C01
- Title: Card-linking and sync E2E closure
- Apps: wallet_cards, wallet_integrations, wallet_settlement
- Priority: P0
- Owner: Card Team + Integrations Team
- Dependencies: P12-SB-C02, P12-SB-C03
- Acceptance criteria:
  - Link/unlink/sync flows pass with drift detection and reconciliation hooks.
  - Observability/audit coverage complete.
- Evidence: E2E tests and traceability report
- Status: not-started

## Track F - Cross-Cutting Sign-Off

### P12-SC-F01
- Title: Accessibility/responsive and contract conformance closure
- Apps: wallet_web, wallet_api_contracts
- Priority: P1
- Owner: QA Team + Platform Team
- Dependencies: all P12-SC P0 tasks
- Acceptance criteria:
  - Accessibility and responsive checks pass for critical Phase 12 pages.
  - Contract/idempotency conformance report finalized.
- Evidence: QA report and conformance report
- Status: not-started

### P12-SC-F02
- Title: Runbooks and support readiness package
- Apps: docs, wallet_production
- Priority: P1
- Owner: Operations Team + SRE Team
- Dependencies: P12-SC-A01, P12-SC-B01, P12-SC-C01, P12-SC-E01
- Acceptance criteria:
  - Runbooks for request failures, beneficiary verification, statements, and withdrawals published.
  - Tabletop exercise completed and findings triaged.
- Evidence: runbook package and tabletop notes
- Status: not-started

### P12-SC-F03
- Title: Phase 12 sign-off package
- Apps: docs
- Priority: P0
- Owner: Program Management + Track Leads
- Dependencies: P12-SC-F01, P12-SC-F02
- Acceptance criteria:
  - Phase 12 evidence checklist complete.
  - Open critical defects count is zero.
  - Sign-off from Architecture/Security/Compliance/Operations captured.
- Evidence: signed phase summary
- Status: not-started

---

## 6. Critical Path

1. P12-SA-A01 -> P12-SA-A02 -> P12-SB-A01 -> P12-SB-A02 -> P12-SC-A01
2. P12-SA-B01 -> P12-SA-B02 -> P12-SB-B01/P12-SB-B02 -> P12-SC-B01
3. P12-SB-C01 -> P12-SB-C02 -> P12-SC-C01
4. P12-SB-D01/P12-SB-D02 -> P12-SC-D01
5. P12-SA-E01 -> P12-SB-E01 -> P12-SC-E01/P12-SC-E02
6. P12-SC-A01 + P12-SC-B01 + P12-SC-C01 + P12-SC-E01 -> P12-SC-F03

---

## 7. Completion Gates Per Sprint

Sprint A gate:
- Must-complete tasks: P12-SA-A01, P12-SA-A02, P12-SA-B01, P12-SA-B02
- Tolerance: maximum 1 P1 carryover

Sprint B gate:
- Must-complete tasks: P12-SB-A01, P12-SB-A02, P12-SB-B02, P12-SB-C01, P12-SB-C02, P12-SB-D01, P12-SB-E01
- Tolerance: no P0 carryover

Sprint C gate:
- Must-complete tasks: P12-SC-A01, P12-SC-B01, P12-SC-C01, P12-SC-D01, P12-SC-E02, P12-SC-F03
- Tolerance: no open critical defects

---

## 8. Definition of Done (Phase 12)

A Phase 12 task is done only when:
- Implementation and tests pass in CI.
- Required policy/security controls are validated.
- Audit and telemetry evidence is captured for sensitive actions.
- Operational documentation is updated for affected flows.
- Tracker artifacts include owner, status, and evidence references.
