One SDK. All six providers. Ship in a day.
Replace 6 PSP integrations with one. TypeScript-first, fully typed, OpenAPI-backed. Your sandbox is live in 60 seconds.
const popfab = require('@popfab/node');
const client = new popfab.Client({ apiKey: 'sk_test_...' });
// Initiate a payment
const payment = await client.payments.initiate({
amount: 5000000, // ₦50,000 in kobo
currency: 'NGN',
payment_method: 'bank_transfer',
reference: 'ORD-20240001',
customer: {
email: 'customer@example.com',
name: 'Amaka Obi',
phone: '+2348012345678'
},
metadata: {
order_id: 'ORD-20240001',
product: 'Premium Plan'
}
});
console.log(payment.data.payment_url); // Redirect user hereFrom zero to live payment in 3 steps.
Install the SDK
Pick your language and install the POPFAB SDK. All SDKs are on public package registries.
npm install @popfab/nodeGet your API key
Create a free account and copy your test API key from the dashboard. No KYC required in sandbox.
// In your dashboard: Settings → API Keys
// Copy your test key: sk_test_xxxxxxxxxxxx
const client = new popfab.Client({
apiKey: process.env.POPFAB_API_KEY
});Initiate your first payment
Make your first API call. POPFAB selects the best provider, handles failover, and returns a payment URL.
const payment = await client.payments.initiate({
amount: 10000, // ₦100 in kobo
currency: 'NGN',
payment_method: 'bank_transfer',
reference: 'TEST-001',
customer: { email: 'test@example.com' }
});
// Redirect your customer to complete payment
console.log(payment.data.payment_url);
// → https://checkout.popfab.io/pay/ch_xxxxxAvailable in your language
All SDKs auto-generated from OpenAPI spec. Always up-to-date.
Node.js
v2.4.1
$ npm install @popfab/nodePython
v2.4.1
$ pip install popfabGo
v2.4.1
$ go get popfab.dev/sdkPHP
v2.4.1
$ composer require popfab/phpA developer experience that respects your time
60-sec sandbox
Sign up, get your test API key, and make your first API call, all in under 60 seconds. No KYC, no approval required.
<500ms response
Our API responds in under 500ms globally. Provider routing decisions are made in under 100ms using our routing engine.
Human-readable errors
Every error includes a code, a human message, and a link to the relevant docs section. No cryptic status codes.
Webhook inspector
Test webhook delivery in sandbox with our built-in inspector. See payloads, retry failed deliveries, replay events.
OpenAPI spec
Download our OpenAPI 3.1 spec, import into Postman or Insomnia, or generate clients in any language.
Zero cold-start
All POPFAB API endpoints are warm 100% of the time. No serverless cold-start delays. Consistent sub-500ms responses.
Build webhook handlers with confidence.
POPFAB delivers webhooks for every payment event. Our sandbox webhook inspector lets you test handlers before going live: replay events, inspect payloads, and simulate failures.
payment.initiatedPayment created, provider selectedpayment.successPayment completed successfullypayment.failedPayment failed, includes failure reasonpayment.refundedFull or partial refund processedpayment.disputedDispute raised by customer{
"event": "payment.success",
"data": {
"id": "pay_01HXXXXXXXXXXXXXXXX",
"reference": "ORD-20240001",
"amount": 5000000,
"currency": "NGN",
"status": "success",
"provider": "paystack",
"provider_reference": "T123456789",
"customer": {
"email": "customer@example.com",
"name": "Amaka Obi"
},
"metadata": {
"order_id": "ORD-20240001"
},
"created_at": "2024-01-15T14:32:00Z",
"settled_at": "2024-01-16T00:00:00Z"
},
"timestamp": "2024-01-15T14:32:01Z",
"version": "2024-01"
}Webhook security
All webhooks are signed with HMAC-SHA256. Verify the signature before processing:
Your sandbox is waiting.
60 seconds from now, you could have your first test payment running.
OpenAPI spec · Postman collection · GitHub examples