HERRAMIENTA GRATUITA · TARJETAS DE PRUEBA DE STRIPE
Tarjetas de prueba de Stripe
La que buscas es la 4242 4242 4242 4242, con cualquier CVC de tres cifras (cuatro en American Express), cualquier fecha de caducidad futura, como 12/34, y lo que quieras en el resto de campos. Solo sirve con tus claves de API de prueba. La tabla reúne 119 tarjetas de prueba de Stripe, comprobadas el 26 de septiembre de 2026 contra su referencia de pruebas —incluidas las 64 que Stripe clasifica por país, con la española en cabeza—, y debajo, los valores de prueba de métodos de pago locales, empezando por los IBAN españoles del adeudo directo SEPA. Busca, pulsa un número para copiarlo y descarga el conjunto en JSON o CSV para tus tests. Cada tarjeta que falla trae el código de error, el código de rechazo y el evento de webhook que produce: lo que la documentación oficial reparte en tres páginas.
También enEnglish繁體中文日本語한국어EspañolFrançaisDeutschPortuguês (Brasil)
Pulsa cualquier número para copiarlo sin espacios. No se envía nada a ningún sitio: la tabla y las descargas se generan en esta página. La descarga sigue al filtro, así que puedes exportar solo las tarjetas de rechazo.
| Número | Qué simula | Marca | PaymentMethod | Códigos y evento |
|---|---|---|---|---|
| Pago correcto, por marca de tarjeta · 15 | ||||
| Pago correcto | Visa | pm_card_visa |
||
| Pago correcto con tarjeta de débito | Visa (debit) | pm_card_visa_debit |
||
| Pago correcto | Mastercard | pm_card_mastercard |
||
| Pago correcto con un BIN de la serie 2 | Mastercard (2-series) | |||
| Pago correcto con tarjeta de débito | Mastercard (debit) | pm_card_mastercard_debit |
||
| Pago correcto con tarjeta prepago | Mastercard (prepaid) | pm_card_mastercard_prepaid |
||
| Pago correcto (15 cifras, CVC de 4 cifras) | American Express | pm_card_amex |
||
| Pago correcto con un segundo BIN de Amex | American Express | |||
| Pago correcto | Discover | pm_card_discover |
||
| Pago correcto con un número de 19 cifras | UnionPay (19-digit) | |||
| Pago correcto | Diners Club | pm_card_diners |
||
| Pago correcto con un número de 14 cifras | Diners Club (14-digit) | |||
| Pago correcto | JCB | pm_card_jcb |
||
| Pago correcto | UnionPay | pm_card_unionpay |
||
| Pago correcto con una tarjeta francesa de marca compartida | Cartes Bancaires / Visa | pm_card_visa_cartesBancaires |
||
| Rechazos · 10 | ||||
| Rechazo genérico | Visa | pm_card_visa_chargeDeclined |
card_declined |
|
| Rechazo por fondos insuficientes | Visa | pm_card_visa_chargeDeclinedInsufficientFunds |
card_declined |
|
| Rechazo por tarjeta extraviada | Visa | pm_card_visa_chargeDeclinedLostCard |
card_declined |
|
| Rechazo por tarjeta robada | Visa | pm_card_visa_chargeDeclinedStolenCard |
card_declined |
|
| Rechazo por tarjeta caducada | Visa | pm_card_chargeDeclinedExpiredCard |
expired_card |
|
| Rechazo por CVC incorrecto (envía un CVC o no se comprueba) | Visa | pm_card_chargeDeclinedIncorrectCvc |
incorrect_cvc |
|
| Rechazo por error de procesamiento | Visa | pm_card_chargeDeclinedProcessingError |
processing_error |
|
| Número incorrecto: no pasa la comprobación de Luhn a propósito | Visa | incorrect_number |
||
| Rechazo por superar el límite de velocidad | Visa | pm_card_visa_chargeDeclinedVelocityLimitExceeded |
card_declined |
|
| Se adjunta a un Customer y falla al cobrarla | Visa | pm_card_chargeCustomerFail |
card_declined |
|
| Radar, fraude y verificación de dirección · 9 | ||||
| Riesgo máximo: Radar la bloquea siempre | Visa | pm_card_radarBlock |
card_declined |
|
| Nivel de riesgo «máximo»: Radar puede bloquearla, según tus reglas | Visa | pm_card_riskLevelHighest |
card_declined |
|
| Nivel de riesgo «elevado»: Radar puede enviarla a revisión manual | Visa | pm_card_riskLevelElevated |
||
| Alta puntuación de disputa por fraude | Visa | pm_card_highFraudDisputeScore |
||
| Alta puntuación de alerta de fraude preventiva | Visa | pm_card_highEfwScore |
||
| Abuso de prueba gratuita: se bloquea si ese control está activo | Visa | pm_card_freeTrialAbuseBlock |
card_declined |
|
| Falla la verificación del CVC (solo si envías un CVC) | Visa | pm_card_cvcCheckFail |
card_declined |
|
| Falla la verificación del código postal (solo si lo envías) | Visa | pm_card_avsZipFail |
card_declined |
|
| Fallan la verificación del código postal y la de la primera línea de la dirección | Visa | pm_card_avsFail |
card_declined |
|
| Disputas y alertas de fraude · 8 | ||||
| El cargo se efectúa y después se disputa como fraudulento | Visa | pm_card_createDispute |
||
| El cargo se efectúa y después se disputa como fraudulento, con Discover | Discover | |||
| El cargo se efectúa y después se disputa como producto no recibido | Visa | pm_card_createDisputeProductNotReceived |
||
| El cargo se efectúa y después llega una petición de información, no un contracargo | Visa | pm_card_createDisputeInquiry |
||
| El cargo se efectúa y después llega una alerta de fraude preventiva | Visa | pm_card_createIssuerFraudRecord |
||
| El cargo se efectúa y después se disputa más de una vez | Visa | pm_card_createMultipleDisputes |
||
| Disputa elegible para Visa Compelling Evidence 3.0 | Visa | pm_card_createCe3EligibleDispute |
||
| Disputa elegible para Smart Disputes | Visa | pm_card_createAutoRepresentmentEligibleDispute |
||
| Reembolsos y saldo · 4 | ||||
| El reembolso empieza en pending y después se completa | Visa | pm_card_pendingRefund |
||
| El reembolso parece correcto y después falla | Visa | pm_card_refundFail |
||
| Cargo de EE. UU. que va directo al saldo disponible | Visa | pm_card_bypassPending |
||
| Cargo internacional que va directo al saldo disponible | Visa | pm_card_bypassPendingInternational |
||
| 3D Secure · 9 | ||||
| 3DS obligatorio y la autenticación se completa | Visa (IE) | pm_card_threeDSecure2Required |
||
| 3DS obligatorio con una tarjeta emitida en EE. UU.; la autenticación se completa | Visa (US) | |||
| La autenticación 3DS se completa y aun así se rechaza el pago | Visa | pm_card_threeDSecureRequiredChargeDeclined |
card_declined |
|
| Falla la propia consulta de 3DS y se rechaza el pago | Visa | pm_card_threeDSecureRequiredProcessingError |
card_declined |
|
| 3DS admitido, pero las reglas predeterminadas no lo piden | Visa | pm_card_threeDSecureOptional |
||
| 3DS admitido, pero intentarlo da un error de procesamiento | Visa | pm_card_threeDSecureOptionalProcessingError |
card_declined |
|
| Los pagos fuera de sesión piden 3DS hasta que la tarjeta se configura para pagos futuros | Visa | pm_card_authenticationRequiredOnSetup |
||
| 3DS obligatorio en todas las transacciones, esté como esté configurada la tarjeta | Visa | pm_card_authenticationRequired |
||
| Ya configurada para pagos fuera de sesión; los pagos en sesión siguen pidiendo autenticación | Visa | pm_card_authenticationRequiredSetupForOffSession |
||
| Pago correcto, por país · 64 | ||||
| Tu mercadoPago correcto, tarjeta emitida en España | Visa | pm_card_es |
||
| Pago correcto, tarjeta emitida en Estados Unidos | Visa | pm_card_us |
||
| Pago correcto, tarjeta emitida en Argentina | Visa | pm_card_ar |
||
| Pago correcto, tarjeta emitida en Brasil | Visa | pm_card_br |
||
| Pago correcto, tarjeta emitida en Canadá | Visa | pm_card_ca |
||
| Pago correcto, tarjeta emitida en Chile | Visa | pm_card_cl |
||
| Pago correcto, tarjeta emitida en Colombia | Visa | pm_card_co |
||
| Pago correcto, tarjeta emitida en Costa Rica | Visa | pm_card_cr |
||
| Pago correcto, tarjeta emitida en Ecuador | Visa | pm_card_ec |
||
| Pago correcto, tarjeta emitida en México | Visa | pm_card_mx |
||
| Pago correcto, tarjeta emitida en México | Carnet | |||
| Pago correcto, tarjeta emitida en Panamá | Visa | pm_card_pa |
||
| Pago correcto, tarjeta emitida en Paraguay | Visa | pm_card_py |
||
| Pago correcto, tarjeta emitida en Perú | Visa | pm_card_pe |
||
| Pago correcto, tarjeta emitida en Uruguay | Visa | pm_card_uy |
||
| Pago correcto, tarjeta emitida en Emiratos Árabes Unidos | Visa | pm_card_ae |
||
| Pago correcto, tarjeta emitida en Emiratos Árabes Unidos | Mastercard | pm_card_ae_mastercard |
||
| Pago correcto, tarjeta emitida en Austria | Visa | pm_card_at |
||
| Pago correcto, tarjeta emitida en Bélgica | Visa | pm_card_be |
||
| Pago correcto, tarjeta emitida en Bulgaria | Visa | pm_card_bg |
||
| Pago correcto, tarjeta emitida en Bielorrusia | Visa | pm_card_by |
||
| Pago correcto, tarjeta emitida en Croacia | Visa | pm_card_hr |
||
| Pago correcto, tarjeta emitida en Chipre | Visa | pm_card_cy |
||
| Pago correcto, tarjeta emitida en Chequia | Visa | pm_card_cz |
||
| Pago correcto, tarjeta emitida en Dinamarca | Visa | pm_card_dk |
||
| Pago correcto, tarjeta emitida en Estonia | Visa | pm_card_ee |
||
| Pago correcto, tarjeta emitida en Finlandia | Visa | pm_card_fi |
||
| Pago correcto, tarjeta emitida en Francia | Visa | pm_card_fr |
||
| Pago correcto, tarjeta emitida en Alemania | Visa | pm_card_de |
||
| Pago correcto, tarjeta emitida en Gibraltar | Visa | pm_card_gi |
||
| Pago correcto, tarjeta emitida en Grecia | Visa | pm_card_gr |
||
| Pago correcto, tarjeta emitida en Hungría | Visa | pm_card_hu |
||
| Pago correcto, tarjeta emitida en Irlanda | Visa | pm_card_ie |
||
| Pago correcto, tarjeta emitida en Italia | Visa | pm_card_it |
||
| Pago correcto, tarjeta emitida en Letonia | Visa | pm_card_lv |
||
| Pago correcto, tarjeta emitida en Liechtenstein | Visa | pm_card_li |
||
| Pago correcto, tarjeta emitida en Lituania | Visa | pm_card_lt |
||
| Pago correcto, tarjeta emitida en Luxemburgo | Visa | pm_card_lu |
||
| Pago correcto, tarjeta emitida en Malta | Visa | pm_card_mt |
||
| Pago correcto, tarjeta emitida en Países Bajos | Visa | pm_card_nl |
||
| Pago correcto, tarjeta emitida en Noruega | Visa | pm_card_no |
||
| Pago correcto, tarjeta emitida en Polonia | Visa | pm_card_pl |
||
| Pago correcto, tarjeta emitida en Portugal | Visa | pm_card_pt |
||
| Pago correcto, tarjeta emitida en Rumanía | Visa | pm_card_ro |
||
| Pago correcto, tarjeta emitida en Arabia Saudí | Visa | |||
| Pago correcto, tarjeta emitida en Eslovenia | Visa | pm_card_si |
||
| Pago correcto, tarjeta emitida en Eslovaquia | Visa | pm_card_sk |
||
| Pago correcto, tarjeta emitida en Suecia | Visa | pm_card_se |
||
| Pago correcto, tarjeta emitida en Suiza | Visa | pm_card_ch |
||
| Pago correcto, tarjeta emitida en Reino Unido | Visa | pm_card_gb |
||
| Pago correcto, tarjeta emitida en Reino Unido | Visa (debit) | pm_card_gb_debit |
||
| Pago correcto, tarjeta emitida en Reino Unido | Mastercard | pm_card_gb_mastercard |
||
| Pago correcto, tarjeta emitida en Australia | Visa | pm_card_au |
||
| Pago correcto, tarjeta emitida en China | Visa | pm_card_cn |
||
| Pago correcto, tarjeta emitida en Hong Kong | Visa | pm_card_hk |
||
| Pago correcto, tarjeta emitida en India | Visa | pm_card_in |
||
| Pago correcto, tarjeta emitida en Japón | Visa | pm_card_jp |
||
| Pago correcto, tarjeta emitida en Japón | JCB | pm_card_jcb |
||
| Pago correcto, tarjeta emitida en Malasia | Visa | pm_card_my |
||
| Pago correcto, tarjeta emitida en Nueva Zelanda | Visa | pm_card_nz |
||
| Pago correcto, tarjeta emitida en Singapur | Visa | pm_card_sg |
||
| Pago correcto, tarjeta emitida en Taiwán | Visa | pm_card_tw |
||
| Pago correcto, tarjeta emitida en Tailandia | Visa (credit) | pm_card_th_credit |
||
| Pago correcto, tarjeta emitida en Tailandia | Visa (debit) | pm_card_th_debit |
||
Métodos de pago locales: valores de prueba
Lo que Stripe publica para el adeudo directo SEPA en España, Alemania y Francia, Konbini en Japón y Boleto en Brasil. Pulsa un valor para copiarlo. Estos pagos esperan en processing o en requires_action antes de resolverse, por eso la última columna muestra la secuencia completa de webhooks.
| Valor de prueba | Qué simula | Parámetro | PaymentMethod | Códigos y evento |
|---|---|---|---|---|
| SEPA Direct Debit · España (ES) · 6 | ||||
| Tu mercadoEl PaymentIntent pasa de processing a succeeded | sepa_ |
pm_ |
||
| Tu mercadoEl PaymentIntent pasa de processing a succeeded al cabo de al menos tres minutos | sepa_ |
pm_ |
||
| Tu mercadoEl PaymentIntent pasa de processing a requires_payment_method | sepa_ |
pm_ |
||
| Tu mercadoEl PaymentIntent pasa de processing a requires_payment_method al cabo de al menos tres minutos | sepa_ |
pm_ |
||
| Tu mercadoEl PaymentIntent pasa de processing a succeeded y enseguida se crea una disputa | sepa_ |
pm_ |
||
| Tu mercadoEl pago falla con el código insufficient_funds | sepa_ |
pm_ |
insufficient_ |
|
| SEPA Direct Debit · Alemania (DE) · 6 | ||||
| El PaymentIntent pasa de processing a succeeded | sepa_ |
pm_ |
||
| El PaymentIntent pasa de processing a succeeded al cabo de al menos tres minutos | sepa_ |
pm_ |
||
| El PaymentIntent pasa de processing a requires_payment_method | sepa_ |
pm_ |
||
| El PaymentIntent pasa de processing a requires_payment_method al cabo de al menos tres minutos | sepa_ |
pm_ |
||
| El PaymentIntent pasa de processing a succeeded y enseguida se crea una disputa | sepa_ |
pm_ |
||
| El pago falla con el código insufficient_funds | sepa_ |
pm_ |
insufficient_ |
|
| SEPA Direct Debit · Francia (FR) · 6 | ||||
| El PaymentIntent pasa de processing a succeeded | sepa_ |
pm_ |
||
| El PaymentIntent pasa de processing a succeeded al cabo de al menos tres minutos | sepa_ |
pm_ |
||
| El PaymentIntent pasa de processing a requires_payment_method | sepa_ |
pm_ |
||
| El PaymentIntent pasa de processing a requires_payment_method al cabo de al menos tres minutos | sepa_ |
pm_ |
||
| El PaymentIntent pasa de processing a succeeded y enseguida se crea una disputa | sepa_ |
pm_ |
||
| El pago falla con el código insufficient_funds | sepa_ |
pm_ |
insufficient_ |
|
| Konbini · Japón (JP) · 6 | ||||
| El pago se completa a los 3 minutos | billing_ |
|||
| El pago se completa al instante | billing_ |
|||
| El pago caduca al instante | billing_ |
|||
| No se paga; caduca a los 3 minutos | billing_ |
|||
| No se paga; caduca en el expires_at que fijes | billing_ |
|||
| Número de confirmación rechazado al confirmar el PaymentIntent | payment_ |
payment_ |
||
| Boleto · Brasil (BR) · 6 | ||||
| El boleto se paga a los 3 minutos | billing_ |
|||
| El boleto se paga al instante | billing_ |
|||
| El boleto caduca sin pagar; payment_failed en segundos | billing_ |
|||
| El boleto caduca sin pagar a los 3 minutos, más o menos | billing_ |
|||
| El boleto no se paga nunca; caduca en su expires_at | billing_ |
|||
| CPF de sandbox que se salta la validación del número fiscal | boleto[ |
|||
Fuentes: la página de pruebas de Stripe en español (tarjetas por país, IBAN de prueba, emails con ubicación, secuencias de webhooks), su guía para aceptar adeudos directos SEPA, la de Bizum y la lista de códigos de rechazo. Comprobado el 26 de septiembre de 2026.
Cómo usar una tarjeta de prueba de Stripe
Tres pasos. Las tarjetas de prueba solo funcionan en un entorno de prueba, con claves de API de prueba, así que nada de esta página puede tocar una tarjeta real ni a un cliente real.
- Cambia a las claves de prueba. Usa tus claves publicable y secreta de prueba, o un entorno de prueba. El Contrato de servicios de Stripe prohíbe hacer pruebas en modo activo con datos de pago reales, y en modo activo una tarjeta de prueba se rechaza con el código testmode_decline.
- Elige la tarjeta del resultado que quieres ver. La 4242 4242 4242 4242 para un pago correcto sin más. Para probar tu gestión de errores, elige la tarjeta cuya fila lleva el código de rechazo que quieres provocar, con cualquier CVC de tres cifras y cualquier fecha futura.
- En el código del servidor, usa el PaymentMethod. Stripe recomienda pasar un PaymentMethod como pm_card_visa en vez del número en las llamadas a la API, incluso en pruebas, para que tu código no lleve números de tarjeta y no tengas un problema de PCI al pasar a producción. La columna PaymentMethod trae el de cada tarjeta que lo tiene.
Qué tarjeta provoca qué fallo, y qué verá tu webhook
Gestionar bien un pago fallido exige tener tres cosas en la cabeza a la vez: el error.code que lanza tu llamada a la API, el decline_code que añadió el emisor y el evento que llega después a tu endpoint de webhooks. Stripe documenta cada una en una página distinta, así que casi todas las integraciones se escriben contra una y se llevan una sorpresa con las otras dos. Aquí está lo mismo, con una fila por resultado.
| Tarjeta de prueba | Qué simula | error.code | decline_code | Evento de webhook |
|---|---|---|---|---|
| 4000 0000 0000 0002 | Rechazo genérico | card_declined | generic_decline | payment_intent.payment_failed |
| 4000 0000 0000 9995 | Fondos insuficientes | card_declined | insufficient_funds | payment_intent.payment_failed |
| 4000 0000 0000 9987 | Tarjeta extraviada | card_declined | lost_card | payment_intent.payment_failed |
| 4000 0000 0000 9979 | Tarjeta robada | card_declined | stolen_card | payment_intent.payment_failed |
| 4000 0000 0000 6975 | Demasiados intentos con la misma tarjeta | card_declined | card_velocity_exceeded | payment_intent.payment_failed |
| 4000 0000 0000 0069 | Tarjeta caducada | expired_card | ninguno | payment_intent.payment_failed |
| 4000 0000 0000 0127 | CVC incorrecto | incorrect_cvc | ninguno | payment_intent.payment_failed |
| 4000 0000 0000 0119 | Error de procesamiento en la red | processing_error | ninguno | payment_intent.payment_failed |
| 4242 4242 4242 4241 | Número que no pasa la comprobación de Luhn | incorrect_number | ninguno | ninguno: se rechaza antes de que exista un cargo |
| 4100 0000 0000 0019 | Radar la bloquea, siempre | card_declined | generic_decline | payment_intent.payment_failed |
| 4000 0000 0000 9235 | Riesgo elevado, a revisión | ninguno: el cargo se crea | ninguno | review.opened |
| 4000 0000 0000 0101 | Radar falla la verificación del CVC | card_declined | generic_decline | payment_intent.payment_failed |
| 4000 0000 0000 0036 | Radar falla la verificación del código postal | card_declined | generic_decline | payment_intent.payment_failed |
| 4000 0000 0000 0259 | El cargo se efectúa y luego llega una disputa por fraude | ninguno | ninguno | charge.dispute.created |
| 4000 0000 0000 2685 | El cargo se efectúa y luego «producto no recibido» | ninguno | ninguno | charge.dispute.created |
| 4000 0000 0000 5423 | El cargo se efectúa y luego una alerta de fraude preventiva | ninguno | ninguno | radar.early_fraud_warning.created |
| 4000 0000 0000 7726 | El reembolso empieza pendiente y luego se completa | ninguno | ninguno | refund.updated |
| 4000 0000 0000 5126 | El reembolso parece correcto y luego falla | ninguno | ninguno | refund.failed |
| 4000 0000 0000 3220 | Pide el desafío de 3D Secure | ninguno | ninguno | payment_intent.requires_action |
| 4000 0084 0000 1629 | Autentica y aun así se rechaza | card_declined | ninguno | payment_intent.payment_failed |
| 4000 0084 0000 1280 | Falla la propia consulta de 3D Secure | card_declined | ninguno | payment_intent.payment_failed |
Leerlo como una sola tabla deja dos costumbres. La primera: card_declined no es un motivo, es una categoría. El motivo va en decline_code, y de los ocho rechazos del principio de la tabla solo cinco lo llevan; tarjeta caducada, CVC incorrecto y error de procesamiento se distinguen únicamente por error.code. Si tu gestión de errores decide solo con error.code, unos fondos insuficientes y una tarjeta robada le parecen lo mismo, y le enseñarás el mensaje equivocado al cliente al que simplemente no le llegaba el saldo.
La segunda: hay resultados que nunca aparecen en la respuesta. Un cargo que va a revisión, una disputa que se abre tres semanas después, un reembolso asíncrono que pasa de correcto a fallido: nada de eso se ve en el momento de la llamada. Llega como evento, o no llega, porque nadie construyó el endpoint. Ese es el fallo que merece la pena provocar a propósito: bloquea la tarjeta y mira qué hizo tu sistema con el evento.
Dos notas que no caben en la tabla. Stripe no hace las comprobaciones de CVC ni de código postal si no envías esos campos, así que las tarjetas que simulan que fallan se pagan sin problema si tu formulario no los recoge. Y en los pagos que bloquea Radar, generic_decline es, según la documentación, el código de «Stripe Radar o Adaptive Acceptance han bloqueado el pago». Es deliberado: Stripe pide no dar al cliente más detalle cuando sospecha fraude.
Probar 3D Secure
La normativa de autenticación reforzada de clientes exige 3D Secure en los pagos por internet dentro del Espacio Económico Europeo, y es justo donde más se rompen las integraciones que funcionan, porque el camino feliz nunca pasa por ahí. Un pago que necesita autenticación no falla ni se completa: vuelve con el PaymentIntent en requires_action, y tu front-end tiene que pasarle el control a Stripe.js para que el cliente complete el desafío.
Nueve tarjetas de la tabla recorren las ramas, y la distinción que más tiempo ahorra es obligatorio frente a admitido:
- 4000 0000 0000 3220: la autenticación es obligatoria y se completa. Es la tarjeta contra la que construir. Con ella descubrirás si tu cliente llama de verdad al paso de confirmación o trata
requires_actioncomo un error sin decir nada. - 4000 0000 0000 3055: 3D Secure es admitido pero las reglas predeterminadas no lo piden. Sirve para comprobar que no has hecho obligatoria la autenticación sin querer.
- 4000 0084 0000 1629 y 4000 0084 0000 1280: las dos formas de acabar mal. El cliente autentica y el emisor rechaza igualmente, o falla la propia consulta. Las dos vuelven como
card_declined, así que una gestión de errores que da por hecho que un desafío completado es un pago completado enseñará una pantalla de éxito para un pago que no existe. - 4000 0025 0000 3155 y 4000 0027 6000 3184: las tarjetas guardadas. La primera pide autenticación en los cobros fuera de sesión hasta que la configuras para pagos futuros; la segunda la pide siempre. Si vas a cobrar más adelante sin el cliente delante, estas dos marcan la diferencia entre una renovación que funciona y una que muere.
Un detalle que despista: solo las tarjetas de este grupo prueban de verdad 3D Secure. Otras tarjetas de prueba pueden activarlo, pero Stripe devuelve attempt_acknowledged y se salta los pasos, así que tu interfaz del desafío nunca aparece y concluyes, mal, que funciona. Y los pagos creados directamente en el Dashboard de Stripe no redirigen a 3D Secure: pruébalo desde tu propio front-end o con una llamada a la API.
La tarjeta española, los IBAN SEPA de prueba y Bizum
Stripe mantiene aparte una lista de tarjetas de prueba por país: 64 tarjetas de 58 países, cada una simula un pago correcto con una tarjeta emitida en ese país. Son el último grupo de la tabla, y en esta página la de España va primero, marcada como Tu mercado: 4000 0072 4000 0007, una Visa con el PaymentMethod pm_card_es. Lo que cambia es el país emisor, y para eso sirve: Stripe calcula las comisiones transfronterizas según el país emisor de la tarjeta y avisa de que una tarjeta emitida fuera de EE. UU. puede llevarlas incluso en un entorno de prueba. Lo que no prueba es la autenticación: Stripe indica que las tarjetas de su sección de Europa y Oriente Medio simulan un pago que se completa sin autenticación. La española no te hará pasar por el desafío; para eso está el grupo de 3D Secure.
Para simular dónde está el cliente, y no de dónde es la tarjeta, Stripe documenta los emails con formato de ubicación en Checkout Sessions, Payment Links y tablas de precios: añade +location_ES a la parte local, como en test+location_ES@example.com, y pásalo como customer_email al crear la sesión o como prefilled_email en el enlace de pago. La página de Checkout enseña entonces la divisa y los métodos de pago que vería un cliente en España.
Debajo de la tabla de tarjetas van los valores de prueba de métodos locales, y los primeros son los del adeudo directo SEPA —la domiciliación— con cuentas españolas: seis IBAN, de ES0700120345030000067890 (se cobra) a ES1700120345000002222227 (fondos insuficientes), cada uno con su PaymentMethod pm_sepaDebit_…_es. Stripe publica nueve casos por país; aquí están los seis centrales. No se resuelven como una tarjeta: el pago espera en processing antes de completarse o fallar —en los casos con retraso, al menos tres minutos—, así que cada fila lista la secuencia entera de eventos que recibirá tu webhook. El IBAN de disputa merece una prueba propia: en el adeudo directo SEPA, según la guía de Stripe, el cliente puede disputar un cobro a través de su banco hasta 13 meses después y no hay proceso de apelación.
Bizum no está en la tabla, porque no se prueba con un número que copiar. La guía de Bizum de Stripe lo hace en Checkout con números de teléfono de prueba: el +34600000002 hace que el PaymentIntent pase de requires_action a requires_payment_method con el código payment_method_provider_decline, y cualquier otro número lo lleva a succeeded, en ambos casos unos cinco segundos después de confirmar.
Reembolsos, disputas y lo que llega tarde
En modo activo, los reembolsos son asíncronos: uno puede aparecer como correcto y fallar horas después, o empezar en pending y resolverse luego. Casi ningún conjunto de tests lo cubre, porque con cualquier tarjeta de prueba normal el reembolso se completa al momento y ya no cambia. Dos tarjetas recuperan el comportamiento real: 4000 0000 0000 7726 deja el reembolso pendiente y después lo completa, y 4000 0000 0000 5126 lo da por correcto y después falla. Las dos emiten un evento más tarde, que es justo el camino de código que quieres tener escrito antes de que un cliente te llame por un dinero que nunca le volvió.
Las disputas funcionan igual, a cámara lenta. El cargo se efectúa con normalidad y días después aparece el contracargo, con charge.dispute.created como único aviso. 4000 0000 0000 0259 abre una disputa por fraude, 4000 0000 0000 2685 una por producto no recibido y 4000 0000 0000 1976 una petición de información en lugar de un contracargo completo; conviene separarlas, porque una petición de información a menudo se cierra sin escalar y un contracargo no. 4000 0000 0000 5423 genera en cambio una alerta de fraude preventiva: la red avisándote de que probablemente viene una disputa, cuando aún estás a tiempo de reembolsar por tu cuenta.
Para simular también el desenlace, responde a la disputa con los textos de prueba que Stripe reserva: winning_evidence la cierra a tu favor, losing_evidence la cierra como perdida y escalate_inquiry_evidence convierte una petición de información en un contracargo. Por la API, pásalo como uncategorized_text.
Y el último de los que llegan tarde: 4000 0000 0000 0077 manda los fondos directamente a tu saldo disponible en vez de al pendiente. No es una prueba de pagos, es una prueba de contabilidad: útil si algo aguas abajo concilia las transferencias y no quieres esperar a que pase el periodo de liquidación para saber si funciona.
Descarga las fixtures en JSON o CSV
Una tabla que copias a mano es una tabla que acabarás copiando mal. Los dos botones de descarga te dan las mismas 119 tarjetas en archivos legibles por máquina, generados en el navegador a partir de los datos con los que se pinta esta página: lo que descargas no puede apartarse de lo que acabas de leer.
El JSON es un objeto con source, checked, count y un array cards. Cada tarjeta lleva un id estable que puedes citar en el nombre de un test, los números, la marca, el grupo, una descripción de una línea, las reglas de CVC y caducidad, los cuatro campos del cruce —payment_method, error_code, decline_code y webhook_event— y country, el código ISO del país emisor en las tarjetas del grupo por país. Los campos que no aplican son null, no ausentes, así que tu parser nunca tiene que protegerse de claves que faltan.
El CSV lleva las mismas doce columnas con el entrecomillado de la RFC 4180: se abre en una hoja de cálculo y se carga en pandas sin argumentos de conversión. Los dos archivos van en inglés y en el orden canónico, los descargues desde la página que los descargues. Los valores de métodos locales de debajo de la tabla son para copiar, no para descargar: no van en ninguno de los dos archivos.
Las dos descargas siguen el filtro activo. Reduce la tabla a los rechazos, pulsa Descargar JSON y obtienes diez filas en lugar de las 119, que suele ser lo que quiere un test parametrizado:
test.each(fixtures.cards.filter(c => c.group === 'decline'))(
'$id surfaces $decline_code',
async ({ payment_method, error_code, decline_code }) => { /* … */ },
);
Los archivos llevan la URL de la fuente y la fecha de la comprobación, porque una lista de tarjetas sin fecha es una lista en la que no podrás confiar dentro de seis meses. Si Stripe cambia un número, lo honesto es volver a comprobar la fuente, no guardar en tu repositorio una copia caducada.
Lo que de verdad estás construyendo
Nadie busca tarjetas de prueba por gusto. Estás aquí porque estás montando un pago, y el pago es una pieza de algo más grande: un catálogo, un precio que el cliente no puede tocar, una sesión creada en algún sitio con un secreto, un webhook que decide si el pedido cuenta como pagado y todo lo que pasa después de que llega el dinero.
La pieza que más falla no es la tarjeta: es el precio. Una web estática que guarda sus precios en el HTML y envía un importe a un endpoint de pago le está confiando la cifra al navegador, y el navegador no es de fiar. Es una familia entera de errores que las tarjetas de prueba nunca van a detectar, porque un pago manipulado se completa de maravilla.
Clize se apoya en Stripe Checkout justo por eso y pone el precio del lado del servidor: una tienda alojada calcula cada cesta contra el _catalog.json desplegado con la web e ignora el importe que diga el cliente. Si ese es tu problema, el archivo de catálogo tiene aquí un generador y un validador (en inglés), y si solo necesitas que un cliente te pague un importe, clize pay link --amount 49 devuelve una URL de Stripe Checkout real sin cuenta de Stripe propia. Ese cobro es dinero de verdad: mantenlo bien lejos de los números de esta página.
Preguntas frecuentes
¿Cuál es el número de la tarjeta de prueba de Stripe?
La habitual es la 4242 4242 4242 4242, una Visa que siempre se paga. Úsala con cualquier CVC de tres cifras, cualquier fecha de caducidad futura, como 12/34, y cualquier valor en el resto de campos. Solo funciona con tus claves de API de prueba: en modo activo, Stripe la rechaza con el código testmode_decline.
¿Qué fecha de caducidad y qué CVC pongo en una tarjeta de prueba de Stripe?
Cualquier fecha futura sirve; 12/34 es el ejemplo que usa la propia Stripe. El CVC es cualquier número de tres cifras, salvo en las American Express, donde son cuatro. Stripe no comprueba el CVC si no lo envías, y por eso la tarjeta que simula un CVC incorrecto parece pagarse bien cuando tu formulario no pide ese campo.
¿Por qué Stripe me rechaza la tarjeta de prueba?
Hay tres causas habituales. La estás enviando con las claves de producción, que rechazan los números de prueba con el código testmode_decline. Has copiado una tarjeta pensada para fallar: la 4000 0000 0000 0002 y todo el grupo de rechazos existen para eso. O el número no pasa la comprobación de Luhn, como la 4242 4242 4242 4241, que devuelve incorrect_number antes de que se cree un cargo.
¿Hay una tarjeta de prueba española en Stripe?
Sí: la 4000 0072 4000 0007, una Visa emitida en España, con el PaymentMethod pm_card_es. Simula un pago correcto con tarjeta española y sirve para todo lo que dependa del país emisor, como las comisiones transfronterizas. No prueba 3D Secure: Stripe indica que las tarjetas europeas de esa lista se pagan sin autenticación, así que para el desafío usa la 4000 0000 0000 3220.
¿Cómo pruebo un adeudo directo SEPA con una cuenta española?
Con los IBAN de prueba españoles que publica Stripe, como ES0700120345030000067890 para un cobro correcto o ES9121000418450200051332 para uno fallido, en el campo sepa_debit[iban] o con su PaymentMethod pm_sepaDebit_…_es. El pago pasa primero por processing y después a succeeded o requires_payment_method; los IBAN con retraso tardan al menos tres minutos, así que tu código tiene que esperar al webhook.
¿Cómo se prueba Bizum en Stripe?
En Checkout, eligiendo Bizum y con números de teléfono de prueba, no con una tarjeta. Según la guía de Bizum de Stripe, el +34600000002 hace fallar el pago con el código payment_method_provider_decline y cualquier otro número lo completa, unos cinco segundos después de confirmar. Bizum no está en la tabla de esta página.
¿Cómo pruebo un pago con 3D Secure en Stripe?
Con la 4000 0000 0000 3220, que exige autenticación y la completa. El PaymentIntent vuelve en requires_action y tu front-end tiene que pasarle el control a Stripe.js para que el cliente supere el desafío. Solo las tarjetas del grupo 3D Secure prueban de verdad este flujo; otras pueden activarlo, pero Stripe devuelve attempt_acknowledged y se salta el paso.
Cuando termines con las tarjetas de prueba, cobra de verdad.
Un comando devuelve un enlace de Stripe Checkout real, sin cuenta de Stripe, sin claves y sin formulario de alta. Es dinero de verdad, así que fíjate bien en qué números tienes delante.
$ npm i -g @clize/clize && clize login $ clize pay link --amount 49 --for "factura 1042"[ Agent Storefront → ]