Errores de Webpay: qué significa cada código y qué hacer para recuperar la venta

Un error de Webpay en tu checkout es una venta detenida en la puerta. Esta guía lista todos los códigos oficiales publicados por Transbank, con lo que necesitas para actuar: qué significa cada uno, de quién es la responsabilidad y qué hacer a continuación. Todo sale de las fuentes oficiales de Transbank Developers y el Centro de Ayuda de Transbank.

Antes de leer cualquier código, la regla de oro: una transacción solo está aprobada cuando response_code es 0 y status es AUTHORIZED. Todo código distinto de 0 es un rechazo o un fallo, y tu sistema debe tratarlo como venta no realizada. Si recién estás integrando, parte por la guía para integrar Webpay en tu sitio.

Mapa para saber de quién es un error de Webpay según la forma del código: un código negativo lo responde el cliente o su banco, un HTTP 400 a 500 tu integración, los códigos -97 a -99 los límites de tu comercio, y un código de 3 cifras como 21, 353 o 350 el banco del comprador

Códigos de rechazo de nivel 1: los cinco básicos

Los códigos de nivel 1 son los que toda integración de Webpay recibe por defecto. Son cinco, todos negativos, y dan un diagnóstico grueso: error de datos, fallo de procesamiento, error de transacción, rechazo del emisor o riesgo de fraude. Sirven para saber si el problema es del cliente, del banco o tuyo.

CódigoSignificado oficialResponsable probableQué hacer
-1Rechazo · posible error en el ingreso de datos de la transacciónDatos del clientePedir al cliente que revise número, fecha y código de su tarjeta y reintente
-2Fallo al procesar (parámetros de tarjeta o cuenta)Datos del cliente o su bancoReintentar; si persiste, el cliente debe consultar a su banco
-3Error en transacciónProceso de la transacciónReintentar la compra desde cero
-4Rechazada por parte del emisorBanco emisor del clienteEl cliente debe contactar a su banco; tu comercio no puede destrabarlo
-5Transacción con riesgo de posible fraudeMotor de riesgoEl cliente debe validar con su banco; evita los reintentos automáticos

Fuente: Transbank Developers, referencia de Webpay.

Códigos de rechazo de nivel 2: el detalle fino

Los códigos de nivel 2 existen desde el 1 de marzo de 2021 y entregan el motivo específico del rechazo: tarjeta inválida, vencida o bloqueada, monto excedido, fallo de autenticación y más. Llegan solo si los pides: requieren activación a través del soporte de Transbank. Si tu comercio vive de diagnosticar rechazos, actívalos.

CódigoSignificadoResponsable probableQué hacer
-1Tarjeta inválidaDatos del clienteRevisar los datos e intentar con otra tarjeta
-2Error de conexiónInfraestructuraReintentar en unos minutos
-3Excede monto máximoLímites de la tarjetaEl cliente consulta límites con su banco o paga con otra tarjeta
-4Fecha de expiración inválidaDatos del clienteCorregir la fecha o usar una tarjeta vigente
-5Problema de autenticaciónCliente y su bancoCompletar la autenticación del banco (claves, app) y reintentar
-6Rechazo generalBanco emisorEl cliente consulta a su banco
-7Tarjeta bloqueadaBanco emisorEl cliente desbloquea con su banco
-8Tarjeta vencidaDatos del clientePagar con una tarjeta vigente
-9Transacción no soportadaConfiguración o productoVerificar con Transbank qué operaciones tiene habilitadas tu comercio
-10Problema en la transacciónProceso de la transacciónReintentar la compra desde cero
-11Excede límite de reintentos de rechazoReintentos acumuladosEsperar antes de reintentar; evita automatizar reintentos en bucle

Fuente: Transbank Developers. Vigentes desde el 01-03-2021, con activación vía soporte de Transbank.

Errores de Oneclick: -97, -98 y -99

Los códigos -97, -98 y -99 son exclusivos de Oneclick y significan lo mismo en tres variantes: la operación superó un límite configurado para tu comercio. El -97 es el monto máximo acumulado diario, el -98 el monto máximo por transacción y el -99 la cantidad de transacciones diarias. La solución oficial es revisar esos límites con el área comercial de Transbank.

CódigoLímite excedido
-97 (CONSTRAINT_VIOLATED)Monto máximo acumulado diario
-98Monto máximo por transacción
-99Cantidad de transacciones diarias

Fuente: Centro de Ayuda de Transbank. Aquí la culpa no es del cliente ni de su banco: es configuración de tu comercio. Si estos códigos te aparecen seguido, tu negocio creció más que sus límites; el trámite es comercial, no técnico.

Errores 21, 353 y 350: los códigos que ve el comprador

Los códigos 21, 353, 350, 329, 293, 288 y 286 no aparecen en la documentación pública de Transbank para comercios: lo verificamos el 24-08-2026 contra las dos páginas oficiales (Transbank Developers y el Centro de Ayuda). Son los códigos que el comprador ve en la pantalla de pago o en la app de su banco, y por eso la solución vive en el banco emisor, no en tu integración.

Webpay error 21

Transbank no publica el significado del código 21 para comercios. Si te apareció comprando, la ruta corta: confirma con tu banco que la tarjeta está habilitada para compras en línea y tiene saldo o cupo, y reintenta. Si persiste, paga con otra tarjeta. Si eres comercio y se repite, tu diagnóstico real es el response_code de esta guía y los códigos de nivel 2.

Webpay error 353

Mismo caso que el 21: sin definición pública de Transbank para comercios. Los reportes vienen del lado del comprador, casi siempre por autenticación bancaria que no se completó. Como comprador, completa la verificación de tu banco (clave, app) y reintenta. Como comercio, pide activar los códigos de nivel 2 con el soporte de Transbank para ver el motivo específico.

Webpay error 350

Sin definición pública de Transbank para comercios. La respuesta la tiene el banco emisor del comprador: rechazos de este grupo se resuelven revisando saldo, bloqueos y habilitación de la tarjeta con el propio banco. El resto de los códigos de esta familia (286, 288, 293, 329) sigue la misma regla. La excepción documentada es el 292: en una devolución, la referencia oficial de la API lo lista como transacción no autorizada.

Error de Webpay pagando con CuentaRUT de BancoEstado

La búsqueda «error webpay bancoestado» es de las más frecuentes, y el patrón es este: la CuentaRUT es una cuenta de débito con límites diarios de compra, y el rechazo lo decide BancoEstado, no el comercio. Revisa en la app de BancoEstado el saldo, los límites diarios de tu tarjeta y que las compras por internet estén habilitadas. Si el rechazo persiste con saldo suficiente, el canal es BancoEstado.

Errores HTTP de la API REST: 400, 401, 404, 422 y más

Si tu integración recibe errores HTTP (400, 401, 404, 405, 406, 415, 422, 500), el problema no es la tarjeta del cliente: es tu integración hablando mal con la API de Transbank. Son errores de desarrollador y se corrigen en tu código o tu configuración, no pidiéndole al cliente que reintente.

Código HTTPSignificadoQué revisar en tu integración
400JSON inválidoEl cuerpo de la petición que envía tu sitio
401API Key o Secret incorrectosTus credenciales y el ambiente (integración vs producción)
404Transacción no encontradaEl token o identificador que estás consultando
405Método no permitidoEl verbo HTTP de la petición
406Formato de respuestaLas cabeceras de aceptación de tu petición
415Content-typeLa cabecera de tipo de contenido
422Validación de datos o lógica de negocioLos datos enviados y el estado de la transacción
500Error inesperadoReintentar y registrar; si persiste, contactar a Transbank

Fuente: Centro de Ayuda de Transbank. ¿Un 403? La tabla oficial de la API no lo lista: es el código HTTP estándar de acceso denegado. Revisa tus credenciales (Tbk-Api-Key-Id y Tbk-Api-Key-Secret), el ambiente al que apuntas y que ningún firewall o proxy intermedio esté bloqueando la petición. Un caso frecuente en WooCommerce: errores 401 tras migrar de plugin o de ambiente. Si usas el plugin antiguo, revisa qué hacer con el plugin obsoleto de Webpay en WooCommerce.

¿Por qué importa resolver esto hoy?

Porque el rechazo no espera. Según el Baymard Institute (2025, promedio sobre 50 estudios), entre quienes abandonan el checkout, el 17 % lo hace porque el sitio tuvo errores o se cayó y el 10 % porque su tarjeta fue rechazada. Cada código de esta página es un cliente decidido a pagar que no pudo.

Nuestra postura honesta: buena parte de estos códigos requiere cero contratación. Si el código es -4 o -7, el problema vive en el banco del cliente y ningún proveedor te lo arregla. Contrata ingeniería cuando el patrón se repite sin explicación, cuando recibes errores HTTP de integración o cuando tus pedidos y tus abonos no calzan. Ese diagnóstico es parte de lo que hacemos en pagos en línea.

Preguntas frecuentes sobre errores de Webpay

“¿Qué significa el error 21, 353 o 350 de Webpay?”

Esos códigos no aparecen en la documentación pública de Transbank para comercios: lo verificamos el 24-08-2026 contra las dos páginas oficiales (Transbank Developers y el Centro de Ayuda). Los ve el comprador en la pantalla de pago o en la app de su banco, y la respuesta la tiene el banco emisor. Lo mismo vale para el 286, el 288, el 293 y el 329. Si eres comercio, tu código es el response_code de esta guía.

“¿Cómo sé si una transacción quedó aprobada de verdad?”

Solo cuando response_code es 0 y status es AUTHORIZED, según Transbank Developers. Un pedido marcado como pagado sin verificar ambos campos puede ser un despacho sin cobro.

“¿El error es mío o del banco de mi cliente?”

Regla rápida: los códigos negativos de rechazo apuntan al cliente o a su banco en la mayoría de los casos (-1, -4, -5, -7, -8); los errores HTTP (400 a 500) apuntan a tu integración; y -97, -98, -99 apuntan a los límites configurados de tu comercio con Transbank.

“¿Por qué no veo los códigos de nivel 2?”

Porque requieren activación a través del soporte de Transbank; están vigentes desde el 1 de marzo de 2021 pero llegan solo si los pides. Sin ellos recibes únicamente el diagnóstico grueso del nivel 1.

Escríbenos con el código que estás viendo

Si un código de esta lista se repite en tu checkout y no sabes por qué, cada día de espera son ventas que no entran. Escríbenos con el código que estás viendo y en 30 minutos te decimos si el arreglo es tuyo, del banco o de la integración, y si de verdad necesitas contratar a alguien.

Agendar 30 minutos