CSP Reseller Billing at VSTECS

Monthly cloud subscription billing for VSTECS and its reseller network. I designed the product, then built the front end in ASP.NET MVC.

Role
Sole Designer and front end build
Users
Resellers who pay, internal ops who collect
Stack
Figma, ASP.NET MVC
Status
In production since 2025

Nobody could see what was overdue.

Outstanding credit sat in aging buckets, but neither resellers nor internal finance teams had visibility into where specific funds belonged. As a result, overdue balances went unnoticed until an internal team member manually chased them.

Tailored Role-Based Workflows

For Resellers

Displays a single account view that pinpoints exact overdue amounts and enables users to select and settle specific invoices on demand.

For Internal Ops

Provides macro-level visibility across every reseller account, sorting by days overdue to shift the team from reactive chasing to prioritised collecting.

Key Product & Architectural Decisions

MFA Authentication

Finance staff share physical workstations. Removing traditional passwords eliminated credential leaks and password-reset support overhead.

FPX Payment Redirects

Offloaded payment processing to FPX redirects instead of capturing card details, keeping the application entirely out of PCI compliance scope.

DRY Code Base

Rendered both Invoices and Activity pages from a single ASP.NET MVC partial view, allowing sorting, filtering, and paging updates to ship across both pages in a single deployment.

The Impact & Results

100%

Self-Serve Visibility

Transformed reactive manual chasing into full transparency across all aging buckets for both resellers and internal ops teams.

0

Password Liability with MFA

Zero stored passwords to leak and zero password-reset support tickets generated across shared workstations by enforcing Email + TOTP MFA.

0

PCI Scope Overhead

Zero cardholder data touches the codebase by leveraging FPX payment redirects.

2-for-1

Front-End Maintenance

1 shared partial view powers 2 core application pages, cutting UI table maintenance in half.