Enforce Overview
Knowing that a payment succeeded is only half the battle. Your application still needs to know: Which payment rail should be selected? Is the payment truly final? Which features should be unlocked? What happens if a card is refunded next week?
[1. Verified Truth] ➔ [2. Smart Routing & Failover] ➔ [3. Evaluate Finality] ➔ [4. Enforce Entitlements]
SolydFlow Enforce is the runtime policy and execution layer that connects verified financial transactions to application access, payment routing, and customer entitlement lifecycles.
Truth vs. Enforce
| Layer | Core Question | Primary Responsibility |
|---|---|---|
| Truth | "What happened financially?" | Verifies gateway receipts, evaluates consensus, and commits to the ledger. |
| Enforce | "What should the system do about it?" | Routes checkouts, evaluates finality, unlocks local/cloud features, and handles revokals. |
The 4 Pillars of Enforce
SolydFlow structures enforcement into four core capabilities:
| Pillar | Capability | Why It Matters |
|---|---|---|
| Smart Routing | Dynamic payment gateway selection based on currency, region, and uptime. | Routes NGN to Paystack/Monnify, KES to M-Pesa, and USD to Stripe automatically. |
| Provider Failover | Intelligent fallback to backup payment rails during gateway outages. | Prevents checkout drops without risking double-debits. |
| Transaction Finality | Distinguishes between temporary authorizations and irreversible settlements. | Prevents granting permanent access on reversible or pending checks. |
| Entitlement Enforcement | Real-time unlocking and revoking of application features. | Powers <5ms offline checks on mobile and webhook sync to backends. |
Real-World Multi-Market Routing in Action
Consider a customer subscribing to your app from different regions:
┌───────────────────────────────────────┬────────────────────────────────────────┬───────────────────────────┐
│ Customer Location & Currency │ Enforce Smart Routing Selection │ Resulting Entitlement │
├───────────────────────────────────────┼────────────────────────────────────────┼───────────────────────────┤
│ 🇰🇪 Nairobi, Kenya (KES) │ M-Pesa STK Push (Daraja) │ Unlocks "pro_access" ✅ │
├───────────────────────────────────────┼────────────────────────────────────────┼───────────────────────────┤
│ 🇳🇬 Lagos, Nigeria (NGN) │ Paystack Card or Monnify Virtual Acc │ Unlocks "pro_access" ✅ │
├───────────────────────────────────────┼────────────────────────────────────────┼───────────────────────────┤
│ 🇬🇭 Accra, Ghana (GHS) │ Flutterwave Mobile Money (MTN/Telecel) │ Unlocks "pro_access" ✅ │
├───────────────────────────────────────┼────────────────────────────────────────┼───────────────────────────┤
│ 🇺🇸 New York, USA (USD) │ Stripe Credit Card / Apple Pay │ Unlocks "pro_access" ✅ │
└───────────────────────────────────────┴────────────────────────────────────────┴───────────────────────────┘
Notice that regardless of which payment provider processed the funds or what local currency was charged, Enforce produces a single, unified entitlement: pro_access.
Safe Failover vs. Blind Retries
Enforce strictly separates route failover from naive charge retries:
- Naive Failover (Dangerous): Provider A times out ➔ Immediately charge via Provider B ➔ Customer charged twice.
- Enforce Safe Failover: Provider A times out ➔ Hold intent ➔ Verify whether Provider A debited funds ➔ If confirmed uncharged, safely failover to Provider B.
Explore Enforce Modules
🔑 Entitlement Enforcement
Offline-first feature gating and multi-device access synchronization.
Read Guide →