mangopay4-ruby-sdk 3.44.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 (126) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/ruby_cd.yml +34 -0
  3. data/.github/workflows/ruby_ci.yml +30 -0
  4. data/.gitignore +30 -0
  5. data/.rspec +3 -0
  6. data/CHANGELOG.md +640 -0
  7. data/Gemfile +2 -0
  8. data/LICENSE +20 -0
  9. data/README.md +162 -0
  10. data/Rakefile +5 -0
  11. data/bin/mangopay +9 -0
  12. data/lib/generators/mangopay/install_generator.rb +60 -0
  13. data/lib/generators/templates/mangopay.rb.erb +5 -0
  14. data/lib/mangopay/acquiring.rb +56 -0
  15. data/lib/mangopay/authorization_token.rb +89 -0
  16. data/lib/mangopay/bank_account.rb +49 -0
  17. data/lib/mangopay/bankingaliases.rb +29 -0
  18. data/lib/mangopay/bankingaliases_iban.rb +16 -0
  19. data/lib/mangopay/card.rb +54 -0
  20. data/lib/mangopay/card_registration.rb +9 -0
  21. data/lib/mangopay/client.rb +94 -0
  22. data/lib/mangopay/conversion.rb +49 -0
  23. data/lib/mangopay/deposit.rb +36 -0
  24. data/lib/mangopay/dispute.rb +152 -0
  25. data/lib/mangopay/errors.rb +66 -0
  26. data/lib/mangopay/event.rb +18 -0
  27. data/lib/mangopay/filter_parameters.rb +56 -0
  28. data/lib/mangopay/hook.rb +9 -0
  29. data/lib/mangopay/http_calls.rb +88 -0
  30. data/lib/mangopay/identity_verification.rb +16 -0
  31. data/lib/mangopay/json.rb +14 -0
  32. data/lib/mangopay/kyc_document.rb +83 -0
  33. data/lib/mangopay/legal_user.rb +21 -0
  34. data/lib/mangopay/legal_user_sca.rb +25 -0
  35. data/lib/mangopay/mandate.rb +42 -0
  36. data/lib/mangopay/natural_user.rb +20 -0
  37. data/lib/mangopay/natural_user_sca.rb +25 -0
  38. data/lib/mangopay/pay_in.rb +415 -0
  39. data/lib/mangopay/pay_out.rb +41 -0
  40. data/lib/mangopay/payment_method_metadata.rb +13 -0
  41. data/lib/mangopay/pre_authorization.rb +17 -0
  42. data/lib/mangopay/recipient.rb +35 -0
  43. data/lib/mangopay/refund.rb +19 -0
  44. data/lib/mangopay/regulatory.rb +22 -0
  45. data/lib/mangopay/report.rb +24 -0
  46. data/lib/mangopay/report_v2.rb +21 -0
  47. data/lib/mangopay/resource.rb +21 -0
  48. data/lib/mangopay/settlement.rb +21 -0
  49. data/lib/mangopay/transaction.rb +24 -0
  50. data/lib/mangopay/transfer.rb +20 -0
  51. data/lib/mangopay/ubo.rb +26 -0
  52. data/lib/mangopay/ubo_declaration.rb +32 -0
  53. data/lib/mangopay/user.rb +100 -0
  54. data/lib/mangopay/version.rb +3 -0
  55. data/lib/mangopay/virtual_account.rb +44 -0
  56. data/lib/mangopay/wallet.rb +17 -0
  57. data/lib/mangopay.rb +456 -0
  58. data/mangopay.gemspec +30 -0
  59. data/spec/mangopay/acquiring_spec.rb +176 -0
  60. data/spec/mangopay/authorization_token_spec.rb +70 -0
  61. data/spec/mangopay/bank_account_spec.rb +105 -0
  62. data/spec/mangopay/bankingaliases_spec.rb +29 -0
  63. data/spec/mangopay/card_registration_spec.rb +123 -0
  64. data/spec/mangopay/client_spec.png +0 -0
  65. data/spec/mangopay/client_spec.rb +213 -0
  66. data/spec/mangopay/configuration_spec.rb +249 -0
  67. data/spec/mangopay/conversion_spec.rb +96 -0
  68. data/spec/mangopay/deposit_spec.rb +107 -0
  69. data/spec/mangopay/dispute_spec.png +0 -0
  70. data/spec/mangopay/dispute_spec.rb +294 -0
  71. data/spec/mangopay/event_spec.rb +33 -0
  72. data/spec/mangopay/fetch_filters_spec.rb +63 -0
  73. data/spec/mangopay/hook_spec.rb +37 -0
  74. data/spec/mangopay/idempotency_spec.rb +41 -0
  75. data/spec/mangopay/identity_verification_spec.rb +47 -0
  76. data/spec/mangopay/kyc_document_spec.png +0 -0
  77. data/spec/mangopay/kyc_document_spec.rb +118 -0
  78. data/spec/mangopay/log_requests_filter_spec.rb +26 -0
  79. data/spec/mangopay/mandate_spec.rb +99 -0
  80. data/spec/mangopay/payin_applepay_direct_spec.rb +21 -0
  81. data/spec/mangopay/payin_bancontact_web_spec.rb +30 -0
  82. data/spec/mangopay/payin_bankwire_direct_spec.rb +74 -0
  83. data/spec/mangopay/payin_bankwire_external_instruction_spec.rb +104 -0
  84. data/spec/mangopay/payin_bizum_web_spec.rb +54 -0
  85. data/spec/mangopay/payin_blik_web_spec.rb +41 -0
  86. data/spec/mangopay/payin_card_direct_spec.rb +69 -0
  87. data/spec/mangopay/payin_card_web_spec.rb +64 -0
  88. data/spec/mangopay/payin_directdebit_direct_spec.rb +37 -0
  89. data/spec/mangopay/payin_directdebit_web_spec.rb +38 -0
  90. data/spec/mangopay/payin_giropay_web_spec.rb +30 -0
  91. data/spec/mangopay/payin_googlepay_direct_spec.rb +21 -0
  92. data/spec/mangopay/payin_ideal_web_spec.rb +30 -0
  93. data/spec/mangopay/payin_intent_spec.rb +151 -0
  94. data/spec/mangopay/payin_klarna_web_spec.rb +32 -0
  95. data/spec/mangopay/payin_mbway_web_spec.rb +32 -0
  96. data/spec/mangopay/payin_multibanco_web_spec.rb +31 -0
  97. data/spec/mangopay/payin_paybybank_web_spec.rb +56 -0
  98. data/spec/mangopay/payin_payconiq_web_spec.rb +31 -0
  99. data/spec/mangopay/payin_paypal_web_spec.rb +113 -0
  100. data/spec/mangopay/payin_preauthorized_direct_spec.rb +118 -0
  101. data/spec/mangopay/payin_satispay_web_spec.rb +32 -0
  102. data/spec/mangopay/payin_swish_web_spec.rb +30 -0
  103. data/spec/mangopay/payin_twint_web_spec.rb +30 -0
  104. data/spec/mangopay/payment_method_metadata_spec.rb +15 -0
  105. data/spec/mangopay/payout_bankwire_spec.rb +93 -0
  106. data/spec/mangopay/preauthorization_spec.rb +51 -0
  107. data/spec/mangopay/recipient_spec.rb +134 -0
  108. data/spec/mangopay/recurring_payin_spec.rb +222 -0
  109. data/spec/mangopay/refund_spec.rb +34 -0
  110. data/spec/mangopay/regulatory_spec.rb +26 -0
  111. data/spec/mangopay/report_spec.rb +40 -0
  112. data/spec/mangopay/report_v2_spec.rb +117 -0
  113. data/spec/mangopay/report_wallets_spec.rb +40 -0
  114. data/spec/mangopay/settlement_sample.csv +8 -0
  115. data/spec/mangopay/settlement_spec.rb +38 -0
  116. data/spec/mangopay/shared_resources.rb +1380 -0
  117. data/spec/mangopay/transaction_spec.rb +59 -0
  118. data/spec/mangopay/transfer_spec.rb +77 -0
  119. data/spec/mangopay/ubo_declaration_spec.rb +44 -0
  120. data/spec/mangopay/ubo_spec.rb +39 -0
  121. data/spec/mangopay/user_spec.rb +444 -0
  122. data/spec/mangopay/virtual_account_spec.rb +52 -0
  123. data/spec/mangopay/wallet_spec.rb +100 -0
  124. data/spec/spec_helper.rb +31 -0
  125. data/spec/tmp/.keep +0 -0
  126. metadata +280 -0
@@ -0,0 +1,117 @@
1
+ describe MangoPay::ReportV2 do
2
+
3
+ def create
4
+ params = {
5
+ "Tag": "Created using the Mangopay API Postman collection",
6
+ "DownloadFormat": "CSV",
7
+ "ReportType": "COLLECTED_FEES",
8
+ "AfterDate": 1740787200,
9
+ "BeforeDate": 1743544740
10
+ }
11
+ MangoPay::ReportV2.create(params)
12
+ end
13
+
14
+ describe 'CREATE' do
15
+ it 'creates a report v2' do
16
+ created = create
17
+ expect(created['Id']).to_not be_nil
18
+ expect(created['Status']).to eq("PENDING")
19
+ end
20
+
21
+ it 'creates an intent report' do
22
+ params = {
23
+ "DownloadFormat": "CSV",
24
+ "ReportType": "ECHO_INTENT",
25
+ "AfterDate": 1748782023,
26
+ "BeforeDate": 1753102013,
27
+ "Filters": {
28
+ "PaymentMethod": "PAYPAL",
29
+ "Status": "CAPTURED",
30
+ "Type": "PAYIN"
31
+ },
32
+ "Columns": %w[Id Status Amount Currency FeesAmount FeesCurrency Type PaymentMethod BuyerId SellerId]
33
+ }
34
+
35
+ created = MangoPay::ReportV2.create(params)
36
+ expect(created['Id']).to_not be_nil
37
+ expect(created['Status']).to eq("PENDING")
38
+ expect(created['ReportType']).to eq("ECHO_INTENT")
39
+ end
40
+
41
+ it 'creates an intent actions report' do
42
+ params = {
43
+ "DownloadFormat": "CSV",
44
+ "ReportType": "ECHO_INTENT_ACTION",
45
+ "AfterDate": 1748782023,
46
+ "BeforeDate": 1753102013,
47
+ "Filters": {
48
+ "PaymentMethod": "PAYPAL",
49
+ "Status": "CAPTURED",
50
+ "Type": "PAYIN"
51
+ },
52
+ "Columns": %w[IntentId Id ExternalProcessingDate ExternalProviderReference ExternalMerchantReference Status Amount Currency FeesAmount FeesCurrency Type PaymentMethod BuyerId SellerId]
53
+ }
54
+
55
+ created = MangoPay::ReportV2.create(params)
56
+ expect(created['Id']).to_not be_nil
57
+ expect(created['Status']).to eq("PENDING")
58
+ expect(created['ReportType']).to eq("ECHO_INTENT_ACTION")
59
+ end
60
+
61
+ it 'creates settlement report' do
62
+ params = {
63
+ "Tag": "Creating a report using new Mangopay system",
64
+ "DownloadFormat": "CSV",
65
+ "ReportType": "ECHO_SETTLEMENT",
66
+ "AfterDate": 1748782023,
67
+ "BeforeDate": 1753102013,
68
+ "Filters": {
69
+ "Status": "RECONCILED",
70
+ "ExternalProviderName": "PAYPAL"
71
+ },
72
+ "Columns": %w[Id CreationDate FileName SettlementCurrency Status SettledTransactionCount UnsettledTransactionCount SettledAmount DeclaredAmount DeficitAmount]
73
+ }
74
+
75
+ created = MangoPay::ReportV2.create(params)
76
+ expect(created['Id']).to_not be_nil
77
+ expect(created['Status']).to eq("PENDING")
78
+ expect(created['ReportType']).to eq("ECHO_SETTLEMENT")
79
+ end
80
+ end
81
+
82
+ it 'creates split report' do
83
+ params = {
84
+ "Tag": "Creating a report using new Mangopay system",
85
+ "DownloadFormat": "CSV",
86
+ "ReportType": "ECHO_SPLIT",
87
+ "AfterDate": 1748782023,
88
+ "BeforeDate": 1753102013,
89
+ "Filters": {
90
+ "Status": "COMPLETED",
91
+ "IntentId": "int_0197f975-63f6-714e-8fc6-4451e128170f",
92
+ "Scheduled": false
93
+ },
94
+ "Columns": %w[Id IntentId AuthorId Amount Currency FeesAmount FeesCurrency Status Description CreditedWalletId DebitedWalletId Scheduled CreationDate ExecutionDate]
95
+ }
96
+
97
+ created = MangoPay::ReportV2.create(params)
98
+ expect(created['Id']).to_not be_nil
99
+ expect(created['Status']).to eq("PENDING")
100
+ expect(created['ReportType']).to eq("ECHO_SPLIT")
101
+ end
102
+
103
+ describe 'GET' do
104
+ it 'gets a report' do
105
+ created = create
106
+ fetched = MangoPay::ReportV2.get(created['Id'])
107
+ expect(fetched['Id']).to eq(created['Id'])
108
+ end
109
+
110
+ it 'gets all the reports' do
111
+ reports = MangoPay::ReportV2.get_all
112
+ expect(reports).to be_kind_of(Array)
113
+ expect(reports).not_to be_empty
114
+ end
115
+ end
116
+
117
+ end
@@ -0,0 +1,40 @@
1
+ describe MangoPay::Report do
2
+
3
+ def create
4
+ params = {
5
+ Tag: 'custom meta',
6
+ CallbackURL: 'http://www.my-site.com/callbackURL/',
7
+ DownloadFormat: 'CSV',
8
+ Sort: 'CreationDate:DESC',
9
+ Preview: false,
10
+ Filters: {},
11
+ Columns: [ 'Id', 'CreationDate' ],
12
+ ReportType: 'wallets'
13
+ }
14
+ MangoPay::Report.create(params)
15
+ end
16
+
17
+ describe 'CREATE' do
18
+ it 'creates a report' do
19
+ created = create
20
+ expect(created['Id']).to_not be_nil
21
+ end
22
+ end
23
+
24
+ describe 'FETCH' do
25
+
26
+ it 'fetches a report' do
27
+ created = create
28
+ fetched = MangoPay::Report.fetch(created['Id'])
29
+ expect(fetched['Id']).to eq(created['Id'])
30
+ end
31
+
32
+ it 'fetches all the reports' do
33
+ reports = MangoPay::Report.fetch()
34
+ expect(reports).to be_kind_of(Array)
35
+ expect(reports).not_to be_empty
36
+ end
37
+
38
+ end
39
+
40
+ end
@@ -0,0 +1,8 @@
1
+ IntentId,ExternalProviderReference,ExternalPaymentMethod,ExternalTransactionType,ExternalTransactionStatus,ExternalProcessingDate,Amount,Currency,ExternalInitialReference,ExternalProviderFees
2
+ int_0197b19d-ee51-7b60-84cb-207491cf383a,6TU984332A894613W,PAYPAL,PAYMENT,SETTLED,19-06-2025,1000,EUR,,0
3
+ ,,,,,,,,,
4
+ SettlementDate,19-06-2025,,,,,,,,
5
+ ExternalProviderName,Paypal,,,,,,,,
6
+ TotalSettlementFeesAmount,0,,,,,,,,
7
+ TotalSettlementAmount,1000,,,,,,,,
8
+ SettlementCurrency,EUR,,,,,,,,
@@ -0,0 +1,38 @@
1
+ describe MangoPay::Settlement do
2
+
3
+ let!(:settlement) do
4
+ create_settlement_if_needed
5
+ end
6
+
7
+ def create_settlement_if_needed
8
+ @settlement ||= begin
9
+ file_path = File.expand_path('settlement_sample.csv', __dir__)
10
+ file = File.binread(file_path)
11
+ MangoPay::Settlement.upload(file)
12
+ end
13
+ end
14
+
15
+ describe 'UPLOAD' do
16
+ it 'uploads the file' do
17
+ expect(@settlement['Status']).to eq('UPLOADED')
18
+ end
19
+ end
20
+
21
+ describe 'GET' do
22
+ it 'fetches the file' do
23
+ fetched = MangoPay::Settlement.get(@settlement['SettlementId'])
24
+ expect(fetched['Status']).to eq('UPLOADED')
25
+ end
26
+ end
27
+
28
+ describe 'UPDATE' do
29
+ it 'updates the file' do
30
+ file_path = File.expand_path('settlement_sample.csv', __dir__)
31
+ file = File.binread(file_path)
32
+ before_update = MangoPay::Settlement.upload(file)
33
+ expect(before_update['Status']).to eq('UPLOADED')
34
+ updated = MangoPay::Settlement.update(before_update['SettlementId'], file)
35
+ expect(updated['Status']).to eq('UPLOADED')
36
+ end
37
+ end
38
+ end