processout 3.4.0 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yaml +1 -1
  3. data/lib/processout/alternative_merchant_certificate.rb +5 -3
  4. data/lib/processout/apm_payment_processing_configuration.rb +81 -0
  5. data/lib/processout/apple_pay_alternative_merchant_certificates.rb +5 -3
  6. data/lib/processout/balances.rb +5 -3
  7. data/lib/processout/card.rb +45 -1
  8. data/lib/processout/card_contact.rb +11 -0
  9. data/lib/processout/card_create_request.rb +38 -2
  10. data/lib/processout/card_information.rb +1 -1
  11. data/lib/processout/card_scheme_details.rb +81 -0
  12. data/lib/processout/card_update_request.rb +37 -2
  13. data/lib/processout/customer.rb +8 -63
  14. data/lib/processout/device.rb +22 -0
  15. data/lib/processout/event.rb +1 -1
  16. data/lib/processout/export_layout.rb +4 -4
  17. data/lib/processout/export_layout_configuration_options.rb +1 -1
  18. data/lib/processout/gateway_configuration.rb +3 -3
  19. data/lib/processout/invoice.rb +163 -80
  20. data/lib/processout/invoice_device.rb +11 -0
  21. data/lib/processout/invoice_external_fraud_tools.rb +12 -0
  22. data/lib/processout/networking/request.rb +1 -1
  23. data/lib/processout/payment_processing_configuration.rb +93 -0
  24. data/lib/processout/payout.rb +1 -1
  25. data/lib/processout/product.rb +8 -6
  26. data/lib/processout/project.rb +2 -63
  27. data/lib/processout/project_sftp_settings_public.rb +1 -1
  28. data/lib/processout/refund.rb +1 -1
  29. data/lib/processout/submerchant.rb +92 -0
  30. data/lib/processout/submerchant_mapping.rb +103 -0
  31. data/lib/processout/token.rb +22 -7
  32. data/lib/processout/transaction.rb +17 -38
  33. data/lib/processout/transaction_operation.rb +11 -0
  34. data/lib/processout/unsupported_feature_bypass.rb +11 -0
  35. data/lib/processout/version.rb +1 -1
  36. data/lib/processout.rb +40 -46
  37. metadata +12 -13
  38. data/lib/processout/activity.rb +0 -206
  39. data/lib/processout/addon.rb +0 -401
  40. data/lib/processout/coupon.rb +0 -352
  41. data/lib/processout/discount.rb +0 -360
  42. data/lib/processout/plan.rb +0 -368
  43. data/lib/processout/subscription.rb +0 -910
@@ -9,12 +9,17 @@ module ProcessOut
9
9
  class UnsupportedFeatureBypass
10
10
 
11
11
  attr_reader :incremental_authorization
12
+ attr_reader :split_payments
12
13
 
13
14
 
14
15
  def incremental_authorization=(val)
15
16
  @incremental_authorization = val
16
17
  end
17
18
 
19
+ def split_payments=(val)
20
+ @split_payments = val
21
+ end
22
+
18
23
 
19
24
  # Initializes the UnsupportedFeatureBypass object
20
25
  # Params:
@@ -24,6 +29,7 @@ module ProcessOut
24
29
  @client = client
25
30
 
26
31
  self.incremental_authorization = data.fetch(:incremental_authorization, nil)
32
+ self.split_payments = data.fetch(:split_payments, nil)
27
33
 
28
34
  end
29
35
 
@@ -36,6 +42,7 @@ module ProcessOut
36
42
  def to_json(options)
37
43
  {
38
44
  "incremental_authorization": self.incremental_authorization,
45
+ "split_payments": self.split_payments,
39
46
  }.to_json
40
47
  end
41
48
 
@@ -49,6 +56,9 @@ module ProcessOut
49
56
  if data.include? "incremental_authorization"
50
57
  self.incremental_authorization = data["incremental_authorization"]
51
58
  end
59
+ if data.include? "split_payments"
60
+ self.split_payments = data["split_payments"]
61
+ end
52
62
 
53
63
  self
54
64
  end
@@ -61,6 +71,7 @@ module ProcessOut
61
71
  return self
62
72
  end
63
73
  self.incremental_authorization = data.fetch(:incremental_authorization, self.incremental_authorization)
74
+ self.split_payments = data.fetch(:split_payments, self.split_payments)
64
75
 
65
76
  self
66
77
  end
@@ -1,3 +1,3 @@
1
1
  module ProcessOut
2
- VERSION = "3.4.0"
2
+ VERSION = "6.0.0"
3
3
  end
data/lib/processout.rb CHANGED
@@ -1,7 +1,5 @@
1
1
  require "processout/version"
2
2
  require "processout/gateway_request"
3
- require "processout/activity"
4
- require "processout/addon"
5
3
  require "processout/api_version"
6
4
  require "processout/apple_pay_alternative_merchant_certificates"
7
5
  require "processout/alternative_merchant_certificate"
@@ -11,11 +9,9 @@ require "processout/balances_customer_action"
11
9
  require "processout/card"
12
10
  require "processout/card_information"
13
11
  require "processout/phone"
14
- require "processout/coupon"
15
12
  require "processout/customer"
16
13
  require "processout/customer_phone"
17
14
  require "processout/token"
18
- require "processout/discount"
19
15
  require "processout/event"
20
16
  require "processout/export_layout"
21
17
  require "processout/export_layout_configuration"
@@ -38,6 +34,8 @@ require "processout/invoice_shipping"
38
34
  require "processout/invoice_shipping_phone"
39
35
  require "processout/invoice_billing"
40
36
  require "processout/unsupported_feature_bypass"
37
+ require "processout/payment_processing_configuration"
38
+ require "processout/apm_payment_processing_configuration"
41
39
  require "processout/invoice_detail"
42
40
  require "processout/invoice_submerchant"
43
41
  require "processout/submerchant_phone_number"
@@ -47,13 +45,13 @@ require "processout/dunning_action"
47
45
  require "processout/payout"
48
46
  require "processout/payout_item"
49
47
  require "processout/payout_item_amount_breakdowns"
50
- require "processout/plan"
51
48
  require "processout/product"
52
49
  require "processout/project"
53
50
  require "processout/project_sftp_settings"
54
51
  require "processout/project_sftp_settings_public"
55
52
  require "processout/refund"
56
- require "processout/subscription"
53
+ require "processout/submerchant"
54
+ require "processout/submerchant_mapping"
57
55
  require "processout/transaction"
58
56
  require "processout/native_apm_response"
59
57
  require "processout/native_apm_parameter_definition"
@@ -65,11 +63,12 @@ require "processout/payment_data_three_ds_authentication"
65
63
  require "processout/transaction_operation"
66
64
  require "processout/webhook"
67
65
  require "processout/webhook_endpoint"
66
+ require "processout/card_update_request"
67
+ require "processout/card_create_request"
68
+ require "processout/card_scheme_details"
68
69
  require "processout/device"
69
70
  require "processout/card_contact"
70
71
  require "processout/card_shipping"
71
- require "processout/card_update_request"
72
- require "processout/card_create_request"
73
72
  require "processout/error_codes"
74
73
  require "processout/category_error_codes"
75
74
  require "processout/external_three_ds"
@@ -88,16 +87,6 @@ module ProcessOut
88
87
  @project_secret = project_secret
89
88
  end
90
89
 
91
- # Create a new Activity instance
92
- def activity(data = {})
93
- obj = Activity.new(self, data)
94
- end
95
-
96
- # Create a new Addon instance
97
- def addon(data = {})
98
- obj = Addon.new(self, data)
99
- end
100
-
101
90
  # Create a new APIVersion instance
102
91
  def api_version(data = {})
103
92
  obj = APIVersion.new(self, data)
@@ -143,11 +132,6 @@ module ProcessOut
143
132
  obj = Phone.new(self, data)
144
133
  end
145
134
 
146
- # Create a new Coupon instance
147
- def coupon(data = {})
148
- obj = Coupon.new(self, data)
149
- end
150
-
151
135
  # Create a new Customer instance
152
136
  def customer(data = {})
153
137
  obj = Customer.new(self, data)
@@ -163,11 +147,6 @@ module ProcessOut
163
147
  obj = Token.new(self, data)
164
148
  end
165
149
 
166
- # Create a new Discount instance
167
- def discount(data = {})
168
- obj = Discount.new(self, data)
169
- end
170
-
171
150
  # Create a new Event instance
172
151
  def event(data = {})
173
152
  obj = Event.new(self, data)
@@ -278,6 +257,16 @@ module ProcessOut
278
257
  obj = UnsupportedFeatureBypass.new(self, data)
279
258
  end
280
259
 
260
+ # Create a new PaymentProcessingConfiguration instance
261
+ def payment_processing_configuration(data = {})
262
+ obj = PaymentProcessingConfiguration.new(self, data)
263
+ end
264
+
265
+ # Create a new APMPaymentProcessingConfiguration instance
266
+ def apm_payment_processing_configuration(data = {})
267
+ obj = APMPaymentProcessingConfiguration.new(self, data)
268
+ end
269
+
281
270
  # Create a new InvoiceDetail instance
282
271
  def invoice_detail(data = {})
283
272
  obj = InvoiceDetail.new(self, data)
@@ -323,11 +312,6 @@ module ProcessOut
323
312
  obj = PayoutItemAmountBreakdowns.new(self, data)
324
313
  end
325
314
 
326
- # Create a new Plan instance
327
- def plan(data = {})
328
- obj = Plan.new(self, data)
329
- end
330
-
331
315
  # Create a new Product instance
332
316
  def product(data = {})
333
317
  obj = Product.new(self, data)
@@ -353,9 +337,14 @@ module ProcessOut
353
337
  obj = Refund.new(self, data)
354
338
  end
355
339
 
356
- # Create a new Subscription instance
357
- def subscription(data = {})
358
- obj = Subscription.new(self, data)
340
+ # Create a new Submerchant instance
341
+ def submerchant(data = {})
342
+ obj = Submerchant.new(self, data)
343
+ end
344
+
345
+ # Create a new SubmerchantMapping instance
346
+ def submerchant_mapping(data = {})
347
+ obj = SubmerchantMapping.new(self, data)
359
348
  end
360
349
 
361
350
  # Create a new Transaction instance
@@ -413,6 +402,21 @@ module ProcessOut
413
402
  obj = WebhookEndpoint.new(self, data)
414
403
  end
415
404
 
405
+ # Create a new CardUpdateRequest instance
406
+ def card_update_request(data = {})
407
+ obj = CardUpdateRequest.new(self, data)
408
+ end
409
+
410
+ # Create a new CardCreateRequest instance
411
+ def card_create_request(data = {})
412
+ obj = CardCreateRequest.new(self, data)
413
+ end
414
+
415
+ # Create a new CardSchemeDetails instance
416
+ def card_scheme_details(data = {})
417
+ obj = CardSchemeDetails.new(self, data)
418
+ end
419
+
416
420
  # Create a new Device instance
417
421
  def device(data = {})
418
422
  obj = Device.new(self, data)
@@ -428,16 +432,6 @@ module ProcessOut
428
432
  obj = CardShipping.new(self, data)
429
433
  end
430
434
 
431
- # Create a new CardUpdateRequest instance
432
- def card_update_request(data = {})
433
- obj = CardUpdateRequest.new(self, data)
434
- end
435
-
436
- # Create a new CardCreateRequest instance
437
- def card_create_request(data = {})
438
- obj = CardCreateRequest.new(self, data)
439
- end
440
-
441
435
  # Create a new ErrorCodes instance
442
436
  def error_codes(data = {})
443
437
  obj = ErrorCodes.new(self, data)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: processout
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.4.0
4
+ version: 6.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Manuel HUEZ
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-05-29 00:00:00.000000000 Z
11
+ date: 2026-08-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,7 +52,7 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
- description:
55
+ description:
56
56
  email:
57
57
  - manuel@processout.com
58
58
  executables: []
@@ -74,10 +74,9 @@ files:
74
74
  - bin/console
75
75
  - bin/setup
76
76
  - lib/processout.rb
77
- - lib/processout/activity.rb
78
- - lib/processout/addon.rb
79
77
  - lib/processout/alternative_merchant_certificate.rb
80
78
  - lib/processout/api_version.rb
79
+ - lib/processout/apm_payment_processing_configuration.rb
81
80
  - lib/processout/apple_pay_alternative_merchant_certificates.rb
82
81
  - lib/processout/balance.rb
83
82
  - lib/processout/balances.rb
@@ -86,15 +85,14 @@ files:
86
85
  - lib/processout/card_contact.rb
87
86
  - lib/processout/card_create_request.rb
88
87
  - lib/processout/card_information.rb
88
+ - lib/processout/card_scheme_details.rb
89
89
  - lib/processout/card_shipping.rb
90
90
  - lib/processout/card_update_request.rb
91
91
  - lib/processout/category_error_codes.rb
92
- - lib/processout/coupon.rb
93
92
  - lib/processout/customer.rb
94
93
  - lib/processout/customer_action.rb
95
94
  - lib/processout/customer_phone.rb
96
95
  - lib/processout/device.rb
97
- - lib/processout/discount.rb
98
96
  - lib/processout/dunning_action.rb
99
97
  - lib/processout/error_codes.rb
100
98
  - lib/processout/errors/authentication_error.rb
@@ -138,19 +136,20 @@ files:
138
136
  - lib/processout/payment_data_network_authentication.rb
139
137
  - lib/processout/payment_data_three_ds_authentication.rb
140
138
  - lib/processout/payment_data_three_ds_request.rb
139
+ - lib/processout/payment_processing_configuration.rb
141
140
  - lib/processout/payout.rb
142
141
  - lib/processout/payout_item.rb
143
142
  - lib/processout/payout_item_amount_breakdowns.rb
144
143
  - lib/processout/phone.rb
145
- - lib/processout/plan.rb
146
144
  - lib/processout/product.rb
147
145
  - lib/processout/project.rb
148
146
  - lib/processout/project_sftp_settings.rb
149
147
  - lib/processout/project_sftp_settings_public.rb
150
148
  - lib/processout/refund.rb
149
+ - lib/processout/submerchant.rb
151
150
  - lib/processout/submerchant_address.rb
151
+ - lib/processout/submerchant_mapping.rb
152
152
  - lib/processout/submerchant_phone_number.rb
153
- - lib/processout/subscription.rb
154
153
  - lib/processout/three_ds.rb
155
154
  - lib/processout/token.rb
156
155
  - lib/processout/transaction.rb
@@ -164,7 +163,7 @@ homepage: https://docs.processout.com
164
163
  licenses:
165
164
  - MIT
166
165
  metadata: {}
167
- post_install_message:
166
+ post_install_message:
168
167
  rdoc_options: []
169
168
  require_paths:
170
169
  - lib
@@ -179,8 +178,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
179
178
  - !ruby/object:Gem::Version
180
179
  version: '0'
181
180
  requirements: []
182
- rubygems_version: 3.0.3.1
183
- signing_key:
181
+ rubygems_version: 3.4.20
182
+ signing_key:
184
183
  specification_version: 4
185
184
  summary: Ruby bindings for the ProcessOut API
186
185
  test_files: []
@@ -1,206 +0,0 @@
1
- # The content of this file was automatically generated
2
-
3
- require "cgi"
4
- require "json"
5
- require "processout/networking/request"
6
- require "processout/networking/response"
7
-
8
- module ProcessOut
9
- class Activity
10
-
11
- attr_reader :id
12
- attr_reader :project
13
- attr_reader :project_id
14
- attr_reader :title
15
- attr_reader :content
16
- attr_reader :level
17
- attr_reader :created_at
18
-
19
-
20
- def id=(val)
21
- @id = val
22
- end
23
-
24
- def project=(val)
25
- if val.nil?
26
- @project = val
27
- return
28
- end
29
-
30
- if val.instance_of? Project
31
- @project = val
32
- else
33
- obj = Project.new(@client)
34
- obj.fill_with_data(val)
35
- @project = obj
36
- end
37
-
38
- end
39
-
40
- def project_id=(val)
41
- @project_id = val
42
- end
43
-
44
- def title=(val)
45
- @title = val
46
- end
47
-
48
- def content=(val)
49
- @content = val
50
- end
51
-
52
- def level=(val)
53
- @level = val
54
- end
55
-
56
- def created_at=(val)
57
- @created_at = val
58
- end
59
-
60
-
61
- # Initializes the Activity object
62
- # Params:
63
- # +client+:: +ProcessOut+ client instance
64
- # +data+:: data that can be used to fill the object
65
- def initialize(client, data = {})
66
- @client = client
67
-
68
- self.id = data.fetch(:id, nil)
69
- self.project = data.fetch(:project, nil)
70
- self.project_id = data.fetch(:project_id, nil)
71
- self.title = data.fetch(:title, nil)
72
- self.content = data.fetch(:content, nil)
73
- self.level = data.fetch(:level, nil)
74
- self.created_at = data.fetch(:created_at, nil)
75
-
76
- end
77
-
78
- # Create a new Activity using the current client
79
- def new(data = {})
80
- Activity.new(@client, data)
81
- end
82
-
83
- # Overrides the JSON marshaller to only send the fields we want
84
- def to_json(options)
85
- {
86
- "id": self.id,
87
- "project": self.project,
88
- "project_id": self.project_id,
89
- "title": self.title,
90
- "content": self.content,
91
- "level": self.level,
92
- "created_at": self.created_at,
93
- }.to_json
94
- end
95
-
96
- # Fills the object with data coming from the API
97
- # Params:
98
- # +data+:: +Hash+ of data coming from the API
99
- def fill_with_data(data)
100
- if data.nil?
101
- return self
102
- end
103
- if data.include? "id"
104
- self.id = data["id"]
105
- end
106
- if data.include? "project"
107
- self.project = data["project"]
108
- end
109
- if data.include? "project_id"
110
- self.project_id = data["project_id"]
111
- end
112
- if data.include? "title"
113
- self.title = data["title"]
114
- end
115
- if data.include? "content"
116
- self.content = data["content"]
117
- end
118
- if data.include? "level"
119
- self.level = data["level"]
120
- end
121
- if data.include? "created_at"
122
- self.created_at = data["created_at"]
123
- end
124
-
125
- self
126
- end
127
-
128
- # Prefills the object with the data passed as parameters
129
- # Params:
130
- # +data+:: +Hash+ of data
131
- def prefill(data)
132
- if data.nil?
133
- return self
134
- end
135
- self.id = data.fetch(:id, self.id)
136
- self.project = data.fetch(:project, self.project)
137
- self.project_id = data.fetch(:project_id, self.project_id)
138
- self.title = data.fetch(:title, self.title)
139
- self.content = data.fetch(:content, self.content)
140
- self.level = data.fetch(:level, self.level)
141
- self.created_at = data.fetch(:created_at, self.created_at)
142
-
143
- self
144
- end
145
-
146
- # Get all the project activities.
147
- # Params:
148
- # +options+:: +Hash+ of options
149
- def all(options = {})
150
- self.prefill(options)
151
-
152
- request = Request.new(@client)
153
- path = "/activities"
154
- data = {
155
-
156
- }
157
-
158
- response = Response.new(request.get(path, data, options))
159
- return_values = Array.new
160
-
161
- a = Array.new
162
- body = response.body
163
- for v in body['activities']
164
- tmp = Activity.new(@client)
165
- tmp.fill_with_data(v)
166
- a.push(tmp)
167
- end
168
-
169
- return_values.push(a)
170
-
171
-
172
-
173
- return_values[0]
174
- end
175
-
176
- # Find a specific activity and fetch its data.
177
- # Params:
178
- # +activity_id+:: ID of the activity
179
- # +options+:: +Hash+ of options
180
- def find(activity_id, options = {})
181
- self.prefill(options)
182
-
183
- request = Request.new(@client)
184
- path = "/activities/" + CGI.escape(activity_id) + ""
185
- data = {
186
-
187
- }
188
-
189
- response = Response.new(request.get(path, data, options))
190
- return_values = Array.new
191
-
192
- body = response.body
193
- body = body["activity"]
194
-
195
-
196
- obj = Activity.new(@client)
197
- return_values.push(obj.fill_with_data(body))
198
-
199
-
200
-
201
- return_values[0]
202
- end
203
-
204
-
205
- end
206
- end