20 · Crypto & card payments

How money other than cash enters GPE today — non-custodial crypto (strength), card/terminal providers (partial), and what storefront needs to feel like real e-commerce.

Crypto POS tender real Legacy Stripe path retired Storefront needs guest session + card rail

Non-negotiable: invoicing spine

Sales should end as Invoices via Core Invoicing (usually POS finalize). Do not revive parallel ledgers. Legacy /api/payments Stripe/Coinbase router is off when ENABLE_LEGACY_3P ≠ 1.

flowchart LR
  TENDER[Tender on cart]
  FIN[finalize]
  INV[Core Invoicing]
  TENDER --> FIN --> INV
  CRYPTO[Crypto address + watcher]
  CRYPTO --> TENDER
  CARD[Card / terminal]
  CARD --> TENDER
          

Cryptocurrency (platform differentiator)

Non-custodial model Businesses hold keys/wallets; platform watches chain / price and links payment to invoice. DOGE · LTC · BTC paths appear in UI/services (config dependent).
AreaWhat exists
Config UI/admin/crypto · CryptoConfig · crypto-config API
Wallets UI/crypto-wallet · /api/crypto-wallet/*
AddressesPOST /api/doge/address · LTC routes · HD helpers in services
WatchersdogeWatcher · ltcWatcher · price watchers (in backend process)
Webhooks/api/webhooks/doge · /ltc walletnotify; also Coinbase/Coinremitter mounts
Prices/api/crypto-prices/* public-ish spot/quote
POStender/crypto on cart · QR / amount · Modern + Mobile + Storefront crypto path

Bridge can expose cryptoRpc for local node ops when configured.

Card & payment providers

LayerStatus
POS tender card Generic card tender on cart; often “record card payment” style depending on provider wiring
Terminals Routes for stripe-terminal, square-terminal, ingenico, verifone, adyen, paypal on pos.routes — UI partial
payment-providers API /api/payment-providers — configure provider + terminal-config + bin rules
admin payments /api/admin/payments/providers metadata CRUD/test
/api/v1 payments Broader payments-engine style surface (merchants, ledger, keys, recon) — parallel sophistication
Legacy /api/payments Stripe Terminal + Coinbase Commerce writing outside invoicing — disabled by default
Not “PayPal Checkout for storefront” out of the box There is no polished public hosted checkout (PayPal/Stripe Checkout redirect) on storefront today. Card/crypto tenders assume the POS/storefront cart session model.

What storefront needs for real e-commerce

Your read is correct — storefront is a start, not Square Online / PayPal Commerce yet.

#CapabilityWhy
1Guest (or shopper) session for /api/posToday POS requires platform session; public shoppers hit a wall
2Server-side allowGuestCheckout / requireAccountFlags exist in config only
3Card processor on finalize pathStripe/PayPal/etc. that create PaymentIntent, confirm, then finalize invoice — not legacy parallel table
4Webhooks → invoice paidAsync card capture like crypto watchers
5Receipts / email / order historyCustomer portal + CRM link
6Optional shipping / tax UXFlags only today
7PCI-safe UXHosted fields / redirect; never raw PAN on GPE if possible
Recommended direction Keep cart + Core Invoicing as the spine. Add a tender/stripe (or PayPal) that is storefront-safe + guest cart auth, rather than resurrecting ENABLE_LEGACY_3P.

File anchors

ConcernPath
POS tenderspos.routes.js tender/* · finalize
Crypto config/walletcrypto-config.routes.js · crypto-wallet.routes.js
DOGE/LTCdoge.routes.js · ltc.routes.js · watchers · webhooks
ProviderspaymentProviders.routes.js · admin.payments.routes.js
v1 enginebackend/payments/api/v1/*
Legacypayments.routes.js gated ENABLE_LEGACY_3P
UICrypto.jsx · CryptoWallet · CryptoConfig · payment methods admin
OAO07 Cryptocurrency · 04 payments engine HTML