adyen-ruby-api-library 7.0.3 → 7.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c3424394aa97925505130c2e86a526725f575d94bb5276bc2212377433430943
4
- data.tar.gz: de79dd2ca8be5d5c239e9b3883b9972712cd03227133ab6b66cf8aa88add1f9c
3
+ metadata.gz: e77636d4dad0702e8816c00de1f5cf37ab3d1c841f73b2b20f5e256275458e53
4
+ data.tar.gz: fc410bcae06fc7a846e1a72edc39d34f838e2253e59c9e315839c9c299723b55
5
5
  SHA512:
6
- metadata.gz: 81fb04e71363771981693afda6387d2e00cd22207444282be51de1f4913d0a7477429acd8b2502bb2f5e440fdc4ece3fa40b95134e358e66eab319336f85489c
7
- data.tar.gz: 8c76a644b6ccd599b892cb7df34b80c0d978ae91ff8f0a0b417ea496d775d69b9e07901edb7a7cb5f066c700ebf42f35161ed686e2128219a29a5e949e15c87c
6
+ metadata.gz: 6c79bf2bfd30680ad73ac71f18416436bdfcfeb110260c3f78456aac857acafeb52f915be43fa2f26f9570c1a6846ed02751dd4b147b574ea4ed35d0e6ce7d8f
7
+ data.tar.gz: 2848c7cba6583e4ed195c71eaf8e736832bf8b55e713d3f9001d71cea4d129471f1da92a3c5d59e88f3c8c592fd8854039c9f7350955f0361bc059422a7289fc
data/README.md CHANGED
@@ -21,6 +21,7 @@ This library supports the following:
21
21
  | [Recurring API](https://docs.adyen.com/api-explorer/Recurring/68/overview) | v68 | Endpoints for managing saved payment details. | [Recurring](lib/adyen/services/recurring.rb) |
22
22
  | [Stored Value API](https://docs.adyen.com/payment-methods/gift-cards/stored-value-api) | v46 | Manage both online and point-of-sale gift cards and other stored-value cards. | [StoredValue](lib/adyen/services/storedValue.rb) |
23
23
  | [Transfers API](https://docs.adyen.com/api-explorer/transfers/3/overview) | v3 | The Transfers API provides endpoints that can be used to get information about all your transactions, move funds within your balance platform or send funds from your balance platform to a transfer instrument. | [Transfers](lib/adyen/services/transfers.rb) |
24
+ | [Cloud-based Terminal API](https://docs.adyen.com/point-of-sale/design-your-integration/terminal-api/terminal-api-reference/) | - | Our point-of-sale integration. | [TerminalCloudAPI](lib/adyen/services/terminalCloudAPI.rb) |
24
25
 
25
26
  For more information, refer to our [documentation](https://docs.adyen.com/) or the [API Explorer](https://docs.adyen.com/api-explorer/).
26
27
 
@@ -99,6 +100,121 @@ To run the tests use :
99
100
  bundle install --with development
100
101
  ~~~~
101
102
 
103
+ ## Using the Cloud Terminal API Integration
104
+ In order to submit In-Person requests with [Terminal API over Cloud](https://docs.adyen.com/point-of-sale/design-your-integration/choose-your-architecture/cloud/) you need to initialize the client in the same way as explained above for Ecommerce transactions:
105
+ ``` ruby
106
+ # Step 1: Require the parts of the module you want to use
107
+ require 'adyen-ruby-api-library'
108
+
109
+ # Step 2: Initialize the client object
110
+ adyen = Adyen::Client.new(api_key: 'YOUR_API_KEY', env: :test)
111
+
112
+ # Step 3: Create the request
113
+ serviceID = "123456789"
114
+ saleID = "POS-SystemID12345"
115
+ POIID = "Your Device Name(eg V400m-123456789)"
116
+
117
+ # Use a unique transaction for every transaction you perform
118
+ transactionID = "TransactionID"
119
+
120
+ request =
121
+ {
122
+ "SaleToPOIRequest": {
123
+ "MessageHeader": {
124
+ "MessageClass": "Service",
125
+ "MessageCategory": "Payment",
126
+ "MessageType": "Request",
127
+ "ServiceID": serviceID,
128
+ "SaleID": saleID,
129
+ "POIID": POIID,
130
+ "ProtocolVersion": "3.0"
131
+ },
132
+ "PaymentRequest": {
133
+ "SaleData": {
134
+ "SaleTransactionID": {
135
+ "TransactionID": transactionID,
136
+ "TimeStamp": "2023-08-23T09:48:55"
137
+ },
138
+ "SaleToAcquirerData": "eyJhcHBsaWNhdGlvbkluZm8iOnsiYWR5ZW5MaWJyYXJ5Ijp7Im5hbWUiOiJhZ....",
139
+ "TokenRequestedType": "Transaction"
140
+ },
141
+ "PaymentTransaction": {
142
+ "AmountsReq": {
143
+ "Currency": "EUR",
144
+ "RequestedAmount": 10
145
+ }
146
+ }
147
+ }
148
+ }
149
+ }
150
+
151
+ # Step 4: Make the request
152
+ response = adyen.terminal_cloud_api.sync(request)
153
+ ```
154
+
155
+ ### Optional: perform an abort request
156
+
157
+ To perform an [abort request](https://docs.adyen.com/point-of-sale/basic-tapi-integration/cancel-a-transaction/) you can use the following example:
158
+ ``` ruby
159
+ abortRequest =
160
+ {
161
+ "MessageHeader": {
162
+ "MessageClass": "Service",
163
+ "MessageCategory": "Abort",
164
+ "MessageType": "Request",
165
+ "ServiceID": serviceID,
166
+ "SaleID": saleID,
167
+ "POIID": POIID,
168
+ "ProtocolVersion": "3.0"
169
+ },
170
+ "AbortRequest": {
171
+ "AbortReason": "MerchantAbort",
172
+ "MessageReference": {
173
+ "MessageCategory": "Payment",
174
+ "SaleID": saleID,
175
+ # Service ID of the payment you're aborting
176
+ "ServiceID": serviceID,
177
+ "POIID": POIID
178
+ }
179
+ }
180
+ }
181
+
182
+ response = adyen.terminal_cloud_api.sync(abortRequest)
183
+ ```
184
+
185
+ ### Optional: perform a status request
186
+
187
+ To perform a [status request](https://docs.adyen.com/point-of-sale/basic-tapi-integration/verify-transaction-status/) you can use the following example:
188
+ ``` ruby
189
+ statusRequest =
190
+ {
191
+ "MessageHeader": {
192
+ "MessageClass": "Service",
193
+ "MessageCategory": "TransactionStatus",
194
+ "MessageType": "Request",
195
+ "ServiceID": serviceID,
196
+ "SaleID": saleID,
197
+ "POIID": POIID,
198
+ "ProtocolVersion": "3.0"
199
+ },
200
+ "TransactionStatusRequest": {
201
+ "ReceiptReprintFlag": true,
202
+ "DocumentQualifier": [
203
+ "CashierReceipt",
204
+ "CustomerReceipt"
205
+ ],
206
+ "MessageReference": {
207
+ "SaleID": saleID,
208
+ # serviceID of the transaction you want the status update for
209
+ "ServiceID": serviceID,
210
+ "MessageCategory": "Payment"
211
+ }
212
+ }
213
+ }
214
+
215
+ response = adyen.terminal_cloud_api.sync(statusRequest)
216
+ ```
217
+
102
218
  ## Feedback
103
219
  We value your input! Help us enhance our API Libraries and improve the integration experience by providing your feedback. Please take a moment to fill out [our feedback form](https://forms.gle/A4EERrR6CWgKWe5r9) to share your thoughts, suggestions or ideas.
104
220
 
data/lib/adyen/client.rb CHANGED
@@ -75,6 +75,9 @@ module Adyen
75
75
  when 'Management'
76
76
  url = "https://management-#{@env}.adyen.com"
77
77
  supports_live_url_prefix = false
78
+ when 'TerminalCloudAPI'
79
+ url = "https://terminal-api-#{@env}.adyen.com"
80
+ supports_live_url_prefix = false
78
81
  else
79
82
  raise ArgumentError, 'Invalid service specified'
80
83
  end
@@ -98,6 +101,8 @@ module Adyen
98
101
  def service_url(service, action, version)
99
102
  if service == "Checkout" && @env == :live
100
103
  return "#{service_url_base(service)}/checkout/v#{version}/#{action}"
104
+ elsif version == nil
105
+ return "#{service_url_base(service)}/#{action}"
101
106
  else
102
107
  return "#{service_url_base(service)}/v#{version}/#{action}"
103
108
  end
@@ -221,6 +226,9 @@ module Adyen
221
226
  # delete has no response.body (unless it throws an error)
222
227
  if response.body.nil? || response.body === ''
223
228
  AdyenResult.new('{}', response.headers, response.status)
229
+ # terminal API async call returns always 'ok'
230
+ elsif response.body === 'ok'
231
+ AdyenResult.new('{}', response.headers, response.status)
224
232
  else
225
233
  AdyenResult.new(response.body, response.headers, response.status)
226
234
  end
@@ -286,6 +294,10 @@ module Adyen
286
294
  def balance_control_service
287
295
  @balance_control_service ||= Adyen::BalanceControlService.new(self)
288
296
  end
297
+
298
+ def terminal_cloud_api
299
+ @terminal_cloud_api ||= Adyen::TerminalCloudAPI.new(self)
300
+ end
289
301
  end
290
302
  end
291
303
  # rubocop:enable all
@@ -0,0 +1,29 @@
1
+ require_relative '../service'
2
+ module Adyen
3
+ class NetworkTokensApi < Service
4
+ attr_accessor :service, :version
5
+
6
+ def initialize(client, version = DEFAULT_VERSION)
7
+ super(client, version, 'BalancePlatform')
8
+ end
9
+
10
+ def get_network_token(network_token_id, headers: {})
11
+ endpoint = '/networkTokens/{networkTokenId}'.gsub(/{.+?}/, '%s')
12
+ endpoint = endpoint.gsub(%r{^/}, '')
13
+ endpoint = format(endpoint, network_token_id)
14
+
15
+ action = { method: 'get', url: endpoint }
16
+ @client.call_adyen_api(@service, action, {}, headers, @version)
17
+ end
18
+
19
+ def update_network_token(request, network_token_id, headers: {})
20
+ endpoint = '/networkTokens/{networkTokenId}'.gsub(/{.+?}/, '%s')
21
+ endpoint = endpoint.gsub(%r{^/}, '')
22
+ endpoint = format(endpoint, network_token_id)
23
+
24
+ action = { method: 'patch', url: endpoint }
25
+ @client.call_adyen_api(@service, action, request, headers, @version)
26
+ end
27
+
28
+ end
29
+ end
@@ -16,6 +16,15 @@ module Adyen
16
16
  @client.call_adyen_api(@service, action, {}, headers, @version)
17
17
  end
18
18
 
19
+ def list_network_tokens(id, headers: {})
20
+ endpoint = '/paymentInstruments/{id}/networkTokens'.gsub(/{.+?}/, '%s')
21
+ endpoint = endpoint.gsub(%r{^/}, '')
22
+ endpoint = format(endpoint, id)
23
+
24
+ action = { method: 'get', url: endpoint }
25
+ @client.call_adyen_api(@service, action, {}, headers, @version)
26
+ end
27
+
19
28
  def get_pan_of_payment_instrument(id, headers: {})
20
29
  endpoint = '/paymentInstruments/{id}/reveal'.gsub(/{.+?}/, '%s')
21
30
  endpoint = endpoint.gsub(%r{^/}, '')
@@ -3,6 +3,7 @@ require_relative 'balancePlatform/balance_accounts_api'
3
3
  require_relative 'balancePlatform/bank_account_validation_api'
4
4
  require_relative 'balancePlatform/grant_accounts_api'
5
5
  require_relative 'balancePlatform/grant_offers_api'
6
+ require_relative 'balancePlatform/network_tokens_api'
6
7
  require_relative 'balancePlatform/payment_instrument_groups_api'
7
8
  require_relative 'balancePlatform/payment_instruments_api'
8
9
  require_relative 'balancePlatform/platform_api'
@@ -39,6 +40,10 @@ module Adyen
39
40
  @grant_offers_api ||= Adyen::GrantOffersApi.new(@client, @version)
40
41
  end
41
42
 
43
+ def network_tokens_api
44
+ @network_tokens_api ||= Adyen::NetworkTokensApi.new(@client, @version)
45
+ end
46
+
42
47
  def payment_instrument_groups_api
43
48
  @payment_instrument_groups_api ||= Adyen::PaymentInstrumentGroupsApi.new(@client, @version)
44
49
  end
@@ -7,10 +7,10 @@ module Adyen
7
7
  super(client, version, 'Checkout')
8
8
  end
9
9
 
10
- def delete_token_for_stored_payment_details(recurring_id, headers: {}, query_params: {})
11
- endpoint = '/storedPaymentMethods/{recurringId}'.gsub(/{.+?}/, '%s')
10
+ def delete_token_for_stored_payment_details(stored_payment_method_id, headers: {}, query_params: {})
11
+ endpoint = '/storedPaymentMethods/{storedPaymentMethodId}'.gsub(/{.+?}/, '%s')
12
12
  endpoint = endpoint.gsub(%r{^/}, '')
13
- endpoint = format(endpoint, recurring_id)
13
+ endpoint = format(endpoint, stored_payment_method_id)
14
14
  endpoint += create_query_string(query_params)
15
15
  action = { method: 'delete', url: endpoint }
16
16
  @client.call_adyen_api(@service, action, {}, headers, @version)
@@ -0,0 +1,38 @@
1
+ require_relative './service'
2
+ module Adyen
3
+ class TerminalCloudAPI < Service
4
+ attr_accessor :service
5
+
6
+ def initialize(client)
7
+ super(client, nil ,'TerminalCloudAPI')
8
+ end
9
+
10
+ def connected_terminals(request, headers: {})
11
+ endpoint = '/connectedTerminals'.gsub(/{.+?}/, '%s')
12
+ endpoint = endpoint.gsub(%r{^/}, '')
13
+ endpoint = format(endpoint)
14
+
15
+ action = { method: 'post', url: endpoint }
16
+ @client.call_adyen_api(@service, action, request, headers, @version)
17
+ end
18
+
19
+ def sync(request, headers: {})
20
+ endpoint = '/sync'.gsub(/{.+?}/, '%s')
21
+ endpoint = endpoint.gsub(%r{^/}, '')
22
+ endpoint = format(endpoint)
23
+
24
+ action = { method: 'post', url: endpoint }
25
+ @client.call_adyen_api(@service, action, request, headers, @version)
26
+ end
27
+
28
+ def async(request, headers: {})
29
+ endpoint = '/async'.gsub(/{.+?}/, '%s')
30
+ endpoint = endpoint.gsub(%r{^/}, '')
31
+ endpoint = format(endpoint)
32
+
33
+ action = { method: 'post', url: endpoint }
34
+ @client.call_adyen_api(@service, action, request, headers, @version)
35
+ end
36
+
37
+ end
38
+ end
data/lib/adyen/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module Adyen
2
2
  NAME = 'adyen-ruby-api-library'.freeze
3
- VERSION = '7.0.3'.freeze
3
+ VERSION = '7.1.0'.freeze
4
4
  end
@@ -19,3 +19,4 @@ require_relative 'adyen/services/transfers'
19
19
  require_relative 'adyen/services/management'
20
20
  require_relative 'adyen/services/storedValue'
21
21
  require_relative 'adyen/services/balanceControlService'
22
+ require_relative 'adyen/services/terminalCloudAPI'
data/spec/client_spec.rb CHANGED
@@ -236,4 +236,23 @@ RSpec.describe Adyen do
236
236
  expect(client.service_url('PosTerminalManagement', 'assignTerminals', '1'))
237
237
  .to eq('https://postfmapi-test.adyen.com/postfmapi/terminal/v1/assignTerminals')
238
238
  end
239
+
240
+ it 'checks the creation of TerminalCloudAPI sync url' do
241
+ client = Adyen::Client.new(api_key: 'api_key', env: :test)
242
+ expect(client.service_url('TerminalCloudAPI', 'sync', nil))
243
+ .to eq('https://terminal-api-test.adyen.com/sync')
244
+ end
245
+
246
+ it 'checks the creation of TerminalCloudAPI async url' do
247
+ client = Adyen::Client.new(api_key: 'api_key', env: :test)
248
+ expect(client.service_url('TerminalCloudAPI', 'async', nil))
249
+ .to eq('https://terminal-api-test.adyen.com/async')
250
+ end
251
+
252
+ it 'checks the creation of TerminalCloudAPI connectedTerminals url' do
253
+ client = Adyen::Client.new(api_key: 'api_key', env: :test)
254
+ expect(client.service_url('TerminalCloudAPI', 'connectedTerminals', nil))
255
+ .to eq('https://terminal-api-test.adyen.com/connectedTerminals')
256
+
257
+ end
239
258
  end
@@ -0,0 +1,3 @@
1
+ {
2
+ "merchantAccount": "YourMerchantAccount"
3
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "SaleToPOIRequest": {
3
+ "MessageHeader": {
4
+ "MessageClass": "Service",
5
+ "MessageCategory": "Payment",
6
+ "MessageType": "Request",
7
+ "ServiceID": "1233094855",
8
+ "SaleID": "POSSystemID12345",
9
+ "POIID": "V400m-1234123412",
10
+ "ProtocolVersion": "3.0"
11
+ },
12
+ "PaymentRequest": {
13
+ "SaleData": {
14
+ "SaleTransactionID": {
15
+ "TransactionID": "123456764",
16
+ "TimeStamp": "2023-08-23T09:48:55"
17
+ },
18
+ "SaleToAcquirerData": "eyJhcHBsaWNhdGlvbkluZm8iOnsiYWR5ZW5MaWJyYXJ5Ijp7Im5hbWUiOiJhZ....",
19
+ "TokenRequestedType": "Transaction"
20
+ },
21
+ "PaymentTransaction": {
22
+ "AmountsReq": {
23
+ "Currency": "EUR",
24
+ "RequestedAmount": 10
25
+ }
26
+ }
27
+ }
28
+ }
29
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "uniqueTerminalIds": [
3
+ "V400m-1234123412"
4
+ ]
5
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "SaleToPOIResponse":{
3
+ "MessageHeader":{},
4
+ "PaymentResponse":{
5
+ "POIData":{
6
+ "POITransactionID":{
7
+ "TransactionID": "oLkO0012498220087000.KHQC5N7G84BLNK43"
8
+ }
9
+ },
10
+ "Response":{
11
+ "Result":"Success",
12
+ "AdditionalResponse":"...shopperEmail=shoppersemail%40address.com..."
13
+ }
14
+ },
15
+ "PaymentReceipt":{}
16
+ }
17
+ }
18
+
@@ -0,0 +1,91 @@
1
+ require 'spec_helper'
2
+ require 'json'
3
+
4
+ RSpec.describe Adyen::TerminalCloudAPI, service: 'TerminalCloudAPI' do
5
+ before(:all) do
6
+ @shared_values = {
7
+ client: create_client(:api_key),
8
+ service: 'TerminalCloudAPI'
9
+ }
10
+ end
11
+
12
+ it 'makes a connectedTerminals POST call' do
13
+ request_body = JSON.parse(json_from_file('mocks/requests/TerminalCloudAPI/connected_terminals.json'))
14
+
15
+ response_body = json_from_file('mocks/responses/TerminalCloudAPI/connected_terminals.json')
16
+
17
+ url = @shared_values[:client].service_url(@shared_values[:service], 'connectedTerminals', nil)
18
+ WebMock.stub_request(:post, url)
19
+ .with(
20
+ headers: {
21
+ 'x-api-key' => @shared_values[:client].api_key
22
+ }
23
+ )
24
+ .to_return(
25
+ body: response_body
26
+ )
27
+
28
+ result = @shared_values[:client].terminal_cloud_api.connected_terminals(request_body)
29
+ response_hash = result.response
30
+
31
+ expect(result.status)
32
+ .to eq(200)
33
+ expect(response_hash)
34
+ .to eq(JSON.parse(response_body))
35
+ expect(response_hash)
36
+ .to be_a Adyen::HashWithAccessors
37
+ expect(response_hash)
38
+ .to be_a_kind_of Hash
39
+ end
40
+
41
+ it 'makes a sync payment POST call' do
42
+ request_body = JSON.parse(json_from_file('mocks/requests/TerminalCloudAPI/sync_payment.json'))
43
+
44
+ response_body = json_from_file('mocks/responses/TerminalCloudAPI/sync_payment.json')
45
+
46
+ url = @shared_values[:client].service_url(@shared_values[:service], 'sync', nil)
47
+ WebMock.stub_request(:post, url)
48
+ .with(
49
+ headers: {
50
+ 'x-api-key' => @shared_values[:client].api_key
51
+ }
52
+ )
53
+ .to_return(
54
+ body: response_body
55
+ )
56
+
57
+ result = @shared_values[:client].terminal_cloud_api.sync(request_body)
58
+ response_hash = result.response
59
+
60
+ expect(result.status)
61
+ .to eq(200)
62
+ expect(response_hash)
63
+ .to eq(JSON.parse(response_body))
64
+ expect(response_hash)
65
+ .to be_a Adyen::HashWithAccessors
66
+ expect(response_hash)
67
+ .to be_a_kind_of Hash
68
+ end
69
+
70
+ it 'makes an async payment POST call' do
71
+ request_body = JSON.parse(json_from_file('mocks/requests/TerminalCloudAPI/sync_payment.json'))
72
+
73
+ url = @shared_values[:client].service_url(@shared_values[:service], 'async', nil)
74
+ WebMock.stub_request(:post, url)
75
+ .with(
76
+ headers: {
77
+ 'x-api-key' => @shared_values[:client].api_key
78
+ }
79
+ )
80
+ .to_return(
81
+ body: 'ok'
82
+ )
83
+
84
+ result = @shared_values[:client].terminal_cloud_api.async(request_body)
85
+ response_hash = result.response
86
+
87
+ expect(result.status)
88
+ .to eq(200)
89
+ end
90
+ end
91
+ # rubocop:enable Metrics/BlockLength
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: 7.0.3
4
+ version: 7.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adyen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-08-23 00:00:00.000000000 Z
11
+ date: 2023-08-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -126,6 +126,7 @@ files:
126
126
  - lib/adyen/services/balancePlatform/bank_account_validation_api.rb
127
127
  - lib/adyen/services/balancePlatform/grant_accounts_api.rb
128
128
  - lib/adyen/services/balancePlatform/grant_offers_api.rb
129
+ - lib/adyen/services/balancePlatform/network_tokens_api.rb
129
130
  - lib/adyen/services/balancePlatform/payment_instrument_groups_api.rb
130
131
  - lib/adyen/services/balancePlatform/payment_instruments_api.rb
131
132
  - lib/adyen/services/balancePlatform/platform_api.rb
@@ -188,6 +189,7 @@ files:
188
189
  - lib/adyen/services/recurring.rb
189
190
  - lib/adyen/services/service.rb
190
191
  - lib/adyen/services/storedValue.rb
192
+ - lib/adyen/services/terminalCloudAPI.rb
191
193
  - lib/adyen/services/transfers.rb
192
194
  - lib/adyen/services/transfers/capital_api.rb
193
195
  - lib/adyen/services/transfers/transactions_api.rb
@@ -298,6 +300,8 @@ files:
298
300
  - spec/mocks/requests/Terminal/assign_terminals.json
299
301
  - spec/mocks/requests/Terminal/find_terminal.json
300
302
  - spec/mocks/requests/Terminal/get_terminals_under_account.json
303
+ - spec/mocks/requests/TerminalCloudAPI/connected_terminals.json
304
+ - spec/mocks/requests/TerminalCloudAPI/sync_payment.json
301
305
  - spec/mocks/requests/Transfers/get_transactions.json
302
306
  - spec/mocks/requests/Transfers/make_transfer.json
303
307
  - spec/mocks/responses/Account/check_account_holder.json
@@ -394,6 +398,8 @@ files:
394
398
  - spec/mocks/responses/Terminal/assign_terminals.json
395
399
  - spec/mocks/responses/Terminal/find_terminal.json
396
400
  - spec/mocks/responses/Terminal/get_terminals_under_account.json
401
+ - spec/mocks/responses/TerminalCloudAPI/connected_terminals.json
402
+ - spec/mocks/responses/TerminalCloudAPI/sync_payment.json
397
403
  - spec/mocks/responses/Transfers/get_transactions.json
398
404
  - spec/mocks/responses/Transfers/make_transfer.json
399
405
  - spec/mocks/responses/Webhooks/backslash_webhook.json
@@ -408,6 +414,7 @@ files:
408
414
  - spec/service_spec.rb
409
415
  - spec/spec_helper.rb
410
416
  - spec/stored_value_spec.rb
417
+ - spec/terminal_cloud_api_spec.rb
411
418
  - spec/transfers_spec.rb
412
419
  - spec/utils/hmac_validator_spec.rb
413
420
  - templates/api-single.mustache