Merchant Integration Engine
Welcome to the Paynexa API guide. In less than 5 minutes, you can plug crypto native non-custodial recurring subscription checking parameters right into your frontend layout application or SaaS platform.
🛡️ Sentry Diagnostic Verification
Click this button to fire an intentional component exception. Use it to check if telemetry data arrives safely inside your cloud issue stream dashboard tracker.
Step 1: Generating a Subscription Plan Link
Before routing customer checkout attempts, you must define your pricing terms directly on our smart dashboard interface layers:
- Connect your business owner Web3 wallet on the Merchant Dashboard page.
- Click on the + Create Plan action anchor button in the global navbar header.
- Provide your subscription name variables, desired pricing structure parameters, and billing interval schedules (e.g., Monthly, Yearly).
- Confirm the creation step. Your generated tier array instantly allocates a secure link string variable formatted as:
/checkout/[PLAN_ID].
Step 2: Embedding Your Checkout Link
Copy your unique link string from the dashboard overview table list and hook it up directly to call actions, landing layouts, or payment cards anywhere on your website code stack:
<a href="https://paynexa.com/checkout/YOUR_PLAN_ID" style="background: #2563eb; color: white; padding: 12px 24px; border-radius: 8px; text-decoration: none; font-weight: bold;"> Subscribe with Web3 Wallet </a>
Step 3: Handling Post-Payment Redirects
Once a user verifies their wallet connection and submits their payment signature transaction safely on our secure interface, Paynexa automatically forwards them back to the destination callback URL designated inside your account profile settings.
Pass Passthrough Data via URL Query Strings
Want to map accounts easily? Append custom parameters like ?email=user@test.com to your payment link target. Paynexa will carry these query strings cleanly along to your callback success dashboard!
Step 4: Verifying the Webhook Payload
Whenever a customer registers an active billing window, our background infrastructure fires an asynchronous HTTP POST request event trigger directly into your application webhook destination.
JSON Structure Response Payload
{
"id": "sub_6182937192",
"event": "subscription.created",
"createdAt": "2026-05-27T08:30:00.000Z",
"data": {
"userAddress": "0x71c7656ec7ab88b098defb751b7401b5f6d8976f",
"userEmail": "customer@merchant.com",
"planId": "65f12a3b4c5d6e7f8a9b0c1d",
"transactionHash": "0x93b2a...714f",
"expiryDate": "2026-06-27T08:30:00.000Z",
"status": "active"
}
}Verifying Node.js Webhook Handshake (SHA256)
const crypto = require('crypto');
app.post('/webhooks/paynexa', (req, res) => {
const signature = req.headers['x-paynexa-signature'];
const payload = JSON.stringify(req.body);
// Verify webhook origins using your private signing secret
const expectedSignature = crypto
.createHmac('sha256', process.env.PAYNEXA_WEBHOOK_SECRET)
.update(payload)
.digest('hex');
if (signature !== expectedSignature) {
return res.status(401).send('Invalid signature handshake');
}
const { event, data } = req.body;
if (event === 'subscription.created') {
// 🔓 Unlock your SaaS infrastructure tier access here
console.log(`Provisioning access for ${data.userEmail}`);
}
res.status(200).json({ received: true });
});