Перейти к основному содержимому

Что делать при отказе

Платёж не прошёл — не паникуй и не долби кнопку «Оплатить». Пять попыток подряд это уже не «попробовать ещё раз», а паттерн card testing, от которого Stripe защищается отдельно: rate limiter'ами, моделями и velocity-правилами.

Сначала пойми, где именно упало.

Развилка, которая решает всё
  • Инвойс в Stripe не создался, ошибка вылезла на стороне Anthropic — сработали их фильтры. В интерфейсе это чаще всего проявляется текстом «Payment cannot be performed» или «Payment not allowed». Карту менять бессмысленно, менять надо окружение: IP, отпечаток, поведение.
  • Инвойс создался и платёж ушёл в сеть — работали эмитент, Radar или банк. Тут смотрим decline_code, а не гадаем.

Как вытащить код ошибки через F12​

В интерфейсе Claude при блоке со стороны сервиса обычно пишут «Payment cannot be performed» или «Payment not allowed», а при отказе платежки — общую фразу вроде «Your card was declined». Точную причину смотрят в панели разработчика:

  1. Нажми F12 в браузере и перейди на вкладку Network («Сеть»).
  2. Нажми кнопку оплаты и найди в списке красный сетевой запрос к платежному шлюзу или API подписки, который завершился с ошибкой (обычно HTTP 400, 402 или 403).
  3. Кликни по этому запросу и открой вкладку Response («Ответ»).

В теле ответа приходит подробный JSON с описанием сбоя. По нему сразу видно, кто именно зарубил транзакцию:

  • Если ошибка пришла от Anthropic («Payment cannot be performed», «Payment not allowed») — транзакция даже не дошла до Stripe. Причина кроется в грязном IP, подозрительной сессии или геолокационном блоке аккаунта.
  • Если транзакцию отклонил Stripe или банк — в JSON появятся поля code, decline_code и message. Именно по decline_code понятно, сработал ли внутренний фильтр Stripe Radar (generic_decline, fraudulent) или блокировка пришла непосредственно от банка-эмитента карты (do_not_honor, insufficient_funds).

Блокировка Radar — это не отдельный код отказа. Она приходит как outcome.type = blocked и network_status = not_sent_to_network: платёж до эмитента вообще не дошёл. Уровни риска у Stripe — normal, elevated, highest.

Коды устроены так. card_declined — общий код, настоящая причина всегда в decline_code. do_not_honor — эмитент отказал без объяснений, карту не спасать, брать другую. generic_decline — часто именно блок Radar или Adaptive Acceptance. fraudulent — Stripe подозревает фрод, и это не обязательно Radar. incorrect_number и invalid_expiry — опечатка или мёртвая карта, вводи заново руками. authentication_required — транзакции нужен 3DS, а не «ты его провалил»: в подписке PaymentIntent уходит в requires_action, и если не оплатить за 23 часа, инвойс аннулируется. processing_error — сеть, можно повторить. Плюс есть approve_with_id и reenter_transaction, которые тоже считаются retryable.

Про ретраи коротко. Одна-две попытки на карту, дальше пауза. Единственный документированный жёсткий лимит — card_decline_rate_limit_exceeded: карта отклонялась слишком часто, повтор возможен через 24 часа. Числовых velocity-порогов Stripe не публикует, так что «не больше двух карт» — эмпирика, но здравая. Меняй одну переменную за раз, иначе не поймёшь, что помогло.

Чего не делать. Не открывать чарджбэк — отмена подписки делается кнопкой, а диспут это риск-фактор, который мерчант видит. Не писать в поддержку сразу после отказа, сначала выясни причину сам. И не меняй страну карты на прогретом аккаунте: заодно получишь расхождение с billing location, а Anthropic прямо требует, чтобы billing address и страна были eligible.