Antylogic
Probar demoAcceso app

399 guías operativas

Secciones de Docs
DocsTPV y cobro
Dispositivo

Cómo reembolsar un pago

Marca como reembolsado un pago ya registrado para que el ticket deje de contar ese importe como cobrado. La acción recalcula el ticket, pero no ejecuta una devolución real en banco, terminal ni pasarela.

En este artículo

El reembolso de pago sirve para corregir el estado interno de cobro de un ticket cuando un pago registrado deja de ser válido. Antylogic no crea un pago negativo ni borra las asignaciones: actualiza el pago existente y vuelve a calcular el estado del ticket.

Este flujo está pensado para operadores de TPV y responsables de sala que necesitan dejar trazable la corrección sin separar el ticket, sus líneas, sus pagos y su estado de cobro.

Antes de empezar

  • Tener contexto activo de organización y ubicación; en el runtime de España, Grupo Marea Demo y Marea Gran Via.
  • Tener permiso `tpv:use` para abrir el cobro del ticket.
  • Tener permiso `tpv:refund` o `tickets:manage` para confirmar el reembolso.
  • Abrir un ticket accesible con al menos un pago no reembolsado, como el caso de documentación `TPV_PAID_TICKET_ID` cuando esté preparado.
  • El ticket no debe tener factura visible en el detalle para que la pantalla habilite Reembolsar.
  • El pago concreto no debe estar vinculado a una factura para que el backend acepte la acción.

Instrucciones

  1. 1.

    Abre el cobro del ticket

    Desde el TPV operativo, entra en el pago avanzado del ticket que ya tiene un cobro registrado. La pantalla carga el ticket, los métodos de pago y las operaciones de cobro cuando el usuario tiene acceso al TPV.

  2. 2.

    Localiza el pago registrado

    En la sección Pagos, revisa la fila del cobro: método, estado, importe y asignaciones al ticket. Un pago que todavía cuenta como cobrado puede mostrar la acción Reembolsar.

  3. 3.

    Comprueba que se puede reembolsar

    Antes de tocar la acción, confirma que Reembolsar está disponible. Si no aparece o queda bloqueado, el pago puede estar ya reembolsado, puede faltar permiso o el ticket puede tener una factura asociada.

  4. 4.

    Confirma el reembolso

    Pulsa Reembolsar y lee el modal Reembolsar pago. Cancelar cierra el modal sin cambiar datos; confirmar marca ese pago local como reembolsado.

  5. 5.

    Verifica el resultado

    Después de confirmar, comprueba el mensaje de éxito, el estado Reembolsado en la fila del pago y la ausencia del botón de reembolso en esa misma fila. El importe pendiente y el estado de cobro del ticket deben quedar recalculados.

Validaciones y límites

  • La pantalla solo carga datos de cobro si existen organización, ubicación y permiso `tpv:use`.
  • La UI habilita Reembolsar solo si el pago no está `refunded`, el detalle del ticket no incluye `invoice` y el usuario puede reembolsar.
  • El backend exige acceso al ticket y permiso `tpv:refund` o `tickets:manage`.
  • La ruta de API acepta solo `POST` y admite body vacío o `{}`; JSON mal formado se rechaza como payload inválido.
  • El backend rechaza tickets anulados, pagos que no pertenecen al ticket, pagos ya reembolsados y pagos vinculados a factura.
  • El reembolso no devuelve dinero en terminal, banco, bridge ni pasarela; solo marca el pago local como `refunded`.
  • La UI actual no envía `refunded_by_staff_id`, aunque el endpoint lo admite como campo opcional.
  • Los pagos reembolsados dejan de sumar en los saldos del ticket y de sus líneas, pero las asignaciones del pago no se eliminan.
  • Si la petición falla, el modal no se cierra por éxito y se muestra el error de reembolso resuelto por la API.

Resultado esperado

El pago existente queda en estado `refunded`, el ticket recalcula su estado de cobro como `pending`, `partially_paid` o `paid` según los otros pagos efectivos, y la pantalla refresca el detalle y la lista de tickets.

Artículos relacionados