Skip to main content

Requirements and traceability register

Status: Draft baseline. Priority P0 = essential for regulated pilot, P1 = useful for MVP operations, P2 = later. 'Proposed' does not mean legally approved or implemented.

IDRequirementPriorityStoryScreen / interfaceCore entitiesVerification
FR-001Merchant verification and activation gatesP0US-001M08, A02Merchant, MerchantVerificationKYB state tests
FR-002Merchant-scoped auth and permissionsP0US-012All merchant screens/APIMerchantUser, AuditEventCross-tenant negative tests
FR-003Secure consumer-to-merchant linkingP0US-002C01ConsumerMerchantLinkExpired/replayed invite tests
FR-004Versioned merchant-specific mandateP0US-002/008C03/C07PaymentMandate, ConsentEvidenceRevocation and evidence tests
FR-005Tokenised payment methodsP0US-002C04/C05PaymentMethod, PaymentPreferencePCI boundary tests
FR-006Idempotent bill ingestionP0US-003M03, POST /v1/billsBill, BillVersion, IdempotencyKeyDuplicate/concurrency tests
FR-007Durable collection schedulingP0US-004M03/C02Bill, Job, OutboxEventTimezone/restart tests
FR-008Authorised fallback and retry policyP0US-005M04/C05PaymentAttempt, PaymentMandateHard/soft decline tests
FR-009Unknown provider outcome reconciliationP0US-010A03PaymentAttempt, ProviderWebhookTimeout/replay tests
FR-010Immutable balanced ledgerP0US-004/007A04LedgerTransaction, LedgerEntryZero-sum/duplicate tests
FR-011Settlement and bank reconciliationP0US-007/011A04SettlementRecord, ReconciliationRecordStatement variance tests
FR-012Eligible full-value merchant payoutP0US-007M05/A05Payout, PayoutAllocationDouble allocation tests
FR-013Refunds, disputes and reversalsP0US-009A06Refund, Dispute, LedgerTransactionPost-payout reversal tests
FR-014Merchant webhooks with signed deliveryP0US-003/004/006M07OutboxEvent, WebhookDeliveryReplay and ordering tests
FR-015Transactional customer notificationsP0US-004/006/008C08Notification, OutboxEventDelivery retry tests
FR-016Audit trail for privileged operationsP0US-001/009A07AuditEventApproval/audit tests
FR-017Separate merchant fee assessment/invoiceP0US-007M06FeeAssessment, MerchantInvoiceNo payout netting tests
FR-018Operational exception queuesP0US-009/010/011A01/A03/A04RiskCase, ReconciliationRecordOwnership and aging tests
FR-019Consumer self-service historyP1US-004/006C02/C06Bill, CollectionUX and status tests
FR-020Merchant exports and statementsP1US-007M03/M05PayoutAllocationExport access tests
FR-021Merchant sandbox and test webhooksP1US-001M07ApiCredential, WebhookEndpointCertification tests
FR-022Advanced multi-partner routingP2—AdminProviderConfigurationFuture design
FR-023Stored-value consumer walletP2—ConsumerFutureExplicitly deferred

Non-functional requirements​

IDRequirementTarget / gate
NFR-001No duplicate financial instruction on retryMandatory correctness invariant
NFR-002Every posted journal balanced per currencyDatabase-enforced/tested invariant
NFR-003Sensitive payment data stays with providerPCI scope validated before launch
NFR-004Merchant data isolationAutomated negative tests for every API
NFR-005Provider webhook replay safetyDuplicate and out-of-order test suite
NFR-006Disaster recoveryRPO/RTO agreed before pilot; restore drills
NFR-007Reconciliation completenessDaily partner/bank reconciliation and aging alerts
NFR-008Privileged accessMFA, least privilege and audit
NFR-009AccessibilityTarget WCAG 2.2 AA; test key flows
NFR-010Availability and latencyDefine SLOs after provider capabilities and pilot sizing
NFR-011Security operationsVulnerability management, incident plan, penetration test
NFR-012Data lifecycleRetention, privacy rights and legal holds approved

Change control​

New requirements receive a stable ID, owner, rationale, priority, source, dependencies, acceptance criteria and status. Changes affecting financial or legal semantics require review by product, finance, engineering and specialist advisers. Link GitHub Issues to the relevant requirement ID. Do not silently mark proposed items approved.