# Coupons Use coupons to reward customers, generate sales, or to test new pricing strategies. Coupons enable you to apply different types of discounts to invoices, subscriptions, and pricing plans. Redeemed coupons are attached to a customer's account. Depending on the coupon restrictions, the redeemed coupons are then applied from the customer's account to subsequent invoices or subscriptions. Redeemed coupons can only be applied to invoices of the same currency. Once a coupon is redeemed it cannot be modified. You may deactivate a coupon or create a new coupon, but you cannot reuse the same coupon code. If you have a use case where you must reuse the same code, [contact Rebilly](https://www.rebilly.com/contact/). ## Retrieve coupon redemptions - [GET /coupons-redemptions](https://www.rebilly.com/docs/dev-docs/api/coupons/getcouponredemptioncollection.md): Retrieves a list of coupon redemptions. ## Redeem a coupon - [POST /coupons-redemptions](https://www.rebilly.com/docs/dev-docs/api/coupons/postcouponredemption.md): Redeems a coupon. ## Retrieve a coupon redemption - [GET /coupons-redemptions/{id}](https://www.rebilly.com/docs/dev-docs/api/coupons/getcouponredemption.md): Retrieves a coupon redemption with a specified ID. ## Cancel a coupon redemption - [POST /coupons-redemptions/{id}/cancel](https://www.rebilly.com/docs/dev-docs/api/coupons/postcouponredemptioncancellation.md): Cancels a coupon redemption with a specified ID. ## Retrieve coupons - [GET /coupons](https://www.rebilly.com/docs/dev-docs/api/coupons/getcouponcollection.md): Retrieves a list of coupons. ## Create a coupon - [POST /coupons](https://www.rebilly.com/docs/dev-docs/api/coupons/postcoupon.md): Creates a coupon. ## Retrieve a coupon - [GET /coupons/{id}](https://www.rebilly.com/docs/dev-docs/api/coupons/getcoupon.md): Retrieves a coupon with a specified ID. ## Upsert a coupon - [PUT /coupons/{id}](https://www.rebilly.com/docs/dev-docs/api/coupons/putcoupon.md): Creates or updates (upserts) a coupon with a specified coupon ID. ## Specify a coupon expiration time - [POST /coupons/{id}/expiration](https://www.rebilly.com/docs/dev-docs/api/coupons/postcouponexpiration.md): Specifies the expiration time of a coupon with a specified ID. The of a coupon must be greater than its . > This operation cannot be performed on expired coupons. ## Coupon application removed - [POST coupon-application-removed](https://www.rebilly.com/docs/dev-docs/api/coupons/coupon-application-removed.md) ## Coupon applied - [POST coupon-applied](https://www.rebilly.com/docs/dev-docs/api/coupons/coupon-applied.md) ## Coupon expiration modified - [POST coupon-expiration-modified](https://www.rebilly.com/docs/dev-docs/api/coupons/coupon-expiration-modified.md) ## Coupon expired - [POST coupon-expired](https://www.rebilly.com/docs/dev-docs/api/coupons/coupon-expired.md) ## Coupon issued - [POST coupon-issued](https://www.rebilly.com/docs/dev-docs/api/coupons/coupon-issued.md) ## Coupon modified - [POST coupon-modified](https://www.rebilly.com/docs/dev-docs/api/coupons/coupon-modified.md) ## Coupon redeemed - [POST coupon-redeemed](https://www.rebilly.com/docs/dev-docs/api/coupons/coupon-redeemed.md) ## Coupon redemption canceled - [POST coupon-redemption-canceled](https://www.rebilly.com/docs/dev-docs/api/coupons/coupon-redemption-canceled.md)