Add independent payment-service (port 8012, payment_db) with foundation licensing, BYO-PSP, merchant accounts, idempotent requests, callbacks, and immutable ledger. Co-authored-by: Cursor <cursoragent@cursor.com>
1.7 KiB
Phase 14.9 — Reconciliation & Accounting Integration
| Field | Value |
|---|---|
| Identifier | payment-14.9 |
| Implementation Priority | LATER |
| Status | Planned |
| Service | payment |
| Depends On | payment-14.5, Accounting contract |
Full specification: payment-roadmap.md
Purpose
Reconcile PSP settlements with payment ledger; emit Accounting posting intents via API/events only.
Business Scope
Settlement file import refs; exception handling; daily reconciliation shells.
Technical Scope
ReconciliationRun, ReconciliationException, AccountingPostingIntent. AccountingClient mock.
Dependencies
payment-14.5, optional payment-14.7, Accounting
Out of Scope
Tax/e-invoice; automatic bank feeds.
Capabilities
payment.reconciliation, payment.accounting_integration
Permissions
payment.reconciliation.view|run|manage, payment.accounting_intents.view
Events
payment.reconciliation.started|completed, payment.reconciliation.exception.created, payment.accounting_intent.created
API Contracts
POST reconciliation-runs; GET exceptions; GET accounting-posting-intents
Data Ownership
Payment owns reconciliation; Accounting owns vouchers.
Provider Ownership
PSP settlement files via adapter or upload ref.
Integration Rules
Idempotent posting intents; no JournalEntry in Payment.
Quality Gates
Intent idempotency, no local journal tables.
Definition of Done
Reconciliation run + accounting intent event; Accounting unchanged.
Future Compatibility
Multi-PSP consolidated reconciliation; FX adjustment intents.