SBUT PAY 014 — Email + Password + Transaction PIN login বর্তমান database-এ আগে 009–013 থাকলে শুধু 014_EMAIL_LOGIN_PIN_SQL.txt চালান। COMPLETE আবার চালাবেন না। Supabase Dashboard → Edge Functions → username-access → Code → index.ts-এর পুরো code বদলে server/USERNAME_ACCESS_FULL_V14.txt-এর পুরো code paste করুন। এই ফাইল single-file; আলাদা core.mjs লাগবে না। Deploy updates চাপুন। আগের secrets ও verify_jwt=false সেটিং থাকবে; নতুন secret নেই। এরপর নতুন SBUT_PAY_MASTER.zip Cloudflare Pages-এ deploy করুন। নতুন Create account: Name + Username + Email + Password + Confirm password। Email বাধ্যতামূলক, একই Email একাধিক account-এ নয়। Email login identifier হিসেবে private table-এ থাকবে; email_verified=false। কোনো email OTP/মেইলবক্স verification বা email password reset delivery যুক্ত হয়নি। Login: Username অথবা Email + Password → আলাদা ৬ সংখ্যার transaction PIN page → সঠিক PIN হলে wallet। আগের account-এর Username/password/PIN বদলাবে না। আগে Email দেওয়া না থাকলে সেই account-এ Username দিয়ে login করুন। Pending/draft আবেদন wallet খুলবে না; তার processing/resume screen থাকবে। PIN page account-approved user-এর জন্য। Server-এ PIN ছাড়া approved wallet-এর active session, RLS data ও protected actions বন্ধ। ৫ বার ভুল PIN-এ ১৫ মিনিট lock। নতুন PIN নয়—আগে তৈরি করা transaction PIN দিন। Passkey login-ও এই PIN ধাপ দেখাবে। PIN/password browser storage-এ রাখা হয় না। Founder-এর আলাদা Email/Auth login থাকবে; Founder-এর approved wallet থাকলে তার PIN-ও লাগবে। 013 permission repair, ৩ মিনিটের account approval, এক NID-এ এক account, private R2 ও পরে manual identity review বজায় আছে। Local SQL/DOM/Edge mock tests পাস; live target Supabase, actual iPhone/biometric এবং real R2 integration পরীক্ষা হয়নি।