مستندات فاکتور واسط بیتلنسر
درگاه واسط بیتلنسر به شما امکان میدهد از داخل ربات تلگرام یا سایت خودتان، بهصورت خودکار برای مشتریانتان لینک پرداخت (فاکتور) بسازید، وضعیت پرداخت را استعلام بگیرید و با وبهوک از تکمیل پرداخت مطلع شوید. مبلغ دریافتی هر فاکتور بهصورت ترون (TRX) به کیفپول شما در بیتلنسر واریز میشود.
شروع سریع
- در بیتلنسر ثبتنام کرده و احراز هویت اولیه خود را تکمیل کنید.
- از صفحهی فاکتور واسط در پروفایل خود، یک کلید API بسازید.
- با همان کلید، درخواستهای زیر را از سرور خودتان (نه از داخل مرورگر کاربر) به آدرسهای این صفحه بزنید.
احراز هویت
همهی درخواستها باید کلید API شما را در هدر Authorization بهصورت زیر داشته باشند. کلید API با نشست ورود کاربران متفاوت است و مخصوص استفادهی سرور به سرور (ربات، بکاند سایت شما) طراحی شده؛ هرگز آن را در کد سمت کاربر (فرانتاند/اپلیکیشن موبایل) قرار ندهید.
Authorization: Bearer blk_live_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXساخت فاکتور
/api/v1/invoices| پارامتر | نوع | الزامی | توضیح |
|---|---|---|---|
amount | عدد | یکی از amount یا amount_toman الزامی است | مبلغ فاکتور به TRX (مقدار TRX ثابت میماند، مبلغ تومانی نمایشی با نرخ لحظهای محاسبه میشود) |
amount_toman | عدد | یکی از amount یا amount_toman الزامی است | مبلغ فاکتور به تومان - برای فروشگاههایی که قیمتشان تومانی و متغیر است. مبلغ تومانی ثابت میماند و مقدار TRX معادل آن در لحظهی پرداخت با نرخ روز محاسبه میشود (نه در لحظهی ساخت فاکتور)، پس مشتری همیشه دقیقاً همان مبلغ تومانی را پرداخت میکند. |
title | رشته | خیر | عنوان نمایشی فاکتور برای مشتری |
fee_payer | creator | payer | خیر (پیشفرض creator) | کارمزد از مبلغ دریافتی شما کم شود یا روی مبلغ پرداختی مشتری اضافه شود |
external_id | رشته | خیر | شناسهی سفارش در سیستم خودتان (در پاسخ و وبهوک برمیگردد) |
callback_url | رشته (URL) | خیر | آدرس وبهوک اختصاصی این فاکتور؛ در صورت خالی بودن، از آدرس پیشفرض کلید API استفاده میشود |
نمونه درخواست - قیمت ثابت به TRX (برای فروشندگانی که خودشان قیمت را به TRX تعیین میکنند)
curl -X POST https://api.bitlancer.ir/api/v1/invoices \
-H "Authorization: Bearer blk_live_XXXX" \
-H "Content-Type: application/json" \
-d '{
"amount": 10,
"title": "خرید اشتراک ویژه",
"fee_payer": "payer",
"external_id": "order-4821",
"callback_url": "https://yourbot.example.com/webhook"
}'نمونه درخواست - قیمت ثابت به تومان (برای فروشگاههایی با قیمتهای متفرقِ تومانی)
curl -X POST https://api.bitlancer.ir/api/v1/invoices \
-H "Authorization: Bearer blk_live_XXXX" \
-H "Content-Type: application/json" \
-d '{
"amount_toman": 500000,
"title": "خرید کفش مدل X",
"fee_payer": "payer",
"external_id": "order-4821",
"callback_url": "https://yourbot.example.com/webhook"
}'نمونه پاسخ (201)
{
"invoice": {
"token": "SdVh5OTnbzBD6hZkAOx4ltnX",
"external_id": "order-4821",
"title": "خرید کفش مدل X",
"amount": 500000,
"currency": "TMN",
"fee_payer": "payer",
"status": "open"
},
"payment_link": "https://bitlancer.ir/invoice/SdVh5OTnbzBD6hZkAOx4ltnX",
"bot_payment_link": "https://t.me/bitlancerirbot?start=pay_SdVh5OTnbzBD6hZkAOx4ltnX"
}payment_link صفحهی وب فاکتور روی بیتلنسر است (مناسب مشتریان سایت)، و bot_payment_link کاربر را مستقیم داخل ربات رسمی تلگرام بیتلنسر (@bitlancerirbot) میبرد و کل احراز هویت و پرداخت همانجا انجام میشود، بدون خروج از تلگرام. اگر مشتریهای شما از طریق ربات تلگرامتان با شما در ارتباطند، bot_payment_link را برایشان بفرستید؛ اگر مشتریهای سایت خودتان هستند، payment_link را بفرستید. استعلام وضعیت فاکتور
/api/v1/invoices/{token}curl https://api.bitlancer.ir/api/v1/invoices/SdVh5OTnbzBD6hZkAOx4ltnX \
-H "Authorization: Bearer blk_live_XXXX"{
"invoice": {
"token": "SdVh5OTnbzBD6hZkAOx4ltnX",
"external_id": "order-4821",
"title": "خرید اشتراک ویژه",
"amount": "10.00000000",
"currency": "TRX",
"fee_payer": "payer",
"status": "paid",
"webhook_status": "sent",
"created_at": "2026-09-20T18:56:54.000000Z",
"updated_at": "2026-09-20T19:02:11.000000Z"
}
} مقدار status یکی از سه حالت open (در انتظار پرداخت)، paid (پرداختشده) یا cancelled (لغوشده) است. اگر پرداخت با کارتبهکارت انجام شده باشد، تا زمان تأیید دستی مدیر بیتلنسر همچنان open باقی میماند.
وبهوک پرداخت
بهمحض تکمیل پرداخت (چه از طریق درگاه، چه پس از تأیید کارتبهکارت)، یک درخواست POST به آدرس callback_url شما ارسال میشود:
POST https://yourbot.example.com/webhook
X-Bitlancer-Signature: sha256=1f4a3c...
Content-Type: application/json
{
"event": "invoice.paid",
"invoice": {
"token": "SdVh5OTnbzBD6hZkAOx4ltnX",
"external_id": "order-4821",
"amount": 10,
"status": "paid",
"paid_at": "2026-09-20T19:02:11+00:00"
}
} برای اطمینان از اینکه درخواست واقعاً از طرف بیتلنسر آمده، هدر X-Bitlancer-Signature را بررسی کنید: مقدار آن، هش HMAC-SHA256 بدنهی خام درخواست است که با کلید API شما امضا شده است.
نمونه تأیید امضا (PHP)
$body = file_get_contents('php://input');
$expected = 'sha256=' . hash_hmac('sha256', $body, $apiKey);
if (!hash_equals($expected, $_SERVER['HTTP_X_BITLANCER_SIGNATURE'] ?? '')) {
http_response_code(401);
exit;
}الگوی پیشنهادی یکپارچهسازی: استعلام دورهای وضعیت
چون تحویل وبهوک تکتلاشه است و اگر سرور شما لحظهای در دسترس نباشد ممکن است هرگز نرسد، پیشنهاد ما این است که بهجای تکیهی صرف روی callback_url، وضعیت فاکتور را خودتان بهصورت دورهای استعلام بگیرید (وبهوک را هم میتوانید کنارش نگه دارید، برای اطلاع سریعتر - ولی نه تنها منبع تشخیص پرداخت).
روند کار
- فاکتور را با
POST /invoicesبسازید (فرقی نمیکندcallback_urlبدهید یا نه - استعلام دورهای مستقل از آن کار میکند). - بلافاصله بعد از ساخت فاکتور، استعلام
GET /invoices/{token}را با یک فاصلهی زمانی ثابت شروع کنید. - بر اساس مقدار
statusدر پاسخ عمل کنید:open← همچنان در انتظار؛ به استعلام ادامه دهید.paid← استعلام را متوقف کنید، سفارش را «پرداختشده» علامت بزنید و محصول/خدمت را تحویل دهید.cancelled← استعلام را متوقف کنید و به مشتری اطلاع دهید فاکتور لغو شده است.
- یک سقف زمانی هم در نظر بگیرید (مثلاً ۳۰ دقیقه) - اگر فاکتور بعد از این مدت هنوز
openبود، استعلام را متوقف کرده و آن را در سیستم خودتان منقضیشده در نظر بگیرید (مشتری میتواند فاکتور جدید درخواست کند).
پارامترهای پیشنهادی
- فاصلهی استعلام: هر ۱۵ ثانیه (بهاندازهی کافی سریع، و در عین حال در محدودهی معقول درخواستها).
- سقف زمانی: ۳۰ دقیقه برای هر فاکتور.
- برای استعلام هم از همان هدر
Authorization: Bearer <api_key>استفاده کنید.
همین الگو برای ربات تلگرام بیتلنسر پیادهسازی شده و تشخیص تأیید پرداخت را کاملاً با همین استعلام دورهای انجام میدهد - بدون نیاز به هیچ endpoint عمومی HTTP در سمت خودش.
احراز هویت پرداختکننده
مشتری شما هم برای پرداخت فاکتور باید یک کاربر بیتلنسر باشد (اگر نباشد، هنگام باز کردن لینک به ثبتنام هدایت میشود). سطح احراز هویت لازم بر اساس ارزش دلاری فاکتور تعیین میشود:
- تا سقف مشخصشده در تنظیمات پلتفرم (پیشفرض ۱۵ دلار): احراز هویت اولیه کافی است.
- بالاتر از این سقف: پرداختکننده باید احراز هویت پیشرفته (نهایی) را هم تکمیل کرده باشد.
این مراحل بهصورت خودکار در همان صفحهی فاکتور به کاربر نمایش داده میشود و نیازی به پیادهسازی اضافه از سمت شما ندارد.
کدهای خطا
| کد | معنی |
|---|---|
| 401 | کلید API ارسال نشده، نامعتبر یا غیرفعال است |
| 403 | حساب صاحب کلید هنوز احراز هویت اولیه را تکمیل نکرده است |
| 404 | فاکتور با این token پیدا نشد یا متعلق به این کلید API نیست |
| 409 | فاکتور قبلاً پرداخت یا لغو شده و دیگر قابل پرداخت نیست |
| 422 | ورودی نامعتبر (مثلاً amount ارسال نشده) |
| 503 | دریافت نرخ لحظهای ارز موقتاً با مشکل مواجه شده؛ دوباره تلاش کنید |
نکات و محدودیتها
- در حال حاضر فاکتورها فقط به ارز ترون (TRX) قابل ساخت هستند.
- مبلغ ریالی که پرداختکننده میبیند، بر اساس نرخ لحظهای TRX محاسبه و در لحظهی پرداخت قفل میشود.
- درصد کارمزد پلتفرم توسط بیتلنسر تعیین میشود و در لحظهی ساخت هر فاکتور روی همان فاکتور ثبت میشود.
- هر کاربر یک کلید API فعال دارد؛ ساخت کلید جدید، کلید قبلی را بلافاصله غیرفعال میکند.
پشتیبانی
برای سؤالات فنی دربارهی این API، از بخش پشتیبانی در پروفایل خود با ما در ارتباط باشید.