Что делать при отказе
Платёж не прошёл — не паникуй и не долби кнопку «Оплатить». Пять попыток подряд это уже не «попробовать ещё раз», а паттерн 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». Точную причину смотрят в панели разработчика:
- Нажми F12 в браузере и перейди на вкладку Network («Сеть»).
- Нажми кнопку оплаты и найди в списке красный сетевой запрос к платежному шлюзу или API подписки, который завершился с ошибкой (обычно HTTP 400, 402 или 403).
- Кликни по этому запросу и открой вкладку 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.