Personal Levy
| Form | Workflow | Outputs | E2E test | Docs |
|---|---|---|---|---|
| Passed | Passed | Passed | Passed | Passed |
- End-to-end test
- 3/3 passed 2026-10-21 (mihud, combined)
- Documentation
- 14 steps, 27 images · Download the DOCX
- Who can apply
- Individual, Organization
- Catalogue ID
- 611
Output documents
- GS-1 Application for a Government Service (application)
- GS-2 Notice of Government Action (notice-of-action)
Test evidence
Personal Levy
Service documentation · Republic of Zambia · GSB e-Services
| Owner | Department of Local Government |
| Service key | LGD/personal-levy |
| Version | service v1, platform 7eecca5c |
| Date | 2026-10-21 |
Generated automatically by the service's end-to-end test run. Every screenshot shows synthetic test data on a local test installation, never real personal data.
This document describes the Personal Levy service of Department of Local Government as the platform runs it today. It is generated by the service's end-to-end test: every step below was performed by the test, and every screenshot was taken during that run with synthetic data. Regenerate it with npm run docs:services in the e2e suite; do not edit it by hand.
1. Service summary
| Item | Detail |
|---|---|
| Service | Personal Levy |
| Owner (MDA) | Department of Local Government (LGD) |
| Purpose | Personal Levy is an annual tax imposed on every person aged 18 years and above who resides within the jurisdiction of a local authority and earns an income exceeding K300 per year. |
| Who can apply | Individual; Organization |
| How to apply | Online on the national e-Services portal, signed in with ZamPass; pay with ZamPay. |
| Fees | Personal levy, current year: (table) Personal levy, 1 year back (last year): (table) Late payment penalty (25%), 1 year back (last year): (percentage) Personal levy, 2 years back: (table) Late payment penalty (25%), 2 years back: (percentage) Personal levy, 3 years back: (table) Late payment penalty (25%), 3 years back: (percentage) Personal levy, 4 years back: (table) Late payment penalty (25%), 4 years back: (percentage) Personal levy, 5 years back: (table) Late payment penalty (25%), 5 years back: (percentage) |
| Turnaround | Automated |
| Validity of the output | 1 year |
| Required documents | Applicant/Representative Identity Document (required) - NRC or passport of the applicant or the representative. Applicant/Representative Certificate of Registration (optional) - For an employer paying for its employees: the certificate of incorporation or registration. List of Current Employees (optional) - For an employer: the employees on whom the levy is paid. |
| Output documents | GS-1 Application for a Government Service GS-2 Notice of Government Action |
2. Application process, step by step
The process as configured in the back office:
| Step | Role | Task | Type |
|---|---|---|---|
| 1 | Applicant | Apply | form |
| 2 | System | Generate Document | generate-document |
| 3 | Case Officer | Generate Payment | generate-payment |
| 4 | Applicant | Payment | payment |
| 5 | Case Officer | Decision | decision |
| 6 | System | Notify Client | notify |
Who takes part in this journey: Citizen, Case Officer, Anyone (public).
Step 1. Find the service at the council
Citizen · National e-Services portal
The service is delivered by the local authorities: on the national e-Services portal the citizen opens Councils, chooses their council (Lusaka City Council in this run) and searches its services ("Personal Levy"). The application is then registered with that council and priced with its own fees.

Step 2. Read the service page
Citizen · National e-Services portal
The service page sets out what the service is for, the fee, how long it takes and the documents to have ready, and names the council the application goes to. "Start application" begins an application at Lusaka City Council (the citizen is signed in with ZamPass).

Step 3. Confirm the applicant details
Citizen · National e-Services portal
The applicant details are filled in from the citizen's ZamPass account. The citizen says whom they are applying for (themself) and continues with "Proceed to Application".

Step 4. Fill in the application form
Citizen · National e-Services portal
The citizen answers the service's own application form, converted from the legacy system (2 answers in this run, all synthetic), for the type of application "New". Questions marked * must be answered; some appear only after an earlier answer. Answers are saved as the citizen types, so an unfinished application can be reopened from My Workplace.

Step 5. Upload the supporting documents
Citizen · National e-Services portal
Each document the service asks for has its own upload (3 in this run: Applicant/Representative Identity Document, Applicant/Representative Certificate of Registration, List of Current Employees). The files are checked and stored with the application; the page confirms each upload.

Step 6. Check the answers and confirm the declaration
Citizen · National e-Services portal
Before sending, the citizen sees every answer and document on one page and can go back to change them. The declaration that the information is true and complete must be ticked.

Step 7. Application sent
Citizen · National e-Services portal
The portal confirms the application with the ministry's reference number (LGD-PL/00001/10-21-26 in this run). The fee is due now: it is taken with the application, so the invoice was raised when the application was sent.

Step 8. See that the fee is due
Citizen · National e-Services portal
The application shows "Waiting for your payment" in My Workplace with a Pay button (K30,375.00). The fee is taken with the application; the invoice was raised on ZamPay.

Step 9. Pay with ZamPay
Citizen · National e-Services portal
Pay opens the invoice (K30,375.00, the amount set by the platform, never by the page) with its PDF preview; the citizen pays at ZamPay by mobile money or bank card.

Step 10. Payment received
Citizen · National e-Services portal
ZamPay reports the payment; the dialog says "Paid. Thank you" and the application moves on to the ministry's officers.

Step 11. Take the new application on
Case Officer · Back office
The application arrives in the case queue of the ministry that owns the service (Department of Local Government); only its staff see it. The officer opens it by its reference number - answers, documents and process are on the case - assigns it to themself and takes it on.

Step 12. Decide: Verify Case Eligibility / Compliance
Case Officer · Back office
At "Verify Case Eligibility / Compliance" the Case Officer records the decision: approve, with a comment kept in the case history. Approving moves the case on; the last decision completes it and issues the document.

Step 13. The document in My permits
Citizen · National e-Services portal
The issued document (LGD-PL-2026-00001 in this run: "Personal Levy") is listed in "My permits and licences" with its validity and a download of the sealed PDF.

Step 14. Verify the document
Anyone (public) · Public verification page
The QR code on the document opens the public verification page: genuine and current, to whom it was issued, and whether the electronic seal is valid. No sign-in is needed.

3. Payment
| Item | In the test run |
|---|---|
| Fee (as published) | Personal Levy – 15 ZMW |
| Invoice 1 | 7097462025223539 |
| Amount 1 | ZMW 30375.00 |
| Paid at 1 | with the application |
On screen: step 8 (See that the fee is due), step 9 (Pay with ZamPay), step 10 (Payment received) in section 2.
4. Output documents
Personal Levy (sealed PDF)
Issued when the case was approved, from the service's output configuration (permitDocument/issued@1), filled from the application and the decision, sealed with the platform's electronic seal and stored as the issued version. The holder downloads it from My permits; the verification page checks it.

The issued PDF has 1 page; the image shows the first.
Fields
| Field | Value in the test run |
|---|---|
| Document title | Personal Levy |
| Permit / licence number | LGD-PL-2026-00001 |
| Holder | Chanda Mwila |
| Valid from | 2026-10-21 |
| Valid until | 2027-10-21 |
| Status | active |
| Verification code (printed with a QR code) | 8TXT-H39F-QT |
Seal
| Item | Detail |
|---|---|
| Seal status | sealed |
| Signature level | PAdES-B-T |
| Sealed by | the platform seal (development key in the test run) |
| Signed at | 2026-10-21T11:27:12.353Z |
| Trusted time-stamp | 2026-10-21T11:27:12.948Z (time-stamping authority) |
| Document fingerprint (SHA-256) | 2214b660211b8df3... |
Verification
| Item | Detail |
|---|---|
| Where | The public verification page of the national portal, <portal>/verify/<verification code>, opened by scanning the QR code on the document. |
| What it shows | Whether the document is genuine and current, its holder and validity, and whether the electronic seal is valid and who sealed it. |
| Checking a copy | Anyone can upload a PDF they were given; the page says whether it is exactly the document that was issued. A changed copy is reported as not matching. |
On screen: step 13 (The document in My permits), step 14 (Verify the document) in section 2.
5. Notifications
| When | Channel | To | Message | Delivery |
|---|---|---|---|---|
| Payment due (invoice raised) | in-app (portal bell) | the applicant | Payment due for application LGD-PL/00001/10-21-26 - The fee of ZMW 30375.00 for Personal Levy (LGD-PL/00001/10-21-26) is now due. Invoice 7097462025223539. | shown |
| Application received | in-app (portal bell) | the applicant | Application LGD-PL/00001/10-21-26 received - Your application LGD-PL/00001/10-21-26 for Personal Levy has been received by Department of Local Government. | shown |
| Payment received | in-app (portal bell) | the applicant | Payment received for LGD-PL/00001/10-21-26 - Your payment of ZMW 30375.00 for LGD-PL/00001/10-21-26 (Personal Levy) has been received. Receipt: <ZamPay>/pdf?documentType=receipt&invoiceNumber=7097462025223539 | shown |
| Licence / permit issued | in-app (portal bell) | the applicant | Your Personal Levy document has been issued - LGD-PL-2026-00001 has been issued for Personal Levy and is valid until 21/10/2027. | shown |
| Invitation to rate the service | in-app (portal bell) | the applicant | How was Personal Levy? - How was Personal Levy? Tell us in about a minute. | shown |
| Decision: approved | in-app (portal bell) | the applicant | Application LGD-PL/00001/10-21-26 completed - LGD-PL/00001/10-21-26 (Personal Levy) is complete. Your documents are ready. | shown |
| Payment due (invoice raised) | sms | +260 97* *** 567 | Fee of ZMW 30375.00 due for LGD-PL/00001/10-21-26. Invoice 7097462025223539. Pay: <ZamPay>/pay-for-service/get-invoice/7097462025223539 | delivered |
| Payment due (invoice raised) | e2e.c***@example.test | Payment due for application LGD-PL/00001/10-21-26 | skipped | |
| Application received | sms | +260 97* *** 567 | Application LGD-PL/00001/10-21-26 for Personal Levy has been received. Track it: <portal>/my-workplace | delivered |
| Application received | e2e.c***@example.test | Application LGD-PL/00001/10-21-26 received | skipped | |
| Payment received | sms | +260 97* *** 567 | delivered | |
| Invitation to rate the service | sms | +260 97* *** 567 | skipped | |
| Invitation to rate the service | e2e.c***@example.test | How was Personal Levy? | skipped | |
| Licence / permit issued | sms | +260 97* *** 567 | delivered | |
| Licence / permit issued | e2e.c***@example.test | Your Personal Levy document has been issued | skipped | |
| Decision: approved | sms | +260 97* *** 567 | delivered | |
| Decision: approved | e2e.c***@example.test | Application LGD-PL/00001/10-21-26 completed | skipped |
Delivery: shown = in the portal's notification bell; delivered = the SMS gateway (a test double in this run) reported the text delivered; skipped = not sent on that channel (e-mail is not configured on the test installation, and some notices go out on one channel only); sent by the national portal = a ministry node handed the notice to the national portal, which texts and e-mails the citizen under its own name and the citizen's preferences. Addresses written <portal>, <ZamPay> stand for the national portal and ZamPay.
6. Legacy mapping
| Item | Detail |
|---|---|
| Replaces | Personal Levy in the legacy ZIGS e-Services directory (ZIGS_Services) |
| Legacy service id | 611 |
| Legacy provider | Department of Local Government (LGD) under Ministry of Local Government and Rural Development |
| Legacy process | not recorded |
| Fee in the legacy system | none |
| Fee taken before submission | yes (as in ZIGS) |
| Time to issue (legacy) | not recorded |
| Legacy output templates | none recorded |
| Legacy address | https://ecouncils.gsb.gov.zm |
| How it was brought over | Imported by the platform's legacy catalogue importer (zcm-backend scripts/zigs/importLegacy.js) from the ZIGS snapshot: form, case types, fees, documents, process and output templates, then served by the new platform. |
7. Version and date
| Item | Detail |
|---|---|
| Document version | service v1, platform 7eecca5c |
| Generated | 2026-10-21T11:27:18Z (by the end-to-end run, not edited by hand) |
| Service version | not versioned (configured directly) |
| Platform snapshot | backend 7eecca5c portal 72805f0 back office 58e5946 |
| Test suite | e2e 2f82c10; one installation (combined); seed profile mihud |
| Journeys | 30-catalogue-service.spec.js: citizen finds the service, answers its form, uploads its documents and sends the application - passed 30-catalogue-service.spec.js: the case goes through every step of its process: payments by the citizen, each officer step by its role - passed 30-catalogue-service.spec.js: the grant document is issued, sealed, filled in and verifiable; the citizen has it in My permits - passed |
| Result | 3 of 3 journey tests passed |
| Data | Synthetic test data on a local test installation; provider test doubles for ZamPass, ZamPay, SMS and signing. |