API reference
Build the checkout on your site.
Every call is JSON. Show pay_address and pay_amount yourself. checkout_url is optional.
Authentication
Send the key on every request. Keep it on the server. Do not put it in the browser.
x-api-key: YOUR_KEY Authorization: Bearer YOUR_KEY
A missing or wrong key returns 401.
GEThttps://paynock.com/v1/currencies
Currencies
The coins this desk can watch.
Request
curl https://paynock.com/v1/currencies \ -H "x-api-key: YOUR_KEY"
Response
{
"currencies": [
{ "code": "usdttrc20", "asset": "USDT", "network": "Tron · TRC20" }
]
}
usdttrc20usdtbscusdterc20usdttontrxtonbnbdogeltc
POSThttps://paynock.com/v1/payment
Create a payment
Price is in USD. The returned amount is unique, so the customer must send that figure, not a round number.
| Field | Required | |
|---|---|---|
price_amount | yes | USD price, for example 6 |
price_currency | yes | usd |
pay_currency | yes | A code from currencies |
order_id | yes | Your order id, up to 64 characters |
order_description | yes | Sent back on the webhook |
ipn_callback_url | yes | HTTPS URL on your server |
Request
curl https://paynock.com/v1/payment \
-H "x-api-key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"price_amount": 6,
"price_currency": "usd",
"pay_currency": "usdttrc20",
"order_id": "ORDER-1001",
"order_description": "Plan 1m [email protected]",
"ipn_callback_url": "https://your-site.com/ipn"
}'
Response 201
{
"payment_id": "pn_ab12cd34ef567890",
"payment_status": "waiting",
"pay_address": "T...",
"pay_amount": "6.001",
"pay_currency": "usdttrc20",
"asset": "USDT",
"network": "Tron · TRC20",
"price_amount": "6.00",
"order_id": "ORDER-1001",
"expires_at": "2026-11-07 16:00:00",
"checkout_url": "https://paynock.com/pay/pn_ab12cd34ef567890"
}
GEThttps://paynock.com/v1/payment/{id}
Payment status
waiting until the exact amount is seen. Then finished. After the window, expired.
curl https://paynock.com/v1/payment/pn_ab12cd34ef567890 \ -H "x-api-key: YOUR_KEY"
POSTyour ipn_callback_url
Webhook
Paynock posts this body when the invoice is finished. Sign the raw body with HMAC-SHA512 and compare it to x-nowpayments-sig. Answer with OK.
{
"payment_id": "pn_ab12cd34ef567890",
"payment_status": "finished",
"order_id": "ORDER-1001",
"order_description": "Plan 1m [email protected]",
"pay_amount": "6.001",
"pay_currency": "usdttrc20",
"price_amount": 6,
"price_currency": "usd"
}