payjpv2 1.0.10 โ†’ 1.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 763b163bb9ca0ca64ab5680c2ce6a4692b23ba7adfe6565bfa9c7af5d69503c3
4
- data.tar.gz: 6ea914a0427bcf2fbafd02f1605545229c3320169d5324f1a590999ea4c583b0
3
+ metadata.gz: b5c7c9af553704a217bd596adb3053420567631ce8cc4f70e645359d4d4bd39e
4
+ data.tar.gz: c6f326ca919ac51333a6088d36dccca76d3a7748006709b52af31b0beaf1a9b1
5
5
  SHA512:
6
- metadata.gz: 1b8a6fa2ca6a2736cb7490326aa9592276c9163d7a068de1c451d02dea05271d012336a0625650fe281c84d77cb30092d7047dbb0e85a89ef3ac82b79812b24b
7
- data.tar.gz: 14ecb925bd10aa5494c46d1035ab7233f4ecc2246f8ac13a65f229b1dadd604a0161837c0ba700fbe43e74d041258bbf9453aa903151622497069081750d7b46
6
+ metadata.gz: 347a4b4656ec911fc1cdb57edff26d85111fa396c62e7d620d31ff529b4eb28c5f9cf0104131316e95583cab03177d4e6261dc794fe4a438fa22486dbcd665bd
7
+ data.tar.gz: aa7a00e763734f551ee06ec9eaba83608c798d9979ae473c28cc36edfc7530a67aa3abf44117e949c841dc2c1ba4a502c9372f1ba48feea428ea646cbb6d268d
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- payjpv2 (1.0.10)
4
+ payjpv2 (1.0.11)
5
5
  typhoeus (~> 1.0, >= 1.0.1)
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -5,7 +5,7 @@ A Ruby client library for the PAY.JP v2 API. This SDK provides a convenient way
5
5
  This Ruby gem is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
6
6
 
7
7
  - API version: 2.0.0
8
- - Package version: 1.0.10
8
+ - Package version: 1.0.11
9
9
  - Generator version: 7.14.0
10
10
  - Build package: org.openapitools.codegen.languages.RubyClientCodegen
11
11
 
@@ -26,7 +26,7 @@ gem install payjpv2
26
26
  Add this line to your application's Gemfile:
27
27
 
28
28
  ```ruby
29
- gem 'payjpv2', '~> 1.0.10'
29
+ gem 'payjpv2', '~> 1.0.11'
30
30
  ```
31
31
 
32
32
  Then execute:
data/example.rb CHANGED
@@ -21,6 +21,7 @@ api_instance = PAYJPv2::CustomersApi.new
21
21
  checkout_sessions_api = PAYJPv2::CheckoutSessionsApi.new
22
22
  products_api = PAYJPv2::ProductsApi.new
23
23
  prices_api = PAYJPv2::PricesApi.new
24
+ payment_methods_api = PAYJPv2::PaymentMethodsApi.new
24
25
 
25
26
  customer_create_request = PAYJPv2::CustomerCreateRequest.new(
26
27
  email: 'jennyrosen@example.com',
@@ -73,16 +74,65 @@ begin
73
74
  end
74
75
  puts "\n"
75
76
 
76
- # 5. Delete Customer
77
- puts "=== 5. Delete Customer ==="
77
+ # 5. PaymentMethod operations
78
+ # Note: create_payment_method is available only in test mode. In production,
79
+ # a PaymentMethod is created by tokenizing card details on the client side
80
+ # (e.g. payment.js) and then attaching the resulting token to a Customer.
81
+ puts "=== 5. PaymentMethod operations ==="
82
+
83
+ # 5a. Create PaymentMethod (test mode)
84
+ puts "\n--- 5a. Create PaymentMethod (test mode) ---"
85
+ payment_method_request = PAYJPv2::PaymentMethodCardCreateRequest.new(
86
+ type: 'card',
87
+ card: PAYJPv2::PaymentMethodCreateCardDetailsRequest.new(
88
+ number: '4242424242424242',
89
+ exp_month: 12,
90
+ exp_year: 2030,
91
+ cvc: '123'
92
+ ),
93
+ billing_details: PAYJPv2::PaymentMethodCardBillingDetailsRequest.new(
94
+ email: 'billing@example.com'
95
+ )
96
+ )
97
+ payment_method = payment_methods_api.create_payment_method(payment_method_request)
98
+ payment_method_id = payment_method.id
99
+ puts "Created PaymentMethod: #{payment_method_id}"
100
+ puts "Type: #{payment_method.type}"
101
+
102
+ # 5b. Attach PaymentMethod to Customer
103
+ puts "\n--- 5b. Attach PaymentMethod ---"
104
+ attached = payment_methods_api.attach_payment_method(
105
+ payment_method_id,
106
+ PAYJPv2::PaymentMethodAttachRequest.new(customer_id: customer_id)
107
+ )
108
+ puts "Attached PaymentMethod: #{attached.id}"
109
+ puts "Customer: #{attached.customer_id}"
110
+
111
+ # 5c. Retrieve PaymentMethod (active)
112
+ puts "\n--- 5c. Retrieve PaymentMethod ---"
113
+ retrieved_pm = payment_methods_api.get_payment_method(payment_method_id)
114
+ puts "PaymentMethod ID: #{retrieved_pm.id}"
115
+ puts "Customer: #{retrieved_pm.customer_id}"
116
+ puts "Detached at: #{retrieved_pm.detached_at || '(active)'}"
117
+
118
+ # 5d. Detach PaymentMethod
119
+ # The API marks the PaymentMethod with `detached_at` while keeping
120
+ # `customer_id` for historical reference.
121
+ puts "\n--- 5d. Detach PaymentMethod ---"
122
+ detached = payment_methods_api.detach_payment_method(payment_method_id)
123
+ puts "Detached PaymentMethod: #{detached.id}"
124
+ puts "Detached at: #{detached.detached_at}\n\n"
125
+
126
+ # 6. Delete Customer
127
+ puts "=== 6. Delete Customer ==="
78
128
  api_instance.delete_customer(customer_id)
79
129
  puts "Deleted customer: #{customer_id}\n\n"
80
130
 
81
- # 6. Create Product, Price, and Checkout Session
82
- puts "=== 6. Create Product, Price, and Checkout Session ==="
131
+ # 7. Create Product, Price, and Checkout Session
132
+ puts "=== 7. Create Product, Price, and Checkout Session ==="
83
133
 
84
- # 6a. Create Product
85
- puts "\n--- 6a. Create Product ---"
134
+ # 7a. Create Product
135
+ puts "\n--- 7a. Create Product ---"
86
136
  product_request = PAYJPv2::ProductCreateRequest.new(
87
137
  name: 'Sample Product',
88
138
  description: 'A sample product for checkout session demo',
@@ -100,8 +150,8 @@ begin
100
150
  puts "Created product: #{product_id}"
101
151
  puts "Product name: #{product.name}"
102
152
 
103
- # 6b. Create Price
104
- puts "\n--- 6b. Create Price ---"
153
+ # 7b. Create Price
154
+ puts "\n--- 7b. Create Price ---"
105
155
  price_request = PAYJPv2::PriceCreateRequest.new(
106
156
  currency: 'jpy',
107
157
  product_id: product_id,
@@ -121,8 +171,8 @@ begin
121
171
  puts "Created price: #{price_id}"
122
172
  puts "Unit amount: #{price.unit_amount} JPY"
123
173
 
124
- # 6c. Create Checkout Session
125
- puts "\n--- 6c. Create Checkout Session ---"
174
+ # 7c. Create Checkout Session
175
+ puts "\n--- 7c. Create Checkout Session ---"
126
176
  line_items = [
127
177
  PAYJPv2::LineItemRequest.new(
128
178
  price_id: price_id, # Use the actual price ID we just created
@@ -158,5 +208,5 @@ begin
158
208
  puts "=== All tests passed! ==="
159
209
 
160
210
  rescue PAYJPv2::ApiError => e
161
- puts "Exception when calling CustomersApi->create_customer: #{e}"
211
+ puts "Exception when calling PAYJPv2 API: #{e}"
162
212
  end
@@ -280,9 +280,9 @@ module PAYJPv2
280
280
  data.each { |k, v| hash[k] = convert_to_type(v, sub_type) }
281
281
  end
282
282
  else
283
- # models (e.g. Pet) or oneOf
283
+ # models (e.g. Pet) or oneOf / anyOf
284
284
  klass = PAYJPv2.const_get(return_type)
285
- klass.respond_to?(:openapi_one_of) ? klass.build(data) : klass.build_from_hash(data)
285
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(data) : klass.build_from_hash(data)
286
286
  end
287
287
  end
288
288
 
@@ -88,7 +88,8 @@ module PAYJPv2
88
88
  return model if model
89
89
  else
90
90
  # raise if data contains keys that are not known to the model
91
- raise if const.respond_to?(:acceptable_attributes) && !(data.keys - const.acceptable_attributes).empty?
91
+ # NOTE: acceptable_attributes returns symbols while data keys are strings (from JSON.parse), so symbolize before diff
92
+ raise if const.respond_to?(:acceptable_attributes) && !(data.keys.map(&:to_sym) - const.acceptable_attributes).empty?
92
93
  model = const.build_from_hash(data)
93
94
  return model if model
94
95
  end
@@ -87,7 +87,8 @@ module PAYJPv2
87
87
  return model if model
88
88
  else
89
89
  # raise if data contains keys that are not known to the model
90
- raise if const.respond_to?(:acceptable_attributes) && !(data.keys - const.acceptable_attributes).empty?
90
+ # NOTE: acceptable_attributes returns symbols while data keys are strings (from JSON.parse), so symbolize before diff
91
+ raise if const.respond_to?(:acceptable_attributes) && !(data.keys.map(&:to_sym) - const.acceptable_attributes).empty?
91
92
  model = const.build_from_hash(data)
92
93
  return model if model
93
94
  end
@@ -11,5 +11,5 @@ Generator version: 7.14.0
11
11
  =end
12
12
 
13
13
  module PAYJPv2
14
- VERSION = '1.0.10'
14
+ VERSION = '1.0.11'
15
15
  end
@@ -0,0 +1,107 @@
1
+ =begin
2
+ PaymentMethodResponse ใฎใ‚ˆใ†ใช anyOf module ใŒ API client ใฎ convert_to_type ็ตŒ็”ฑใง
3
+ ๆญฃใ—ใใƒ‡ใ‚ทใƒชใ‚ขใƒฉใ‚คใ‚บใ•ใ‚Œใ‚‹ใ“ใจใ‚’็ขบ่ชใ™ใ‚‹ใ‚นใƒšใƒƒใ‚ฏใ€‚
4
+
5
+ ้ŽๅŽปใ€ templates/ruby/api_client.mustache ใฎ convert_to_type ใฏ openapi_one_of ใ ใ‘ใ‚’
6
+ ใƒใ‚งใƒƒใ‚ฏใ—ใฆ openapi_any_of ใ‚’่ฆ‹ใฆใ„ใชใ‹ใฃใŸใŸใ‚ใ€ Pydantic ใฎ RootModel + Union ใ‹ใ‚‰
7
+ ็”Ÿๆˆใ•ใ‚ŒใŸ anyOf module ใซๅฏพใ—ใฆ build_from_hash ใ‚’ๅ‘ผใ‚“ใงใ—ใพใ„
8
+ ``NoMethodError: undefined method 'build_from_hash' for module PAYJPv2::PaymentMethodResponse``
9
+ ใŒ็™บ็”Ÿใ—ใฆใ„ใŸใ€‚
10
+
11
+ ๅŠ ใˆใฆ partial_anyof_module.mustache (ใŠใ‚ˆใณ partial_oneof_module.mustache) ใฎ
12
+ find_and_cast_into_type ใฏ data.keys (string, from JSON.parse) ใ‚’
13
+ acceptable_attributes (symbol) ใจ็›ดๆŽฅๆฏ”่ผƒใ—ใฆใ„ใŸใŸใ‚ใ€ๅธธใซ raise โ†’ rescue โ†’ nil ใง
14
+ build ่‡ชไฝ“ใ‚‚ๆฉŸ่ƒฝใ—ใฆใ„ใชใ‹ใฃใŸใ€‚
15
+
16
+ ไธก่€…ใ‚’ไฟฎๆญฃใ—ใŸๅพŒใฎๆŒ™ๅ‹•ใ‚’ๅ›žๅธฐใƒ†ใ‚นใƒˆใจใ—ใฆๅ›บๅฎšใ™ใ‚‹ใ€‚
17
+ =end
18
+
19
+ require 'spec_helper'
20
+
21
+ describe 'anyOf module deserialization via ApiClient#convert_to_type' do
22
+ let(:api_client) { PAYJPv2::ApiClient.new }
23
+
24
+ let(:card_payload) do
25
+ {
26
+ 'object' => 'payment_method',
27
+ 'id' => 'pm_test_card',
28
+ 'livemode' => false,
29
+ 'type' => 'card',
30
+ 'customer_id' => 'cus_test',
31
+ 'detached_at' => nil,
32
+ 'metadata' => {},
33
+ 'created_at' => '2026-01-01T00:00:00Z',
34
+ 'updated_at' => '2026-01-01T00:00:00Z',
35
+ 'billing_details' => {
36
+ 'name' => 'PAY TARO',
37
+ 'phone' => '09012345678',
38
+ 'email' => 'test@example.com',
39
+ 'address' => {
40
+ 'country' => 'JP',
41
+ 'zip' => '1000001',
42
+ 'state' => 'Tokyo',
43
+ 'city' => 'Chiyoda',
44
+ 'line1' => '1-1-1',
45
+ 'line2' => nil
46
+ }
47
+ },
48
+ 'card' => {
49
+ 'last4' => '4242',
50
+ 'brand' => 'visa',
51
+ 'exp_month' => 12,
52
+ 'exp_year' => 2030,
53
+ 'fingerprint' => 'fp_test',
54
+ 'country' => 'JP'
55
+ }
56
+ }
57
+ end
58
+
59
+ let(:paypay_payload) do
60
+ {
61
+ 'object' => 'payment_method',
62
+ 'id' => 'pm_test_paypay',
63
+ 'livemode' => false,
64
+ 'type' => 'paypay',
65
+ 'customer_id' => 'cus_test',
66
+ 'detached_at' => nil,
67
+ 'metadata' => {},
68
+ 'created_at' => '2026-01-01T00:00:00Z',
69
+ 'updated_at' => '2026-01-01T00:00:00Z',
70
+ 'billing_details' => {
71
+ 'name' => 'PAY TARO',
72
+ 'phone' => '09012345678',
73
+ 'email' => 'test@example.com',
74
+ 'address' => {
75
+ 'country' => 'JP',
76
+ 'zip' => '1000001',
77
+ 'state' => 'Tokyo',
78
+ 'city' => 'Chiyoda',
79
+ 'line1' => '1-1-1',
80
+ 'line2' => nil
81
+ }
82
+ }
83
+ }
84
+ end
85
+
86
+ it 'PaymentMethodResponse ใŒ anyOf module ใจใ—ใฆ็”Ÿๆˆใ•ใ‚Œใฆใ„ใ‚‹ใ“ใจ' do
87
+ expect(PAYJPv2::PaymentMethodResponse).to be_a(Module)
88
+ expect(PAYJPv2::PaymentMethodResponse).to respond_to(:openapi_any_of)
89
+ expect(PAYJPv2::PaymentMethodResponse).to respond_to(:build)
90
+ expect(PAYJPv2::PaymentMethodResponse).not_to respond_to(:build_from_hash)
91
+ end
92
+
93
+ it 'card ๅž‹ใฎใƒฌใ‚นใƒใƒณใ‚นใ‚’ convert_to_type ใง PaymentMethodCardResponse ใซ่งฃๆฑบใงใใ‚‹ใ“ใจ' do
94
+ result = api_client.send(:convert_to_type, card_payload, 'PaymentMethodResponse')
95
+ expect(result).to be_a(PAYJPv2::PaymentMethodCardResponse)
96
+ expect(result.id).to eq('pm_test_card')
97
+ expect(result.type).to eq('card')
98
+ expect(result.card.last4).to eq('4242')
99
+ end
100
+
101
+ it 'paypay ๅž‹ใฎใƒฌใ‚นใƒใƒณใ‚นใ‚’ convert_to_type ใง PaymentMethodPayPayResponse ใซ่งฃๆฑบใงใใ‚‹ใ“ใจ' do
102
+ result = api_client.send(:convert_to_type, paypay_payload, 'PaymentMethodResponse')
103
+ expect(result).to be_a(PAYJPv2::PaymentMethodPayPayResponse)
104
+ expect(result.id).to eq('pm_test_paypay')
105
+ expect(result.type).to eq('paypay')
106
+ end
107
+ end
@@ -0,0 +1,137 @@
1
+ =begin
2
+ ๅŠ ็›Ÿๅบ—ใ‹ใ‚‰ๅ ฑๅ‘Šใ•ใ‚ŒใŸไบ‹่ฑกใฎๅ›žๅธฐใƒ†ใ‚นใƒˆใ€‚
3
+
4
+ pm_api = PAYJPv2::PaymentMethodsApi.new
5
+ pm_api.detach_payment_method(payment_method_id)
6
+ # => NoMethodError: undefined method 'build_from_hash' for module PAYJPv2::PaymentMethodResponse
7
+
8
+ ใŒใƒ†ใƒณใƒ—ใƒฌใƒผใƒˆไฟฎๆญฃๅพŒใฏ่ตทใใชใ„ใ“ใจใ€ใŠใ‚ˆใณ่ฟ”ใ‚Šๅ€คใŒๆƒณๅฎšใฉใŠใ‚Šใฎ
9
+ ๅ…ทไฝ“ใ‚ฏใƒฉใ‚น (PaymentMethodCardResponse / PaymentMethodPayPayResponse) ใง
10
+ ่ฟ”ใฃใฆใใ‚‹ใ“ใจใ‚’ๅ‘ผใณๅ‡บใ—็ตŒ่ทฏๅ…จไฝ“ใงไฟ่จผใ™ใ‚‹ใ€‚
11
+
12
+ anyof_deserialization_spec.rb ใฏ ApiClient#convert_to_type ใ‚’็›ดๆŽฅๅฉใ„ใฆใŠใ‚Š
13
+ ใƒใ‚ฐใฎๆ นๅ› ใฎๅ˜ไฝ“ๆคœ่จผใ ใŒใ€ๆœฌ spec ใฏๅŠ ็›Ÿๅบ—ใŒๆ›ธใ„ใŸใ‚ณใƒผใƒ‰็ตŒ่ทฏใใฎใ‚‚ใฎใ‚’
14
+ Typhoeus stub ็ตŒ็”ฑใงๅ†็พใ™ใ‚‹ใ€‚
15
+ =end
16
+
17
+ require 'spec_helper'
18
+
19
+ describe 'PAYJPv2::PaymentMethodsApi#detach_payment_method (regression for anyOf build_from_hash)' do
20
+ let(:payment_method_id) { 'pm_test_card' }
21
+
22
+ let(:detached_card_response_body) do
23
+ {
24
+ 'object' => 'payment_method',
25
+ 'id' => payment_method_id,
26
+ 'livemode' => false,
27
+ 'type' => 'card',
28
+ 'customer_id' => 'cus_test',
29
+ 'detached_at' => '2026-05-13T15:00:00Z',
30
+ 'metadata' => {},
31
+ 'created_at' => '2026-01-01T00:00:00Z',
32
+ 'updated_at' => '2026-05-13T15:00:00Z',
33
+ 'billing_details' => {
34
+ 'name' => 'PAY TARO',
35
+ 'phone' => '09012345678',
36
+ 'email' => 'test@example.com',
37
+ 'address' => {
38
+ 'country' => 'JP',
39
+ 'zip' => '1000001',
40
+ 'state' => 'Tokyo',
41
+ 'city' => 'Chiyoda',
42
+ 'line1' => '1-1-1',
43
+ 'line2' => nil
44
+ }
45
+ },
46
+ 'card' => {
47
+ 'last4' => '4242',
48
+ 'brand' => 'visa',
49
+ 'exp_month' => 12,
50
+ 'exp_year' => 2030,
51
+ 'fingerprint' => 'fp_test',
52
+ 'country' => 'JP'
53
+ }
54
+ }
55
+ end
56
+
57
+ let(:detached_paypay_response_body) do
58
+ {
59
+ 'object' => 'payment_method',
60
+ 'id' => 'pm_test_paypay',
61
+ 'livemode' => false,
62
+ 'type' => 'paypay',
63
+ 'customer_id' => 'cus_test',
64
+ 'detached_at' => '2026-05-13T15:00:00Z',
65
+ 'metadata' => {},
66
+ 'created_at' => '2026-01-01T00:00:00Z',
67
+ 'updated_at' => '2026-05-13T15:00:00Z',
68
+ 'billing_details' => {
69
+ 'name' => 'PAY TARO',
70
+ 'phone' => '09012345678',
71
+ 'email' => 'test@example.com',
72
+ 'address' => {
73
+ 'country' => 'JP',
74
+ 'zip' => '1000001',
75
+ 'state' => 'Tokyo',
76
+ 'city' => 'Chiyoda',
77
+ 'line1' => '1-1-1',
78
+ 'line2' => nil
79
+ }
80
+ }
81
+ }
82
+ end
83
+
84
+ before do
85
+ PAYJPv2.configure do |c|
86
+ c.host = 'api.pay.jp'
87
+ c.access_token = 'sk_test_dummy'
88
+ end
89
+ Typhoeus::Expectation.clear
90
+ end
91
+
92
+ after do
93
+ Typhoeus::Expectation.clear
94
+ end
95
+
96
+ it 'card ๅž‹ใฎ detach ใƒฌใ‚นใƒใƒณใ‚นใ‚’ PaymentMethodCardResponse ใงๅ—ใ‘ๅ–ใ‚Œใ‚‹' do
97
+ Typhoeus.stub(/payment_methods\/#{payment_method_id}\/detach/).and_return(
98
+ Typhoeus::Response.new(
99
+ code: 200,
100
+ headers: { 'Content-Type' => 'application/json' },
101
+ body: detached_card_response_body.to_json
102
+ )
103
+ )
104
+
105
+ pm_api = PAYJPv2::PaymentMethodsApi.new
106
+
107
+ expect { pm_api.detach_payment_method(payment_method_id) }.not_to raise_error
108
+
109
+ result = pm_api.detach_payment_method(payment_method_id)
110
+ expect(result).to be_a(PAYJPv2::PaymentMethodCardResponse)
111
+ expect(result.id).to eq(payment_method_id)
112
+ expect(result.type).to eq('card')
113
+ expect(result.detached_at).not_to be_nil
114
+ expect(result.card.last4).to eq('4242')
115
+ end
116
+
117
+ it 'paypay ๅž‹ใฎ detach ใƒฌใ‚นใƒใƒณใ‚นใ‚’ PaymentMethodPayPayResponse ใงๅ—ใ‘ๅ–ใ‚Œใ‚‹' do
118
+ paypay_id = 'pm_test_paypay'
119
+ Typhoeus.stub(/payment_methods\/#{paypay_id}\/detach/).and_return(
120
+ Typhoeus::Response.new(
121
+ code: 200,
122
+ headers: { 'Content-Type' => 'application/json' },
123
+ body: detached_paypay_response_body.to_json
124
+ )
125
+ )
126
+
127
+ pm_api = PAYJPv2::PaymentMethodsApi.new
128
+
129
+ expect { pm_api.detach_payment_method(paypay_id) }.not_to raise_error
130
+
131
+ result = pm_api.detach_payment_method(paypay_id)
132
+ expect(result).to be_a(PAYJPv2::PaymentMethodPayPayResponse)
133
+ expect(result.id).to eq(paypay_id)
134
+ expect(result.type).to eq('paypay')
135
+ expect(result.detached_at).not_to be_nil
136
+ end
137
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: payjpv2
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.10
4
+ version: 1.0.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - PAY.JP
@@ -362,6 +362,8 @@ files:
362
362
  - spec/api/statements_api_spec.rb
363
363
  - spec/api/tax_rates_api_spec.rb
364
364
  - spec/api/terms_api_spec.rb
365
+ - spec/integration/anyof_deserialization_spec.rb
366
+ - spec/integration/payment_methods_api_detach_spec.rb
365
367
  - spec/models/apple_pay_config_request_spec.rb
366
368
  - spec/models/balance_list_response_spec.rb
367
369
  - spec/models/balance_response_spec.rb
@@ -527,6 +529,8 @@ test_files:
527
529
  - spec/api/statements_api_spec.rb
528
530
  - spec/api/tax_rates_api_spec.rb
529
531
  - spec/api/terms_api_spec.rb
532
+ - spec/integration/anyof_deserialization_spec.rb
533
+ - spec/integration/payment_methods_api_detach_spec.rb
530
534
  - spec/models/apple_pay_config_request_spec.rb
531
535
  - spec/models/balance_list_response_spec.rb
532
536
  - spec/models/balance_response_spec.rb