Nigerian Catholic Community Glasgow & Environs

Digital Payment System

Finance Team Handover & Operations Guide
Event: Harvest & Bazaar 2026 — Sunday 2 August 2026
Website: nccglasgow.org.uk
Version: 1.8 (open top-up amounts)  |  Date: 6 July 2026
Verified: 31/31 E2E checks passed on production
Classification: Internal — Finance & Operations
Confidential — Finance Committee

Table of Contents

  1. Executive Summary
  2. Revenue Streams at a Glance
  3. QR Wallet System
  4. Customer Payment Journeys
  5. Vendor Operations
  6. Staff QR Redemption Portal
  7. Donations & Gift Aid
  8. Admin & Finance Controls
  9. Reconciliation Procedures
  10. Safeguards & Audit Trail
  11. Day-of-Event Playbook
  12. End-of-Day Checklist
  13. Troubleshooting & FAQ
  14. Appendices

1. Executive Summary

NCCGE has implemented a digital payment layer for Harvest & Bazaar 2026. Community members pay online or at an admin desk, receive a QR wallet voucher for the amount paid, and spend that credit at vendor stalls. All online card payments are processed by Stripe, a regulated payment service provider.

Key points for finance:
Diagram of full payment journey from customer payment to finance monitoring
Figure 1 — End-to-end process. Customer pays → QR wallet issued → vendor Quick Sale at stall → finance monitors in Admin Reconciliation.

2. Revenue Streams at a Glance

Finance must treat these as separate streams for reporting.

StreamPagePaymentCreates QR wallet?
Harvest / Bazaar catalogueharvest.htmlStripe CheckoutYes
Flexible wallet top-up (new)harvest.html → New top-upStripe CheckoutYes (new voucher)
Top up existing walletharvest.html → Top up existingStripe Checkout (from £1)No — adds to same voucher
Pay from existing walletharvest.html → Checkout → Pay with my QR walletNo new money — deducts existing balanceNo — spends same voucher; items become pre-paid
On-site manual collectionadmin.html → Wallet Top-UpCash / POS / transferYes (or top-up existing)
Virtual load (pending payment)admin.html → Wallet Top-UpPending until confirmedYes — share QR now; spending blocked until confirmed
Donationsdonate.htmlStripe cardNo
Brochure advertsbrochure-booking.htmlStripeNo
Important: Do not mix donation or brochure income with QR wallet figures. Gift Aid reporting comes from the Donations tab only.

3. QR Wallet System

3.1 What is a QR wallet?

A QR wallet is prepaid event credit for Harvest & Bazaar spending. It is identified by a unique secure token (UUID). It is not a bank account or regulated e-money product.

3.2 Money IN — wallet creation & top-up

TriggerProcess
Online Stripe — new walletCustomer pays → Stripe confirms → webhook creates wallet with paymentStatus: confirmed
Online Stripe — top up existingCustomer enters voucher code on harvest.html (from £1) → Stripe confirms → webhook adds to same wallet; QR unchanged
Admin — payment receivedStaff records cash/POS/transfer → Generate QR → wallet active immediately
Admin — virtual loadStaff issues QR for customer who cannot self-serve → share via email/WhatsApp → Confirm payment received when money collected or bank transfer verified
Admin — top up existingPaste customer voucher code → add any amount (from £1) → confirmed or virtual pending
Virtual load rule: Pending wallets show balance but cannot be spent at vendor stalls until an admin clicks Confirm payment received. This prevents abuse if QR is shared before payment.

3.3 Money OUT — two paths

Wallet credit leaves the system in two ways. Both are logged and appear in Reconciliation.

PathWhereWhat happens
A. Stall redemptionvendor.html Quick Sale (or redeem.html)Vendor scans QR, taps item → balance deducted immediately
B. Online wallet checkoutharvest.html cart → Pay with my QR walletBalance deducted online; items recorded as pre-paid on the wallet; collected at stall later with no second deduction

Path A — redemption at stalls (Quick Sale)

CUSTOMER SHOWS QR ↓ VENDOR SCANS (camera or manual look-up) ↓ NAME + BALANCE APPEAR ON SCREEN ↓ VENDOR TAPS ITEM TILE (one action = redeem) ↓ SYSTEM VALIDATES PRICE & BALANCE → DEDUCTS → LOGS ↓ NEXT CUSTOMER (or auto-clear if balance = £0)
Vendor Quick Sale screen
Figure 2 — Vendor Quick Sale. Scan QR → tap catalogue item tile. Advanced panel available for manual entry.

Path B — pay from existing wallet at checkout (July 2026)

CUSTOMER ADDS ITEMS TO CART (e.g. Thanksgiving offering) ↓ CHECKOUT → SELECTS “PAY WITH MY QR WALLET” ↓ ENTERS VOUCHER CODE (or uploads / scans QR) → CHECK BALANCE ↓ SYSTEM VALIDATES PRICES & BALANCE → DEDUCTS ONLINE → EMAILS CONFIRMATION ↓ ITEMS SAVED AS PRE-PAID ON THE WALLET ↓ EVENT DAY: VENDOR SCANS SAME QR → “PRE-PAID ITEMS” LIST SHOWN ↓ VENDOR TAPS ITEM → FULFILLED — NO SECOND CHARGE (works even at £0 balance)
Harvest checkout with Pay with my QR wallet selected
Figure 2a — Wallet checkout. Cart checkout with Pay with my QR wallet: voucher lookup, balance check, and pay button. No Stripe involved — balance is deducted from the existing voucher.
Vendor scan showing pre-paid items list
Figure 2b — Pre-paid fulfillment at the stall. After scanning, the vendor sees a green Pre-paid items list. Tapping the matching tile hands over the item with £0 deducted — even when the wallet balance is £0.
Finance note: A wallet checkout moves credit from Outstanding to Redeemed at the moment of online payment — the stall fulfillment later is a £0 logistics event (action fulfill_prepaid), not a second revenue movement. Never count both.

3.4 Wallet data stored

FieldMeaning
tokenUnique voucher code (UUID)
amountTotalOriginal amount loaded
amountRemainingCurrent spendable balance
paymentStatusconfirmed (spendable) or pending (virtual issue — blocked at stalls)
statusactive → used (when balance = 0 and no unfulfilled pre-paid items remain)
transactions[]Redemptions, top-ups, online purchases, and pre-paid fulfillments (types topup, redemption, purchase, fulfillment)
purchases[]Items paid online from wallet credit, each flagged fulfilled: false until collected at the stall

Customers receive both a QR code and a voucher code (UUID) on the payment success page and by email. The voucher code is used at nccglasgow.org.uk/voucher.html to check balance.

Customer voucher balance check page
Figure 3 — voucher.html. Customer self-service balance check using voucher code.

4. Customer Payment Journeys

Harvest and Bazaar page
Figure 4 — harvest.html. Main entry point for catalogue purchases and Load Wallet.

4.1 Online before the event (recommended)

  1. Visit Harvest & Bazaar page (harvest.html)
  2. Add catalogue items to cart or open Load Wallet modal
  3. New top-up tab: any amount from £1 — creates new QR + voucher code
  4. Top up existing tab: paste voucher code, add any amount from £1 — same QR and code after payment
  5. Pay via Stripe Checkout (secure hosted page)
  6. Receive QR and labelled voucher code on payment success page + email
  7. On event day: show QR at stall; vendor scans and taps item (Quick Sale)
Harvest cart bar
Figure 5a — Cart & checkout on harvest.html
Load Wallet section
Figure 5b — Load Wallet modal with New top-up and Top up existing tabs
Harvest item catalogue
Figure 6 — Catalogue. Food, Fashion, Crafts, Thanksgiving items with server-validated prices.

4.2 Pay for catalogue items from an existing wallet (July 2026)

Customers who already hold wallet credit — for example after loading £50 — can buy catalogue items (including Thanksgiving offerings) without a second card payment:

  1. Add items to cart on harvest.html as normal
  2. At checkout, switch the payment tab to Pay with my QR wallet
  3. Enter voucher code — or Upload QR image / Scan with camera — then Check balance
  4. Screen shows balance vs cart total; the pay button is disabled if balance is insufficient or payment is pending
  5. Tap Pay £X from wallet — balance is deducted instantly, confirmation email sent
  6. Items are stored as pre-paid; on event day the vendor scans the same QR and fulfills them at £0
Thanksgiving: the checkout shows a reminder — “Your Thanksgiving offering is paid from wallet credit. Show the same QR at the Thanksgiving desk on 2 August 2026.” The voucher balance page also lists Pre-paid — collect at event items so customers can see what is waiting for them.

4.3 Top up an existing wallet (customer self-service)

  1. Customer opens harvest.htmlLoad Wallet → tab Top up existing
  2. Paste voucher code (from email or voucher.html) → Check voucher
  3. Enter name, email, amount (minimum £1)
  4. Pay on Stripe — balance increases on the same voucher; no new QR needed
  5. Confirm on voucher.html — top-ups appear in history with green + amounts

4.4 Cash / POS / bank transfer on the day

  1. Customer pays at admin desk only (not at stalls)
  2. Admin: Wallet Top-Up tab (or Reconciliation → Open Wallet Top-Up)
  3. Choose Issue type: New wallet or Top up existing voucher
  4. Choose Payment mode: Payment received or Virtual load (pending)
  5. Enter name, amount, payment method (if payment received)
  6. Generate — show QR and voucher code; use Copy, Email, or WhatsApp to share with customer
  7. If virtual: click Confirm payment received when cash collected or bank transfer verified (Super Admin reviews bank proofs during reconciliation)
When to use virtual load: Customer wants a QR but cannot use the website (elderly, no card, language barrier). Finance issues QR immediately so they can join the queue; payment is collected separately and confirmed before spending is allowed.
Critical rule (payment received mode): No spendable QR without recorded payment. Virtual mode is the only exception — and spending remains blocked until confirmation.
Admin portal login
Figure 7 — admin.html login. Finance and admin desk staff sign in here.
Collect Payment and Issue QR form
Figure 8 — Wallet Top-Up tab. Dedicated admin desk view for new/top-up wallets, payment received or virtual load, share QR, confirm payment when due. Also reachable from Reconciliation.

5. Vendor Operations (Quick Sale)

Portal: nccglasgow.org.uk/vendor.html  |  Stall guide: NCCGE-Vendor-Stall-Guide.html

Quick Sale (June 2026): Scan customer QR with camera → tap catalogue item tile → done. Replaces the old Verify-then-Redeem flow for queue speed. Advanced panel retains manual entry and verify-only.

5.1 Standard sale procedure

#ActionSystem
1Sign in → Quick Sale tabCamera starts; set My stall sells
2Scan customer QRvendor-validate-qr — name + balance shown; Pre-paid items listed in green if the customer paid online
3Tap item tileredeem-qr — price from catalogue (server-validated). If the item is pre-paid, it is fulfilled at £0 instead of deducted
4Give goods → Next customerBalance refreshed; auto-clear if £0 and nothing pre-paid remains
Pre-paid customers (July 2026): A wallet can scan successfully with a £0 balance when it carries unfulfilled pre-paid items. The tile shows a green Pre-paid badge — tap it to hand over the item without charging. Do not turn these customers away because the balance reads £0.
Vendor portal login
Figure 9 — vendor.html login. Each stall operator uses credentials from Super Admin.

5.2 Screen elements

ElementDetail
Stall filterfood / fashion / craft / thanksgiving / all — saved per device
Camerahtml5-qrcode; accepts UUID, voucher URL, redeem URL
Pre-paid items listGreen box after scan showing items paid online but not yet collected
Item tilesDisabled (grey) if balance < price — unless pre-paid (green badge, always tappable)
AdvancedManual look-up, verify-only panel, manual redeem, catalogue dropdown

5.3 Audit trail

ActionLogged amountTables
Scan / look up£0 (display only in Quick Sale)vendor_redemptions (validate), audit_logs
Tap tile / RedeemItem pricevendor_redemptions (redeem), audit_logs
Online wallet checkoutCart total (deducted online)vendor_redemptions (wallet_catalog_purchase), audit_logs
Tap pre-paid tile / Fulfill£0 — already paid onlinevendor_redemptions (fulfill_prepaid), audit_logs

5.4 Error messages

MessageCause
Insufficient balanceWallet < item price (does not apply to pre-paid items — those always fulfill)
Invalid walletBad token, or wallet fully used with no pre-paid items left
Scan customer QR firstRedeem before scan
Wallet not active / payment pendingVirtual load not yet confirmed — send to admin desk

5.5 Vendor rules

Do

Do not

Finance monitors: Admin → Vendor Operations; Reconciliation → filter QR redemptions / validations.

5.6 Staff QR Redemption Portal

Portal: nccglasgow.org.uk/redeem.html  |  Use when: Admin desk redeems on behalf of a customer (disputes, no vendor device, overflow queue)

Camera scan (July 2026): Staff sign in → Turn on camera → scan customer QR → wallet details appear → redeem items manually. Manual token paste is still available if the camera is unavailable.
#ActionSystem
1Sign in with admin credentialsSame admin account as admin.html
2Turn on camera or paste voucher tokenhtml5-qrcode; accepts UUID, voucher URL, redeem URL
3Validate QR Walletvalidate-qr — name, balance, status shown
4Select catalogue item and redeemredeem-qr — server-validated price and balance check
Pending virtual wallets: Staff redemption is blocked until finance clicks Confirm payment received on the Wallet Top-Up tab — same rule as vendor stalls.

6. Donations & Gift Aid

Donations are processed through donate.html — completely separate from QR wallets.

Donations page
Figure 10 — donate.html. Separate from QR wallets; Gift Aid optional. Card shows as NCC DONATION.
FeatureDetail
PaymentStripe card on donate page
FrequenciesOne-off, monthly, quarterly, yearly
Gift AidOptional; 25% top-up calculated and stored
Card statementNCC DONATION
ReportingAdmin → Donations tab → Export CSV

7. Admin & Finance Controls

Admin portal: nccglasgow.org.uk/admin.html

Tab / ToolPurpose
Wallet Top-UpDedicated desk view — manual wallet loading, virtual load, share QR/email/WhatsApp, confirm payment
ReconciliationGross Loaded, Redeemed, Outstanding, live transaction log, Export transaction log CSV, Export donations CSV, shortcut to Wallet Top-Up
Members / Contacts / ThanksgivingView submissions, Approve / Reject pending records, Export CSV (admin role and above)
DonationsGift Aid list, search, CSV export
BrochuresView bookings and Export CSV
QR Wallets (qr-admin.html)Search any wallet; view balance and history
Vendor OperationsMonitor vendor activity
Admin Reconciliation dashboard
Figure 11 — Reconciliation tab. Transaction log, Export CSV buttons, summary cards (Gross Loaded, Redeemed, Outstanding, Wallets Issued).
QR Admin wallet lookup
Figure 12 — qr-admin.html. Look up any customer wallet, balance, and redemption history.

7.1 Manual wallet loading fields

FieldRequiredNotes
Issue typeYesNew wallet or Top up existing
Payment modeYesPayment received or Virtual load (pending)
Customer nameYes
Amount (£)YesMin £1 (new wallet or top-up)
Existing voucher codeIf top-upUUID from customer email or voucher.html
Payment methodIf payment receivedCash, POS, or bank transfer
Email / phoneNoRecommended for Email / WhatsApp share

7.2 Registration & contact approval workflow

Membership registrations, Contact Us messages, and Thanksgiving registrations are stored with status pending until reviewed. The submitter sees a success message immediately; only approved records are treated as authorised community data.

FormUser seesAdmin action
Membership (register.html)“Submitted successfully — team will review”Members tab → Approve or Reject
Contact Us (contact.html)“Message received — team will respond after approval”Contacts tab → Approve or Reject
Thanksgiving (thanksgiving.html)“Registration received — coordinators will confirm”Thanksgiving tab → Approve or Reject
Fraud control: Duplicate submissions from the same email within 5 minutes are blocked. Legacy duplicate records were deduplicated automatically. Rejected records remain in the database for audit but are clearly marked.

8. Reconciliation Procedures

8.1 Dashboard metrics

MetricDefinition
Gross Revenue (Loaded)Total value of all QR wallets issued
Total RedeemedSum of amounts deducted at vendor stalls plus online wallet checkouts
Outstanding BalancePrepaid credit not yet spent (not lost revenue)
Wallets issuedCount of QR vouchers created
Wallet checkout in the log: Online wallet purchases appear in the transaction log under Harvest / bazaar purchases (label “Wallet Catalog Purchase”). The later stall handover appears as a £0 Pre-paid Fulfillment under QR redemptions. Only the first entry moves money.

8.2 Transaction log exports

On the Reconciliation tab, finance staff can export:

Available to admin and manager roles. Vendors cannot access these exports.

8.3 Matching to bank / Stripe

SourceVerify in
Online card paymentsStripe Dashboard → Payments & Payouts
Cash desk loadsadmin_cash_collections log vs physical till
Donations (Gift Aid)Donations CSV vs Stripe
RedemptionsReconciliation tab (internal, not bank deposits)
Executive decision required: Agree policy for unspent wallet balance after the event (refund, carry forward, or donation with consent).

9. Safeguards & Audit Trail

SafeguardWhat it prevents
Server-side price validationCustomers changing catalogue prices
Stripe webhook signature verificationFake payment confirmations
Idempotent wallet creationDuplicate wallets from one payment
Balance check before redeemOver-redemption / overspending
Vendor authenticationUnauthorized redemptions
Virtual pending walletsSpending at stalls before payment confirmed
Server-side minimum (£1)Invalid or zero-amount wallet loads
Existing voucher validation before checkoutTop-up on invalid or pending wallets
Idempotent wallet checkoutDouble deduction if the customer retries after a network error
Pre-paid fulfillment (£0 redeem)Charging twice for items already paid online from wallet credit
Single-insert form API + duplicate guardDouble records from membership, contact, thanksgiving forms
Admin approve/reject on registrationsUnauthorised or fraudulent sign-ups entering operational lists
Staff redemption authenticationUnauthorized desk redemptions outside vendor portal

9.1 Audit logs

10. Day-of-Event Playbook

10.1 Staffing

StationRoleEquipment
Admin desk (×2–3)Finance-trained adminLaptop, admin.html → Wallet Top-Up tab
Staff redemption deskAdmin / tech supportLaptop or tablet, redeem.html (camera scan)
Each vendor stallVendor operatorPhone/tablet, vendor.html
Finance leadReconciliation oversightLaptop, Stripe access
Tech supportQR lookups, disputesAdmin + QR Admin access

10.2 Before gates open

11. End-of-Day Reconciliation Checklist

12. Troubleshooting & FAQ

IssueAction
QR not foundVerify token; check QR Admin
Insufficient balanceShow customer voucher.html; escalate to admin desk
Payment OK, no QRRefresh success page; wait 60s; QR Admin lookup
No internet at stallMobile hotspot; admin desk redeems on behalf
Customer lost voucher codeQR Admin lookup; resend from success email; admin desk can look up by token
Top-up not showingRefresh voucher.html; check Stripe webhook; QR Admin for transaction history
Virtual wallet won’t scan at stallExpected until Confirm payment received — check admin_cash_collections status
Customer says “I already paid for this item from my wallet”Scan their QR — pre-paid items appear in the green list; tap the tile to fulfill at £0. Verify history on voucher.html or QR Admin if disputed
Wallet shows £0 but scan succeedsCorrect behaviour — the wallet carries unfulfilled pre-paid items; fulfill them from the list
Registration not in member listCheck status is pending — approve in Members / Contacts / Thanksgiving tab
Duplicate registration emailSystem blocks re-submit within 5 minutes; check existing pending record

Frequently asked questions

Is this regulated e-money? No — event-specific prepaid voucher only.

Where does card money go? NCCGE Stripe account → bank per payout schedule.

Stripe fees? Online card only; cash desk loads have no Stripe fee.

Gift Aid on bazaar? No — donations only, with donor opt-in.

Can customers add money to an existing QR? Yes — harvest.html → Top up existing, from £1. Same QR and voucher code.

Can customers spend wallet credit online before the event? Yes — at cart checkout choose Pay with my QR wallet. Balance is deducted immediately and the items become pre-paid for collection at the stall (no second charge).

What if their whole balance goes on a Thanksgiving offering? The wallet reads £0 but still scans at the stall; the vendor sees the pre-paid item and fulfills it free of charge.

What is virtual load? Admin issues QR before payment; customer can receive it by WhatsApp/email; stalls block spending until finance confirms payment.

Why is a registration still pending? All new membership, contact, and thanksgiving submissions require admin approval. Approve from the relevant Admin tab.

Staff redemption vs vendor? Vendors use vendor.html (Quick Sale). Admin desk uses redeem.html when helping customers directly or resolving disputes.

13. Appendices

A. Quick reference URLs

ResourceURL
Harvest & Bazaarnccglasgow.org.uk/harvest.html
Check voucher balancenccglasgow.org.uk/voucher.html
Donationsnccglasgow.org.uk/donate.html
Admin portalnccglasgow.org.uk/admin.html
Staff QR redemptionnccglasgow.org.uk/redeem.html
QR wallet adminnccglasgow.org.uk/qr-admin.html
Vendor portalnccglasgow.org.uk/vendor.html

B. Role permissions (summary)

Key rule for finance: Only Super Admin can permanently delete records or manage user accounts. Admin and Manager can view, export, and reconcile — but cannot delete. Vendors verify/redeem only; no delete, no admin access.
Capabilitysuper_adminadminmanagervendor
Reconciliation & manual wallet
Wallet Top-Up tab
Approve / reject registrations
Export transaction log CSV
Export donations CSV
Export members / contacts / brochurespartial
Verify / redeem at stall
Staff redemption (redeem.html)
Vendor account setup
Permanently delete records

C. Pre-meeting verification (6 July 2026)

Automated E2E checks on production — 31/31 passed (no card charges): Stripe checkout, QR camera scan on redeem.html, wallet top-up tabs, admin approval workflow, Wallet Top-Up tab, duplicate-form protection, protected APIs, vendor Quick Sale, transaction log export. Stress test: 1000 concurrent requests — 0 API failures (p95 latency 805ms).

D. Glossary

TermDefinition
QR walletPrepaid event voucher (UUID token)
RedeemDeduct amount from wallet at stall
VerifyCheck balance without deducting
Gross LoadedTotal wallets issued
OutstandingUnspent prepaid credit
Voucher codeUUID shown on success page — for balance check at voucher.html
Virtual loadAdmin-issued QR with paymentStatus pending until confirmed
Top-upAdd credit to existing wallet without new QR
Wallet checkoutPaying for catalogue items at cart checkout by deducting existing wallet balance (no card)
Pre-paid itemCatalogue item paid online from wallet credit, awaiting £0 fulfillment at the stall
FulfillmentHanding over a pre-paid item at the stall — logged at £0, no balance deducted
pending / approved / rejectedRegistration review status — only approved records are authorised
Staff redemptionAdmin-desk QR validate and redeem via redeem.html