gocardless_pro 2.12.0 → 2.13.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.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +50 -0
  3. data/README.md +15 -1
  4. data/gocardless_pro.gemspec +2 -0
  5. data/lib/gocardless_pro.rb +3 -0
  6. data/lib/gocardless_pro/api_service.rb +3 -0
  7. data/lib/gocardless_pro/client.rb +6 -1
  8. data/lib/gocardless_pro/error/invalid_state_error.rb +2 -0
  9. data/lib/gocardless_pro/resources/creditor.rb +4 -0
  10. data/lib/gocardless_pro/resources/customer.rb +5 -0
  11. data/lib/gocardless_pro/resources/customer_notification.rb +97 -0
  12. data/lib/gocardless_pro/resources/event.rb +2 -0
  13. data/lib/gocardless_pro/resources/mandate_import.rb +1 -1
  14. data/lib/gocardless_pro/resources/mandate_import_entry.rb +1 -1
  15. data/lib/gocardless_pro/services/creditor_bank_accounts_service.rb +20 -2
  16. data/lib/gocardless_pro/services/creditors_service.rb +10 -1
  17. data/lib/gocardless_pro/services/customer_bank_accounts_service.rb +20 -2
  18. data/lib/gocardless_pro/services/customer_notifications_service.rb +66 -0
  19. data/lib/gocardless_pro/services/customers_service.rb +10 -1
  20. data/lib/gocardless_pro/services/mandate_imports_service.rb +40 -6
  21. data/lib/gocardless_pro/services/mandates_service.rb +30 -3
  22. data/lib/gocardless_pro/services/payments_service.rb +30 -3
  23. data/lib/gocardless_pro/services/redirect_flows_service.rb +20 -2
  24. data/lib/gocardless_pro/services/refunds_service.rb +11 -6
  25. data/lib/gocardless_pro/services/subscriptions_service.rb +20 -2
  26. data/lib/gocardless_pro/version.rb +1 -1
  27. data/spec/resources/customer_notification_spec.rb +73 -0
  28. data/spec/resources/customer_spec.rb +13 -0
  29. data/spec/resources/event_spec.rb +7 -0
  30. data/spec/services/creditor_bank_accounts_service_spec.rb +33 -4
  31. data/spec/services/creditors_service_spec.rb +33 -4
  32. data/spec/services/customer_bank_accounts_service_spec.rb +33 -4
  33. data/spec/services/customer_notifications_service_spec.rb +84 -0
  34. data/spec/services/customers_service_spec.rb +50 -4
  35. data/spec/services/events_service_spec.rb +11 -0
  36. data/spec/services/mandate_imports_service_spec.rb +33 -4
  37. data/spec/services/mandates_service_spec.rb +33 -4
  38. data/spec/services/payments_service_spec.rb +33 -4
  39. data/spec/services/redirect_flows_service_spec.rb +33 -4
  40. data/spec/services/refunds_service_spec.rb +33 -4
  41. data/spec/services/subscriptions_service_spec.rb +33 -4
  42. metadata +23 -3
  43. data/circle.yml +0 -11
@@ -20,6 +20,7 @@ describe GoCardlessPro::Resources::Event do
20
20
 
21
21
  'action' => 'action-input',
22
22
  'created_at' => 'created_at-input',
23
+ 'customer_notifications' => 'customer_notifications-input',
23
24
  'details' => 'details-input',
24
25
  'id' => 'id-input',
25
26
  'links' => 'links-input',
@@ -44,6 +45,8 @@ describe GoCardlessPro::Resources::Event do
44
45
 
45
46
  expect(get_list_response.records.first.created_at).to eq('created_at-input')
46
47
 
48
+ expect(get_list_response.records.first.customer_notifications).to eq('customer_notifications-input')
49
+
47
50
  expect(get_list_response.records.first.details).to eq('details-input')
48
51
 
49
52
  expect(get_list_response.records.first.id).to eq('id-input')
@@ -70,6 +73,7 @@ describe GoCardlessPro::Resources::Event do
70
73
 
71
74
  'action' => 'action-input',
72
75
  'created_at' => 'created_at-input',
76
+ 'customer_notifications' => 'customer_notifications-input',
73
77
  'details' => 'details-input',
74
78
  'id' => 'id-input',
75
79
  'links' => 'links-input',
@@ -92,6 +96,7 @@ describe GoCardlessPro::Resources::Event do
92
96
 
93
97
  'action' => 'action-input',
94
98
  'created_at' => 'created_at-input',
99
+ 'customer_notifications' => 'customer_notifications-input',
95
100
  'details' => 'details-input',
96
101
  'id' => 'id-input',
97
102
  'links' => 'links-input',
@@ -130,6 +135,7 @@ describe GoCardlessPro::Resources::Event do
130
135
 
131
136
  'action' => 'action-input',
132
137
  'created_at' => 'created_at-input',
138
+ 'customer_notifications' => 'customer_notifications-input',
133
139
  'details' => 'details-input',
134
140
  'id' => 'id-input',
135
141
  'links' => 'links-input',
@@ -162,6 +168,7 @@ describe GoCardlessPro::Resources::Event do
162
168
 
163
169
  'action' => 'action-input',
164
170
  'created_at' => 'created_at-input',
171
+ 'customer_notifications' => 'customer_notifications-input',
165
172
  'details' => 'details-input',
166
173
  'id' => 'id-input',
167
174
  'links' => 'links-input',
@@ -186,10 +186,39 @@ describe GoCardlessPro::Services::CreditorBankAccountsService do
186
186
  )
187
187
  end
188
188
 
189
- it 'fetches the already-created resource' do
190
- post_create_response
191
- expect(post_stub).to have_been_requested
192
- expect(get_stub).to have_been_requested
189
+ context 'with default behaviour' do
190
+ it 'fetches the already-created resource' do
191
+ post_create_response
192
+ expect(post_stub).to have_been_requested
193
+ expect(get_stub).to have_been_requested
194
+ end
195
+ end
196
+
197
+ context 'with on_idempotency_conflict: :raise' do
198
+ let(:client) do
199
+ GoCardlessPro::Client.new(
200
+ access_token: 'SECRET_TOKEN',
201
+ on_idempotency_conflict: :raise
202
+ )
203
+ end
204
+
205
+ it 'raises an IdempotencyConflict error' do
206
+ expect { post_create_response }.
207
+ to raise_error(GoCardlessPro::IdempotencyConflict)
208
+ end
209
+ end
210
+
211
+ context 'with on_idempotency_conflict: :unknown' do
212
+ let(:client) do
213
+ GoCardlessPro::Client.new(
214
+ access_token: 'SECRET_TOKEN',
215
+ on_idempotency_conflict: :unknown
216
+ )
217
+ end
218
+
219
+ it 'raises an ArgumentError' do
220
+ expect { post_create_response }.to raise_error(ArgumentError)
221
+ end
193
222
  end
194
223
  end
195
224
  end
@@ -211,10 +211,39 @@ describe GoCardlessPro::Services::CreditorsService do
211
211
  )
212
212
  end
213
213
 
214
- it 'fetches the already-created resource' do
215
- post_create_response
216
- expect(post_stub).to have_been_requested
217
- expect(get_stub).to have_been_requested
214
+ context 'with default behaviour' do
215
+ it 'fetches the already-created resource' do
216
+ post_create_response
217
+ expect(post_stub).to have_been_requested
218
+ expect(get_stub).to have_been_requested
219
+ end
220
+ end
221
+
222
+ context 'with on_idempotency_conflict: :raise' do
223
+ let(:client) do
224
+ GoCardlessPro::Client.new(
225
+ access_token: 'SECRET_TOKEN',
226
+ on_idempotency_conflict: :raise
227
+ )
228
+ end
229
+
230
+ it 'raises an IdempotencyConflict error' do
231
+ expect { post_create_response }.
232
+ to raise_error(GoCardlessPro::IdempotencyConflict)
233
+ end
234
+ end
235
+
236
+ context 'with on_idempotency_conflict: :unknown' do
237
+ let(:client) do
238
+ GoCardlessPro::Client.new(
239
+ access_token: 'SECRET_TOKEN',
240
+ on_idempotency_conflict: :unknown
241
+ )
242
+ end
243
+
244
+ it 'raises an ArgumentError' do
245
+ expect { post_create_response }.to raise_error(ArgumentError)
246
+ end
218
247
  end
219
248
  end
220
249
  end
@@ -186,10 +186,39 @@ describe GoCardlessPro::Services::CustomerBankAccountsService do
186
186
  )
187
187
  end
188
188
 
189
- it 'fetches the already-created resource' do
190
- post_create_response
191
- expect(post_stub).to have_been_requested
192
- expect(get_stub).to have_been_requested
189
+ context 'with default behaviour' do
190
+ it 'fetches the already-created resource' do
191
+ post_create_response
192
+ expect(post_stub).to have_been_requested
193
+ expect(get_stub).to have_been_requested
194
+ end
195
+ end
196
+
197
+ context 'with on_idempotency_conflict: :raise' do
198
+ let(:client) do
199
+ GoCardlessPro::Client.new(
200
+ access_token: 'SECRET_TOKEN',
201
+ on_idempotency_conflict: :raise
202
+ )
203
+ end
204
+
205
+ it 'raises an IdempotencyConflict error' do
206
+ expect { post_create_response }.
207
+ to raise_error(GoCardlessPro::IdempotencyConflict)
208
+ end
209
+ end
210
+
211
+ context 'with on_idempotency_conflict: :unknown' do
212
+ let(:client) do
213
+ GoCardlessPro::Client.new(
214
+ access_token: 'SECRET_TOKEN',
215
+ on_idempotency_conflict: :unknown
216
+ )
217
+ end
218
+
219
+ it 'raises an ArgumentError' do
220
+ expect { post_create_response }.to raise_error(ArgumentError)
221
+ end
193
222
  end
194
223
  end
195
224
  end
@@ -0,0 +1,84 @@
1
+ require 'spec_helper'
2
+
3
+ describe GoCardlessPro::Services::CustomerNotificationsService do
4
+ let(:client) do
5
+ GoCardlessPro::Client.new(
6
+ access_token: 'SECRET_TOKEN'
7
+ )
8
+ end
9
+
10
+ let(:response_headers) { { 'Content-Type' => 'application/json' } }
11
+
12
+ describe '#handle' do
13
+ subject(:post_response) { client.customer_notifications.handle(resource_id) }
14
+
15
+ let(:resource_id) { 'ABC123' }
16
+
17
+ let!(:stub) do
18
+ # /customer_notifications/%v/actions/handle
19
+ stub_url = '/customer_notifications/:identity/actions/handle'.gsub(':identity', resource_id)
20
+ stub_request(:post, /.*api.gocardless.com#{stub_url}/).to_return(
21
+ body: {
22
+ 'customer_notifications' => {
23
+
24
+ 'action_taken' => 'action_taken-input',
25
+ 'action_taken_at' => 'action_taken_at-input',
26
+ 'action_taken_by' => 'action_taken_by-input',
27
+ 'id' => 'id-input',
28
+ 'links' => 'links-input',
29
+ 'type' => 'type-input',
30
+ },
31
+ }.to_json,
32
+ headers: response_headers
33
+ )
34
+ end
35
+
36
+ it 'wraps the response and calls the right endpoint' do
37
+ expect(post_response).to be_a(GoCardlessPro::Resources::CustomerNotification)
38
+
39
+ expect(stub).to have_been_requested
40
+ end
41
+
42
+ describe 'retry behaviour' do
43
+ it "doesn't retry errors" do
44
+ stub_url = '/customer_notifications/:identity/actions/handle'.gsub(':identity', resource_id)
45
+ stub = stub_request(:post, /.*api.gocardless.com#{stub_url}/).
46
+ to_timeout
47
+
48
+ expect { post_response }.to raise_error(Faraday::TimeoutError)
49
+ expect(stub).to have_been_requested
50
+ end
51
+ end
52
+
53
+ context 'when the request needs a body and custom header' do
54
+ let(:body) { { foo: 'bar' } }
55
+ let(:headers) { { 'Foo' => 'Bar' } }
56
+ subject(:post_response) { client.customer_notifications.handle(resource_id, body, headers) }
57
+
58
+ let(:resource_id) { 'ABC123' }
59
+
60
+ let!(:stub) do
61
+ # /customer_notifications/%v/actions/handle
62
+ stub_url = '/customer_notifications/:identity/actions/handle'.gsub(':identity', resource_id)
63
+ stub_request(:post, /.*api.gocardless.com#{stub_url}/).
64
+ with(
65
+ body: { foo: 'bar' },
66
+ headers: { 'Foo' => 'Bar' }
67
+ ).to_return(
68
+ body: {
69
+ 'customer_notifications' => {
70
+
71
+ 'action_taken' => 'action_taken-input',
72
+ 'action_taken_at' => 'action_taken_at-input',
73
+ 'action_taken_by' => 'action_taken_by-input',
74
+ 'id' => 'id-input',
75
+ 'links' => 'links-input',
76
+ 'type' => 'type-input',
77
+ },
78
+ }.to_json,
79
+ headers: response_headers
80
+ )
81
+ end
82
+ end
83
+ end
84
+ end
@@ -29,6 +29,7 @@ describe GoCardlessPro::Services::CustomersService do
29
29
  'id' => 'id-input',
30
30
  'language' => 'language-input',
31
31
  'metadata' => 'metadata-input',
32
+ 'phone_number' => 'phone_number-input',
32
33
  'postal_code' => 'postal_code-input',
33
34
  'region' => 'region-input',
34
35
  'swedish_identity_number' => 'swedish_identity_number-input',
@@ -55,6 +56,7 @@ describe GoCardlessPro::Services::CustomersService do
55
56
  'id' => 'id-input',
56
57
  'language' => 'language-input',
57
58
  'metadata' => 'metadata-input',
59
+ 'phone_number' => 'phone_number-input',
58
60
  'postal_code' => 'postal_code-input',
59
61
  'region' => 'region-input',
60
62
  'swedish_identity_number' => 'swedish_identity_number-input',
@@ -81,6 +83,7 @@ describe GoCardlessPro::Services::CustomersService do
81
83
  'id' => 'id-input',
82
84
  'language' => 'language-input',
83
85
  'metadata' => 'metadata-input',
86
+ 'phone_number' => 'phone_number-input',
84
87
  'postal_code' => 'postal_code-input',
85
88
  'region' => 'region-input',
86
89
  'swedish_identity_number' => 'swedish_identity_number-input',
@@ -163,6 +166,7 @@ describe GoCardlessPro::Services::CustomersService do
163
166
  'id' => 'id-input',
164
167
  'language' => 'language-input',
165
168
  'metadata' => 'metadata-input',
169
+ 'phone_number' => 'phone_number-input',
166
170
  'postal_code' => 'postal_code-input',
167
171
  'region' => 'region-input',
168
172
  'swedish_identity_number' => 'swedish_identity_number-input',
@@ -212,6 +216,7 @@ describe GoCardlessPro::Services::CustomersService do
212
216
  'id' => 'id-input',
213
217
  'language' => 'language-input',
214
218
  'metadata' => 'metadata-input',
219
+ 'phone_number' => 'phone_number-input',
215
220
  'postal_code' => 'postal_code-input',
216
221
  'region' => 'region-input',
217
222
  'swedish_identity_number' => 'swedish_identity_number-input',
@@ -221,10 +226,39 @@ describe GoCardlessPro::Services::CustomersService do
221
226
  )
222
227
  end
223
228
 
224
- it 'fetches the already-created resource' do
225
- post_create_response
226
- expect(post_stub).to have_been_requested
227
- expect(get_stub).to have_been_requested
229
+ context 'with default behaviour' do
230
+ it 'fetches the already-created resource' do
231
+ post_create_response
232
+ expect(post_stub).to have_been_requested
233
+ expect(get_stub).to have_been_requested
234
+ end
235
+ end
236
+
237
+ context 'with on_idempotency_conflict: :raise' do
238
+ let(:client) do
239
+ GoCardlessPro::Client.new(
240
+ access_token: 'SECRET_TOKEN',
241
+ on_idempotency_conflict: :raise
242
+ )
243
+ end
244
+
245
+ it 'raises an IdempotencyConflict error' do
246
+ expect { post_create_response }.
247
+ to raise_error(GoCardlessPro::IdempotencyConflict)
248
+ end
249
+ end
250
+
251
+ context 'with on_idempotency_conflict: :unknown' do
252
+ let(:client) do
253
+ GoCardlessPro::Client.new(
254
+ access_token: 'SECRET_TOKEN',
255
+ on_idempotency_conflict: :unknown
256
+ )
257
+ end
258
+
259
+ it 'raises an ArgumentError' do
260
+ expect { post_create_response }.to raise_error(ArgumentError)
261
+ end
228
262
  end
229
263
  end
230
264
  end
@@ -251,6 +285,7 @@ describe GoCardlessPro::Services::CustomersService do
251
285
  'id' => 'id-input',
252
286
  'language' => 'language-input',
253
287
  'metadata' => 'metadata-input',
288
+ 'phone_number' => 'phone_number-input',
254
289
  'postal_code' => 'postal_code-input',
255
290
  'region' => 'region-input',
256
291
  'swedish_identity_number' => 'swedish_identity_number-input',
@@ -302,6 +337,8 @@ describe GoCardlessPro::Services::CustomersService do
302
337
 
303
338
  expect(get_list_response.records.first.metadata).to eq('metadata-input')
304
339
 
340
+ expect(get_list_response.records.first.phone_number).to eq('phone_number-input')
341
+
305
342
  expect(get_list_response.records.first.postal_code).to eq('postal_code-input')
306
343
 
307
344
  expect(get_list_response.records.first.region).to eq('region-input')
@@ -361,6 +398,7 @@ describe GoCardlessPro::Services::CustomersService do
361
398
  'id' => 'id-input',
362
399
  'language' => 'language-input',
363
400
  'metadata' => 'metadata-input',
401
+ 'phone_number' => 'phone_number-input',
364
402
  'postal_code' => 'postal_code-input',
365
403
  'region' => 'region-input',
366
404
  'swedish_identity_number' => 'swedish_identity_number-input',
@@ -393,6 +431,7 @@ describe GoCardlessPro::Services::CustomersService do
393
431
  'id' => 'id-input',
394
432
  'language' => 'language-input',
395
433
  'metadata' => 'metadata-input',
434
+ 'phone_number' => 'phone_number-input',
396
435
  'postal_code' => 'postal_code-input',
397
436
  'region' => 'region-input',
398
437
  'swedish_identity_number' => 'swedish_identity_number-input',
@@ -434,6 +473,7 @@ describe GoCardlessPro::Services::CustomersService do
434
473
  'id' => 'id-input',
435
474
  'language' => 'language-input',
436
475
  'metadata' => 'metadata-input',
476
+ 'phone_number' => 'phone_number-input',
437
477
  'postal_code' => 'postal_code-input',
438
478
  'region' => 'region-input',
439
479
  'swedish_identity_number' => 'swedish_identity_number-input',
@@ -466,6 +506,7 @@ describe GoCardlessPro::Services::CustomersService do
466
506
  'id' => 'id-input',
467
507
  'language' => 'language-input',
468
508
  'metadata' => 'metadata-input',
509
+ 'phone_number' => 'phone_number-input',
469
510
  'postal_code' => 'postal_code-input',
470
511
  'region' => 'region-input',
471
512
  'swedish_identity_number' => 'swedish_identity_number-input',
@@ -503,6 +544,7 @@ describe GoCardlessPro::Services::CustomersService do
503
544
  'id' => 'id-input',
504
545
  'language' => 'language-input',
505
546
  'metadata' => 'metadata-input',
547
+ 'phone_number' => 'phone_number-input',
506
548
  'postal_code' => 'postal_code-input',
507
549
  'region' => 'region-input',
508
550
  'swedish_identity_number' => 'swedish_identity_number-input',
@@ -538,6 +580,7 @@ describe GoCardlessPro::Services::CustomersService do
538
580
  'id' => 'id-input',
539
581
  'language' => 'language-input',
540
582
  'metadata' => 'metadata-input',
583
+ 'phone_number' => 'phone_number-input',
541
584
  'postal_code' => 'postal_code-input',
542
585
  'region' => 'region-input',
543
586
  'swedish_identity_number' => 'swedish_identity_number-input',
@@ -586,6 +629,7 @@ describe GoCardlessPro::Services::CustomersService do
586
629
  'id' => 'id-input',
587
630
  'language' => 'language-input',
588
631
  'metadata' => 'metadata-input',
632
+ 'phone_number' => 'phone_number-input',
589
633
  'postal_code' => 'postal_code-input',
590
634
  'region' => 'region-input',
591
635
  'swedish_identity_number' => 'swedish_identity_number-input',
@@ -628,6 +672,7 @@ describe GoCardlessPro::Services::CustomersService do
628
672
  'id' => 'id-input',
629
673
  'language' => 'language-input',
630
674
  'metadata' => 'metadata-input',
675
+ 'phone_number' => 'phone_number-input',
631
676
  'postal_code' => 'postal_code-input',
632
677
  'region' => 'region-input',
633
678
  'swedish_identity_number' => 'swedish_identity_number-input',
@@ -747,6 +792,7 @@ describe GoCardlessPro::Services::CustomersService do
747
792
  'id' => 'id-input',
748
793
  'language' => 'language-input',
749
794
  'metadata' => 'metadata-input',
795
+ 'phone_number' => 'phone_number-input',
750
796
  'postal_code' => 'postal_code-input',
751
797
  'region' => 'region-input',
752
798
  'swedish_identity_number' => 'swedish_identity_number-input',
@@ -19,6 +19,7 @@ describe GoCardlessPro::Services::EventsService do
19
19
 
20
20
  'action' => 'action-input',
21
21
  'created_at' => 'created_at-input',
22
+ 'customer_notifications' => 'customer_notifications-input',
22
23
  'details' => 'details-input',
23
24
  'id' => 'id-input',
24
25
  'links' => 'links-input',
@@ -48,6 +49,8 @@ describe GoCardlessPro::Services::EventsService do
48
49
 
49
50
  expect(get_list_response.records.first.created_at).to eq('created_at-input')
50
51
 
52
+ expect(get_list_response.records.first.customer_notifications).to eq('customer_notifications-input')
53
+
51
54
  expect(get_list_response.records.first.details).to eq('details-input')
52
55
 
53
56
  expect(get_list_response.records.first.id).to eq('id-input')
@@ -97,6 +100,7 @@ describe GoCardlessPro::Services::EventsService do
97
100
 
98
101
  'action' => 'action-input',
99
102
  'created_at' => 'created_at-input',
103
+ 'customer_notifications' => 'customer_notifications-input',
100
104
  'details' => 'details-input',
101
105
  'id' => 'id-input',
102
106
  'links' => 'links-input',
@@ -119,6 +123,7 @@ describe GoCardlessPro::Services::EventsService do
119
123
 
120
124
  'action' => 'action-input',
121
125
  'created_at' => 'created_at-input',
126
+ 'customer_notifications' => 'customer_notifications-input',
122
127
  'details' => 'details-input',
123
128
  'id' => 'id-input',
124
129
  'links' => 'links-input',
@@ -150,6 +155,7 @@ describe GoCardlessPro::Services::EventsService do
150
155
 
151
156
  'action' => 'action-input',
152
157
  'created_at' => 'created_at-input',
158
+ 'customer_notifications' => 'customer_notifications-input',
153
159
  'details' => 'details-input',
154
160
  'id' => 'id-input',
155
161
  'links' => 'links-input',
@@ -172,6 +178,7 @@ describe GoCardlessPro::Services::EventsService do
172
178
 
173
179
  'action' => 'action-input',
174
180
  'created_at' => 'created_at-input',
181
+ 'customer_notifications' => 'customer_notifications-input',
175
182
  'details' => 'details-input',
176
183
  'id' => 'id-input',
177
184
  'links' => 'links-input',
@@ -199,6 +206,7 @@ describe GoCardlessPro::Services::EventsService do
199
206
 
200
207
  'action' => 'action-input',
201
208
  'created_at' => 'created_at-input',
209
+ 'customer_notifications' => 'customer_notifications-input',
202
210
  'details' => 'details-input',
203
211
  'id' => 'id-input',
204
212
  'links' => 'links-input',
@@ -224,6 +232,7 @@ describe GoCardlessPro::Services::EventsService do
224
232
 
225
233
  'action' => 'action-input',
226
234
  'created_at' => 'created_at-input',
235
+ 'customer_notifications' => 'customer_notifications-input',
227
236
  'details' => 'details-input',
228
237
  'id' => 'id-input',
229
238
  'links' => 'links-input',
@@ -262,6 +271,7 @@ describe GoCardlessPro::Services::EventsService do
262
271
 
263
272
  'action' => 'action-input',
264
273
  'created_at' => 'created_at-input',
274
+ 'customer_notifications' => 'customer_notifications-input',
265
275
  'details' => 'details-input',
266
276
  'id' => 'id-input',
267
277
  'links' => 'links-input',
@@ -294,6 +304,7 @@ describe GoCardlessPro::Services::EventsService do
294
304
 
295
305
  'action' => 'action-input',
296
306
  'created_at' => 'created_at-input',
307
+ 'customer_notifications' => 'customer_notifications-input',
297
308
  'details' => 'details-input',
298
309
  'id' => 'id-input',
299
310
  'links' => 'links-input',