Verificar un pago SPEI por API

Cuando un pago no se confirma en el momento, tu sistema necesita una forma de saber si ya se liquidó: preguntar tú, o que te avisen. Esta guía explica los dos caminos, qué hacer si el aviso no llega, y cómo no procesar el mismo pago dos veces.

Sondear o esperar un aviso

Confirmar un pago SPEI tiene dos caminos. El primero es sondear: tu sistema pregunta cada cierto tiempo si el pago ya se liquidó, con una llamada a la API de validación. El segundo es esperar un aviso: un webhook, una notificación que el servicio envía a tu propia URL en cuanto hay veredicto.

Sondear es más simple de programar, pero cuesta llamadas y tarda lo que tarde el intervalo que elijas. Un webhook llega en cuanto hay novedad, pero exige que tu servidor esté listo para recibirlo y responder.

Cuando el aviso no llega

Un webhook puede no llegar: tu servidor estuvo caído, la red falló, o tu firewall lo bloqueó sin que te dieras cuenta. El patrón estándar es que quien envía el aviso reintente varias veces, espaciando cada intento, y que quien lo recibe confirme con una respuesta HTTP exitosa en cuanto lo procesó.

Si tu servidor tarda en responder, el remitente puede interpretar eso como una falla y reintentar de más. Procesa rápido y confirma la recepción antes de hacer trabajo pesado con el evento.

ImportanteSi tu servidor no puede recibir avisos por ahora (está detrás de un firewall, o no tienes una URL pública todavía), sondear sigue siendo una opción válida: es más lento, pero no depende de que alguien más te encuentre.

En VerikoLos webhooks reintentan con intervalos crecientes cuando tu servidor no responde, y puedes enviarte un evento de prueba antes de ir a producción, sin esperar a un pago real.

No proceses el pago dos veces

Si sondeas y además recibes un webhook, o si un webhook se reintenta, tu sistema puede ver el mismo pago más de una vez. Sin una forma de reconocer «esto ya lo procesé», el riesgo es duplicar un cobro o una entrega.

El mecanismo estándar es una cabecera de idempotencia: un identificador único que tú generas por operación, y que el servicio usa para reconocer una solicitud repetida y devolver el mismo resultado sin repetir el efecto.

NotaEl identificador de idempotencia lo generas tú, no el servicio: usa uno por operación de negocio (un pedido, un cobro), no uno por cada intento de red.

Cómo lo hace Veriko

Veriko ofrece los dos caminos: puedes consultar una validación por su identificador cuando quieras, o suscribir un webhook que avisa en cuanto Banxico responde. Los dos entregan el mismo veredicto.

Los webhooks van firmados, para que puedas confirmar que el aviso es nuestro y no de alguien más; si tu servidor no responde, reintentan solos; y cada solicitud acepta una cabecera de idempotencia, así que reenviar la misma operación por error no la procesa dos veces.

Qué necesitasA mano, sin estos patronesCon Veriko
DatosSondeo manual, escrito y mantenido por tiConsulta por API o webhook, a elegir
HorarioDepende de cuándo corra tu sondeoA cualquier hora, con reintentos automáticos
VolumenUn pago a la vez, si lo escribes túCientos de pagos por webhook o por lote
ResultadoEl código que tú definas para leer la respuestaVeredicto estructurado, firmado, con reintentos e idempotencia
RegistroEl que tú construyasHistorial de entregas de cada webhook, exportable

Si integras estos patrones tú mismo, hay un plan gratis que no caduca para probarlos antes de decidir. La página de precios compara los planes.

Captura del comprobante bancario de la demo, con datos personales enmascarados
Figura La captura de la demo Lo que recibe Veriko: monto, cuenta de destino, fecha y clave de rastreo. El mismo veredicto que ves aquí es el que trae la respuesta de la API. Ver la validación en la demo

Preguntas frecuentes

¿Qué es un webhook, en una frase?

Una notificación que un servicio envía a tu servidor cuando algo cambia, en vez de que tú preguntes tú mismo.

¿Es mejor sondear o usar un webhook?

Depende de tu volumen. Con pocos pagos, sondear es más simple de programar; con muchos, un webhook ahorra llamadas y tiempo.

¿Qué pasa si mi servidor no responde a un webhook?

El remitente lo interpreta como una falla y reintenta más tarde. Si tu servidor tarda mucho en levantarse, puedes perder avisos entre reintento y reintento.

¿Cuántas veces reintenta un webhook antes de rendirse?

Depende de cada servicio; el patrón común es varios intentos con espacios cada vez más largos, y luego dejarlo. Revisa el historial de entregas para saber si un aviso se perdió.

¿Qué es la idempotencia y por qué importa en pagos?

Es la garantía de que repetir la misma operación no repite su efecto. En pagos importa porque un reintento de red no debe convertirse en un cobro duplicado.

¿Cómo sé que un webhook es auténtico?

Un webhook serio va firmado: el remitente incluye una firma calculada con una clave secreta que sólo tú y él conocen, y tu servidor la verifica antes de confiar en el contenido.

¿Puedo usar sólo sondeo, sin webhooks?

Sí. Sondear siempre funciona y no exige tener un servidor con URL pública; sólo cuesta más llamadas y responde con el retraso de tu propio intervalo.

Empieza a validar tus pagos

Crea una cuenta gratis y confirmamos tu primer pago en Banxico.

Empezar gratis