مستندات API بیتپل برای پرداخت تتر

کلید را از پنل بگیرید، با X-API-KEY پرداخت USDT بسازید و نتیجه را از وبهوک بگیرید.

کلید از پنل

بعد از ورود به داشبورد، از «کلیدهای API» کلید بسازید.

هدر درخواست

فقط X-API-KEY برای ساخت پرداخت لازم است.

فقط USDT

شبکه‌های قابل دریافت: ERC20، TRC20 و BEP20.

کلید API

ساخت کلید فقط از داخل داشبورد انجام می‌شود

  1. ۱. وارد پنل مرچنت شوید.
  2. ۲. از منو به کلیدهای API بروید.
  3. ۳. روی کلید جدید بزنید و یک نام بگذارید.
  4. ۴. مقدار کلید (public_key) را کپی کنید.
مهم: همین کلید را در هدر X-API-KEY برای ساخت پرداخت بفرستید.
X-API-KEY: pk_XXXXXXXXXXXXXXXXXXXXXXXX

ایجاد پرداخت

POST /api/v1/payment/create

فقط USDT روی ERC20، TRC20 و BEP20. پاسخ شامل payment_url است. برای فعال شدن پیامک مشتری، customer_phone را بفرستید یا در صفحه پرداخت ثبت کنید.

صفحه پرداخت سه‌زبانه: فیلد اختیاری language را با مقدار fa برای فارسی، ar برای عربی یا en برای انگلیسی ارسال کنید. پیش‌فرض فارسی است؛ مقدار خالی یا نامعتبر خطای ۴۲۲ دارد. این گزینه در پنل و API ساخت پرداخت در دسترس است و در پاسخ با payment.language برمی‌گردد. راهنمای کیف پول و وضعیت پرداخت با جهت نوشتار مناسب نمایش داده می‌شوند. توضیح سفارش را خودتان به زبان مشتری بنویسید؛ زبان پیامک با این گزینه تغییر نمی‌کند.
نکته شبکه: در BEP20 آدرس پرداخت با 0x شروع می‌شود، پرداخت‌کننده باید USDT را روی BNB Smart Chain ارسال کند و کف کارمزد این شبکه ۱ USDT است؛ ارسال از شبکه دیگر قابل قبول نیست.
برای کنترل هزینه شبکه، حداقل مبلغ پرداخت USDT روی ERC20 ۵۰۰ USDT است. این حداقل برای TRC20 و BEP20 اعمال نمی‌شود.
Body
{
  "amount": 100,
  "currency": "USDT",
  "network": "TRC20",
  "order_id": "order_123",
  "callback_url": "https://yoursite.com/callback",
  "description": "خرید محصول X",
  "customer_phone": "09123456789",
  "language": "fa"
}
201 Created
{
  "payment_id": "PAY_ABC123XYZ",
  "payment_url": "https://bitpal.pro/pay/PAY_ABC123XYZ",
  "payment": {
    "payment_id": "PAY_ABC123XYZ",
    "order_id": "order_123",
    "amount": "100.00000000",
    "currency": "USDT",
    "network": "TRC20",
    "address": "TXyz1234567890abcdef1234567890abcd",
    "status": "pending",
    "language": "fa"
  }
}
cURL
curl -X POST https://your-domain.com/api/v1/payment/create \
  -H "X-API-KEY: pk_XXXXXXXXXXXXXXXXXXXXXXXX" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "amount": 100,
    "currency": "USDT",
    "network": "TRC20",
    "language": "fa",
    "order_id": "ORD-12345",
    "callback_url": "https://yoursite.com/callback"
  }'

Webhook و امضا

آدرس وبهوک را در صفحه وبهوک داشبورد تنظیم کنید. اعلان تأیید به همان آدرس می‌رود؛ فیلد callback_url مقصد وبهوک نیست و فقط روی خود پرداخت ذخیره می‌شود.

نکته: هدر X-Signature را با HMAC-SHA256 روی بدنه JSON و webhook_secret خودتان چک کنید.
Webhook payload
{
  "payment_id": "PAY_ABC123XYZ",
  "order_id": "order_123",
  "status": "confirmed",
  "amount": "100.00000000",
  "currency": "USDT",
  "network": "TRC20",
  "address": "TXyz1234567890abcdef1234567890abcd",
  "tx_hash": "0xabc123..."
}

نمونه کد

PHP
<?php
$response = Http::withHeaders([
    'X-API-KEY' => $publicKey,
    'Accept' => 'application/json',
])->post(config('app.url') . '/api/v1/payment/create', [
    'amount' => 100,
    'currency' => 'USDT',
    'network' => 'TRC20',
    'language' => 'fa',
    'order_id' => 'order_123',
    'callback_url' => 'https://yoursite.com/callback',
]);
JavaScript
const response = await fetch('/api/v1/payment/create', {
  method: 'POST',
  headers: {
    'X-API-KEY': publicKey,
    'Content-Type': 'application/json',
    Accept: 'application/json',
  },
  body: JSON.stringify({
    amount: 100,
    currency: 'USDT',
    network: 'TRC20',
    language: 'fa',
    order_id: 'order_123',
    callback_url: 'https://yoursite.com/callback',
  }),
});