El importe de una página de pago o wallet debe coincidir con el total final del pedido. Una diferencia puede aparecer si el checkout cambia después de crear el objeto de pago, por conversión, impuestos, tasas, sesiones antiguas o unidades menores incorrectas.
No completes un pago discrepante durante el diagnóstico. Si ya se cobró, concilia proveedor y pedido antes de modificar cualquier registro.
Conserva ambos importes
Registra ID o draft, importe de checkout, importe del proveedor, moneda y horas. Captura líneas, envío, impuesto, descuento y tasas con datos controlados.
- total del carrito antes del redirect
- total guardado del pedido
- importe/moneda del proveedor
- importe capturado o reembolsado
- referencia de la petición
No captures tarjeta, tokens ni payloads completos.
Identifica cuándo nace el pago
Algunas pasarelas crean el intent al cargar checkout; otras al pulsar Realizar pedido. Si el carrito cambia, el objeto debe actualizarse o sustituirse de forma segura.
Revisa logs de creación y actualización. Un script retrasado puede reutilizar un intent anterior tras cupón, envío o dirección. Una referencia estable debe vincular un intento lógico con un único objeto.
Observa el orden exacto en Network: respuesta de update_order_review, actualización del intent y apertura del widget. El botón de pago debe quedar bloqueado mientras el servidor recalcula. Si dos peticiones terminan fuera de orden, la más antigua no puede sobrescribir el importe nuevo; cancélala o valida una versión incremental del carrito.
Compara pedido y carrito
Si existe un pedido, su total es más durable que el número del navegador. Lee líneas, tasas, envío, impuestos y descuentos.
No edites el total para igualarlo a un importe externo sin explicación. Determina qué cálculo vio y aceptó el cliente y si hubo pago. Los checkout drafts pueden sustituirse; correlaciona por clave y referencia, no solo por hora.
Revisa moneda y unidades menores
Los proveedores suelen exigir la unidad mínima. Muchas monedas tienen dos decimales, pero no todas. Multiplicar siempre por 100 puede ser grave.
Usa soporte oficial de moneda y documentación del proveedor. Multimoneda debe enviar moneda activa y conversión final. Evita floats en código de pago; utiliza formatos WooCommerce y enteros cuando corresponda.
Rastrea impuestos, envío y tasas
Cambiar dirección puede modificar impuestos y envío justo antes de confirmar. Botones dinámicos pueden mostrar un total antiguo si no escuchan las actualizaciones.
Las tasas propias deben ser deterministas y no depender solo del navegador. Busca hooks y confirma que no se ejecutan dos veces. Prueba cupón, envío e impuesto por separado para encontrar el primer componente divergente.
Descarta caché y cruce de sesiones
Checkout y configuración de pago no deben compartir caché. Revisa cabeceras de Cloudflare, hosting y WordPress.
Usa dos sesiones aisladas con carritos diferentes: cada ventana debe mostrar su importe. Si el proveedor responde bien pero el widget está obsoleto, revisa estado JavaScript y assets. Conserva referencias antes de purgar.
Comprueba además que la clave de caché incluya sesión, moneda y configuración relevante, sin incluir datos personales en una caché compartida. Un importe cruzado entre compradores es también un incidente de privacidad y debe activar revisión de logs y alcance.
Repara y concilia
Corrige ciclo del intent, conversión, redondeo, tasa, impuesto o límite de caché. Si se movió dinero, reembolsa o ajusta mediante el proceso soportado y documenta el pedido.
No crees otro cargo para compensar el primero sin autorización expresa del cliente y reembolso conciliado.
Si el proveedor autorizó pero aún no capturó, decide con operaciones si cancelar o capturar el importe correcto mediante el flujo soportado. No modifiques manualmente la cantidad de una autorización existente salvo que la API y el contrato de la pasarela lo permitan.
Verifica totales cambiantes
Prueba carrito inicial, cupón, cambio de dirección/envío, cantidad y método de pago. El proveedor debe actualizarse al total guardado cada vez.
Confirma una orden, una captura, moneda, stock y email correctos. El mantenimiento recurrente debe comparar cobros con pedidos y alertar ante cualquier diferencia distinta de cero.