This article covers
How my customer used the one-time coupon twice on the same subscription. How to prevent this from happening?
Solution
When a "One-time coupon" is added and used in a subscription, it will be attached to the subscription as "Exhausted". When the renewal occurs the coupon will not be reapplied. As shown below:
Now if we try to apply the coupon from the UI again, we will not get the option to add it, it won't show the already applied coupon. However, this isn't applicable for the portal when you allow the customer to "Add/Remove coupon". Once the coupon is removed, it can be re-applied per the current workflow. So here the user can remove the coupon from the portal and add it again to the subscription.
To prevent this from happening you revoke the access for your customers to add/remove coupons. If not, instead of distributing the coupons to your customers you can create coupon sets and provide the unique code to them so they will not be able to reuse it.
Related Articles and Documentation
How to apply a coupon while reactivating a cancelled subscription?