The retry path charges the card a second time. The code is correct, but it conflicts with a standing decision.
Billing Team decision: no double-charge on retry.
cites · PlaybookWhy Kept the idempotency key on retry to honor the no-double-charge rule.