API و وب سرویس استعلام شاهکار

پیش از ساخت حساب بررسی می‌شود که شمارهٔ موبایل واردشده روی نام همان کد ملی ثبت شده است یا نه.

این سرویس چه می‌کند

فرض کنید فروشگاهی اینترنتی هر روز چند ثبت‌نام با کد ملی‌هایی می‌گیرد که صاحبشان هیچ‌وقت فرم را پر نکرده است. تطبیق شمارهٔ موبایل با کد ملی اولین جایی است که این ثبت‌نام‌ها گیر می‌کنند. ورودی فقط دو مقدار است، کد ملی و شمارهٔ موبایل، و خروجی یک فیلد matched با مقدار درست یا نادرست.

سیم‌کارت‌ها در پایگاه اپراتورها با کد ملی دارنده ثبت می‌شوند و این سرویس همان ثبت را می‌پرسد. نتیجه دربارهٔ «نام روی خط» است، نه دربارهٔ اینکه همین لحظه گوشی دست چه کسی است.

پیش از فراخوان چه چیزی را یکدست کنیم

شمارهٔ موبایل را همان‌جا که از کاربر می‌گیرید تمیز کنید. صورت‌های 09123456789 و +989123456789 و ارقام فارسی را اعتبارسنجی به یک شکل می‌رساند، اما شمارهٔ ناممکن با خطای invalid_input برمی‌گردد. آن خطا هزینه ندارد، ولی کاربر شما یک رفت‌وبرگشت بی‌دلیل را می‌بیند. کد ملی هم باید ده رقم و دارای رقم کنترل درست باشد.

چه وقت پاسخ منفی بی‌گناه است

matched: false یعنی خط روی این کد ملی نیست، نه یعنی کاربر متقلب است. خطی که به نام همسر، پدر، یا شرکت ثبت شده برای دارندهٔ واقعی‌اش هم منفی می‌دهد. جریان درست این است که پاسخ منفی کاربر را به راه دوم ببرد، مثلاً شمارهٔ دیگر یا ثبت‌نام حضوری، و رد قطعی نباشد.

با نتیجه چه کنیم

پاسخ مثبت فقط می‌گوید خط روی نام اوست. اگر باید مطمئن شوید کاربر همین الان به آن خط دسترسی دارد، پیامک یک‌بارمصرف را کنار این سرویس نگه دارید؛ هر کدام چیز دیگری را ثابت می‌کنند. پاسخ‌ها چند روز کش می‌شوند و فیلد source.cached در پاسخ نشان می‌دهد نتیجه تازه است یا نه. اگر کسی تازه سیم‌کارت را به نام خودش منتقل کرده، ممکن است نتیجهٔ قدیمی برگردد.

آنچه این سرویس نمی‌کند

نام دارندهٔ خط، اپراتور، تاریخ صدور و سابقهٔ شماره را برنمی‌گرداند و بررسی نمی‌کند که خط فعال است یا نه. «رکورد پیدا نشد» هم یک پاسخ معتبر است و مثل پاسخ مثبت هزینه دارد؛ فراخوانی که به سرویس مرجع نرسد هزینه ندارد.

کجا به کار می‌آید

  • باز کردن حساب در کیف پول اینترنتیکیف پولی که پیش از فعال‌سازی سقف برداشت، مالکیت خط را با کد ملی مقایسه می‌کند، می‌تواند حساب‌های ساخته‌شده با مشخصات دیگران را پیش از اولین واریز ببندد.
  • ثبت‌نام راننده در اپلیکیشن حمل‌ونقلشرکت حمل‌ونقل شمارهٔ ثبت‌شده در پروفایل راننده را با کد ملی گواهینامه تطبیق می‌دهد تا خط یک فرد دیگر پشت اکانت یک راننده نماند.
  • فعال‌سازی پنل پیامک تبلیغاتیشرکتی که خط اختصاصی ارسال می‌دهد، پیش از باز کردن پنل بررسی می‌کند شمارهٔ مدیر پنل روی نام مدیر ثبت شده باشد.

ورودی و خروجی

ورودی

nationalCodestringکد ملیده رقم، با رقم کنترل معتبر.
mobilestringشمارهٔ موبایلیازده رقم که با 09 شروع می‌شود.

نمونهٔ بدنهٔ درخواست

{
  "nationalCode": "0013542419",
  "mobile": "09120000000"
}

خروجی

matchedboolean

قیمت و شرط پرداخت

قیمت هر فراخوان API استعلام شاهکار ۱٬۵۰۰ تومان است. با افزایش مصرف ماهانه قیمت کم می‌شود: از فراخوان شمارهٔ ۱٬۰۰۰ تا ۴٬۹۹۹ در ماه، هر فراخوان ۱٬۲۰۰ تومان؛ از فراخوان شمارهٔ ۵٬۰۰۰ در ماه به بعد، هر فراخوان ۹۹۰ تومان.

قیمت هر استعلام API استعلام شاهکار بر اساس تعداد استعلام در ماه
تعداد استعلام در ماهقیمت هر استعلام
۱ تا ۹۹۹۱٬۵۰۰ تومان
۱٬۰۰۰ تا ۴٬۹۹۹۱٬۲۰۰ تومان
۵٬۰۰۰ و بیشتر۹۹۰ تومان

شمارش برای هر کسب‌وکار و همین سرویس، از ابتدای هر ماه شمسی دوباره شروع می‌شود و فقط فراخوان‌هایی که هزینه داشته‌اند شمرده می‌شوند. قیمت هر فراخوان پیش از تماس با سرویس مرجع حساب می‌شود و همان مبلغی است که کسر می‌شود.

آخرین تغییر قیمت:

مبلغ پیش از تماس با سرویس مرجع از موجودی پنل قفل می‌شود و اگر پاسخی نیاید، آزاد می‌شود. ورودی نامعتبر، در دسترس نبودن سرویس مرجع و عبور از سقف نرخ هزینه‌ای ندارند. «رکوردی یافت نشد» یک پاسخ معتبر است و هزینه دارد.

کمترین مبلغ شارژ پنل: ۵۰۰٬۰۰۰ تومان

پرسش‌های متداول

شاهکار دقیقاً چه چیزی را بررسی می‌کند؟

این سرویس بررسی می‌کند شمارهٔ موبایلی که وارد کرده‌اید روی نام دارندهٔ همان کد ملی ثبت شده است یا نه. خروجی فقط یک مقدار درست یا نادرست است و اطلاعات هویتی یا سابقهٔ خط برنمی‌گردد.

آیا جواب منفی یعنی کاربر متقلب است؟

نه. خط ثبت‌شده به نام همسر، والدین یا شرکت برای دارندهٔ واقعی‌اش هم جواب منفی می‌دهد. بهتر است پاسخ منفی را به یک مسیر تأیید دوم بفرستید و رد قطعی نکنید.

آیا تأیید پیامکی همین کار را می‌کند؟

نه. پیامک یک‌بارمصرف نشان می‌دهد کاربر به گوشی دسترسی دارد، اما نمی‌گوید خط روی نام اوست. این سرویس برعکس است: نام روی خط را می‌سنجد و دسترسی را نه.

سیم‌کارت شرکتی چه نتیجه‌ای می‌دهد؟

خط ثبت‌شده به نام شرکت با کد ملی یک فرد حقیقی تطابق پیدا نمی‌کند و پاسخ منفی برمی‌گردد، بدون اینکه خطایی رخ داده باشد. برای چنین کاربرانی مسیر جداگانه‌ای در نظر بگیرید.

شمارهٔ موبایل را به چه شکلی بفرستم؟

شکل ۰۹ با ارقام لاتین بهترین است. صورت‌های با +۹۸ و ارقام فارسی هم یکدست می‌شوند. شمارهٔ ناممکن خطای invalid_input می‌گیرد که هزینه ندارد.

اگر رکوردی پیدا نشود هزینه کسر می‌شود؟

بله. استعلامی که انجام شده و رکوردی نداشته، پاسخ معتبر حساب می‌شود و هزینه دارد. خطای ورودی، موجودی ناکافی، حد نرخ و در دسترس نبودن سرویس مرجع هزینه‌ای ندارند.

چند فراخوان در دقیقه مجاز است؟

برای هر سرویس سقف پیش‌فرضی در دقیقه هست. عبور از آن پاسخ ۴۲۹ با هدر Retry-After می‌گیرد و هزینه ندارد. اگر حجم بیشتری لازم دارید، برای حساب خودتان افزایش بخواهید.

پاسخ تکراری برای همان ورودی از کش می‌آید؟

ممکن است. پاسخ‌ها چند روز کش می‌شوند و فیلد source.cached می‌گوید نتیجه از کش آمده یا نه. اگر کاربر تازه خط را به نام خودش کرده، همین مورد می‌تواند نتیجهٔ قدیمی بدهد.