Nigerian payment gateway API for accepting card, USSD, bank transfer, QR code, and virtual account payments. Seerbit payment API for card payments Nigeria, USSD payments Africa, bank transfer payments, recurring subscriptions, virtual accounts, and more. Accept payments in Nigeria with Seerbit.
Seerbit is a comprehensive payment gateway that enables businesses to accept payments across multiple channels in Nigeria and West Africa. It provides APIs for card payments (Visa, Mastercard, Verve), USSD transfers, bank account transfers, QR code payments, virtual accounts, and mobile money solutions. With PCI-DSS certification and support for recurring payments, subscriptions, and tokenization, Seerbit is designed for developers building payment solutions across web, mobile, and backend systems.
Use Seerbit when you need to:
Not suitable for: Direct wallet transfers, payouts to customer accounts (use dedicated payout APIs), or cases where PCI compliance is not a priority.
Seerbit uses Bearer token authentication. You must obtain an encrypted key (bearer token) before making API requests.
Generate a bearer token by sending your merchant keys to the encryption endpoint:
Endpoint: POST https://seerbitapi.com/api/v2/encrypt/keys
Request:
{
"clientId": "YOUR_MERCHANT_PUBLIC_KEY",
"clientSecret": "YOUR_MERCHANT_SECRET_KEY"
}
Response:
{
"status": "SUCCESS",
"data": {
"code": "00",
"EncryptedSecKey": {
"encryptedKey": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
},
"message": "Successful"
}
}
Include the encryptedKey in the Authorization header for all subsequent API requests:
curl -X POST https://seerbitapi.com/api/v2/payments/initiates \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." \
-H "Content-Type: application/json" \
-d '{...}'
JavaScript/Node.js Example:
const axios = require('axios');
async function getEncryptedKey() {
const response = await axios.post('https://seerbitapi.com/api/v2/encrypt/keys', {
clientId: process.env.SEERBIT_PUBLIC_KEY,
clientSecret: process.env.SEERBIT_SECRET_KEY
});
return response.data.data.EncryptedSecKey.encryptedKey;
}
async function makePaymentRequest(bearerToken) {
const config = {
headers: {
'Authorization': `Bearer ${bearerToken}`,
'Content-Type': 'application/json'
}
};
const paymentData = {
publicKey: process.env.SEERBIT_PUBLIC_KEY,
amount: '5000',
currency: 'NGN',
paymentType: 'CARD',
reference: 'ref-' + Date.now()
};
const response = await axios.post(
'https://seerbitapi.com/api/v2/payments/initiates',
paymentData,
config
);
return response.data;
}
Python Example:
import requests
import os
def get_encrypted_key():
url = 'https://seerbitapi.com/api/v2/encrypt/keys'
payload = {
'clientId': os.getenv('SEERBIT_PUBLIC_KEY'),
'clientSecret': os.getenv('SEERBIT_SECRET_KEY')
}
response = requests.post(url, json=payload)
return response.json()['data']['EncryptedSecKey']['encryptedKey']
def initiate_payment(bearer_token):
url = 'https://seerbitapi.com/api/v2/payments/initiates'
headers = {
'Authorization': f'Bearer {bearer_token}',
'Content-Type': 'application/json'
}
payload = {
'publicKey': os.getenv('SEERBIT_PUBLIC_KEY'),
'amount': '5000',
'currency': 'NGN',
'paymentType': 'CARD',
'reference': f'ref-{int(time.time())}'
}
response = requests.post(url, json=payload, headers=headers)
return response.json()