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.
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ódigo | Significado oficial | Responsable probable | Qué hacer |
|---|---|---|---|
| -1 | Rechazo · posible error en el ingreso de datos de la transacción | Datos del cliente | Pedir al cliente que revise número, fecha y código de su tarjeta y reintente |
| -2 | Fallo al procesar (parámetros de tarjeta o cuenta) | Datos del cliente o su banco | Reintentar; si persiste, el cliente debe consultar a su banco |
| -3 | Error en transacción | Proceso de la transacción | Reintentar la compra desde cero |
| -4 | Rechazada por parte del emisor | Banco emisor del cliente | El cliente debe contactar a su banco; tu comercio no puede destrabarlo |
| -5 | Transacción con riesgo de posible fraude | Motor de riesgo | El cliente debe validar con su banco; evita los reintentos automáticos |
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ódigo | Significado | Responsable probable | Qué hacer |
|---|---|---|---|
| -1 | Tarjeta inválida | Datos del cliente | Revisar los datos e intentar con otra tarjeta |
| -2 | Error de conexión | Infraestructura | Reintentar en unos minutos |
| -3 | Excede monto máximo | Límites de la tarjeta | El cliente consulta límites con su banco o paga con otra tarjeta |
| -4 | Fecha de expiración inválida | Datos del cliente | Corregir la fecha o usar una tarjeta vigente |
| -5 | Problema de autenticación | Cliente y su banco | Completar la autenticación del banco (claves, app) y reintentar |
| -6 | Rechazo general | Banco emisor | El cliente consulta a su banco |
| -7 | Tarjeta bloqueada | Banco emisor | El cliente desbloquea con su banco |
| -8 | Tarjeta vencida | Datos del cliente | Pagar con una tarjeta vigente |
| -9 | Transacción no soportada | Configuración o producto | Verificar con Transbank qué operaciones tiene habilitadas tu comercio |
| -10 | Problema en la transacción | Proceso de la transacción | Reintentar la compra desde cero |
| -11 | Excede límite de reintentos de rechazo | Reintentos acumulados | Esperar 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.
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ódigo | Límite excedido |
|---|---|
| -97 (CONSTRAINT_VIOLATED) | Monto máximo acumulado diario |
| -98 | Monto máximo por transacción |
| -99 | Cantidad 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.
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.
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.
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.
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.
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.
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 HTTP | Significado | Qué revisar en tu integración |
|---|---|---|
| 400 | JSON inválido | El cuerpo de la petición que envía tu sitio |
| 401 | API Key o Secret incorrectos | Tus credenciales y el ambiente (integración vs producción) |
| 404 | Transacción no encontrada | El token o identificador que estás consultando |
| 405 | Método no permitido | El verbo HTTP de la petición |
| 406 | Formato de respuesta | Las cabeceras de aceptación de tu petición |
| 415 | Content-type | La cabecera de tipo de contenido |
| 422 | Validación de datos o lógica de negocio | Los datos enviados y el estado de la transacción |
| 500 | Error inesperado | Reintentar 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.
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.
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.
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.
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.
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.
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