order.refunded
EVENTOrders
Fires when a refund is recorded with POST /v1/orders/{id}/refunds, partial or full. Each refund fires its own event. Points it takes back also fire points.changed with type reverse.
data.object is the refund. points_reversed is round down(points earned × refunded amount / order subtotal after discounts). points_shortfall is the part that couldn't be taken back because the member had already spent it; the balance never goes below zero. order_status is the order's status after this refund, and member_id names the member (null for a guest order).
In this example the next day Maya spends her 510 Beans on Free drip coffee, leaving 10. Then order app-30417 is refunded in full: only 10 of the 90 Beans can be taken back, 80 are the shortfall, and the pastry goes back to her wallet because it hasn't expired.