Developer Documentation
Welcome to the Quickremita API documentation. Our platform enables businesses to orchestrate complex payment flows, manage virtual accounts, and process transactions with institutional-grade security.
Secure & Compliant
Built on industry-standard encryption protocols and fully PCI-DSS compliant infrastructure.
Lightning Fast
Optimize your workflows with sub-millisecond API response times and global edge nodes.
"Quickremita redefined how we handle high-volume settlements." — TechCorp Engineering
API Authentication
All API requests require authentication using your Business ID and Secret Key. You can find these credentials in your Developer Settings after logging in.
Important Security Notice
Never share your Secret Key publicly. Always use environment variables or secure vaults.
https://merchant.bexlo.com.ng/api/v1
Virtual Accounts
Generate unique, dedicated virtual bank accounts for each of your customers to streamline bank transfer collections. Automate reconciliation and gain instant visibility.
Wema Bank
bank: wema-bank
Titan Paystack
bank: titan-paystack
Create Virtual Account (PHP)
<?php
// Create Virtual Account API
$apiUrl = "https://merchant.bexlo.com.ng/api/v1/virtual_account/";
// Your credentials from Developer Dashboard
$payload = [
"business_id" => "YOUR_BUSINESS_ID",
"secret_key" => "YOUR_SECRET_KEY",
"email" => "customer@gmail.com",
"first_name" => "John",
"last_name" => "Doe",
"phone" => "08012345678",
"bank" => "wema-bank" // or titan-paystack
];
// Initialize cURL
$ch = curl_init($apiUrl);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode($payload),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"Accept: application/json"
],
]);
$response = curl_exec($ch);
$err = curl_error($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($err) {
echo "cURL Error: " . $err;
} else {
$data = json_decode($response, true);
if ($data['status'] == 1) {
echo "Account: " . $data['data']['account_number'];
}
}
Success Response
{
"status": 1,
"message": "Virtual account Created",
"data": {
"account_name": "BEXPAY/DOE JOHN",
"account_number": "9810719346",
"bank_name": "Wema Bank",
"provider": "wema-bank"
}
}
Webhooks
Subscribe to events on your account so your application can automatically trigger reactions when changes occur. We use HTTPS POST to deliver JSON-formatted payloads to your server.
Webhook Handler (PHP)
<?php
/**
* Webhook Handler for Quickremita
* Copy this code to your endpoint: https://your-site.com/webhook.php
*/
// Get the raw POST data
$payload = file_get_contents("php://input");
$signature = $_SERVER['HTTP_X_WEBHOOK_SIGNATURE'] ?? '';
// Your secret key from Developer Dashboard
$secret = "YOUR_SECRET_KEY_HERE";
// Verify signature for security
$expected = hash_hmac('sha256', $payload, $secret);
if (!hash_equals($expected, $signature)) {
http_response_code(403);
exit("Invalid signature");
}
// Parse the payload
$data = json_decode($payload, true);
if (!$data) {
http_response_code(400);
exit("Invalid JSON");
}
// Process payment success event
if ($data['event'] === 'payment.success') {
$payment = $data['data'];
$amount = $payment['amount'];
$reference = $payment['reference'];
$senderName = $payment['sender_name'];
// TODO: Credit your user's account here
// UPDATE users SET balance = balance + $amount WHERE ...
// Log the payment
error_log("Payment received: $reference - ₦$amount from $senderName");
}
// Always return 200 OK
http_response_code(200);
echo "OK";
Example Webhook Payload
{
"event": "payment.success",
"data": {
"amount": 150,
"credited_amount": 148.50,
"charges": 1.50,
"reference": "090405260318182239129116302580",
"account_number": "9754714042",
"sender_name": "TIMZTECH DEV CONCEPTS",
"sender_bank": "Moniepoint MFB",
"date": "18 Mar 2026, 5:22 PM",
"status": "success"
}
}
HTTP Status Codes
The API uses standard HTTP response codes to indicate success or failure of a request.
Ready to start integrating?
Get your API keys and start building amazing payment experiences.
login Login to Get Started