API for payment teams
Create invoices, redirect customers to checkout, receive signed webhook events and reconcile payment states in your own system.
Authentication
Pass the key in a header. All responses are JSON. Base URL: https://crynova.io/api/v1
Authorization: Bearer cryn_live_xxx
X-Api-Key: cryn_live_xxx
curl -X POST https://crynova.io/api/v1/invoices \
-H "Authorization: Bearer cryn_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"amount": "149.00",
"currency": "USDT_TRC20",
"order_id": "ORD-1048",
"description": "Order payment",
"metadata": { "customer_id": "cus_9281" }
}'
API capabilities
Create invoice
Generate payment requests with amount, currency, order ID and metadata.
Poll status
Read invoice state for reconciliation and support workflows.
Webhook events
Receive invoice.paid, invoice.expired and confirmation updates.
Endpoints
| Method | Endpoint | Purpose |
|---|---|---|
| GET | /currencies | List available currencies and networks. |
| GET | /invoices | List invoices with filters. |
| POST | /invoices | Create an invoice and get address + checkout URL. |
| GET | /invoices/{uuid} | Full invoice details. |
| GET | /invoices/{uuid}/status | Lightweight status & confirmations check. |
| POST | /invoices/{uuid}/cancel | Cancel an unpaid invoice. |
Response
{
"invoice_id": "7a4f...",
"status": "pending",
"currency": "USDT_TRC20",
"amount": "149.00",
"pay_address": "TR7x...",
"checkout_url": "https://crynova.io/pay/7a4f...",
"expires_at": "2026-06-07T12:30:00+00:00"
}
Webhook — events & payload
X-Crynova-Event: invoice.paid
X-Crynova-Sig: sha256=...
{
"event": "invoice.paid",
"invoice_id": "7a4f...",
"status": "paid",
"amount": "149.00",
"received": "149.00",
"currency": "USDT_TRC20"
}
Events
invoice.created
Invoice created.
invoice.waiting_confirmations
Transaction detected.
invoice.paid
Paid in full.
invoice.underpaid
Received less than due.
invoice.expired
Expired / cancelled.
Signature verification
Every webhook is signed with HMAC-SHA256. Verify the X-Crynova-Sig header.
$sig = 'sha256=' . hash_hmac(
'sha256', $rawBody, $secret
);
if (! hash_equals($sig, $header)) {
abort(401);
}
Ready to integrate?
Create a project, get an API key and accept your first payment in minutes.