NetzonPay
A centralized subscription billing platform for all Netzon apps.
Auto-charging • Card Tokenization • Multi-channel PH Payments
MVP Ready FIUU-Powered .NET 10 + Next.js 15
Press โ†’ to begin • March 2026

Why We Need NetzonPay

Netzon builds 5+ apps for clients and internal use. Each one needs subscription billing โ€” but there's no unified solution.

๐Ÿ”’
Access Gating
Each app needs to gate features behind subscriptions โ€” but they all do it differently.
๐Ÿ’ณ
Payment Collection
Cards, GCash, Maya, BPI โ€” each app would need its own FIUU integration.
๐Ÿ”„
Recurring Billing
Auto-charging stored cards monthly? Each app rebuilding this from scratch is wasteful.
๐Ÿ“Š
Tracking & Visibility
Who paid? Who didn't? Who's active? No single view across all Netzon apps.
๐Ÿ”ง
Maintenance Burden
5 apps ร— payment integration = 5ร— the bugs, 5ร— the security surface, 5ร— the effort.
โšก
Time to Market
New apps are delayed because billing setup takes weeks each time.

One Platform for All Apps

NetzonPay is like Netflix billing โ€” but for every Netzon app. One integration, automatic charging, full visibility.

App
Netzon CRM
App
App B
App
App C
App
App D
Platform
NetzonPay API
Subscriptions • Auto-charging • Tokenization • Status tracking
Gateway
FIUU Payment Gateway
Card charging • E-wallets • 3DS • PCI-DSS compliant

How FIUU Fits In

FIUU processes the payments. NetzonPay orchestrates the billing.

What FIUU Provides

๐Ÿฆ Hosted Payment Page
We never touch card data โ€” FIUU handles it
๐Ÿ” Card Tokenization
Store cards as tokens for auto-charging
๐Ÿ”„ Recurring Payments
Merchant-initiated transactions with stored tokens
๐Ÿ›ก๏ธ 3DS Authentication
First payment = 3DS. Auto-charges skip it.
๐Ÿ“ฑ Multi-channel PH
GCash, Maya, BPI, Visa/MC, QRPH
๐Ÿ“ก Webhooks
Real-time payment status notifications

What NetzonPay Builds On Top

๐Ÿ“‹ App Registry
Register each Netzon app, set plans and pricing
๐Ÿ“… Subscription Management
Track users, plans, billing dates, status
โฐ Auto-Charge Scheduler
Cron job charges stored cards on billing dates
๐ŸŽ›๏ธ Admin Dashboard
Internal tool for Netzon staff to manage everything
๐ŸŒ Payment Portal
User-facing page for plan selection and payment
๐Ÿ” Status API
Apps call this to check if subscription is active

System Architecture

Frontend
Next.js 15
Dashboard + Payment Portal
shadcn/ui • Better Auth
Backend
.NET 10 Web API
Controllers • Services • Background Workers
EF Core • FluentValidation • Serilog
Database
PostgreSQL 16
ACID • JSONB
Cache / Jobs
Redis 7
Locks • Queue
Gateway
FIUU
pay.fiuu.com
api.fiuu.com
Minimal APIs / Controllers Background Services TanStack Query Hangfire Jobs

Tech Stack

โš™๏ธ Backend (.NET 10)

Runtime.NET 10 (LTS)
ORMEntity Framework Core 10
DatabasePostgreSQL 16
CacheRedis + Hangfire
HTTP ClientRefit (typed)
App AuthAPI Key (X-Api-Key)
Admin AuthJWT Bearer
ValidationFluentValidation
LoggingSerilog + Seq

๐ŸŽจ Frontend (Next.js 15)

FrameworkNext.js 15 (App Router)
UIshadcn/ui + Tailwind CSS
StateTanStack Query
Formsreact-hook-form + zod
AuthBetter Auth
ChartsRecharts
ToastsSonner

๐Ÿณ Infrastructure

LocalDocker Compose
ProductionAWS ECS / Vercel
FIUUSandbox โ†’ Production

What We're Building

๐Ÿ“‹

App Registry

Register Netzon apps, generate API keys, configure payment channels per app. Each app gets a unique nzp_xxxx key.

๐Ÿ“…

Subscription Plans

Create plans per app: Monthly, Quarterly, Annual. Set PHP amounts, trial periods, billing cycles. Maps to FIUU recurring.

๐ŸŒ

Payment Portal

User-facing page showing app name, plans, prices. Redirects to FIUU hosted page. Card tokenized for auto-charging.

โšก

Auto-Charging

Daily scheduler charges stored tokens via FIUU API. 3 retries over 7 days. Netflix-style recurring billing.

๐ŸŽ›๏ธ

Admin Dashboard

Overview stats, subscriber management, payment logs, manual actions (cancel, refund, retry). Real-time visibility.

๐Ÿ”

Status API

Apps call GET /subscriptions/check to gate access. Returns active status, plan, expiry. Simple boolean check.

Database Design

PostgreSQL 16 โ€” 7 tables powering the entire billing lifecycle.

apps
PK id UUID
name VARCHAR
slug UNIQUE
api_key HASHED
callback_url
is_active BOOL
plans
PK id UUID
FK app_id
billing_cycle VARCHAR
amount DECIMAL
trial_days INT
is_active BOOL
subscribers
PK id UUID
FK app_id
external_user_id
email VARCHAR
name VARCHAR
phone VARCHAR
subscriptions
PK id UUID
FK subscriber_id
FK plan_id
status ENUM
period_start / end
retry_count INT
payment_methods
PK id UUID
FK subscriber_id
type card/ewallet
fiuu_token ENCRYPTED
card_last4 / brand
is_default BOOL
payments
PK id UUID
FK subscription_id
amount DECIMAL
status ENUM
fiuu_txn_id BIGINT
fiuu_channel / status
payment_sessions
PK id UUID
FK subscriber_id
FK plan_id
status ENUM
expires_at TIMESTAMPTZ
return_url
audit_logs
PK id UUID
admin_user
action VARCHAR
entity_type / id
details JSONB
created_at

API Design

๐Ÿ”‘ App API X-Api-Key

// Create payment session POST /api/v1/sessions { app_id, external_user_id, email, plan_id, return_url } โ†’ { session_id, payment_url } // Check subscription status GET /api/v1/subscriptions/check ?app_id=...&external_user_id=... โ†’ { active: true, plan, expires_at } // Cancel subscription POST /api/v1/subscriptions/{id}/cancel โ†’ { status: "cancelled", access_until }

๐Ÿ›ก๏ธ Admin API JWT Bearer

// Dashboard stats GET /api/v1/admin/dashboard โ†’ { total_subscribers, active, revenue, recent_payments[] } // CRUD endpoints GET/POST/PUT/DEL /admin/apps GET/POST/PUT/DEL /admin/plans GET /admin/subscribers GET /admin/payments // Manual actions POST /admin/subscriptions/{id}/retry POST /admin/subscriptions/{id}/refund

๐Ÿ“ก FIUU Webhooks Server-to-Server

POST /fiuu/return
Browser redirect โ€” user comes back after payment. Verify skey, update payment, redirect to success.
POST /fiuu/notify
Server-to-server notification (most reliable). Verify skey, update payment idempotently.
POST /fiuu/callback
Deferred updates โ€” for cash payments, status changes. Return CBTOKEN:MPSTATOK.

Interactive Payment Flow

Experience the full payment lifecycle. Toggle between client and admin views.

Landing
Plans
Payment
Processing
Success
App Access
https://haotang.app

Staff & Kitchen Portal

Streamline your restaurant operations with real-time order management, kitchen coordination, and staff dashboards.

Everything You Need

๐Ÿ“‹
Order Management
Track and manage orders in real-time
๐Ÿ‘จโ€๐Ÿณ
Kitchen Dashboard
Kanban board for kitchen workflow
๐Ÿ“Š
Analytics
Sales reports and insights
๐Ÿ‘ฅ
Staff Management
Roles, shifts, and permissions
๐Ÿช
Multi-Branch
Manage multiple locations
๐Ÿ””
Live Updates
Real-time order notifications

Choose Your Plan

All plans include core POS features. Scale as you grow.

Starter
โ‚ฑ999/mo
  • 1 Branch
  • Basic POS
  • Staff Dashboard
  • Email Support
Enterprise
โ‚ฑ3,999/mo
  • Unlimited Branches
  • All Features
  • Custom Integrations
  • Dedicated Support
โ‚ฑ1,999.00
Hao Tang โ€” Professional Plan
๐Ÿ’ณ Visa/MC
GCash
Maya
BPI
Processing your payment...
โ—‹ Connecting to payment gateway...
โ—‹ Verifying card with 3D Secure...
โ—‹ Processing payment...
โ—‹ Tokenizing card for future charges...
โ—‹ Activating subscription...
โœ“

Welcome to Hao Tang! ๐Ÿฒ

Your subscription is now active. Access your Staff & Kitchen Portal.

PlanProfessional
Amountโ‚ฑ1,999.00/mo
Next BillingApril 27, 2026
Payment MethodVisa โ€ขโ€ขโ€ขโ€ข 1234
FIUU Txn ID#374829105
Powered by NetzonPay โ€” card tokenized for auto-renewal
Hao Tang
Staff Portal
๐Ÿ“Š Admin Dashboard
๐Ÿ‘ฅ Staff Dashboard
๐Ÿ‘จโ€๐Ÿณ Kitchen Dashboard
Staff Dashboard Live
๐Ÿ“ Hao Tang Azuela โ–พ
Active Orders 8
Carlos Rivera ACTIVE
Mar 27, 2026 โ€” 12:30 PM
2 PaxHotpot & Grill
2ร— Beef Sliceโ‚ฑ0.00
1ร— Pork Bellyโ‚ฑ0.00
2ร— Extra Riceโ‚ฑ50.00
Totalโ‚ฑ50.00
Maria Santos ACTIVE
Mar 27, 2026 โ€” 12:25 PM
4 PaxHotpot Only
4ร— Mushroom Setโ‚ฑ0.00
2ร— Tofu Platterโ‚ฑ0.00
1ร— Seafood Add-onโ‚ฑ180.00
Totalโ‚ฑ180.00
Juan Reyes ACTIVE
Mar 27, 2026 โ€” 12:15 PM
3 PaxHotpot & Grill
3ร— Wagyu Setโ‚ฑ0.00
3ร— Egg Noodleโ‚ฑ0.00
1ร— Premium Platterโ‚ฑ350.00
Totalโ‚ฑ350.00
Ana Garcia ACTIVE
Mar 27, 2026 โ€” 12:10 PM
2 PaxHotpot Only
2ร— Pork Sliceโ‚ฑ0.00
2ร— Veggie Mixโ‚ฑ0.00
2ร— Drinkโ‚ฑ80.00
Totalโ‚ฑ80.00
Kitchen Dashboard Live
๐Ÿ“ Hao Tang Azuela โ–พ
New Orders
Order History
Menu Management
Pending 2
Table 1 Refill
12:30 PM
2ร— Beef Slice
1ร— Pork Belly
2ร— Extra Rice
Totalโ‚ฑ50.00
Table 3 Refill
12:25 PM
4ร— Mushroom Set
1ร— Seafood Add-on
Totalโ‚ฑ180.00
Preparing 0
No orders in preparation
Ready 0
No orders ready
Admin Dashboard Live
๐Ÿ“ Hao Tang Azuela โ–พ
๐Ÿ“Š
Admin analytics and store management

Auto-Charging Flow

The heart of Netflix-style billing โ€” daily scheduler + stored card tokens + FIUU API.

How It Works

// AutoChargeWorker.cs โ€” runs daily at 2 AM PHT 1. Query subscriptions WHERE status = 'active' AND current_period_end <= NOW() AND payment_method.type = 'card' 2. For each due subscription: AcquireRedisLock("autocharge:{id}") GetStoredToken(subscriber_id) ChargeFiuuToken(token, amount) 3. If success (00): โ†’ payment.status = "success" โ†’ ExtendPeriod(+1 cycle) 4. If failed (11): โ†’ payment.status = "failed" โ†’ subscription.status = "past_due" โ†’ retry_count += 1 โ†’ If retry > 3 โ†’ "expired"

Retry Schedule

RetryDelayAction
1st+1 dayAuto-retry charge
2nd+3 daysRetry + email warning
3rd+7 daysFinal retry + "ending" email
Failedโ€”Status โ†’ expired, access revoked

E-Wallet Subscribers

โš ๏ธ GCash, Maya, and bank transfers cannot be auto-charged โ€” they require user action each time.

โ†’ Send payment reminder before billing date
โ†’ Provide a "Renew" link (creates new payment session)
โ†’ Grace period โ†’ past_due โ†’ expired

Security & Compliance

๐Ÿ”’

HTTPS Everywhere

TLS 1.3 on all endpoints. User โ†’ Portal, Portal โ†’ FIUU, Apps โ†’ API, Dashboard โ†’ API.

๐Ÿ›ก๏ธ

PCI-DSS Compliant

Card data never touches our servers. FIUU is PCI-DSS v4.0 certified. We stay out of PCI scope.

๐Ÿ”

Hash Verification

Every FIUU response verified via skey hash (MD5 chain). Constant-time comparison prevents timing attacks.

๐Ÿ—๏ธ

Secret Management

FIUU keys in env vars. API keys hashed (SHA-256). Passwords hashed (Argon2id). Tokens AES-256 encrypted.

๐Ÿšฆ

Rate Limiting

100 req/min per API key. 60 req/min per admin. 10 session creates/min per user. No limit on FIUU webhooks.

๐Ÿ”„

Idempotency

FIUU webhooks may fire multiple times. We use fiuu_txn_id as idempotency key + Redis locks to prevent double-processing.

๐Ÿšซ

Never Stored

Card numbers, CVV, full expiry, bank passwords โ€” none of these ever hit our servers or database.

๐Ÿ“

Audit Trail

All admin actions logged in audit_logs table with JSONB details. WHO did WHAT to WHICH entity, WHEN.

Phased Delivery Plan

Three execution phases, with 8-10 weeks as the recommended planning range and 10-12 weeks as the safer commitment.

Aggressive: 6-8 weeks Recommended: 8-10 weeks Safer: 10-12 weeks

Planning hours below are the recommended ClickUp values for the AI-assisted 8-10 week path.

Phase 1
Core Payment Foundation
2-3 weeks
  • โ€บ API and web project foundation 20h
    • .NET 10 Web API solution scaffold 4h
    • Next.js 15 project scaffold 4h
    • Docker Compose for PostgreSQL, Redis, API, web 4h
    • Shared configuration and environment variables 4h
    • CI lint and build check 4h
  • โ€บ Database schema and migrations 16h
    • EF Core entity classes for all 7 tables 4h
    • DbContext with relationships, indexes, constraints 4h
    • Initial migration and seed data 4h
    • Migration integration test 4h
  • โ€บ App registry and plan management 16h
    • Apps CRUD API with validation 4h
    • Plans CRUD API with validation 4h
    • API key generation and hashed storage 4h
    • Unit and integration tests 4h
  • โ€บ Payment session creation API 12h
    • POST /sessions endpoint with subscriber upsert 4h
    • Session expiry logic and validation 4h
    • Tests for session creation flow 4h
  • โ€บ Payment portal page 16h
    • Portal /pay/{sessionId} with plan display 6h
    • FIUU redirect form builder 6h
    • Success and failure result pages 4h
  • โ€บ FIUU hosted payment redirect flow 16h
    • FiuuPaymentService: vcode generation 4h
    • FiuuHashValidator: skey constant-time verification 4h
    • Webhook controller (return, notify, callback) 4h
    • Unit tests for hash generation and verification 4h
  • โ€บ Payment recording and subscription activation 16h
    • ProcessPaymentResult โ€” idempotent handler 6h
    • Subscription activation on success 4h
    • Audit log entry creation 2h
    • Tests for payment processing logic 4h
  • โ€บ Local integration tooling 8h
    • Ngrok/tunnel setup for FIUU webhooks 4h
    • Manual test script for E2E payment flow 4h
Pilot app can create and complete a payment8 tasks ยท 26 subtasks ยท 132h
Phase 2
Subscription Operations
2-3 weeks
  • โ€บ Subscription lifecycle handling 24h
    • Subscription state machine service 6h
    • Period renewal and expiration logic 6h
    • Cancellation flow with access-until 6h
    • Tests for state transitions and edge cases 6h
  • โ€บ Subscription status API 8h
    • GET /subscriptions/check endpoint 4h
    • Tests and edge case validation 4h
  • โ€บ Card token flow and storage 16h
    • Token extraction from webhook and encrypted storage 6h
    • FiuuTokenService: GET/DELETE operations 6h
    • Tests for token flow 4h
  • โ€บ Admin dashboard MVP 16h
    • Admin layout, auth-protected shell, sidebar 6h
    • Dashboard overview page with stats cards 6h
    • Admin API endpoints for dashboard data 4h
  • โ€บ Apps and plans management pages 12h
    • Apps list and create/edit form pages 6h
    • Plans management page per app 6h
  • โ€บ Subscribers, detail, payment history 20h
    • Subscribers list with filters and search 6h
    • Subscriber detail page 6h
    • Payment history and subscriber-scoped view 4h
    • Admin API for subscribers and payments 4h
  • โ€บ Cancel, retry, and refund operations 12h
    • Admin cancel and retry-charge actions 4h
    • Refund flow via FIUU API 4h
    • Tests for admin actions 4h
Staff can operate subscriptions with confidence7 tasks ยท 19 subtasks ยท 108h
Phase 3
Recurring Billing & Hardening
2-4 weeks
  • โ€บ Auto-charge worker and retry strategy 36h
    • AutoChargeWorker background service 8h
    • FIUU recurring charge using stored tokens 8h
    • Retry logic with progressive delays 8h
    • Failure handling and max-retry expiration 4h
    • Tests for auto-charge scenarios 8h
  • โ€บ FIUU recurring token flow or fallback 20h
    • Confirm FIUU recurring API in sandbox 8h
    • Implement confirmed token charge flow 8h
    • Fallback: manual renewal flow 4h
  • โ€บ Redis locks and idempotency guardrails 16h
    • Distributed lock service using Redis 6h
    • Idempotency middleware for webhooks and charges 6h
    • Tests for concurrency and deduplication 4h
  • โ€บ Grace period, expiration, and reminders 16h
    • Grace period and expiration worker 6h
    • Reminder notification service (placeholder) 6h
    • Tests for transitions and reminders 4h
  • โ€บ Security hardening 20h
    • Rate limiting on public and webhook endpoints 4h
    • Input validation hardening and sanitization 4h
    • Auth review and CORS/CSP configuration 4h
    • Secrets management and encrypted storage audit 4h
    • Security tests 4h
  • โ€บ Edge-case testing, deploy readiness, QA 40h
    • Duplicate webhooks, out-of-order callbacks 8h
    • Pending payment resolution and timeouts 4h
    • End-to-end integration test suite 8h
    • API documentation (OpenAPI / Swagger) 4h
    • Operational runbook and deployment docs 4h
    • Bug fixing and QA buffer 8h
    • Production deployment configuration 4h
Recurring billing without double-charge risk6 tasks ยท 21 subtasks ยท 148h
Planning note
FIUU recurring and tokenization uncertainty is the main schedule variable. If those behaviors are delayed or differ in sandbox, the recommended plan should absorb an additional 1-3 weeks or ship manual renewal first while recurring stays behind a controlled release gate.
Recommended total: 388h ~9.7 weeks at 40h/week

How Long Will the MVP Take?

In simple terms: this is not just a payment page. We are building the billing engine, the safety checks, and the admin view needed to run subscriptions without charging people incorrectly.

Fastest Case
6-8 weeks
Possible if FIUU setup is smooth, scope stays tight, and we focus on the core MVP only.
Safer Commitment
10-12 weeks
Allows more room for FIUU unknowns, bug fixing, user testing, and go-live hardening.
Why It Takes This Long
Payment flows must be correct
We need to make sure users are charged properly, not twice, and only when they should be.
FIUU integration needs real validation
The gateway behavior, token storage, and recurring billing flow must be confirmed in sandbox.
Subscriptions have edge cases
Failed renewals, retries, pending payments, and expired access all need clear handling.
Testing matters more than the UI
The screens are faster to build. The real work is proving the billing logic is reliable.
Manager Takeaway
If we want a number to use for planning, 8 to 10 weeks is the most defensible estimate for an AI-assisted MVP.
What AI Speeds Up
  • Dashboard pages and CRUD screens
  • Forms, tables, and boilerplate code
  • API wiring, DTOs, and documentation
What Still Needs Careful Engineering
  • Webhook handling and payment verification
  • Recurring billing and retry logic
  • Security, audit trail, and failure testing
Fastest Business-Friendly Rollout
Phase A: collect payments and activate subscriptions
Phase B: add auto-renewals, retries, and hardening

Open Questions

Items that need resolution before or during implementation.

#QuestionWhoPriority
1 FIUU merchant account โ€” Do we have sandbox + production credentials? Biz + FIUU BLOCKER
2 MIT support โ€” Confirm FIUU supports merchant-initiated transactions with stored tokens in PH FIUU Tech BLOCKER
3 Token flow โ€” Does FIUU auto-tokenize on hosted page (token_status=1)? FIUU Tech HIGH
4 Auto-charge API โ€” Which FIUU endpoint for recurring charges with stored token? FIUU Tech HIGH
5 E-wallet recurring โ€” Can GCash/Maya be auto-charged? Or only cards? FIUU Tech MEDIUM
6 Pricing โ€” What amounts will each Netzon app charge subscribers? Product MEDIUM
7 Pilot app โ€” Which Netzon app goes first for integration? Management MEDIUM
Let's Build NetzonPay
A unified payment platform serving all Netzon apps with Netflix-style auto-charging.
1๏ธโƒฃ
Resolve Blockers
Get FIUU sandbox credentials and confirm MIT support
2๏ธโƒฃ
Start Phase 1
Start core payment foundation: sessions, portal flow, FIUU sandbox, subscription activation
3๏ธโƒฃ
Pick Pilot App
Select first Netzon app for integration testing
Questions?
NetzonPay MVP • April 2026 • Recommended delivery: 8-10 weeks
โ†โ†’ navigate