Quickstart: khoản nạp crypto đầu tiên trong 5 phút
Bạn cần một địa chỉ ví do bạn kiểm soát và một URL công khai có thể nhận webhook. Không cần đăng ký, không cần API key.
1. Tạo địa chỉ nạp tiền
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"
}'
Phản hồi chứa id và address. Hãy hiển thị address cho người thanh toán. Gửi lại cùng yêu cầu sẽ trả về cùng địa chỉ nên có thể thử lại an toàn.
2. Nhận webhook
Khi khoản nạp đạt ngưỡng xác nhận (19 trên TRON), ChainPay gửi POST với status: "confirmed" tới callbackUrl của bạn. Sau đó tiền được chuyển tới forwardAddress của bạn, đã trừ phí. Hãy tự kiểm tra giá trị token trong query: webhook không được ký.
3. Đối soát bằng API trạng thái
curl https://api.chainpay.site/deposit-address/ADDRESS_ID/status
curl https://api.chainpay.site/deposit-address/ADDRESS_ID/transactions
Coi webhook là «ít nhất một lần» và dùng các endpoint này làm nguồn đối chiếu chính xác.
Ví dụ bằng ngôn ngữ của bạn
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'];