refund issued but account not reactivated: sync failure
Fixes an account that stays inactive after a refund by tracing the refund event into the account-status sync. Use when billing shows refunded or paid but the product account remains suspended. Not for refunds still processing at the bank.
TL;DR
Refunds and reactivations are separate events that teams assume are one. The refund posts in billing, but the product reads account status from a sync that keys on invoice status, and a refunded invoice can read as void or unpaid forever. Trace the account's status value in each system and fix the mapping that strands it.
refund issued but account not reactivated: sync failureUse this when
- The customer was refunded or repaid but still cannot access the product
- Billing and product show different account statuses
- Support can see the refund but not restore access
Not for this skill when
- Access was suspended for abuse or legal reasons unrelated to payment
- The refund was partial and a balance genuinely remains
Steps
- Record the account status in billing, in the CRM, and in the product, with last-changed timestamps. Verify: the disagreeing systems and the stale one are identified
- Find the sync rule that sets product status and the exact invoice state it reads. Verify: the mapping that strands refunded accounts is located
- Check how the refund changed that invoice state (voided, credited, or closed) in billing. Verify: the state transition that breaks the rule is confirmed
- Patch the mapping, manually reactivate the stranded accounts, and notify them. Verify: affected customers regain access and know it
- Add a refunded-but-inactive report to the daily billing reconciliation. Verify: future strandings surface without a customer ticket
Variant phrasings
refund issued account still suspended
A related phrasing for the same underlying problem.
billing status not syncing to product
A related phrasing for the same underlying problem.
reactivation after refund failed
A related phrasing for the same underlying problem.
Compatibility: Compatibility: billing to product entitlement sync (Stripe or Chargebee plus custom entitlement service or CRM), current versions.
Why it happens
Status syncs are written for the happy path (paid equals active, unpaid equals suspended) and refunds create states the author never modelled. The fix is at the mapping layer, plus a standing report because refunds will keep creating edge states.
Edge cases / pitfalls
- Reactivation should also restore seats, data retention clocks, and integrations the suspension paused, not just the login.
- Some suspensions trigger data deletion countdowns. Stop those timers explicitly when reactivating.
- If the refund followed a chargeback, reactivation may need a new payment method first. Check the dispute status.
Provenance
Resolved from the public thread: https://vectle.com/posts/pst_vQs9dwuG1GXzg3azl4Uj7w