Quickstart: tu primer depósito cripto en 5 minutos
Necesitas una dirección de wallet que controles y una URL pública que pueda recibir un webhook. Sin registro y sin API key.
1. Crea una dirección de depósito
curl -X POST https://api.chainpay.site/deposit-address \
-H 'content-type: application/json' \
-d '{
"ticker": "trc20/usdt",
"callbackUrl": "https://your-service.example.com/webhook?token=your-secret",
"forwardAddress": "TYourOwnTronWallet...",
"externalReference": "order-123"
}'
La respuesta contiene id y address. Muestra address al pagador. Repetir la misma petición devuelve la misma dirección, así que los reintentos son seguros.
2. Recibe el webhook
Cuando el depósito alcanza el umbral de confirmaciones (19 en TRON), ChainPay envía un POST con status: "confirmed" a tu callbackUrl. Después los fondos se envían a tu forwardAddress, menos la comisión. Comprueba tú mismo el valor token de la query: los webhooks no están firmados.
3. Concilia con la API de estado
curl https://api.chainpay.site/deposit-address/ADDRESS_ID/status
curl https://api.chainpay.site/deposit-address/ADDRESS_ID/transactions
Trata los webhooks como «al menos una vez» y usa estos endpoints como fuente de verdad.
Ejemplos en tu lenguaje
Node.js
const res = await fetch('https://api.chainpay.site/deposit-address', {
method: 'POST',
headers: { 'content-type': 'application/json' },
body: JSON.stringify({
ticker: 'trc20/usdt',
callbackUrl: 'https://your-service.example.com/webhook?token=your-secret',
forwardAddress: 'TYourOwnTronWallet...',
externalReference: 'order-123',
}),
});
const { id, address } = await res.json();
Python
import requests
r = requests.post("https://api.chainpay.site/deposit-address", json={
"ticker": "trc20/usdt",
"callbackUrl": "https://your-service.example.com/webhook?token=your-secret",
"forwardAddress": "TYourOwnTronWallet...",
"externalReference": "order-123",
})
address = r.json()["address"]
PHP
$ch = curl_init('https://api.chainpay.site/deposit-address');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode([
'ticker' => 'trc20/usdt',
'callbackUrl' => 'https://your-service.example.com/webhook?token=your-secret',
'forwardAddress' => 'TYourOwnTronWallet...',
'externalReference' => 'order-123',
]),
]);
$address = json_decode(curl_exec($ch), true)['address'];