Overview

QubixPay Gateway – Merchant Integration

QubixPay ko aap Razorpay/Stripe ke tarah integrate kar sakte ho. Aapko sirf Key ID + Secret chahiye (server-side).

API auth
HMAC signature
Realtime updates
SSE + device settle
Late payments
Refund required

1) API keys (dashboard se)

Dashboard me login karke “Generate API Key” se aapko Key ID (zk_...) aur Secret (zs_...) milega. Secret ko kabhi browser me expose mat karein.

Recommended ENV
QUBIXPAY_BACKEND_URL → your QubixPay backend URL
QUBIXPAY_KEY_IDzk_...
QUBIXPAY_SECRETzs_...

2) Create order (server-to-server)

Aapke server se POST /v1/orders call hota hai. Response me aapko paymentUrl milega jise customer ko open/redirect karna hai.

Node (server)
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);
});

3) Webhooks

Payment complete hone par QubixPay aapke webhook URL par events bhejta hai: payment.success, payment.failed, refund.required.

Express webhook handler
app.post('/qubixpay/webhook', express.json(), (req, res) => {
  const evt = req.body;
  // evt.event, evt.orderId, evt.amount, evt.status, evt.paymentId

  if (evt.event === 'payment.success') {
    // mark your order paid
  } else if (evt.event === 'refund.required') {
    // customer paid late → refund required
  } else if (evt.event === 'payment.failed') {
    // mark failed
  }
  res.status(200).send('OK');
});

4) Verify QubixPay webhook signature

QubixPay outgoing webhook headers: x-zapupi-ts, x-zapupi-signature. Signature formula: HMAC_SHA256(webhookSecret, `${ts}.${body}`)

Webhook secret dashboard me “Webhook Settings” se milega (ya merchant record me generate hota hai).

5) Test console

Test console se aap manually Key ID + Secret daal ke order create kar sakte ho, aur checkout flow test kar sakte ho.

Tip: Keys/secret ko browser me mat rakho. Production me secret server env me hi rakho.