مستندات API درگاه پرداخت

نسخه ۱.۰ — REST API برای ساخت و مدیریت فاکتورهای پرداخت
اعتبارسنجی ساخت فاکتور پاسخ‌ها وب‌هوک (Callback) کدهای خطا مثال کامل

اعتبارسنجی

تمام درخواست‌ها باید شامل هدرهای کلید API باشند:

X-API-KEY: pk_********
X-API-SECRET: sk_********
کلیدها را از بخش تنظیمات توسعه‌دهنده در مینی‌اپ یا پنل مدیریت دریافت کنید.

ساخت فاکتور

POST /bot2/v1.php?action=api_request_invoice

پارامترهای Body (JSON)

پارامترنوعوضعیتتوضیحات
amountintegerاجباریمبلغ پایه به تومان (حداقل ۱,۰۰۰)
gateway_typestringاختیاریpool (پیش‌فرض) یا own (کارت شخصی)
callback_urlstringاختیاریآدرس وب‌هوک برای اطلاع از وضعیت پرداخت
api_keystringاختیاریکلید API (در صورت عدم ارسال هدر)
api_secretstringاختیاریسکرت API (در صورت عدم ارسال هدر)

پاسخ‌ها

پاسخ موفق (HTTP 201)

{
  "success": true,
  "status": 201,
  "data": {
    "authority": "INV_6a5d52c268309",
    "payment_url": "https://example.com/bot2/pay.html?id=INV_6a5d52c268309",
    "amount": 500000,
    "payable": 502500,
    "fee_amount": 2500,
    "net_amount": 500000,
    "gateway_type": "pool",
    "status": "awaiting_payment"
  }
}

پاسخ خطا (HTTP 401)

{
  "success": false,
  "status": 401,
  "message": "اعتبارسنجی کلید API ناموفق بود."
}
فیلدتوضیحات
authorityکد یکتای فاکتور — برای بررسی وضعیت استفاده می‌شود
payment_urlلینک صفحه پرداخت — کاربر باید به این آدرس هدایت شود
amountمبلغ پایه درخواستی
payableمبلغ نهایی قابل پرداخت (پایه + کارمزد)
fee_amountمبلغ کارمزد
net_amountمبلغ خالصی که به بالانس کاربر اضافه می‌شود
gateway_typeنوع درگاه: pool یا own

وب‌هوک (Callback)

پس از تایید پرداخت (خودکار یا دستی)، اگر callback_url تنظیم شده باشد، یک درخواست POST به آن آدرس ارسال می‌شود:

{
  "status": 1,
  "invoice_id": "INV_6a5d52c268309",
  "amount": 502500
}
status=1 یعنی پرداخت تایید شده.
status=0 یعنی پرداخت ناموفق یا منقضی شده (در صورت ارسال).

کدهای خطا

HTTP Statusمعنی
201فاکتور با موفقیت ساخته شد
401کلید API نامعتبر یا اکانت غیرفعال
404Endpoint نامعتبر

مثال کامل (PHP)

<?php
 $data = [
    'amount' => 500000,
    'gateway_type' => 'pool',
    'callback_url' => 'https://yoursite.com/verify.php'
];

 $ch = curl_init('https://example.com/bot2/v1.php?action=api_request_invoice');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'X-API-KEY: pk_********',
    'X-API-SECRET: sk_********'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

 $response = curl_exec($ch);
 $result = json_decode($response, true);

if ($result['success']) {
    // هدایت کاربر به صفحه پرداخت
    header('Location: ' . $result['data']['payment_url']);
    exit;
} else {
    echo 'خطا: ' . $result['message'];
}

مثال کامل (cURL)

curl -X POST "https://example.com/bot2/v1.php?action=api_request_invoice" \
  -H "Content-Type: application/json" \
  -H "X-API-KEY: pk_********" \
  -H "X-API-SECRET: sk_********" \
  -d '{"amount": 100000, "callback_url": "https://yoursite.com/callback"}'
نکته مهم: مبلغ واریزی کاربر ممکن است مبلغ پایه دقیق نباشد (به دلیل مکانیزم ضد تداخل پیامک). همیشه از فیلد payable در پاسخ برای نمایش مبلغ به کاربر استفاده کنید.