Quickstart : votre premier dépôt crypto en 5 minutes
Il vous faut une adresse de wallet que vous contrôlez et une URL publique capable de recevoir un webhook. Sans inscription, sans clé API.
1. Créer une adresse de dépôt
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 réponse contient id et address. Affichez address au payeur. Répéter la même requête renvoie la même adresse : les relances sont donc sans risque.
2. Recevoir le webhook
Quand le dépôt atteint le seuil de confirmations (19 sur TRON), ChainPay envoie un POST avec status: "confirmed" à votre callbackUrl. Les fonds sont ensuite transférés à votre forwardAddress, frais déduits. Vérifiez vous-même la valeur token de la query : les webhooks ne sont pas signés.
3. Rapprocher avec l’API de statut
curl https://api.chainpay.site/deposit-address/ADDRESS_ID/status
curl https://api.chainpay.site/deposit-address/ADDRESS_ID/transactions
Considérez les webhooks comme « au moins une fois » et utilisez ces endpoints comme source de vérité.
Exemples dans votre langage
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'];