An official developer portal of the Government of the Republic of Zambia ยท Test environmentVerify a certificate
Pamodzi Developer HubBuild, integrate and learn the e-Services framework

Output documents and capabilities

A service usually ends with something issued: a licence, a permit, a certificate or a letter. This lesson covers how you design those documents, how they are sealed and verified, and how capabilities and modules extend what a service can do without new code.

Output document templates

Open Output documents. Each row is a scenario with a Word template:

  • Scenario name: for example "Licence", "Approval letter" or "Rejection letter".
  • Template file (.docx): a Word document laid out as the issued document should look.

A Generate Output Document step in the process issues the scenario it names. Add one step per document the service issues; a rejection letter, for example, belongs on the refusal path.

Placeholders

The template marks where values go:

You writeYou get
${business_name}The answer to the form field with that key
${SubmittedDate:d MMMM yyyy}A date in that format, in Lusaka time
${QRCode:width=60}A picture, such as the verification QR code, at that width
${#if previous_permit} ... ${/if}Text kept only when the value is present
${#each Fees} ... ${/each}A row or paragraph repeated for each item of a list

Besides the form answers, the platform supplies standard values such as the case number, dates, the office, fees and conditions. A placeholder with no value prints empty, so check every placeholder against the form keys. Word sometimes splits what you typed across formatting runs; the platform reassembles placeholders, so you can format them freely.

Values the office supplies

Some printed fields are not answered by the applicant: conditions, an inspected area, a value held in another system. An output document can declare where each printed field comes from: a form answer, a platform value, or entered by an officer. The officer enters the last kind on the case window's Certificate particulars tab before the document is issued. Values the case data already holds are never overwritten.

Sealing and verification

Issued documents are converted to PDF and sealed with the platform's electronic seal, with a trusted time-stamp. Each carries a QR code. Anyone can scan it, or open the public verification page, to check that the document is genuine, that it has not been changed by a single byte, and whether it is still valid, suspended or superseded.

The platform never presents a document as sealed when sealing failed, and verification never overstates validity: an expired licence fails the check.

AI-drafted templates

With the AI feature switched on, Generate with AI on the Output documents tab drafts templates (certificate, approval, rejection, acknowledgement, payment notice) from the service and, optionally, the statute. Each is marked "AI-generated - check before use", with the points to check. You can preview, download, regenerate, replace it with your own upload or remove it. Treat it as a first draft: you are responsible for every word that is issued.

Capabilities

A capability says what kind of service it is. Interfaces and the case engine act on the capability rather than on a particular service, so the same behaviour works for every ministry.

Core capabilities:

CapabilityMeaning
goods-saleGoods are sold and collected; there is no decision
no-decisionThe case completes without an approve or reject decision
account-paymentA payment against an account the citizen already holds; the portal shows what is owed instead of a form
leaseThe case results in a lease agreement
rental-paymentA payment against an existing lease
ati-requestAn Access to Information request, handled in its own workspace
verified-identityApplying needs an NRC verified against the national register and a strong enough sign-in

Modules add capabilities of their own, for example a water permit or a merger notification. A module's capability works only while that module is switched on for the service's ministry. Today a capability is usually recorded on the service by the module's service set-up script, not typed into the editor.

Reusable capabilities before new modules

Before asking for a new module, check whether a generic capability already fits:

  • The shop: any ministry that sells products, through the portal, the counter and POS.
  • The allocation and quota ledger: pools of something countable (hunting quotas, market stalls, event places). A

    second administrator opens or resizes a pool; cases reserve and draw from it, and two applications racing for the last unit are served one after the other.

  • Name reservation: any registry that reserves a name before registering a body under it, with restricted words,

    similar-name checks and expiry.

  • Inspections: the Inspect Site step, inspection templates and field capture on a device.
  • Enforcement cases and the geometry field.

Modules

Ministry-specific functionality (for example forestry concessions or government rentals) lives in a module. A module is off by default. An administrator switches it on per installation and per ministry under System administration โ†’ Modules, and a second administrator approves the change. A module may be available only to the ministries it is for. When a module is off, its screens and routes are gone (404 MODULE_DISABLED), but no money or records are lost and payments already started still finish.

As a designer, you do not write modules. You do need to know which module a service relies on, so that it is switched on for your ministry before the service goes live.

A worked example

For the "Example Vendor Permit":

  • Scenario "Vendor permit": the template prints ${business_name}, the permit number, ${SubmittedDate:d MMMM yyyy},

    the validity, the conditions (entered on Certificate particulars) and ${QRCode:width=60}.

  • Scenario "Refusal letter": issued on the refusal path, with the reason.
  • No module is needed. If the ministry also sold printed maps, the shop's goods-sale capability would cover it.

Check your understanding

  • What does a Generate Output Document step need in order to issue a document?
  • How do you print the answer to the form field business_name in a template?
  • Where does an officer enter printed values the applicant did not supply, and when?
  • What can a member of the public check by scanning an issued document's QR code?
  • What happens to a module's capability when the module is switched off for that ministry?
  • Name three generic capabilities that serve any ministry.

Sign in to record your progress.

Previous: Fees and required documents Next: Versions, publishing and the national portal