Idempotencia de webhooks: evitar efectos de pago duplicados

·4 min de lectura

La idempotencia hace que una operación lógica produzca su efecto previsto aunque se repita la entrega o ejecución.

Registros oscuros unidos por rutas de transacción índigo y un marcador de conciliación.

La idempotencia hace que una operación lógica produzca su efecto previsto aunque se repita la entrega o ejecución. No promete recibir un mensaje una sola vez. Trate recepción, almacenamiento duradero, cambio de estado y tareas posteriores como límites de fallo independientes.

Elegir la identidad adecuada

El identificador del evento reconoce entregas repetidas de ese evento. El del pago conecta eventos distintos con un objeto comercial. La clave de idempotencia de una solicitud saliente protege otra frontera según las reglas del proveedor. Cliente e importe no sustituyen estas identidades: dos compras legítimas pueden coincidir. Defina además qué transiciones de estado son válidas.

Guardar antes de confirmar

Verifique la firma según la documentación del proveedor y conserve el evento o incorpórelo a una cola duradera antes de confirmar su recepción. Vincule el cambio comercial y la prueba de procesamiento de forma atómica o equivalente. Un buzón de salida transaccional puede recuperar tareas externas tras una interrupción. Limite acceso y conservación de los datos personales presentes en los mensajes.

Comprobar recuperación y repetición

Entregue el mismo evento de forma secuencial y concurrente y detenga el worker en cada frontera duradera. Compruebe asientos, accesos y llamadas externas, además de respuestas HTTP. Un evento tardío no debe imponer un estado antiguo por llegar al final. Vigile antigüedad y estado de tareas incompletas. El reprocesamiento controlado debe usar las mismas protecciones que la vía normal y dejar un registro operativo.

Un ejemplo y su aceptación

Un worker puede guardar el pedido y detenerse antes de marcar el evento terminado. Cuando vuelve, recibe la misma tarea. Compruebe primero la protección duradera del pedido y después la entrega. Otra ejecución no debe conceder un segundo acceso. Si falta entregar, debe seguir existiendo una tarea reanudable. Registre ambos resultados por separado con sus referencias. El escenario diferencia duplicar un efecto de perder trabajo posterior y permite verificar que una reparación no arregla uno a costa del otro.

Preguntas frecuentes

¿Basta una lista en memoria?

No. Reinicios y varios workers requieren pruebas persistentes compartidas.

¿La idempotencia del proveedor protege el webhook?

Protege su solicitud; los efectos internos necesitan controles propios.

¿Hay que guardar todos los eventos para siempre?

No. Defina relevancia, investigación y plazo de conservación.

¿Un reprocesamiento puede duplicar un reembolso?

Sí si falta protección de la operación comercial; pruébelo con datos sintéticos.

¿Cómo detectar trabajo atascado?

Mediante estado duradero, antigüedad, intentos y conciliación independiente.

Convirtamos la idea en un alcance realizable

Comparta el recorrido del usuario, las integraciones y las condiciones del lanzamiento. Podemos preparar una estimación con supuestos y exclusiones.

Ver el alcance del servicio →

Para seguir leyendo

Conciliación de pagos: explicar cada discrepancia

La conciliación compara registros de la misma actividad económica y explica sus diferencias.

Diseño de ledger fintech: saldos, ajustes y trazabilidad

Un ledger registra movimientos financieros mediante reglas comprobables.

Auditoría de pagos: detectar cobros duplicados y pagos ausentes

Una página de confirmación no demuestra que todo el pago se haya procesado correctamente.