adyen-ruby-api-library 4.3.0 → 4.4.0
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 +4 -4
- data/.gitignore +2 -0
- data/README.md +12 -0
- data/lib/adyen-ruby-api-library.rb +2 -0
- data/lib/adyen/client.rb +15 -8
- data/lib/adyen/services/bin_lookup.rb +18 -0
- data/lib/adyen/services/checkout.rb +11 -7
- data/lib/adyen/services/dispute.rb +20 -0
- data/lib/adyen/services/payments.rb +9 -4
- data/lib/adyen/services/service.rb +2 -2
- data/lib/adyen/version.rb +1 -1
- data/spec/bin_lookup_spec.rb +15 -0
- data/spec/dispute_spec.rb +17 -0
- data/spec/mocks/requests/BinLookup/get_3ds_availability.json +4 -0
- data/spec/mocks/requests/BinLookup/get_cost_estimate.json +8 -0
- data/spec/mocks/requests/DisputeService/defend_dispute.json +5 -0
- data/spec/mocks/requests/DisputeService/delete_dispute_defense_document.json +5 -0
- data/spec/mocks/requests/DisputeService/retrieve_applicable_defense_reasons.json +4 -0
- data/spec/mocks/requests/DisputeService/supply_defense_document.json +11 -0
- data/spec/mocks/responses/BinLookup/get_3ds_availability.json +8 -0
- data/spec/mocks/responses/BinLookup/get_cost_estimate.json +8 -0
- data/spec/mocks/responses/DisputeService/defend_dispute.json +5 -0
- data/spec/mocks/responses/DisputeService/delete_dispute_defense_document.json +5 -0
- data/spec/mocks/responses/DisputeService/retrieve_applicable_defense_reasons.json +28 -0
- data/spec/mocks/responses/DisputeService/supply_defense_document.json +5 -0
- data/spec/spec_helper.rb +19 -12
- metadata +18 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e483ea1b71301634db57072423fd8cea1483b160eec7c1ba85fcf62ccbac0414
|
4
|
+
data.tar.gz: fa6dd93d1fe95ccf9ce3e9cc4a9956e523e6f25a20ae49fb2529e560c1aec14a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 50f51f247bb68817b56ef596ad2b435280fedb1dc06806665a5e48b4c1cfb67fda4c1060f882929c0c40c8b225635cc19d36d6f90be4ae1e0e7149dc8f8638bd
|
7
|
+
data.tar.gz: 15273291ffb0122fab7050dc1263028c6a38d6634519c744057d1b3756b62461c028de7982d5c36adfb04e50f25a7d121541d1ef496a91c3c63bd67ee75c7829
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -15,6 +15,8 @@ The Library supports all APIs under the following services:
|
|
15
15
|
* marketpay
|
16
16
|
* postfmapi
|
17
17
|
* data_protection
|
18
|
+
* dispute
|
19
|
+
* bin_lookup
|
18
20
|
|
19
21
|
## Requirements
|
20
22
|
|
@@ -151,6 +153,16 @@ adyen.checkout.version = 50
|
|
151
153
|
**data_protection:**
|
152
154
|
- request_subject_erasure
|
153
155
|
|
156
|
+
**dispute:**
|
157
|
+
- retrieve_applicable_defense_reasons
|
158
|
+
- supply_defense_document
|
159
|
+
- delete_dispute_defense_document
|
160
|
+
- defend_dispute
|
161
|
+
|
162
|
+
**bin_lookup:**
|
163
|
+
- get_3ds_availability
|
164
|
+
- get_cost_estimate
|
165
|
+
|
154
166
|
## Support
|
155
167
|
If you have a feature request, or spotted a bug or a technical problem, create a GitHub issue. For other questions, contact our [support team](https://support.adyen.com/hc/en-us/requests/new?ticket_form_id=360000705420).
|
156
168
|
|
@@ -10,5 +10,7 @@ require_relative "adyen/services/marketpay"
|
|
10
10
|
require_relative "adyen/services/postfmapi"
|
11
11
|
require_relative "adyen/services/service"
|
12
12
|
require_relative "adyen/services/data_protection"
|
13
|
+
require_relative "adyen/services/dispute"
|
14
|
+
require_relative "adyen/services/bin_lookup"
|
13
15
|
require_relative "adyen/hash_with_accessors"
|
14
16
|
require_relative "adyen/utils/hmac_validator"
|
data/lib/adyen/client.rb
CHANGED
@@ -48,13 +48,13 @@ module Adyen
|
|
48
48
|
when "Account", "Fund", "Notification", "Hop"
|
49
49
|
url = "https://cal-#{@env}.adyen.com/cal/services"
|
50
50
|
supports_live_url_prefix = false
|
51
|
-
when "Recurring", "Payment", "Payout"
|
51
|
+
when "Recurring", "Payment", "Payout", "BinLookup"
|
52
52
|
url = "https://pal-#{@env}.adyen.com/pal/servlet"
|
53
53
|
supports_live_url_prefix = true
|
54
54
|
when "Terminal"
|
55
55
|
url = "https://postfmapi-#{@env}.adyen.com/postfmapi/terminal"
|
56
56
|
supports_live_url_prefix = false
|
57
|
-
when "DataProtectionService"
|
57
|
+
when "DataProtectionService", "DisputeService"
|
58
58
|
url = "https://ca-#{@env}.adyen.com/ca/services"
|
59
59
|
supports_live_url_prefix = false
|
60
60
|
else
|
@@ -80,7 +80,7 @@ module Adyen
|
|
80
80
|
end
|
81
81
|
|
82
82
|
# send request to adyen API
|
83
|
-
def call_adyen_api(service, action, request_data, headers, version)
|
83
|
+
def call_adyen_api(service, action, request_data, headers, version, with_application_info = false)
|
84
84
|
# get URL for requested endpoint
|
85
85
|
url = service_url(service, action, version)
|
86
86
|
|
@@ -125,7 +125,7 @@ module Adyen
|
|
125
125
|
end
|
126
126
|
|
127
127
|
# add application only on checkout service
|
128
|
-
if
|
128
|
+
if with_application_info
|
129
129
|
add_application_info(request_data)
|
130
130
|
end
|
131
131
|
|
@@ -157,16 +157,15 @@ module Adyen
|
|
157
157
|
# add application_info for analytics
|
158
158
|
def add_application_info(request_data)
|
159
159
|
adyenLibrary = {
|
160
|
-
|
161
|
-
|
160
|
+
:name => Adyen::NAME,
|
161
|
+
:version => Adyen::VERSION.to_s,
|
162
162
|
}
|
163
163
|
|
164
164
|
if request_data[:applicationInfo].nil?
|
165
|
-
request_data[:applicationInfo] = {}
|
165
|
+
request_data[:applicationInfo] = {}
|
166
166
|
end
|
167
167
|
|
168
168
|
request_data[:applicationInfo][:adyenLibrary] = adyenLibrary
|
169
|
-
request_data[:applicationInfo][:adyenLibraryTest] = adyenLibrary
|
170
169
|
end
|
171
170
|
|
172
171
|
# services
|
@@ -201,5 +200,13 @@ module Adyen
|
|
201
200
|
def data_protection
|
202
201
|
@data_protection ||= Adyen::DataProtection.new(self)
|
203
202
|
end
|
203
|
+
|
204
|
+
def dispute
|
205
|
+
@dispute ||= Adyen::Dispute.new(self)
|
206
|
+
end
|
207
|
+
|
208
|
+
def bin_lookup
|
209
|
+
@bin_lookup ||= Adyen::BinLookup.new(self)
|
210
|
+
end
|
204
211
|
end
|
205
212
|
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require_relative 'service'
|
2
|
+
|
3
|
+
module Adyen
|
4
|
+
class BinLookup < Service
|
5
|
+
attr_accessor :version
|
6
|
+
DEFAULT_VERSION = 50
|
7
|
+
|
8
|
+
def initialize(client, version = DEFAULT_VERSION)
|
9
|
+
service = 'BinLookup'
|
10
|
+
method_names = [
|
11
|
+
:get_3ds_availability,
|
12
|
+
:get_cost_estimate
|
13
|
+
]
|
14
|
+
|
15
|
+
super(client, version, service, method_names)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -1,18 +1,22 @@
|
|
1
|
-
require_relative
|
1
|
+
require_relative "service"
|
2
2
|
|
3
3
|
module Adyen
|
4
4
|
class Checkout < Service
|
5
5
|
DEFAULT_VERSION = 50
|
6
6
|
|
7
7
|
def initialize(client, version = DEFAULT_VERSION)
|
8
|
-
service =
|
8
|
+
service = "Checkout"
|
9
9
|
method_names = [
|
10
10
|
:payment_methods,
|
11
11
|
:payment_session,
|
12
|
-
:payment_links
|
12
|
+
:payment_links,
|
13
|
+
]
|
14
|
+
with_application_info = [
|
15
|
+
:payment_session,
|
16
|
+
:payment_links,
|
13
17
|
]
|
14
18
|
|
15
|
-
super(client, version, service, method_names)
|
19
|
+
super(client, version, service, method_names, with_application_info)
|
16
20
|
end
|
17
21
|
|
18
22
|
# This method can't be dynamically defined because
|
@@ -25,16 +29,16 @@ module Adyen
|
|
25
29
|
when 0
|
26
30
|
Adyen::CheckoutDetail.new(@client, @version)
|
27
31
|
else
|
28
|
-
action =
|
32
|
+
action = "payments"
|
29
33
|
args[1] ||= {} # optional headers arg
|
30
|
-
@client.call_adyen_api(@service, action, args[0], args[1], @version)
|
34
|
+
@client.call_adyen_api(@service, action, args[0], args[1], @version, true)
|
31
35
|
end
|
32
36
|
end
|
33
37
|
end
|
34
38
|
|
35
39
|
class CheckoutDetail < Service
|
36
40
|
def initialize(client, version = DEFAULT_VERSION)
|
37
|
-
@service =
|
41
|
+
@service = "Checkout"
|
38
42
|
@client = client
|
39
43
|
@version = version
|
40
44
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require_relative 'service'
|
2
|
+
|
3
|
+
module Adyen
|
4
|
+
class Dispute < Service
|
5
|
+
attr_accessor :version
|
6
|
+
DEFAULT_VERSION = 30
|
7
|
+
|
8
|
+
def initialize(client, version = DEFAULT_VERSION)
|
9
|
+
service = 'DisputeService'
|
10
|
+
method_names = [
|
11
|
+
:retrieve_applicable_defense_reasons,
|
12
|
+
:supply_defense_document,
|
13
|
+
:delete_dispute_defense_document,
|
14
|
+
:defend_dispute,
|
15
|
+
]
|
16
|
+
|
17
|
+
super(client, version, service, method_names)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require_relative
|
1
|
+
require_relative "service"
|
2
2
|
|
3
3
|
module Adyen
|
4
4
|
class Payments < Service
|
@@ -6,7 +6,7 @@ module Adyen
|
|
6
6
|
DEFAULT_VERSION = 50
|
7
7
|
|
8
8
|
def initialize(client, version = DEFAULT_VERSION)
|
9
|
-
service =
|
9
|
+
service = "Payment"
|
10
10
|
method_names = [
|
11
11
|
:authorise,
|
12
12
|
:authorise3d,
|
@@ -16,10 +16,15 @@ module Adyen
|
|
16
16
|
:refund,
|
17
17
|
:cancel_or_refund,
|
18
18
|
:adjust_authorisation,
|
19
|
-
:donate
|
19
|
+
:donate,
|
20
|
+
]
|
21
|
+
with_application_info = [
|
22
|
+
:authorise,
|
23
|
+
:authorise3d,
|
24
|
+
:authorise3ds2,
|
20
25
|
]
|
21
26
|
|
22
|
-
super(client, version, service, method_names)
|
27
|
+
super(client, version, service, method_names, with_application_info)
|
23
28
|
end
|
24
29
|
end
|
25
30
|
end
|
@@ -11,7 +11,7 @@ module Adyen
|
|
11
11
|
method_name.to_s.gsub(/_./) { |x| x[1].upcase }
|
12
12
|
end
|
13
13
|
|
14
|
-
def initialize(client, version, service, method_names)
|
14
|
+
def initialize(client, version, service, method_names, with_application_info = [])
|
15
15
|
@client = client
|
16
16
|
@version = version
|
17
17
|
@service = service
|
@@ -20,7 +20,7 @@ module Adyen
|
|
20
20
|
method_names.each do |method_name|
|
21
21
|
define_singleton_method method_name do |request, headers = {}|
|
22
22
|
action = self.class.action_for_method_name(method_name)
|
23
|
-
@client.call_adyen_api(@service, action, request, headers, @version)
|
23
|
+
@client.call_adyen_api(@service, action, request, headers, @version, with_application_info.include?(method_name))
|
24
24
|
end
|
25
25
|
end
|
26
26
|
end
|
data/lib/adyen/version.rb
CHANGED
@@ -0,0 +1,15 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
RSpec.describe Adyen::BinLookup, service: "BIN lookup service" do
|
4
|
+
# client instance to be used in dynamically generated tests
|
5
|
+
client = create_client(:basic)
|
6
|
+
|
7
|
+
# methods / values to test for
|
8
|
+
# format is defined in spec_helper
|
9
|
+
test_sets = [
|
10
|
+
["get_3ds_availability", "threeDS2supported", false],
|
11
|
+
["get_cost_estimate", "resultCode", "Success"]
|
12
|
+
]
|
13
|
+
|
14
|
+
generate_tests(client, "BinLookup", test_sets, client.bin_lookup)
|
15
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
RSpec.describe Adyen::Dispute, service: "dispute service" do
|
4
|
+
# client instance to be used in dynamically generated tests
|
5
|
+
client = create_client(:basic)
|
6
|
+
|
7
|
+
# methods / values to test for
|
8
|
+
# format is defined in spec_helper
|
9
|
+
test_sets = [
|
10
|
+
["retrieve_applicable_defense_reasons", "disputeServiceResult", { "success" => true }],
|
11
|
+
["supply_defense_document", "disputeServiceResult", { "success" => true }],
|
12
|
+
["delete_dispute_defense_document", "disputeServiceResult", { "success" => true }],
|
13
|
+
["defend_dispute", "disputeServiceResult", { "success" => true }],
|
14
|
+
]
|
15
|
+
|
16
|
+
generate_tests(client, "DisputeService", test_sets, client.dispute)
|
17
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
{
|
2
|
+
"defenseDocuments": [
|
3
|
+
{
|
4
|
+
"content": "JVBERi0xLjMKJcTl8uXrp...",
|
5
|
+
"contentType": "application/pdf",
|
6
|
+
"defenseDocumentTypeCode": "MerchandiseDescription"
|
7
|
+
}
|
8
|
+
],
|
9
|
+
"disputePspReference": "9913486733050065",
|
10
|
+
"merchantAccountCode": "YOUR_MERCHANT_ACCOUNT"
|
11
|
+
}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
{
|
2
|
+
"defenseReasons": [
|
3
|
+
{
|
4
|
+
"defenseDocumentTypes": [
|
5
|
+
{
|
6
|
+
"available": false,
|
7
|
+
"defenseDocumentTypeCode": "TIDorInvoice",
|
8
|
+
"requirementLevel": "Optional"
|
9
|
+
},
|
10
|
+
{
|
11
|
+
"available": false,
|
12
|
+
"defenseDocumentTypeCode": "DefenseMaterial",
|
13
|
+
"requirementLevel": "Required"
|
14
|
+
},
|
15
|
+
{
|
16
|
+
"available": false,
|
17
|
+
"defenseDocumentTypeCode": "AlternativeDefenseMaterial",
|
18
|
+
"requirementLevel": "AlternativeRequired"
|
19
|
+
}
|
20
|
+
],
|
21
|
+
"defenseReasonCode": "SupplyDefenseMaterial",
|
22
|
+
"satisfied": false
|
23
|
+
}
|
24
|
+
],
|
25
|
+
"disputeServiceResult": {
|
26
|
+
"success": true
|
27
|
+
}
|
28
|
+
}
|
data/spec/spec_helper.rb
CHANGED
@@ -18,20 +18,27 @@ def create_test(client, service, method_name, parent_object)
|
|
18
18
|
request_body = JSON.parse(json_from_file("mocks/requests/#{service}/#{method_name}.json"))
|
19
19
|
response_body = json_from_file("mocks/responses/#{service}/#{method_name}.json")
|
20
20
|
|
21
|
-
|
22
|
-
|
21
|
+
with_application_info = [
|
22
|
+
"authorise",
|
23
|
+
"authorise3d",
|
24
|
+
"authorise3ds2",
|
25
|
+
"payments",
|
26
|
+
"payment_session",
|
27
|
+
"payment_links",
|
28
|
+
]
|
29
|
+
if with_application_info.include?(method_name)
|
23
30
|
client.add_application_info(request_body)
|
24
31
|
end
|
25
32
|
|
26
33
|
# client-generated headers
|
27
34
|
headers = {
|
28
|
-
|
35
|
+
"Content-Type".to_sym => "application/json",
|
29
36
|
}
|
30
37
|
|
31
38
|
# authentication headers
|
32
|
-
if not client.api_key.nil?
|
39
|
+
if not client.api_key.nil?
|
33
40
|
headers["x-api-key"] = client.api_key
|
34
|
-
elsif not client.ws_user.nil? and not client.ws_password.nil?
|
41
|
+
elsif not client.ws_user.nil? and not client.ws_password.nil?
|
35
42
|
auth_header = "Basic " + Base64::encode64("#{client.ws_user}:#{client.ws_password}")
|
36
43
|
headers["Authorization"] = auth_header.strip
|
37
44
|
else
|
@@ -43,12 +50,12 @@ def create_test(client, service, method_name, parent_object)
|
|
43
50
|
url = client.service_url(service, action, parent_object.version)
|
44
51
|
WebMock.stub_request(:post, url).
|
45
52
|
with(
|
46
|
-
|
47
|
-
|
48
|
-
|
53
|
+
body: request_body,
|
54
|
+
headers: headers,
|
55
|
+
).
|
49
56
|
to_return(
|
50
|
-
|
51
|
-
|
57
|
+
body: response_body,
|
58
|
+
)
|
52
59
|
result = parent_object.public_send(method_name, request_body)
|
53
60
|
|
54
61
|
# result.response is already a Ruby object (Adyen::HashWithAccessors) (rather than an unparsed JSON string)
|
@@ -86,10 +93,10 @@ def create_client(auth_type)
|
|
86
93
|
client = Adyen::Client.new
|
87
94
|
client.env = :mock
|
88
95
|
|
89
|
-
if auth_type == :basic
|
96
|
+
if auth_type == :basic
|
90
97
|
client.ws_user = "user"
|
91
98
|
client.ws_password = "password"
|
92
|
-
elsif auth_type == :api_key
|
99
|
+
elsif auth_type == :api_key
|
93
100
|
client.api_key = "api_key"
|
94
101
|
else
|
95
102
|
raise ArgumentError "Invalid auth type for test client"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: adyen-ruby-api-library
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adyen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-11-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -111,9 +111,11 @@ files:
|
|
111
111
|
- lib/adyen/errors.rb
|
112
112
|
- lib/adyen/hash_with_accessors.rb
|
113
113
|
- lib/adyen/result.rb
|
114
|
+
- lib/adyen/services/bin_lookup.rb
|
114
115
|
- lib/adyen/services/checkout.rb
|
115
116
|
- lib/adyen/services/checkout_utility.rb
|
116
117
|
- lib/adyen/services/data_protection.rb
|
118
|
+
- lib/adyen/services/dispute.rb
|
117
119
|
- lib/adyen/services/marketpay.rb
|
118
120
|
- lib/adyen/services/payments.rb
|
119
121
|
- lib/adyen/services/payouts.rb
|
@@ -124,10 +126,12 @@ files:
|
|
124
126
|
- lib/adyen/version.rb
|
125
127
|
- renovate.json
|
126
128
|
- spec/account_spec.rb
|
129
|
+
- spec/bin_lookup_spec.rb
|
127
130
|
- spec/checkout_spec.rb
|
128
131
|
- spec/checkout_utility_spec.rb
|
129
132
|
- spec/client_spec.rb
|
130
133
|
- spec/data_protection_spec.rb
|
134
|
+
- spec/dispute_spec.rb
|
131
135
|
- spec/errors_spec.rb
|
132
136
|
- spec/fund_spec.rb
|
133
137
|
- spec/hash_with_accessors_spec.rb
|
@@ -146,6 +150,8 @@ files:
|
|
146
150
|
- spec/mocks/requests/Account/update_account_holder.json
|
147
151
|
- spec/mocks/requests/Account/update_account_holder_state.json
|
148
152
|
- spec/mocks/requests/Account/upload_document.json
|
153
|
+
- spec/mocks/requests/BinLookup/get_3ds_availability.json
|
154
|
+
- spec/mocks/requests/BinLookup/get_cost_estimate.json
|
149
155
|
- spec/mocks/requests/Checkout/payment-details.json
|
150
156
|
- spec/mocks/requests/Checkout/payment-result.json
|
151
157
|
- spec/mocks/requests/Checkout/payment_links.json
|
@@ -155,6 +161,10 @@ files:
|
|
155
161
|
- spec/mocks/requests/Checkout/verify.json
|
156
162
|
- spec/mocks/requests/CheckoutUtility/origin_keys.json
|
157
163
|
- spec/mocks/requests/DataProtectionService/request_subject_erasure.json
|
164
|
+
- spec/mocks/requests/DisputeService/defend_dispute.json
|
165
|
+
- spec/mocks/requests/DisputeService/delete_dispute_defense_document.json
|
166
|
+
- spec/mocks/requests/DisputeService/retrieve_applicable_defense_reasons.json
|
167
|
+
- spec/mocks/requests/DisputeService/supply_defense_document.json
|
158
168
|
- spec/mocks/requests/Fund/account_holder_balance.json
|
159
169
|
- spec/mocks/requests/Fund/account_holder_transaction_list.json
|
160
170
|
- spec/mocks/requests/Fund/payout_account_holder.json
|
@@ -202,6 +212,8 @@ files:
|
|
202
212
|
- spec/mocks/responses/Account/update_account_holder.json
|
203
213
|
- spec/mocks/responses/Account/update_account_holder_state.json
|
204
214
|
- spec/mocks/responses/Account/upload_document.json
|
215
|
+
- spec/mocks/responses/BinLookup/get_3ds_availability.json
|
216
|
+
- spec/mocks/responses/BinLookup/get_cost_estimate.json
|
205
217
|
- spec/mocks/responses/Checkout/payment-details.json
|
206
218
|
- spec/mocks/responses/Checkout/payment-result.json
|
207
219
|
- spec/mocks/responses/Checkout/payment_links.json
|
@@ -211,6 +223,10 @@ files:
|
|
211
223
|
- spec/mocks/responses/Checkout/verify.json
|
212
224
|
- spec/mocks/responses/CheckoutUtility/origin_keys.json
|
213
225
|
- spec/mocks/responses/DataProtectionService/request_subject_erasure.json
|
226
|
+
- spec/mocks/responses/DisputeService/defend_dispute.json
|
227
|
+
- spec/mocks/responses/DisputeService/delete_dispute_defense_document.json
|
228
|
+
- spec/mocks/responses/DisputeService/retrieve_applicable_defense_reasons.json
|
229
|
+
- spec/mocks/responses/DisputeService/supply_defense_document.json
|
214
230
|
- spec/mocks/responses/Fund/account_holder_balance.json
|
215
231
|
- spec/mocks/responses/Fund/account_holder_transaction_list.json
|
216
232
|
- spec/mocks/responses/Fund/payout_account_holder.json
|