currency_cloud 0.16.2 → 1.2.1

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 (72) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +3 -8
  3. data/README.md +4 -8
  4. data/currency_cloud.gemspec +4 -8
  5. data/lib/currency_cloud/errors/api_error.rb +6 -2
  6. data/lib/currency_cloud/payment.rb +4 -0
  7. data/lib/currency_cloud/payment_tracking_info.rb +5 -0
  8. data/lib/currency_cloud/version.rb +2 -2
  9. data/lib/currency_cloud/withdrawal_account.rb +17 -0
  10. data/lib/currency_cloud/withdrawal_account_funds.rb +5 -0
  11. data/lib/currency_cloud/withdrawal_accounts.rb +6 -0
  12. data/spec/integration/funding_account_spec.rb +29 -0
  13. data/spec/integration/payments_spec.rb +29 -0
  14. data/spec/integration/rates_spec.rb +8 -0
  15. data/spec/integration/reference_spec.rb +5 -3
  16. data/spec/integration/withdrawal_accounts_spec.rb +69 -0
  17. data/spec/support/vcr_cassettes/Accounts/can_retrieve_account_payment_charges_settings.yml +2 -2
  18. data/spec/support/vcr_cassettes/Accounts/can_update_account_payment_charges_settings.yml +2 -2
  19. data/spec/support/vcr_cassettes/Conversions/can_cancel_conversion/with_notes/has_a_non-empty_notes_attribute.yml +4 -4
  20. data/spec/support/vcr_cassettes/Conversions/can_cancel_conversion/without_notes/has_a_empty_notes_attribute.yml +4 -4
  21. data/spec/support/vcr_cassettes/Conversions/can_cancellation_quote.yml +3 -3
  22. data/spec/support/vcr_cassettes/Conversions/can_date_change_conversion.yml +4 -4
  23. data/spec/support/vcr_cassettes/Conversions/can_retrieve_cancellation_quote.yml +4 -4
  24. data/spec/support/vcr_cassettes/Conversions/can_retrieve_date_change_quote.yml +4 -4
  25. data/spec/support/vcr_cassettes/Conversions/can_retrieve_profit_and_loss.yml +2 -2
  26. data/spec/support/vcr_cassettes/Conversions/can_split_conversion.yml +4 -4
  27. data/spec/support/vcr_cassettes/Conversions/can_split_history.yml +4 -4
  28. data/spec/support/vcr_cassettes/Conversions/can_split_preview.yml +4 -4
  29. data/spec/support/vcr_cassettes/FundingAccounts/can_find.yml +2 -2
  30. data/spec/support/vcr_cassettes/FundingAccounts/can_find_bad_request.yml +142 -0
  31. data/spec/support/vcr_cassettes/FundingAccounts/can_find_missing_currency.yml +122 -0
  32. data/spec/support/vcr_cassettes/FundingAccounts/can_find_unauthorized.yml +62 -0
  33. data/spec/support/vcr_cassettes/IBANs/can_IBANs_for_a_specific_subaccount.yml +2 -2
  34. data/spec/support/vcr_cassettes/IBANs/can_IBANs_for_subaccounts.yml +2 -2
  35. data/spec/support/vcr_cassettes/IBANs/can_find.yml +1 -1
  36. data/spec/support/vcr_cassettes/Payments/can_authorise/when_payment_ids_are_valid.yml +5 -5
  37. data/spec/support/vcr_cassettes/Payments/can_create.yml +3 -3
  38. data/spec/support/vcr_cassettes/Payments/can_create_bad_request.yml +191 -0
  39. data/spec/support/vcr_cassettes/Payments/can_get_the_submission.yml +4 -4
  40. data/spec/support/vcr_cassettes/Payments/can_retrieve_confirmation.yml +3 -3
  41. data/spec/support/vcr_cassettes/Payments/can_retrieve_payment_delivery_date.yml +2 -2
  42. data/spec/support/vcr_cassettes/Payments/can_retrieve_payment_tracking_info.yml +291 -0
  43. data/spec/support/vcr_cassettes/Payments/can_retrieve_quote_payment_fee.yml +2 -2
  44. data/spec/support/vcr_cassettes/Rates/can_provided_detailed_rate_with_conversion_date_preference.yml +68 -0
  45. data/spec/support/vcr_cassettes/Reference/can_retrieve_bank_details.yml +2 -2
  46. data/spec/support/vcr_cassettes/Reference/can_retrieve_conversion_dates.yml +253 -110
  47. data/spec/support/vcr_cassettes/Reference/can_retrieve_currencies.yml +2 -2
  48. data/spec/support/vcr_cassettes/Reference/can_retrieve_payer_required_details.yml +2 -2
  49. data/spec/support/vcr_cassettes/Reference/can_retrieve_payment_dates.yml +2 -2
  50. data/spec/support/vcr_cassettes/Reference/can_retrieve_payment_fee_rules.yml +1 -1
  51. data/spec/support/vcr_cassettes/Reference/can_retrieve_payment_purpose_codes.yml +2 -2
  52. data/spec/support/vcr_cassettes/Reference/can_retrieve_settlement_accounts.yml +2 -2
  53. data/spec/support/vcr_cassettes/Reports/can_create_payments_report.yml +2 -2
  54. data/spec/support/vcr_cassettes/Reports/can_find_report_requests.yml +2 -2
  55. data/spec/support/vcr_cassettes/Reports/can_retrieve_report_request.yml +2 -2
  56. data/spec/support/vcr_cassettes/Transactions/can_retrieve_sender_details.yml +2 -2
  57. data/spec/support/vcr_cassettes/Transfers/can_create.yml +2 -2
  58. data/spec/support/vcr_cassettes/Transfers/can_find.yml +3 -3
  59. data/spec/support/vcr_cassettes/Transfers/can_retrieve.yml +3 -3
  60. data/spec/support/vcr_cassettes/VirtualAccounts/can_find.yml +2 -2
  61. data/spec/support/vcr_cassettes/VirtualAccounts/can_find_VANs_for_a_specific_subaccount.yml +2 -2
  62. data/spec/support/vcr_cassettes/VirtualAccounts/can_find_VANs_for_subaccounts.yml +2 -2
  63. data/spec/support/vcr_cassettes/WithdrawalAccounts/can_find_withdrawal_accounts.yml +133 -0
  64. data/spec/support/vcr_cassettes/WithdrawalAccounts/can_find_withdrawal_accounts2.yml +140 -0
  65. data/spec/support/vcr_cassettes/WithdrawalAccounts/can_pull_funds.yml +140 -0
  66. metadata +44 -31
  67. data/lib/currency_cloud/settlement.rb +0 -55
  68. data/spec/integration/settlements_spec.rb +0 -66
  69. data/spec/support/vcr_cassettes/Settlements/can_add_conversion.yml +0 -152
  70. data/spec/support/vcr_cassettes/Settlements/can_release.yml +0 -119
  71. data/spec/support/vcr_cassettes/Settlements/can_remove_conversion.yml +0 -119
  72. data/spec/support/vcr_cassettes/Settlements/can_unrelease.yml +0 -119
@@ -0,0 +1,140 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://devapi.currencycloud.com/v2/authenticate/api
6
+ body:
7
+ encoding: UTF-8
8
+ string: login_id=development%40currencycloud.com&api_key=deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
9
+ headers:
10
+ User-Agent:
11
+ - CurrencyCloudSDK/2.0 Ruby/1.2.1
12
+ response:
13
+ status:
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ Date:
18
+ - Tue, 06 Oct 2020 14:57:04 GMT
19
+ Content-Type:
20
+ - application/json;charset=utf-8
21
+ Transfer-Encoding:
22
+ - chunked
23
+ Connection:
24
+ - keep-alive
25
+ Set-Cookie:
26
+ - AWSALB=+5Bn07KhTyd8ay/xxyjs4ZHckx+wkDTfrA80GorY54ZviIp/vvD/sBmk/jf5S5i1YrEEgjnAFwp3USqW3T89BGjsd9wszWiebB0mbJ/aL4Ets4ZrWBECalxs5pJT;
27
+ Expires=Tue, 13 Oct 2020 14:57:02 GMT; Path=/
28
+ - AWSALBCORS=+5Bn07KhTyd8ay/xxyjs4ZHckx+wkDTfrA80GorY54ZviIp/vvD/sBmk/jf5S5i1YrEEgjnAFwp3USqW3T89BGjsd9wszWiebB0mbJ/aL4Ets4ZrWBECalxs5pJT;
29
+ Expires=Tue, 13 Oct 2020 14:57:02 GMT; Path=/; SameSite=None; Secure
30
+ - __cfduid=d70c09bac27ff94e69a66c56e09ea0e211601996222; expires=Thu, 05-Nov-20
31
+ 14:57:02 GMT; path=/; domain=.currencycloud.com; HttpOnly; SameSite=Lax
32
+ Access-Control-Allow-Origin:
33
+ - "*"
34
+ X-Request-Id:
35
+ - ca2e91bf-0038-4e36-b0a8-5ab248553304
36
+ Access-Control-Allow-Methods:
37
+ - POST
38
+ X-Content-Type-Options:
39
+ - nosniff
40
+ Vary:
41
+ - Origin
42
+ Access-Control-Allow-Headers:
43
+ - authorization,Access-Control-Allow-Origin,Content-Type,SOAPAction,X-Auth-Token,Origin,Authority,User-Agent
44
+ Cf-Cache-Status:
45
+ - DYNAMIC
46
+ Cf-Request-Id:
47
+ - 05a00389200000ce2fb1be0200000001
48
+ Expect-Ct:
49
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
50
+ Strict-Transport-Security:
51
+ - max-age=2592000; includeSubDomains
52
+ Server:
53
+ - cloudflare
54
+ Cf-Ray:
55
+ - 5de03b883b41ce2f-LHR
56
+ body:
57
+ encoding: UTF-8
58
+ string: '{"auth_token":"deadbeefdeadbeefdeadbeefdeadbeef"}'
59
+ http_version:
60
+ recorded_at: Tue, 06 Oct 2020 14:57:04 GMT
61
+ - request:
62
+ method: post
63
+ uri: https://devapi.currencycloud.com/v2/withdrawal_accounts/0886ac00-6ab6-41a6-b0e1-8d3faf2e0de2/pull_funds
64
+ body:
65
+ encoding: UTF-8
66
+ string: reference=PullFunds1&amount=100.0
67
+ headers:
68
+ X-Auth-Token:
69
+ - deadbeefdeadbeefdeadbeefdeadbeef
70
+ User-Agent:
71
+ - CurrencyCloudSDK/2.0 Ruby/1.2.1
72
+ response:
73
+ status:
74
+ code: 200
75
+ message: OK
76
+ headers:
77
+ Date:
78
+ - Tue, 06 Oct 2020 14:58:18 GMT
79
+ Content-Type:
80
+ - application/json; charset=UTF-8
81
+ Transfer-Encoding:
82
+ - chunked
83
+ Connection:
84
+ - keep-alive
85
+ Set-Cookie:
86
+ - AWSALB=zAxJVt+VYDZWl6uY00wpKwEbXjrgXTN+qejbio2A6YS8V+6lBqAR0Jnjlp4JytpEUfEahh/dd7tsj9RU6ZNBzRB/wzZTdwEXJgUsfoK9w6nlmcq8fEHp7KfxeQaZ;
87
+ Expires=Tue, 13 Oct 2020 14:58:18 GMT; Path=/
88
+ - AWSALBCORS=zAxJVt+VYDZWl6uY00wpKwEbXjrgXTN+qejbio2A6YS8V+6lBqAR0Jnjlp4JytpEUfEahh/dd7tsj9RU6ZNBzRB/wzZTdwEXJgUsfoK9w6nlmcq8fEHp7KfxeQaZ;
89
+ Expires=Tue, 13 Oct 2020 14:58:18 GMT; Path=/; SameSite=None; Secure
90
+ - __cfduid=d8cdf69d035d7aafb48f8bef431d260cd1601996298; expires=Thu, 05-Nov-20
91
+ 14:58:18 GMT; path=/; domain=.currencycloud.com; HttpOnly; SameSite=Lax
92
+ Cf-Ipcountry:
93
+ - GB
94
+ Access-Control-Allow-Origin:
95
+ - "*"
96
+ Access-Control-Allow-Methods:
97
+ - DELETE,POST,GET,OPTIONS,PATCH,PUT
98
+ User-Agent:
99
+ - CurrencyCloudSDK/2.0 Ruby/1.2.1
100
+ X-Forwarded-Proto:
101
+ - https
102
+ Cdn-Loop:
103
+ - cloudflare
104
+ Cf-Visitor:
105
+ - '{"scheme":"https"}'
106
+ Accept-Encoding:
107
+ - gzip
108
+ Cf-Connecting-Ip:
109
+ - 217.168.17.4
110
+ X-Forwarded-Port:
111
+ - '443'
112
+ Access-Control-Allow-Headers:
113
+ - authorization,Access-Control-Allow-Origin,Content-Type,SOAPAction,X-Auth-Token,Origin,Authority,User-Agent
114
+ X-Amzn-Trace-Id:
115
+ - Root=1-5f7c860a-483eb0410e5e568b35f74737
116
+ Wso2-Am-Api-Default-Version:
117
+ - 'true'
118
+ X-Auth-Token:
119
+ - deadbeefdeadbeefdeadbeefdeadbeef
120
+ X-Forwarded-For:
121
+ - 217.168.17.4, 141.101.99.87
122
+ Cf-Request-Id:
123
+ - 05a004b1cd00000762bf043200000001
124
+ Cf-Cache-Status:
125
+ - DYNAMIC
126
+ Expect-Ct:
127
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
128
+ Strict-Transport-Security:
129
+ - max-age=2592000; includeSubDomains
130
+ Server:
131
+ - cloudflare
132
+ Cf-Ray:
133
+ - 5de03d62eeb50762-LHR
134
+ body:
135
+ encoding: UTF-8
136
+ string: |-
137
+ { "id": "e2e6b7aa-c9e8-4625-96a6-b97d4baab758", "withdrawal_account_id": "0886ac00-6ab6-41a6-b0e1-8d3faf2e0de2", "reference": "PullFunds1", "amount": "100.00", "created_at": "2020-06-29T08:02:31+00:00"}
138
+ http_version:
139
+ recorded_at: Tue, 06 Oct 2020 14:58:18 GMT
140
+ recorded_with: VCR 5.0.0
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: currency_cloud
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.16.2
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Liam McAndrew
8
8
  - Richard Nienaber
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-03-17 00:00:00.000000000 Z
12
+ date: 2021-09-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: httparty
@@ -29,44 +29,44 @@ dependencies:
29
29
  name: json
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
- - - ">="
32
+ - - "~>"
33
33
  - !ruby/object:Gem::Version
34
- version: '1.8'
34
+ version: 2.3.0
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
- - - ">="
39
+ - - "~>"
40
40
  - !ruby/object:Gem::Version
41
- version: '1.8'
41
+ version: 2.3.0
42
42
  - !ruby/object:Gem::Dependency
43
- name: addressable
43
+ name: rake
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - "<="
46
+ - - "~>"
47
47
  - !ruby/object:Gem::Version
48
- version: 2.4.0
48
+ version: 12.3.3
49
49
  type: :development
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
- - - "<="
53
+ - - "~>"
54
54
  - !ruby/object:Gem::Version
55
- version: 2.4.0
55
+ version: 12.3.3
56
56
  - !ruby/object:Gem::Dependency
57
- name: rake
57
+ name: addressable
58
58
  requirement: !ruby/object:Gem::Requirement
59
59
  requirements:
60
- - - "~>"
60
+ - - "<="
61
61
  - !ruby/object:Gem::Version
62
- version: '10.3'
62
+ version: 2.8.0
63
63
  type: :development
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
- - - "~>"
67
+ - - "<="
68
68
  - !ruby/object:Gem::Version
69
- version: '10.3'
69
+ version: 2.8.0
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: rspec
72
72
  requirement: !ruby/object:Gem::Requirement
@@ -177,6 +177,7 @@ files:
177
177
  - lib/currency_cloud/payment_fee_rule.rb
178
178
  - lib/currency_cloud/payment_report_result.rb
179
179
  - lib/currency_cloud/payment_submission.rb
180
+ - lib/currency_cloud/payment_tracking_info.rb
180
181
  - lib/currency_cloud/purpose_code.rb
181
182
  - lib/currency_cloud/quote_payment_fee.rb
182
183
  - lib/currency_cloud/rate.rb
@@ -191,13 +192,15 @@ files:
191
192
  - lib/currency_cloud/sender.rb
192
193
  - lib/currency_cloud/sender_details_result.rb
193
194
  - lib/currency_cloud/session.rb
194
- - lib/currency_cloud/settlement.rb
195
195
  - lib/currency_cloud/settlement_account.rb
196
196
  - lib/currency_cloud/transaction.rb
197
197
  - lib/currency_cloud/transfer.rb
198
198
  - lib/currency_cloud/version.rb
199
199
  - lib/currency_cloud/virtual_account.rb
200
200
  - lib/currency_cloud/virtual_accounts.rb
201
+ - lib/currency_cloud/withdrawal_account.rb
202
+ - lib/currency_cloud/withdrawal_account_funds.rb
203
+ - lib/currency_cloud/withdrawal_accounts.rb
201
204
  - spec/currency_cloud/request_handler_spec.rb
202
205
  - spec/currency_cloud/resource_spec.rb
203
206
  - spec/currency_cloud_spec.rb
@@ -214,10 +217,10 @@ files:
214
217
  - spec/integration/rates_spec.rb
215
218
  - spec/integration/reference_spec.rb
216
219
  - spec/integration/reports_spec.rb
217
- - spec/integration/settlements_spec.rb
218
220
  - spec/integration/transactions_spec.rb
219
221
  - spec/integration/transfers_spec.rb
220
222
  - spec/integration/virtual_accounts_spec.rb
223
+ - spec/integration/withdrawal_accounts_spec.rb
221
224
  - spec/spec_helper.rb
222
225
  - spec/support/vcr_cassettes/Accounts/can_retrieve_account_payment_charges_settings.yml
223
226
  - spec/support/vcr_cassettes/Accounts/can_update_account_payment_charges_settings.yml
@@ -253,17 +256,23 @@ files:
253
256
  - spec/support/vcr_cassettes/Error/is_raised_when_a_resource_is_not_found.yml
254
257
  - spec/support/vcr_cassettes/Error/is_raised_when_too_many_requests_have_been_issued.yml
255
258
  - spec/support/vcr_cassettes/FundingAccounts/can_find.yml
259
+ - spec/support/vcr_cassettes/FundingAccounts/can_find_bad_request.yml
260
+ - spec/support/vcr_cassettes/FundingAccounts/can_find_missing_currency.yml
261
+ - spec/support/vcr_cassettes/FundingAccounts/can_find_unauthorized.yml
256
262
  - spec/support/vcr_cassettes/IBANs/can_IBANs_for_a_specific_subaccount.yml
257
263
  - spec/support/vcr_cassettes/IBANs/can_IBANs_for_subaccounts.yml
258
264
  - spec/support/vcr_cassettes/IBANs/can_find.yml
259
265
  - spec/support/vcr_cassettes/Payments/can_authorise/when_payment_ids_are_valid.yml
260
266
  - spec/support/vcr_cassettes/Payments/can_create.yml
267
+ - spec/support/vcr_cassettes/Payments/can_create_bad_request.yml
261
268
  - spec/support/vcr_cassettes/Payments/can_get_the_submission.yml
262
269
  - spec/support/vcr_cassettes/Payments/can_retrieve_confirmation.yml
263
270
  - spec/support/vcr_cassettes/Payments/can_retrieve_payment_delivery_date.yml
271
+ - spec/support/vcr_cassettes/Payments/can_retrieve_payment_tracking_info.yml
264
272
  - spec/support/vcr_cassettes/Payments/can_retrieve_quote_payment_fee.yml
265
273
  - spec/support/vcr_cassettes/Rates/can_find.yml
266
274
  - spec/support/vcr_cassettes/Rates/can_provided_detailed_rate.yml
275
+ - spec/support/vcr_cassettes/Rates/can_provided_detailed_rate_with_conversion_date_preference.yml
267
276
  - spec/support/vcr_cassettes/Reference/can_retrieve_bank_details.yml
268
277
  - spec/support/vcr_cassettes/Reference/can_retrieve_beneficiary_required_details.yml
269
278
  - spec/support/vcr_cassettes/Reference/can_retrieve_conversion_dates.yml
@@ -277,10 +286,6 @@ files:
277
286
  - spec/support/vcr_cassettes/Reports/can_create_payments_report.yml
278
287
  - spec/support/vcr_cassettes/Reports/can_find_report_requests.yml
279
288
  - spec/support/vcr_cassettes/Reports/can_retrieve_report_request.yml
280
- - spec/support/vcr_cassettes/Settlements/can_add_conversion.yml
281
- - spec/support/vcr_cassettes/Settlements/can_release.yml
282
- - spec/support/vcr_cassettes/Settlements/can_remove_conversion.yml
283
- - spec/support/vcr_cassettes/Settlements/can_unrelease.yml
284
289
  - spec/support/vcr_cassettes/Transactions/can_retrieve_sender_details.yml
285
290
  - spec/support/vcr_cassettes/Transfers/can_create.yml
286
291
  - spec/support/vcr_cassettes/Transfers/can_find.yml
@@ -288,11 +293,14 @@ files:
288
293
  - spec/support/vcr_cassettes/VirtualAccounts/can_find.yml
289
294
  - spec/support/vcr_cassettes/VirtualAccounts/can_find_VANs_for_a_specific_subaccount.yml
290
295
  - spec/support/vcr_cassettes/VirtualAccounts/can_find_VANs_for_subaccounts.yml
296
+ - spec/support/vcr_cassettes/WithdrawalAccounts/can_find_withdrawal_accounts.yml
297
+ - spec/support/vcr_cassettes/WithdrawalAccounts/can_find_withdrawal_accounts2.yml
298
+ - spec/support/vcr_cassettes/WithdrawalAccounts/can_pull_funds.yml
291
299
  homepage: https://github.com/Currencycloud/currencycloud-ruby/
292
300
  licenses:
293
301
  - MIT
294
302
  metadata: {}
295
- post_install_message:
303
+ post_install_message:
296
304
  rdoc_options: []
297
305
  require_paths:
298
306
  - lib
@@ -300,7 +308,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
300
308
  requirements:
301
309
  - - ">="
302
310
  - !ruby/object:Gem::Version
303
- version: '1.9'
311
+ version: '2.5'
304
312
  required_rubygems_version: !ruby/object:Gem::Requirement
305
313
  requirements:
306
314
  - - ">="
@@ -308,7 +316,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
308
316
  version: '0'
309
317
  requirements: []
310
318
  rubygems_version: 3.0.6
311
- signing_key:
319
+ signing_key:
312
320
  specification_version: 4
313
321
  summary: Ruby SDK for the Currency Cloud API
314
322
  test_files:
@@ -328,10 +336,10 @@ test_files:
328
336
  - spec/integration/rates_spec.rb
329
337
  - spec/integration/reference_spec.rb
330
338
  - spec/integration/reports_spec.rb
331
- - spec/integration/settlements_spec.rb
332
339
  - spec/integration/transactions_spec.rb
333
340
  - spec/integration/transfers_spec.rb
334
341
  - spec/integration/virtual_accounts_spec.rb
342
+ - spec/integration/withdrawal_accounts_spec.rb
335
343
  - spec/spec_helper.rb
336
344
  - spec/support/vcr_cassettes/Accounts/can_retrieve_account_payment_charges_settings.yml
337
345
  - spec/support/vcr_cassettes/Accounts/can_update_account_payment_charges_settings.yml
@@ -367,17 +375,23 @@ test_files:
367
375
  - spec/support/vcr_cassettes/Error/is_raised_when_a_resource_is_not_found.yml
368
376
  - spec/support/vcr_cassettes/Error/is_raised_when_too_many_requests_have_been_issued.yml
369
377
  - spec/support/vcr_cassettes/FundingAccounts/can_find.yml
378
+ - spec/support/vcr_cassettes/FundingAccounts/can_find_bad_request.yml
379
+ - spec/support/vcr_cassettes/FundingAccounts/can_find_missing_currency.yml
380
+ - spec/support/vcr_cassettes/FundingAccounts/can_find_unauthorized.yml
370
381
  - spec/support/vcr_cassettes/IBANs/can_IBANs_for_a_specific_subaccount.yml
371
382
  - spec/support/vcr_cassettes/IBANs/can_IBANs_for_subaccounts.yml
372
383
  - spec/support/vcr_cassettes/IBANs/can_find.yml
373
384
  - spec/support/vcr_cassettes/Payments/can_authorise/when_payment_ids_are_valid.yml
374
385
  - spec/support/vcr_cassettes/Payments/can_create.yml
386
+ - spec/support/vcr_cassettes/Payments/can_create_bad_request.yml
375
387
  - spec/support/vcr_cassettes/Payments/can_get_the_submission.yml
376
388
  - spec/support/vcr_cassettes/Payments/can_retrieve_confirmation.yml
377
389
  - spec/support/vcr_cassettes/Payments/can_retrieve_payment_delivery_date.yml
390
+ - spec/support/vcr_cassettes/Payments/can_retrieve_payment_tracking_info.yml
378
391
  - spec/support/vcr_cassettes/Payments/can_retrieve_quote_payment_fee.yml
379
392
  - spec/support/vcr_cassettes/Rates/can_find.yml
380
393
  - spec/support/vcr_cassettes/Rates/can_provided_detailed_rate.yml
394
+ - spec/support/vcr_cassettes/Rates/can_provided_detailed_rate_with_conversion_date_preference.yml
381
395
  - spec/support/vcr_cassettes/Reference/can_retrieve_bank_details.yml
382
396
  - spec/support/vcr_cassettes/Reference/can_retrieve_beneficiary_required_details.yml
383
397
  - spec/support/vcr_cassettes/Reference/can_retrieve_conversion_dates.yml
@@ -391,10 +405,6 @@ test_files:
391
405
  - spec/support/vcr_cassettes/Reports/can_create_payments_report.yml
392
406
  - spec/support/vcr_cassettes/Reports/can_find_report_requests.yml
393
407
  - spec/support/vcr_cassettes/Reports/can_retrieve_report_request.yml
394
- - spec/support/vcr_cassettes/Settlements/can_add_conversion.yml
395
- - spec/support/vcr_cassettes/Settlements/can_release.yml
396
- - spec/support/vcr_cassettes/Settlements/can_remove_conversion.yml
397
- - spec/support/vcr_cassettes/Settlements/can_unrelease.yml
398
408
  - spec/support/vcr_cassettes/Transactions/can_retrieve_sender_details.yml
399
409
  - spec/support/vcr_cassettes/Transfers/can_create.yml
400
410
  - spec/support/vcr_cassettes/Transfers/can_find.yml
@@ -402,3 +412,6 @@ test_files:
402
412
  - spec/support/vcr_cassettes/VirtualAccounts/can_find.yml
403
413
  - spec/support/vcr_cassettes/VirtualAccounts/can_find_VANs_for_a_specific_subaccount.yml
404
414
  - spec/support/vcr_cassettes/VirtualAccounts/can_find_VANs_for_subaccounts.yml
415
+ - spec/support/vcr_cassettes/WithdrawalAccounts/can_find_withdrawal_accounts.yml
416
+ - spec/support/vcr_cassettes/WithdrawalAccounts/can_find_withdrawal_accounts2.yml
417
+ - spec/support/vcr_cassettes/WithdrawalAccounts/can_pull_funds.yml
@@ -1,55 +0,0 @@
1
- module CurrencyCloud
2
- class Settlement
3
- include CurrencyCloud::Resource
4
-
5
- resource :settlements
6
- actions :create, :retrieve, :find, :delete
7
-
8
- def add_conversion(conversion_id)
9
- update_attributes(Settlement.add_conversion(id, conversion_id))
10
- end
11
-
12
- def remove_conversion(conversion_id)
13
- update_attributes(Settlement.remove_conversion(id, conversion_id))
14
- end
15
-
16
- def release
17
- update_attributes(Settlement.release(id))
18
- end
19
-
20
- def unrelease
21
- update_attributes(Settlement.unrelease(id))
22
- end
23
-
24
- def self.add_conversion(settlement_id, conversion_id)
25
- attrs = client.post("#{settlement_id}/add_conversion", conversion_id: conversion_id)
26
- new(attrs)
27
- end
28
-
29
- def self.remove_conversion(settlement_id, conversion_id)
30
- attrs = client.post("#{settlement_id}/remove_conversion", conversion_id: conversion_id)
31
- new(attrs)
32
- end
33
-
34
- def self.release(settlement_id)
35
- attrs = client.post("#{settlement_id}/release")
36
- new(attrs)
37
- end
38
-
39
- def self.unrelease(settlement_id)
40
- attrs = client.post("#{settlement_id}/unrelease")
41
- new(attrs)
42
- end
43
-
44
- private
45
-
46
- def update_attributes(settlement)
47
- self.conversion_ids = settlement.conversion_ids
48
- self.status = settlement.status
49
- self.entries = settlement.entries
50
- self.updated_at = settlement.updated_at
51
- self.released_at = settlement.released_at
52
- self
53
- end
54
- end
55
- end
@@ -1,66 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe 'Settlements', vcr: true do
4
- before(:all) do
5
- CurrencyCloud.reset_session
6
- CurrencyCloud.environment = :demonstration
7
- CurrencyCloud.token = '6f5f99d1b860fc47e8a186e3dce0d3f9'
8
-
9
- @params = {
10
- buy_currency: 'GBP',
11
- sell_currency: 'USD',
12
- fixed_side: 'buy',
13
- amount: 1000,
14
- reason: 'mortgage payment',
15
- term_agreement: true
16
- }
17
- end
18
-
19
- it 'can #add_conversion' do
20
- conversion = CurrencyCloud::Conversion.create(@params)
21
- settlement = CurrencyCloud::Settlement.create
22
-
23
- updated_settlement = settlement.add_conversion(conversion.id)
24
-
25
- expect(settlement).to eq(updated_settlement)
26
-
27
- expect(settlement.conversion_ids).to eq(['24d2ee7f-c7a3-4181-979e-9c58dbace992'])
28
- expect(settlement.entries).to_not be_empty
29
-
30
- gbp_currency = settlement.entries[0]
31
- expect(gbp_currency).to include('GBP' => { 'receive_amount' => '1000.00', 'send_amount' => '0.00' })
32
-
33
- usd_currency = settlement.entries[1]
34
- expect(usd_currency).to include('USD' => { 'receive_amount' => '0.00', 'send_amount' => '1511.70' })
35
-
36
- expect(settlement.updated_at).to eq('2015-05-04T20:40:56+00:00')
37
- end
38
-
39
- it 'can #remove_conversion' do
40
- settlement = CurrencyCloud::Settlement.retrieve('63eeef54-3531-4e65-827a-7d0f37503fcc')
41
- deleted_settlement = settlement.remove_conversion('24d2ee7f-c7a3-4181-979e-9c58dbace992')
42
-
43
- expect(deleted_settlement).to_not be_nil
44
- expect(deleted_settlement.type).to eq('bulk')
45
- expect(deleted_settlement.created_at).to eq('2015-05-04T20:29:16+00:00')
46
- expect(deleted_settlement.status).to eq('open')
47
- end
48
-
49
- it 'can #release' do
50
- settlement = CurrencyCloud::Settlement.retrieve('51c619e0-0256-40ad-afba-ca4114b936f9')
51
- released_settlement = settlement.release
52
-
53
- expect(released_settlement).to eq(settlement)
54
- expect(released_settlement.released_at).to eq('2015-05-04T21:44:23+00:00')
55
- expect(released_settlement.status).to eq('released')
56
- end
57
-
58
- it 'can #unrelease' do
59
- settlement = CurrencyCloud::Settlement.retrieve('51c619e0-0256-40ad-afba-ca4114b936f9')
60
- unreleased_settlement = settlement.unrelease
61
-
62
- expect(unreleased_settlement).to eq(settlement)
63
- expect(unreleased_settlement.released_at).to eq('')
64
- expect(unreleased_settlement.status).to eq('open')
65
- end
66
- end