stripe 10.7.1 → 10.8.0.pre.beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +271 -42
  3. data/OPENAPI_VERSION +1 -1
  4. data/README.md +11 -0
  5. data/VERSION +1 -1
  6. data/lib/stripe/api_operations/request.rb +2 -1
  7. data/lib/stripe/api_version.rb +1 -0
  8. data/lib/stripe/object_types.rb +23 -0
  9. data/lib/stripe/request_signing_authenticator.rb +79 -0
  10. data/lib/stripe/resources/account_notice.rb +14 -0
  11. data/lib/stripe/resources/capital/financing_offer.rb +36 -0
  12. data/lib/stripe/resources/capital/financing_summary.rb +12 -0
  13. data/lib/stripe/resources/capital/financing_transaction.rb +13 -0
  14. data/lib/stripe/resources/confirmation_token.rb +13 -0
  15. data/lib/stripe/resources/customer.rb +11 -0
  16. data/lib/stripe/resources/customer_entitlement.rb +9 -0
  17. data/lib/stripe/resources/customer_entitlement_summary.rb +9 -0
  18. data/lib/stripe/resources/entitlements/event.rb +13 -0
  19. data/lib/stripe/resources/entitlements/feature.rb +15 -0
  20. data/lib/stripe/resources/financial_connections/account.rb +3 -0
  21. data/lib/stripe/resources/financial_connections/account_inferred_balance.rb +11 -0
  22. data/lib/stripe/resources/gift_cards/card.rb +26 -0
  23. data/lib/stripe/resources/gift_cards/transaction.rb +60 -0
  24. data/lib/stripe/resources/invoice.rb +53 -0
  25. data/lib/stripe/resources/invoice_payment.rb +9 -0
  26. data/lib/stripe/resources/issuing/credit_underwriting_record.rb +75 -0
  27. data/lib/stripe/resources/issuing/personalization_design.rb +83 -0
  28. data/lib/stripe/resources/issuing/physical_bundle.rb +13 -0
  29. data/lib/stripe/resources/margin.rb +14 -0
  30. data/lib/stripe/resources/order.rb +97 -0
  31. data/lib/stripe/resources/quote.rb +104 -0
  32. data/lib/stripe/resources/quote_phase.rb +31 -0
  33. data/lib/stripe/resources/quote_preview_invoice.rb +40 -0
  34. data/lib/stripe/resources/quote_preview_subscription_schedule.rb +8 -0
  35. data/lib/stripe/resources/subscription_schedule.rb +20 -0
  36. data/lib/stripe/resources/tax/form.rb +41 -0
  37. data/lib/stripe/resources/terminal/reader.rb +60 -0
  38. data/lib/stripe/resources.rb +22 -0
  39. data/lib/stripe/search_result_object.rb +1 -1
  40. data/lib/stripe/stripe_client.rb +62 -28
  41. data/lib/stripe/stripe_configuration.rb +2 -1
  42. data/lib/stripe/util.rb +8 -1
  43. data/lib/stripe/version.rb +1 -1
  44. data/lib/stripe.rb +46 -0
  45. metadata +27 -4
@@ -0,0 +1,79 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Stripe
4
+ class RequestSigningAuthenticator
5
+ AUTHORIZATION_HEADER_NAME = "Authorization"
6
+ CONTENT_TYPE_HEADER_NAME = "Content-Type"
7
+ STRIPE_CONTEXT_HEADER_NAME = "Stripe-Context"
8
+ STRIPE_ACCOUNT_HEADER_NAME = "Stripe-Account"
9
+ CONTENT_DIGEST_HEADER_NAME = "Content-Digest"
10
+ SIGNATURE_INPUT_HEADER_NAME = "Signature-Input"
11
+ SIGNATURE_HEADER_NAME = "Signature"
12
+
13
+ attr_reader :auth_token, :sign_lambda
14
+
15
+ def initialize(auth_token, sign_lambda)
16
+ raise ArgumentError, "auth_token must be a string" unless auth_token.is_a?(String)
17
+ raise ArgumentError, "sign_lambda must be a lambda" unless sign_lambda.is_a?(Proc)
18
+
19
+ @auth_token = auth_token
20
+ @sign_lambda = sign_lambda
21
+ end
22
+
23
+ def authenticate(method, headers, body)
24
+ covered_headers = [CONTENT_TYPE_HEADER_NAME,
25
+ CONTENT_DIGEST_HEADER_NAME,
26
+ STRIPE_CONTEXT_HEADER_NAME,
27
+ STRIPE_ACCOUNT_HEADER_NAME,
28
+ AUTHORIZATION_HEADER_NAME,]
29
+
30
+ headers[AUTHORIZATION_HEADER_NAME] = "STRIPE-V2-SIG #{auth_token}"
31
+
32
+ if method == :get
33
+ covered_headers -= [CONTENT_TYPE_HEADER_NAME,
34
+ CONTENT_DIGEST_HEADER_NAME,]
35
+ else
36
+ content = body || ""
37
+ headers[CONTENT_DIGEST_HEADER_NAME] =
38
+ %(sha-256=:#{content_digest(content)}:)
39
+ end
40
+
41
+ covered_headers_formatted = covered_headers
42
+ .map { |string| %("#{string.downcase}") }
43
+ .join(" ")
44
+
45
+ signature_input = "(#{covered_headers_formatted});created=#{created_time}"
46
+
47
+ inputs = covered_headers
48
+ .map { |header| %("#{header.downcase}": #{headers[header]}) }
49
+ .join("\n")
50
+
51
+ signature_base = %(#{inputs}\n"@signature-params": #{signature_input})
52
+ .encode(Encoding::UTF_8)
53
+
54
+ headers[SIGNATURE_INPUT_HEADER_NAME] = "sig1=#{signature_input}"
55
+
56
+ headers[SIGNATURE_HEADER_NAME] =
57
+ "sig1=:#{encoded_signature(signature_base)}:"
58
+ end
59
+
60
+ private def sign(signature_base)
61
+ @sign_lambda.call(signature_base)
62
+ end
63
+
64
+ private def encoded_signature(signature_base)
65
+ Base64.strict_encode64(sign(signature_base))
66
+ rescue StandardError
67
+ raise AuthenticationError, "Encountered '#{e.message} (#{e.class})' " \
68
+ "when calculating request signature."
69
+ end
70
+
71
+ private def content_digest(content)
72
+ Base64.strict_encode64(OpenSSL::Digest.new("SHA256").digest(content))
73
+ end
74
+
75
+ private def created_time
76
+ Time.now.to_i
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,14 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ # A notice to a Connected account. Notice can be sent by Stripe on your behalf or you can opt to send the notices yourself.
6
+ #
7
+ # See the [guide to send notices](https://stripe.com/docs/issuing/compliance-us/issuing-regulated-customer-notices) to your connected accounts.
8
+ class AccountNotice < APIResource
9
+ extend Stripe::APIOperations::List
10
+ include Stripe::APIOperations::Save
11
+
12
+ OBJECT_NAME = "account_notice"
13
+ end
14
+ end
@@ -0,0 +1,36 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Capital
6
+ # This is an object representing an offer of financing from
7
+ # Stripe Capital to a Connect subaccount.
8
+ class FinancingOffer < APIResource
9
+ extend Stripe::APIOperations::List
10
+
11
+ OBJECT_NAME = "capital.financing_offer"
12
+
13
+ # Acknowledges that platform has received and delivered the financing_offer to
14
+ # the intended merchant recipient.
15
+ def mark_delivered(params = {}, opts = {})
16
+ request_stripe_object(
17
+ method: :post,
18
+ path: format("/v1/capital/financing_offers/%<financing_offer>s/mark_delivered", { financing_offer: CGI.escape(self["id"]) }),
19
+ params: params,
20
+ opts: opts
21
+ )
22
+ end
23
+
24
+ # Acknowledges that platform has received and delivered the financing_offer to
25
+ # the intended merchant recipient.
26
+ def self.mark_delivered(financing_offer, params = {}, opts = {})
27
+ request_stripe_object(
28
+ method: :post,
29
+ path: format("/v1/capital/financing_offers/%<financing_offer>s/mark_delivered", { financing_offer: CGI.escape(financing_offer) }),
30
+ params: params,
31
+ opts: opts
32
+ )
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,12 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Capital
6
+ # A financing object describes an account's current financing state. Used by Connect
7
+ # platforms to read the state of Capital offered to their connected accounts.
8
+ class FinancingSummary < SingletonAPIResource
9
+ OBJECT_NAME = "capital.financing_summary"
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,13 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Capital
6
+ # This is an object representing the details of a transaction on a Capital financing object.
7
+ class FinancingTransaction < APIResource
8
+ extend Stripe::APIOperations::List
9
+
10
+ OBJECT_NAME = "capital.financing_transaction"
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ # ConfirmationTokens help transport client side data collected by Stripe JS over
6
+ # to your server for confirming a PaymentIntent or SetupIntent. If the confirmation
7
+ # is successful, values present on the ConfirmationToken are written onto the Intent.
8
+ #
9
+ # To learn more or request access, visit the related guided: [Finalize payments on the server using Confirmation Tokens](https://stripe.com/docs/payments/finalize-payments-on-the-server-confirmation-tokens).
10
+ class ConfirmationToken < APIResource
11
+ OBJECT_NAME = "confirmation_token"
12
+ end
13
+ end
@@ -17,6 +17,7 @@ module Stripe
17
17
 
18
18
  nested_resource_class_methods :balance_transaction, operations: %i[create retrieve update list]
19
19
  nested_resource_class_methods :cash_balance_transaction, operations: %i[retrieve list]
20
+ nested_resource_class_methods :entitlement, operations: %i[list]
20
21
  nested_resource_class_methods :tax_id, operations: %i[create retrieve delete list]
21
22
 
22
23
  # Retrieve funding instructions for a customer cash balance. If funding instructions do not yet exist for the customer, new
@@ -141,6 +142,16 @@ module Stripe
141
142
  )
142
143
  end
143
144
 
145
+ # Retrieve the entitlement summary for a customer
146
+ def self.retrieve_entitlement_summary(customer, params = {}, opts = {})
147
+ request_stripe_object(
148
+ method: :get,
149
+ path: format("/v1/customers/%<customer>s/entitlement_summary", { customer: CGI.escape(customer) }),
150
+ params: params,
151
+ opts: opts
152
+ )
153
+ end
154
+
144
155
  def test_helpers
145
156
  TestHelpers.new(self)
146
157
  end
@@ -0,0 +1,9 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ # A entitlement for a customer describes access to a feature.
6
+ class CustomerEntitlement < APIResource
7
+ OBJECT_NAME = "customer_entitlement"
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ # A summary of a customer's entitlements.
6
+ class CustomerEntitlementSummary < APIResource
7
+ OBJECT_NAME = "customer_entitlement_summary"
8
+ end
9
+ end
@@ -0,0 +1,13 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Entitlements
6
+ # An entitlement event either grants or revokes an entitlement to a feature for a customer.
7
+ class Event < APIResource
8
+ extend Stripe::APIOperations::Create
9
+
10
+ OBJECT_NAME = "entitlements.event"
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,15 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Entitlements
6
+ # A feature represents a monetizable ability or functionality in your system.
7
+ # Features can be assigned to products, and when those products are purchased, Stripe will create an entitlement to the feature for the purchasing customer.
8
+ class Feature < APIResource
9
+ extend Stripe::APIOperations::Create
10
+ extend Stripe::APIOperations::List
11
+
12
+ OBJECT_NAME = "entitlements.feature"
13
+ end
14
+ end
15
+ end
@@ -6,9 +6,12 @@ module Stripe
6
6
  # A Financial Connections Account represents an account that exists outside of Stripe, to which you have been granted some degree of access.
7
7
  class Account < APIResource
8
8
  extend Stripe::APIOperations::List
9
+ extend Stripe::APIOperations::NestedResource
9
10
 
10
11
  OBJECT_NAME = "financial_connections.account"
11
12
 
13
+ nested_resource_class_methods :inferred_balance, operations: %i[list]
14
+
12
15
  # Disables your access to a Financial Connections Account. You will no longer be able to access data associated with the account (e.g. balances, transactions).
13
16
  def disconnect(params = {}, opts = {})
14
17
  request_stripe_object(
@@ -0,0 +1,11 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module FinancialConnections
6
+ # A historical balance for the account on a particular day. It may be sourced from a balance snapshot provided by a financial institution, or inferred using transactions data.
7
+ class AccountInferredBalance < APIResource
8
+ OBJECT_NAME = "financial_connections.account_inferred_balance"
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,26 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module GiftCards
6
+ # A gift card represents a single gift card owned by a customer, including the
7
+ # remaining balance, gift card code, and whether or not it is active.
8
+ class Card < APIResource
9
+ extend Stripe::APIOperations::Create
10
+ extend Stripe::APIOperations::List
11
+ include Stripe::APIOperations::Save
12
+
13
+ OBJECT_NAME = "gift_cards.card"
14
+
15
+ # Validates a gift card code, returning the matching gift card object if it exists.
16
+ def self.validate(params = {}, opts = {})
17
+ request_stripe_object(
18
+ method: :post,
19
+ path: "/v1/gift_cards/cards/validate",
20
+ params: params,
21
+ opts: opts
22
+ )
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,60 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module GiftCards
6
+ # A gift card transaction represents a single transaction on a referenced gift card.
7
+ # A transaction is in one of three states, `confirmed`, `held` or `canceled`. A `confirmed`
8
+ # transaction is one that has added/deducted funds. A `held` transaction has created a
9
+ # temporary hold on funds, which can then be cancelled or confirmed. A `held` transaction
10
+ # can be confirmed into a `confirmed` transaction, or canceled into a `canceled` transaction.
11
+ # A `canceled` transaction has no effect on a gift card's balance.
12
+ class Transaction < APIResource
13
+ extend Stripe::APIOperations::Create
14
+ extend Stripe::APIOperations::List
15
+ include Stripe::APIOperations::Save
16
+
17
+ OBJECT_NAME = "gift_cards.transaction"
18
+
19
+ # Cancel a gift card transaction
20
+ def cancel(params = {}, opts = {})
21
+ request_stripe_object(
22
+ method: :post,
23
+ path: format("/v1/gift_cards/transactions/%<id>s/cancel", { id: CGI.escape(self["id"]) }),
24
+ params: params,
25
+ opts: opts
26
+ )
27
+ end
28
+
29
+ # Confirm a gift card transaction
30
+ def confirm(params = {}, opts = {})
31
+ request_stripe_object(
32
+ method: :post,
33
+ path: format("/v1/gift_cards/transactions/%<id>s/confirm", { id: CGI.escape(self["id"]) }),
34
+ params: params,
35
+ opts: opts
36
+ )
37
+ end
38
+
39
+ # Cancel a gift card transaction
40
+ def self.cancel(id, params = {}, opts = {})
41
+ request_stripe_object(
42
+ method: :post,
43
+ path: format("/v1/gift_cards/transactions/%<id>s/cancel", { id: CGI.escape(id) }),
44
+ params: params,
45
+ opts: opts
46
+ )
47
+ end
48
+
49
+ # Confirm a gift card transaction
50
+ def self.confirm(id, params = {}, opts = {})
51
+ request_stripe_object(
52
+ method: :post,
53
+ path: format("/v1/gift_cards/transactions/%<id>s/confirm", { id: CGI.escape(id) }),
54
+ params: params,
55
+ opts: opts
56
+ )
57
+ end
58
+ end
59
+ end
60
+ end
@@ -40,9 +40,30 @@ module Stripe
40
40
  extend Stripe::APIOperations::List
41
41
  extend Stripe::APIOperations::Search
42
42
  include Stripe::APIOperations::Save
43
+ extend Stripe::APIOperations::NestedResource
43
44
 
44
45
  OBJECT_NAME = "invoice"
45
46
 
47
+ nested_resource_class_methods :payment, operations: %i[retrieve list]
48
+
49
+ # Attaches a PaymentIntent to the invoice, adding it to the list of payments.
50
+ # When the PaymentIntent's status changes to succeeded, the payment is credited
51
+ # to the invoice, increasing its amount_paid. When the invoice is fully paid, the
52
+ # invoice's status becomes paid.
53
+ #
54
+ # If the PaymentIntent's status is already succeeded when it is attached, it is
55
+ # credited to the invoice immediately.
56
+ #
57
+ # Related guide: [Create an invoice payment](https://stripe.com/docs/invoicing/payments/create)
58
+ def attach_payment_intent(params = {}, opts = {})
59
+ request_stripe_object(
60
+ method: :post,
61
+ path: format("/v1/invoices/%<invoice>s/attach_payment_intent", { invoice: CGI.escape(self["id"]) }),
62
+ params: params,
63
+ opts: opts
64
+ )
65
+ end
66
+
46
67
  # Stripe automatically finalizes drafts before sending and attempting payment on invoices. However, if you'd like to finalize a draft invoice manually, you can do so using this method.
47
68
  def finalize_invoice(params = {}, opts = {})
48
69
  request_stripe_object(
@@ -95,6 +116,38 @@ module Stripe
95
116
  )
96
117
  end
97
118
 
119
+ # Attaches a PaymentIntent to the invoice, adding it to the list of payments.
120
+ # When the PaymentIntent's status changes to succeeded, the payment is credited
121
+ # to the invoice, increasing its amount_paid. When the invoice is fully paid, the
122
+ # invoice's status becomes paid.
123
+ #
124
+ # If the PaymentIntent's status is already succeeded when it is attached, it is
125
+ # credited to the invoice immediately.
126
+ #
127
+ # Related guide: [Create an invoice payment](https://stripe.com/docs/invoicing/payments/create)
128
+ def self.attach_payment_intent(invoice, params = {}, opts = {})
129
+ request_stripe_object(
130
+ method: :post,
131
+ path: format("/v1/invoices/%<invoice>s/attach_payment_intent", { invoice: CGI.escape(invoice) }),
132
+ params: params,
133
+ opts: opts
134
+ )
135
+ end
136
+
137
+ # At any time, you can preview the upcoming invoice for a customer. This will show you all the charges that are pending, including subscription renewal charges, invoice item charges, etc. It will also show you any discounts that are applicable to the invoice.
138
+ #
139
+ # Note that when you are viewing an upcoming invoice, you are simply viewing a preview – the invoice has not yet been created. As such, the upcoming invoice will not show up in invoice listing calls, and you cannot use the API to pay or edit the invoice. If you want to change the amount that your customer will be billed, you can add, remove, or update pending invoice items, or update the customer's discount.
140
+ #
141
+ # You can preview the effects of updating a subscription, including a preview of what proration will take place. To ensure that the actual proration is calculated exactly the same as the previewed proration, you should pass a proration_date parameter when doing the actual subscription update. The value passed in should be the same as the subscription_proration_date returned on the upcoming invoice resource. The recommended way to get only the prorations being previewed is to consider only proration line items where period[start] is equal to the subscription_proration_date on the upcoming invoice resource.
142
+ def self.create_preview(params = {}, opts = {})
143
+ request_stripe_object(
144
+ method: :post,
145
+ path: "/v1/invoices/create_preview",
146
+ params: params,
147
+ opts: opts
148
+ )
149
+ end
150
+
98
151
  # Stripe automatically finalizes drafts before sending and attempting payment on invoices. However, if you'd like to finalize a draft invoice manually, you can do so using this method.
99
152
  def self.finalize_invoice(invoice, params = {}, opts = {})
100
153
  request_stripe_object(
@@ -0,0 +1,9 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ # The invoice payment object
6
+ class InvoicePayment < APIResource
7
+ OBJECT_NAME = "invoice_payment"
8
+ end
9
+ end
@@ -0,0 +1,75 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Issuing
6
+ # Every time an applicant submits an application for a Charge Card product your platform offers, or every time your platform takes a proactive credit decision on an existing account, you must record the decision by creating a new `CreditUnderwritingRecord` object on a connected account.
7
+ #
8
+ # [Follow the guide](https://stripe.com/docs/issuing/credit/report-credit-decisions-and-manage-aans) to learn about your requirements as a platform.
9
+ class CreditUnderwritingRecord < APIResource
10
+ extend Stripe::APIOperations::List
11
+
12
+ OBJECT_NAME = "issuing.credit_underwriting_record"
13
+
14
+ # Update a CreditUnderwritingRecord object to correct mistakes.
15
+ def correct(params = {}, opts = {})
16
+ request_stripe_object(
17
+ method: :post,
18
+ path: format("/v1/issuing/credit_underwriting_records/%<credit_underwriting_record>s/correct", { credit_underwriting_record: CGI.escape(self["id"]) }),
19
+ params: params,
20
+ opts: opts
21
+ )
22
+ end
23
+
24
+ # Update a CreditUnderwritingRecord object from a decision made on a credit application.
25
+ def report_decision(params = {}, opts = {})
26
+ request_stripe_object(
27
+ method: :post,
28
+ path: format("/v1/issuing/credit_underwriting_records/%<credit_underwriting_record>s/report_decision", { credit_underwriting_record: CGI.escape(self["id"]) }),
29
+ params: params,
30
+ opts: opts
31
+ )
32
+ end
33
+
34
+ # Update a CreditUnderwritingRecord object to correct mistakes.
35
+ def self.correct(credit_underwriting_record, params = {}, opts = {})
36
+ request_stripe_object(
37
+ method: :post,
38
+ path: format("/v1/issuing/credit_underwriting_records/%<credit_underwriting_record>s/correct", { credit_underwriting_record: CGI.escape(credit_underwriting_record) }),
39
+ params: params,
40
+ opts: opts
41
+ )
42
+ end
43
+
44
+ # Creates a CreditUnderwritingRecord object with information about a credit application submission.
45
+ def self.create_from_application(params = {}, opts = {})
46
+ request_stripe_object(
47
+ method: :post,
48
+ path: "/v1/issuing/credit_underwriting_records/create_from_application",
49
+ params: params,
50
+ opts: opts
51
+ )
52
+ end
53
+
54
+ # Creates a CreditUnderwritingRecord object from an underwriting decision coming from a proactive review of an existing accountholder.
55
+ def self.create_from_proactive_review(params = {}, opts = {})
56
+ request_stripe_object(
57
+ method: :post,
58
+ path: "/v1/issuing/credit_underwriting_records/create_from_proactive_review",
59
+ params: params,
60
+ opts: opts
61
+ )
62
+ end
63
+
64
+ # Update a CreditUnderwritingRecord object from a decision made on a credit application.
65
+ def self.report_decision(credit_underwriting_record, params = {}, opts = {})
66
+ request_stripe_object(
67
+ method: :post,
68
+ path: format("/v1/issuing/credit_underwriting_records/%<credit_underwriting_record>s/report_decision", { credit_underwriting_record: CGI.escape(credit_underwriting_record) }),
69
+ params: params,
70
+ opts: opts
71
+ )
72
+ end
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,83 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Issuing
6
+ # A Personalization Design is a logical grouping of a Physical Bundle, card logo, and carrier text that represents a product line.
7
+ class PersonalizationDesign < APIResource
8
+ extend Stripe::APIOperations::Create
9
+ extend Stripe::APIOperations::List
10
+ include Stripe::APIOperations::Save
11
+
12
+ OBJECT_NAME = "issuing.personalization_design"
13
+
14
+ def test_helpers
15
+ TestHelpers.new(self)
16
+ end
17
+
18
+ class TestHelpers < APIResourceTestHelpers
19
+ RESOURCE_CLASS = PersonalizationDesign
20
+
21
+ # Updates the status of the specified testmode personalization design object to active.
22
+ def self.activate(personalization_design, params = {}, opts = {})
23
+ request_stripe_object(
24
+ method: :post,
25
+ path: format("/v1/test_helpers/issuing/personalization_designs/%<personalization_design>s/activate", { personalization_design: CGI.escape(personalization_design) }),
26
+ params: params,
27
+ opts: opts
28
+ )
29
+ end
30
+
31
+ # Updates the status of the specified testmode personalization design object to inactive.
32
+ def self.deactivate(personalization_design, params = {}, opts = {})
33
+ request_stripe_object(
34
+ method: :post,
35
+ path: format("/v1/test_helpers/issuing/personalization_designs/%<personalization_design>s/deactivate", { personalization_design: CGI.escape(personalization_design) }),
36
+ params: params,
37
+ opts: opts
38
+ )
39
+ end
40
+
41
+ # Updates the status of the specified testmode personalization design object to rejected.
42
+ def self.reject(personalization_design, params = {}, opts = {})
43
+ request_stripe_object(
44
+ method: :post,
45
+ path: format("/v1/test_helpers/issuing/personalization_designs/%<personalization_design>s/reject", { personalization_design: CGI.escape(personalization_design) }),
46
+ params: params,
47
+ opts: opts
48
+ )
49
+ end
50
+
51
+ # Updates the status of the specified testmode personalization design object to active.
52
+ def activate(params = {}, opts = {})
53
+ @resource.request_stripe_object(
54
+ method: :post,
55
+ path: format("/v1/test_helpers/issuing/personalization_designs/%<personalization_design>s/activate", { personalization_design: CGI.escape(@resource["id"]) }),
56
+ params: params,
57
+ opts: opts
58
+ )
59
+ end
60
+
61
+ # Updates the status of the specified testmode personalization design object to inactive.
62
+ def deactivate(params = {}, opts = {})
63
+ @resource.request_stripe_object(
64
+ method: :post,
65
+ path: format("/v1/test_helpers/issuing/personalization_designs/%<personalization_design>s/deactivate", { personalization_design: CGI.escape(@resource["id"]) }),
66
+ params: params,
67
+ opts: opts
68
+ )
69
+ end
70
+
71
+ # Updates the status of the specified testmode personalization design object to rejected.
72
+ def reject(params = {}, opts = {})
73
+ @resource.request_stripe_object(
74
+ method: :post,
75
+ path: format("/v1/test_helpers/issuing/personalization_designs/%<personalization_design>s/reject", { personalization_design: CGI.escape(@resource["id"]) }),
76
+ params: params,
77
+ opts: opts
78
+ )
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,13 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Issuing
6
+ # A Physical Bundle represents the bundle of physical items - card stock, carrier letter, and envelope - that is shipped to a cardholder when you create a physical card.
7
+ class PhysicalBundle < APIResource
8
+ extend Stripe::APIOperations::List
9
+
10
+ OBJECT_NAME = "issuing.physical_bundle"
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,14 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ # A (partner) margin represents a specific discount distributed in partner reseller programs to business partners who
6
+ # resell products and services and earn a discount (margin) for doing so.
7
+ class Margin < APIResource
8
+ extend Stripe::APIOperations::Create
9
+ extend Stripe::APIOperations::List
10
+ include Stripe::APIOperations::Save
11
+
12
+ OBJECT_NAME = "margin"
13
+ end
14
+ end