currency_cloud 4.1.0 → 4.3.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 (72) hide show
  1. checksums.yaml +4 -4
  2. data/lib/currency_cloud/beneficiary.rb +5 -0
  3. data/lib/currency_cloud/beneficiary_account_verification_result.rb +5 -0
  4. data/lib/currency_cloud/client.rb +4 -0
  5. data/lib/currency_cloud/collections_screening.rb +12 -0
  6. data/lib/currency_cloud/collections_screening_result.rb +5 -0
  7. data/lib/currency_cloud/funding_transaction.rb +8 -0
  8. data/lib/currency_cloud/request_handler.rb +16 -0
  9. data/lib/currency_cloud/version.rb +1 -1
  10. data/spec/integration/actions_spec.rb +23 -0
  11. data/spec/integration/collections_screening_spec.rb +42 -0
  12. data/spec/integration/funding_transaction_spec.rb +28 -0
  13. data/spec/support/vcr_cassettes/Accounts/can_retrieve_account_payment_charges_settings.yml +2 -2
  14. data/spec/support/vcr_cassettes/Accounts/can_update_account_payment_charges_settings.yml +2 -2
  15. data/spec/support/vcr_cassettes/Accounts/get_compliance_settings.yml +2 -2
  16. data/spec/support/vcr_cassettes/Accounts/update_compliance_settings.yml +2 -2
  17. data/spec/support/vcr_cassettes/Actions/can_verify_account.yml +36 -0
  18. data/spec/support/vcr_cassettes/CollectionsScreening/can_complete_with_accepted_false.yml +51 -0
  19. data/spec/support/vcr_cassettes/CollectionsScreening/can_complete_with_accepted_true.yml +51 -0
  20. data/spec/support/vcr_cassettes/Conversions/can_cancel_conversion/with_notes/has_a_non-empty_notes_attribute.yml +3 -3
  21. data/spec/support/vcr_cassettes/Conversions/can_cancel_conversion/without_notes/has_a_empty_notes_attribute.yml +3 -3
  22. data/spec/support/vcr_cassettes/Conversions/can_cancellation_quote.yml +2 -2
  23. data/spec/support/vcr_cassettes/Conversions/can_date_change_conversion.yml +3 -3
  24. data/spec/support/vcr_cassettes/Conversions/can_retrieve_cancellation_quote.yml +3 -3
  25. data/spec/support/vcr_cassettes/Conversions/can_retrieve_date_change_quote.yml +3 -3
  26. data/spec/support/vcr_cassettes/Conversions/can_retrieve_profit_and_loss.yml +2 -2
  27. data/spec/support/vcr_cassettes/Conversions/can_split_conversion.yml +3 -3
  28. data/spec/support/vcr_cassettes/Conversions/can_split_history.yml +3 -3
  29. data/spec/support/vcr_cassettes/Conversions/can_split_preview.yml +3 -3
  30. data/spec/support/vcr_cassettes/FundingAccounts/can_find.yml +2 -2
  31. data/spec/support/vcr_cassettes/FundingAccounts/can_find_bad_request.yml +2 -2
  32. data/spec/support/vcr_cassettes/FundingAccounts/can_find_missing_currency.yml +2 -2
  33. data/spec/support/vcr_cassettes/FundingAccounts/can_find_unauthorized.yml +1 -1
  34. data/spec/support/vcr_cassettes/FundingTransactions/can_retrieve.yml +49 -0
  35. data/spec/support/vcr_cassettes/IBANs/can_IBANs_for_a_specific_subaccount.yml +2 -2
  36. data/spec/support/vcr_cassettes/IBANs/can_IBANs_for_subaccounts.yml +2 -2
  37. data/spec/support/vcr_cassettes/IBANs/can_find.yml +1 -1
  38. data/spec/support/vcr_cassettes/Payments/can_authorise/when_payment_ids_are_valid.yml +5 -5
  39. data/spec/support/vcr_cassettes/Payments/can_create.yml +3 -3
  40. data/spec/support/vcr_cassettes/Payments/can_create_bad_request.yml +2 -2
  41. data/spec/support/vcr_cassettes/Payments/can_get_the_new_submission.yml +4 -4
  42. data/spec/support/vcr_cassettes/Payments/can_retrieve_confirmation.yml +3 -3
  43. data/spec/support/vcr_cassettes/Payments/can_retrieve_payment_delivery_date.yml +2 -2
  44. data/spec/support/vcr_cassettes/Payments/can_retrieve_payment_tracking_info.yml +2 -2
  45. data/spec/support/vcr_cassettes/Payments/can_retrieve_quote_payment_fee.yml +2 -2
  46. data/spec/support/vcr_cassettes/Payments/can_validate.yml +3 -3
  47. data/spec/support/vcr_cassettes/Payments/can_validate_and_create_with_sca.yml +4 -4
  48. data/spec/support/vcr_cassettes/Rates/can_provided_detailed_rate_with_conversion_date_preference.yml +1 -1
  49. data/spec/support/vcr_cassettes/Reference/can_retrieve_bank_details.yml +2 -2
  50. data/spec/support/vcr_cassettes/Reference/can_retrieve_conversion_dates.yml +2 -2
  51. data/spec/support/vcr_cassettes/Reference/can_retrieve_currencies.yml +2 -2
  52. data/spec/support/vcr_cassettes/Reference/can_retrieve_payer_required_details.yml +2 -2
  53. data/spec/support/vcr_cassettes/Reference/can_retrieve_payment_dates.yml +2 -2
  54. data/spec/support/vcr_cassettes/Reference/can_retrieve_payment_fee_rules.yml +1 -1
  55. data/spec/support/vcr_cassettes/Reference/can_retrieve_payment_purpose_codes.yml +2 -2
  56. data/spec/support/vcr_cassettes/Reference/can_retrieve_settlement_accounts.yml +2 -2
  57. data/spec/support/vcr_cassettes/Reports/can_create_payments_report.yml +2 -2
  58. data/spec/support/vcr_cassettes/Reports/can_find_report_requests.yml +2 -2
  59. data/spec/support/vcr_cassettes/Reports/can_retrieve_report_request.yml +2 -2
  60. data/spec/support/vcr_cassettes/TermsAndConditions/can_accept_terms.yml +3 -3
  61. data/spec/support/vcr_cassettes/Transactions/can_retrieve_sender_details.yml +2 -2
  62. data/spec/support/vcr_cassettes/Transfers/can_cancel.yml +3 -3
  63. data/spec/support/vcr_cassettes/Transfers/can_create.yml +2 -2
  64. data/spec/support/vcr_cassettes/Transfers/can_find.yml +3 -3
  65. data/spec/support/vcr_cassettes/Transfers/can_retrieve.yml +3 -3
  66. data/spec/support/vcr_cassettes/VirtualAccounts/can_find.yml +2 -2
  67. data/spec/support/vcr_cassettes/VirtualAccounts/can_find_VANs_for_a_specific_subaccount.yml +2 -2
  68. data/spec/support/vcr_cassettes/VirtualAccounts/can_find_VANs_for_subaccounts.yml +2 -2
  69. data/spec/support/vcr_cassettes/WithdrawalAccounts/can_find_withdrawal_accounts.yml +3 -3
  70. data/spec/support/vcr_cassettes/WithdrawalAccounts/can_find_withdrawal_accounts2.yml +3 -3
  71. data/spec/support/vcr_cassettes/WithdrawalAccounts/can_pull_funds.yml +3 -3
  72. metadata +17 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d3643aa2cd3394e86f414423d0d72d0adfb3ca215bcaa67412e6b03956a4694a
4
- data.tar.gz: 48f3777f3eab00d4aa40de16a3b0f52cd3b9131613695ae755800797516033a4
3
+ metadata.gz: 5f128a7336038c902e9a49fb93ea080da6e89780aac21499a02d5dc3e0ebcb8c
4
+ data.tar.gz: f8a50c42889ae3855469daa3a15f06242424837734deaa75782177e4e8422271
5
5
  SHA512:
6
- metadata.gz: 28ccef00d2b925a7f2921440826db6ef3e5dcd9ac122a48d0b04d083747bbe633d861d8999dea0a5d6841f82d583deda1cfc99d5d9650ffd22d418e80ff0d919
7
- data.tar.gz: 9d6e96d93f37791e7e991a8ca8777947915bb397d0cfcc0f9773df108cece3a3e364fea097725697b7950178e68e8395fe63af017d65e54f38187ccbfcb561cd
6
+ metadata.gz: ace051587e4b5c063300d28ce195bef180c1bcc24c4d9115db79d663cb50f255eb8ca26d4ade0d1253ca298a64aa068e976cb560bc3ed64c01af2563e6baafb5
7
+ data.tar.gz: dd7ac1c182199e2b3ea3e6c44978862e55e6987f33ef4dc7cd0bc4b480dee05da7074ebf757c6e36432865cbee4c5e1bc7276310e619e03ecbc06eac7e546b32
@@ -9,5 +9,10 @@ module CurrencyCloud
9
9
  def self.validate(params)
10
10
  new(client.post('validate', params))
11
11
  end
12
+
13
+ def self.verify_account(params)
14
+ attrs = client.post('account_verification', params)
15
+ BeneficiaryAccountVerificationResult.new(attrs)
16
+ end
12
17
  end
13
18
  end
@@ -0,0 +1,5 @@
1
+ module CurrencyCloud
2
+ class BeneficiaryAccountVerificationResult
3
+ include CurrencyCloud::Resource
4
+ end
5
+ end
@@ -12,6 +12,10 @@ module CurrencyCloud
12
12
  request.post(build_url(url), params, opts)
13
13
  end
14
14
 
15
+ def put(url, params = {}, opts = {})
16
+ request.put(build_url(url), params, opts)
17
+ end
18
+
15
19
  def build_url(url)
16
20
  if url && url != '' && url != '/'
17
21
  "#{resource}/#{url}"
@@ -0,0 +1,12 @@
1
+ module CurrencyCloud
2
+ class CollectionsScreening
3
+ include CurrencyCloud::Resource
4
+
5
+ resource :collections_screening
6
+
7
+ def self.complete(transaction_id, params = {})
8
+ response = client.put("#{transaction_id}/complete", params)
9
+ CollectionsScreeningResult.new(response)
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,5 @@
1
+ module CurrencyCloud
2
+ class CollectionsScreeningResult
3
+ include CurrencyCloud::Resource
4
+ end
5
+ end
@@ -0,0 +1,8 @@
1
+ module CurrencyCloud
2
+ class FundingTransaction
3
+ include CurrencyCloud::Resource
4
+
5
+ resource :funding_transactions
6
+ actions :retrieve
7
+ end
8
+ end
@@ -29,6 +29,22 @@ module CurrencyCloud
29
29
  end
30
30
  end
31
31
 
32
+ def put(route, params = {}, opts = {})
33
+ return_response_headers = opts.delete(:return_response_headers) || false
34
+ raw_response = nil
35
+ response = retry_authenticate('put', route, params, opts) do |url, new_params, options|
36
+ options[:body] = new_params
37
+ raw_response = HTTParty.put(url, options)
38
+ raw_response
39
+ end
40
+
41
+ if return_response_headers
42
+ [response, raw_response&.headers || {}]
43
+ else
44
+ response
45
+ end
46
+ end
47
+
32
48
  private
33
49
 
34
50
  def retry_authenticate(verb, route, params, opts)
@@ -2,5 +2,5 @@
2
2
 
3
3
  module CurrencyCloud
4
4
  API_VERSION = "v2".freeze # API Version
5
- VERSION = "4.1.0".freeze # Gem Version
5
+ VERSION = "4.3.0".freeze # Gem Version
6
6
  end
@@ -149,4 +149,27 @@ describe 'Actions', vcr: true do
149
149
  expect(top_up.currency).to eq('GBP')
150
150
  expect(top_up.transfer_completed_at).to eq('2007-11-19T08:37:48-06:00')
151
151
  end
152
+
153
+ it 'can #verify account' do
154
+ params = {
155
+ bank_country: 'GB',
156
+ currency: 'GBP',
157
+ account_number: '12345678',
158
+ routing_code_type_1: 'sort_code',
159
+ routing_code_value_1: '123456',
160
+ payment_type: 'regular',
161
+ beneficiary_first_name: 'Test',
162
+ beneficiary_last_name: 'User',
163
+ beneficiary_entity_type: 'individual'
164
+ }
165
+
166
+ result = CurrencyCloud::Beneficiary.verify_account(params)
167
+ expect(result).to be_a_kind_of(CurrencyCloud::BeneficiaryAccountVerificationResult)
168
+
169
+ expect(result.answer).to eq('full_match')
170
+ expect(result.actual_name).to eq('Test User')
171
+ expect(result.reason).to eq('Full match')
172
+ expect(result.reason_code).to eq('FMCH')
173
+ expect(result.reason_type).to eq('okay')
174
+ end
152
175
  end
@@ -0,0 +1,42 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'CollectionsScreening', vcr: true do
4
+ before do
5
+ CurrencyCloud.login_id = 'development@currencycloud.com'
6
+ CurrencyCloud.api_key = 'deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef'
7
+ CurrencyCloud.environment = :demonstration
8
+ CurrencyCloud.reset_session
9
+ end
10
+
11
+ it 'can #complete with accepted true' do
12
+ result = CurrencyCloud::CollectionsScreening.complete(
13
+ 'bdcca5e6-32fe-45f6-9476-6f8f518e6270',
14
+ accepted: true,
15
+ reason: 'accepted'
16
+ )
17
+
18
+ expect(result).to be_a(CurrencyCloud::CollectionsScreeningResult)
19
+ expect(result.transaction_id).to eq('bdcca5e6-32fe-45f6-9476-6f8f518e6270')
20
+ expect(result.account_id).to eq('7a116d7d-6310-40ae-8d54-0ffbe41dc1c9')
21
+ expect(result.house_account_id).to eq('7a116d7d-6310-40ae-8d54-0ffbe41dc1c9')
22
+ expect(result.result).to be_a(Hash)
23
+ expect(result.result['accepted']).to eq(true)
24
+ expect(result.result['reason']).to eq('accepted')
25
+ end
26
+
27
+ it 'can #complete with accepted false' do
28
+ result = CurrencyCloud::CollectionsScreening.complete(
29
+ 'cdcca5e6-32fe-45f6-9476-6f8f518e6271',
30
+ accepted: false,
31
+ reason: 'suspected_fraud'
32
+ )
33
+
34
+ expect(result).to be_a(CurrencyCloud::CollectionsScreeningResult)
35
+ expect(result.transaction_id).to eq('cdcca5e6-32fe-45f6-9476-6f8f518e6271')
36
+ expect(result.account_id).to eq('8b227e8e-7421-51bf-9e65-1ggge51ed2d0')
37
+ expect(result.house_account_id).to eq('8b227e8e-7421-51bf-9e65-1ggge51ed2d0')
38
+ expect(result.result).to be_a(Hash)
39
+ expect(result.result['accepted']).to eq(false)
40
+ expect(result.result['reason']).to eq('suspected_fraud')
41
+ end
42
+ end
@@ -0,0 +1,28 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'FundingTransactions', vcr: true do
4
+ before do
5
+ CurrencyCloud.login_id = 'development@currencycloud.com'
6
+ CurrencyCloud.api_key = 'deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef'
7
+ CurrencyCloud.environment = :demonstration
8
+ CurrencyCloud.reset_session
9
+ end
10
+
11
+ it 'can #retrieve' do
12
+ funding_transaction = CurrencyCloud::FundingTransaction.retrieve('a1b2c3d4-e5f6-7890-abcd-ef1234567890')
13
+
14
+ expect(funding_transaction).to be_a(CurrencyCloud::FundingTransaction)
15
+ expect(funding_transaction.id).to eq('a1b2c3d4-e5f6-7890-abcd-ef1234567890')
16
+ expect(funding_transaction.amount).to eq('1000.00')
17
+ expect(funding_transaction.currency).to eq('USD')
18
+ expect(funding_transaction.rail).to eq('swift')
19
+ expect(funding_transaction.additional_information).to eq('ABCD20231016143117')
20
+ expect(funding_transaction.receiving_account_routing_code).to eq('026009593')
21
+ expect(funding_transaction.value_date).to eq('2022-12-03T00:00:00+00:00')
22
+ expect(funding_transaction.receiving_account_number).to eq('1234567890')
23
+ expect(funding_transaction.receiving_account_iban).to eq('GB82WEST12345698765432')
24
+ expect(funding_transaction.created_at).to eq('2022-12-03T10:15:30+00:00')
25
+ expect(funding_transaction.updated_at).to eq('2022-12-03T10:15:31+00:00')
26
+ expect(funding_transaction.completed_at).to eq('2022-12-03T10:15:30+00:00')
27
+ end
28
+ end
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: login_id=development%40currencycloud.com&api_key=deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
9
9
  headers:
10
10
  User-Agent:
11
- - CurrencyCloudSDK/2.0 Ruby/4.1.0
11
+ - CurrencyCloudSDK/2.0 Ruby/4.3.0
12
12
  response:
13
13
  status:
14
14
  code: 200
@@ -58,7 +58,7 @@ http_interactions:
58
58
  X-Auth-Token:
59
59
  - deadbeefdeadbeefdeadbeefdeadbeef
60
60
  User-Agent:
61
- - CurrencyCloudSDK/2.0 Ruby/4.1.0
61
+ - CurrencyCloudSDK/2.0 Ruby/4.3.0
62
62
  response:
63
63
  status:
64
64
  code: 200
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: login_id=development%40currencycloud.com&api_key=deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
9
9
  headers:
10
10
  User-Agent:
11
- - CurrencyCloudSDK/2.0 Ruby/4.1.0
11
+ - CurrencyCloudSDK/2.0 Ruby/4.3.0
12
12
  response:
13
13
  status:
14
14
  code: 200
@@ -58,7 +58,7 @@ http_interactions:
58
58
  X-Auth-Token:
59
59
  - deadbeefdeadbeefdeadbeefdeadbeef
60
60
  User-Agent:
61
- - CurrencyCloudSDK/2.0 Ruby/4.1.0
61
+ - CurrencyCloudSDK/2.0 Ruby/4.3.0
62
62
  response:
63
63
  status:
64
64
  code: 200
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: login_id=development%40currencycloud.com&api_key=deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
9
9
  headers:
10
10
  User-Agent:
11
- - CurrencyCloudSDK/2.0 Ruby/4.1.0
11
+ - CurrencyCloudSDK/2.0 Ruby/4.3.0
12
12
  response:
13
13
  status:
14
14
  code: 200
@@ -58,7 +58,7 @@ http_interactions:
58
58
  X-Auth-Token:
59
59
  - deadbeefdeadbeefdeadbeefdeadbeef
60
60
  User-Agent:
61
- - CurrencyCloudSDK/2.0 Ruby/4.1.0
61
+ - CurrencyCloudSDK/2.0 Ruby/4.3.0
62
62
  response:
63
63
  status:
64
64
  code: 200
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: login_id=development%40currencycloud.com&api_key=deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
9
9
  headers:
10
10
  User-Agent:
11
- - CurrencyCloudSDK/2.0 Ruby/4.1.0
11
+ - CurrencyCloudSDK/2.0 Ruby/4.3.0
12
12
  response:
13
13
  status:
14
14
  code: 200
@@ -58,7 +58,7 @@ http_interactions:
58
58
  X-Auth-Token:
59
59
  - deadbeefdeadbeefdeadbeefdeadbeef
60
60
  User-Agent:
61
- - CurrencyCloudSDK/2.0 Ruby/4.1.0
61
+ - CurrencyCloudSDK/2.0 Ruby/4.3.0
62
62
  response:
63
63
  status:
64
64
  code: 200
@@ -0,0 +1,36 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://devapi.currencycloud.com/v2/beneficiaries/account_verification
6
+ body:
7
+ encoding: UTF-8
8
+ string: bank_country=GB&currency=GBP&account_number=12345678&routing_code_type_1=sort_code&routing_code_value_1=123456&payment_type=regular&beneficiary_entity_type=individual&beneficiary_first_name=Test&beneficiary_last_name=User
9
+ headers:
10
+ X-Auth-Token:
11
+ - bbdd421bdda373ea69670c9101fa9197
12
+ response:
13
+ status:
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ Server:
18
+ - nginx
19
+ Date:
20
+ - Sun, 03 May 2015 16:55:03 GMT
21
+ Content-Type:
22
+ - application/json;charset=utf-8
23
+ Content-Length:
24
+ - '732'
25
+ Connection:
26
+ - keep-alive
27
+ X-Request-Id:
28
+ - '2777975414238700878'
29
+ X-Content-Type-Options:
30
+ - nosniff
31
+ body:
32
+ encoding: UTF-8
33
+ string: '{"answer" : "full_match", "actual_name": "Test User", "reason_code" : "FMCH", "reason" : "Full match", "reason_type" : "okay"}'
34
+ http_version:
35
+ recorded_at: Sun, 03 May 2015 16:55:03 GMT
36
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,51 @@
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/4.3.0
12
+ response:
13
+ status:
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ Date:
18
+ - Sat, 10 Apr 2026 10:00:00 GMT
19
+ Content-Type:
20
+ - text/plain; charset=UTF-8
21
+ body:
22
+ encoding: UTF-8
23
+ string: '{"auth_token":"deadbeefdeadbeefdeadbeef"}'
24
+ http_version:
25
+ recorded_at: Sat, 10 Apr 2026 10:00:00 GMT
26
+ - request:
27
+ method: put
28
+ uri: https://devapi.currencycloud.com/v2/collections_screening/cdcca5e6-32fe-45f6-9476-6f8f518e6271/complete
29
+ body:
30
+ encoding: UTF-8
31
+ string: accepted=false&reason=suspected_fraud
32
+ headers:
33
+ X-Auth-Token:
34
+ - deadbeefdeadbeefdeadbeef
35
+ User-Agent:
36
+ - CurrencyCloudSDK/2.0 Ruby/4.3.0
37
+ response:
38
+ status:
39
+ code: 200
40
+ message: OK
41
+ headers:
42
+ Date:
43
+ - Sat, 10 Apr 2026 10:00:01 GMT
44
+ Content-Type:
45
+ - application/json
46
+ body:
47
+ encoding: UTF-8
48
+ string: '{"transaction_id":"cdcca5e6-32fe-45f6-9476-6f8f518e6271","account_id":"8b227e8e-7421-51bf-9e65-1ggge51ed2d0","house_account_id":"8b227e8e-7421-51bf-9e65-1ggge51ed2d0","result":{"accepted":false,"reason":"suspected_fraud"}}'
49
+ http_version:
50
+ recorded_at: Sat, 10 Apr 2026 10:00:01 GMT
51
+ recorded_with: VCR 3.0.3
@@ -0,0 +1,51 @@
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/4.3.0
12
+ response:
13
+ status:
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ Date:
18
+ - Sat, 10 Apr 2026 10:00:00 GMT
19
+ Content-Type:
20
+ - text/plain; charset=UTF-8
21
+ body:
22
+ encoding: UTF-8
23
+ string: '{"auth_token":"deadbeefdeadbeefdeadbeef"}'
24
+ http_version:
25
+ recorded_at: Sat, 10 Apr 2026 10:00:00 GMT
26
+ - request:
27
+ method: put
28
+ uri: https://devapi.currencycloud.com/v2/collections_screening/bdcca5e6-32fe-45f6-9476-6f8f518e6270/complete
29
+ body:
30
+ encoding: UTF-8
31
+ string: accepted=true&reason=accepted
32
+ headers:
33
+ X-Auth-Token:
34
+ - deadbeefdeadbeefdeadbeef
35
+ User-Agent:
36
+ - CurrencyCloudSDK/2.0 Ruby/4.3.0
37
+ response:
38
+ status:
39
+ code: 200
40
+ message: OK
41
+ headers:
42
+ Date:
43
+ - Sat, 10 Apr 2026 10:00:01 GMT
44
+ Content-Type:
45
+ - application/json
46
+ body:
47
+ encoding: UTF-8
48
+ string: '{"transaction_id":"bdcca5e6-32fe-45f6-9476-6f8f518e6270","account_id":"7a116d7d-6310-40ae-8d54-0ffbe41dc1c9","house_account_id":"7a116d7d-6310-40ae-8d54-0ffbe41dc1c9","result":{"accepted":true,"reason":"accepted"}}'
49
+ http_version:
50
+ recorded_at: Sat, 10 Apr 2026 10:00:01 GMT
51
+ recorded_with: VCR 3.0.3
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: login_id=development%40currencycloud.com&api_key=deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
9
9
  headers:
10
10
  User-Agent:
11
- - CurrencyCloudSDK/2.0 Ruby/4.1.0
11
+ - CurrencyCloudSDK/2.0 Ruby/4.3.0
12
12
  response:
13
13
  status:
14
14
  code: 200
@@ -60,7 +60,7 @@ http_interactions:
60
60
  X-Auth-Token:
61
61
  - deadbeefdeadbeefdeadbeefdeadbeef
62
62
  User-Agent:
63
- - CurrencyCloudSDK/2.0 Ruby/4.1.0
63
+ - CurrencyCloudSDK/2.0 Ruby/4.3.0
64
64
  response:
65
65
  status:
66
66
  code: 200
@@ -112,7 +112,7 @@ http_interactions:
112
112
  X-Auth-Token:
113
113
  - deadbeefdeadbeefdeadbeefdeadbeef
114
114
  User-Agent:
115
- - CurrencyCloudSDK/2.0 Ruby/4.1.0
115
+ - CurrencyCloudSDK/2.0 Ruby/4.3.0
116
116
  response:
117
117
  status:
118
118
  code: 200
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: login_id=development%40currencycloud.com&api_key=deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
9
9
  headers:
10
10
  User-Agent:
11
- - CurrencyCloudSDK/2.0 Ruby/4.1.0
11
+ - CurrencyCloudSDK/2.0 Ruby/4.3.0
12
12
  response:
13
13
  status:
14
14
  code: 200
@@ -60,7 +60,7 @@ http_interactions:
60
60
  X-Auth-Token:
61
61
  - deadbeefdeadbeefdeadbeefdeadbeef
62
62
  User-Agent:
63
- - CurrencyCloudSDK/2.0 Ruby/4.1.0
63
+ - CurrencyCloudSDK/2.0 Ruby/4.3.0
64
64
  response:
65
65
  status:
66
66
  code: 200
@@ -112,7 +112,7 @@ http_interactions:
112
112
  X-Auth-Token:
113
113
  - deadbeefdeadbeefdeadbeefdeadbeef
114
114
  User-Agent:
115
- - CurrencyCloudSDK/2.0 Ruby/4.1.0
115
+ - CurrencyCloudSDK/2.0 Ruby/4.3.0
116
116
  response:
117
117
  status:
118
118
  code: 200
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: login_id=development%40currencycloud.com&api_key=deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
9
9
  headers:
10
10
  User-Agent:
11
- - CurrencyCloudSDK/2.0 Ruby/4.1.0
11
+ - CurrencyCloudSDK/2.0 Ruby/4.3.0
12
12
  response:
13
13
  status:
14
14
  code: 200
@@ -58,7 +58,7 @@ http_interactions:
58
58
  X-Auth-Token:
59
59
  - deadbeefdeadbeefdeadbeefdeadbeef
60
60
  User-Agent:
61
- - CurrencyCloudSDK/2.0 Ruby/4.1.0
61
+ - CurrencyCloudSDK/2.0 Ruby/4.3.0
62
62
  response:
63
63
  status:
64
64
  code: 200
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: login_id=development%40currencycloud.com&api_key=deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
9
9
  headers:
10
10
  User-Agent:
11
- - CurrencyCloudSDK/2.0 Ruby/4.1.0
11
+ - CurrencyCloudSDK/2.0 Ruby/4.3.0
12
12
  response:
13
13
  status:
14
14
  code: 200
@@ -60,7 +60,7 @@ http_interactions:
60
60
  X-Auth-Token:
61
61
  - deadbeefdeadbeefdeadbeefdeadbeef
62
62
  User-Agent:
63
- - CurrencyCloudSDK/2.0 Ruby/4.1.0
63
+ - CurrencyCloudSDK/2.0 Ruby/4.3.0
64
64
  response:
65
65
  status:
66
66
  code: 200
@@ -112,7 +112,7 @@ http_interactions:
112
112
  X-Auth-Token:
113
113
  - deadbeefdeadbeefdeadbeefdeadbeef
114
114
  User-Agent:
115
- - CurrencyCloudSDK/2.0 Ruby/4.1.0
115
+ - CurrencyCloudSDK/2.0 Ruby/4.3.0
116
116
  response:
117
117
  status:
118
118
  code: 200
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: login_id=development%40currencycloud.com&api_key=deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
9
9
  headers:
10
10
  User-Agent:
11
- - CurrencyCloudSDK/2.0 Ruby/4.1.0
11
+ - CurrencyCloudSDK/2.0 Ruby/4.3.0
12
12
  response:
13
13
  status:
14
14
  code: 200
@@ -37,7 +37,7 @@ http_interactions:
37
37
  X-Auth-Token:
38
38
  - deadbeefdeadbeefdeadbeefdeadbeef
39
39
  User-Agent:
40
- - CurrencyCloudSDK/2.0 Ruby/4.1.0
40
+ - CurrencyCloudSDK/2.0 Ruby/4.3.0
41
41
  response:
42
42
  status:
43
43
  code: 200
@@ -66,7 +66,7 @@ http_interactions:
66
66
  X-Auth-Token:
67
67
  - deadbeefdeadbeefdeadbeefdeadbeef
68
68
  User-Agent:
69
- - CurrencyCloudSDK/2.0 Ruby/4.1.0
69
+ - CurrencyCloudSDK/2.0 Ruby/4.3.0
70
70
  response:
71
71
  status:
72
72
  code: 200
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: login_id=development%40currencycloud.com&api_key=deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
9
9
  headers:
10
10
  User-Agent:
11
- - CurrencyCloudSDK/2.0 Ruby/4.1.0
11
+ - CurrencyCloudSDK/2.0 Ruby/4.3.0
12
12
  response:
13
13
  status:
14
14
  code: 200
@@ -37,7 +37,7 @@ http_interactions:
37
37
  X-Auth-Token:
38
38
  - deadbeefdeadbeefdeadbeefdeadbeef
39
39
  User-Agent:
40
- - CurrencyCloudSDK/2.0 Ruby/4.1.0
40
+ - CurrencyCloudSDK/2.0 Ruby/4.3.0
41
41
  response:
42
42
  status:
43
43
  code: 200
@@ -66,7 +66,7 @@ http_interactions:
66
66
  X-Auth-Token:
67
67
  - deadbeefdeadbeefdeadbeefdeadbeef
68
68
  User-Agent:
69
- - CurrencyCloudSDK/2.0 Ruby/4.1.0
69
+ - CurrencyCloudSDK/2.0 Ruby/4.3.0
70
70
  response:
71
71
  status:
72
72
  code: 200
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: login_id=development%40currencycloud.com&api_key=deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
9
9
  headers:
10
10
  User-Agent:
11
- - CurrencyCloudSDK/2.0 Ruby/4.1.0
11
+ - CurrencyCloudSDK/2.0 Ruby/4.3.0
12
12
  response:
13
13
  status:
14
14
  code: 200
@@ -37,7 +37,7 @@ http_interactions:
37
37
  X-Auth-Token:
38
38
  - deadbeefdeadbeefdeadbeefdeadbeef
39
39
  User-Agent:
40
- - CurrencyCloudSDK/2.0 Ruby/4.1.0
40
+ - CurrencyCloudSDK/2.0 Ruby/4.3.0
41
41
  response:
42
42
  status:
43
43
  code: 200
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: login_id=development%40currencycloud.com&api_key=deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
9
9
  headers:
10
10
  User-Agent:
11
- - CurrencyCloudSDK/2.0 Ruby/4.1.0
11
+ - CurrencyCloudSDK/2.0 Ruby/4.3.0
12
12
  response:
13
13
  status:
14
14
  code: 200
@@ -60,7 +60,7 @@ http_interactions:
60
60
  X-Auth-Token:
61
61
  - deadbeefdeadbeefdeadbeefdeadbeef
62
62
  User-Agent:
63
- - CurrencyCloudSDK/2.0 Ruby/4.1.0
63
+ - CurrencyCloudSDK/2.0 Ruby/4.3.0
64
64
  response:
65
65
  status:
66
66
  code: 200
@@ -112,7 +112,7 @@ http_interactions:
112
112
  X-Auth-Token:
113
113
  - deadbeefdeadbeefdeadbeefdeadbeef
114
114
  User-Agent:
115
- - CurrencyCloudSDK/2.0 Ruby/4.1.0
115
+ - CurrencyCloudSDK/2.0 Ruby/4.3.0
116
116
  response:
117
117
  status:
118
118
  code: 200
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: login_id=development%40currencycloud.com&api_key=deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
9
9
  headers:
10
10
  User-Agent:
11
- - CurrencyCloudSDK/2.0 Ruby/4.1.0
11
+ - CurrencyCloudSDK/2.0 Ruby/4.3.0
12
12
  response:
13
13
  status:
14
14
  code: 200
@@ -37,7 +37,7 @@ http_interactions:
37
37
  X-Auth-Token:
38
38
  - deadbeefdeadbeefdeadbeefdeadbeef
39
39
  User-Agent:
40
- - CurrencyCloudSDK/2.0 Ruby/4.1.0
40
+ - CurrencyCloudSDK/2.0 Ruby/4.3.0
41
41
  response:
42
42
  status:
43
43
  code: 200
@@ -66,7 +66,7 @@ http_interactions:
66
66
  X-Auth-Token:
67
67
  - deadbeefdeadbeefdeadbeefdeadbeef
68
68
  User-Agent:
69
- - CurrencyCloudSDK/2.0 Ruby/4.1.0
69
+ - CurrencyCloudSDK/2.0 Ruby/4.3.0
70
70
  response:
71
71
  status:
72
72
  code: 200