Auto payment detection
Payments are detected automatically and orders update without manual checking.
Integrate QubixPay like Razorpay or Stripe. You only need a Key ID and Secret on your server — never in the browser.
QubixPay combines a merchant dashboard, secure APIs, and checkout in one payment gateway.
Payments are detected automatically and orders update without manual checking.
Create pay links, view history, export CSV, see UTR/payment reference.
Create and track orders from your server with protected API access.
Each payment has a clear time window. Late payments are flagged for easy refund handling.
If customer pays late, you still get UTR shown so you can refund correctly.
Embed QR checkout as a popup/iframe inside your website or app.
Create a payment link from the dashboard or from your website checkout.
Customer pays via UPI using the QR or payment page you share.
Order status updates automatically in your dashboard and on your website.
Daily/monthly limits apply per plan. Upgrade from the dashboard when you need more volume.
For small merchants & testing
For production merchants
Log in to the dashboard and use Generate API Key to get your Key ID and Secret. Never expose the secret in client-side code or public pages.
Call POST /v1/orders from your server. The response includes paymentUrl — redirect or open it for the customer.
import { createOrder } from '../sdk/node/qubixpay.js';
app.post('/checkout', async (req, res) => {
const order = await createOrder({
baseUrl: process.env.QUBIXPAY_BACKEND_URL,
keyId: process.env.QUBIXPAY_KEY_ID,
secret: process.env.QUBIXPAY_SECRET,
amount: 499,
description: 'Order #123',
meta: { storeOrderId: '123' }
});
res.redirect(order.paymentUrl);
});
When a payment completes or fails, QubixPay sends a notification to your server URL so you can update your order.
app.post('/qubixpay/webhook', express.json(), (req, res) => {
const evt = req.body;
// Use evt to update your order (paid, failed, or needs refund)
if (evt.status === 'paid') {
// mark your order paid
} else if (evt.status === 'failed') {
// mark failed
}
res.status(200).send('OK');
});
Always verify incoming payment notifications on your server. Use the webhook secret from your dashboard settings — do not share it publicly.
Use the test console to try a payment with your API credentials and verify the full checkout flow.