pcp-server-ruby-sdk 1.9.0 → 1.10.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9011779d863cca1afbb5b48b20ee1a0d9cce4c7228c833c1f7c807b5ed3d253e
4
- data.tar.gz: 960ceb006b8d16e39c1a965077229e77e34de6d2cb51536d6a4f2c615e62e97e
3
+ metadata.gz: 482f280c7f678eb053e4b60b6b598efd83f822598825c40b036fda794d8ea931
4
+ data.tar.gz: ee91952a8e82ca06fb099357ff371e074158db1818cd7edabf63c6c8d303e468
5
5
  SHA512:
6
- metadata.gz: 034a04e6f67e0101e619b47c64a44d59c66ec2f5131fc9d8f750f015889e41c314fc8240d3b4c4188db465b890829a8e954bac157580913b2ac98a1f19b5a989
7
- data.tar.gz: 766af39044c63bcb9fccbb7ae346144428e42df2f17f87cade440e73f2496db3b3132c06fd774fcbb258b61267b6dc6ddb0ae309be44adb4eb025bbaa3a7f37e
6
+ metadata.gz: 1fec4a3be2887f4ae41bdb3f4c77e4cf88b0ea65d4deb62f2275f8df12c194997cfe18fa8b8754c58d309d5b48afc22e82372d4d3a2f892c4f85e0946aa5ffe2
7
+ data.tar.gz: f9689ef5abca20c6c4fb2029abf485f2f45ee7b6557ae6f84637539b0ed37b432b958e29c4f661a5babd64e0810b93f3ecee81a2a8113535d5a486f89ad88f95
data/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ # [1.10.0](https://github.com/PAYONE-GmbH/PCP-ServerSDK-ruby/compare/v1.9.0...v1.10.0) (2026-05-22)
2
+
3
+ ### Features
4
+
5
+ * feat: update API version to 1.55.0 ([55d757f9427b16513b6c48bd9a8d7332d82bd886](https://github.com/PAYONE-GmbH/PCP-ServerSDK-ruby/commit/55d757f9427b16513b6c48bd9a8d7332d82bd886))
6
+
1
7
  # [1.9.0](https://github.com/PAYONE-GmbH/PCP-ServerSDK-ruby/compare/v1.8.0...v1.9.0) (2026-04-29)
2
8
 
3
9
  ### Features
data/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
  ![PyPI - Downloads](https://img.shields.io/gem/dv/pcp-server-ruby-sdk/1.1.0)
7
7
 
8
8
 
9
- Welcome to the Ruby SDK for the PAYONE Commerce Platform (api-version 1.40.0)! This repository contains a powerful, easy-to-use software development kit (SDK) designed to simplify the integration of online payment processing into your applications.
9
+ Welcome to the Ruby SDK for the PAYONE Commerce Platform (api-version 1.55.0)! This repository contains a powerful, easy-to-use software development kit (SDK) designed to simplify the integration of online payment processing into your applications.
10
10
 
11
11
  ## Requirements
12
12
 
data/api-definition.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  openapi: "3.0.3"
2
2
 
3
3
  info:
4
- version: 1.50.0
4
+ version: 1.55.0
5
5
  title: "Commerce Platform API"
6
6
  description: |
7
7
  RESTful API for the creation of Commerce Cases with Checkouts and the execution of Payments.
8
8
 
9
9
  servers:
10
- - url: "https://commerce-api.payone.com"
10
+ - url: "https://api.commerce.payone.com"
11
11
  description: Production URL
12
- - url: "https://preprod.commerce-api.payone.com"
12
+ - url: "https://api.preprod.commerce.payone.com"
13
13
  description: Pre-Production URL
14
14
 
15
15
  tags:
@@ -1245,6 +1245,100 @@ paths:
1245
1245
  schema:
1246
1246
  $ref: '#/components/schemas/ErrorResponse'
1247
1247
 
1248
+ '/v1/{merchantId}/commerce-cases/{commerceCaseId}/checkouts/{checkoutId}/payment-executions/{paymentExecutionId}/events/{eventId}/fund-splits':
1249
+ post:
1250
+ summary: Create a Fund Split for a Chargeback Event
1251
+ description: |-
1252
+ This endpoint allows merchants to instruct fund split distributions for a specific chargeback event
1253
+ within a marketplace transaction. When a chargeback event is received and allocated to a Payment Execution
1254
+ that belongs to a marketplace transaction, the merchant can use this endpoint to specify how the chargeback
1255
+ amount should be distributed among the different sellers (fund recipients) involved in the original order.
1256
+
1257
+ The fund split instruction contains one or more fund distributions, each specifying a target account,
1258
+ the amount to be allocated, and the type of distribution (e.g. seller revenue, platform commission, etc.).
1259
+
1260
+ This endpoint is only applicable for Payment Executions that belong to a marketplace transaction.
1261
+ If the Payment Execution is not part of a marketplace transaction, a 400 error will be returned.
1262
+ tags:
1263
+ - PaymentExecution
1264
+ operationId: createFundSplit
1265
+ parameters:
1266
+ - $ref: '#/components/parameters/merchantIdPath'
1267
+ - $ref: '#/components/parameters/commerceCaseIdPath'
1268
+ - $ref: '#/components/parameters/checkoutIdPath'
1269
+ - $ref: '#/components/parameters/paymentExecutionId'
1270
+ - $ref: '#/components/parameters/eventIdPath'
1271
+ requestBody:
1272
+ required: true
1273
+ content:
1274
+ application/json:
1275
+ schema:
1276
+ $ref: '#/components/schemas/FundSplitRequest'
1277
+ responses:
1278
+ '201':
1279
+ x-nullable: true
1280
+ description: The fund split instruction was successfully created and will be processed.
1281
+ content:
1282
+ application/json:
1283
+ schema:
1284
+ $ref: '#/components/schemas/FundSplitResponse'
1285
+ '400':
1286
+ x-nullable: true
1287
+ description: |-
1288
+ The request was malformed, was missing required data, or the Payment Execution does not belong to a
1289
+ marketplace transaction. The error message will indicate the specific issue.
1290
+ content:
1291
+ application/json:
1292
+ schema:
1293
+ $ref: '#/components/schemas/ErrorResponse'
1294
+ '403':
1295
+ x-nullable: true
1296
+ description: You are not allowed to access the service or account or your API authentication failed.
1297
+ content:
1298
+ application/json:
1299
+ schema:
1300
+ $ref: '#/components/schemas/ErrorResponse'
1301
+ '404':
1302
+ x-nullable: true
1303
+ description: The Commerce Case, Checkout, Payment Execution, or Event was not found.
1304
+ content:
1305
+ application/json:
1306
+ schema:
1307
+ $ref: '#/components/schemas/ErrorResponse'
1308
+ '409':
1309
+ x-nullable: true
1310
+ description: |-
1311
+ A fund split instruction has already been submitted for this event, or the event is in a state
1312
+ that does not allow fund split creation.
1313
+ content:
1314
+ application/json:
1315
+ schema:
1316
+ $ref: '#/components/schemas/ErrorResponse'
1317
+ '500':
1318
+ x-nullable: true
1319
+ description: Internal server exception.
1320
+ content:
1321
+ application/json:
1322
+ schema:
1323
+ $ref: '#/components/schemas/ErrorResponse'
1324
+ '502':
1325
+ x-nullable: true
1326
+ description: |-
1327
+ Any 5XX response points to something that went wrong on our end. This could also be that the system was
1328
+ unable to route the transaction to an appropriate acquirer/3rd party. Another reason for such a response
1329
+ is when the 3rd party's response could not be understood.
1330
+ content:
1331
+ application/json:
1332
+ schema:
1333
+ $ref: '#/components/schemas/ErrorResponse'
1334
+ '503':
1335
+ x-nullable: true
1336
+ description: Service unavailable.
1337
+ content:
1338
+ application/json:
1339
+ schema:
1340
+ $ref: '#/components/schemas/ErrorResponse'
1341
+
1248
1342
  '/v1/{merchantId}/commerce-cases/{commerceCaseId}/checkouts/{checkoutId}/payment-information':
1249
1343
  post:
1250
1344
  summary: Create a Payment Information
@@ -1405,6 +1499,16 @@ components:
1405
1499
  schema:
1406
1500
  type: string
1407
1501
  format: UUID
1502
+ eventIdPath:
1503
+ in: path
1504
+ name: eventId
1505
+ description: |-
1506
+ Unique identifier of a payment event (e.g. a chargeback event) that is associated with a Payment Execution.
1507
+ This ID is used to link the fund split instruction to the specific event that triggered the chargeback allocation.
1508
+ required: true
1509
+ schema:
1510
+ type: string
1511
+ format: UUID
1408
1512
  commerceCaseIdQuery:
1409
1513
  in: query
1410
1514
  name: commerceCaseId
@@ -2110,6 +2214,15 @@ components:
2110
2214
  properties:
2111
2215
  cancellationReason:
2112
2216
  $ref: '#/components/schemas/CancellationReason'
2217
+ amount:
2218
+ type: integer
2219
+ format: int64
2220
+ maximum: 999999999999
2221
+ minimum: 1
2222
+ description: |-
2223
+ Here you can specify the amount that you want to cancel (specified in cents, where single digit currencies
2224
+ are presumed to have 2 digits). The amount can be lower than the amount that was authorized, but not higher.
2225
+ If left empty, the remaining open amount will be cancelled.
2113
2226
  CancelPaymentResponse:
2114
2227
  type: object
2115
2228
  additionalProperties: false
@@ -2595,6 +2708,7 @@ components:
2595
2708
  * false = the payment does not require approval, and the funds will be captured automatically
2596
2709
 
2597
2710
  If the parameter is not provided in the request, the default value will be true
2711
+ default: true
2598
2712
  paymentProduct3391SpecificInput:
2599
2713
  $ref: '#/components/schemas/PaymentProduct3391SpecificInput'
2600
2714
  CompleteOrderRequest:
@@ -2977,7 +3091,7 @@ components:
2977
3091
  properties:
2978
3092
  acceptHeader:
2979
3093
  type: string
2980
- description: |
3094
+ description: |
2981
3095
  The accept-header of the customer client from the HTTP Headers.
2982
3096
  This field can be mandatory depending on the selected payment method and routing option.
2983
3097
  maxLength: 2048
@@ -3147,6 +3261,7 @@ components:
3147
3261
  * false = the payment does not require approval, and the funds will be captured automatically
3148
3262
 
3149
3263
  If the parameter is not provided in the request, the default value will be true
3264
+ default: true
3150
3265
  paymentProduct3392SpecificInput:
3151
3266
  $ref: '#/components/schemas/PaymentProduct3392SpecificInput'
3152
3267
  FinancingPaymentMethodSpecificOutput:
@@ -3240,6 +3355,46 @@ components:
3240
3355
  type: array
3241
3356
  items:
3242
3357
  $ref: '#/components/schemas/FundDistribution'
3358
+ FundSplitRequest:
3359
+ type: object
3360
+ description: |-
3361
+ Request object for creating a fund split instruction for a chargeback event in a marketplace transaction.
3362
+ Contains the fund split details specifying how the chargeback amount should be distributed among the
3363
+ different sellers and/or the platform involved in the original marketplace order.
3364
+ additionalProperties: false
3365
+ required:
3366
+ - fundSplit
3367
+ properties:
3368
+ fundSplit:
3369
+ $ref: '#/components/schemas/FundSplit'
3370
+ FundSplitResponse:
3371
+ type: object
3372
+ description: |-
3373
+ Response object returned after successfully creating a fund split instruction. Contains the unique
3374
+ identifier of the created fund split and the processing status.
3375
+ additionalProperties: false
3376
+ properties:
3377
+ fundSplitId:
3378
+ type: string
3379
+ format: UUID
3380
+ description: |-
3381
+ Unique identifier assigned to the created fund split instruction. This ID can be used for tracking
3382
+ and referencing the fund split in subsequent operations or inquiries.
3383
+ example: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
3384
+ paymentExecutionId:
3385
+ type: string
3386
+ format: UUID
3387
+ description: |-
3388
+ Unique identifier of the Payment Execution that this fund split is associated with.
3389
+ example: "f47ac10b-58cc-4372-a567-0e02b2c3d479"
3390
+ eventId:
3391
+ type: string
3392
+ format: UUID
3393
+ description: |-
3394
+ Unique identifier of the chargeback event that this fund split instruction was created for.
3395
+ example: "c56a4180-65aa-42ec-a945-5fd21dec0538"
3396
+ fundSplit:
3397
+ $ref: '#/components/schemas/FundSplit'
3243
3398
  InstallmentOption:
3244
3399
  type: object
3245
3400
  properties:
@@ -3509,7 +3664,7 @@ components:
3509
3664
  example: 0
3510
3665
  taxAmountPerUnit:
3511
3666
  type: boolean
3512
- description: |-
3667
+ description: |-
3513
3668
  This field indicates if the `taxAmount` is to be interpreted as the tax amount per unit rather than for the entire line item.
3514
3669
  This field is included in the response only when `taxAmount` is set; otherwise, it will return as `null`.
3515
3670
  format: int64
@@ -4207,7 +4362,10 @@ components:
4207
4362
  example: your-order-6372
4208
4363
  PaymentReferencesForRefund:
4209
4364
  type: object
4210
- description: Object that holds all reference properties that are linked to this transaction.
4365
+ description: |-
4366
+ Object that holds all reference properties that are linked to this refund transaction.
4367
+ Extends the standard PaymentReferences with an additional captureReference field to support
4368
+ scenarios where a Checkout may contain multiple partial captures from different sellers.
4211
4369
  additionalProperties: false
4212
4370
  allOf:
4213
4371
  - $ref: '#/components/schemas/PaymentReferences'
@@ -4215,9 +4373,16 @@ components:
4215
4373
  properties:
4216
4374
  captureReference:
4217
4375
  description: |-
4218
- Reference of the capture that should be used for the refund.
4376
+ Merchant-provided reference of the capture that this refund should be applied to.
4377
+ A single Checkout can contain multiple partial captures.
4378
+ By supplying the captureReference the merchant ensures the refund is allocated to the correct
4379
+ capture.
4380
+
4381
+ This value must match the merchantReference that was provided in the PaymentReferences of the
4382
+ original capture request.
4219
4383
  example: your-order-6372
4220
4384
  type: string
4385
+ maxLength: 20
4221
4386
  PaymentResponse:
4222
4387
  type: object
4223
4388
  description: Object that holds the payment related properties.
@@ -4454,6 +4619,7 @@ components:
4454
4619
  * false = the payment does not require approval, and the funds will be captured automatically
4455
4620
 
4456
4621
  If the parameter is not provided in the request, the default value will be true
4622
+ default: true
4457
4623
  paymentProcessingToken:
4458
4624
  type: string
4459
4625
  description: ID of the token to use to create the payment.
@@ -4477,6 +4643,8 @@ components:
4477
4643
  $ref: '#/components/schemas/PaymentProductId'
4478
4644
  paymentProduct840SpecificInput:
4479
4645
  $ref: '#/components/schemas/RedirectPaymentProduct840SpecificInput'
4646
+ paymentProduct900SpecificInput:
4647
+ $ref: '#/components/schemas/RedirectPaymentProduct900SpecificInput'
4480
4648
  redirectionData:
4481
4649
  $ref: '#/components/schemas/RedirectionData'
4482
4650
  RedirectPaymentMethodSpecificOutput:
@@ -4529,6 +4697,27 @@ components:
4529
4697
  Default value is false.
4530
4698
  default: false
4531
4699
  example: true
4700
+ RedirectPaymentProduct900SpecificInput:
4701
+ type: object
4702
+ properties:
4703
+ captureTrigger:
4704
+ type: string
4705
+ description: |-
4706
+ Indicates the event upon which the payment should be captured.
4707
+ This value is shown to customers in the Wero portal to clarify
4708
+ when the capture will occur.
4709
+ Has the following possible values:
4710
+ - shipping: Upon shipping the order.
4711
+ - delivery: Upon delivering the order.
4712
+ - availability: As soon as the order is available.
4713
+ - serviceFulfillment: Upon fulfilling the service.
4714
+ - other: For any other use case.
4715
+ enum:
4716
+ - shipping
4717
+ - delivery
4718
+ - availability
4719
+ - serviceFulfillment
4720
+ - other
4532
4721
  References:
4533
4722
  type: object
4534
4723
  description: Object that holds all reference properties that are linked to this transaction.
@@ -5008,4 +5197,4 @@ components:
5008
5197
  enum:
5009
5198
  - first
5010
5199
  - subsequent
5011
- x-enum-to-string: false
5200
+ x-enum-to-string: false
@@ -6,6 +6,7 @@ require_relative '../models/cancel_payment_response'
6
6
  require_relative '../models/capture_payment_response'
7
7
  require_relative '../models/complete_payment_response'
8
8
  require_relative '../models/create_payment_response'
9
+ require_relative '../models/fund_split_response'
9
10
  require_relative '../models/refund_payment_response'
10
11
  module PCPServerSDK
11
12
  module Endpoints
@@ -176,6 +177,31 @@ module PCPServerSDK
176
177
  deserialize_json(response, PCPServerSDK::Models::PaymentExecution)
177
178
  end
178
179
 
180
+ # Create a fund split for a payment event
181
+ # @param merchant_id [String] The merchant identifier
182
+ # @param commerce_case_id [String] The commerce case identifier
183
+ # @param checkout_id [String] The checkout identifier
184
+ # @param payment_execution_id [String] The payment execution identifier
185
+ # @param event_id [String] The payment event identifier
186
+ # @param payload [PCPServerSDK::Models::FundSplitRequest] The fund split request
187
+ # @return [PCPServerSDK::Models::FundSplitResponse] The fund split response
188
+ def create_fund_split(merchant_id, commerce_case_id, checkout_id, payment_execution_id, event_id, payload)
189
+ validate_ids(merchant_id, commerce_case_id, checkout_id)
190
+ raise TypeError, PAYMENT_EXECUTION_ID_REQUIRED_ERROR if payment_execution_id.nil? || payment_execution_id.empty?
191
+ raise TypeError, 'Event ID is required' if event_id.nil? || event_id.empty?
192
+
193
+ url = URI.join(get_config.host, "/v1/#{merchant_id}/commerce-cases/#{commerce_case_id}/checkouts/#{checkout_id}/payment-executions/#{payment_execution_id}/events/#{event_id}/fund-splits")
194
+
195
+ request_init = {
196
+ method: 'POST',
197
+ headers: { 'Content-Type' => 'application/json' },
198
+ body: JSON.generate(payload)
199
+ }
200
+
201
+ response = make_api_call(url.to_s, request_init)
202
+ deserialize_json(response, PCPServerSDK::Models::FundSplitResponse)
203
+ end
204
+
179
205
 
180
206
  private
181
207
 
@@ -6,6 +6,11 @@ module PCPServerSDK
6
6
  class CancelPaymentRequest
7
7
  attr_accessor :cancellation_reason
8
8
 
9
+ # Here you can specify the amount that you want to cancel (specified in cents, where single digit currencies
10
+ # are presumed to have 2 digits). The amount can be lower than the amount that was authorized, but not higher.
11
+ # If left empty, the remaining open amount will be cancelled.
12
+ attr_accessor :amount
13
+
9
14
  class EnumAttributeValidator
10
15
  attr_reader :datatype
11
16
  attr_reader :allowable_values
@@ -31,7 +36,8 @@ module PCPServerSDK
31
36
  # Attribute mapping from ruby-style variable name to JSON key.
32
37
  def self.attribute_map
33
38
  {
34
- :'cancellation_reason' => :'cancellationReason'
39
+ :'cancellation_reason' => :'cancellationReason',
40
+ :'amount' => :'amount'
35
41
  }
36
42
  end
37
43
 
@@ -43,7 +49,8 @@ module PCPServerSDK
43
49
  # Attribute type mapping.
44
50
  def self.openapi_types
45
51
  {
46
- :'cancellation_reason' => :'CancellationReason'
52
+ :'cancellation_reason' => :'CancellationReason',
53
+ :'amount' => :'Integer'
47
54
  }
48
55
  end
49
56
 
@@ -71,6 +78,10 @@ module PCPServerSDK
71
78
  if attributes.key?(:'cancellation_reason')
72
79
  self.cancellation_reason = attributes[:'cancellation_reason']
73
80
  end
81
+
82
+ if attributes.key?(:'amount')
83
+ self.amount = attributes[:'amount']
84
+ end
74
85
  end
75
86
 
76
87
  # Checks equality by comparing each attribute.
@@ -78,7 +89,8 @@ module PCPServerSDK
78
89
  def ==(o)
79
90
  return true if self.equal?(o)
80
91
  self.class == o.class &&
81
- cancellation_reason == o.cancellation_reason
92
+ cancellation_reason == o.cancellation_reason &&
93
+ amount == o.amount
82
94
  end
83
95
 
84
96
  # @see the `==` method
@@ -90,7 +102,7 @@ module PCPServerSDK
90
102
  # Calculates hash code according to all attributes.
91
103
  # @return [Integer] Hash code
92
104
  def hash
93
- [cancellation_reason].hash
105
+ [cancellation_reason, amount].hash
94
106
  end
95
107
 
96
108
  # Builds the object from hash
@@ -0,0 +1,153 @@
1
+
2
+ require 'date'
3
+ require 'time'
4
+
5
+ module PCPServerSDK
6
+ module Models
7
+ class FundSplitRequest
8
+ attr_accessor :fund_split
9
+
10
+ def self.attribute_map
11
+ {
12
+ :'fund_split' => :'fundSplit'
13
+ }
14
+ end
15
+
16
+ def self.acceptable_attributes
17
+ attribute_map.values
18
+ end
19
+
20
+ def self.openapi_types
21
+ {
22
+ :'fund_split' => :'FundSplit'
23
+ }
24
+ end
25
+
26
+ def self.openapi_nullable
27
+ Set.new([])
28
+ end
29
+
30
+ def initialize(attributes = {})
31
+ if (!attributes.is_a?(Hash))
32
+ fail ArgumentError, "The input argument (attributes) must be a hash in `FundSplitRequest` initialize method"
33
+ end
34
+
35
+ attributes = attributes.each_with_object({}) { |(k, v), h|
36
+ if (!self.class.attribute_map.key?(k.to_sym))
37
+ fail ArgumentError, "`#{k}` is not a valid attribute in `FundSplitRequest`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
38
+ end
39
+ h[k.to_sym] = v
40
+ }
41
+
42
+ if attributes.key?(:'fund_split')
43
+ self.fund_split = attributes[:'fund_split']
44
+ end
45
+ end
46
+
47
+ def ==(o)
48
+ return true if self.equal?(o)
49
+ self.class == o.class &&
50
+ fund_split == o.fund_split
51
+ end
52
+
53
+ def eql?(o)
54
+ self == o
55
+ end
56
+
57
+ def hash
58
+ [fund_split].hash
59
+ end
60
+
61
+ def self.build_from_hash(attributes)
62
+ return nil unless attributes.is_a?(Hash)
63
+ attributes = attributes.transform_keys(&:to_sym)
64
+ transformed_hash = {}
65
+ openapi_types.each_pair do |key, type|
66
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
67
+ transformed_hash["#{key}"] = nil
68
+ elsif type =~ /\AArray<(.*)>/i
69
+ if attributes[attribute_map[key]].is_a?(Array)
70
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
71
+ end
72
+ elsif !attributes[attribute_map[key]].nil?
73
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
74
+ end
75
+ end
76
+ new(transformed_hash)
77
+ end
78
+
79
+ def self._deserialize(type, value)
80
+ case type.to_sym
81
+ when :Time
82
+ Time.parse(value)
83
+ when :Date
84
+ Date.parse(value)
85
+ when :String
86
+ value.to_s
87
+ when :Integer
88
+ value.to_i
89
+ when :Float
90
+ value.to_f
91
+ when :Boolean
92
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
93
+ true
94
+ else
95
+ false
96
+ end
97
+ when :Object
98
+ value
99
+ when /\AArray<(?<inner_type>.+)>\z/
100
+ inner_type = Regexp.last_match[:inner_type]
101
+ value.map { |v| _deserialize(inner_type, v) }
102
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
103
+ k_type = Regexp.last_match[:k_type]
104
+ v_type = Regexp.last_match[:v_type]
105
+ {}.tap do |hash|
106
+ value.each do |k, v|
107
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
108
+ end
109
+ end
110
+ else
111
+ klass = PCPServerSDK::Models.const_get(type)
112
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
113
+ end
114
+ end
115
+
116
+ def to_s
117
+ to_hash.to_s
118
+ end
119
+
120
+ def to_body
121
+ to_hash
122
+ end
123
+
124
+ def to_hash
125
+ hash = {}
126
+ self.class.attribute_map.each_pair do |attr, param|
127
+ value = self.send(attr)
128
+ if value.nil?
129
+ is_nullable = self.class.openapi_nullable.include?(attr)
130
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
131
+ end
132
+
133
+ hash[param] = _to_hash(value)
134
+ end
135
+ hash
136
+ end
137
+
138
+ def _to_hash(value)
139
+ if value.is_a?(Array)
140
+ value.compact.map { |v| _to_hash(v) }
141
+ elsif value.is_a?(Hash)
142
+ {}.tap do |hash|
143
+ value.each { |k, v| hash[k] = _to_hash(v) }
144
+ end
145
+ elsif value.respond_to? :to_hash
146
+ value.to_hash
147
+ else
148
+ value
149
+ end
150
+ end
151
+ end
152
+ end
153
+ end
@@ -0,0 +1,180 @@
1
+
2
+ require 'date'
3
+ require 'time'
4
+
5
+ module PCPServerSDK
6
+ module Models
7
+ class FundSplitResponse
8
+ attr_accessor :fund_split_id
9
+
10
+ attr_accessor :payment_execution_id
11
+
12
+ attr_accessor :event_id
13
+
14
+ attr_accessor :fund_split
15
+
16
+ def self.attribute_map
17
+ {
18
+ :'fund_split_id' => :'fundSplitId',
19
+ :'payment_execution_id' => :'paymentExecutionId',
20
+ :'event_id' => :'eventId',
21
+ :'fund_split' => :'fundSplit'
22
+ }
23
+ end
24
+
25
+ def self.acceptable_attributes
26
+ attribute_map.values
27
+ end
28
+
29
+ def self.openapi_types
30
+ {
31
+ :'fund_split_id' => :'String',
32
+ :'payment_execution_id' => :'String',
33
+ :'event_id' => :'String',
34
+ :'fund_split' => :'FundSplit'
35
+ }
36
+ end
37
+
38
+ def self.openapi_nullable
39
+ Set.new([])
40
+ end
41
+
42
+ def initialize(attributes = {})
43
+ if (!attributes.is_a?(Hash))
44
+ fail ArgumentError, "The input argument (attributes) must be a hash in `FundSplitResponse` initialize method"
45
+ end
46
+
47
+ attributes = attributes.each_with_object({}) { |(k, v), h|
48
+ if (!self.class.attribute_map.key?(k.to_sym))
49
+ fail ArgumentError, "`#{k}` is not a valid attribute in `FundSplitResponse`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
50
+ end
51
+ h[k.to_sym] = v
52
+ }
53
+
54
+ if attributes.key?(:'fund_split_id')
55
+ self.fund_split_id = attributes[:'fund_split_id']
56
+ end
57
+
58
+ if attributes.key?(:'payment_execution_id')
59
+ self.payment_execution_id = attributes[:'payment_execution_id']
60
+ end
61
+
62
+ if attributes.key?(:'event_id')
63
+ self.event_id = attributes[:'event_id']
64
+ end
65
+
66
+ if attributes.key?(:'fund_split')
67
+ self.fund_split = attributes[:'fund_split']
68
+ end
69
+ end
70
+
71
+ def ==(o)
72
+ return true if self.equal?(o)
73
+ self.class == o.class &&
74
+ fund_split_id == o.fund_split_id &&
75
+ payment_execution_id == o.payment_execution_id &&
76
+ event_id == o.event_id &&
77
+ fund_split == o.fund_split
78
+ end
79
+
80
+ def eql?(o)
81
+ self == o
82
+ end
83
+
84
+ def hash
85
+ [fund_split_id, payment_execution_id, event_id, fund_split].hash
86
+ end
87
+
88
+ def self.build_from_hash(attributes)
89
+ return nil unless attributes.is_a?(Hash)
90
+ attributes = attributes.transform_keys(&:to_sym)
91
+ transformed_hash = {}
92
+ openapi_types.each_pair do |key, type|
93
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
94
+ transformed_hash["#{key}"] = nil
95
+ elsif type =~ /\AArray<(.*)>/i
96
+ if attributes[attribute_map[key]].is_a?(Array)
97
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
98
+ end
99
+ elsif !attributes[attribute_map[key]].nil?
100
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
101
+ end
102
+ end
103
+ new(transformed_hash)
104
+ end
105
+
106
+ def self._deserialize(type, value)
107
+ case type.to_sym
108
+ when :Time
109
+ Time.parse(value)
110
+ when :Date
111
+ Date.parse(value)
112
+ when :String
113
+ value.to_s
114
+ when :Integer
115
+ value.to_i
116
+ when :Float
117
+ value.to_f
118
+ when :Boolean
119
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
120
+ true
121
+ else
122
+ false
123
+ end
124
+ when :Object
125
+ value
126
+ when /\AArray<(?<inner_type>.+)>\z/
127
+ inner_type = Regexp.last_match[:inner_type]
128
+ value.map { |v| _deserialize(inner_type, v) }
129
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
130
+ k_type = Regexp.last_match[:k_type]
131
+ v_type = Regexp.last_match[:v_type]
132
+ {}.tap do |hash|
133
+ value.each do |k, v|
134
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
135
+ end
136
+ end
137
+ else
138
+ klass = PCPServerSDK::Models.const_get(type)
139
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
140
+ end
141
+ end
142
+
143
+ def to_s
144
+ to_hash.to_s
145
+ end
146
+
147
+ def to_body
148
+ to_hash
149
+ end
150
+
151
+ def to_hash
152
+ hash = {}
153
+ self.class.attribute_map.each_pair do |attr, param|
154
+ value = self.send(attr)
155
+ if value.nil?
156
+ is_nullable = self.class.openapi_nullable.include?(attr)
157
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
158
+ end
159
+
160
+ hash[param] = _to_hash(value)
161
+ end
162
+ hash
163
+ end
164
+
165
+ def _to_hash(value)
166
+ if value.is_a?(Array)
167
+ value.compact.map { |v| _to_hash(v) }
168
+ elsif value.is_a?(Hash)
169
+ {}.tap do |hash|
170
+ value.each { |k, v| hash[k] = _to_hash(v) }
171
+ end
172
+ elsif value.respond_to? :to_hash
173
+ value.to_hash
174
+ else
175
+ value
176
+ end
177
+ end
178
+ end
179
+ end
180
+ end
@@ -1,14 +1,21 @@
1
1
  require 'date'
2
2
  require 'time'
3
3
 
4
- # Object that holds all reference properties for a refund that are linked to this transaction.
4
+ # Object that holds all reference properties that are linked to this refund transaction.
5
+ # Extends the standard PaymentReferences with an additional captureReference field to support
6
+ # scenarios where a Checkout may contain multiple partial captures from different sellers.
5
7
  module PCPServerSDK
6
8
  module Models
7
9
  class PaymentReferencesForRefund
8
10
  # Unique reference of the Commerce Case that is also returned for reporting and reconciliation purposes.
9
11
  attr_accessor :merchant_reference
10
12
 
11
- # Reference to the capture to be refunded.
13
+ # Merchant-provided reference of the capture that this refund should be applied to.
14
+ # A single Checkout can contain multiple partial captures.
15
+ # By supplying the captureReference the merchant ensures the refund is allocated to the correct
16
+ # capture.
17
+ # This value must match the merchantReference that was provided in the PaymentReferences of the
18
+ # original capture request.
12
19
  attr_accessor :capture_reference
13
20
 
14
21
  # Attribute mapping from ruby-style variable name to JSON key.
@@ -23,6 +23,8 @@ module PCPServerSDK
23
23
 
24
24
  attr_accessor :payment_product840_specific_input
25
25
 
26
+ attr_accessor :payment_product900_specific_input
27
+
26
28
  attr_accessor :redirection_data
27
29
 
28
30
  # Attribute mapping from ruby-style variable name to JSON key.
@@ -34,6 +36,7 @@ module PCPServerSDK
34
36
  :'tokenize' => :'tokenize',
35
37
  :'payment_product_id' => :'paymentProductId',
36
38
  :'payment_product840_specific_input' => :'paymentProduct840SpecificInput',
39
+ :'payment_product900_specific_input' => :'paymentProduct900SpecificInput',
37
40
  :'redirection_data' => :'redirectionData'
38
41
  }
39
42
  end
@@ -52,6 +55,7 @@ module PCPServerSDK
52
55
  :'tokenize' => :'Boolean',
53
56
  :'payment_product_id' => :'Integer',
54
57
  :'payment_product840_specific_input' => :'RedirectPaymentProduct840SpecificInput',
58
+ :'payment_product900_specific_input' => :'RedirectPaymentProduct900SpecificInput',
55
59
  :'redirection_data' => :'RedirectionData'
56
60
  }
57
61
  end
@@ -101,6 +105,10 @@ module PCPServerSDK
101
105
  self.payment_product840_specific_input = attributes[:'payment_product840_specific_input']
102
106
  end
103
107
 
108
+ if attributes.key?(:'payment_product900_specific_input')
109
+ self.payment_product900_specific_input = attributes[:'payment_product900_specific_input']
110
+ end
111
+
104
112
  if attributes.key?(:'redirection_data')
105
113
  self.redirection_data = attributes[:'redirection_data']
106
114
  end
@@ -117,6 +125,7 @@ module PCPServerSDK
117
125
  tokenize == o.tokenize &&
118
126
  payment_product_id == o.payment_product_id &&
119
127
  payment_product840_specific_input == o.payment_product840_specific_input &&
128
+ payment_product900_specific_input == o.payment_product900_specific_input &&
120
129
  redirection_data == o.redirection_data
121
130
  end
122
131
 
@@ -129,7 +138,7 @@ module PCPServerSDK
129
138
  # Calculates hash code according to all attributes.
130
139
  # @return [Integer] Hash code
131
140
  def hash
132
- [requires_approval, payment_processing_token, reporting_token, tokenize, payment_product_id, payment_product840_specific_input, redirection_data].hash
141
+ [requires_approval, payment_processing_token, reporting_token, tokenize, payment_product_id, payment_product840_specific_input, payment_product900_specific_input, redirection_data].hash
133
142
  end
134
143
 
135
144
  # Builds the object from hash
@@ -0,0 +1,183 @@
1
+
2
+ require 'date'
3
+ require 'time'
4
+
5
+ module PCPServerSDK
6
+ module Models
7
+ class RedirectPaymentProduct900SpecificInput
8
+ attr_accessor :capture_trigger
9
+
10
+ class EnumAttributeValidator
11
+ attr_reader :datatype
12
+ attr_reader :allowable_values
13
+
14
+ def initialize(datatype, allowable_values)
15
+ @allowable_values = allowable_values.map do |value|
16
+ case datatype.to_s
17
+ when /Integer/i
18
+ value.to_i
19
+ when /Float/i
20
+ value.to_f
21
+ else
22
+ value
23
+ end
24
+ end
25
+ end
26
+
27
+ def valid?(value)
28
+ !value || allowable_values.include?(value)
29
+ end
30
+ end
31
+
32
+ def self.attribute_map
33
+ {
34
+ :'capture_trigger' => :'captureTrigger'
35
+ }
36
+ end
37
+
38
+ def self.acceptable_attributes
39
+ attribute_map.values
40
+ end
41
+
42
+ def self.openapi_types
43
+ {
44
+ :'capture_trigger' => :'String'
45
+ }
46
+ end
47
+
48
+ def self.openapi_nullable
49
+ Set.new([])
50
+ end
51
+
52
+ def initialize(attributes = {})
53
+ if (!attributes.is_a?(Hash))
54
+ fail ArgumentError, "The input argument (attributes) must be a hash in `RedirectPaymentProduct900SpecificInput` initialize method"
55
+ end
56
+
57
+ attributes = attributes.each_with_object({}) { |(k, v), h|
58
+ if (!self.class.attribute_map.key?(k.to_sym))
59
+ fail ArgumentError, "`#{k}` is not a valid attribute in `RedirectPaymentProduct900SpecificInput`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
60
+ end
61
+ h[k.to_sym] = v
62
+ }
63
+
64
+ if attributes.key?(:'capture_trigger')
65
+ self.capture_trigger = attributes[:'capture_trigger']
66
+ end
67
+ end
68
+
69
+ def ==(o)
70
+ return true if self.equal?(o)
71
+ self.class == o.class &&
72
+ capture_trigger == o.capture_trigger
73
+ end
74
+
75
+ def eql?(o)
76
+ self == o
77
+ end
78
+
79
+ def hash
80
+ [capture_trigger].hash
81
+ end
82
+
83
+ def self.build_from_hash(attributes)
84
+ return nil unless attributes.is_a?(Hash)
85
+ attributes = attributes.transform_keys(&:to_sym)
86
+ transformed_hash = {}
87
+ openapi_types.each_pair do |key, type|
88
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
89
+ transformed_hash["#{key}"] = nil
90
+ elsif type =~ /\AArray<(.*)>/i
91
+ if attributes[attribute_map[key]].is_a?(Array)
92
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
93
+ end
94
+ elsif !attributes[attribute_map[key]].nil?
95
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
96
+ end
97
+ end
98
+ new(transformed_hash)
99
+ end
100
+
101
+ def self._deserialize(type, value)
102
+ case type.to_sym
103
+ when :Time
104
+ Time.parse(value)
105
+ when :Date
106
+ Date.parse(value)
107
+ when :String
108
+ value.to_s
109
+ when :Integer
110
+ value.to_i
111
+ when :Float
112
+ value.to_f
113
+ when :Boolean
114
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
115
+ true
116
+ else
117
+ false
118
+ end
119
+ when :Object
120
+ value
121
+ when /\AArray<(?<inner_type>.+)>\z/
122
+ inner_type = Regexp.last_match[:inner_type]
123
+ value.map { |v| _deserialize(inner_type, v) }
124
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
125
+ k_type = Regexp.last_match[:k_type]
126
+ v_type = Regexp.last_match[:v_type]
127
+ {}.tap do |hash|
128
+ value.each do |k, v|
129
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
130
+ end
131
+ end
132
+ else
133
+ klass = PCPServerSDK::Models.const_get(type)
134
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
135
+ end
136
+ end
137
+
138
+ def to_s
139
+ to_hash.to_s
140
+ end
141
+
142
+ def to_body
143
+ to_hash
144
+ end
145
+
146
+ def to_hash
147
+ hash = {}
148
+ self.class.attribute_map.each_pair do |attr, param|
149
+ value = self.send(attr)
150
+ if value.nil?
151
+ is_nullable = self.class.openapi_nullable.include?(attr)
152
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
153
+ end
154
+
155
+ hash[param] = _to_hash(value)
156
+ end
157
+ hash
158
+ end
159
+
160
+ def _to_hash(value)
161
+ if value.is_a?(Array)
162
+ value.compact.map { |v| _to_hash(v) }
163
+ elsif value.is_a?(Hash)
164
+ {}.tap do |hash|
165
+ value.each { |k, v| hash[k] = _to_hash(v) }
166
+ end
167
+ elsif value.respond_to? :to_hash
168
+ value.to_hash
169
+ else
170
+ value
171
+ end
172
+ end
173
+
174
+ def capture_trigger=(capture_trigger)
175
+ validator = EnumAttributeValidator.new('String', ['shipping', 'delivery', 'availability', 'serviceFulfillment', 'other'])
176
+ unless validator.valid?(capture_trigger)
177
+ fail ArgumentError, "invalid value for \"capture_trigger\", must be one of #{validator.allowable_values}."
178
+ end
179
+ @capture_trigger = capture_trigger
180
+ end
181
+ end
182
+ end
183
+ end
@@ -1,4 +1,4 @@
1
1
 
2
2
  module PCPServerSDK
3
- VERSION = '1.9.0'
3
+ VERSION = '1.10.0'
4
4
  end
@@ -78,6 +78,8 @@ require_relative 'PCP-server-Ruby-SDK/models/financing_payment_method_specific_i
78
78
  require_relative 'PCP-server-Ruby-SDK/models/financing_payment_method_specific_output'
79
79
  require_relative 'PCP-server-Ruby-SDK/models/fund_distribution'
80
80
  require_relative 'PCP-server-Ruby-SDK/models/fund_split'
81
+ require_relative 'PCP-server-Ruby-SDK/models/fund_split_request'
82
+ require_relative 'PCP-server-Ruby-SDK/models/fund_split_response'
81
83
  require_relative 'PCP-server-Ruby-SDK/models/installment_option'
82
84
  require_relative 'PCP-server-Ruby-SDK/models/link_information'
83
85
  require_relative 'PCP-server-Ruby-SDK/models/mandate_recurrence_type'
@@ -138,6 +140,7 @@ require_relative 'PCP-server-Ruby-SDK/models/complete_payment_product840_specifi
138
140
  require_relative 'PCP-server-Ruby-SDK/models/complete_redirect_payment_method_specific_input'
139
141
  require_relative 'PCP-server-Ruby-SDK/models/redirect_payment_method_specific_output'
140
142
  require_relative 'PCP-server-Ruby-SDK/models/redirect_payment_product840_specific_input'
143
+ require_relative 'PCP-server-Ruby-SDK/models/redirect_payment_product900_specific_input'
141
144
  require_relative 'PCP-server-Ruby-SDK/models/redirection_data'
142
145
  require_relative 'PCP-server-Ruby-SDK/models/references'
143
146
  require_relative 'PCP-server-Ruby-SDK/models/refresh_payment_request'
data/package-lock.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "pcp-serversdk-ruby",
3
- "version": "1.9.0",
3
+ "version": "1.10.0",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "pcp-serversdk-ruby",
9
- "version": "1.9.0",
9
+ "version": "1.10.0",
10
10
  "devDependencies": {
11
11
  "@commitlint/cli": "19.4.0",
12
12
  "@commitlint/config-conventional": "19.2.2",
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pcp-serversdk-ruby",
3
- "version": "1.9.0",
3
+ "version": "1.10.0",
4
4
  "type": "commonjs",
5
5
  "scripts": {
6
6
  "changelog": "conventional-changelog -i CHANGELOG.md -s --config ./changelog.config.js"
@@ -377,4 +377,56 @@ RSpec.describe PCPServerSDK::Endpoints::PaymentExecutionApiClient do
377
377
  end
378
378
  end
379
379
  end
380
+
381
+ describe '#create_fund_split' do
382
+ let(:payload) { double('PCPServerSDK::Models::FundSplitRequest') }
383
+
384
+ context 'when request is successful' do
385
+ let(:response) { double('Response', body: '{}', code: '200') }
386
+ let(:expected_response) { PCPServerSDK::Models::FundSplitResponse.new }
387
+
388
+ before do
389
+ allow(client).to receive(:get_response).and_return(response)
390
+ end
391
+
392
+ it 'returns a successful response' do
393
+ result = client.create_fund_split('1', '2', '3', '4', '5', payload)
394
+ expect(result).to eq(expected_response)
395
+ end
396
+ end
397
+
398
+ context 'when request is unsuccessful (400)' do
399
+ let(:response) { double('Response', body: error_body, code: '400') }
400
+
401
+ before do
402
+ allow(client).to receive(:get_response).and_return(response)
403
+ end
404
+
405
+ it 'raises an PCPServerSDK::Errors::ApiErrorResponseException' do
406
+ expect { client.create_fund_split('1', '2', '3', '4', '5', payload) }.to raise_error(PCPServerSDK::Errors::ApiErrorResponseException)
407
+ end
408
+ end
409
+
410
+ context 'when request is unsuccessful (500)' do
411
+ let(:response) { double('Response', body: '{}', code: '500') }
412
+
413
+ before do
414
+ allow(client).to receive(:get_response).and_return(response)
415
+ end
416
+
417
+ it 'raises an PCPServerSDK::Errors::ApiResponseRetrievalException' do
418
+ expect { client.create_fund_split('1', '2', '3', '4', '5', payload) }.to raise_error(PCPServerSDK::Errors::ApiResponseRetrievalException)
419
+ end
420
+ end
421
+
422
+ context 'when some params are nil' do
423
+ it 'raises a TypeError' do
424
+ expect { client.create_fund_split(nil, '2', '3', '4', '5', payload) }.to raise_error(TypeError, 'Merchant ID is required')
425
+ expect { client.create_fund_split('1', nil, '3', '4', '5', payload) }.to raise_error(TypeError, 'Commerce Case ID is required')
426
+ expect { client.create_fund_split('1', '2', nil, '4', '5', payload) }.to raise_error(TypeError, 'Checkout ID is required')
427
+ expect { client.create_fund_split('1', '2', '3', nil, '5', payload) }.to raise_error(TypeError, 'Payment Execution ID is required')
428
+ expect { client.create_fund_split('1', '2', '3', '4', nil, payload) }.to raise_error(TypeError, 'Event ID is required')
429
+ end
430
+ end
431
+ end
380
432
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pcp-server-ruby-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.0
4
+ version: 1.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - PAYONE GmbH
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-04-29 00:00:00.000000000 Z
11
+ date: 2026-05-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: net-http
@@ -190,6 +190,8 @@ files:
190
190
  - lib/PCP-server-Ruby-SDK/models/financing_payment_method_specific_output.rb
191
191
  - lib/PCP-server-Ruby-SDK/models/fund_distribution.rb
192
192
  - lib/PCP-server-Ruby-SDK/models/fund_split.rb
193
+ - lib/PCP-server-Ruby-SDK/models/fund_split_request.rb
194
+ - lib/PCP-server-Ruby-SDK/models/fund_split_response.rb
193
195
  - lib/PCP-server-Ruby-SDK/models/installment_option.rb
194
196
  - lib/PCP-server-Ruby-SDK/models/link_information.rb
195
197
  - lib/PCP-server-Ruby-SDK/models/mandate_recurrence_type.rb
@@ -249,6 +251,7 @@ files:
249
251
  - lib/PCP-server-Ruby-SDK/models/redirect_payment_method_specific_input.rb
250
252
  - lib/PCP-server-Ruby-SDK/models/redirect_payment_method_specific_output.rb
251
253
  - lib/PCP-server-Ruby-SDK/models/redirect_payment_product840_specific_input.rb
254
+ - lib/PCP-server-Ruby-SDK/models/redirect_payment_product900_specific_input.rb
252
255
  - lib/PCP-server-Ruby-SDK/models/redirection_data.rb
253
256
  - lib/PCP-server-Ruby-SDK/models/references.rb
254
257
  - lib/PCP-server-Ruby-SDK/models/refresh_payment_request.rb
@@ -332,15 +335,15 @@ specification_version: 4
332
335
  summary: Commerce Platform API Ruby Gem
333
336
  test_files:
334
337
  - spec/communicator_configuration_spec.rb
338
+ - spec/endpoints/order_management_checkout_actions_api_client_spec.rb
339
+ - spec/endpoints/base_api_client_spec.rb
335
340
  - spec/endpoints/payment_execution_api_client_spec.rb
336
- - spec/endpoints/checkout_api_client_spec.rb
337
341
  - spec/endpoints/payment_information_api_client_spec.rb
338
- - spec/endpoints/commerce_case_api_client_spec.rb
339
- - spec/endpoints/base_api_client_spec.rb
340
- - spec/endpoints/order_management_checkout_actions_api_client_spec.rb
341
342
  - spec/endpoints/authentication_api_client_spec.rb
342
- - spec/errors/api_exception_spec.rb
343
+ - spec/endpoints/checkout_api_client_spec.rb
344
+ - spec/endpoints/commerce_case_api_client_spec.rb
343
345
  - spec/errors/api_response_retrieval_exception_spec.rb
346
+ - spec/errors/api_exception_spec.rb
344
347
  - spec/errors/api_error_response_exception_spec.rb
345
348
  - spec/models/required_field_validation_spec.rb
346
349
  - spec/queries/get_checkouts_query_spec.rb