currency_cloud 0.16.2 → 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
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