stripe 10.8.0.pre.beta.1 → 10.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (130) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +47 -270
  3. data/Gemfile +1 -1
  4. data/OPENAPI_VERSION +1 -1
  5. data/README.md +0 -11
  6. data/VERSION +1 -1
  7. data/lib/stripe/api_operations/request.rb +1 -2
  8. data/lib/stripe/api_version.rb +0 -1
  9. data/lib/stripe/object_types.rb +0 -23
  10. data/lib/stripe/resources/account.rb +61 -1
  11. data/lib/stripe/resources/account_link.rb +5 -0
  12. data/lib/stripe/resources/account_session.rb +5 -0
  13. data/lib/stripe/resources/apple_pay_domain.rb +40 -0
  14. data/lib/stripe/resources/application_fee.rb +5 -0
  15. data/lib/stripe/resources/apps/secret.rb +10 -0
  16. data/lib/stripe/resources/balance_transaction.rb +12 -0
  17. data/lib/stripe/resources/bank_account.rb +27 -0
  18. data/lib/stripe/resources/billing_portal/configuration.rb +30 -0
  19. data/lib/stripe/resources/billing_portal/session.rb +10 -0
  20. data/lib/stripe/resources/card.rb +27 -0
  21. data/lib/stripe/resources/charge.rb +22 -0
  22. data/lib/stripe/resources/checkout/session.rb +20 -0
  23. data/lib/stripe/resources/climate/order.rb +22 -0
  24. data/lib/stripe/resources/climate/product.rb +10 -0
  25. data/lib/stripe/resources/climate/supplier.rb +10 -0
  26. data/lib/stripe/resources/country_spec.rb +5 -0
  27. data/lib/stripe/resources/coupon.rb +42 -0
  28. data/lib/stripe/resources/credit_note.rb +33 -0
  29. data/lib/stripe/resources/customer.rb +42 -11
  30. data/lib/stripe/resources/customer_session.rb +10 -0
  31. data/lib/stripe/resources/dispute.rb +17 -0
  32. data/lib/stripe/resources/ephemeral_key.rb +20 -0
  33. data/lib/stripe/resources/event.rb +5 -0
  34. data/lib/stripe/resources/exchange_rate.rb +5 -0
  35. data/lib/stripe/resources/file.rb +5 -0
  36. data/lib/stripe/resources/file_link.rb +20 -0
  37. data/lib/stripe/resources/financial_connections/account.rb +10 -3
  38. data/lib/stripe/resources/financial_connections/session.rb +10 -0
  39. data/lib/stripe/resources/financial_connections/transaction.rb +10 -0
  40. data/lib/stripe/resources/identity/verification_report.rb +10 -0
  41. data/lib/stripe/resources/identity/verification_session.rb +39 -0
  42. data/lib/stripe/resources/invoice.rb +45 -53
  43. data/lib/stripe/resources/invoice_item.rb +40 -0
  44. data/lib/stripe/resources/issuing/authorization.rb +20 -0
  45. data/lib/stripe/resources/issuing/card.rb +20 -0
  46. data/lib/stripe/resources/issuing/cardholder.rb +30 -0
  47. data/lib/stripe/resources/issuing/dispute.rb +30 -0
  48. data/lib/stripe/resources/issuing/token.rb +15 -0
  49. data/lib/stripe/resources/issuing/transaction.rb +20 -0
  50. data/lib/stripe/resources/payment_intent.rb +35 -0
  51. data/lib/stripe/resources/payment_link.rb +20 -0
  52. data/lib/stripe/resources/payment_method.rb +22 -0
  53. data/lib/stripe/resources/payment_method_configuration.rb +30 -0
  54. data/lib/stripe/resources/payment_method_domain.rb +30 -0
  55. data/lib/stripe/resources/payout.rb +24 -0
  56. data/lib/stripe/resources/plan.rb +40 -0
  57. data/lib/stripe/resources/price.rb +20 -0
  58. data/lib/stripe/resources/product.rb +40 -0
  59. data/lib/stripe/resources/promotion_code.rb +20 -0
  60. data/lib/stripe/resources/quote.rb +13 -97
  61. data/lib/stripe/resources/radar/early_fraud_warning.rb +10 -0
  62. data/lib/stripe/resources/radar/value_list.rb +50 -0
  63. data/lib/stripe/resources/radar/value_list_item.rb +40 -0
  64. data/lib/stripe/resources/refund.rb +36 -0
  65. data/lib/stripe/resources/reporting/report_run.rb +20 -0
  66. data/lib/stripe/resources/reporting/report_type.rb +10 -0
  67. data/lib/stripe/resources/review.rb +5 -0
  68. data/lib/stripe/resources/setup_attempt.rb +5 -0
  69. data/lib/stripe/resources/setup_intent.rb +23 -0
  70. data/lib/stripe/resources/shipping_rate.rb +20 -0
  71. data/lib/stripe/resources/sigma/scheduled_query_run.rb +10 -0
  72. data/lib/stripe/resources/source.rb +17 -0
  73. data/lib/stripe/resources/subscription.rb +46 -0
  74. data/lib/stripe/resources/subscription_item.rb +50 -0
  75. data/lib/stripe/resources/subscription_schedule.rb +28 -18
  76. data/lib/stripe/resources/tax/calculation.rb +10 -0
  77. data/lib/stripe/resources/tax/registration.rb +32 -0
  78. data/lib/stripe/resources/tax_code.rb +5 -0
  79. data/lib/stripe/resources/tax_id.rb +20 -0
  80. data/lib/stripe/resources/tax_rate.rb +20 -0
  81. data/lib/stripe/resources/terminal/configuration.rb +50 -0
  82. data/lib/stripe/resources/terminal/connection_token.rb +10 -0
  83. data/lib/stripe/resources/terminal/location.rb +51 -0
  84. data/lib/stripe/resources/terminal/reader.rb +42 -52
  85. data/lib/stripe/resources/test_helpers/test_clock.rb +40 -0
  86. data/lib/stripe/resources/token.rb +6 -0
  87. data/lib/stripe/resources/topup.rb +20 -0
  88. data/lib/stripe/resources/transfer.rb +22 -0
  89. data/lib/stripe/resources/treasury/credit_reversal.rb +20 -0
  90. data/lib/stripe/resources/treasury/debit_reversal.rb +20 -0
  91. data/lib/stripe/resources/treasury/financial_account.rb +30 -0
  92. data/lib/stripe/resources/treasury/inbound_transfer.rb +20 -0
  93. data/lib/stripe/resources/treasury/outbound_payment.rb +20 -0
  94. data/lib/stripe/resources/treasury/outbound_transfer.rb +20 -0
  95. data/lib/stripe/resources/treasury/received_credit.rb +10 -0
  96. data/lib/stripe/resources/treasury/received_debit.rb +10 -0
  97. data/lib/stripe/resources/treasury/transaction.rb +10 -0
  98. data/lib/stripe/resources/treasury/transaction_entry.rb +10 -0
  99. data/lib/stripe/resources/webhook_endpoint.rb +50 -0
  100. data/lib/stripe/resources.rb +0 -22
  101. data/lib/stripe/search_result_object.rb +1 -1
  102. data/lib/stripe/stripe_client.rb +28 -62
  103. data/lib/stripe/stripe_configuration.rb +1 -2
  104. data/lib/stripe/util.rb +1 -8
  105. data/lib/stripe/version.rb +1 -1
  106. data/lib/stripe.rb +0 -46
  107. metadata +4 -27
  108. data/lib/stripe/request_signing_authenticator.rb +0 -79
  109. data/lib/stripe/resources/account_notice.rb +0 -14
  110. data/lib/stripe/resources/capital/financing_offer.rb +0 -36
  111. data/lib/stripe/resources/capital/financing_summary.rb +0 -12
  112. data/lib/stripe/resources/capital/financing_transaction.rb +0 -13
  113. data/lib/stripe/resources/confirmation_token.rb +0 -13
  114. data/lib/stripe/resources/customer_entitlement.rb +0 -9
  115. data/lib/stripe/resources/customer_entitlement_summary.rb +0 -9
  116. data/lib/stripe/resources/entitlements/event.rb +0 -13
  117. data/lib/stripe/resources/entitlements/feature.rb +0 -15
  118. data/lib/stripe/resources/financial_connections/account_inferred_balance.rb +0 -11
  119. data/lib/stripe/resources/gift_cards/card.rb +0 -26
  120. data/lib/stripe/resources/gift_cards/transaction.rb +0 -60
  121. data/lib/stripe/resources/invoice_payment.rb +0 -9
  122. data/lib/stripe/resources/issuing/credit_underwriting_record.rb +0 -75
  123. data/lib/stripe/resources/issuing/personalization_design.rb +0 -83
  124. data/lib/stripe/resources/issuing/physical_bundle.rb +0 -13
  125. data/lib/stripe/resources/margin.rb +0 -14
  126. data/lib/stripe/resources/order.rb +0 -97
  127. data/lib/stripe/resources/quote_phase.rb +0 -31
  128. data/lib/stripe/resources/quote_preview_invoice.rb +0 -40
  129. data/lib/stripe/resources/quote_preview_subscription_schedule.rb +0 -8
  130. data/lib/stripe/resources/tax/form.rb +0 -41
@@ -119,5 +119,28 @@ module Stripe
119
119
  opts: opts
120
120
  )
121
121
  end
122
+
123
+ # Creates a SetupIntent object.
124
+ #
125
+ # After you create the SetupIntent, attach a payment method and [confirm](https://stripe.com/docs/api/setup_intents/confirm)
126
+ # it to collect any required permissions to charge the payment method later.
127
+ def self.create(params = {}, opts = {})
128
+ request_stripe_object(method: :post, path: "/v1/setup_intents", params: params, opts: opts)
129
+ end
130
+
131
+ # Returns a list of SetupIntents.
132
+ def self.list(filters = {}, opts = {})
133
+ request_stripe_object(method: :get, path: "/v1/setup_intents", params: filters, opts: opts)
134
+ end
135
+
136
+ # Updates a SetupIntent object.
137
+ def self.update(id, params = {}, opts = {})
138
+ request_stripe_object(
139
+ method: :post,
140
+ path: format("/v1/setup_intents/%<id>s", { id: CGI.escape(id) }),
141
+ params: params,
142
+ opts: opts
143
+ )
144
+ end
122
145
  end
123
146
  end
@@ -10,5 +10,25 @@ module Stripe
10
10
  include Stripe::APIOperations::Save
11
11
 
12
12
  OBJECT_NAME = "shipping_rate"
13
+
14
+ # Creates a new shipping rate object.
15
+ def self.create(params = {}, opts = {})
16
+ request_stripe_object(method: :post, path: "/v1/shipping_rates", params: params, opts: opts)
17
+ end
18
+
19
+ # Returns a list of your shipping rates.
20
+ def self.list(filters = {}, opts = {})
21
+ request_stripe_object(method: :get, path: "/v1/shipping_rates", params: filters, opts: opts)
22
+ end
23
+
24
+ # Updates an existing shipping rate object.
25
+ def self.update(id, params = {}, opts = {})
26
+ request_stripe_object(
27
+ method: :post,
28
+ path: format("/v1/shipping_rates/%<id>s", { id: CGI.escape(id) }),
29
+ params: params,
30
+ opts: opts
31
+ )
32
+ end
13
33
  end
14
34
  end
@@ -15,6 +15,16 @@ module Stripe
15
15
  def self.resource_url
16
16
  "/v1/sigma/scheduled_query_runs"
17
17
  end
18
+
19
+ # Returns a list of scheduled query runs.
20
+ def self.list(filters = {}, opts = {})
21
+ request_stripe_object(
22
+ method: :get,
23
+ path: "/v1/sigma/scheduled_query_runs",
24
+ params: filters,
25
+ opts: opts
26
+ )
27
+ end
18
28
  end
19
29
  end
20
30
  end
@@ -64,5 +64,22 @@ module Stripe
64
64
  end
65
65
  extend Gem::Deprecate
66
66
  deprecate :source_transactions, :"Source.list_source_transactions", 2020, 1
67
+
68
+ # Creates a new source object.
69
+ def self.create(params = {}, opts = {})
70
+ request_stripe_object(method: :post, path: "/v1/sources", params: params, opts: opts)
71
+ end
72
+
73
+ # Updates the specified source by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
74
+ #
75
+ # This request accepts the metadata and owner as arguments. It is also possible to update type specific information for selected payment methods. Please refer to our [payment method guides](https://stripe.com/docs/sources) for more detail.
76
+ def self.update(id, params = {}, opts = {})
77
+ request_stripe_object(
78
+ method: :post,
79
+ path: format("/v1/sources/%<id>s", { id: CGI.escape(id) }),
80
+ params: params,
81
+ opts: opts
82
+ )
83
+ end
67
84
  end
68
85
  end
@@ -83,6 +83,22 @@ module Stripe
83
83
 
84
84
  save_nested_resource :source
85
85
 
86
+ # Creates a new subscription on an existing customer. Each customer can have up to 500 active or scheduled subscriptions.
87
+ #
88
+ # When you create a subscription with collection_method=charge_automatically, the first invoice is finalized as part of the request.
89
+ # The payment_behavior parameter determines the exact behavior of the initial payment.
90
+ #
91
+ # To start subscriptions where the first invoice always begins in a draft status, use [subscription schedules](https://stripe.com/docs/billing/subscriptions/subscription-schedules#managing) instead.
92
+ # Schedules provide the flexibility to model more complex billing configurations that change over time.
93
+ def self.create(params = {}, opts = {})
94
+ request_stripe_object(method: :post, path: "/v1/subscriptions", params: params, opts: opts)
95
+ end
96
+
97
+ # By default, returns a list of subscriptions that have not been canceled. In order to list canceled subscriptions, specify status=canceled.
98
+ def self.list(filters = {}, opts = {})
99
+ request_stripe_object(method: :get, path: "/v1/subscriptions", params: filters, opts: opts)
100
+ end
101
+
86
102
  def self.search(params = {}, opts = {})
87
103
  request_stripe_object(
88
104
  method: :get,
@@ -95,5 +111,35 @@ module Stripe
95
111
  def self.search_auto_paging_each(params = {}, opts = {}, &blk)
96
112
  search(params, opts).auto_paging_each(&blk)
97
113
  end
114
+
115
+ # Updates an existing subscription to match the specified parameters.
116
+ # When changing prices or quantities, we optionally prorate the price we charge next month to make up for any price changes.
117
+ # To preview how the proration is calculated, use the [upcoming invoice](https://stripe.com/docs/api/invoices/upcoming) endpoint.
118
+ #
119
+ # By default, we prorate subscription changes. For example, if a customer signs up on May 1 for a 100 price, they'll be billed 100 immediately. If on May 15 they switch to a 200 price, then on June 1 they'll be billed 250 (200 for a renewal of her subscription, plus a 50 prorating adjustment for half of the previous month's 100 difference). Similarly, a downgrade generates a credit that is applied to the next invoice. We also prorate when you make quantity changes.
120
+ #
121
+ # Switching prices does not normally change the billing date or generate an immediate charge unless:
122
+ #
123
+ #
124
+ # The billing interval is changed (for example, from monthly to yearly).
125
+ # The subscription moves from free to paid, or paid to free.
126
+ # A trial starts or ends.
127
+ #
128
+ #
129
+ # In these cases, we apply a credit for the unused time on the previous price, immediately charge the customer using the new price, and reset the billing date.
130
+ #
131
+ # If you want to charge for an upgrade immediately, pass proration_behavior as always_invoice to create prorations, automatically invoice the customer for those proration adjustments, and attempt to collect payment. If you pass create_prorations, the prorations are created but not automatically invoiced. If you want to bill the customer for the prorations before the subscription's renewal date, you need to manually [invoice the customer](https://stripe.com/docs/api/invoices/create).
132
+ #
133
+ # If you don't want to prorate, set the proration_behavior option to none. With this option, the customer is billed 100 on May 1 and 200 on June 1. Similarly, if you set proration_behavior to none when switching between different billing intervals (for example, from monthly to yearly), we don't generate any credits for the old subscription's unused time. We still reset the billing date and bill immediately for the new subscription.
134
+ #
135
+ # Updating the quantity on a subscription many times in an hour may result in [rate limiting. If you need to bill for a frequently changing quantity, consider integrating <a href="/docs/billing/subscriptions/usage-based">usage-based billing](https://stripe.com/docs/rate-limits) instead.
136
+ def self.update(id, params = {}, opts = {})
137
+ request_stripe_object(
138
+ method: :post,
139
+ path: format("/v1/subscriptions/%<id>s", { id: CGI.escape(id) }),
140
+ params: params,
141
+ opts: opts
142
+ )
143
+ end
98
144
  end
99
145
  end
@@ -17,5 +17,55 @@ module Stripe
17
17
  nested_resource_class_methods :usage_record_summary,
18
18
  operations: %i[list],
19
19
  resource_plural: "usage_record_summaries"
20
+
21
+ # Adds a new item to an existing subscription. No existing items will be changed or replaced.
22
+ def self.create(params = {}, opts = {})
23
+ request_stripe_object(
24
+ method: :post,
25
+ path: "/v1/subscription_items",
26
+ params: params,
27
+ opts: opts
28
+ )
29
+ end
30
+
31
+ # Deletes an item from the subscription. Removing a subscription item from a subscription will not cancel the subscription.
32
+ def self.delete(id, params = {}, opts = {})
33
+ request_stripe_object(
34
+ method: :delete,
35
+ path: format("/v1/subscription_items/%<id>s", { id: CGI.escape(id) }),
36
+ params: params,
37
+ opts: opts
38
+ )
39
+ end
40
+
41
+ # Deletes an item from the subscription. Removing a subscription item from a subscription will not cancel the subscription.
42
+ def delete(params = {}, opts = {})
43
+ request_stripe_object(
44
+ method: :delete,
45
+ path: format("/v1/subscription_items/%<item>s", { item: CGI.escape(self["id"]) }),
46
+ params: params,
47
+ opts: opts
48
+ )
49
+ end
50
+
51
+ # Returns a list of your subscription items for a given subscription.
52
+ def self.list(filters = {}, opts = {})
53
+ request_stripe_object(
54
+ method: :get,
55
+ path: "/v1/subscription_items",
56
+ params: filters,
57
+ opts: opts
58
+ )
59
+ end
60
+
61
+ # Updates the plan or quantity of an item on a current subscription.
62
+ def self.update(id, params = {}, opts = {})
63
+ request_stripe_object(
64
+ method: :post,
65
+ path: format("/v1/subscription_items/%<id>s", { id: CGI.escape(id) }),
66
+ params: params,
67
+ opts: opts
68
+ )
69
+ end
20
70
  end
21
71
  end
@@ -12,61 +12,71 @@ module Stripe
12
12
 
13
13
  OBJECT_NAME = "subscription_schedule"
14
14
 
15
- # Amends an existing subscription schedule.
16
- def amend(params = {}, opts = {})
15
+ # Cancels a subscription schedule and its associated subscription immediately (if the subscription schedule has an active subscription). A subscription schedule can only be canceled if its status is not_started or active.
16
+ def cancel(params = {}, opts = {})
17
17
  request_stripe_object(
18
18
  method: :post,
19
- path: format("/v1/subscription_schedules/%<schedule>s/amend", { schedule: CGI.escape(self["id"]) }),
19
+ path: format("/v1/subscription_schedules/%<schedule>s/cancel", { schedule: CGI.escape(self["id"]) }),
20
20
  params: params,
21
21
  opts: opts
22
22
  )
23
23
  end
24
24
 
25
- # Cancels a subscription schedule and its associated subscription immediately (if the subscription schedule has an active subscription). A subscription schedule can only be canceled if its status is not_started or active.
26
- def cancel(params = {}, opts = {})
25
+ # Releases the subscription schedule immediately, which will stop scheduling of its phases, but leave any existing subscription in place. A schedule can only be released if its status is not_started or active. If the subscription schedule is currently associated with a subscription, releasing it will remove its subscription property and set the subscription's ID to the released_subscription property.
26
+ def release(params = {}, opts = {})
27
27
  request_stripe_object(
28
28
  method: :post,
29
- path: format("/v1/subscription_schedules/%<schedule>s/cancel", { schedule: CGI.escape(self["id"]) }),
29
+ path: format("/v1/subscription_schedules/%<schedule>s/release", { schedule: CGI.escape(self["id"]) }),
30
30
  params: params,
31
31
  opts: opts
32
32
  )
33
33
  end
34
34
 
35
- # Releases the subscription schedule immediately, which will stop scheduling of its phases, but leave any existing subscription in place. A schedule can only be released if its status is not_started or active. If the subscription schedule is currently associated with a subscription, releasing it will remove its subscription property and set the subscription's ID to the released_subscription property.
36
- def release(params = {}, opts = {})
35
+ # Cancels a subscription schedule and its associated subscription immediately (if the subscription schedule has an active subscription). A subscription schedule can only be canceled if its status is not_started or active.
36
+ def self.cancel(schedule, params = {}, opts = {})
37
37
  request_stripe_object(
38
38
  method: :post,
39
- path: format("/v1/subscription_schedules/%<schedule>s/release", { schedule: CGI.escape(self["id"]) }),
39
+ path: format("/v1/subscription_schedules/%<schedule>s/cancel", { schedule: CGI.escape(schedule) }),
40
40
  params: params,
41
41
  opts: opts
42
42
  )
43
43
  end
44
44
 
45
- # Amends an existing subscription schedule.
46
- def self.amend(schedule, params = {}, opts = {})
45
+ # Releases the subscription schedule immediately, which will stop scheduling of its phases, but leave any existing subscription in place. A schedule can only be released if its status is not_started or active. If the subscription schedule is currently associated with a subscription, releasing it will remove its subscription property and set the subscription's ID to the released_subscription property.
46
+ def self.release(schedule, params = {}, opts = {})
47
47
  request_stripe_object(
48
48
  method: :post,
49
- path: format("/v1/subscription_schedules/%<schedule>s/amend", { schedule: CGI.escape(schedule) }),
49
+ path: format("/v1/subscription_schedules/%<schedule>s/release", { schedule: CGI.escape(schedule) }),
50
50
  params: params,
51
51
  opts: opts
52
52
  )
53
53
  end
54
54
 
55
- # Cancels a subscription schedule and its associated subscription immediately (if the subscription schedule has an active subscription). A subscription schedule can only be canceled if its status is not_started or active.
56
- def self.cancel(schedule, params = {}, opts = {})
55
+ # Creates a new subscription schedule object. Each customer can have up to 500 active or scheduled subscriptions.
56
+ def self.create(params = {}, opts = {})
57
57
  request_stripe_object(
58
58
  method: :post,
59
- path: format("/v1/subscription_schedules/%<schedule>s/cancel", { schedule: CGI.escape(schedule) }),
59
+ path: "/v1/subscription_schedules",
60
60
  params: params,
61
61
  opts: opts
62
62
  )
63
63
  end
64
64
 
65
- # Releases the subscription schedule immediately, which will stop scheduling of its phases, but leave any existing subscription in place. A schedule can only be released if its status is not_started or active. If the subscription schedule is currently associated with a subscription, releasing it will remove its subscription property and set the subscription's ID to the released_subscription property.
66
- def self.release(schedule, params = {}, opts = {})
65
+ # Retrieves the list of your subscription schedules.
66
+ def self.list(filters = {}, opts = {})
67
+ request_stripe_object(
68
+ method: :get,
69
+ path: "/v1/subscription_schedules",
70
+ params: filters,
71
+ opts: opts
72
+ )
73
+ end
74
+
75
+ # Updates an existing subscription schedule.
76
+ def self.update(id, params = {}, opts = {})
67
77
  request_stripe_object(
68
78
  method: :post,
69
- path: format("/v1/subscription_schedules/%<schedule>s/release", { schedule: CGI.escape(schedule) }),
79
+ path: format("/v1/subscription_schedules/%<id>s", { id: CGI.escape(id) }),
70
80
  params: params,
71
81
  opts: opts
72
82
  )
@@ -30,6 +30,16 @@ module Stripe
30
30
  opts: opts
31
31
  )
32
32
  end
33
+
34
+ # Calculates tax based on input and returns a Tax Calculation object.
35
+ def self.create(params = {}, opts = {})
36
+ request_stripe_object(
37
+ method: :post,
38
+ path: "/v1/tax/calculations",
39
+ params: params,
40
+ opts: opts
41
+ )
42
+ end
33
43
  end
34
44
  end
35
45
  end
@@ -14,6 +14,38 @@ module Stripe
14
14
  include Stripe::APIOperations::Save
15
15
 
16
16
  OBJECT_NAME = "tax.registration"
17
+
18
+ # Creates a new Tax Registration object.
19
+ def self.create(params = {}, opts = {})
20
+ request_stripe_object(
21
+ method: :post,
22
+ path: "/v1/tax/registrations",
23
+ params: params,
24
+ opts: opts
25
+ )
26
+ end
27
+
28
+ # Returns a list of Tax Registration objects.
29
+ def self.list(filters = {}, opts = {})
30
+ request_stripe_object(
31
+ method: :get,
32
+ path: "/v1/tax/registrations",
33
+ params: filters,
34
+ opts: opts
35
+ )
36
+ end
37
+
38
+ # Updates an existing Tax Registration object.
39
+ #
40
+ # A registration cannot be deleted after it has been created. If you wish to end a registration you may do so by setting expires_at.
41
+ def self.update(id, params = {}, opts = {})
42
+ request_stripe_object(
43
+ method: :post,
44
+ path: format("/v1/tax/registrations/%<id>s", { id: CGI.escape(id) }),
45
+ params: params,
46
+ opts: opts
47
+ )
48
+ end
17
49
  end
18
50
  end
19
51
  end
@@ -7,5 +7,10 @@ module Stripe
7
7
  extend Stripe::APIOperations::List
8
8
 
9
9
  OBJECT_NAME = "tax_code"
10
+
11
+ # A list of [all tax codes available](https://stripe.com/docs/tax/tax-categories) to add to Products in order to allow specific tax calculations.
12
+ def self.list(filters = {}, opts = {})
13
+ request_stripe_object(method: :get, path: "/v1/tax_codes", params: filters, opts: opts)
14
+ end
10
15
  end
11
16
  end
@@ -26,5 +26,25 @@ module Stripe
26
26
  "tax ID using `Customer.retrieve_tax_id('customer_id', " \
27
27
  "'tax_id_id')`"
28
28
  end
29
+
30
+ # Deletes an existing tax_id object.
31
+ def self.delete(id, params = {}, opts = {})
32
+ request_stripe_object(
33
+ method: :delete,
34
+ path: format("/v1/customers/%<customer>s/tax_ids/%<id>s", { customer: CGI.escape(customer), id: CGI.escape(id) }),
35
+ params: params,
36
+ opts: opts
37
+ )
38
+ end
39
+
40
+ # Deletes an existing tax_id object.
41
+ def delete(params = {}, opts = {})
42
+ request_stripe_object(
43
+ method: :delete,
44
+ path: format("/v1/customers/%<customer>s/tax_ids/%<id>s", { customer: CGI.escape(self["id"]), id: CGI.escape(id) }),
45
+ params: params,
46
+ opts: opts
47
+ )
48
+ end
29
49
  end
30
50
  end
@@ -11,5 +11,25 @@ module Stripe
11
11
  include Stripe::APIOperations::Save
12
12
 
13
13
  OBJECT_NAME = "tax_rate"
14
+
15
+ # Creates a new tax rate.
16
+ def self.create(params = {}, opts = {})
17
+ request_stripe_object(method: :post, path: "/v1/tax_rates", params: params, opts: opts)
18
+ end
19
+
20
+ # Returns a list of your tax rates. Tax rates are returned sorted by creation date, with the most recently created tax rates appearing first.
21
+ def self.list(filters = {}, opts = {})
22
+ request_stripe_object(method: :get, path: "/v1/tax_rates", params: filters, opts: opts)
23
+ end
24
+
25
+ # Updates an existing tax rate.
26
+ def self.update(id, params = {}, opts = {})
27
+ request_stripe_object(
28
+ method: :post,
29
+ path: format("/v1/tax_rates/%<id>s", { id: CGI.escape(id) }),
30
+ params: params,
31
+ opts: opts
32
+ )
33
+ end
14
34
  end
15
35
  end
@@ -11,6 +11,56 @@ module Stripe
11
11
  include Stripe::APIOperations::Save
12
12
 
13
13
  OBJECT_NAME = "terminal.configuration"
14
+
15
+ # Creates a new Configuration object.
16
+ def self.create(params = {}, opts = {})
17
+ request_stripe_object(
18
+ method: :post,
19
+ path: "/v1/terminal/configurations",
20
+ params: params,
21
+ opts: opts
22
+ )
23
+ end
24
+
25
+ # Deletes a Configuration object.
26
+ def self.delete(id, params = {}, opts = {})
27
+ request_stripe_object(
28
+ method: :delete,
29
+ path: format("/v1/terminal/configurations/%<id>s", { id: CGI.escape(id) }),
30
+ params: params,
31
+ opts: opts
32
+ )
33
+ end
34
+
35
+ # Deletes a Configuration object.
36
+ def delete(params = {}, opts = {})
37
+ request_stripe_object(
38
+ method: :delete,
39
+ path: format("/v1/terminal/configurations/%<configuration>s", { configuration: CGI.escape(self["id"]) }),
40
+ params: params,
41
+ opts: opts
42
+ )
43
+ end
44
+
45
+ # Returns a list of Configuration objects.
46
+ def self.list(filters = {}, opts = {})
47
+ request_stripe_object(
48
+ method: :get,
49
+ path: "/v1/terminal/configurations",
50
+ params: filters,
51
+ opts: opts
52
+ )
53
+ end
54
+
55
+ # Updates a new Configuration object.
56
+ def self.update(id, params = {}, opts = {})
57
+ request_stripe_object(
58
+ method: :post,
59
+ path: format("/v1/terminal/configurations/%<id>s", { id: CGI.escape(id) }),
60
+ params: params,
61
+ opts: opts
62
+ )
63
+ end
14
64
  end
15
65
  end
16
66
  end
@@ -10,6 +10,16 @@ module Stripe
10
10
  extend Stripe::APIOperations::Create
11
11
 
12
12
  OBJECT_NAME = "terminal.connection_token"
13
+
14
+ # To connect to a reader the Stripe Terminal SDK needs to retrieve a short-lived connection token from Stripe, proxied through your server. On your backend, add an endpoint that creates and returns a connection token.
15
+ def self.create(params = {}, opts = {})
16
+ request_stripe_object(
17
+ method: :post,
18
+ path: "/v1/terminal/connection_tokens",
19
+ params: params,
20
+ opts: opts
21
+ )
22
+ end
13
23
  end
14
24
  end
15
25
  end
@@ -13,6 +13,57 @@ module Stripe
13
13
  include Stripe::APIOperations::Save
14
14
 
15
15
  OBJECT_NAME = "terminal.location"
16
+
17
+ # Creates a new Location object.
18
+ # For further details, including which address fields are required in each country, see the [Manage locations](https://stripe.com/docs/terminal/fleet/locations) guide.
19
+ def self.create(params = {}, opts = {})
20
+ request_stripe_object(
21
+ method: :post,
22
+ path: "/v1/terminal/locations",
23
+ params: params,
24
+ opts: opts
25
+ )
26
+ end
27
+
28
+ # Deletes a Location object.
29
+ def self.delete(id, params = {}, opts = {})
30
+ request_stripe_object(
31
+ method: :delete,
32
+ path: format("/v1/terminal/locations/%<id>s", { id: CGI.escape(id) }),
33
+ params: params,
34
+ opts: opts
35
+ )
36
+ end
37
+
38
+ # Deletes a Location object.
39
+ def delete(params = {}, opts = {})
40
+ request_stripe_object(
41
+ method: :delete,
42
+ path: format("/v1/terminal/locations/%<location>s", { location: CGI.escape(self["id"]) }),
43
+ params: params,
44
+ opts: opts
45
+ )
46
+ end
47
+
48
+ # Returns a list of Location objects.
49
+ def self.list(filters = {}, opts = {})
50
+ request_stripe_object(
51
+ method: :get,
52
+ path: "/v1/terminal/locations",
53
+ params: filters,
54
+ opts: opts
55
+ )
56
+ end
57
+
58
+ # Updates a Location object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
59
+ def self.update(id, params = {}, opts = {})
60
+ request_stripe_object(
61
+ method: :post,
62
+ path: format("/v1/terminal/locations/%<id>s", { id: CGI.escape(id) }),
63
+ params: params,
64
+ opts: opts
65
+ )
66
+ end
16
67
  end
17
68
  end
18
69
  end