SOFT LAUNCH (sandbox): PASS + E2E — YMSB Business OS client subscribed → hub company erp-ymsb active → sample invoice INV-202608-SOFT-001 submitted → LHDN sandbox Valid (uuid QYGPH3SDMSSG41DRZH1EPXZK10, 2026-08-13).
PRODUCTION go-live: HOLD — stay in softLaunchOnly for Meta hero ads. Production checklist still fails (env=sandbox). Upsell OK after Business OS.
myinvois:production-checklist --go-live all OKsoftLaunchOnly into advertise-now (soft still OK to keep)| Check | Result | Evidence |
|---|---|---|
| Hub API ping | PASS | php82 artisan myinvois:hub-ping → client fteg-erp |
| Sandbox readiness (fteg-erp) | PASS | OAuth · issuer TIN C20868022050 · hub cert · Can submit: yes |
| Sandbox signing cert on hub | PASS | Intermediary sandbox cert valid → 2026-11-03 |
| Prod signing cert on hub | PASS | CERT 20778937 valid → 2028-07-28 (unused until env flip) |
| Production cutover config | FAIL | Still MYINVOIS_ENV=sandbox, doc v1.0, preprod API — intentional |
| LHDN portal / intermediary grants | MANUAL | Prod OAuth + each client “Add Intermediary” — outside this host |
| Portal platform readiness | PASS | portal:readiness Platform ready: yes |
| Portal unlock / checkout rules | PASS | PortalMyInvoisSubscribeTest 5/5 (Business OS or invoice-module) |
| Public store page | PASS | https://fteg-appstore-58290393.fteg.dev/myinvois → 200 |
| Cert Mgr BO | PASS | https://myinvois-cert-mgr-bo-24892183.fteg.dev/auth/login → 200 |
| Paid client hub company E2E | PASS | ymsb → YmsbMyInvoisGoLiveSeeder → instance active · hub company #2 · token yes |
| Sandbox submit → Valid | PASS | Business OS ymsb:submit-sample-einvoice --invoice=9 → Valid |
| Hub provision secret wiring | PASS | Set MYINVOIS_HUB_PROVISION_SECRET ↔ hub HUB_INTERNAL_PROVISION_SECRET (was missing) |
| Supplier phone in UBL | FIXED | SupplierProfileConfig now passes phone/email (was NA → CF414) |
cd /srv/www/hubs/fteg-erp php82 artisan myinvois:hub-ping php82 artisan myinvois:readiness php82 artisan myinvois:production-checklist php82 artisan portal:readiness php82 artisan test --filter=PortalMyInvoisSubscribeTest # When ready for production cutover (ops only): # scripts/myinvois-use-production-test.sh # php82 artisan myinvois:production-checklist --go-live
myinvois:production-checklist --go-live.portal:readiness ymsb is green for staff demos.cd /srv/www/hubs/fteg-erp php82 artisan db:seed --class=Database\\Seeders\\YmsbMyInvoisGoLiveSeeder cd /srv/www/hubs/sme-erp php82 artisan ymsb:submit-sample-einvoice --invoice=9 php82 artisan myinvois:poll-submission 12 --by-id --document
| Surface | URL | Login |
|---|---|---|
| Cert Mgr BO | myinvois-cert-mgr-bo… | admin@myinvois-cert.fteg.dev / MyInvoisCert2026! |
| Hub API | myinvois-92729103.fteg.dev | Bearer client token (Connected Clients) |
| FTEG ERP (issuer) | fteg-erp-bo… | staff@fteg.dev / FtegStaff2026! |
| Client portal | portal/subscribe | Client with Business OS or invoice-module |