P
Praqor / Documentation
Console
Introduction

Praqor Developer API

Praqor is payment infrastructure for USDT on TRON. It delivers deterministic address allocation, real-time block event monitoring, and signed webhook notifications.

Base URL
https://api.praqor.com
Supported Asset
USDT (TRC-20)
Default Expiry
60 Minutes
Workflow

Quick Start Integration

Follow these 3 standard steps to accept payments in your application.

1

Create a Payment Intent

// Request payment address for an order
curl -X POST https://api.praqor.com/api/v1/payments \
-H "Authorization: Bearer prq_live_..." \
-H "Content-Type: application/json" \
-d '{"amount": 100.00, "reference": "ORDER-101"}'
2

Present the payment address to the user

The API returns a dedicated TRON wallet address with 60 minutes settlement window.

3

Fulfill Order on Webhook Confirmation

When on-chain transfer is confirmed, Praqor sends an authenticated HMAC webhook to your server.

Security

Authentication

All API requests must be transmitted over HTTPS. Authentication is achieved via standard Bearer tokens in the HTTP Authorization header.

// Partner API Authentication
Authorization: Bearer prq_live_9f8a201b...
Content-Type: application/json
POST

/api/v1/payments

Creates a new payment intent and reserves an HD wallet deposit address from the pool.

Parameter Type Required Description
amount float Required Amount of USDT to accept (e.g. 150.00). Must be greater than 0.
reference string Required Your internal system identifier for the order or invoice.
// 201 Created Response
{
"id": "pay_01K89Z2V0M918",
"amount_usdt": "150.000000",
"wallet_address": "Txxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"status": "pending",
"network": "nile",
"expires_at": "2026-09-01T21:00:00Z"
}
Webhooks

Cryptographic Webhooks

Praqor signs all webhook payloads with HMAC-SHA256 to guarantee origin authenticity.

// Verification in Node.js
const crypto = require('crypto');
function verifyWebhook(rawPayload, signatureHeader, timestamp, secret) {
const expected = crypto.createHmac('sha256', secret)
.update(`${timestamp}.${rawPayload}`)
.digest('hex');
return signatureHeader === `v1=${expected}`;
}