🔧 AI Nachrichten How I’m using Codex and ChatGPT on my Mac(01.09.2026 um 00:00 Uhr)
🕵️ SicherheitslückenProFTPD mod_sql post-authentication SQLi RCE(06.09.2026 um 18:21 Uhr)
🕵️ Sicherheitslücken[remote] CVE-2026-42167 - ProFTPD mod_sql post-authentication SQLi - RCE(25.08.2026 um 02:00 Uhr)
🕵️ Sicherheitslücken[webapps] C-MOR 6.0104 - Cross-Site Scripting (XSS)(31.08.2026 um 02:00 Uhr)
🕵️ Sicherheitslücken[webapps] CubeCart 6.7.4 - Stored XSS(31.08.2026 um 02:00 Uhr)
🕵️ Sicherheitslücken[webapps] CubeCart 6.7.4 - Cross-Site Scripting(31.08.2026 um 02:00 Uhr)
🕵️ Sicherheitslücken[webapps] Langflow 1.8.4 - Path Traversal to Remote Code Execution(31.08.2026 um 02:00 Uhr)
🔧 AI Nachrichten How I’m using Codex and ChatGPT on my Mac(01.09.2026 um 00:00 Uhr)
🕵️ SicherheitslückenProFTPD mod_sql post-authentication SQLi RCE(06.09.2026 um 18:21 Uhr)
🕵️ Sicherheitslücken[remote] CVE-2026-42167 - ProFTPD mod_sql post-authentication SQLi - RCE(25.08.2026 um 02:00 Uhr)
🕵️ Sicherheitslücken[webapps] C-MOR 6.0104 - Cross-Site Scripting (XSS)(31.08.2026 um 02:00 Uhr)
🕵️ Sicherheitslücken[webapps] CubeCart 6.7.4 - Stored XSS(31.08.2026 um 02:00 Uhr)
🕵️ Sicherheitslücken[webapps] CubeCart 6.7.4 - Cross-Site Scripting(31.08.2026 um 02:00 Uhr)
🕵️ Sicherheitslücken[webapps] Langflow 1.8.4 - Path Traversal to Remote Code Execution(31.08.2026 um 02:00 Uhr)

🔧 Programmierung 🕛 vor 1 Monat 3 Min Lesezeit
0

I built pay-kit, an SDK that unifies Paystack and Flutterwave

↗ Quelle (dev.to)
🗣️ Stimme:
📑 Inhaltsübersicht

If you have shipped a serious product in Nigeria (or most of Africa), you have probably integrated both Paystack and Flutterwave. You do it for coverage, for redundancy when one provider has a bad day, and sometimes for better rates on a given card or channel.



And every single time, you rewrite the same fragile glue: two different request shapes, two different webhook signature schemes, two different ideas of what an "amount" is, two different error formats. I got tired of copying that layer between projects, so I built it once, properly, and open-sourced it.



It is called pay-kit: one typed TypeScript SDK over Paystack and Flutterwave. Swap the provider, and your code does not change.




CODE
npm install @siyegs/pay-kit









The core idea: one API, two providers






CODE
import { createPayClient } from "@siyegs/pay-kit";

const pay = createPayClient({
provider: "paystack", // or "flutterwave" - nothing else changes
secretKey: process.env.PAYSTACK_SECRET_KEY!,
});

// Amounts are always in subunits (kobo/cents), Stripe-style, to kill float bugs.
const { authorizationUrl, reference } = await pay.initialize({
amount: 500000, // NGN 5,000.00
email: "[email protected]",
callbackUrl: "https://your-app.com/pay/callback",
});

// after the customer pays:
const result = await pay.verify(reference);
if (result.status === "success") {
// fulfill the order
}






The whole surface is normalized: initialize, verify, refund, transfer, resolveAccount, listBanks, getBalances, listTransactions, and signature-verified webhooks - the same shape whether you are on Paystack or Flutterwave.






The parts I am most happy with



Automatic provider fallback. If Paystack is having an outage, fall through to Flutterwave without touching your code:




CODE
import { createFallbackClient } from "@siyegs/pay-kit";

const pay = createFallbackClient({
providers: [
{ provider: "paystack", secretKey: process.env.PAYSTACK_SECRET_KEY! },
{ provider: "flutterwave", secretKey: process.env.FLW_SECRET_KEY!, webhookSecret: process.env.FLW_HASH },
],
});

const { reference, provider } = await pay.initialize({ amount: 500000, email: "[email protected]", callbackUrl: "..." });
// only outage-like failures (network / 5xx / 429) trigger fallback; a 4xx fails fast






A keyless mock provider. Test your entire payment flow with no API keys and no network - great for CI and local dev:




CODE
const pay = createPayClient({ provider: "mock" });
const { reference } = await pay.initialize({ amount: 500000, email: "[email protected]" });
await pay.verify(reference); // { status: "success", amount: 500000, ... }






Payouts, not just collection. Send money out with the same unified API - transfer, verifyTransfer, plus resolveAccount and listBanks to confirm who you are paying before you pay them.



Marketplace splits. Route part of a charge to a subaccount - the primitive behind creator payouts and multi-vendor checkouts.






Being honest about status



pay-kit is beta (pre-1.0). It is fully typed and unit-tested, and the core methods (initialize, verify, resolveAccount, listBanks, getBalances, listTransactions) are verified against the real Paystack and Flutterwave test sandboxes - the SDK even ships a bun run integration harness that runs it against the live sandboxes, which is how I caught and fixed a real Flutterwave initialize bug before this post. A few methods still need a paid transaction or configured subaccounts to fully exercise, and the README says exactly what is and is not verified. Pin a version, test the flows you depend on, and open an issue if anything does not match live behavior.






Try it




  • npm:



If you build for African payment rails, I would genuinely love your feedback - and a star helps more people find it. If a call does not match what a provider actually does, open an issue and I will fix it.



Built with TypeScript and the Bun toolchain. More providers and features are on the roadmap.

Vollständiger Original-Bericht
Ausführliche Details, Code-Beispiele & Hersteller-Stellungnahme auf dev.to.
↗ Original-Artikel auf dev.to lesen
Wie bewertest du diesen Beitrag?
1 Klick Feedback
Teilen mit Netzwerk & Team:

Community-Analysen & Experten-Meinungen 0

Verfasse deine eigene Analyse, teile Workarounds oder diskutiere diesen Vorfall im Blog.
Noch keine Community-Analyse verfasst. Markiere einen Textabschnitt oder klicke oben auf Eigene Analyse verfassen“!
Community Pulse: Relevanz-Einschätzung
1 Klick Experten-Votum
🔴 Akute Relevanz 0%
🟡 In Evaluierung 0%
🟢 Keine Auswirkung 0%
Spannende Innovation 0%
Verwandte Story-Cluster & Quellen (Vektor-KI)
Port 8095 Engine
3 Quellen
Seattle Times sues Microsoft and OpenAI, alleging they trained their AI on its journalism
1 Quelle
Inside the Discussions at AI Companies Over a Superintelligence Doomsday
1 Quelle
Etzioni on AI: What kids tell chatbots, but not you
Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten I built pay-kit, an SDK that unifies Paystack and Flutterwave

Thematisch verwandte Begriffe: built, paykit, that, unifies · 6 Treffer

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...