Cancelar transacción (antes del pago)

Cancela una transacción que aún no ha sido pagada por el cliente. Útil cuando el cajero se equivocó en el monto y necesita regenerar el QR, o cuando el cliente desiste.

Flujo de cancelación de transacción pendiente
sequenceDiagram
  participant C as Caja
  participant B as Backend del comercio
  participant Y as Yappy API

  C->>B: Iniciar cobro por $100
  B->>Y: POST /qr/generate/DYN
  Y-->>B: transactionId + hash
  B-->>C: Renderiza QR en pantalla

  loop Polling cada 2-5 seg
      B->>Y: GET /transaction/{id}
      Y-->>B: status=PENDING
  end

  Note over C: Cajero detecta error<br/>(monto incorrecto)

  C->>B: Cancelar transacción
  B->>Y: PUT /transaction/{id}
  Y-->>B: Transacción cancelada
  Note over C: La caja puede generar<br/>una nueva transacción

Cuándo usar esta cancelación

  • El cajero ingresó el monto incorrecto.
  • El cliente cambió de opinión antes de pagar.
  • El polling llegó a 5 minutos sin que el cliente pagara (timeout automático).

Llamada

curl -X PUT "{{BASE_URL}}/transaction/{transactionId}" \
  -H "api-key: $YAPPY_API_KEY" \
  -H "secret-key: $YAPPY_SECRET_KEY" \
  -H "authorization: $SESSION_TOKEN"

Tras la cancelación, la transacción pasa a estado CANCELLED y la caja queda libre para generar un nuevo QR.

¿Te fue útil esta página?