Анализ кодов отказов: как читать decline codes и тайминги как рентген

Good Carder

Professional
Messages
903
Reaction score
520
Points
93
От кардера — кардерам. Вы выбрали BIN, настроили прокси, прогрели профиль, вбили карту. Система ответила отказом. Вы смотрите на код ошибки и не понимаете: карта мертва или проблема в среде? BIN в чёрном списке или просто недостаточно средств? Ответ кроется в деталях — в decline code и времени ответа.

В этой статье я научу вас читать коды отказов как рентгеновский снимок. Вы узнаете, что означает каждый популярный decline code, как отличить отказ эмитента от блокировки антифродом, как интерпретировать тайминги и как на основе этой информации корректировать стратегию. Это не теория — это практика, которая сэкономит вам тысячи доллатов на сожжённых картах.


Часть 1. Почему код отказа — это диагноз, а не приговор​

Когда платёж отклонён, вы видите сообщение: «Your card was declined» или «Transaction not approved». Но за кулисами платёжный шлюз возвращает гораздо более точный код — decline code. Stripe, Adyen, Braintree используют свои наборы кодов, но они стандартизированы в рамках платёжных систем (Visa, Mastercard, Amex).

Тайминг ответа (TTFB — Time To First Byte) — ваш второй главный инструмент. Он подсказывает, на каком этапе произошёл отказ:
  • <1 секунды — отказ на уровне валидации формата или чёрного списка BIN (карта даже не дошла до банка).
  • 1–3 секунды — запрос достиг банка-эмитента, отказ по причине, связанной с картой (стоп-лист, баланс).
  • 3–7 секунд — задействован антифрод мёрчанта или шлюза (проблема в среде, а не в карте).
  • >7 секунд — проблема с сетью, прокси или таймаут.

Комбинируя код и тайминг, вы можете поставить точный диагноз и решить, что менять: карту, прокси, поведение или всё вместе.

Часть 2. Расшифровка decline codes Stripe (2026)​

Stripe — самый популярный шлюз, и его коды стоит знать наизусть.

2.1. Отказы, связанные с картой (тайминг 1–3 сек)​

Decline codeЗначениеДействие
insufficient_fundsНедостаточно средствКарта жива, но баланс меньше суммы. Уменьшите чек или проверьте микро-чеком.
do_not_honorКарта в стоп-листе банка (украдена, заблокирована, просрочена)Карта мертва. Не тратьте время.
lost_card / stolen_cardКарта заявлена как утерянная или украденнаяАналогично do_not_honor.
expired_cardСрок действия истёкКарта мертва.
invalid_numberНеверный номер (не проходит Luhn)Фуфло от продавца. Требуйте замену.
invalid_cvcНеверный CVV/CVCИли CVV не совпадает, или карта без CVV. Проверьте данные.
transaction_not_allowedКарта не разрешена для данного типа транзакций (например, только снятие в ATM)Бесполезно для онлайн-кардинга.
withdrawal_limit_exceededПревышен суточный лимитОтложите карту на 24 часа.
pick_up_cardБанк требует изъять карту при следующем использованииКарта скомпрометирована. Не используйте.

2.2. Отказы, связанные с антифродом (тайминг <1 сек или 3–7 сек)​

Decline codeЗначениеДействие
fraudulentStripe Radar заблокировал транзакциюПроблема в среде: прокси, fingerprint, поведение. Меняйте всё.
blockedКарта или BIN в чёрном списке магазинаBIN сгорел. Покупайте карты другого диапазона.
generic_declineОбобщённый отказ (часто от антифрода)Смотрите тайминг. Если >2 сек — проблема в карте. Если <1 сек — в среде.
authentication_requiredТребуется 3DSКарта не подходит для non‑3DS целей. Бесполезна.

2.3. Технические ошибки (редко, но бывают)​

Decline codeЗначениеДействие
processing_errorОшибка на стороне шлюзаПовторите через минуту. Если повторяется — проблема не в вас.
api_errorОшибка APIАналогично.

Часть 3. Тайминг как индикатор: учимся читать время ответа​

Stripe и другие шлюзы возвращают заголовок request-duration или можно замерить время от отправки запроса до получения ответа.

Практические примеры:
СитуацияТаймингDecline codeДиагноз
Вбили карту, ответ пришёл через 0.8 сек<1 секgeneric_declineБлокировка по BIN или fingerprint. Меняйте прокси и профиль.
Через 2.5 сек пришёл do_not_honor1–3 секdo_not_honorКарта в стоп-листе. Выбрасывайте.
Через 4 сек пришёл insufficient_funds3–7 секinsufficient_fundsКарта жива, но пуста. Уменьшите сумму до $1 и проверьте.
Через 5 сек пришёл fraudulent3–7 секfraudulentАнтифрод мёрчанта. Смените прокси и fingerprint.
Через 0.5 сек invalid_number<1 секinvalid_numberФуфло от продавца.

Инструмент для измерения: в консоли браузера (F12) → Network → найдите запрос к платёжному API → колонка Time.

Часть 4. Коды Adyen и Braintree: основные различия​

4.1. Adyen​

Adyen возвращает resultCode и refusalReason.
resultCoderefusalReasonЗначение
RefusedNOT_ENOUGH_BALANCEНедостаточно средств
RefusedDO_NOT_HONORКарта в стоп-листе
RefusedFRAUDАнтифрод Adyen
Refused3D_SECURE_REQUIREDТребуется 3DS
ErrorTIMEOUTПроблема с сетью или прокси

4.2. Braintree​

Braintree возвращает processor_response_code и processor_response_text.
КодТекстЗначение
2004Insufficient FundsНедостаточно средств
2005Do Not HonorКарта в стоп-листе
2016FraudАнтифрод Braintree (Kount)
2003Expired CardСрок истёк
2000Generic DeclineОбобщённый отказ (часто по BIN)

Часть 5. Практический алгоритм диагностики отказа​

Шаг 1. Зафиксируйте время ответа.
Если <1 сек — проблема в среде или BIN (карта даже не дошла до банка). Если >1 сек — карта дошла до банка, проблема в карте или балансе.

Шаг 2. Посмотрите на decline code.
  • insufficient_funds → карта жива, баланс мал. Уменьшите сумму или проверьте микро-чеком.
  • do_not_honor / lost_card / stolen_card → карта мертва. Выбрасывайте.
  • fraudulent / blocked → проблема в среде. Меняйте прокси, профиль, антидетект.
  • authentication_required → карта требует 3DS. Бесполезна для non‑3DS целей.
  • generic_decline + тайминг <1 сек → блокировка по BIN. Меняйте BIN.
  • generic_decline + тайминг 2–5 сек → возможно, карта жива, но что-то не так с данными (CVV, адрес). Перепроверьте.

Шаг 3. Проверьте карту в другом месте.
Сделайте микро-чек ($1) через Wikipedia или Red Cross. Если проходит — карта жива, проблема в мёрчанте или среде. Если нет — карта мертва.

Шаг 4. Занесите результат в лог.
Запишите BIN, прокси, decline code, тайминг. Через 20–30 попыток вы увидите паттерны.

Часть 6. Ошибки при интерпретации кодов​

Ошибка 1. Верить только коду, игнорируя тайминг.
generic_decline при 0.5 сек и при 3 сек — разные истории. Всегда смотрите на время.

Ошибка 2. Сразу обвинять продавца карт.
Даже если карта упала с do_not_honor, это может быть из-за того, что вы использовали плохой прокси или не прогрели профиль. Проверьте среду.

Ошибка 3. Не логировать результаты.
Если вы не записываете, какие BIN падают с какими кодами и на каких шлюзах, вы не сможете улучшить стратегию.

Ошибка 4. Игнорировать fraudulent.
Если вы получили fraudulent, не пытайтесь повторять попытку с тем же профилем и прокси — это бессмысленно. Меняйте всё.

Резюме​

Decline code и тайминг — это ваши главные диагностические инструменты. Они превращают хаос отказов в управляемый процесс. Запомните основные коды, научитесь измерять время ответа и всегда сверяйтесь с логами. Это позволит вам отличать мёртвые карты от проблем со средой и экономить десятки тысяч долларов.

Быстрая памятка на одну строку:
«<1 сек — BIN или среда; 1–3 сек — карта мертва; 3–7 сек — антифрод. insufficient_funds — жива, но пуста; do_not_honor — выбрось; fraudulent — меняй прокси и профиль. Логируй каждый отказ, анализируй паттерны. Тайминг + код = рентгеновский снимок твоей проблемы»
 
Top