Skip to main content

Refunds & Notifications · Article 6.7

Actualizar estado — sincronización por sondeo cuando el webhook de Stripe no llegó

Los webhooks no son perfectos. Cuando una nota de crédito aparece bloqueada en `requested` a pesar de que Stripe ha procesado el reembolso, haga clic en `Actualizar estado` para obtener el estado actual de Stripe directamente. La misma lógica de transición que el webhook; sin riesgo de disparar efectos secundarios por duplicado.

Actualizar estado es el botón de «comprobar el estado». Cuando todo funciona, el webhook entrega el veredicto de Stripe en segundos y no necesita este botón. Cuando el webhook se retrasa o se pierde (problema de red en su endpoint, cola de webhooks de Stripe con retraso, su endpoint devolvió una respuesta 5xx que agotó la ventana de reintento de 3 días de Stripe), Actualizar le permite evitar el canal de push y obtener la respuesta directamente. El resultado es el mismo que si el webhook hubiera llegado correctamente.

Step by step

  1. Observe un estado requested bloqueado.

    El banner muestra «Reembolso en curso, esperado en 3–5 días hábiles» y permanece estático durante más de 24 horas.

  2. Haga clic en Actualizar estado.

    Desde el banner de Reembolso o la fila de la página de Notas de crédito.

  3. Espere ~2 segundos.

    El servidor llama a la API de Stripe en la cuenta conectada; resuelve el estado canónico.

  4. La interfaz se actualiza en su lugar.

    Si Stripe indica completado → el banner cambia a «Reembolso completado el [fecha]»; se envía el correo «reembolso completado»; la propuesta se cierra si corresponde. Si falló → el banner ofrece opciones de Reintentar / Marcar como reembolsado. Si sigue pendiente en Stripe → el texto del banner se actualiza para reflejar el estado reportado por Stripe.

  5. No se requiere ninguna acción adicional si el estado cambió.

    Todos los hooks posteriores se disparan automáticamente.

Banner de reembolso con el botón Actualizar estado. Después de hacer clic, un breve indicador de carga, luego ningún cambio (Stripe sigue pendiente) o actualización del banner al estado terminal.

Why this works this way

¿Por qué un botón manual en lugar de una sincronización cron diaria? Coste y latencia. Un trabajo cron que sondea Stripe diariamente por cada nota de crédito en requested añade carga estable de API a los límites de velocidad de Stripe Y genera hasta 24 h de latencia antes de una actualización de la interfaz. El botón manual coloca el coste donde realmente se necesita (el autónomo se pregunta por qué el banner está bloqueado) y proporciona resolución casi instantánea. Puede que añadamos una sincronización automatizada si los tickets de soporte muestran que sería valioso, pero el camino manual cubre ~95% de los casos.

Troubleshooting

Keep reading

Actualizar estado — sincronización por sondeo cuando el webhook de Stripe no llegó · Help · Clozo