Sunday 6 Apr 2026 · 3 branches active · All settlement locked to MFM HQ master account
Change the active fund — all branch terminals update instantly via WebSocket
When the Local Treasurer changes the dropdown, an UPDATE fires on the vestry_sessions table. A WebSocket broadcast instantly updates every connected device at that branch. All subsequent NFC taps are tagged with the new fund — automatically injected into the payment reference and Xero. Zero manual input. Zero human error.
3 pilot branches · Settlement locked to HQ · fn_enforce_settlement_inheritance() active
A PostgreSQL BEFORE INSERT/UPDATE trigger — fn_enforce_settlement_inheritance() — rejects any attempt to assign a bank account not owned by the parent organisation. This directly addresses the Charity Commission finding that MFM branches opened over 100 unauthorised bank accounts.
2-of-3 trustee biometric quorum required · fn_update_quorum() trigger · No payment without quorum
Minimum 2 of 3 registered trustees must approve via WebAuthn biometric before the payment instruction reaches TrueLayer. The quorum counter is maintained by a PostgreSQL AFTER INSERT trigger on the spending_approvals table.
fn_apply_compliance_metadata() · Mutual exclusion enforced server-side · Applied at point of tap
CC17 auto-generated · fn_recompute_annual_return() nightly · Filing deadline: 31 Oct 2026
| Branch | Fund | Category | Income | Gift Aid | GASDS | Txns |
|---|---|---|---|---|---|---|
| London HQ | Tithe | Unrestricted | £98,420 | £24,605 | £1,240 | 1,240 |
| London HQ | Offering | Unrestricted | £34,200 | £8,550 | £680 | 890 |
| London HQ | Building Fund | Restricted | £45,600 | £11,400 | — | 320 |
| Walsall | Tithe | Unrestricted | £52,100 | £13,025 | £890 | 680 |
| Birmingham | Tithe | Unrestricted | £38,200 | £9,550 | £540 | 510 |
Append-only · DELETE + UPDATE revoked for all application roles · Tamper-proof by design
Valley Nest Global Resources · Wholesale trade · West Bromwich · VAT: Standard Rate 20%
Open Banking PISP · Direct bank-to-bank · Reconciliation Hash in every payment reference
Automatic for every inbound payment · fn_compute_vat_position() · 3 UK VAT schemes
Azure Form Recogniser · 85% confidence gate · 6-year HMRC retention lock
Every receipt is locked at the database level with deletion_blocked = true. A PostgreSQL BEFORE DELETE trigger blocks all deletion attempts until the 6-year window expires.
HMRC MTD API · 9 mandatory fraud prevention headers · Idempotent · Quarterly obligations
HMRC mandates 9 specific fraud prevention headers on every MTD API call. Vortex captures and logs all headers automatically.
Batch sync every 15 min · Reconciliation Hash as matching key · Payment never blocked by Xero failure
| Time | Transactions | Hash Range | Xero Invoices | Status |
|---|---|---|---|---|
| 10:45:00 | 18 transactions | RF92X4AB → WX19P7YZ | INV-0041–0058 | ✓ Synced |
| 10:30:00 | 22 transactions | KL83N5QR → MN45T8UV | INV-0019–0040 | ✓ Synced |
| 10:15:00 | 14 transactions | AB12C9DE → FG34H6IJ | INV-0005–0018 | ✓ Synced |
Append-only · HMRC-grade records · MTD fraud prevention headers stored per submission