Class: Stripe::CouponService

Inherits:
StripeService show all
Defined in:
lib/stripe/services/coupon_service.rb

Defined Under Namespace

Classes: CreateParams, DeleteParams, ListParams, RetrieveParams, UpdateParams

Instance Method Summary collapse

Methods inherited from StripeService

#initialize, #request, #request_stream

Constructor Details

This class inherits a constructor from Stripe::StripeService

Instance Method Details

#create(params = {}, opts = {}) ⇒ Object

You can create coupons easily via the [coupon management](dashboard.stripe.com/coupons) page of the Stripe dashboard. Coupon creation is also accessible via the API if you need to create coupons on the fly.

A coupon has either a percent_off or an amount_off and currency. If you set an amount_off, that amount will be subtracted from any invoice’s subtotal. For example, an invoice with a subtotal of 100 will have a final total of 0 if a coupon with an amount_off of 200 is applied to it and an invoice with a subtotal of 300 will have a final total of 100 if a coupon with an amount_off of 200 is applied to it.



161
162
163
# File 'lib/stripe/services/coupon_service.rb', line 161

def create(params = {}, opts = {})
  request(method: :post, path: "/v1/coupons", params: params, opts: opts, base_address: :api)
end

#delete(coupon, params = {}, opts = {}) ⇒ Object

You can delete coupons via the [coupon management](dashboard.stripe.com/coupons) page of the Stripe dashboard. However, deleting a coupon does not affect any customers who have already applied the coupon; it means that new customers can’t redeem the coupon. You can also delete coupons via the API.



166
167
168
169
170
171
172
173
174
# File 'lib/stripe/services/coupon_service.rb', line 166

def delete(coupon, params = {}, opts = {})
  request(
    method: :delete,
    path: format("/v1/coupons/%<coupon>s", { coupon: CGI.escape(coupon) }),
    params: params,
    opts: opts,
    base_address: :api
  )
end

#list(params = {}, opts = {}) ⇒ Object

Returns a list of your coupons.



177
178
179
# File 'lib/stripe/services/coupon_service.rb', line 177

def list(params = {}, opts = {})
  request(method: :get, path: "/v1/coupons", params: params, opts: opts, base_address: :api)
end

#retrieve(coupon, params = {}, opts = {}) ⇒ Object

Retrieves the coupon with the given ID.



182
183
184
185
186
187
188
189
190
# File 'lib/stripe/services/coupon_service.rb', line 182

def retrieve(coupon, params = {}, opts = {})
  request(
    method: :get,
    path: format("/v1/coupons/%<coupon>s", { coupon: CGI.escape(coupon) }),
    params: params,
    opts: opts,
    base_address: :api
  )
end

#update(coupon, params = {}, opts = {}) ⇒ Object

Updates the metadata of a coupon. Other coupon details (currency, duration, amount_off) are, by design, not editable.



193
194
195
196
197
198
199
200
201
# File 'lib/stripe/services/coupon_service.rb', line 193

def update(coupon, params = {}, opts = {})
  request(
    method: :post,
    path: format("/v1/coupons/%<coupon>s", { coupon: CGI.escape(coupon) }),
    params: params,
    opts: opts,
    base_address: :api
  )
end