Developers/Venomin Pay API
API SPECIFICATION v1 (SANDBOX PREVIEW)

Venomin Pay Integration Guide

Complete technical documentation for embedding Venomin Pay checkout flows, initiating payment intents, and verifying signed webhook notifications.

Sandbox Safety: Use test API endpoints with base URL https://api.venomin.com/sandbox/v1. No real payment credentials or live bank data are accepted in development sandbox mode.

1. API Authentication

All API requests must include your client identifier and authorization token in the request headers:

Authorization: Bearer vn_sbx_sec_••••••••••••••••
X-Merchant-ID: vn_merch_sbx_01h8...
Content-Type: application/json

2. Create Payment Intent

Initialize an idempotent payment checkout session:

POST /sandbox/v1/payments/intent
{
  "amount": 250.00,
  "currency": "USD",
  "orderId": "VN-ORD-202608-8842",
  "customer": {
    "id": "VN-CUS-94827103",
    "name": "Jane Doe",
    "email": "jane@example.com"
  },
  "callbackUrl": "https://yourapp.com/checkout/callback"
}

3. Webhook Signature Verification

Verify every incoming event signature using your webhook secret key and SHA-256 HMAC digest:

import crypto from 'crypto';

function verifyVenominWebhook(payloadString, signatureHeader, secretKey) {
  const expected = 'sha256=' + crypto
    .createHmac('sha256', secretKey)
    .update(payloadString)
    .digest('hex');
  return crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(signatureHeader));
}