Customer document gallery

Every document a Sebenza customer can download or receive, rendered by the same pure functions production uses. Built because a catalogue lists names — it cannot show you that a theme clips a long line item.

17Documents
5Groups

Not renderable offline (listed for completeness): the performance-report PDF (api/hr.ts needs req/res + DB) and the three report builders inlined in Expenses.tsx / PurchaseRequisitions.tsx / ClientDetailDialog.tsx. AI-document bodies are model-generated and cannot be reproduced offline either — but their chrome, DRAFT notice and print envelope are deterministic, so those ARE shown above around a fixed sample body.

01

Invoice — all themes

5

Tax invoice — professional

The professional theme, selectable per document in the invoice dialog.

invoice/professional src/components/invoices/DocumentTemplate.tsx → generateDocumentHTML

Tax invoice — modern

The modern theme, selectable per document in the invoice dialog.

invoice/modern src/components/invoices/DocumentTemplate.tsx → generateDocumentHTML

Tax invoice — corporate

The corporate theme, selectable per document in the invoice dialog.

invoice/corporate src/components/invoices/DocumentTemplate.tsx → generateDocumentHTML

Tax invoice — creative

The creative theme, selectable per document in the invoice dialog.

invoice/creative src/components/invoices/DocumentTemplate.tsx → generateDocumentHTML

Tax invoice — simple

The simple theme, selectable per document in the invoice dialog.

invoice/simple src/components/invoices/DocumentTemplate.tsx → generateDocumentHTML
02

Other document types

5

Estimate

Sent to a client to quote for work before it is done.

estimate/professional src/components/invoices/DocumentTemplate.tsx → generateDocumentHTML

Credit note

Issued when an invoice is reduced or reversed.

credit_note/professional src/components/invoices/DocumentTemplate.tsx → generateDocumentHTML

Recurring invoice

Auto-generated each cycle from a recurring template.

recurring_invoice/professional src/components/invoices/DocumentTemplate.tsx → generateDocumentHTML

Client statement — full

Complete account history sent to a client on request.

statement_full src/components/invoices/StatementTemplate.tsx → generateStatementHTML

Client statement — historical

Period-bounded statement with an opening balance.

statement_historical src/components/invoices/StatementTemplate.tsx → generateStatementHTML
03

Receipts & orders

2

Payment receipt

Issued to a client when their payment is recorded.

payment_receipt src/components/reports/payment-receipt.ts → buildPaymentReceiptHTML

Purchase order

Sent to a supplier to order stock or services.

purchase_order src/components/reports/purchase-order-template.ts → buildPurchaseOrderHTML
04

Payroll & statutory

4

Payslip

Downloaded or emailed for every employee, every pay run — the highest-volume document Sebenza produces.

payslip api/payslips.ts → renderPayslipHtml (only renderer; clients go via src/lib/payslip-client.ts)

EMP201 — monthly employer declaration

Generated monthly for SARS: PAYE, UIF and SDL totals across all employees.

emp201 api/reports/emp201.ts → renderEmp201Html

IRP5 — employee tax certificate

Issued to each employee at tax-year end for their SARS return.

irp5 api/reports/irp5.ts → renderIrp5Html

Employment contract (BCEA)

Statutory contract draft generated when an employee is onboarded.

employment_contract api/documents/employment-contract.ts → renderEmploymentContractHtml
05

AI documents

1