API Documentation
Complete reference for integrating with our API services
Payment Gateway Base URL
https://vucl.in/api/merchant
For merchants accepting payments. Requires HMAC-SHA256 signed requests.
Authentication
x-api-key:
YOUR_MERCHANT_API_KEYx-signature:
HMAC-SHA256(request_body, YOUR_API_SECRET)content-type:
application/jsonEndpoints
POST
/api/merchant/payins
CREATE PAYMENT
Create a payment link for your customer.
Request Body
{
"order_id": "your_unique_order_id",
"amount": 199,
"redirect_url": "https://yoursite.com/order/123/thanks"
}
redirect_url is required — we echo it in the status endpoint and every webhook so you can send your customer back after payment.
Response
{
"order_id": "your_unique_order_id",
"checkout_url": "https://gateway.example/pay/...",
"status": "pending",
"redirect_url": "https://yoursite.com/order/123/thanks"
}
GET
/api/merchant/payins/{order_id}
Check payment status.
Response
{
"order_id": "your_unique_order_id",
"amount": 199,
"commission": 29.85,
"net_amount": 169.15,
"status": "paid",
"redirect_url": "https://yoursite.com/order/123/thanks"
}
GET
/api/merchant/balance
Response
{
"balance": 1250.50,
"total_earned": 5000.00,
"total_settled": 3749.50,
"currency": "INR"
}
POST
/api/merchant/withdraw
WITHDRAW
Settle your balance to UPI, bank account or USDT.
Request Body
{
"amount": 500,
"method": "upi",
"upi_id": "yourname@upi"
}
/* method: "bank" */
{
"amount": 500,
"method": "bank",
"bank_account": "123456789012",
"ifsc": "HDFC0001234",
"bank_name": "HDFC Bank"
}
/* method: "usdt" */
{
"amount": 500,
"method": "usdt",
"usdt_address": "TXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
}
Destination fields are optional when saved in Merchant → Settings. Amounts below the method minimum (bank ₹100 · UPI ₹200 · USDT ₹30,000) return 400 below_min_withdrawal.
Response
{
"settlement_id": 1,
"amount": 500,
"method": "upi",
"beneficiary_account": "yourname@upi",
"status": "processing"
}
POST
YOUR_WEBHOOK_URL
WEBHOOK
Set your Webhook URL in Merchant → Settings. When a payment reaches a final state we POST a signed JSON payload (headers: x-signature: HMAC-SHA256(body, api_secret)).
Payload
{
"event": "payin.updated",
"order_id": "your_unique_order_id",
"amount": 199,
"commission": 29.85,
"net_amount": 169.15,
"status": "success",
"utr": "422519876543",
"paid_at": "2026-09-22T18:34:10+00:00",
"redirect_url": "https://yoursite.com/order/123/thanks"
}