Going Live in Production
Once you have verified your integration in Sandbox, follow this deployment sequence to switch your project to Live mode and accept real customer payments.
[1. Toggle to Live in Console] ➔ [2. Verify Live BYOK Vault] ➔ [3. Deploy Live Client & Server Keys] ➔ [4. 24-Hour Launch Watch]
The Launch Day Deployment Sequence
To ensure zero downtime, follow this step-by-step launch order:
1. Toggle Console to Live Mode
In the top-left navigation bar of the SolydFlow Console, switch the environment dropdown from Sandbox to Live.
2. Confirm Live Gateway Keys in the Vault
Navigate to Project Settings → API Credentials Vault and verify that your live provider keys are configured:
- Paystack Live Secret Key (
sk_live_...) - Stripe Live Secret Key (
sk_live_...) - Flutterwave Live Secret Key (
FLWSECK_LIVE...) - M-Pesa Live Daraja Credentials & ShortCode
- Monnify Live Secret Key & Contract Code
3. Deploy Backend Environment Variables
Update your production server environment variables with your Live credentials:
SOLYDFLOW_SECRET_KEY=sf_sk_live_1982736450192837465019283
SOLYDFLOW_WEBHOOK_SECRET=whsec_live_991823ab719284bc710293
4. Deploy Mobile & Web Client Builds
Ship your production build configured with your Live Public Key (sf_pk_live_...).
Automating Key Switching in Code
Avoid hardcoding keys manually. Use environment flags to switch between Sandbox and Live automatically:
- Flutter (kReleaseMode)
- JavaScript / Next.js
import 'package:flutter/foundation.dart';
import 'package:solydflow_flutter/solydflow_flutter.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// Automatically toggles between test and live based on build mode:
const String apiKey = kReleaseMode
? "sf_pk_live_44019283bc918237fa" // Production
: "sf_pk_test_a8f93b1c8e924a1b82"; // Development / QA
await SolydFlow.configure(
apiKey: apiKey,
userID: user.uid,
userEmail: user.email,
userPhone: user.phoneNumber,
);
runApp(const MyApp());
}
import { SolydFlow } from "solydflow-js";
// Uses Next.js public environment variables:
await SolydFlow.configure(
process.env.NEXT_PUBLIC_SOLYDFLOW_KEY!, // Tied to .env.production
userId,
userEmail,
userPhone
);
The First-24-Hours Watchlist
During your first day accepting live customer transactions, monitor these three console views:
┌───────────────────────────────────────┬────────────────────────────────────────────────────────┐
│ Console View │ What to Look For │
├───────────────────────────────────────┼────────────────────────────────────────────────────────┤
│ 📜 **Transactions Ledger** │ Confirm transactions show **`SETTLED_CONSENSUS`**. │
├───────────────────────────────────────┼────────────────────────────────────────────────────────┤
│ 📤 **Outbound Webhooks Log** │ Confirm your server returns **`200 OK`** within <5s. │
├───────────────────────────────────────┼────────────────────────────────────────────────────────┤
│ 🔄 **Sweeper Recovery Log** │ Check if any dropped bank transfers required recovery. │
└───────────────────────────────────────┴────────────────────────────────────────────────────────┘
Emergency Rollback Plan
If you detect a critical issue on your backend server after launch:
- Keep Mobile Apps Live: Do not immediately pull your mobile app from app stores.
- Webhooks are Safe: If your backend server goes down, SolydFlow's recovery queue will automatically hold and retry undelivered webhooks with exponential backoff for up to 2 hours.
- Emergency Key Revocation: If a key was accidentally exposed, use the Emergency Revoke feature in Console → API Management to rotate credentials with zero downtime.