Screen pack · back office

What happens after the agent hits submit

Four parties touch every job: the agent, the system, your staff, and LHDN. The system does a lot, but it never touches LHDN. That handover is the whole shape of the product.

Agent, in their browser Your platform, automatic Staff, by hand LHDN, outside your system

Submission Agent

A1 Fills the form Rent, tenure, copies, agreement date, tenancy start. Agent name, email, phone. → form data
A2 Sees the fee calculated Duty, duplicate copies, late penalty, service fee, total. Recalculated on the server, never trusted from the browser. → quoted total
A3 Uploads documents Signed tenancy agreement. Passport if a party is foreign. Business owner NRIC if a party is a sole proprietor. → files, quarantined
A4 Pays Redirected to the gateway, pays by FPX or card, returns to the site. → payment attempt

Intake Platform, automatic

S1 Validates and recalculates Re-runs the duty sum server side against the current rate table. Stores which rates were used, so an old job can still be explained a year later. → rate snapshot saved
S2 Scans and stores files Type and size checked, virus scanned, written outside the web root. Never a guessable public URL. → secure document vault
S3 Confirms payment Waits for the signed callback from the gateway, not for the browser to come back. Handles the same callback arriving twice. → status: Paid
S4 Issues a reference and notifies Reference number emailed to the agent, job dropped into the staff queue, SLA clock starts. → TS-2609-0142
Failure path. Money leaves the agent's bank but the callback never arrives. The job would be invisible to staff and the agent would be furious. Handled by a reconciliation screen that lists gateway transactions with no matching application.

Processing Staff, by hand

P1 Picks the oldest job Queue is sorted by SLA age, not by date submitted, so the job closest to costing a refund is always at the top. Work queue
P2 Opens the agreement and checks it Reads the real rent, term and signature date off the uploaded document, and compares them to what the agent declared. Application
P3 Corrects the duty if it is wrong If the agent understated the rent, the real duty is higher than what was charged. Staff correct it and request the difference. Duty check & top up
P4 Exports the batch Selects every verified job and generates one XML file covering all of them. LHDN batch

Filing LHDN, outside your system

L1 Staff log into MyTax Company TIN, password, MFA. A person in a browser. There is no API and your platform never sees this. → manual
L2 Bulk upload the XML e-Duti Setem, Senarai, Permohonan Berkelompok. One file covering many instruments, validated on screen. → manual
L3 Pay the duty Self assessed and paid in one go for the whole batch. → manual
L4 Download the certificates Stamped documents come back, then get uploaded into the portal against each job. → back into the system

Release Platform, automatic

R1 Marks the job complete Stamped certificate attached, SLA clock stopped, audit trail closed. → status: Completed
R2 Releases the document Agent gets an expiring download link, not a permanent public file. → signed URL
R3 Updates the tracking page Reference number now shows Completed, so the agent stops phoning to ask. → public status

The one thing to keep straight. Lane 4 is red because it is not your software. Your platform prepares the work perfectly and hands it to a person, who does the filing on a government website. Everything else here is buildable. That handover is not.

The screens

Five back office screens

Each page shows one screen with every function numbered and explained underneath.

Screen 01 Work queue The list staff live in all day. Sorted by how close each job is to breaching the SLA, with the money visible. Tier B onward Screen 02 Application detail One job opened: declared data, documents, duty breakdown, payment record, audit trail, and the actions staff can take. All tiers, in some form Screen 03 Duty check and top up What staff do when the agreement says something different to what the agent typed, and the duty comes out higher than what was charged. Tier B onward Screen 04 LHDN batch export Select the verified jobs, generate one XML file, upload it to e-Duti Setem once instead of filing fifty times. Tier B onward, schema pending Screen 05 Duty rate settings The tax schedule as editable configuration, so the next time the law changes it is a form edit, not a redeploy. Tier B onward

Read this as a question, not a proposal. Every screen here is inferred from the reference site, because the client's own functional spec has not been shared yet. The fastest way to find out what they actually want is to show them these and watch which parts they argue with.