Appearance
Electronic Invoicing
| Backlog field | Value |
|---|---|
| Story ID | AP-GS-005 |
| Epic | General Settings |
| Story type | Business workflow |
| Review status | Draft - business analyst and business owner review required |
| Source evidence | AppsPortal.Apis controller, application command/query handlers, validators, domain entities, and matching MFE workflow where available |
| Last source review | 2026-07-10 |
User story
As tax administrators, I want to configure ETA/ZATCA connectivity, devices, tokens, and sending options so that eligible invoices can be submitted and tracked.
Acceptance criteria
- Only authorized users can view or execute the feature's actions.
- Required business data, active dependencies, tenant/branch scope, and current document state are validated.
- Invalid requests return actionable validation errors without applying a partial change.
- Search, list, view, print, and export operations use the same authorized business scope.
- Material create, edit, status, approval, posting, reversal, and integration actions are auditable where applicable.
- Financial or stock effects are applied atomically and no more than once.
Business rules
Required
Country authority configuration, credentials/token/device/signature service, taxpayer identity, environment, and enabled document types are required.
Optional or conditional
Sending mode, scheduling, notifications, and optional channels are configurable.
Action behavior
Submit validates eligible posted documents, signs/maps them, sends once, and stores request/response/status/history.
Blocking rule or downstream effect
Failed/rejected submissions do not alter ERP posting and must remain retryable without duplicate authority documents.
Frontend page coverage
The following UI coverage is sourced from the pulled MFE route configuration. A Module-level supporting artifact mapping is evidence of a reachable screen, but requires BA confirmation that it belongs to this story rather than a more specific feature story.
| Route/page | Component | Mode | Route permission/guard | Mapping confidence | Source |
|---|---|---|---|---|---|
| electronic-integration | ZatcaComponent | List/navigation | Permission: AppGeneralSettingsPermissions.ElectronicIntegration_View,; Guards: PolicyAuthGuard | Feature token match | apps/erpHome/src/app/remote-entry/admin/admin-routing.module.ts:95 |
Observed frontend fields and validation
| Component | Control | Observed frontend rule | Component source |
|---|---|---|---|
| ZatcaComponent | activationCode | Required in component validator | apps/erpHome/src/app/remote-entry/admin/pages/zatca/zatca/zatca.component.ts |
| ZatcaComponent | environment | Required in component validator | apps/erpHome/src/app/remote-entry/admin/pages/zatca/zatca/zatca.component.ts |
Observed frontend actions
| Component | Click action/handler | Business review requirement | Component source |
|---|---|---|---|
| ZatcaComponent | deactivateDevice | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/erpHome/src/app/remote-entry/admin/pages/zatca/zatca/zatca.component.ts |
| ZatcaComponent | onConfirm | Document the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler. | apps/erpHome/src/app/remote-entry/admin/pages/zatca/zatca/zatca.component.ts |
Page-specific frontend acceptance criteria
- electronic-integration - List/navigation: Load an authorized paged/searchable list or navigation page; preserve filters/sort/paging and expose only permitted row and bulk actions. Security observed: Permission: AppGeneralSettingsPermissions.ElectronicIntegration_View,; Guards: PolicyAuthGuard