Charge in your language, not the provider’s.
One call creates the payment; Reevit picks the provider, retries the failures, and streams every event back. Copy it, paste it, ship it.
import Reevit from '@reevit/node'; const reevit = new Reevit('pfk_live_…', 'org_…'); // One request — Reevit picks the provider and fails over for you.const payment = await reevit.payments.createIntent( { amount: 45000, // GHS 450.00, in pesewas currency: 'GHS', method: 'mobile_money', country: 'GH', customer_id: 'cust_123', }, { idempotencyKey: 'order_8817' },); console.log(payment.id, payment.status);CLI + local sandbox
Feel a failover before you commit.
One command detects your project, creates scoped test credentials, installs the right SDKs, wires the runnable checkout and webhook flow, and verifies the sandbox. Then stream real test events to localhost without moving real money.
- $ reevit init
- Detect your stack, create project test credentials, install the right SDKs, and wire the complete Reevit test flow.→ sandbox verified
- $ reevit doctor --e2e
- Prove the setup with a real sandbox payment, delivered to your handler and signed.→ tampered event rejected
- $ reevit listen --forward-to <url>
- Stream test-mode events to your localhost, signed like production.→ signed like production
- $ reevit trigger <event>
- Fire a real sandbox payment through the simulator, with no real money.→ payment.failed · forwarded 200
brew install reevit-platform/tap/reevitnpm install -g @reevit/cliFailover, in the response
The route is part of the contract.
A timeout reroutes inside the same request. One POST, one response. The detour shows up as milliseconds, not a support ticket.
hubtel_live · provider timeout
2,400 ms
paystack_live · succeeded
812 ms
Both attempts ship in the response as "route": [ connection_id, status, error, latency_ms ], so your logs already tell the whole story.
Eight SDKs, one contract
Install it where you already work.
All SDKs are developed in the open at github.com/Reevit-Platform.
SDKs for your stack
The details are already handled.
Idempotency keys honored on every write
Test mode with pfk_test keys that mirror live behavior
Real-time payment events over SSE
Signed webhooks: verified, deduplicated, replayable
Amounts in minor units, never floats
Eight SDKs, one contract between them
MCP server
Your agents speak Reevit now.
Payment links, lookups, refunds, and analytics, from any MCP client, on a scoped API key you control.
Create a GHS 50 payment link for the March invoice
→ https://reevit.io/pay/mar-invoice-x7k2
Refund the last failed charge
needs confirm: true — no money moved.
npx -y @reevit/mcpClaude Code: claude mcp add reevit -- npx -y @reevit/mcp
Stop losing payments to provider downtime.
Free for your first 1,000 payments a month, and failed payments are never billed. Connect a provider and take your first payment before the coffee gets cold.