stripe-refund-dispute-lifecycle
Installation
SKILL.md
Quick Reference
| Event | Action | Key rule |
|---|---|---|
charge.refunded |
Revoke credits proportional to refund delta | G2 — previous_attributes.amount_refunded |
charge.dispute.created |
Set user past_due + store checkpoint |
G1 + G9 |
charge.dispute.closed |
won / warning_closed / prevented -> restore; lost -> no-op (charge.refunded handles); else -> no-op |
G5 + G7 |
| Refund source priority | When to use |
|---|---|
event.data.previous_attributes.amount_refunded (G2) |
Primary — always prefer |
charge.refunds.data (sorted by created desc) |
Fallback when previous_attributes absent |
stripe.refunds.list({charge, limit:1}) |
Last resort when embedded missing |
charge.amount_refunded alone |
NEVER (cumulative, not per-event) |
When to Use This Skill
Use when implementing any handler that revokes credits or mutates a paid-status column in response to Stripe refund or dispute events.