NewNo plan feeNo plan fee. Just 2.9% + $0.30 per card sale, and signing up is free.Try now →

Códigos de rechazo

Códigos de rechazo de Stripe: qué significa cada uno y cómo solucionarlo

Revisado

Los códigos de rechazo de Stripe le dicen por qué falló un pago con tarjeta en Stripe. Algunos provienen del banco de la tarjeta, como `insufficient_funds` o `expired_card`; algunos provienen de Stripe mismo, como `fraudulent` o `merchant_blacklist`. Stripe los devuelve como el `decline_code` en un error `card_declined`. Cada página a continuación explica un código, dice si un reintento puede funcionar bajo las reglas de la red de tarjetas y muestra lo que PlatformDTC hace con ellos en el proceso de pago y las renovaciones de suscripción.

CódigoSignificado
authentication_requiredEl banco quiere que el titular de la tarjeta verifique el pago, normalmente con 3D Secure.
authentication_not_handledSe requería verificación, el comprador la omitió, y el banco rechazó de nuevo.
approve_with_idEl banco no pudo autorizar el pago tal como se envió; un intento más podría funcionar.
call_issuerEl banco rechazó sin una razón y quiere que el titular de la tarjeta lo contacte.
card_not_supportedLa tarjeta no se puede usar para este tipo de compra.
card_velocity_exceededSe ha alcanzado el saldo, el límite de crédito o el límite de importe de la tarjeta.
currency_not_supportedLa tarjeta no puede ser cargada en la moneda del pago.
do_not_honorEl banco rechazó la tarjeta sin decir por qué.
do_not_try_againCódigo obsoleto: rechazado por una razón desconocida; no vuelvas a cargar esta tarjeta.
duplicate_transactionSe envió un pago idéntico con la misma tarjeta hace unos momentos.
expired_cardLa tarjeta ha superado su fecha de vencimiento.
fraudulentLas comprobaciones de fraude de Stripe sospecharon que el pago era fraudulento y lo bloquearon.
generic_declineRechazado por una razón desconocida, o bloqueado por Stripe Radar o Adaptive Acceptance.
incorrect_addressLa dirección de facturación ingresada no coincide con los registros del banco.
incorrect_cvcEl código de seguridad de la tarjeta (CVC) es incorrecto.
incorrect_numberEl número de tarjeta ingresado es incorrecto.
incorrect_pinEl PIN introducido en un lector de tarjetas es incorrecto.
incorrect_zipEl código postal de facturación no coincide con los registros del banco.
insufficient_fundsLa tarjeta no tiene suficiente dinero o crédito para este pago.
invalid_accountLa tarjeta o la cuenta asociada ya no es válida.
invalid_amountEl monto del pago es inválido o superior a lo que permite la tarjeta.
invalid_cvcEl código de seguridad de la tarjeta (CVC) es incorrecto.
invalid_expiry_monthEl mes de caducidad de la tarjeta no es válido.
invalid_expiry_yearEl año de caducidad de la tarjeta no es válido.
invalid_numberEl número de tarjeta es incorrecto.
invalid_pinEl PIN introducido es incorrecto.
issuer_not_availableNo se pudo contactar con el banco de la tarjeta, por lo que el pago nunca fue autorizado.
lost_cardLa tarjeta ha sido reportada como perdida. No se puede usar; el comprador necesita otra tarjeta.
merchant_blacklistEl pago coincidió con una entrada en la lista de bloqueo de Stripe propia de la tienda.
new_account_information_availableLa tarjeta o su cuenta no es válida; el banco podría tener detalles más recientes para ella.
no_action_takenLa tarjeta fue rechazada por una razón que el banco no compartió.
not_permittedEl banco dice que este pago no está permitido en esta tarjeta.
offline_pin_requiredSolo en persona: la tarjeta debe insertarse y se debe introducir un PIN.
online_or_offline_pin_requiredSolo en persona: la tarjeta necesita un PIN, mediante Online PIN o chip y PIN.
pickup_cardLa tarjeta no se puede usar para este pago; puede haber sido reportada como perdida o robada.
pin_try_exceededDemasiados intentos de PIN incorrectos; el cliente debe usar otra tarjeta o método.
processing_errorOcurrió un error al procesar la tarjeta. Generalmente temporal.
reenter_transactionEl banco no pudo procesar el pago por una razón desconocida; inténtelo de nuevo.
restricted_cardLa tarjeta no se puede usar para este pago; puede haber sido reportada como perdida o robada.
revocation_of_all_authorizationsEl banco rechazó; típicamente el titular de la tarjeta ha detenido todos los pagos futuros.
revocation_of_authorizationEl banco rechazó; típicamente el titular de la tarjeta revocó los pagos a esta tienda.
security_violationEl banco rechazó por una razón que no compartió; a menudo una regla de seguridad.
service_not_allowedLa tarjeta fue rechazada por una razón que el banco no dio.
stolen_cardLa tarjeta ha sido reportada como robada. No puede usarse de nuevo.
stop_payment_orderEl banco rechazó; el nombre del código apunta a una orden de suspensión de pago en la tarjeta.
testmode_declineSe usó un número de tarjeta de prueba de Stripe en un pago real.
transaction_not_allowedEl banco rechazó; la tarjeta no permite este tipo de transacción.
try_again_laterCódigo obsoleto: el banco rechazó por una razón desconocida; intenta de nuevo más tarde.
withdrawal_count_limit_exceededEl cliente ha superado el saldo o límite de crédito disponible en la tarjeta.
mobile_device_authentication_requiredEl pago necesita autenticación; el cliente debería tocar su teléfono de nuevo.
card_declinedEl código de error de Stripe para cualquier tarjeta rechazada; el decline_code indica el motivo.
payment_intent_authentication_failureLa tarjeta falló la verificación de autenticación del banco (como 3-D Secure).

¿Qué códigos de rechazo de Stripe se pueden reintentar?

Stripe clasifica muchos rechazos como genéricos, por lo que la razón exacta a menudo no está clara. Como regla general, los códigos de fondos, límite y temporales pueden resolverse más tarde; los detalles de tarjeta incorrectos requieren que el comprador los vuelva a introducir; las tarjetas perdidas, robadas, cerradas, restringidas y caducadas necesitan una tarjeta diferente.

Stripe también devuelve un código de consejo con algunos rechazos: `do_not_try_again` significa no usar la tarjeta de nuevo para ese pago, `try_again_later` significa que se permite un reintento, y `confirm_card_data` significa que algunos detalles de la tarjeta son incorrectos. Stripe recomienda un máximo de ocho reintentos para un cargo que permite reintentos.

En el calendario fijo predeterminado (reintentos con 1, 3, 5 y 7 días de diferencia), los rechazos en los dos últimos grupos también se detienen en el primer fallo: la tarjeta no se reintenta, la suscripción se mantiene vencida y el cliente recibe el correo electrónico para actualizar la tarjeta o confirmar el pago. Solo los otros grupos se reintentan en ese calendario.

GrupoCódigos de ejemploQué sucede
Fondos insuficientesinsufficient_fundsSe reintenta en el día de pago probable del cliente, o 2, 5, 8, 13 y 18 días después del primer rechazo: hasta 6 intentos (7 en PayPal, 2 en una tarjeta prepago)
Temporalprocessing_error, issuer_not_available, try_again_later, card_velocity_exceeded, card_decline_rate_limit_exceededSe reintenta 2, 5 y 8 días después del primer rechazo: hasta 4 intentos
Sin razón indicadado_not_honor, generic_decline, call_issuer, approve_with_id, no_action_taken, duplicate_transactionUn reintento 48 a 72 horas después, luego se le pide al cliente una nueva tarjeta
Se necesita confirmación bancariaauthentication_required, authentication_not_handled, mobile_device_authentication_requiredNo hay reintento ciego; se le pide al cliente que confirme el pago con su banco
La tarjeta no se puede usarlost_card, stolen_card, expired_card, incorrect_number, incorrect_zip, restricted_card, pin_try_exceeded, do_not_try_againNunca se reintenta; el cliente recibe un enlace de un solo clic para actualizar la tarjeta
Cómo PlatformDTC clasifica los códigos de rechazo de Stripe para renovaciones de suscripción con reintento inteligente activado

Qué hace PlatformDTC en el proceso de pago

El comprador ve el mensaje de rechazo de Stripe, además de una pista sencilla para los códigos comunes, como "Su tarjeta no tiene fondos suficientes. Intente con otra tarjeta." y una opción para probar otra tarjeta de inmediato. Para `lost_card`, `stolen_card`, `pickup_card`, `fraudulent` y `merchant_blacklist`, la pista es siempre la genérica "Su tarjeta fue rechazada. Intente con otra tarjeta o contacte a su banco.", por lo que nunca se le dice al comprador que una tarjeta fue reportada como perdida o robada o marcada.

Si la tienda ha elegido los pagos con tarjeta de PayPal como respaldo, un rechazo bancario sin razón duradera, como `do_not_honor` o `processing_error`, puede intentarse de nuevo a través de PayPal, donde el comprador introduce la tarjeta otra vez. Los rechazos por fondos, 3-D Secure, detalles incorrectos, tarjeta inactiva y fraude nunca se mueven al respaldo.

Preguntas frecuentes

¿Dónde encuentro el código de rechazo para un pago de Stripe?
En el Panel de Stripe, abra el pago fallido: la razón del rechazo se muestra con una solución corta sugerida. En la API es el `decline_code` en el `last_payment_error` del `PaymentIntent`, y el resultado del cargo también lleva la razón, un código de consejo y, cuando la red envió uno, el código de rechazo de red en bruto.
¿Cuál es el código de rechazo de Stripe más común?
Stripe dice que los bancos de tarjetas categorizan la mayoría de los rechazos como genéricos (`generic_decline`), lo que deja la razón exacta poco clara. Si la información de la tarjeta es correcta, Stripe aconseja pedir al cliente que contacte a su banco emisor para saber por qué se rechazó el pago.
¿Cuántas veces puedo reintentar un pago de Stripe rechazado?
Stripe recomienda un máximo de ocho reintentos para cargos que permiten reintentos, y advierte que los reintentos adicionales pueden parecer fraude a los bancos de tarjetas. Visa permite hasta 20 intentos en 30 días en rechazos reintentables y ninguno después de un rechazo de Categoría 1, como una tarjeta perdida o robada.
¿Debo decirle al comprador la razón exacta del rechazo?
Para la mayoría de los códigos, sí: una razón sencilla como una tarjeta caducada o un código de seguridad incorrecto les ayuda a solucionarlo. Para `fraudulent`, `lost_card`, `stolen_card` y `merchant_blacklist`, Stripe dice que no se deben dar detalles y que se debe mostrar el rechazo de la misma manera que `generic_decline`.

Fuentes

Biblioteca de pagos