stripe 2.0.3 → 5.55.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (214) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +1036 -0
  3. data/CODE_OF_CONDUCT.md +77 -0
  4. data/Gemfile +24 -23
  5. data/History.txt +1 -593
  6. data/Makefile +7 -0
  7. data/README.md +252 -53
  8. data/Rakefile +18 -24
  9. data/VERSION +1 -1
  10. data/bin/stripe-console +5 -3
  11. data/lib/stripe/api_operations/create.rb +4 -2
  12. data/lib/stripe/api_operations/delete.rb +31 -3
  13. data/lib/stripe/api_operations/list.rb +4 -13
  14. data/lib/stripe/api_operations/nested_resource.rb +73 -0
  15. data/lib/stripe/api_operations/request.rb +92 -10
  16. data/lib/stripe/api_operations/save.rb +25 -13
  17. data/lib/stripe/api_operations/search.rb +19 -0
  18. data/lib/stripe/api_resource.rb +55 -11
  19. data/lib/stripe/api_resource_test_helpers.rb +47 -0
  20. data/lib/stripe/connection_manager.rb +200 -0
  21. data/lib/stripe/error_object.rb +93 -0
  22. data/lib/stripe/errors.rb +98 -13
  23. data/lib/stripe/instrumentation.rb +84 -0
  24. data/lib/stripe/list_object.rb +55 -21
  25. data/lib/stripe/multipart_encoder.rb +131 -0
  26. data/lib/stripe/oauth.rb +65 -0
  27. data/lib/stripe/object_types.rb +119 -0
  28. data/lib/stripe/{account.rb → resources/account.rb} +75 -38
  29. data/lib/stripe/resources/account_link.rb +10 -0
  30. data/lib/stripe/resources/alipay_account.rb +34 -0
  31. data/lib/stripe/{apple_pay_domain.rb → resources/apple_pay_domain.rb} +6 -1
  32. data/lib/stripe/resources/application_fee.rb +14 -0
  33. data/lib/stripe/resources/application_fee_refund.rb +31 -0
  34. data/lib/stripe/resources/balance.rb +8 -0
  35. data/lib/stripe/resources/balance_transaction.rb +10 -0
  36. data/lib/stripe/resources/bank_account.rb +43 -0
  37. data/lib/stripe/resources/billing_portal/configuration.rb +14 -0
  38. data/lib/stripe/resources/billing_portal/session.rb +12 -0
  39. data/lib/stripe/{bitcoin_receiver.rb → resources/bitcoin_receiver.rb} +8 -4
  40. data/lib/stripe/resources/bitcoin_transaction.rb +16 -0
  41. data/lib/stripe/resources/capability.rb +34 -0
  42. data/lib/stripe/resources/card.rb +38 -0
  43. data/lib/stripe/resources/cash_balance.rb +22 -0
  44. data/lib/stripe/resources/charge.rb +32 -0
  45. data/lib/stripe/resources/checkout/session.rb +27 -0
  46. data/lib/stripe/resources/country_spec.rb +10 -0
  47. data/lib/stripe/{coupon.rb → resources/coupon.rb} +6 -1
  48. data/lib/stripe/resources/credit_note.rb +33 -0
  49. data/lib/stripe/resources/credit_note_line_item.rb +8 -0
  50. data/lib/stripe/resources/customer.rb +74 -0
  51. data/lib/stripe/resources/customer_balance_transaction.rb +31 -0
  52. data/lib/stripe/resources/discount.rb +8 -0
  53. data/lib/stripe/resources/dispute.rb +22 -0
  54. data/lib/stripe/resources/ephemeral_key.rb +20 -0
  55. data/lib/stripe/resources/event.rb +10 -0
  56. data/lib/stripe/resources/exchange_rate.rb +10 -0
  57. data/lib/stripe/resources/file.rb +36 -0
  58. data/lib/stripe/resources/file_link.rb +12 -0
  59. data/lib/stripe/resources/financial_connections/account.rb +31 -0
  60. data/lib/stripe/resources/financial_connections/account_owner.rb +10 -0
  61. data/lib/stripe/resources/financial_connections/account_ownership.rb +10 -0
  62. data/lib/stripe/resources/financial_connections/session.rb +12 -0
  63. data/lib/stripe/resources/funding_instructions.rb +16 -0
  64. data/lib/stripe/resources/identity/verification_report.rb +12 -0
  65. data/lib/stripe/resources/identity/verification_session.rb +35 -0
  66. data/lib/stripe/resources/invoice.rb +83 -0
  67. data/lib/stripe/{invoice_item.rb → resources/invoice_item.rb} +6 -1
  68. data/lib/stripe/resources/invoice_line_item.rb +8 -0
  69. data/lib/stripe/resources/issuing/authorization.rb +34 -0
  70. data/lib/stripe/resources/issuing/card.rb +25 -0
  71. data/lib/stripe/resources/issuing/card_details.rb +10 -0
  72. data/lib/stripe/resources/issuing/cardholder.rb +14 -0
  73. data/lib/stripe/resources/issuing/dispute.rb +25 -0
  74. data/lib/stripe/resources/issuing/transaction.rb +13 -0
  75. data/lib/stripe/resources/line_item.rb +8 -0
  76. data/lib/stripe/resources/login_link.rb +15 -0
  77. data/lib/stripe/resources/mandate.rb +8 -0
  78. data/lib/stripe/resources/order.rb +33 -0
  79. data/lib/stripe/resources/order_return.rb +10 -0
  80. data/lib/stripe/resources/payment_intent.rb +82 -0
  81. data/lib/stripe/resources/payment_link.rb +23 -0
  82. data/lib/stripe/resources/payment_method.rb +33 -0
  83. data/lib/stripe/resources/payout.rb +33 -0
  84. data/lib/stripe/resources/person.rb +32 -0
  85. data/lib/stripe/{plan.rb → resources/plan.rb} +5 -0
  86. data/lib/stripe/resources/price.rb +21 -0
  87. data/lib/stripe/resources/product.rb +22 -0
  88. data/lib/stripe/resources/promotion_code.rb +12 -0
  89. data/lib/stripe/resources/quote.rb +105 -0
  90. data/lib/stripe/resources/radar/early_fraud_warning.rb +12 -0
  91. data/lib/stripe/resources/radar/value_list.rb +15 -0
  92. data/lib/stripe/resources/radar/value_list_item.rb +14 -0
  93. data/lib/stripe/resources/recipient.rb +14 -0
  94. data/lib/stripe/resources/recipient_transfer.rb +7 -0
  95. data/lib/stripe/resources/refund.rb +42 -0
  96. data/lib/stripe/resources/reporting/report_run.rb +13 -0
  97. data/lib/stripe/resources/reporting/report_type.rb +13 -0
  98. data/lib/stripe/resources/reversal.rb +30 -0
  99. data/lib/stripe/resources/review.rb +21 -0
  100. data/lib/stripe/resources/setup_attempt.rb +10 -0
  101. data/lib/stripe/resources/setup_intent.rb +43 -0
  102. data/lib/stripe/resources/shipping_rate.rb +12 -0
  103. data/lib/stripe/resources/sigma/scheduled_query_run.rb +16 -0
  104. data/lib/stripe/{sku.rb → resources/sku.rb} +7 -2
  105. data/lib/stripe/resources/source.rb +47 -0
  106. data/lib/stripe/resources/source_transaction.rb +8 -0
  107. data/lib/stripe/resources/subscription.rb +35 -0
  108. data/lib/stripe/resources/subscription_item.rb +26 -0
  109. data/lib/stripe/resources/subscription_schedule.rb +33 -0
  110. data/lib/stripe/resources/tax_code.rb +10 -0
  111. data/lib/stripe/resources/tax_id.rb +27 -0
  112. data/lib/stripe/{product.rb → resources/tax_rate.rb} +7 -3
  113. data/lib/stripe/resources/terminal/configuration.rb +15 -0
  114. data/lib/stripe/resources/terminal/connection_token.rb +12 -0
  115. data/lib/stripe/resources/terminal/location.rb +15 -0
  116. data/lib/stripe/resources/terminal/reader.rb +75 -0
  117. data/lib/stripe/resources/test_helpers/test_clock.rb +25 -0
  118. data/lib/stripe/{three_d_secure.rb → resources/three_d_secure.rb} +5 -0
  119. data/lib/stripe/resources/token.rb +10 -0
  120. data/lib/stripe/resources/topup.rb +23 -0
  121. data/lib/stripe/resources/transfer.rb +27 -0
  122. data/lib/stripe/resources/usage_record.rb +8 -0
  123. data/lib/stripe/resources/usage_record_summary.rb +8 -0
  124. data/lib/stripe/{recipient.rb → resources/webhook_endpoint.rb} +6 -5
  125. data/lib/stripe/resources.rb +100 -0
  126. data/lib/stripe/search_result_object.rb +86 -0
  127. data/lib/stripe/singleton_api_resource.rb +10 -4
  128. data/lib/stripe/stripe_client.rb +886 -223
  129. data/lib/stripe/stripe_configuration.rb +194 -0
  130. data/lib/stripe/stripe_object.rb +301 -132
  131. data/lib/stripe/stripe_response.rb +89 -27
  132. data/lib/stripe/util.rb +272 -122
  133. data/lib/stripe/version.rb +3 -1
  134. data/lib/stripe/webhook.rb +121 -0
  135. data/lib/stripe.rb +94 -116
  136. data/stripe.gemspec +35 -16
  137. metadata +127 -156
  138. data/.gitattributes +0 -4
  139. data/.github/ISSUE_TEMPLATE.md +0 -5
  140. data/.gitignore +0 -5
  141. data/.travis.yml +0 -15
  142. data/lib/stripe/alipay_account.rb +0 -20
  143. data/lib/stripe/application_fee.rb +0 -20
  144. data/lib/stripe/application_fee_refund.rb +0 -18
  145. data/lib/stripe/balance.rb +0 -4
  146. data/lib/stripe/balance_transaction.rb +0 -9
  147. data/lib/stripe/bank_account.rb +0 -28
  148. data/lib/stripe/bitcoin_transaction.rb +0 -9
  149. data/lib/stripe/card.rb +0 -25
  150. data/lib/stripe/charge.rb +0 -80
  151. data/lib/stripe/country_spec.rb +0 -9
  152. data/lib/stripe/customer.rb +0 -77
  153. data/lib/stripe/dispute.rb +0 -15
  154. data/lib/stripe/event.rb +0 -5
  155. data/lib/stripe/file_upload.rb +0 -31
  156. data/lib/stripe/invoice.rb +0 -27
  157. data/lib/stripe/order.rb +0 -27
  158. data/lib/stripe/order_return.rb +0 -9
  159. data/lib/stripe/refund.rb +0 -7
  160. data/lib/stripe/reversal.rb +0 -18
  161. data/lib/stripe/source.rb +0 -11
  162. data/lib/stripe/subscription.rb +0 -31
  163. data/lib/stripe/subscription_item.rb +0 -12
  164. data/lib/stripe/token.rb +0 -5
  165. data/lib/stripe/transfer.rb +0 -16
  166. data/openapi/fixtures.json +0 -1383
  167. data/openapi/fixtures.yaml +0 -1130
  168. data/openapi/spec.json +0 -19749
  169. data/openapi/spec.yaml +0 -15359
  170. data/test/api_fixtures.rb +0 -29
  171. data/test/api_stub_helpers.rb +0 -125
  172. data/test/stripe/account_test.rb +0 -204
  173. data/test/stripe/alipay_account_test.rb +0 -19
  174. data/test/stripe/api_operations_test.rb +0 -31
  175. data/test/stripe/api_resource_test.rb +0 -496
  176. data/test/stripe/apple_pay_domain_test.rb +0 -33
  177. data/test/stripe/application_fee_refund_test.rb +0 -38
  178. data/test/stripe/application_fee_test.rb +0 -14
  179. data/test/stripe/balance_test.rb +0 -11
  180. data/test/stripe/bank_account_test.rb +0 -41
  181. data/test/stripe/bitcoin_receiver_test.rb +0 -70
  182. data/test/stripe/bitcoin_transaction_test.rb +0 -21
  183. data/test/stripe/charge_test.rb +0 -59
  184. data/test/stripe/country_spec_test.rb +0 -20
  185. data/test/stripe/coupon_test.rb +0 -44
  186. data/test/stripe/customer_card_test.rb +0 -42
  187. data/test/stripe/customer_test.rb +0 -116
  188. data/test/stripe/dispute_test.rb +0 -42
  189. data/test/stripe/errors_test.rb +0 -18
  190. data/test/stripe/file_upload_test.rb +0 -66
  191. data/test/stripe/invoice_item_test.rb +0 -55
  192. data/test/stripe/invoice_test.rb +0 -66
  193. data/test/stripe/list_object_test.rb +0 -170
  194. data/test/stripe/order_return_test.rb +0 -21
  195. data/test/stripe/order_test.rb +0 -59
  196. data/test/stripe/plan_test.rb +0 -52
  197. data/test/stripe/product_test.rb +0 -47
  198. data/test/stripe/recipient_card_test.rb +0 -40
  199. data/test/stripe/recipient_test.rb +0 -50
  200. data/test/stripe/refund_test.rb +0 -39
  201. data/test/stripe/reversal_test.rb +0 -43
  202. data/test/stripe/sku_test.rb +0 -50
  203. data/test/stripe/source_test.rb +0 -43
  204. data/test/stripe/stripe_client_test.rb +0 -440
  205. data/test/stripe/stripe_object_test.rb +0 -361
  206. data/test/stripe/stripe_response_test.rb +0 -46
  207. data/test/stripe/subscription_item_test.rb +0 -54
  208. data/test/stripe/subscription_test.rb +0 -60
  209. data/test/stripe/three_d_secure_test.rb +0 -23
  210. data/test/stripe/transfer_test.rb +0 -50
  211. data/test/stripe/util_test.rb +0 -149
  212. data/test/stripe_test.rb +0 -41
  213. data/test/test_data.rb +0 -59
  214. data/test/test_helper.rb +0 -41
data/CHANGELOG.md ADDED
@@ -0,0 +1,1036 @@
1
+ # Changelog
2
+
3
+ ## 5.55.0 - 2022-05-05
4
+ * [#1055](https://github.com/stripe/stripe-ruby/pull/1055) API Updates
5
+ * Add support for new resources `FinancialConnections.AccountOwner`, `FinancialConnections.AccountOwnership`, `FinancialConnections.Account`, and `FinancialConnections.Session`
6
+
7
+
8
+ ## 5.54.0 - 2022-05-03
9
+ * [#1053](https://github.com/stripe/stripe-ruby/pull/1053) API Updates
10
+ * Add support for new resource `CashBalance`
11
+
12
+ ## 5.53.0 - 2022-04-21
13
+ * [#1050](https://github.com/stripe/stripe-ruby/pull/1050) API Updates
14
+ * Add support for `expire` test helper method on resource `Refund`
15
+
16
+ ## 5.52.0 - 2022-04-18
17
+ * [#1046](https://github.com/stripe/stripe-ruby/pull/1046) [#1047](https://github.com/stripe/stripe-ruby/pull/1047) API Updates
18
+ * Add support for new resources `FundingInstructions` and `Terminal.Configuration`
19
+
20
+ ## 5.51.0 - 2022-04-15
21
+ * [#1046](https://github.com/stripe/stripe-ruby/pull/1046) This release was incomplete and was yanked from RubyGems immediately after it was published.
22
+
23
+ ## 5.50.0 - 2022-04-13
24
+ * [#1045](https://github.com/stripe/stripe-ruby/pull/1045) API Updates
25
+ * Add support for `increment_authorization` method on resource `PaymentIntent`
26
+
27
+ ## 5.49.0 - 2022-04-08
28
+ * [#1043](https://github.com/stripe/stripe-ruby/pull/1043) API Updates
29
+ * Add support for `apply_customer_balance` method on resource `PaymentIntent`
30
+
31
+ ## 5.48.0 - 2022-03-30
32
+ * [#1041](https://github.com/stripe/stripe-ruby/pull/1041) API Updates
33
+ * Add support for `cancel_action`, `process_payment_intent`, `process_setup_intent`, and `set_reader_display` methods on resource `Terminal.Reader`
34
+
35
+ ## 5.47.0 - 2022-03-29
36
+ * [#1040](https://github.com/stripe/stripe-ruby/pull/1040) API Updates
37
+ * Add support for Search API
38
+ * Add support for `search` method on resources `Charge`, `Customer`, `Invoice`, `PaymentIntent`, `Price`, `Product`, and `Subscription`
39
+
40
+ * [#1034](https://github.com/stripe/stripe-ruby/pull/1034) Add supporting classes for test helper generation
41
+
42
+ ## 5.46.0 - 2022-03-23
43
+ * [#1039](https://github.com/stripe/stripe-ruby/pull/1039) API Updates
44
+ * Add support for `cancel` method on resource `Refund`
45
+ * [#992](https://github.com/stripe/stripe-ruby/pull/992) Add support for Search API
46
+
47
+ ## 5.45.0 - 2022-03-01
48
+ * [#1035](https://github.com/stripe/stripe-ruby/pull/1035) API Updates
49
+ * Add support for new resource `TestHelpers.TestClock`
50
+
51
+ ## 5.44.0 - 2022-02-16
52
+ * [#1032](https://github.com/stripe/stripe-ruby/pull/1032) API Updates
53
+ * Add support for `verify_microdeposits` method on resources `PaymentIntent` and `SetupIntent`
54
+
55
+ ## 5.43.0 - 2022-01-20
56
+ * [#1031](https://github.com/stripe/stripe-ruby/pull/1031) API Updates
57
+ * Add support for new resource `PaymentLink`
58
+
59
+ ## 5.42.0 - 2021-12-13
60
+ * [#1022](https://github.com/stripe/stripe-ruby/pull/1022) Add connection manager logging and include object IDs in logging.
61
+
62
+ ## 5.41.0 - 2021-11-16
63
+ * [#1017](https://github.com/stripe/stripe-ruby/pull/1017) API Updates
64
+ * Add support for new resource `ShippingRate`
65
+
66
+ ## 5.40.0 - 2021-11-11
67
+ * [#1015](https://github.com/stripe/stripe-ruby/pull/1015) API Updates
68
+ * Add support for `expire` method on resource `Checkout.Session`
69
+ * [#1013](https://github.com/stripe/stripe-ruby/pull/1013) Add tests for child resources.
70
+ * [#1012](https://github.com/stripe/stripe-ruby/pull/1012) Add tests for namespaced resources.
71
+ * [#1011](https://github.com/stripe/stripe-ruby/pull/1011) codegen: 3 more files
72
+
73
+ ## 5.39.0 - 2021-10-11
74
+ * [#1010](https://github.com/stripe/stripe-ruby/pull/1010) API Updates
75
+ * Add support for `list_payment_methods` method on resource `Customer`
76
+
77
+ ## 5.38.0 - 2021-08-10
78
+ * [#993](https://github.com/stripe/stripe-ruby/pull/993) Add `request_id` to RequestEndEvent
79
+ * [#991](https://github.com/stripe/stripe-ruby/pull/991) Codegen more files
80
+ * [#989](https://github.com/stripe/stripe-ruby/pull/989) Remove unused API error types from docs.
81
+
82
+ ## 5.37.0 - 2021-07-14
83
+ * [#988](https://github.com/stripe/stripe-ruby/pull/988) API Updates
84
+ * Add support for `list_computed_upfront_line_items` method on resource `Quote`
85
+
86
+ ## 5.36.0 - 2021-07-09
87
+ * [#987](https://github.com/stripe/stripe-ruby/pull/987) Add support for `Quote` API
88
+
89
+ ## 5.35.0 - 2021-06-30
90
+ * [#985](https://github.com/stripe/stripe-ruby/pull/985) Update normalize_opts to use dup instead of clone.
91
+ * [#982](https://github.com/stripe/stripe-ruby/pull/982) Deprecate travis
92
+ * [#983](https://github.com/stripe/stripe-ruby/pull/983) Add support for making a request and receiving the response as a stream.
93
+
94
+ ## 5.34.0 - 2021-06-04
95
+ * [#981](https://github.com/stripe/stripe-ruby/pull/981) API Updates
96
+ * Add support for `TaxCode` API.
97
+
98
+ ## 5.33.0 - 2021-05-19
99
+ * [#979](https://github.com/stripe/stripe-ruby/pull/979) Add support for the Identify VerificationSession and VerificationReport APIs
100
+
101
+ ## 5.32.1 - 2021-04-05
102
+ * Correct use of regexp `match` in gemspec for old versions of Ruby
103
+
104
+ ## 5.32.0 - 2021-04-05
105
+ * [#973](https://github.com/stripe/stripe-ruby/pull/973) Reduce packed gem size
106
+
107
+ ## 5.31.0 - 2021-04-02
108
+ * [#968](https://github.com/stripe/stripe-ruby/pull/968) Allow StripeClient to be configured per instance
109
+ * [#971](https://github.com/stripe/stripe-ruby/pull/971) On config change, only clear connection managers for changed config
110
+ * [#972](https://github.com/stripe/stripe-ruby/pull/972) Rename `Stripe.configuration` to `Stripe.config`
111
+ * [#970](https://github.com/stripe/stripe-ruby/pull/970) Reserve some critical field names when adding `StripeObject` accessors
112
+ * [#967](https://github.com/stripe/stripe-ruby/pull/967) CI: github actions
113
+
114
+ ## 5.30.0 - 2021-02-22
115
+ * [#965](https://github.com/stripe/stripe-ruby/pull/965) Add support for the Billing Portal Configuration API
116
+
117
+ ## 5.29.1 - 2021-02-09
118
+ * [#964](https://github.com/stripe/stripe-ruby/pull/964) Fix return value of `Customer#delete_discount`
119
+
120
+ ## 5.29.0 - 2021-01-05
121
+ * [#952](https://github.com/stripe/stripe-ruby/pull/952) Allow client_id configuration on instance config
122
+
123
+ ## 5.28.0 - 2020-10-14
124
+ * [#950](https://github.com/stripe/stripe-ruby/pull/950) Add configuration option for `write_timeout` for connections on Ruby 2.6+
125
+
126
+ ## 5.27.0 - 2020-10-14
127
+ * [#951](https://github.com/stripe/stripe-ruby/pull/951) Add support for the Payout Reverse API
128
+
129
+ ## 5.26.0 - 2020-09-29
130
+ * [#949](https://github.com/stripe/stripe-ruby/pull/949) Add support for the `SetupAttempt` resource and List API
131
+
132
+ ## 5.25.0 - 2020-09-02
133
+ * [#944](https://github.com/stripe/stripe-ruby/pull/944) Add support for the Issuing Dispute Submit API
134
+
135
+ ## 5.24.0 - 2020-08-26
136
+ * [#939](https://github.com/stripe/stripe-ruby/pull/939) Extract configurations into separate object
137
+ * [#940](https://github.com/stripe/stripe-ruby/pull/940) Fix typo in documentation of `stripe_object.rb`
138
+
139
+ ## 5.23.1 - 2020-08-05
140
+ * [#936](https://github.com/stripe/stripe-ruby/pull/936) Rename API resource's `request` method
141
+
142
+ ## 5.23.0 - 2020-08-05
143
+ * [#937](https://github.com/stripe/stripe-ruby/pull/937) Add support for the `PromotionCode` resource and APIs
144
+
145
+ ## 5.22.0 - 2020-05-11
146
+ * [#918](https://github.com/stripe/stripe-ruby/pull/918) Add support for the `LineItem` resource and APIs
147
+
148
+ ## 5.21.0 - 2020-04-29
149
+ * [#917](https://github.com/stripe/stripe-ruby/pull/917) Add support for the `Price` resource and APIs
150
+
151
+ ## 5.20.0 - 2020-04-27
152
+ * [#916](https://github.com/stripe/stripe-ruby/pull/916) Add new `.generate_header` method for webhooks
153
+
154
+ ## 5.19.0 - 2020-04-24
155
+ * [#915](https://github.com/stripe/stripe-ruby/pull/915) Expose `Stripe::Webhook.compute_signature` publicly
156
+
157
+ ## 5.18.0 - 2020-04-22
158
+ * [#911](https://github.com/stripe/stripe-ruby/pull/911) Add support for `BillingPortal` namespace and `Session` resource and APIs
159
+
160
+ ## 5.17.0 - 2020-02-26
161
+ * [#907](https://github.com/stripe/stripe-ruby/pull/907) Add `StripeError#idempotent_replayed?`
162
+
163
+ ## 5.16.0 - 2020-02-26
164
+ * [#906](https://github.com/stripe/stripe-ruby/pull/906) Add support for listing Checkout sessions
165
+ * [#903](https://github.com/stripe/stripe-ruby/pull/903) Upgrade to Rubocop 0.80
166
+
167
+ ## 5.15.0 - 2020-02-10
168
+ * [#902](https://github.com/stripe/stripe-ruby/pull/902) Add `request_begin` instrumentation callback
169
+
170
+ ## 5.14.0 - 2020-01-14
171
+ * [#896](https://github.com/stripe/stripe-ruby/pull/896) Add support for `CreditNoteLineItem`
172
+ * [#894](https://github.com/stripe/stripe-ruby/pull/894) Clean up test output by capturing `$stderr` when we expect warnings
173
+ * [#892](https://github.com/stripe/stripe-ruby/pull/892) Explicitly pass a parameter as hash to be more ruby 2.7 friendly
174
+ * [#893](https://github.com/stripe/stripe-ruby/pull/893) Upgrade Rubocop to 0.79
175
+
176
+ ## 5.13.0 - 2020-01-08
177
+ * [#891](https://github.com/stripe/stripe-ruby/pull/891) Fix most Ruby 2.7 warnings
178
+
179
+ ## 5.12.1 - 2020-01-06
180
+ * [#890](https://github.com/stripe/stripe-ruby/pull/890) Override API key with `client_secret` in `OAuth.token`
181
+
182
+ ## 5.12.0 - 2020-01-02
183
+ * [#889](https://github.com/stripe/stripe-ruby/pull/889) Add support for retrieve source transaction API method
184
+
185
+ ## 5.11.0 - 2019-11-26
186
+ * [#885](https://github.com/stripe/stripe-ruby/pull/885) Add support for `CreditNote` preview
187
+
188
+ ## 5.10.0 - 2019-11-08
189
+ * [#882](https://github.com/stripe/stripe-ruby/pull/882) Add list_usage_record_summaries and list_source_transactions
190
+
191
+ ## 5.9.0 - 2019-11-07
192
+ * [#870](https://github.com/stripe/stripe-ruby/pull/870) Add request instrumentation callback (see `README.md` for usage example)
193
+
194
+ ## 5.8.0 - 2019-11-05
195
+ * [#879](https://github.com/stripe/stripe-ruby/pull/879) Add support for `Mandate`
196
+ * [#876](https://github.com/stripe/stripe-ruby/pull/876) Add additional per-request configuration documentation
197
+ * [#874](https://github.com/stripe/stripe-ruby/pull/874) Raise an error when requests params are invalid
198
+ * [#873](https://github.com/stripe/stripe-ruby/pull/873) Contributor Covenant
199
+
200
+ ## 5.7.1 - 2019-10-15
201
+ * [#869](https://github.com/stripe/stripe-ruby/pull/869) Fixes the misnamed `connection_base=` setter to be named `connect_base=`
202
+
203
+ ## 5.7.0 - 2019-10-10
204
+ * [#865](https://github.com/stripe/stripe-ruby/pull/865) Support backwards pagination with list's `#auto_paging_each`
205
+
206
+ ## 5.6.0 - 2019-10-04
207
+ * [#861](https://github.com/stripe/stripe-ruby/pull/861) Nicer error when specifying non-nil non-string opt value
208
+
209
+ ## 5.5.0 - 2019-10-03
210
+ * [#859](https://github.com/stripe/stripe-ruby/pull/859) User-friendly messages and retries for `EOFError`, `Errno::ECONNRESET`, `Errno::ETIMEDOUT`, and `Errno::EHOSTUNREACH` network errors
211
+
212
+ ## 5.4.1 - 2019-10-01
213
+ * [#858](https://github.com/stripe/stripe-ruby/pull/858) Drop Timecop dependency
214
+
215
+ ## 5.4.0 - 2019-10-01
216
+ * [#857](https://github.com/stripe/stripe-ruby/pull/857) Move to monotonic time for duration calculations
217
+
218
+ ## 5.3.0 - 2019-10-01
219
+ * [#853](https://github.com/stripe/stripe-ruby/pull/853) Support `Stripe-Should-Retry` header
220
+
221
+ ## 5.2.0 - 2019-09-19
222
+ * [#851](https://github.com/stripe/stripe-ruby/pull/851) Introduce system for garbage collecting connection managers
223
+
224
+ ## 5.1.1 - 2019-09-04
225
+ * [#845](https://github.com/stripe/stripe-ruby/pull/845) Transfer the request_id from the http_headers to error.
226
+
227
+ ## 5.1.0 - 2019-08-27
228
+ * [#841](https://github.com/stripe/stripe-ruby/pull/841) Retry requests on a 429 that's a lock timeout
229
+
230
+ ## 5.0.1 - 2019-08-20
231
+ * [#836](https://github.com/stripe/stripe-ruby/pull/836) Increase connection keep alive timeout to 30 seconds
232
+
233
+ ## 5.0.0 - 2019-08-20
234
+ Major version release. The [migration guide](https://github.com/stripe/stripe-ruby/wiki/Migration-guide-for-v5) contains a detailed list of backwards-incompatible changes with upgrade instructions.
235
+
236
+ Pull requests included in this release (cf. [#815](https://github.com/stripe/stripe-ruby/pull/815)) (⚠️ = breaking changes):
237
+ * ⚠️ [#813](https://github.com/stripe/stripe-ruby/pull/813): Convert library to use built-in `Net::HTTP`
238
+ * ⚠️ [#816](https://github.com/stripe/stripe-ruby/pull/816): Make `code` argument in `CardError` named instead of positional.
239
+ * ⚠️ [#817](https://github.com/stripe/stripe-ruby/pull/817): Drop support for very old Ruby versions.
240
+ * [#818](https://github.com/stripe/stripe-ruby/pull/818): Bump Rubocop to latest version
241
+ * [#819](https://github.com/stripe/stripe-ruby/pull/819): Ruby minimum version increase followup
242
+ * ⚠️ [#820](https://github.com/stripe/stripe-ruby/pull/820): Remove old deprecated methods
243
+ * ⚠️ [#823](https://github.com/stripe/stripe-ruby/pull/823): Remove all alias for list methods
244
+ * ⚠️ [#826](https://github.com/stripe/stripe-ruby/pull/826): Remove `UsageRecord.create` method
245
+ * ⚠️ [#827](https://github.com/stripe/stripe-ruby/pull/827): Remove `IssuerFraudRecord`
246
+ * [#811](https://github.com/stripe/stripe-ruby/pull/811): Add `ErrorObject` to `StripeError` exceptions
247
+ * [#828](https://github.com/stripe/stripe-ruby/pull/828): Tweak retry logic to be a little more like stripe-node
248
+ * [#829](https://github.com/stripe/stripe-ruby/pull/829): Reset connections when connection-changing configuration changes (optional)
249
+ * [#830](https://github.com/stripe/stripe-ruby/pull/830): Fix inverted sign for 500 retries
250
+ * ⚠️[#831](https://github.com/stripe/stripe-ruby/pull/831): Remove a few more very old deprecated methods
251
+ * [#832](https://github.com/stripe/stripe-ruby/pull/832): Minor cleanup in `StripeClient`
252
+ * [#833](https://github.com/stripe/stripe-ruby/pull/833): Do better bookkeeping when tracking state in `Thread.current`
253
+ * [#834](https://github.com/stripe/stripe-ruby/pull/834): Add `Invoice.list_upcoming_line_items` method
254
+
255
+ ## 4.24.0 - 2019-08-12
256
+ * [#825](https://github.com/stripe/stripe-ruby/pull/825) Add `SubscriptionItem.create_usage_record` method
257
+ - This release also removed the `SubscriptionSchedule.revisions` method. This should have been included in the previous release (4.23.0)
258
+
259
+ ## 4.23.0 - 2019-08-09
260
+ * [#824](https://github.com/stripe/stripe-ruby/pull/824) Remove SubscriptionScheduleRevision
261
+ - This is technically a breaking change. We've chosen to release it as a minor vesion bump because the associated API is unused.
262
+
263
+ ## 4.22.1 - 2019-08-09
264
+ * [#808](https://github.com/stripe/stripe-ruby/pull/808) Unify request/response handling
265
+
266
+ ## 4.22.0 - 2019-07-30
267
+ * [#821](https://github.com/stripe/stripe-ruby/pull/821) Listing `BalanceTransaction` objects now uses `/v1/balance_transactions` instead of `/v1/balance/history`
268
+
269
+ ## 4.21.3 - 2019-07-15
270
+ * [#810](https://github.com/stripe/stripe-ruby/pull/810) Better error message when passing non-string to custom method
271
+
272
+ ## 4.21.2 - 2019-07-05
273
+ * [#806](https://github.com/stripe/stripe-ruby/pull/806) Revert back to `initialize_from` from `Util.convert_to_stripe_object`
274
+
275
+ ## 4.21.1 - 2019-07-04
276
+ * [#807](https://github.com/stripe/stripe-ruby/pull/807) Add gem metadata
277
+
278
+ ## 4.21.0 - 2019-06-28
279
+ * [#803](https://github.com/stripe/stripe-ruby/pull/803) Add support for the `SetupIntent` resource and APIs
280
+
281
+ ## 4.20.1 - 2019-06-28
282
+ * [#805](https://github.com/stripe/stripe-ruby/pull/805) Fix formatting in `ConnectionFailed` error message
283
+
284
+ ## 4.20.0 - 2019-06-24
285
+ * [#800](https://github.com/stripe/stripe-ruby/pull/800) Enable request latency telemetry by default
286
+
287
+ ## 4.19.0 - 2019-06-17
288
+ * [#770](https://github.com/stripe/stripe-ruby/pull/770) Add support for `CustomerBalanceTransaction` resource and APIs
289
+
290
+ ## 4.18.1 - 2019-05-27
291
+ * [#789](https://github.com/stripe/stripe-ruby/pull/789) Allow `Order#pay` to be called without arguments
292
+
293
+ ## 4.18.0 - 2019-05-23
294
+ * [#783](https://github.com/stripe/stripe-ruby/pull/783) Add support for `radar.early_fraud_warning` resource
295
+
296
+ ## 4.17.0 - 2019-05-14
297
+ * [#779](https://github.com/stripe/stripe-ruby/pull/779) Add support for the Capability resource and APIs
298
+
299
+ ## 4.16.0 - 2019-04-24
300
+ * [#760](https://github.com/stripe/stripe-ruby/pull/760) Add support for the `TaxRate` resource and APIs
301
+
302
+ ## 4.15.0 - 2019-04-22
303
+ * [#762](https://github.com/stripe/stripe-ruby/pull/762) Add support for the `TaxId` resource and APIs
304
+
305
+ ## 4.14.0 - 2019-04-18
306
+ * [#758](https://github.com/stripe/stripe-ruby/pull/758) Add support for the `CreditNote` resource and APIs
307
+
308
+ ## 4.13.0 - 2019-04-16
309
+ * [#766](https://github.com/stripe/stripe-ruby/pull/766) Relax constraints on objects that we'll accept as a file (now they just need to respond to `#read`)
310
+
311
+ ## 4.12.0 - 2019-04-02
312
+ * [#752](https://github.com/stripe/stripe-ruby/pull/752) Add `.delete` class method on deletable API resources
313
+ * [#754](https://github.com/stripe/stripe-ruby/pull/754) Add class methods for all custom API requests (e.g. `Charge.capture`)
314
+
315
+ ## 4.11.0 - 2019-03-26
316
+ * [#753](https://github.com/stripe/stripe-ruby/pull/753) Add a global proxy configuration parameter
317
+
318
+ ## 4.10.0 - 2019-03-18
319
+ * [#745](https://github.com/stripe/stripe-ruby/pull/745) Add support for the `PaymentMethod` resource and APIs
320
+ * [#747](https://github.com/stripe/stripe-ruby/pull/747) Add support for retrieving a Checkout `Session`
321
+ * [#748](https://github.com/stripe/stripe-ruby/pull/748) Add support for deleting a Terminal `Location` and `Reader`
322
+
323
+ ## 4.9.1 - 2019-03-18
324
+ * [#750](https://github.com/stripe/stripe-ruby/pull/750) Catch error and warn if unable to remove a method
325
+
326
+ ## 4.9.0 - 2019-02-12
327
+ * [#739](https://github.com/stripe/stripe-ruby/pull/739) Add support for `SubscriptionSchedule` and `SubscriptionScheduleRevision`
328
+
329
+ ## 4.8.1 - 2019-02-11
330
+ * [#743](https://github.com/stripe/stripe-ruby/pull/743) Fix bug in file uploading introduced in #741
331
+
332
+ ## 4.8.0 - 2019-02-03
333
+ * [#741](https://github.com/stripe/stripe-ruby/pull/741) Use `FaradayStripeEncoder` to encode all parameter styles
334
+
335
+ ## 4.7.1 - 2019-02-01
336
+ * [#740](https://github.com/stripe/stripe-ruby/pull/740) Fix query encoding for integer-indexed maps
337
+
338
+ ## 4.7.0 - 2019-01-23
339
+ * [#735](https://github.com/stripe/stripe-ruby/pull/735) Rename `CheckoutSession` to `Session` and move it under the `Checkout` namespace. This is a breaking change, but we've reached out to affected merchants and all new merchants would use the new approach.
340
+
341
+ ## 4.6.0 - 2019-01-21
342
+ * [#736](https://github.com/stripe/stripe-ruby/pull/736) Properly serialize `individual` on `Account` objects
343
+
344
+ ## 4.5.0 - 2019-01-02
345
+ * [#719](https://github.com/stripe/stripe-ruby/pull/719) Generate OAuth authorize URLs for Express accounts as well as standard
346
+
347
+ ## 4.4.1 - 2018-12-31
348
+ * [#718](https://github.com/stripe/stripe-ruby/pull/718) Fix an error message typo
349
+
350
+ ## 4.4.0 - 2018-12-21
351
+ * [#716](https://github.com/stripe/stripe-ruby/pull/716) Add support for the `CheckoutSession` resource
352
+
353
+ ## 4.3.0 - 2018-12-10
354
+ * [#711](https://github.com/stripe/stripe-ruby/pull/711) Add support for account links
355
+
356
+ ## 4.2.0 - 2018-11-28
357
+ * [#705](https://github.com/stripe/stripe-ruby/pull/705) Add support for the `Review` APIs
358
+
359
+ ## 4.1.0 - 2018-11-27
360
+ * [#695](https://github.com/stripe/stripe-ruby/pull/695) Add support for `ValueList` and `ValueListItem` for Radar
361
+
362
+ ## 4.0.3 - 2018-11-19
363
+ * [#703](https://github.com/stripe/stripe-ruby/pull/703) Don't use `Net::HTTP::Persistent` on Windows where it's not well supported
364
+
365
+ ## 4.0.2 - 2018-11-16
366
+ * [#701](https://github.com/stripe/stripe-ruby/pull/701) Require minimum Faraday 0.13 for proper support of persistent connections
367
+
368
+ ## 4.0.1 - 2018-11-15
369
+ * [#699](https://github.com/stripe/stripe-ruby/pull/699) Only send telemetry if `Request-Id` was present in the response
370
+
371
+ ## 4.0.0 - 2018-11-15
372
+ * [#698](https://github.com/stripe/stripe-ruby/pull/698) Use persistent connections by default through `Net::HTTP::Persistent`
373
+ * [#698](https://github.com/stripe/stripe-ruby/pull/698) Drop support for Ruby 2.0 (which we consider a breaking change here)
374
+
375
+ ## 3.31.1 - 2018-11-12
376
+ * [#697](https://github.com/stripe/stripe-ruby/pull/697) Send telemetry in milliseconds specifically
377
+
378
+ ## 3.31.0 - 2018-11-12
379
+ * [#696](https://github.com/stripe/stripe-ruby/pull/696) Add configurable telemetry to gather information on client-side request latency
380
+
381
+ ## 3.30.0 - 2018-11-08
382
+ * [#693](https://github.com/stripe/stripe-ruby/pull/693) Add new API endpoints for the `Invoice` resource.
383
+
384
+ ## 3.29.0 - 2018-10-30
385
+ * [#692](https://github.com/stripe/stripe-ruby/pull/692) Add support for the `Person` resource
386
+ * [#694](https://github.com/stripe/stripe-ruby/pull/694) Add support for the `WebhookEndpoint` resource
387
+
388
+ ## 3.28.0 - 2018-09-24
389
+ * [#690](https://github.com/stripe/stripe-ruby/pull/690) Add support for Stripe Terminal
390
+
391
+ ## 3.27.0 - 2018-09-24
392
+ * [#689](https://github.com/stripe/stripe-ruby/pull/689) Rename `FileUpload` to `File`
393
+
394
+ ## 3.26.1 - 2018-09-14
395
+ * [#688](https://github.com/stripe/stripe-ruby/pull/688) Fix hash equality on `StripeObject`
396
+
397
+ ## 3.26.0 - 2018-09-05
398
+ * [#681](https://github.com/stripe/stripe-ruby/pull/681) Add support for reporting resources
399
+
400
+ ## 3.25.0 - 2018-08-28
401
+ * [#678](https://github.com/stripe/stripe-ruby/pull/678) Allow payment intent `#cancel`, `#capture`, and `#confirm` to take their own parameters
402
+
403
+ ## 3.24.0 - 2018-08-27
404
+ * [#675](https://github.com/stripe/stripe-ruby/pull/675) Remove support for `BitcoinReceiver` write-actions
405
+
406
+ ## 3.23.0 - 2018-08-23
407
+ * [#676](https://github.com/stripe/stripe-ruby/pull/676) Add support for usage record summaries
408
+
409
+ ## 3.22.0 - 2018-08-15
410
+ * [#674](https://github.com/stripe/stripe-ruby/pull/674) Use integer-indexed encoding for all arrays
411
+
412
+ ## 3.21.0 - 2018-08-03
413
+ * [#671](https://github.com/stripe/stripe-ruby/pull/671) Add cancel support for topups
414
+
415
+ ## 3.20.0 - 2018-08-03
416
+ * [#669](https://github.com/stripe/stripe-ruby/pull/669) Add support for file links
417
+
418
+ ## 3.19.0 - 2018-07-27
419
+ * [#666](https://github.com/stripe/stripe-ruby/pull/666) Add support for scheduled query runs (`Stripe::Sigma::ScheduledQueryRun`) for Sigma
420
+
421
+ ## 3.18.0 - 2018-07-26
422
+ * [#665](https://github.com/stripe/stripe-ruby/pull/665) Add support for Stripe Issuing
423
+
424
+ ## 3.17.2 - 2018-07-19
425
+ * [#664](https://github.com/stripe/stripe-ruby/pull/664) Don't colorize log output being sent to a configured logger
426
+
427
+ ## 3.17.1 - 2018-07-19
428
+ * [#663](https://github.com/stripe/stripe-ruby/pull/663) Internal improvements to `ApiResource.class_url`
429
+
430
+ ## 3.17.0 - 2018-06-28
431
+ * [#658](https://github.com/stripe/stripe-ruby/pull/658) Add support for `partner_id` from `Stripe.set_app_info`
432
+
433
+ ## 3.16.0 - 2018-06-28
434
+ * [#657](https://github.com/stripe/stripe-ruby/pull/657) Add support for payment intents
435
+
436
+ ## 3.15.0 - 2018-05-10
437
+ * [#649](https://github.com/stripe/stripe-ruby/pull/649) Freeze all string literals
438
+
439
+ ## 3.14.0 - 2018-05-09
440
+ * [#645](https://github.com/stripe/stripe-ruby/pull/645) Add support for issuer fraud records
441
+
442
+ ## 3.13.1 - 2018-05-07
443
+ * [#647](https://github.com/stripe/stripe-ruby/pull/647) Merge query parameters coming from path with `params` argument
444
+
445
+ ## 3.13.0 - 2018-04-11
446
+ * [#498](https://github.com/stripe/stripe-ruby/pull/498) Add support for flexible billing primitives
447
+
448
+ ## 3.12.1 - 2018-04-05
449
+ * [#636](https://github.com/stripe/stripe-ruby/pull/636) Fix a warning for uninitialized instance variable `@additive_params`
450
+
451
+ ## 3.12.0 - 2018-04-05
452
+ * [#632](https://github.com/stripe/stripe-ruby/pull/632) Introduce `additive_object_param` so that non-`metadata` subobjects don't zero their keys as they're being replaced
453
+
454
+ ## 3.11.0 - 2018-02-26
455
+ * [#628](https://github.com/stripe/stripe-ruby/pull/628) Add support for `code` attribute on all Stripe exceptions
456
+
457
+ ## 3.10.0 - 2018-02-21
458
+ * [#627](https://github.com/stripe/stripe-ruby/pull/627) Add support for topups
459
+
460
+ ## 3.9.2 - 2018-02-12
461
+ * [#625](https://github.com/stripe/stripe-ruby/pull/625) Skip calling `to_hash` for `nil`
462
+
463
+ ## 3.9.1 - 2017-12-15
464
+ * [#616](https://github.com/stripe/stripe-ruby/pull/616) Support all file-like objects for uploads with duck typed checks on `path` and `read` (we previously whitelisted only certain classes)
465
+
466
+ ## 3.9.0 - 2017-12-08
467
+ * [#613](https://github.com/stripe/stripe-ruby/pull/613) Introduce new `IdempotencyError` type for idempotency-specific failures
468
+
469
+ ## 3.8.2 - 2017-12-07
470
+ * [#612](https://github.com/stripe/stripe-ruby/pull/612) Fix integer-indexed array encoding when sent as query parameter (subscription items can now be used when fetching an upcoming invoice)
471
+
472
+ ## 3.8.1 - 2017-12-06
473
+ * [#611](https://github.com/stripe/stripe-ruby/pull/611) Support `Tempfile` (as well as `File`) in file uploads
474
+
475
+ ## 3.8.0 - 2017-10-31
476
+ * [#606](https://github.com/stripe/stripe-ruby/pull/606) Support for exchange rates APIs
477
+
478
+ ## 3.7.0 - 2017-10-26
479
+ * [#603](https://github.com/stripe/stripe-ruby/pull/603) Support for listing source transactions
480
+
481
+ ## 3.6.0 - 2017-10-17
482
+ * [#597](https://github.com/stripe/stripe-ruby/pull/597) Add static methods to manipulate resources from parent
483
+ * `Account` gains methods for external accounts and login links (e.g. `.create_account`, `create_login_link`)
484
+ * `ApplicationFee` gains methods for refunds
485
+ * `Customer` gains methods for sources
486
+ * `Transfer` gains methods for reversals
487
+
488
+ ## 3.5.3 - 2017-10-16
489
+ * [#594](https://github.com/stripe/stripe-ruby/pull/594) Make sure that `StripeObject`'s `#deep_copy` maintains original class
490
+ * [#595](https://github.com/stripe/stripe-ruby/pull/595) Allow `Object#method` to be called on `StripeObject` even if it conflicts with an accessor
491
+ * [#596](https://github.com/stripe/stripe-ruby/pull/596) Encode arrays as integer-indexed hashes where appropriate
492
+ * [#598](https://github.com/stripe/stripe-ruby/pull/598) Don't persist `idempotency_key` opt between requests
493
+
494
+ ## 3.5.2 - 2017-10-13
495
+ * [#592](https://github.com/stripe/stripe-ruby/pull/592) Bring back `Marshal.dump/load` support with custom marshal encoder/decoder
496
+
497
+ ## 3.5.1 - 2017-10-12
498
+ * [#591](https://github.com/stripe/stripe-ruby/pull/591) Use thread-local `StripeClient` instances for thread safety
499
+
500
+ ## 3.5.0 - 2017-10-11
501
+ * [#589](https://github.com/stripe/stripe-ruby/pull/589) Rename source `delete` to `detach` (and deprecate the former)
502
+
503
+ ## 3.4.1 - 2017-10-05
504
+ * [#586](https://github.com/stripe/stripe-ruby/pull/586) Log query strings as well as form bodies with STRIPE_LOG
505
+ * [#588](https://github.com/stripe/stripe-ruby/pull/588) Require minimum Faraday 0.10 for bug fix in parameter encoding
506
+
507
+ ## 3.4.0 - 2017-09-20
508
+ * Mark legacy Bitcoin API as deprecated, and remove corresponding tests
509
+ * Mark recipients API as deprecated, and remove recipient card tests
510
+
511
+ ## 3.3.2 - 2017-09-20
512
+ * Correct minimum required Ruby version in gemspec (it's 2.0.0)
513
+
514
+ ## 3.3.1 - 2017-08-18
515
+ * Only parse webhook payload after verification to decrease likelihood of
516
+ attack
517
+
518
+ ## 3.3.0 - 2017-08-11
519
+ * Add support for standard library logger interface with `Stripe.logger`
520
+ * Error logs now go to stderr if using `Stripe.log_level`/`STRIPE_LOG`
521
+ * `Stripe.log_level`/`STRIPE_LOG` now support `Stipe::LEVEL_ERROR`
522
+
523
+ ## 3.2.0 - 2017-08-03
524
+ * Add logging for request retry account and `Stripe-Account` header
525
+
526
+ ## 3.1.0 - 2017-08-03
527
+ * Implement request logging with `Stripe.log_level` and `STRIPE_LOG`
528
+
529
+ ## 3.0.3 - 2017-07-28
530
+ * Revert `nil` to empty string coercion from 3.0.2
531
+ * Handle `invalid_client` OAuth error code
532
+ * Improve safety of error handling logic safer for unrecognized OAuth error codes
533
+
534
+ ## 3.0.2 - 2017-07-12
535
+ **Important:** This version is non-functional and has been yanked in favor of 3.0.3.
536
+ * Convert `nil` to empty string when serializing parameters (instead of opaquely dropping it) -- NOTE: this change has since been reverted
537
+
538
+ ## 3.0.1 - 2017-07-11
539
+ * Properties set with an API resource will now serialize that resource's ID if possible
540
+ * API resources will throw an ArgumentError on save if a property has been with an API resource that cannot be serialized
541
+
542
+ ## 3.0.0 - 2017-06-27
543
+ * `#pay` on invoice now takes params as well as opts
544
+
545
+ ## 2.12.0 - 2017-06-20
546
+ * Add support for ephemeral keys
547
+
548
+ ## 2.11.0 - 2017-05-26
549
+ * Warn when keys that look like opts are included as parameters
550
+
551
+ ## 2.10.0 - 2017-05-25
552
+ * Add support for account login links
553
+
554
+ ## 2.9.0 - 2017-05-18
555
+ * Support for OAuth operations in `Stripe::OAuth`
556
+
557
+ ## 2.8.0 - 2017-04-28
558
+ * Support for checking webhook signatures
559
+
560
+ ## 2.7.0 - 2017-04-26
561
+ * Add model `InvoiceLineItem`
562
+
563
+ ## 2.6.0 - 2017-04-26
564
+ * Add `OBJECT_NAME` constants to all API resources
565
+
566
+ ## 2.5.0 - 2017-04-24
567
+ * Make `opts` argument in `Util.convert_to_stripe_object` optional
568
+
569
+ ## 2.4.0 - 2017-04-18
570
+ * Add `Stripe.set_app_info` for use by plugin creators
571
+
572
+ ## 2.3.0 - 2017-04-14
573
+ * Add question mark accessor when assigning boolean value to undefined field
574
+
575
+ ## 2.2.1 - 2017-04-07
576
+ * Declare minimum required Faraday as 0.9
577
+
578
+ ## 2.2.0 - 2017-04-06
579
+ * Add support for payouts and recipient transfers
580
+
581
+ ## 2.1.0 - 2017-03-17
582
+ * Support for detaching sources from customers
583
+
584
+ ## 2.0.3 - 2017-03-16
585
+ * Fix marshalling of `StripeObjects` that have an embedded client
586
+
587
+ ## 2.0.2 - 2017-03-16
588
+ * Fix bad field reference when recovering from a JSON parsing problem
589
+
590
+ ## 2.0.1 - 2017-02-22
591
+ * Fix multipart parameter encoding to repair broken file uploads
592
+
593
+ ## 2.0.0 - 2017-02-14
594
+ * Drop support for Ruby 1.9
595
+ * Allow HTTP client that makes Stripe calls to be configured via Faraday
596
+ * Drop RestClient
597
+ * Switch to OpenAPI 2.0 spec and generated fixtures in test suite
598
+ * Switch to Webmock in test suite
599
+
600
+ ## 1.58.0 - 2017-01-19
601
+ * Remove erroneously added list methods for `Source` model
602
+
603
+ ## 1.57.1 - 2016-11-28
604
+ * Disallow sending protected fields along with API resource `.update`
605
+
606
+ ## 1.57.0 - 2016-11-21
607
+ * Add retrieve method for 3-D Secure resources
608
+
609
+ ## 1.56.2 - 2016-11-17
610
+ * Improve `StripeObject`'s `#to_s` to better handle how embedded objects are displayed
611
+
612
+ ## 1.56.1 - 2016-11-09
613
+ * Fix (fairly serious) memory like in `StripeObject`
614
+
615
+ ## 1.56.0 - 2016-10-24
616
+ * Add accessors for new fields added in `#update_attributes`
617
+ * Handle multi-plan subscriptions through new subscription items
618
+ * Handle 403 status codes from the API
619
+
620
+ ## 1.55.1 - 2016-10-24
621
+ Identical to 1.56.0 above. I incorrectly cut a patch-level release.
622
+
623
+ ## 1.55.0 - 2016-09-15
624
+ * Add support for Apple Pay domains
625
+
626
+ ## 1.54.0 - 2016-09-01
627
+ * Whitelist errors that should be retried; scope to known socket and HTTP errors
628
+
629
+ ## 1.53.0 - 2016-08-31
630
+ * Relax version constraint on rest-client (and by extension mime-types) for users on Ruby 2+
631
+
632
+ ## 1.52.0 - 2016-08-30
633
+ * Make sure `Subscription`'s `source` is saved with its parent
634
+
635
+ ## 1.51.1 - 2016-08-30
636
+ * Make sure `Account`'s `external_account` is saved with its parent
637
+
638
+ ## 1.51.0 - 2016-08-26
639
+ * Error when an array of maps is detected that cannot be accurately encoded
640
+ * Start using strings for header names instead of symbols for better clarity
641
+
642
+ ## 1.50.1 - 2016-08-25
643
+ * Fix encoding of arrays of maps where maps unequal sets of keys
644
+
645
+ ## 1.50.0 - 2016-08-15
646
+ * Allow sources to be created
647
+
648
+ ## 1.49.0 - 2016-07-28
649
+ * Add top-level `Source` model
650
+
651
+ ## 1.48.0 - 2016-07-12
652
+ * Add `ThreeDSecure` model for 3-D secure payments
653
+
654
+ ## 1.47.0 - 2016-07-11
655
+ * Allow rest-client version 2.0+ to be used with the gem
656
+
657
+ ## 1.46.0 - 2016-07-07
658
+ * Allow retry when a 409 conflict is encountered
659
+
660
+ ## 1.45.0 - 2016-07-07
661
+ * Do not send subresources when updating except when explicitly told to do so (see #433)
662
+
663
+ ## 1.44.0 - 2016-06-29
664
+ * Add `update` class method to all resources that can be updated
665
+
666
+ ## 1.43.1 - 2016-06-17
667
+ * Fix type of resource returned from `Order#return_order`
668
+
669
+ ## 1.43.0 - 2016-05-20
670
+ * Allow Relay orders to be returned and add associated types
671
+ * Support Alipay account retrieval and deletion
672
+
673
+ ## 1.42.0 - 2016-05-04
674
+ * Add support for the new /v1/subscriptions endpoint (retrieve, list, create, update, and delete)
675
+
676
+ ## 1.41.0 - 2016-04-13
677
+ * Add global `stripe_account` option that adds a `Stripe-Account` header to all requests
678
+
679
+ ## 1.40.0 - 2016-04-06
680
+ * Fix bug that omitted subresources from serialization
681
+
682
+ ## 1.39.0 - 2016-03-31
683
+ * Update CA cert bundle for compatibility with OpenSSL versions below 1.0.1
684
+
685
+ ## 1.38.0 - 2016-03-18
686
+ * Allow `opts` to be passed to an API resource's `#save` method
687
+
688
+ ## 1.37.0 - 2016-03-14
689
+ * Add `Account#reject` to support the new API feature
690
+
691
+ ## 1.36.2 - 2016-03-14
692
+ * Fix reference to non-existent `#url` in `ListObject`
693
+
694
+ ## 1.36.1 - 2016-03-04
695
+ * Fix serialization when subhash given to `#save` or `#update_attributes`
696
+
697
+ ## 1.36.0 - 2016-02-08
698
+ * Add `CountrySpec` model for looking up country payment information
699
+
700
+ ## 1.35.1 - 2016-02-03
701
+ * Add compatibility layer for old API versions on `Charge#refund`
702
+
703
+ ## 1.35.0 - 2016-02-01
704
+ * Allow CA cert bundle location to be configured
705
+ * Updated bundled CA certs
706
+
707
+ ## 1.34.0 - 2016-01-25
708
+ * Add support for deleting products and SKUs
709
+
710
+ ## 1.33.1 - 2016-01-21
711
+ * Pass through arguments of `Charge#refund`
712
+
713
+ ## 1.33.0 - 2016-01-19
714
+ * Re-implement `Charge#refund` helper to use the modern endpoint suggested by docs
715
+
716
+ ## 1.32.1 - 2016-01-07
717
+ * Fix bug where ivar left uninitialized in StripeObject could error on serialization
718
+ * Fix bug where a nil customer from API could error Bitcoin model on refresh
719
+
720
+ ## 1.32.0 - 2016-01-05
721
+ * Add configuration to optionally retry network failures
722
+ * Use modern API endpoint for producing application fee refunds
723
+
724
+ ## 1.31.0 - 2015-10-29
725
+ * Add BankAccount#verify convenience method
726
+
727
+ ## 1.30.3 - 2015-10-28
728
+ * Fix bug where arrays that were not `additional_owners` were not properly encoded for requests
729
+
730
+ ## 1.30.2 - 2015-10-12
731
+ * Fix bug where `opts` didn't properly propagate to descendant `StripeObjects`
732
+
733
+ ## 1.30.1 - 2015-10-10
734
+ * Fix bug that prevent lists of hashes from being URI-encoded properly
735
+ * Fix bug where filter conditions were not making it past the first instantiated `ListObject`
736
+
737
+ ## 1.30.0 - 2015-10-09
738
+ * Add `StripeObject#deleted?` for a reliable way to check whether an object is alive
739
+ * Deprecate `StripeObject#refresh_from`
740
+ * New parameter encoding scheme that doesn't use `URI.escape`
741
+
742
+ ## 1.29.1 - 2015-10-06
743
+ * Fix bug where ampersands were not being properly encoded
744
+
745
+ ## 1.29.0 - 2015-10-05
746
+ * Add pagination helpers `#auto_paging_each`, `#previous_page`, and `#next_page`
747
+
748
+ ## 1.28.1 - 2015-10-05
749
+ * Fix URI being referenced by file upload resources
750
+
751
+ ## 1.28.0 - 2015-10-05
752
+ * Make StripeObject's #save "upsert"-like; creates an object if new
753
+ * Add #update_attributes to StripeObject for safe mass assignment
754
+ * Properly mass assign attributes on calls to #save
755
+ * Add question mark helpers for boolean fields (e.g. #paid? as well as old #paid)
756
+ * Fix a bug that broke the API for StripeObject initialization
757
+ * Remove use of deprecated URI.escape
758
+
759
+ ## 1.27.2 - 2015-09-25
760
+ * Correct the URLs used to fetch Bitcoin transactions.
761
+
762
+ ## 1.27.1 - 2015-09-20
763
+ * Use hash rockets for backwards compatibility.
764
+
765
+ ## 1.27.0 - 2015-09-14
766
+ * Add Orders, Products, and SKUs for Relay
767
+
768
+ ## 1.26.0 - 2015-09-11
769
+ * Add support for 429 Rate Limited response
770
+
771
+ ## 1.25.0 - 2015-08-17
772
+ * Added support for refund listing and retrieval without an associated charge
773
+
774
+ ## 1.24.0 - 2015-08-03
775
+ * Added support for deleting managed accounts
776
+ * Added support for dispute listing and retrieval
777
+ * Bugfix: token objects now are the correct class
778
+
779
+ ## 1.23.0 - 2015-07-06
780
+ * Added request IDs and HTTP headers to errors
781
+
782
+ ## 1.22.0 - 2015-06-10
783
+ * Added support for bank accounts and debit cards in managed accounts (via the `external_accounts` param)
784
+
785
+ ## 1.21.0 - 2015-04-14
786
+ * Remove TLS cert revocation check (all pre-heartbleed certs have expired)
787
+ * Bugfix: don't unset keys when they don't exist on StripeObject
788
+
789
+ ## 1.20.4 - 2015-03-26
790
+ * Raise an error when explicitly passing nil as the API key on resource methods
791
+ * Fix error when passing an API key to Balance.retrieve (github issue #232)
792
+
793
+ ## 1.20.3 - 2015-03-13
794
+ * Fixed error when updating certain resources (github issue #224)
795
+
796
+ ## 1.20.2 - 2015-03-10
797
+ * Added support for updating nested hashes besides `metadata` (which was already supported)
798
+ * Fixed bug in balance retrieval
799
+
800
+ ## 1.20.1 - 2015-02-26
801
+ * Updated Card to point to customer sources endpoint when customer property is set
802
+
803
+ ## 1.20.0 - 2015-02-19
804
+ * Added Update & Delete operations to Bitcoin Receivers
805
+
806
+ ## 1.19.1 - 2015-02-18
807
+ * Fixed fetching upcoming invoice/paying invoice methods
808
+
809
+ ## 1.19.0 - 2015-02-15
810
+ * Support for new Transfers /reversals endpoint
811
+ * Account retrieval now optionally accepts an account ID
812
+ * Better support for passing custom headers, like Stripe-Account, through requests
813
+
814
+ ## 1.18.0 - 2015-01-21
815
+ * 1 major enhancement:
816
+ * Added support for making bitcoin charges through BitcoinReceiver source object
817
+
818
+ ## 1.17.3 - 2015-01-12
819
+ * 1 bugfix:
820
+ * Fixed API key propagation for ApplicationFee#refund
821
+
822
+ ## 1.17.2 - 2015-01-08
823
+ * 1 bugfix:
824
+ * Fixed API key propagation for child resources
825
+
826
+ ## 1.17.1 - 2015-01-07
827
+ * 2 minor enhacements:
828
+ * Fixed dependencies for Ruby versions less than 1.9.3
829
+ * Added deauthorize method to Account object
830
+
831
+ ## 1.17.0 - 2014-12-15
832
+ * 1 major enhacement:
833
+ * File uploads resource was added (for uploading pdf or image documents for disputes)
834
+
835
+ ## 1.16.1 - 2014-12-19
836
+ * 2 minor enhancements:
837
+ * Ability to send idempotent requests
838
+ * Ability to specify stripe account as a header
839
+
840
+ ## 1.16.0 - 2014-10-08
841
+ * 1 minor enhacement:
842
+ * Coupons now support update operations - useful for manipulating metadata
843
+
844
+ ## 1.15.0 - 2014-07-26
845
+ * 1 major enhacement:
846
+ * Application Fee refunds now a list instead of array
847
+
848
+ ## 1.14.0 - 2014-06-17
849
+ * 1 major enhancement:
850
+ * Add metadata for refunds and disputes
851
+
852
+ ## 1.13.0 - 2014-05-28
853
+ * 1 major enhancement:
854
+ * Support for canceling transfers
855
+
856
+ ## 1.12.0 - 2014-05-21
857
+ * 1 major enhancement:
858
+ * Support for cards for recipients
859
+
860
+ ## 1.11.0 - 2014-04-09
861
+ * 2 minor enhancements:
862
+ * Update included ca bundles
863
+ * Implement certificate blacklisting
864
+
865
+ ## 1.10.2 - 2014-02-18
866
+ * 1 minor enhancement:
867
+ * Add create_subscription on Customer resources, so you can create
868
+ subscriptions without needing to retrieve the customer first (github
869
+ issue #120)
870
+
871
+ ## 1.10.1 - 2014-02-03
872
+ * 1 bugfix:
873
+ * Fix marshaling of StripeObjects
874
+
875
+ ## 1.10.0 - 2014-01-29
876
+ * 2 major enhancements
877
+ * Support for multiple subscriptions per customer
878
+ * Testing ruby 2.1.0
879
+
880
+ * 2 minor enhancements
881
+ * Replace multi_json with json
882
+ * Allow #save to take opts (for :expand)
883
+
884
+ * 1 bugfix
885
+ * Fix #try and #respond_to? on StripeObjects
886
+
887
+ ## 1.9.9 - 2013-12-02
888
+ * 1 major enhancement
889
+ * Add ApplicationFee resource
890
+
891
+ ## 1.8.9 - 2013-11-14
892
+ * 2 bugfixes:
893
+ * Fix gemspec dependencies so the gem doesn't break for Ruby 1.8 users
894
+ * Fix api_resource_test to not use returns as a way of testing rescue behavior
895
+
896
+ ## 1.8.8 - 2013-10-3
897
+ * 1 major enhancement
898
+ * Add support for metadata on resources
899
+
900
+ ## 1.8.7 - 2013-08-18
901
+ * 1 minor enhancement
902
+ * Add support for closing disputes.
903
+
904
+ ## 1.8.6 - 2013-08-13
905
+ * 1 major enhancement
906
+ * Add Balance and BalanceTransaction resources
907
+
908
+ ## 1.8.5 - 2013-08-12
909
+ * 1 major enhancement
910
+ * Add support for unsetting attributes by setting to nil. This permits unsetting email and description on customers and description on charges. Setting properties to a blank string is now an error.
911
+ * Attempting to set an object's id is now an error
912
+
913
+ ## 1.8.4 - 2013-07-11
914
+ * 1 major enhancement
915
+ * Add support for new cards API (Stripe API version - 2013-07-05)
916
+
917
+ ## 1.8.3 - 2013-05-06
918
+ * 1 bugfix:
919
+ * Fix handling of per-call API keys (github issue #67)
920
+
921
+ ## 1.8.2 - 2013-05-01
922
+ * 3 minor enhancements:
923
+ * Use to_sym instead of type checking for minor performance improvement (github issue #59)
924
+ * Handle low-memory situations without throwing an exception (github issue #61)
925
+ * Add an Customer#upcoming_invoice convenience method (github issue #65)
926
+
927
+ * 1 bugfix:
928
+ * Allow updating resources without first retrieving them (github issue #60)
929
+
930
+ ## 1.8.1 - 2013-04-19
931
+ * 1 minor enhancement:
932
+ * Add support for specifying an API key when retrieving an upcoming invoice
933
+
934
+ ## 1.8.0 - 2013-04-11
935
+ * 1 major enhancement:
936
+ * Add new Recipient resource
937
+ * Allow Transfers to be createable
938
+
939
+ ## 1.7.11 - 2013-02-21
940
+ * 1 minor enhancement
941
+ * Add 'id' to the list of permanent attributes
942
+
943
+ ## 1.7.10 - 2013-02-01
944
+ * 1 major enhancement
945
+ * Add support for passing options when retrieving Stripe objects e.g., Stripe::Charge.retrieve({id:"foo", expand:["customer"]}) Stripe::Charge("foo") is still supported as well
946
+
947
+ ## 1.7.9 - 2013-01-15
948
+ * 1 major enhancement
949
+ * Add support for setting a Stripe API version override.
950
+
951
+ ## 1.7.8 - 2012-11-21
952
+ * 1 bugfix
953
+ * Relax the version constraint on multi_json (github issue #44)
954
+
955
+ ## 1.7.7 - 2012-11-07
956
+ * 1 minor enhancement:
957
+ * Add support for updating charge disputes
958
+
959
+ * 1 bugfix
960
+ * Fix Account API resource bug
961
+
962
+ ## 1.7.6 - 2012-10-30
963
+ * 1 major enhancement
964
+ * Add support for creating invoices
965
+
966
+ ## 1.7.5 - 2012-10-25
967
+ * 1 major enhancement
968
+ * Add support for new API lists
969
+
970
+ ## 1.7.4 - 2012-10-08
971
+ * 1 bugfix
972
+ * Fix bug introduced in 1.7.3 calling API methods that take no
973
+ arguments, like Stripe::Invoice#pay (github issue #42)
974
+
975
+ ## 1.7.3 - 2012-09-14
976
+ * 2 bugfixes
977
+ * Make sure that both keys and values of GET params are URL-encoded. NOTE: If you were previously URL-encoding values yourself, you may need to adjust your code.
978
+ * URL-encode POST params directly, instead of allowing rest-client to do it to work around an unfortunate interaction with the hashery gem (github issue #38)
979
+
980
+ ## 1.7.2 - 2012-08-31
981
+ * 1 major enhancement
982
+ * Add support for new pay and update methods for Invoice objects
983
+
984
+ ## 1.7.1 - 2012-08-15
985
+ * 1 major enhancement
986
+ * Add new Account API resource
987
+
988
+ ## 1.7.0 - 2012-05-17
989
+ * 3 major enhancements:
990
+ * Switch from vendored stripe-json to multi_json for all JSON parsing and rendering. This should not impact programmatic usage of the library, but may cause small rendering differences from, e.g., StripeObject#inspect (github issue #22)
991
+ * Add new delete_discount method to Customer objects
992
+ * Add new Transfer API resource
993
+
994
+ * 2 minor enhancements:
995
+ * Switch from HTTP Basic auth to Bearer auth (Note: Stripe will support Basic auth for the indefinite future, but recommends Bearer auth when possible going forward)
996
+ * Numerous test suite improvements
997
+
998
+ ## 1.6.3 - 2012-03-22
999
+ * 1 bugfix:
1000
+ * Encode GET query strings ourselves instead of using rest-client to work around a bug
1001
+
1002
+ ## 1.6.2 - 2012-02-24
1003
+ * 1 bugfix:
1004
+ * Correct argument handling in StripeObject#as_json
1005
+
1006
+ ## 1.6.1 - 2012-02-22
1007
+ * 1 bugfix:
1008
+ * Fix StripeObject#inspect when ActiveSupport 3.0 is loaded
1009
+
1010
+ ## 1.6.0 - 2012-02-01
1011
+ * A whole bunch of releases between 1.5.0 and 1.6.0, but few changes, mainly the addition of plans, coupons, events, and tokens
1012
+ * 1.6.0 also contains a new inspect/to_string implementation
1013
+
1014
+ ## 1.5.0 - 2011-05-09
1015
+ * 1 major enhancement:
1016
+ * Update for new RESTful API
1017
+
1018
+ ## 1.3.4 - 2011-01-07
1019
+ * 1 major enhancement:
1020
+ * Rename to Stripe
1021
+
1022
+ ## 1.2 - 2010-06-06
1023
+ * 1 major enhancement:
1024
+ * Support for the set_customer_subscription and delete_customer API methods
1025
+
1026
+ ## 1.1 - 2010-03-14
1027
+ * 1 major enhancement:
1028
+ * Support for recurring billing
1029
+
1030
+ ## 1.0 - 2010-01-05
1031
+ * 1 major enhancement:
1032
+ * Initial release
1033
+
1034
+ <!--
1035
+ # vim: set tw=0:
1036
+ -->