SDK Integrations
The NaijaBase SDK includes built-in support for Nigerian payment gateways and messaging providers via the integrations client.
Setup
No sign-in required. The SDK uses your anon key automatically:
import { createClient } from '@naijabase/js'
const nb = createClient(
'https://api.naijabase.dev/projects/YOUR_ID',
'YOUR_ANON_KEY'
)
// No nb.auth.signIn() needed
Payments
Paystack
// Create checkout
const { checkout_url, reference } =
await nb.integrations.payments.paystack.createCheckout({
email: 'user@example.com',
amount: 5000, // NGN 5,000
callbackUrl: 'https://yourapp.com/verify'
})
// Redirect user to checkout_url
// Verify after payment
const result = await nb.integrations.payments.paystack.verifyPayment(reference)
if (result.verified) {
console.log('Paid:', result.amount, 'NGN')
}
Available methods:
nb.integrations.payments.paystack.createCheckout(params)
nb.integrations.payments.paystack.verifyPayment(reference)
nb.integrations.payments.paystack.listTransactions(params)
nb.integrations.payments.paystack.listBanks()
nb.integrations.payments.paystack.resolveBankAccount(params)
nb.integrations.payments.paystack.createSubaccount(params)
Flutterwave
// Create payment
const { payment_url, reference } =
await nb.integrations.payments.flutterwave.createPayment({
email: 'user@example.com',
amount: 5000,
currency: 'NGN', // or USD, GHS, KES
callbackUrl: 'https://yourapp.com/verify'
})
// Redirect user to payment_url
// Verify after payment
const result = await nb.integrations.payments.flutterwave.verifyByReference(reference)
if (result.verified) {
console.log('Paid:', result.amount, result.currency)
}
Available methods:
nb.integrations.payments.flutterwave.createPayment(params)
nb.integrations.payments.flutterwave.verifyTransaction(id)
nb.integrations.payments.flutterwave.verifyByReference(ref)
nb.integrations.payments.flutterwave.listTransactions(params)
nb.integrations.payments.flutterwave.getBalance(currency)
nb.integrations.payments.flutterwave.listBanks()
nb.integrations.payments.flutterwave.resolveBankAccount(params)
Choosing between Paystack and Flutterwave
| Feature | Paystack | Flutterwave |
|---|---|---|
| Nigerian cards | ✅ | ✅ |
| Bank transfer | ✅ | ✅ |
| USSD | ✅ | ✅ |
| Multi-currency | ❌ NGN only | ✅ USD, GHS, KES... |
| Pan-African | Limited | ✅ |
| Mobile money | ❌ | ✅ |
Use Paystack for NGN-only Nigerian apps. Use Flutterwave for multi-currency or pan-African products.
Messaging
Termii SMS
// Send OTP
await nb.integrations.messaging.termii.sendOTP({
phone: '+2348012345678'
})
// User receives SMS: "Your verification code is 482910. Valid for 10 minutes."
// Verify OTP
const result = await nb.integrations.messaging.termii.verifyOTP({
phone: '+2348012345678',
code: userEnteredCode
})
if (result.verified) {
// Phone number confirmed ✅
}
// Send plain SMS
await nb.integrations.messaging.termii.sendMessage({
phone: '+2348012345678',
message: 'Your order has been confirmed.'
})
Available methods:
nb.integrations.messaging.termii.sendOTP(params)
nb.integrations.messaging.termii.verifyOTP(params)
nb.integrations.messaging.termii.sendMessage(params)
nb.integrations.messaging.termii.getBalance()
nb.integrations.messaging.termii.getStatus(messageId)
Connecting integrations
Before using any integration your project must be connected in the NaijaBase dashboard:
app.naijabase.dev
→ your project
→ Integrations tab
→ Click Connect on Paystack, Flutterwave, or Termii
→ Enter your API keys
→ Save
Once connected the SDK uses your encrypted keys automatically. Keys are never exposed to the browser.
Webhook events
Subscribe to payment events via Realtime:
await nb.realtime.connect()
nb.realtime.from('nb_webhook_events')
.on('INSERT', (payload) => {
const event = payload.new
if (event.event_type === 'charge.success') {
// Paystack payment received
console.log(event.payload)
}
if (event.event_type === 'charge.completed') {
// Flutterwave payment received
console.log(event.payload)
}
})
.subscribe()
Add your webhook URLs in each provider dashboard:
Paystack:
https://api.naijabase.dev/projects/YOUR_ID/webhooks/paystack
Flutterwave:
https://api.naijabase.dev/projects/YOUR_ID/webhooks/flutterwave