API Endpoints
All endpoints require x-api-key header. Base URL: https://paynovax.online/api/v1
Deposit
x-api-key required
POST
/payment/create
Create payment session
Generates a unique ephemeral BSC wallet address and QR code. The platform monitors the wallet and forwards received tokens to your merchant wallet automatically. Sessions expire after the configured TTL (default 15 min).
Request Body
{
"tokenId": 1, // required
"amount": "49.99", // required
"merchantWallet": "0xAbc…", // optional
"domainId": 3 // optional (server-side)
}
Response 201
{
"sessionId": "ps_abc123",
"depositAddress": "0x9f…",
"qrCode": "data:image/png;…",
"amount": "49.99",
"token": "USDT",
"expiresAt": "2026-03-23T12:30:00Z",
"status": "pending"
}
Possible Errors
GET
/payment/:sessionId/status
Poll payment status
Returns the current state of a payment session. Poll every 5–10 seconds until status is completed or expired.
// Response 200
{
"sessionId": "ps_abc123",
"status": "pending" | "completed" | "expired" | "cancelled",
"amount": "49.99",
"receivedAmount": "49.99" | null,
"txHash": "0xDead…" | null,
"expiresAt": "2026-03-23T12:30:00Z"
}
POST
/payment/:sessionId/cancel
Cancel pending session
Cancels a pending session. No request body required. Has no effect on sessions already completed or expired.
// Response 200
{ "success": true, "data": { "message": "Payment session cancelled." } }
GET
/payment/history
List payment sessions
Paginated list of payment sessions for the API key.
Query Params
page
limit
·
status
= pending | completed | expired | cancelled
// Response 200
{
"items": [ /* session objects */ ],
"meta": { "page": 1, "limit": 20, "total": 143, "pages": 8 }
}
Withdrawal
x-api-key required
POST
/withdrawal/send
Send BEP-20 token
Sends BEP-20 tokens from the domain's withdrawal wallet to a recipient BSC address.
Request Body
{
"domainId": 3, // required
"tokenId": 1, // required
"toAddress": "0xRecipient…", // required
"amount": "100.00" // required
}
Response 201
{
"withdrawalId": "wd_xyz789",
"txHash": "0xDEF…",
"amount": "100.00",
"token": "USDT",
"toAddress": "0xRecipient…",
"status": "submitted"
}
Possible Errors
GET
/withdrawal/history
List withdrawals
Paginated list of withdrawal records for the API key.
Query Params
page
limit
·
status
= submitted | completed | failed
// Response 200
{
"items": [ /* withdrawal objects */ ],
"meta": { "page": 1, "limit": 20, "total": 57, "pages": 3 }
}
GET
/withdrawal/:withdrawalId
Get single withdrawal
Returns a single withdrawal record by ID. Returns NOT_FOUND if the ID doesn't belong to the authenticated API key.