خزندهای که ماهها از یک سایت خبری صفحه دریافت کرده است، پاسخ تازهای در گزارشهایش ثبت میکند: 402 Payment Required، همراه با هدری به نام crawler-price. جای دیگری، توسعهدهندهای همین سه رقم را روی پروژهاش در Vercel میبیند، یا یک فراخوانی Stripe با کد 402 شکست میخورد، بیآنکه ربطی به خزندهها داشته باشد. این کد تقریباً به اندازه خود وب قدمت دارد، اما تا همین اواخر کمتر سروری آن را میفرستاد.
در این نوشته توضیح میدهیم 402 در استاندارد HTTP چه معنایی دارد، چرا بیاستفاده ماند و امروز کجا دیده میشود: پرداخت بهازای خزش (pay per crawl) در Cloudflare، پروتکل باز x402، AWS WAF و چند API صورتحساب. سپس میگوییم یک پاسخ 402 باید چه چیزی را در رفتار یک خزنده یا عامل هوش مصنوعی تغییر دهد و صاحبان سایت درباره چه چیزهایی میتوانند تصمیم بگیرند. جزئیات هر سرویس را در 6 اکتبر 2026 در صفحههای خود آن شرکتها بررسی کردیم.
معنای HTTP 402 Payment Required چیست؟
کدهای وضعیت HTTP عددهای سهرقمیاند که سرور با هر پاسخ میفرستد: 200 یعنی «این هم صفحه»، 404 یعنی چنین صفحهای وجود ندارد و 403 یعنی اجازه دریافت آن را ندارید. کدهای 400 تا 499 مشکل را در سمت کلاینت، یعنی برنامهای که درخواست را فرستاده، میدانند. 402 هم در همین گروه است و تعریفش فقط یک جمله است: RFC 9110، استاندارد کنونی HTTP که در ژوئن 2022 منتشر شد، فقط میگوید این کد «برای استفاده در آینده رزرو شده است».
این جمله به ژانویه 1997 برمیگردد؛ زمانی که RFC 2068، نخستین مشخصات HTTP/1.1، کد 402 را با همین کلمات رزرو کرد. صفحهای از W3C درباره کدهای وضعیت که به سال 1994 برمیگردد، چیز بیشتری را در نظر داشت: پاسخی با کد 402 که «روشهای دریافت هزینه» (charging schemes) قابلقبول را فهرست کند و هدری به نام ChargeTo که کلاینت بتواند برای پرداخت آن را پس بفرستد. این هدر هرگز به هیچ استانداردی راه نیافت.
چون استاندارد نه بدنهای تعریف میکند، نه هدری و نه راهی برای پرداخت، هر سیستمی که 402 میفرستد قالب خودش را میسازد. مرورگرها هم با این کد رفتار ویژهای ندارند: کسی که با آن روبهرو شود، مثل هر خطای 4xx دیگر، همان صفحهای را میبیند که سرور فرستاده است.
چرا 402 اینهمه سال بیاستفاده ماند؟
کد وضعیت فقط وقتی به کار میآید که کلاینت بتواند بر اساس آن کاری بکند. پس از 401 میتواند وارد حساب شود؛ اما پس از 402 به راهی نیاز دارد که درون یک تبادل HTTP پرداخت کند، و در بیشتر تاریخ وب چنین راهی وجود نداشت. پرداختها از صفحههای پرداخت (checkout) میگذشتند که برای انسان طراحی شده بودند، و دیوارهای پرداخت (paywall) با یک صفحه معمولی 200 و یک فرم ثبتنام پاسخ میدهند.
دو چیز تغییر کرد. بخش بزرگی از درخواستها اکنون از نرمافزارها میآید: خزندههای هوش مصنوعی که برای آموزش مدل یا جستوجو صفحه جمع میکنند، و عاملهای هوش مصنوعی که صفحهای را از طرف یک کاربر باز میکنند. اینها صفحهها را در حجمی میخوانند که از هیچ انسانی برنمیآید و تبلیغهایی را که هزینه آن صفحهها را میپردازند هرگز نمیبینند. در همین حال، هویتهای امضاشده رباتها کمکم به سایتها نشان دادند چه کسی درخواست میفرستد، و پروتکلهای پرداخت این امکان را فراهم کردند که یک برنامه بدون صفحه پرداخت به برنامه دیگری پول بدهد.
امروز 402 را کجا میبینید
هر پاسخ 402 به خزندهها مربوط نیست. پلتفرمهای صورتحساب مدتها پیش از پرداخت بهازای خزش از این کد استفاده میکردند، هر کدام با معنای خودش:
| کجا | معنای 402 | چه باید کرد |
|---|---|---|
| پرداخت بهازای خزش در Cloudflare | سایت از این خزنده هوش مصنوعی بهازای هر صفحه هزینه میگیرد | اگر عضو برنامه هستید بپردازید، وگرنه متوقف شوید |
| x402 (Cloudflare، AWS WAF) | شرایط پرداخت در هدر PAYMENT-REQUIRED | با یک کلاینت x402 بپردازید یا متوقف شوید |
| Stripe API | "Request Failed" (درخواست ناموفق): درخواست معتبر است اما پرداخت انجام نشده | فیلد code خطا را بخوانید |
| Vercel | DEPLOYMENT_DISABLED: پرداخت لازم است | صاحب حساب مصرف و پلن را بررسی میکند |
| npm publish | بستههای scoped بهطور پیشفرض خصوصیاند | از npm publish --access public استفاده کنید |
| دیگر APIهای پولی | مشکل صورتحساب یا سهمیه در حساب | مستندات خطای همان API را ببینید |
در Stripe، حالت معمول کارتی است که رد شده، و decline_code میگوید صادرکننده کارت چرا پرداخت را رد کرده است. Vercel وقتی تیمی از سقف مصرف خود فراتر برود، استقرار (deployment) را غیرفعال میکند. در npm بستههای خصوصی به حساب پولی نیاز دارند؛ پس بسته تازهای به شکل @scope/name که بدون --access public منتشر شود، پذیرفته نمیشود. اگر وبسایتی صفحه 402 به شما نشان میدهد، فقط صاحب آن سایت میتواند مشکل پرداختی را که پشت آن است حل کند؛ مشکلی که اغلب به پلن میزبانی سایت مربوط است.
پرداخت بهازای خزش چگونه کار میکند؟
پرداخت بهازای خزش سیستمی از Cloudflare است که از خزندههای هوش مصنوعی بهازای هر درخواست هزینه میگیرد. این سیستم در ژوئیه 2025 معرفی شد و طبق مستندات Cloudflare هنوز در مرحله بتای بسته است. Cloudflare چون بهعنوان ریورس پروکسی جلوی سایت قرار دارد، پیش از آنکه درخواست به سرور سایت برسد به خزنده پاسخ میدهد، و چون طرف رسمی فروش (merchant of record) است، هزینه را از گرداننده خزنده دریافت میکند و به سایت میپردازد.
- صاحب سایت قیمت را تعیین میکند. در داشبورد Cloudflare، در بخش AI Crawl Control › Payments (پرداختها)، صاحب سایت پرداخت بهازای خزش را فعال میکند، یک قیمت پیشفرض برای دامنه میگذارد و برای هر خزنده هوش مصنوعی یکی از گزینههای Allow (اجازه دادن)، Charge (دریافت هزینه) یا Block (مسدود کردن) را انتخاب میکند.
- خزنده هویت خود را ثابت میکند. گرداننده آن یک حساب Cloudflare میسازد، صورتحساب را از طریق Stripe وصل میکند و هر درخواست را با Web Bot Auth امضا میکند: یک کلید خصوصی بخشهایی از درخواست را امضا میکند، هدرهای
Signature-InputوSignatureنتیجه را حمل میکنند و کلید عمومی روی دامنه گرداننده خزنده منتشر میشود. بدون امضا، هر کسی میتوانست خود را خزندهای جا بزند که پول میپردازد. - درخواستی که قصد پرداخت در آن نیست، 402 میگیرد و قیمت در هدر
crawler-priceمیآید. - خزنده قیمت را میپذیرد. درخواست را با
crawler-exact-price(دقیقاً همین قیمت) یاcrawler-max-price(هر قیمتی تا این سقف) تکرار میکند و این هدر را جزو بخشهای امضاشده میگذارد تا کسی نتواند در مسیر آن را تغییر دهد. - Cloudflare صفحه را تحویل میدهد، با کد
200و هدرcrawler-chargedکه مبلغ دریافتشده را نشان میدهد. - هر حالت دیگری دوباره 402 است، این بار با هدر
crawler-errorکه مشکل را توضیح میدهد.
راهنمای Cloudflare برای گردانندگان خزنده این تبادل را با مقدارهای زیر نشان میدهد (هدرهای امضا حذف شدهاند):
HTTP/2 402
crawler-price: USD 0.01
# the crawler repeats the signed request with:
crawler-exact-price: USD 0.01
HTTP/2 200
crawler-charged: USD 0.01گزینه Charge برای خزندههایی هم اعمال میشود که هیچ رابطه صورتحسابی با Cloudflare ندارند. این خزندهها نمیتوانند پول بپردازند، پس برایشان مثل مسدودی عمل میکند؛ اما 402 به آنها خبر میدهد که دسترسی پولی وجود دارد. گزینه Block درخواست را رد میکند و هیچ قیمتی پیشنهاد نمیدهد.
x402 چیست؟
پروتکل باز x402 پاسخ 402 را به صورتحسابی تبدیل میکند که ماشینها میتوانند آن را بخوانند. Coinbase آن را ساخت و به x402 Foundation سپرد؛ بنیادی که Linux Foundation در 2 آوریل 2026 با اعضایی مانند AWS، Cloudflare، گوگل، Stripe و Visa راهاندازی کرد. مشخصات نسخه 2 با مجوز Apache-2.0 منتشر شده است.
روی HTTP، یک پرداخت چهار گام دارد:
- کلاینت منبعی را درخواست میکند.
- سرور با
402و هدرPAYMENT-REQUIREDپاسخ میدهد؛ این هدر یک JSON کدگذاریشده با Base64 است که راههای پرداخت پذیرفتهشده را فهرست میکند. - کلاینت با کیف پول خود یک مجوز پرداخت امضا میکند و درخواست را همراه هدر
PAYMENT-SIGNATUREدوباره میفرستد. - سرور پرداخت را بررسی و تسویه میکند، معمولاً از طریق یک سرویس واسط پرداخت (facilitator)، یعنی سرویسی با نقطههای اتصال
/verifyو/settle، و منبع را همراه هدرPAYMENT-RESPONSEبرمیگرداند. اگر هر یک از این دو مرحله شکست بخورد، پاسخ دوباره 402 است.
شرایط پرداخت پس از رمزگشایی چنین شکلی دارد (کوتاهشده از نمونه خود مشخصات، با نشانیهای کوتاهشده):
{
"x402Version": 2,
"resource": { "url": "https://api.example.com/premium-data" },
"accepts": [
{
"scheme": "exact",
"network": "eip155:84532",
"amount": "10000",
"asset": "0x036C...CF7e",
"payTo": "0x2096...287C",
"maxTimeoutSeconds": 60
}
]
}فیلد scheme مدل قیمتگذاری است: exact برای قیمت ثابت و upto برای قیمت متغیر با یک سقف. network شبکه پرداخت را نام میبرد که اینجا شبکه آزمایشی Base است. amount به کوچکترین واحد توکن شمرده میشود، نه به دلار، و payTo کیف پول فروشنده است. نسخه 1 که کلاینتهای قدیمیتر هنوز آن را میفرستند، بهجای اینها از هدرهای X-PAYMENT و X-PAYMENT-RESPONSE استفاده میکرد.
این پروتکل خود را مستقل از شبکه، توکن و واحد پول معرفی میکند و روی MCP و A2A هم کار میکند؛ دو پروتکلی که عاملهای هوش مصنوعی برای فراخوانی ابزارها و یکدیگر به کار میبرند. پیادهسازیهایی که در ادامه میآیند پرداخت را با USDC تسویه میکنند؛ USDC یک استیبلکوین است، یعنی رمزارزی که ارزشش به دلار آمریکا گره خورده است. این توضیح فقط شیوه کار پروتکل را شرح میدهد و توصیهای برای خرید، نگهداری یا استفاده از هیچ ارز دیجیتالی نیست.
Cloudflare و AWS: امروز چه کسی 402 میفرستد؟
AWS WAF. از 15 ژوئن 2026، AWS WAF میتواند در سایتهایی که پشت Amazon CloudFront هستند از ترافیک هوش مصنوعی درآمد کسب کند. قاعدهای با اقدام Monetize یک پاسخ 402 با شرایط x402 برمیگرداند: قیمت هر درخواست به USDC، شبکههای پذیرفتهشده (Base و Solana)، کیف پول ناشر، یک محدودیت زمانی و یک طرح قیمتگذاری (scheme). طبق مستندات AWS، پرداخت فقط پس از آنکه سرور سایت با یک کد 2xx پاسخ دهد تسویه میشود؛ پس صفحهای که با خطا روبهرو شود هزینهای ندارد. صاحبان سایت میتوانند بر اساس هویت قیمت بگذارند؛ برای نمونه یک قیمت برای خزندههای جستوجوی هوش مصنوعی تأییدشده و قیمتی دیگر برای عاملهای تأییدنشده.
Cloudflare. در 30 سپتامبر 2026، Cloudflare دو بتای دیگر را راهاندازی کرد. Monetization Gateway با استفاده از x402 از عاملها بهازای هر درخواست، هر جستوجو یا هر توکن هزینه میگیرد؛ پرداختها با USDC روی شبکه Base و از طریق x402 Facilitator متعلق به Coinbase تسویه میشوند، و این بتای بسته فقط فروشندگان و خریداران واجد شرایط مستقر در ایالات متحده را میپذیرد. سرویس Pay Per Use اصلاً 402 نمیفرستد: خریدار برای کاربرد مشخصی از محتوا قیمتی پیشنهاد میدهد و هر بار استفاده را گزارش میکند، و Cloudflare صورتحساب را برای خریدار صادر میکند و سهم ناشر را میپردازد.
| پرداخت بهازای خزش | x402 (Gateway، AWS WAF) | Pay Per Use | |
|---|---|---|---|
| نشانه قیمت | هدر crawler-price | هدر PAYMENT-REQUIRED | پیشنهادی که از پیش توافق شده |
| نیاز کلاینت | کلیدهای Web Bot Auth، Stripe | کیف پولی که پرداخت را امضا کند | قرارداد خریدار |
| مسیر پول | Cloudflare | USDC از طریق یک سرویس واسط | Cloudflare |
| هزینه بهازای | هر خزش موفق | درخواست، جستوجو یا توکن | هر استفاده گزارششده |
| وضعیت، 6 اکتبر 2026 | بتای بسته | بتای بسته؛ در AWS فعال | بتا |
معنای 402 برای خزندههای هوش مصنوعی و اسکرپرها
پاسخ 402 نه قطعی است و نه مسدودی. یک قیمت است و دو واکنش درست در برابر آن وجود دارد: اگر گرداننده خزنده پذیرفته است، از راهی که سایت تعیین کرده بپردازید؛ وگرنه درخواست آن منبع را متوقف کنید.
- آن را مثل 429 یا 503 دوباره امتحان نکنید. آن کدها میگویند «بعداً برگرد»؛ 402 همان پاسخ را تکرار میکند. نشانی صفحه، هدر قیمت و زمان را ثبت کنید و سراغ کار بعدی بروید.
- برای گذشتن از آن تلاش نکنید. قیمت به هویت خزنده و قواعد سایت بسته است، نه به آدرس IP. چرخاندن IP یا حذف امضا، خزندهای شناختهشده را به رباتی ناشناس تبدیل میکند و AWS به صاحبان سایت اجازه میدهد از عاملهای تأییدنشده هم هزینه بگیرند. برداشتن محتوای قیمتدار بدون پرداخت، شرایط استفاده سایت را هم زیر پا میگذارد.
- سقف هزینه بگذارید. در پرداخت بهازای خزش،
crawler-max-priceبرای هر درخواست سقفی تعیین میکند. در x402، پیش از آنکه عامل چیزی را امضا کند، به کیف پولش یک بودجه و فهرستی از سایتهای تأییدشده بدهید. - قیمت را از پاسخهای دیگر Cloudflare جدا کنید. چالشها، مسدودیها و محدودیتهای نرخ در کد وضعیت و هدرها شکل دیگری دارند؛ راهنمای ما درباره اسکرپر Cloudflare نشان میدهد چگونه آنها را در کد از هم جدا کنید.
پیش از همه اینها، robots.txt را بخوانید. پرداخت بهازای خزش جای آن را نمیگیرد: مسیری که robots.txt کنار گذاشته است نباید با هیچ قیمتی درخواست شود. راهنمای ما درباره robots.txt توضیح میدهد خزندهها این قواعد را چگونه اعمال میکنند.
نقش پروکسیها در اینجا محدودتر از آن است که بسیاری فکر میکنند. پروکسی مسیر درخواست و کشوری را که درخواست از آن میآید تغییر میدهد، و این برای صفحههای عمومیای که بسته به مکان فرق میکنند، مانند قیمتهای محلی، اهمیت دارد. یک پروکسی مسکونی صفحه را همانطور به خزنده نشان میدهد که بازدیدکنندهای در آن کشور میبیند. اما هویت خزنده را در برابر یک سیستم پرداخت تغییر نمیدهد و صفحه قیمتدار را رایگان نمیکند.
صاحبان سایت چه تصمیمی میتوانند بگیرند
برای صاحب سایت، 402 گزینه Charge را به Allow و Block اضافه میکند. Allow برای خزندههایی مناسب است که بازدیدشان خواننده را به سایت برمیگرداند، مانند موتورهای جستوجو. Charge فقط از خزندههایی درآمد میآورد که درخواستهایشان را امضا میکنند و رابطه صورتحسابی دارند؛ برای هر خزنده دیگری مثل Block عمل میکند.
برای دریافت هزینه، جلوی سایت به لایهای نیاز است که بتواند برای درخواستها قیمت بگذارد: Cloudflare (پرداخت بهازای خزش یا Monetization Gateway) یا AWS WAF همراه با CloudFront. سایتی که روی میزبانی معمولی است میتواند از کد خودش 402 بفرستد، اما در آن صورت باید شناسایی خزندهها و دریافت پول را هم خودش انجام دهد.
فایلهای robots.txt و llms.txt نقش خود را حفظ میکنند. robots.txt به خزندهها میگوید کدام مسیرها را میتوانند دریافت کنند. llms.txt فایلی Markdown است که به ابزارهای هوش مصنوعی خلاصهای کوتاه از سایت و صفحههای مهمش میدهد و درباره دسترسی یا قیمت چیزی نمیگوید؛ راهنمای ما درباره llms.txt کار آن را توضیح میدهد. هیچکدام از این دو فایل نمیتواند از کسی هزینه بگیرد.
محدودیتها و پرسشهای باز
- قالب استانداردی وجود ندارد. هدرهای
crawler-*در Cloudflare و هدرهایPAYMENT-*در x402 دو طرح جداگانهاند؛ خزنده باید از هر طرحی که میخواهد از طریق آن بپردازد جداگانه پشتیبانی کند. - دسترسی محدود. بیشتر این برنامهها بتای بستهاند و Monetization Gateway فقط در ایالات متحده در دسترس است.
- زیرساخت پرداخت. پیادهسازیهای x402 امروز پرداخت را با یک استیبلکوین تسویه میکنند. قواعد کیف پول، مالیات و حسابداری از کشوری به کشور دیگر فرق میکند و موضوعی برای تیمهای مالی و حقوقی است.
- اول هویت. صورتحساب بر این فرض استوار است که درخواستها امضا شدهاند. پیشنویس IETF برای Web Bot Auth تازه در 1 سپتامبر 2026 به سند کارگروه تبدیل شد.
اشتباهات رایج
- درخواست دوباره پس از 402 در یک حلقه، گویی سرور فقط موقتاً پربار است.
- مسدودی دانستن 402 و عوض کردن IP یا
User-Agent. - اجازه دادن به عامل برای امضای پرداختهای x402 بدون سقف هزینه یا فهرست سایتهای تأییدشده.
- دریافت هزینه از خزندههایی که نمیتوانند بپردازند و انتظار درآمد داشتن: برای آنها Charge همان مسدودی است.
- خواندن 402 در Stripe به معنای «باید پرداخت کنید»: Stripe آن را "Request Failed" (درخواست ناموفق) مینامد و دلیل معمولش کارتی است که رد شده است.
راهنمای انتخاب
| وضعیت شما | چه کنید |
|---|---|
خزنده شما 402 با crawler-price میگیرد | متوقف شوید، یا اگر عضو برنامه هستید از طریق Cloudflare بپردازید |
عامل شما 402 با PAYMENT-REQUIRED میگیرد | فقط در چارچوب بودجه و فهرست سایتهای تعیینشده بپردازید؛ وگرنه متوقف شوید |
| Stripe، Vercel یا npm کد 402 برمیگرداند | پرداخت، پلن یا دسترسی بسته را درست کنید (پرسشهای متداول را ببینید) |
| میخواهید خزندههای هوش مصنوعی برای صفحههایتان پول بپردازند | پرداخت بهازای خزش، Monetization Gateway و AWS WAF را مقایسه کنید |
| فقط میخواهید خزندههای هوش مصنوعی را دور نگه دارید | از robots.txt و مسدودسازی استفاده کنید؛ به سیستم پرداخت نیازی نیست |
پرسشهای متداول
402 Payment Required یعنی چه؟
سرور پیش از تحویل منبع، پرداخت میخواهد. استاندارد HTTP این کد را رزرو میکند اما نمیگوید پرداخت چگونه انجام شود؛ برای همین هر سیستم هدرهای خودش را اضافه میکند: crawler-price برای پرداخت بهازای خزش و PAYMENT-REQUIRED برای x402.
آیا 402 یک خطاست؟
این کد در گروه 4xx قرار دارد که مشکلات سمت کلاینت را نشان میدهد و مرورگرها آن را مثل هر صفحه خطای دیگری نمایش میدهند. اما برای خزندهای که برای دسترسی پولی ساخته شده است، یک گام عادی است: قیمت، پرداخت، صفحه.
خطای 402 Payment Required را چگونه برطرف کنم؟
بستگی دارد چه کسی آن را فرستاده است. در Stripe کد خطا را بخوانید؛ در Vercel مصرف و پلن تیم خود را بررسی کنید؛ در npm بستههای scoped را با --access public منتشر کنید. اگر وبسایتی به شما 402 نشان میدهد، فقط صاحب آن سایت میتواند مشکل را حل کند.
تفاوت 401، 402 و 403 چیست؟
کد 401 یعنی سرور میخواهد هویت خود را ثابت کنید، با ورود به حساب یا یک کلید API. کد 402 یعنی پرداخت میخواهد. کد 403 یعنی درخواست را فهمیده و آن را رد میکند، بیآنکه قیمتی پیشنهاد دهد.
آیا برای استفاده از x402 به رمزارز نیاز دارم؟
مشخصات جا را برای شبکهها و واحدهای پول دیگر باز گذاشته است، اما پیادهسازیهای فعال، یعنی AWS WAF و Monetization Gateway در Cloudflare، پرداخت را با USDC تسویه میکنند؛ پس کلاینتی که پرداخت میکند به کیف پولی نیاز دارد که USDC در آن باشد. این فقط توصیف این سیستمهاست، نه توصیه.
آیا با پروکسی میتوان از 402 گذشت؟
نه. قیمت به هویت خزنده و قواعد سایت بسته است، نه به آدرس IP. پنهان کردن هویت، کلاینتی را که پول میپردازد به رباتی ناشناس تبدیل میکند و شرایط استفاده سایت را زیر پا میگذارد. اگر نمیخواهید بپردازید، درخواست آن صفحه را متوقف کنید.
خلاصه
کد HTTP 402 Payment Required در 1997 رزرو شد و تعریفنشده ماند؛ اکنون پرداخت بهازای خزش، x402، AWS WAF و Monetization Gateway در Cloudflare به آن کاری دادهاند. برای یک خزنده یا عامل، 402 یعنی قیمت: در چارچوب بودجه بپردازید یا متوقف شوید. برای صاحب سایت، این کد گزینه Charge را کنار Allow و Block میگذارد، در کنار robots.txt و نه بهجای آن. Stripe، Vercel و npm همین کد را برای مشکلات صورتحساب خودشان به کار میبرند؛ پس اول هدرها را بخوانید. برای گردآوری دادههای عمومیای که قیمتی ندارند، صفحه استخراج داده ما را ببینید.




