Flutterwave
Flutterwave can be connected to SolydFlow to process payments for customers in supported African markets and other supported regions.
With Flutterwave connected, SolydFlow provides the revenue infrastructure around Flutterwave transactions while your application works with a consistent revenue layer.
Your Application
↓
SolydFlow
↓
Flutterwave
↓
Payment Network
Flutterwave remains responsible for processing the payment. SolydFlow manages the application-facing revenue flow around that payment.
When to Use Flutterwave
Flutterwave can be useful when your application serves customers across African markets and needs access to the payment methods and currencies supported by Flutterwave.
For example:
Application
↓
SolydFlow
↓
Flutterwave
↓
Customers
Flutterwave can also operate alongside other providers in the same SolydFlow project.
SolydFlow
│
┌──────────┼──────────┐
↓ ↓ ↓
Flutterwave Paystack Stripe
│ │ │
Africa Africa Global
The appropriate provider depends on your target market, payment methods, currencies, and business requirements.
How Flutterwave Fits Into SolydFlow
The integration follows the standard SolydFlow provider architecture.
SolydFlow
│
Flutterwave Connection
│
┌──────────┴──────────┐
↓ ↓
Payment Flow Webhooks
│ │
↓ ↓
Flutterwave SolydFlow
│ │
└──────────┬──────────┘
↓
Transaction
↓
Entitlement
↓
Application Access
Your application does not need to implement Flutterwave-specific revenue logic throughout its codebase.
What Flutterwave Handles
Flutterwave handles the provider-side payment operation.
Depending on the payment method, country, and account configuration, this can include:
- Payment processing
- Supported payment methods
- Payment authorization
- Provider-side transaction state
- Provider-side payment records
- Provider webhooks
- Refund-related operations supported by Flutterwave
Flutterwave's supported markets, payment methods, currencies, and capabilities can change.
Always verify the provider's current capabilities before relying on a specific feature in production.
What SolydFlow Handles
SolydFlow sits above Flutterwave and manages the revenue infrastructure around the provider transaction.
This can include:
- Connecting Flutterwave to your project
- Associating payments with your products and packages
- Tracking transactions
- Processing provider events
- Recovering transactions when expected events are missing
- Verifying transaction state
- Maintaining a unified transaction view
- Managing entitlements
- Supporting routing and failover where configured
Flutterwave Payment
↓
Provider Event
↓
SolydFlow
↓
Transaction State
↓
Entitlement
↓
Application Access
Prerequisites
Before connecting Flutterwave to SolydFlow, you should have:
- A Flutterwave account
- The required Flutterwave credentials
- A SolydFlow project
- Products configured in SolydFlow
- Packages and prices configured
- The markets and payment methods you intend to support identified
Your Flutterwave account must also be configured appropriately for your business and intended payment flows.
Connecting Flutterwave
The general setup process is:
Create / Configure Flutterwave Account
↓
Obtain Credentials
↓
Connect to SolydFlow
↓
Configure Products
↓
Configure Packages
↓
Configure Webhooks
↓
Test
↓
Go Live
The exact configuration fields depend on the current SolydFlow Flutterwave integration.
Flutterwave Credentials
Flutterwave integrations require credentials to authenticate requests.
Treat secret credentials as sensitive information.
❌ Do not expose secret credentials
in frontend application code.
✅ Keep secret credentials
in protected configuration.
Configure provider credentials through the supported SolydFlow provider configuration mechanism.
See:
Products and Packages
Your product structure should remain in SolydFlow rather than being duplicated inside Flutterwave-specific application logic.
For example:
Product
└── Pro
├── Monthly
└── Annual
The package defines what the customer is purchasing.
Flutterwave processes the corresponding payment.
See:
Flutterwave and Paywalls
The customer typically encounters your application's paywall before the payment is processed.
Customer
↓
Application
↓
SolydFlow Paywall
↓
Package
↓
Flutterwave
↓
Payment
The paywall communicates the configured product, package, and price.
Flutterwave then handles the payment operation.
See:
Flutterwave Webhooks
Flutterwave can send webhook events to communicate changes related to payment activity.
Conceptually:
Flutterwave
↓
Webhook Event
↓
SolydFlow
↓
Transaction Processing
Webhook events are an important part of keeping the revenue lifecycle synchronized.
A successful payment may occur independently of your application's immediate request lifecycle.
For example:
Customer
↓
Payment
↓
Flutterwave
↓
Webhook
↓
SolydFlow
See:
Missing Flutterwave Webhooks
A payment can succeed even when the expected webhook is not received by the application.
For example:
Customer
↓
Flutterwave
↓
Payment Successful
↓
Webhook
X
The payment outcome and webhook delivery are separate events.
SolydFlow's recovery and truth layers are designed to help handle situations where the expected provider event is missing.
Flutterwave
↓
Payment Successful
↓
Webhook Missing
↓
Recovery
↓
Verification
↓
Transaction State
↓
Entitlement
See:
Flutterwave Transaction State
Flutterwave has its own representation of transaction state.
SolydFlow also maintains an application-facing transaction lifecycle.
These states may not always update simultaneously.
For example:
Flutterwave
└── Successful
SolydFlow
└── Processing
SolydFlow can use provider information and transaction events to determine the appropriate state for the application.
Flutterwave State
+
SolydFlow State
↓
Transaction Truth
See:
Flutterwave and Transaction Recovery
Consider this scenario:
Application
↓
Purchase Started
↓
Flutterwave
↓
Payment Completed
↓
Webhook Missing
Without a recovery layer, the application may continue to believe that the transaction is incomplete.
SolydFlow can provide the recovery layer around the provider transaction:
Transaction
↓
Recovery
↓
Provider Verification
↓
Resolved State
↓
Entitlement
This means your applications do not need to independently implement the same provider-specific recovery logic.
See:
Flutterwave and the Transaction Ledger
Flutterwave provides provider-side transaction information.
SolydFlow can maintain a unified transaction record for the application.
Flutterwave
↓
Provider Transaction
↓
SolydFlow
↓
SolydFlow Transaction
↓
Unified Revenue Record
This becomes increasingly valuable when the same application uses more than one payment provider.
SolydFlow
│
┌───────────┼───────────┐
↓ ↓ ↓
Flutterwave Paystack Stripe
│ │ │
└───────────┼───────────┘
↓
Unified Ledger
See:
Using Flutterwave Alongside Other Providers
SolydFlow is designed to allow your revenue architecture to support multiple providers.
For example:
SolydFlow
│
┌───────────┼───────────┐
↓ ↓ ↓
Flutterwave Paystack Stripe
│ │ │
Ghana Nigeria US
This can be useful when your application serves multiple markets.
The provider can be selected based on your business requirements, market, payment method, and configured routing rules.
See:
Flutterwave and Regional Payments
For applications serving African customers, payment methods can differ between markets.
A possible architecture could look like:
Market
↓
Flutterwave
↓
Supported Local Payment Methods
Another market may use a different provider:
Another Market
↓
Paystack / M-Pesa / Other Provider
↓
Local Payment Methods
SolydFlow provides a common revenue layer above these provider differences.
See:
Flutterwave Failover
If your project has multiple providers configured, Flutterwave can participate in a resilient provider architecture where supported.
Conceptually:
Payment Request
↓
SolydFlow
↓
Preferred Provider
↓
Unavailable
↓
Alternative Provider
Provider failover must be designed carefully.
A delayed provider response should not automatically result in a second payment attempt if the first payment may already have succeeded.
Transaction verification is therefore important when implementing resilient payment flows.
See:
Testing Flutterwave
Use Flutterwave's supported test environment before processing live payments.
A typical testing flow is:
Development
↓
Flutterwave Test Environment
↓
SolydFlow Sandbox
↓
Test Transaction
↓
Webhook Test
↓
Failure / Recovery Test
↓
Production
Test at least:
- Successful payments
- Failed payments
- Pending payments
- Webhook delivery
- Missing webhooks
- Provider errors
- Transaction recovery
- Transaction verification
- Entitlement updates
See:
Production Checklist
Before using Flutterwave for live transactions, verify:
Flutterwave
- Your Flutterwave account is configured for your business
- Production credentials are being used
- The intended payment methods are enabled
- The required currencies are supported
- Provider webhook configuration is correct
SolydFlow
- Flutterwave is connected to the correct project
- Products are configured correctly
- Packages are configured correctly
- Prices are correct
- Paywalls display the intended offering
- Webhook processing is configured
- Recovery has been tested
- Entitlements behave correctly
Security
- Secret credentials are protected
- Webhook signatures are verified
- Production secrets are not exposed to clients
- Access to provider configuration is restricted
See:
Refunds and Payment Changes
Flutterwave supports payment operations according to its current capabilities and your account configuration.
When a provider-side payment changes after the original transaction, the application-facing revenue state may also need to change.
Conceptually:
Flutterwave Event
↓
SolydFlow
↓
Transaction State
↓
Entitlement / Access
Do not assume that the original payment event is the only event that can affect the customer's revenue lifecycle.
Compliance
Flutterwave remains responsible for the provider-side requirements associated with its payment infrastructure.
However, using Flutterwave does not automatically remove all compliance responsibilities from your business.
Depending on your business model and target markets, you may need to consider:
- Taxes
- Consumer protection
- Data protection
- Business registration
- Payment regulations
- Local requirements
See:
Troubleshooting
When a Flutterwave payment does not produce the expected result, trace the complete flow.
Customer
↓
Paywall
↓
Purchase
↓
Flutterwave
↓
Webhook
↓
SolydFlow
↓
Transaction
↓
Entitlement
Check:
- Did the customer initiate the purchase?
- Did Flutterwave receive the payment request?
- What state does Flutterwave report?
- Was the expected webhook generated?
- Did SolydFlow receive the webhook?
- What transaction state does SolydFlow show?
- Was the transaction verified?
- Was the entitlement granted?
See:
Key Principle
Flutterwave processes the payment. SolydFlow manages the revenue flow around the payment.
Your application should not need to duplicate Flutterwave-specific payment, webhook, recovery, and transaction logic throughout its codebase.
Your Application
↓
SolydFlow
↓
Flutterwave
↓
Payment
↓
Transaction
↓
Entitlement
↓
Application Access
This allows Flutterwave to remain the payment processor while SolydFlow provides a consistent revenue infrastructure for your application.