ADR-0006: Simplified invoicing in the core, full accounting as an add-on
The core generates and stores a ZATCA simplified invoice for every payment; full accounting is a Marketplace add-on delivered by an embedded partner first.
ADR-0006: Simplified invoicing in the core, full accounting as an add-on
- Date: 2026-09-18
- Status: Withdrawn — the ZATCA invoicing surface was removed with the vertical (see ADR-0010). The record is kept for history.
- Deciders: the owner, Claude (seed)
- Tags:
domaincompliancerevenue
Context
Every payment in Saudi Arabia must issue a ZATCA-compliant invoice. Full accounting (general ledger, expenses, tax returns) is a separate market with strong competitors.
Decision
The core generates and stores a simplified invoice (QR TLV, XML) for every payment. Full accounting is a Marketplace add-on: an embedded partner first, with an in-house build evaluated after Phase 4 if demand exceeds 30% of merchants.
- ZATCA path (in-house / partner): still open.
Consequences
- Positive — compliance from day one without building accounting; the team stays focused on the wedge.
- Negative — dependence on an accounting partner for margins and user experience.
- Revenue impact (SAR / month, confidence) — the accounting share of R4 ≈ 10,000–15,000 at 1,000 merchants (low confidence).
Rejected alternatives
- Building full accounting in Phase 1: delays the wedge and enters a crowded market.
- No invoicing in the core: violates ZATCA and blocks payments.
References
Withdrawn 2026-09-20. This record describes a surface that is no longer part of the product: the ZATCA invoicing surface was removed with the vertical. ADR-0010 records the decision.
ADR-0005: Modules as packages bound by one contract and unlocked by entitlements
Every module, first-party or third-party, exports a ModuleManifest; the registry is the single source of what loads, tables live only in packages/database, and entitlements gate access.
ADR-0007: Claude Copilot with tenant-scoped tools and no training on merchant data
All AI calls go through packages/ai with a mandatory tenant context and module-provided tools; no training on merchant data; per-plan token quotas; every call logged with its cost in SAR.