In both cases the refund has
reason: USER_CANCELLATION, and the transaction
status stays COMPLETED. Check the transaction’s refund object to see that
the sender got the money back.
Webhook order
006 — cancelled after completion:OUTGOING_PAYMENT.PENDINGOUTGOING_PAYMENT.PROCESSINGOUTGOING_PAYMENT.COMPLETEDOUTGOING_PAYMENT.REFUND_PENDINGOUTGOING_PAYMENT.REFUND_COMPLETED
OUTGOING_PAYMENT.PENDINGOUTGOING_PAYMENT.PROCESSINGOUTGOING_PAYMENT.REFUND_PENDINGOUTGOING_PAYMENT.REFUND_COMPLETEDOUTGOING_PAYMENT.COMPLETED
With 008,
OUTGOING_PAYMENT.COMPLETED arrives after the refund settles.
This means the payout was delivered even though the sender was refunded. See
the Manual Cancellation flow in
Transaction Lifecycle.