Class: Stripe::Margin
- Inherits:
-
APIResource
- Object
- StripeObject
- APIResource
- Stripe::Margin
- Extended by:
- APIOperations::Create, APIOperations::List
- Includes:
- APIOperations::Save
- Defined in:
- lib/stripe/resources/margin.rb
Overview
A (partner) margin represents a specific discount distributed in partner reseller programs to business partners who resell products and services and earn a discount (margin) for doing so.
Defined Under Namespace
Classes: CreateParams, ListParams, UpdateParams
Constant Summary collapse
- OBJECT_NAME =
"margin"
Constants inherited from StripeObject
StripeObject::RESERVED_FIELD_NAMES
Instance Attribute Summary collapse
-
#active ⇒ Object
readonly
Whether the margin can be applied to invoices, invoice items, or invoice line items.
-
#created ⇒ Object
readonly
Time at which the object was created.
-
#id ⇒ Object
readonly
Unique identifier for the object.
-
#livemode ⇒ Object
readonly
Has the value ‘true` if the object exists in live mode or the value `false` if the object exists in test mode.
-
#metadata ⇒ Object
readonly
Set of [key-value pairs](stripe.com/docs/api/metadata) that you can attach to an object.
-
#name ⇒ Object
readonly
Name of the margin that’s displayed on, for example, invoices.
-
#object ⇒ Object
readonly
String representing the object’s type.
-
#percent_off ⇒ Object
readonly
Percent that will be taken off the subtotal before tax (after all other discounts and promotions) of any invoice to which the margin is applied.
-
#updated ⇒ Object
readonly
Time at which the object was last updated.
Attributes inherited from APIResource
Attributes inherited from StripeObject
Class Method Summary collapse
-
.create(params = {}, opts = {}) ⇒ Object
Create a margin object to be used with invoices, invoice items, and invoice line items for a customer to represent a partner discount.
- .field_remappings ⇒ Object
- .inner_class_types ⇒ Object
-
.list(params = {}, opts = {}) ⇒ Object
Retrieve a list of your margins.
- .object_name ⇒ Object
-
.update(margin, params = {}, opts = {}) ⇒ Object
Update the specified margin object.
Methods included from APIOperations::Create
Methods included from APIOperations::List
Methods included from APIOperations::Save
Methods inherited from APIResource
class_name, custom_method, #refresh, #request_stripe_object, resource_url, #resource_url, retrieve, save_nested_resource
Methods included from APIOperations::Request
Methods inherited from StripeObject
#==, #[], #[]=, #_get_inner_class_type, additive_object_param, additive_object_param?, #as_json, construct_from, #deleted?, #dirty!, #each, #eql?, #hash, #initialize, #inspect, #keys, #marshal_dump, #marshal_load, protected_fields, #serialize_params, #to_hash, #to_json, #to_s, #update_attributes, #values
Constructor Details
This class inherits a constructor from Stripe::StripeObject
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class Stripe::StripeObject
Instance Attribute Details
#active ⇒ Object (readonly)
Whether the margin can be applied to invoices, invoice items, or invoice line items. Defaults to ‘true`.
77 78 79 |
# File 'lib/stripe/resources/margin.rb', line 77 def active @active end |
#created ⇒ Object (readonly)
Time at which the object was created. Measured in seconds since the Unix epoch.
79 80 81 |
# File 'lib/stripe/resources/margin.rb', line 79 def created @created end |
#id ⇒ Object (readonly)
Unique identifier for the object.
81 82 83 |
# File 'lib/stripe/resources/margin.rb', line 81 def id @id end |
#livemode ⇒ Object (readonly)
Has the value ‘true` if the object exists in live mode or the value `false` if the object exists in test mode.
83 84 85 |
# File 'lib/stripe/resources/margin.rb', line 83 def livemode @livemode end |
#metadata ⇒ Object (readonly)
Set of [key-value pairs](stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
85 86 87 |
# File 'lib/stripe/resources/margin.rb', line 85 def @metadata end |
#name ⇒ Object (readonly)
Name of the margin that’s displayed on, for example, invoices.
87 88 89 |
# File 'lib/stripe/resources/margin.rb', line 87 def name @name end |
#object ⇒ Object (readonly)
String representing the object’s type. Objects of the same type share the same value.
89 90 91 |
# File 'lib/stripe/resources/margin.rb', line 89 def object @object end |
#percent_off ⇒ Object (readonly)
Percent that will be taken off the subtotal before tax (after all other discounts and promotions) of any invoice to which the margin is applied.
91 92 93 |
# File 'lib/stripe/resources/margin.rb', line 91 def percent_off @percent_off end |
#updated ⇒ Object (readonly)
Time at which the object was last updated. Measured in seconds since the Unix epoch.
93 94 95 |
# File 'lib/stripe/resources/margin.rb', line 93 def updated @updated end |
Class Method Details
.create(params = {}, opts = {}) ⇒ Object
Create a margin object to be used with invoices, invoice items, and invoice line items for a customer to represent a partner discount. A margin has a percent_off which is the percent that will be taken off the subtotal after all items and other discounts and promotions) of any invoices for a customer. Calculation of prorations do not include any partner margins applied on the original invoice item.
96 97 98 |
# File 'lib/stripe/resources/margin.rb', line 96 def self.create(params = {}, opts = {}) request_stripe_object(method: :post, path: "/v1/billing/margins", params: params, opts: opts) end |
.field_remappings ⇒ Object
119 120 121 |
# File 'lib/stripe/resources/margin.rb', line 119 def self.field_remappings @field_remappings = {} end |
.inner_class_types ⇒ Object
115 116 117 |
# File 'lib/stripe/resources/margin.rb', line 115 def self.inner_class_types @inner_class_types = {} end |
.list(params = {}, opts = {}) ⇒ Object
Retrieve a list of your margins.
101 102 103 |
# File 'lib/stripe/resources/margin.rb', line 101 def self.list(params = {}, opts = {}) request_stripe_object(method: :get, path: "/v1/billing/margins", params: params, opts: opts) end |
.object_name ⇒ Object
13 14 15 |
# File 'lib/stripe/resources/margin.rb', line 13 def self.object_name "margin" end |
.update(margin, params = {}, opts = {}) ⇒ Object
Update the specified margin object. Certain fields of the margin object are not editable.
106 107 108 109 110 111 112 113 |
# File 'lib/stripe/resources/margin.rb', line 106 def self.update(margin, params = {}, opts = {}) request_stripe_object( method: :post, path: format("/v1/billing/margins/%<margin>s", { margin: CGI.escape(margin) }), params: params, opts: opts ) end |