Что означает HTTP-статус 402 Payment Required?

«Что означает HTTP-статус 402 Payment Required?» — вопрос из категории HTTP и веб-протоколы, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

HTTP-статус 402 Payment Required (Требуется оплата) — это код ответа сервера, указывающий, что запрашиваемый ресурс или действие доступны только после осуществления платежа. Этот статус зарезервирован для будущего использования и на практике применяется редко.

Смысл и контекст: Статус определен в RFC 7231, но его семантика и поведение не стандартизированы так же детально, как у 200 или 404. Это означает, что сервер должен дополнительно передать информацию о том, как произвести оплату (например, в теле ответа или заголовках).

Где может встречаться:

  • Платные API: После исчерпания бесплатного квоты запросов.
  • Микроплатежи в веб-сервисах: Для доступа к конкретному цифровому контенту.
  • Экспериментальные или нишевые протоколы.

Пример HTTP-ответа:

HTTP/1.1 402 Payment Required
Content-Type: application/json
Retry-After: 3600

{
  "error": "payment_required",
  "message": "Please upgrade your subscription to access this endpoint.",
  "upgrade_url": "https://api.service.com/billing/upgrade"
}

Практические нюансы:

  • Альтернативы: В большинстве коммерческих API для обозначения необходимости оплаты или превышения лимитов используются статусы:
    • 403 Forbidden (с поясняющим сообщением в теле).
    • 429 Too Many Requests (для лимитов по частоте запросов).
  • Обработка на клиенте: Браузеры не имеют встроенной реакции на 402. Разработчик клиента (мобильного приложения, SPA) должен самостоятельно обработать этот код, перенаправив пользователя на страницу оплаты или показав соответствующее уведомление.