# BuchiPay UTI Automation — Completion Status

## Delivered in this source package
- React + Vite + TypeScript admin application source.
- Express + TypeScript API source.
- SQLite schema and automatic local database initialization.
- Admin login foundation, request queues, user request management, plan-request placeholder, audit logs and callback HMAC foundation.
- Playwright visible-browser session scaffold for authorized, human-assisted portal inspection.
- Screenshot-derived UTI page/field map; explicitly marked as notes, not verified DOM selectors.
- Safety gates defaulting to MOCK mode; live submission disabled by default.
- Transaction-result classifier that leaves ambiguous outcomes in `PENDING_VERIFICATION`.
- Windows setup and verification scripts.

## Offline verification performed in this environment
- 23/23 structural checks passed using `python scripts/verify-project.py`.
- JSON package manifests parse successfully.
- SQLite schema extracted from the actual server source executes successfully in SQLite 3.46.1 and creates the expected tables.
- Safety configuration defaults to MOCK; written authorization and live-submit flags are false.

## Not verified / not delivered as live functionality
- npm dependency installation did not complete in this environment (network install timed out).
- React/Vite production build, TypeScript server compilation and Node test suite have therefore NOT been executed here.
- No authorized UTI portal session was available in this environment. Actual DOM selectors, dynamic dropdown behavior, submit response, and transaction-report evidence have not been captured.
- The Playwright create-user and balance-transfer adapters intentionally refuse live submission until those facts are verified and the safety gates are satisfied. The portal workflow is therefore a scaffold, not a live UTI bot.

## Required to finish live UTI integration
1. Confirm written authorization and that browser automation is permitted for this UTI account.
2. Run the visible Playwright inspection on the authorized Windows PC; complete CAPTCHA/OTP manually.
3. Capture sanitized DOM/field metadata and final result pages for user creation and transfer.
4. Implement and review selectors based on the real live portal, not guessed selectors.
5. Test in an approved non-financial/test workflow first. Do not test a live transfer with a real amount.
6. Add independent reconciliation against Sub-PSA Processing Transactions. Unknown results must remain pending; never auto-retry.

This project must not be represented as production-ready or live-integrated until the outstanding items above are completed and tested.
