P
Praqor / Documentation
Contact Sales
Introduction

Praqor Developer API

Praqor is payment infrastructure for USDT on TRON. It delivers deterministic address allocation, continuous TRC20 event monitoring for verification, 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"
}
GET

/api/v1/payments/{id}

Retrieves the details of an existing payment intent.

// 200 OK Response
{
"id": "pay_01K89Z2V0M918",
"amount_usdt": "150.000000",
"wallet_address": "TXYZopYRdj2D9XRtbG411XZZ3kM5VkAeBf",
"status": "pending",
...
}
GET

/api/v1/payments

Returns a list of all payments associated with your API key. Supports pagination and status filtering.

GET

/api/v1/payments/{id}/events

Returns an audit trail of all events (creation, detection, confirmation, expiry) for a specific payment.

Webhooks

Cryptographic Webhooks

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

// Robust Verification in Node.js
const crypto = require('crypto');
function verifyWebhook(rawBody, sigHeader, tsHeader, secret) {
// Check for replay attacks (5 minute tolerance)
const currentTs = Math.floor(Date.now() / 1000);
if (currentTs - parseInt(tsHeader) > 300) return false;
const payload = tsHeader + '.' + rawBody;
const expected = crypto.createHmac('sha256', secret)
.update(payload)
.digest('hex');
return crypto.timingSafeEqual(
Buffer.from(sigHeader),
Buffer.from(`v1=${expected}`)
);
}
Errors

Error Handling

All errors return a consistent JSON body with a machine-readable code field.

HTTP Status Code Description
400 invalid_request Missing or invalid parameters in the request body.
401 unauthorized Invalid, expired, or missing API key.
404 not_found The requested resource does not exist or does not belong to your partner account.
409 conflict Idempotency key conflict - the key was used with a different request body.
422 payment_limit_exceeded Your account has reached the maximum number of concurrent pending payments.
429 rate_limited Request rate exceeded. Implement exponential backoff and retry.
500 internal_error Unexpected server-side failure. Contact [email protected] if this persists.