Client Website Payment Integration
Collect payments and fund your Verixa NGX balance directly from your own website or application. You can initiate checkouts, trigger in-page Paystack popup modals with zero redirects, or display dedicated bank transfer accounts on your own domain.
In-Page Modal
Use the returned accessCode with Paystack Inline to open a secure payment popup on your site.
Direct Redirect
Redirect payers to checkoutUrl and receive them back at your custom callbackUrl.
Dedicated Account
Display your organization's Titan Trust Bank virtual account for instant credit via direct bank transfer.
/v1/billing/checkoutCall this endpoint from your backend server using your Verixa Live API key (Authorization: Bearer vrx_live_...).
curl -X POST https://api.verixa.io/v1/billing/checkout \ -H "Authorization: Bearer vrx_live_YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "amount": 25000, "customerEmail": "finance@yourcompany.com", "callbackUrl": "https://yourcompany.com/billing/callback", "metadata": { "orderId": "ORD-8821", "purpose": "wallet_funding" } }'{ "status": "success", "data": { "reference": "vrx_tx_8a92bfae", "checkoutUrl": "https://checkout.paystack.com/0peioxfhpn", "accessCode": "0peioxfhpn", "amount": 25000, "currency": "NGN", "customerEmail": "finance@yourcompany.com", "callbackUrl": "https://yourcompany.com/billing/callback", "dedicatedVirtualAccount": { "bankName": "Titan Trust Bank", "accountNumber": "9940182741", "accountName": "Verixa ID / Settlement", "status": "active" } }}Frontend Implementation Options
Option A: Seamless In-Page Popup (Zero Redirect)
Load Paystack Inline JS on your website. Once your backend returns the accessCode, trigger the popup modal directly:
<!-- Include Paystack Inline Script --><script src="https://js.paystack.co/v1/inline.js"></script><script>async function handlePayFromMyWebsite() { // 1. Call your own backend API which calls Verixa /v1/billing/checkout const res = await fetch('/api/create-payment', { method: 'POST', body: JSON.stringify({ amount: 25000 }) }); const { data } = await res.json(); // 2. Open Paystack popup directly on your website using accessCode const popup = PaystackPop.setup({ access_code: data.accessCode, onClose: function() { console.log('Customer dismissed payment popup'); }, callback: function(response) { console.log('Payment successful! Reference:', response.reference); // Verify payment status with your backend window.location.reload(); } }); popup.openIframe();}</script>Option B: Standard Hosted Redirect
Simply direct your user to the hosted checkout page:
// Redirect payer to checkoutUrlwindow.location.href = data.checkoutUrl;/v1/billing/payments/:referenceVerify real-time completion status of any payment reference. If the payment was completed on Paystack, calling this endpoint automatically verifies and credits your Live balance immediately.
curl -X GET https://api.verixa.io/v1/billing/payments/vrx_tx_8a92bfae \ -H "Authorization: Bearer vrx_live_YOUR_API_KEY"{ "status": "success", "data": { "reference": "vrx_tx_8a92bfae", "paymentStatus": "COMPLETED", "amount": 25000, "currency": "NGN", "description": "Paystack Verified Checkout", "paidAt": "2026-10-06T08:14:22.000Z" }}Real-time Webhook Notification
Whenever a payment is settled via card checkout or direct DVA bank transfer, Verixa dispatches a signed payment.completed event to your configured webhook URL.
{ "event": "payment.completed", "timestamp": "2026-10-06T08:14:23.102Z", "data": { "reference": "vrx_tx_8a92bfae", "amount": 25000, "currency": "NGN", "balance": 175000 }}