One Unified API.
Zero Payment Downtime.
Connect PayHero, Makamesco, Hashback, Esspay, Swiftwallet, and direct till endpoints into a single sovereign payment switch. Sub-second cascading failover guarantees your customers never see a failed STK prompt.
Active Payment Gateways in the FinAPI Mesh
Autonomous Waterfall Failover
Watch what happens when Primary Gateway #1 suffers an upstream 504 Timeout: FinAPI silently intercepts the failure and cascades the transaction to Gateway #2 within 180 milliseconds with zero dropped requests.
Simulate Payment Dispatch
Trigger test webhook & fallback chain
M-Pesa SIM Toolkit Prompt
Do you want to pay KES 150 to FinAPI Merchant?
The Frictionless Integration Blueprint
No manual verification queues. No sales calls. Move from account registration to your first settled M-Pesa payment in 3 clear steps.
Create Sovereign Account
Sign up in 30 seconds with email and password. Your default platform sandbox and webhook listener initialize immediately.
Retrieve API Bearer Key
Grab your platform Bearer token with full REST authorization. Lock origins by domain or keep open for server-side daemons.
Dispatch First Payment
Fire your first test payment using our in-browser Interactive Console or run 5 lines of cURL. Watch real-time callback verification.
5 Lines of Code. Any Gateway.
Switch gateways at will with zero code rewrites. FinAPI standardizes requests, responses, and webhooks across all providers.
curl -X POST "https://finapi.e-ss.co.ke/stk/push" \
-H "Authorization: Bearer sk_live_finapi_demo9981a" \
-H "Content-Type: application/json" \
-d '{
"platform_id": 1,
"phone": "254712345678",
"amount": 150.00,
"reference": "INV-88910",
"auto_cascade": true
}'
const response = await fetch("https://finapi.e-ss.co.ke/stk/push", {
method: "POST",
headers: {
"Authorization": `Bearer sk_live_finapi_demo9981a`,
"Content-Type": "application/json"
},
body: JSON.stringify({
platform_id: 1,
phone: "254712345678",
amount: 150.00,
reference: "INV-88910",
auto_cascade: true
})
});
const data = await response.json();
console.log("Checkout ID:", data.checkout_request_id);
import requests
payload = {
"platform_id": 1,
"phone": "254712345678",
"amount": 150.00,
"reference": "INV-88910",
"auto_cascade": True
}
headers = {
"Authorization": "Bearer sk_live_finapi_demo9981a",
"Content-Type": "application/json"
}
res = requests.post("https://finapi.e-ss.co.ke/stk/push", json=payload, headers=headers)
print(res.json())
<?php
$client = new \GuzzleHttp\Client();
$response = $client->post('https://finapi.e-ss.co.ke/stk/push', [
'headers' => [
'Authorization' => 'Bearer sk_live_finapi_demo9981a',
'Content-Type' => 'application/json',
],
'json' => [
'platform_id' => 1,
'phone' => '254712345678',
'amount' => 150.00,
'reference' => 'INV-88910',
'auto_cascade' => true
]
]);
$data = json_decode($response->getBody(), true);
Architected for Flawless Reliability
Every layer of FinAPI is purpose-built to eliminate common fintech integration failures.
Cascading Gateway Waterfall
Configure priority orders for your payment channels. If Safaricom Daraja or your primary aggregator drops a packet, FinAPI falls over to your backup instantly.
Celery + Redis Worker Fleet
Payment requests, webhooks, and retry sequences execute off the main HTTP thread. High-concurrency spikes never degrade dashboard or transaction throughput.
Dual-Delivery Cryptographic Webhooks
Receive normalized JSON payloads verified with HMAC-SHA256 signatures regardless of which gateway actually handled the settlement.
Platform Isolation
Separate your multiple business units, e-commerce storefronts, and mobile applications with distinct callback URLs, till assignments, and revenue ledgers.
Hosted Checkout Modal
Don't want to build a payment UI? Drop our hosted checkout widget into any webpage with a single iframe or redirect link. Complete with real-time status polling.
Unified Transaction Ledger
Search by checkout ID, customer phone number, or M-Pesa receipt code across every provider in one unified, real-time analytics portal.
Ready to eliminate failed transactions?
Deploy your first platform in under 2 minutes. Test in sandbox mode, verify your webhook receivers, and launch seamlessly into production.
Create Free Developer Account