Class: Orb::Resources::Coupons

Inherits:
Object
  • Object
show all
Defined in:
lib/orb/resources/coupons.rb,
lib/orb/resources/coupons/subscriptions.rb,
sig/orb/resources/coupons.rbs,
sig/orb/resources/coupons/subscriptions.rbs

Overview

A coupon represents a reusable discount configuration that can be applied either as a fixed or percentage amount to an invoice or subscription. Coupons are activated using a redemption code, which applies the discount to a subscription or invoice. The duration of a coupon determines how long it remains available for use by end users.

Defined Under Namespace

Classes: Subscriptions

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client:) ⇒ Coupons

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of Coupons.

Parameters:



127
128
129
130
# File 'lib/orb/resources/coupons.rb', line 127

def initialize(client:)
  @client = client
  @subscriptions = Orb::Resources::Coupons::Subscriptions.new(client: client)
end

Instance Attribute Details

#subscriptionsOrb::Resources::Coupons::Subscriptions (readonly)

A coupon represents a reusable discount configuration that can be applied either as a fixed or percentage amount to an invoice or subscription. Coupons are activated using a redemption code, which applies the discount to a subscription or invoice. The duration of a coupon determines how long it remains available for use by end users.



17
18
19
# File 'lib/orb/resources/coupons.rb', line 17

def subscriptions
  @subscriptions
end

Instance Method Details

#archive(coupon_id, request_options: {}) ⇒ Orb::Models::Coupon

This endpoint allows a coupon to be archived. Archived coupons can no longer be redeemed, and will be hidden from lists of active coupons. Additionally, once a coupon is archived, its redemption code can be reused for a different coupon.

Parameters:

Returns:

See Also:



94
95
96
97
98
99
100
101
# File 'lib/orb/resources/coupons.rb', line 94

def archive(coupon_id, params = {})
  @client.request(
    method: :post,
    path: ["coupons/%1$s/archive", coupon_id],
    model: Orb::Coupon,
    options: params[:request_options]
  )
end

#create(discount:, redemption_code:, duration_in_months: nil, max_redemptions: nil, request_options: {}) ⇒ Orb::Models::Coupon

Some parameter documentations has been truncated, see Models::CouponCreateParams for more details.

This endpoint allows the creation of coupons, which can then be redeemed at subscription creation or plan change.

Parameters:

Returns:

See Also:



40
41
42
43
# File 'lib/orb/resources/coupons.rb', line 40

def create(params)
  parsed, options = Orb::CouponCreateParams.dump_request(params)
  @client.request(method: :post, path: "coupons", body: parsed, model: Orb::Coupon, options: options)
end

#fetch(coupon_id, request_options: {}) ⇒ Orb::Models::Coupon

This endpoint retrieves a coupon by its ID. To fetch coupons by their redemption code, use the List coupons endpoint with the redemption_code parameter.

Parameters:

Returns:

See Also:



115
116
117
118
119
120
121
122
# File 'lib/orb/resources/coupons.rb', line 115

def fetch(coupon_id, params = {})
  @client.request(
    method: :get,
    path: ["coupons/%1$s", coupon_id],
    model: Orb::Coupon,
    options: params[:request_options]
  )
end

#list(cursor: nil, limit: nil, redemption_code: nil, show_archived: nil, request_options: {}) ⇒ Orb::Internal::Page<Orb::Models::Coupon>

Some parameter documentations has been truncated, see Models::CouponListParams for more details.

This endpoint returns a list of all coupons for an account in a list format.

The list of coupons is ordered starting from the most recently created coupon. The response also includes pagination_metadata, which lets the caller retrieve the next page of results if they exist.

Parameters:

  • cursor (String, nil)

    Cursor for pagination. This can be populated by the next_cursor value returned

  • limit (Integer)

    The number of items to fetch. Defaults to 20.

  • redemption_code (String, nil)

    Filter to coupons matching this redemption code.

  • show_archived (Boolean, nil)

    Show archived coupons as well (by default, this endpoint only returns active cou

  • request_options (Orb::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



69
70
71
72
73
74
75
76
77
78
79
80
# File 'lib/orb/resources/coupons.rb', line 69

def list(params = {})
  parsed, options = Orb::CouponListParams.dump_request(params)
  query = Orb::Internal::Util.encode_query_params(parsed)
  @client.request(
    method: :get,
    path: "coupons",
    query: query,
    page: Orb::Internal::Page,
    model: Orb::Coupon,
    options: options
  )
end