An Idempotency Key That Only Checks Prior Receipt Protects Nothing
A client retries a timed-out payment request. Both copies arrive close together, both pass the check for whether the key exists, because neither has finished processing yet, and both charge the card.