inttegro 6.0.1 → 7.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 (47) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +15 -0
  3. data/README.md +2 -2
  4. data/SECURITY.md +1 -1
  5. data/lib/inttegro/api_response.rb +41 -0
  6. data/lib/inttegro/generated/enums.rb +0 -1
  7. data/lib/inttegro/generated/models.rb +12 -17
  8. data/lib/inttegro/generated/operations.rb +6 -6
  9. data/lib/inttegro/http_client.rb +65 -1
  10. data/lib/inttegro/payout/cancel_request.rb +2 -2
  11. data/lib/inttegro/payout/{lookup_response.rb → destinations.rb} +8 -8
  12. data/lib/inttegro/payout/disable_automatic_response.rb +1 -1
  13. data/lib/inttegro/payout/error.rb +5 -5
  14. data/lib/inttegro/payout/lookup_request.rb +2 -2
  15. data/lib/inttegro/payout/page.rb +3 -3
  16. data/lib/inttegro/payout/page_request.rb +3 -3
  17. data/lib/inttegro/payout/page_response.rb +2 -2
  18. data/lib/inttegro/payout/payout.rb +1 -1
  19. data/lib/inttegro/payout/{cancel_response.rb → response.rb} +2 -2
  20. data/lib/inttegro/payout/set_destinations_request.rb +5 -4
  21. data/lib/inttegro/payout/settings_lookup.rb +5 -4
  22. data/lib/inttegro/payout/{get_settings_response.rb → settings_lookup_response.rb} +2 -2
  23. data/lib/inttegro/payout/settings_lookup_schedule.rb +2 -2
  24. data/lib/inttegro/payout/settings_lookup_schedule_aging_spec.rb +4 -4
  25. data/lib/inttegro/payout/settings_mutation.rb +12 -4
  26. data/lib/inttegro/payout/{set_destinations_response.rb → settings_mutation_response.rb} +2 -2
  27. data/lib/inttegro/payout/settings_mutation_schedule.rb +2 -2
  28. data/lib/inttegro/payout/settings_mutation_schedule_spec.rb +1 -1
  29. data/lib/inttegro/purchase_intent/purchase_intent.rb +0 -8
  30. data/lib/inttegro/refund/cancel_request.rb +7 -0
  31. data/lib/inttegro/refund/refund.rb +14 -0
  32. data/lib/inttegro/resources/orders.rb +8 -0
  33. data/lib/inttegro/resources/payouts.rb +15 -32
  34. data/lib/inttegro/resources/refunds.rb +5 -2
  35. data/lib/inttegro/schedule/payout_request.rb +5 -5
  36. data/lib/inttegro/shared/response_meta.rb +35 -0
  37. data/lib/inttegro/version.rb +1 -1
  38. data/lib/inttegro.rb +1 -0
  39. data/rbi/inttegro/generated.rbi +11 -8
  40. metadata +11 -16
  41. data/lib/inttegro/payout/enable_automatic_response.rb +0 -28
  42. data/lib/inttegro/purchase_intent/activity.rb +0 -122
  43. data/lib/inttegro/purchase_intent/activity_attribution.rb +0 -83
  44. data/lib/inttegro/purchase_intent/activity_log.rb +0 -28
  45. data/lib/inttegro/purchase_intent/activity_type.rb +0 -37
  46. data/lib/inttegro/purchase_intent/activity_visitor.rb +0 -97
  47. data/lib/inttegro/schedule/payout_response.rb +0 -28
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9cc1c22273d07aeda36d0c2dde8ec243922c143f6f3e6d74284b493dc092bac5
4
- data.tar.gz: 44cf6154faff621ab17d2bb9aff2122db8da10d21430d897eea7cbadf1308c8b
3
+ metadata.gz: adda77d38b9a0e554414ebbe39ef888ea094306730292b77fd58de017e9dd97c
4
+ data.tar.gz: 05c8dbae6c8bc9f07fa806b185996a2a8139e08751b59addc64b72813f517b73
5
5
  SHA512:
6
- metadata.gz: 7cb63e59ae8879e1fc39dc12438ba115e80d7a4cb601f8f611e9daf3a705ba1a08603fcf97ab9c5480ab41c8d9dfde18ff29dd5b1a784a1b708d543b28226d6f
7
- data.tar.gz: 2e1a12662acc7239796854ba5b94fce2b50b4176c3373ea5939fbea680cdbd7dbc133fc151321d3b8fa7857a4db3ea343d5f49688aeeb79c046556720014450e
6
+ metadata.gz: 188d58e4c3cc3731853cb216027e8e7b686e9dd155d258fee4979acbdd56dbf4d0624cfd001a57e1beb6f6e7a53f032f23404b6f52ac3e0eab3f4cd53dcbd33e
7
+ data.tar.gz: 4bf3019fb67255a0cfe434abf98c8d66ec007c1c634b72965788186f0184c1b9199fb81bddac8719fab7fb171d80fc31733afa71c6eaa12c732880e641c7d2dd
data/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [7.0.0] - 2026-09-14
4
+
5
+ - Breaking: replaced payout hashes and generic payloads with named request,
6
+ response, settings, page, error, and destination objects.
7
+ - Made `ghs` the explicit supported payout-destination accessor and exposed
8
+ payout timestamps as `Time` values.
9
+ - Removed server-internal purchase-intent activity response models and exposed
10
+ refund order and cancellation context.
11
+
12
+ ## [6.1.0] - 2026-09-12
13
+
14
+ - Added opt-in response envelopes that expose status, headers, request IDs,
15
+ retry hints, and response metadata without changing existing resource return
16
+ values.
17
+
3
18
  ## [6.0.1] - 2026-09-11
4
19
 
5
20
  - Corrected the resource-namespace examples to show Ruby's class-backed layout accurately.
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Inttegro Ruby SDK
2
2
 
3
- [![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/zebodotdev/inttegro-sdk-ruby/badge)](https://scorecard.dev/viewer/?uri=github.com/zebodotdev/inttegro-sdk-ruby)
3
+ [![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/inttegro/inttegro-sdk-ruby/badge)](https://scorecard.dev/viewer/?uri=github.com/inttegro/inttegro-sdk-ruby)
4
4
 
5
5
  The official Ruby client for building server-side Inttegro integrations.
6
6
 
@@ -163,7 +163,7 @@ The GitHub release for each version is the canonical record. It contains the exa
163
163
  ```bash
164
164
  sha256sum --check SHA256SUMS
165
165
  gh attestation verify inttegro-4.2.2.gem \
166
- --repo zebodotdev/inttegro-sdk-ruby
166
+ --repo inttegro/inttegro-sdk-ruby
167
167
  ```
168
168
 
169
169
  ## Develop
data/SECURITY.md CHANGED
@@ -6,6 +6,6 @@ Security fixes are released for the latest published version of the SDK. Users s
6
6
 
7
7
  ## Reporting a vulnerability
8
8
 
9
- Do not open a public issue for a suspected vulnerability. Use [GitHub's private vulnerability reporting](https://github.com/zebodotdev/inttegro-sdk-ruby/security/advisories/new) and include the affected version, impact, reproduction steps, and any suggested remediation.
9
+ Do not open a public issue for a suspected vulnerability. Use [GitHub's private vulnerability reporting](https://github.com/inttegro/inttegro-sdk-ruby/security/advisories/new) and include the affected version, impact, reproduction steps, and any suggested remediation.
10
10
 
11
11
  We will acknowledge the report, investigate it privately, and coordinate disclosure after a fix is available.
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+ # typed: strict
3
+
4
+ require "sorbet-runtime"
5
+
6
+ require_relative "types"
7
+
8
+ module Inttegro
9
+ # Decoded SDK value plus response-only HTTP metadata.
10
+ class APIResponse < T::Struct
11
+ extend T::Sig
12
+
13
+ const :data, Object
14
+ const :status, Integer
15
+ const :headers, Types::ResponseHeaders
16
+ const :meta, T.nilable(Types::Payload), default: nil
17
+
18
+ sig { returns(T.nilable(String)) }
19
+ def request_id
20
+ header("x-request-id")
21
+ end
22
+
23
+ sig { returns(T.nilable(String)) }
24
+ def retry_after
25
+ header("retry-after")
26
+ end
27
+
28
+ sig { params(data: Object).returns(APIResponse) }
29
+ def with_data(data)
30
+ APIResponse.new(data: data, status: status, headers: headers, meta: meta)
31
+ end
32
+
33
+ private
34
+
35
+ sig { params(name: String).returns(T.nilable(String)) }
36
+ def header(name)
37
+ pair = headers.find { |key, _values| key.casecmp?(name) }
38
+ pair&.last&.first
39
+ end
40
+ end
41
+ end
@@ -66,7 +66,6 @@ require_relative "../product/line_item_type"
66
66
  require_relative "../product/shipment_input_type"
67
67
  require_relative "../product/shipment_type"
68
68
  require_relative "../product/type"
69
- require_relative "../purchase_intent/activity_type"
70
69
  require_relative "../purchase_intent/status"
71
70
  require_relative "../refund/reason"
72
71
  require_relative "../refund/status"
@@ -81,9 +81,6 @@ require_relative "../broadcast/response"
81
81
  require_relative "../broadcast/cancel_request"
82
82
  require_relative "../order/cancel_request"
83
83
  require_relative "../payout/cancel_request"
84
- require_relative "../payout/error"
85
- require_relative "../payout/payout"
86
- require_relative "../payout/cancel_response"
87
84
  require_relative "../purchase_intent/cancel_request"
88
85
  require_relative "../refund/request_meta"
89
86
  require_relative "../refund/cancel_request"
@@ -275,6 +272,7 @@ require_relative "../secret_key/destroy_request"
275
272
  require_relative "../secret_key/secret_key"
276
273
  require_relative "../secret_key/destroy_response"
277
274
  require_relative "../payout/disable_automatic_request"
275
+ require_relative "../payout/destinations"
278
276
  require_relative "../payout/settings_mutation_schedule_spec"
279
277
  require_relative "../payout/settings_mutation_schedule"
280
278
  require_relative "../payout/settings_mutation"
@@ -285,7 +283,6 @@ require_relative "../payment_method/disactivate_request"
285
283
  require_relative "../payment_method/disactivate_response"
286
284
  require_relative "../financial_account/disconnect_response"
287
285
  require_relative "../payout/enable_automatic_request"
288
- require_relative "../payout/enable_automatic_response"
289
286
  require_relative "../financial_account/enable_pull_response"
290
287
  require_relative "../financial_account/enable_push_response"
291
288
  require_relative "../shared/error_envelope"
@@ -350,10 +347,6 @@ require_relative "../payment_method/type_setting"
350
347
  require_relative "../payment_method/settings"
351
348
  require_relative "../payment_method/get_settings_response"
352
349
  require_relative "../payout/get_settings_request"
353
- require_relative "../payout/settings_lookup_schedule_aging_spec"
354
- require_relative "../payout/settings_lookup_schedule"
355
- require_relative "../payout/settings_lookup"
356
- require_relative "../payout/get_settings_response"
357
350
  require_relative "../otp/initiate_request"
358
351
  require_relative "../otp/transmission"
359
352
  require_relative "../otp/transaction"
@@ -376,7 +369,6 @@ require_relative "../order/lookup_request"
376
369
  require_relative "../payment_method/lookup_request"
377
370
  require_relative "../payment_method/lookup_response"
378
371
  require_relative "../payout/lookup_request"
379
- require_relative "../payout/lookup_response"
380
372
  require_relative "../price/lookup_request"
381
373
  require_relative "../product/lookup_request"
382
374
  require_relative "../purchase_intent/lookup_request"
@@ -424,18 +416,12 @@ require_relative "../message_template/page_request"
424
416
  require_relative "../order/page_envelope"
425
417
  require_relative "../order/page_request"
426
418
  require_relative "../payout/page_request"
427
- require_relative "../payout/page"
428
- require_relative "../payout/page_response"
429
419
  require_relative "../product/page_request"
430
420
  require_relative "../product/price_summary"
431
421
  require_relative "../product/product"
432
422
  require_relative "../product/page"
433
423
  require_relative "../product/page_response"
434
424
  require_relative "../purchase_intent/page_request"
435
- require_relative "../purchase_intent/activity_attribution"
436
- require_relative "../purchase_intent/activity_visitor"
437
- require_relative "../purchase_intent/activity"
438
- require_relative "../purchase_intent/activity_log"
439
425
  require_relative "../purchase_intent/merchant"
440
426
  require_relative "../purchase_intent/original_price"
441
427
  require_relative "../purchase_intent/price"
@@ -462,6 +448,16 @@ require_relative "../payment_method/page_request"
462
448
  require_relative "../payment_method/page_response"
463
449
  require_relative "../payment_method/tokenize_base"
464
450
  require_relative "../payment/result"
451
+ require_relative "../payout/error"
452
+ require_relative "../payout/payout"
453
+ require_relative "../payout/page"
454
+ require_relative "../payout/page_response"
455
+ require_relative "../payout/response"
456
+ require_relative "../payout/settings_lookup_schedule_aging_spec"
457
+ require_relative "../payout/settings_lookup_schedule"
458
+ require_relative "../payout/settings_lookup"
459
+ require_relative "../payout/settings_lookup_response"
460
+ require_relative "../payout/settings_mutation_response"
465
461
  require_relative "../price/action_request"
466
462
  require_relative "../price/page_item"
467
463
  require_relative "../price/page"
@@ -477,6 +473,7 @@ require_relative "../refund/page_response"
477
473
  require_relative "../refund/response"
478
474
  require_relative "../message_template/render_preview_request"
479
475
  require_relative "../shared/request_confirmation_request"
476
+ require_relative "../shared/response_meta"
480
477
  require_relative "../upload_request/review_reason_input"
481
478
  require_relative "../upload_request/review_attempt_by_id_request"
482
479
  require_relative "../upload_request/review_attempt_by_ordinal_request"
@@ -491,7 +488,6 @@ require_relative "../schedule/creation_detail"
491
488
  require_relative "../schedule/detail"
492
489
  require_relative "../schedule/lookup_response"
493
490
  require_relative "../schedule/payout_request"
494
- require_relative "../schedule/payout_response"
495
491
  require_relative "../schedule/response"
496
492
  require_relative "../secret_key/usage_row"
497
493
  require_relative "../secret_key/usage_page"
@@ -500,7 +496,6 @@ require_relative "../secret_key/usage_request"
500
496
  require_relative "../chime/send_request_request_meta"
501
497
  require_relative "../chime/send_request"
502
498
  require_relative "../payout/set_destinations_request"
503
- require_relative "../payout/set_destinations_response"
504
499
  require_relative "../payment_method/tokenize_mobile_money_request_mobile_money"
505
500
  require_relative "../payment_method/tokenize_mobile_money_request"
506
501
  require_relative "../payment_method/tokenize_response"
@@ -74,14 +74,14 @@ module Inttegro
74
74
  "/balances" => Inttegro::Balance::SnapshotResponse,
75
75
  "/balance_transactions/lookup" => Inttegro::BalanceTransaction::Response,
76
76
  "/balance_transactions/page" => Inttegro::BalanceTransaction::PageResponse,
77
- "/payouts/schedule" => Inttegro::Schedule::PayoutResponse,
78
- "/payouts/lookup" => Inttegro::Payout::LookupResponse,
79
- "/payouts/set_destinations" => Inttegro::Payout::SetDestinationsResponse,
80
- "/payouts/settings" => Inttegro::Payout::GetSettingsResponse,
77
+ "/payouts/schedule" => Inttegro::Payout::Response,
78
+ "/payouts/lookup" => Inttegro::Payout::Response,
79
+ "/payouts/set_destinations" => Inttegro::Payout::SettingsMutationResponse,
80
+ "/payouts/settings" => Inttegro::Payout::SettingsLookupResponse,
81
81
  "/payouts/disable" => Inttegro::Payout::DisableAutomaticResponse,
82
- "/payouts/enable" => Inttegro::Payout::EnableAutomaticResponse,
82
+ "/payouts/enable" => Inttegro::Payout::SettingsMutationResponse,
83
83
  "/payouts/page" => Inttegro::Payout::PageResponse,
84
- "/payouts/cancel" => Inttegro::Payout::CancelResponse,
84
+ "/payouts/cancel" => Inttegro::Payout::Response,
85
85
  "/files/create" => Inttegro::File::Response,
86
86
  "/files/lookup" => Inttegro::File::Response,
87
87
  "/files/page" => Inttegro::File::PageResponse,
@@ -8,6 +8,7 @@ require "time"
8
8
  require "uri"
9
9
 
10
10
  require_relative "errors"
11
+ require_relative "api_response"
11
12
  require_relative "file_download"
12
13
  require_relative "models"
13
14
  require_relative "generated/operations"
@@ -148,6 +149,31 @@ module Inttegro
148
149
  raise TypeError, "expected #{model} in #{field} from #{path}, got #{decoded.class}"
149
150
  end
150
151
 
152
+ sig do
153
+ type_parameters(:Model)
154
+ .params(
155
+ path: String,
156
+ model: T::Class[T.type_parameter(:Model)],
157
+ field: Symbol,
158
+ body: Types::RequestBody,
159
+ headers: Types::Headers,
160
+ query: T.nilable(Types::Query)
161
+ )
162
+ .returns(APIResponse)
163
+ end
164
+ def post_resource_with_response(path, model, field, body, headers: {}, query: nil)
165
+ response = request_with_response(:post, path, body: body, headers: headers, query: query)
166
+ envelope = expect_response_object(T.cast(response.data, ResponseValue), path)
167
+ value = envelope.public_send(field)
168
+ value = value.to_h if value.is_a?(ResponseObject)
169
+ return response.with_data(T.cast(value, Object)) if value.is_a?(model)
170
+
171
+ decoded = Inttegro.deserialize(value, T.cast(model, T::Class[T::Struct]))
172
+ return response.with_data(decoded) if decoded.is_a?(model)
173
+
174
+ raise TypeError, "expected #{model} in #{field} from #{path}, got #{decoded.class}"
175
+ end
176
+
151
177
  sig do
152
178
  params(
153
179
  path: String,
@@ -328,6 +354,30 @@ module Inttegro
328
354
  ).returns(ResponseValue)
329
355
  end
330
356
  def request(method, path, body: nil, headers: {}, query: nil, response_model: nil)
357
+ T.cast(
358
+ request_with_response(
359
+ method,
360
+ path,
361
+ body: body,
362
+ headers: headers,
363
+ query: query,
364
+ response_model: response_model
365
+ ).data,
366
+ ResponseValue
367
+ )
368
+ end
369
+
370
+ sig do
371
+ params(
372
+ method: T.any(String, Symbol),
373
+ path: String,
374
+ body: T.nilable(Types::RequestBody),
375
+ headers: Types::Headers,
376
+ query: T.nilable(Types::Query),
377
+ response_model: T.nilable(T::Class[T::Struct])
378
+ ).returns(APIResponse)
379
+ end
380
+ def request_with_response(method, path, body: nil, headers: {}, query: nil, response_model: nil)
331
381
  @telemetry.in_span(path, method, @base_url, Inttegro::VERSION) do |span|
332
382
  uri = build_uri(path, query)
333
383
  body = validate_body(path, coerce_body(body))
@@ -346,7 +396,12 @@ module Inttegro
346
396
  @telemetry.response(span, response, decoded: false)
347
397
  result = handle_response(path, response, response_model)
348
398
  @telemetry.decoded(span)
349
- result
399
+ APIResponse.new(
400
+ data: result,
401
+ status: response.code.to_i,
402
+ headers: response.headers,
403
+ meta: response_meta(response.body)
404
+ )
350
405
  end
351
406
  rescue Timeout::Error, Errno::ETIMEDOUT => e
352
407
  raise TimeoutError.new("Request timed out", e)
@@ -574,6 +629,15 @@ module Inttegro
574
629
  body
575
630
  end
576
631
 
632
+ sig { params(body: String).returns(T.nilable(Types::Payload)) }
633
+ def response_meta(body)
634
+ data = parse_json(body)
635
+ return nil unless data.is_a?(Hash)
636
+
637
+ meta = data["response_meta"] || data[:response_meta]
638
+ meta.is_a?(Hash) ? normalize_payload(meta) : nil
639
+ end
640
+
577
641
  sig { params(data: Object, response: TransportResponse).returns(String) }
578
642
  def extract_error_message(data, response)
579
643
  return "HTTP #{response.code} #{response.message}" unless data.is_a?(Hash)
@@ -7,7 +7,7 @@ require_relative "base"
7
7
 
8
8
  module Inttegro
9
9
  class Payout
10
- # Typed representation of the cancel request object in the Inttegro API.
10
+ # Parameters for canceling a scheduled payout.
11
11
  #
12
12
  # This generated model is immutable. Construct it with `.new`, or decode a string-keyed API
13
13
  # payload with `.from_hash`. `#serialize` produces a string-keyed hash using the original wire
@@ -16,7 +16,7 @@ module Inttegro
16
16
  # @api public
17
17
  #
18
18
  # @!attribute [r] payout_id
19
- # Scheduled payout ID
19
+ # Scheduled payout identifier.
20
20
  #
21
21
  # Required in the API payload. Wire name: `payout_id`.
22
22
  # @return [String]
@@ -4,11 +4,10 @@
4
4
  # Generated from openapi/commerce.yml by bin/generate-openapi-types. Do not edit.
5
5
 
6
6
  require_relative "base"
7
- require_relative "payout"
8
7
 
9
8
  module Inttegro
10
9
  class Payout
11
- # Typed representation of the lookup response object in the Inttegro API.
10
+ # Supported currency-to-financial-account destination assignments.
12
11
  #
13
12
  # This generated model is immutable. Construct it with `.new`, or decode a string-keyed API
14
13
  # payload with `.from_hash`. `#serialize` produces a string-keyed hash using the original wire
@@ -16,13 +15,14 @@ module Inttegro
16
15
  #
17
16
  # @api public
18
17
  #
19
- # @!attribute [r] payout
20
- # A payout scheduled from your Inttegro balance to a destination financial account
18
+ # @!attribute [r] ghs
19
+ # Financial account that receives Ghana cedi payouts. Send an empty string to remove the
20
+ # assignment.
21
21
  #
22
- # Optional in the API payload; omitted values default to `nil`. Wire name: `payout`.
23
- # @return [Inttegro::Payout, nil]
24
- class LookupResponse < T::Struct
25
- const :payout, T.nilable(Inttegro::Payout), default: nil
22
+ # Optional in the API payload; omitted values default to `nil`. Wire name: `ghs`.
23
+ # @return [String, nil]
24
+ class Destinations < T::Struct
25
+ const :ghs, T.nilable(String), default: nil
26
26
  end
27
27
  end
28
28
  end
@@ -8,7 +8,7 @@ require_relative "settings_mutation"
8
8
 
9
9
  module Inttegro
10
10
  class Payout
11
- # Typed representation of the disable automatic response object in the Inttegro API.
11
+ # Response envelope containing updated payout settings.
12
12
  #
13
13
  # This generated model is immutable. Construct it with `.new`, or decode a string-keyed API
14
14
  # payload with `.from_hash`. `#serialize` produces a string-keyed hash using the original wire
@@ -7,7 +7,7 @@ require_relative "base"
7
7
 
8
8
  module Inttegro
9
9
  class Payout
10
- # Public failure details when execution fails
10
+ # Public failure details returned when payout execution fails.
11
11
  #
12
12
  # This generated model is immutable. Construct it with `.new`, or decode a string-keyed API
13
13
  # payload with `.from_hash`. `#serialize` produces a string-keyed hash using the original wire
@@ -16,25 +16,25 @@ module Inttegro
16
16
  # @api public
17
17
  #
18
18
  # @!attribute [r] cause
19
- # Value of the `cause` field in the Inttegro API payload.
19
+ # Public explanation of the underlying failure cause.
20
20
  #
21
21
  # Required in the API payload. Wire name: `cause`.
22
22
  # @return [String]
23
23
  #
24
24
  # @!attribute [r] message
25
- # Value of the `message` field in the Inttegro API payload.
25
+ # Human-readable failure message.
26
26
  #
27
27
  # Required in the API payload. Wire name: `message`.
28
28
  # @return [String]
29
29
  #
30
30
  # @!attribute [r] occurred_at
31
- # Value of the `occurred_at` field in the Inttegro API payload.
31
+ # When the failure occurred.
32
32
  #
33
33
  # Required in the API payload. Wire name: `occurred_at`.
34
34
  # @return [Time]
35
35
  #
36
36
  # @!attribute [r] type
37
- # Value of the `type` field in the Inttegro API payload.
37
+ # Stable machine-readable failure category.
38
38
  #
39
39
  # Required in the API payload. Wire name: `type`.
40
40
  # @return [String]
@@ -7,7 +7,7 @@ require_relative "base"
7
7
 
8
8
  module Inttegro
9
9
  class Payout
10
- # Typed representation of the lookup request object in the Inttegro API.
10
+ # Parameters for retrieving a payout.
11
11
  #
12
12
  # This generated model is immutable. Construct it with `.new`, or decode a string-keyed API
13
13
  # payload with `.from_hash`. `#serialize` produces a string-keyed hash using the original wire
@@ -16,7 +16,7 @@ module Inttegro
16
16
  # @api public
17
17
  #
18
18
  # @!attribute [r] payout_id
19
- # Payout identifier returned when the payout was created
19
+ # Payout identifier returned when the payout was created.
20
20
  #
21
21
  # Required in the API payload. Wire name: `payout_id`.
22
22
  # @return [String]
@@ -8,7 +8,7 @@ require_relative "payout"
8
8
 
9
9
  module Inttegro
10
10
  class Payout
11
- # Typed representation of the page object in the Inttegro API.
11
+ # A page of payouts ordered from newest to oldest.
12
12
  #
13
13
  # This generated model is immutable. Construct it with `.new`, or decode a string-keyed API
14
14
  # payload with `.from_hash`. `#serialize` produces a string-keyed hash using the original wire
@@ -17,13 +17,13 @@ module Inttegro
17
17
  # @api public
18
18
  #
19
19
  # @!attribute [r] number
20
- # Page number returned
20
+ # Page number returned.
21
21
  #
22
22
  # Required in the API payload. Wire name: `number`.
23
23
  # @return [Integer]
24
24
  #
25
25
  # @!attribute [r] size
26
- # Number of payouts returned
26
+ # Number of payouts returned.
27
27
  #
28
28
  # Required in the API payload. Wire name: `size`.
29
29
  # @return [Integer]
@@ -7,7 +7,7 @@ require_relative "base"
7
7
 
8
8
  module Inttegro
9
9
  class Payout
10
- # Typed representation of the page request object in the Inttegro API.
10
+ # Pagination parameters for payouts.
11
11
  #
12
12
  # This generated model is immutable. Construct it with `.new`, or decode a string-keyed API
13
13
  # payload with `.from_hash`. `#serialize` produces a string-keyed hash using the original wire
@@ -16,13 +16,13 @@ module Inttegro
16
16
  # @api public
17
17
  #
18
18
  # @!attribute [r] page_number
19
- # 1-based page index to fetch (1-10 inclusive)
19
+ # 1-based page index to fetch (1-10 inclusive).
20
20
  #
21
21
  # Required in the API payload. Wire name: `page_number`.
22
22
  # @return [Integer]
23
23
  #
24
24
  # @!attribute [r] page_size
25
- # Maximum number of payouts to return (1-256)
25
+ # Maximum number of payouts to return (1-256).
26
26
  #
27
27
  # Optional in the API payload; omitted values default to `nil`. Wire name: `page_size`.
28
28
  # @return [Integer, nil]
@@ -8,7 +8,7 @@ require_relative "page"
8
8
 
9
9
  module Inttegro
10
10
  class Payout
11
- # Typed representation of the page response object in the Inttegro API.
11
+ # Response envelope containing a page of payouts.
12
12
  #
13
13
  # This generated model is immutable. Construct it with `.new`, or decode a string-keyed API
14
14
  # payload with `.from_hash`. `#serialize` produces a string-keyed hash using the original wire
@@ -17,7 +17,7 @@ module Inttegro
17
17
  # @api public
18
18
  #
19
19
  # @!attribute [r] page
20
- # Value of the `page` field in the Inttegro API payload.
20
+ # A page of payouts ordered from newest to oldest.
21
21
  #
22
22
  # Optional in the API payload; omitted values default to `nil`. Wire name: `page`.
23
23
  # @return [Inttegro::Payout::Page, nil]
@@ -49,7 +49,7 @@ module Inttegro
49
49
  # @return [String]
50
50
  #
51
51
  # @!attribute [r] error
52
- # Public failure details when execution fails
52
+ # Public failure details returned when payout execution fails.
53
53
  #
54
54
  # Optional in the API payload; omitted values default to `nil`. Wire name: `error`.
55
55
  # @return [Inttegro::Payout::Error, nil]
@@ -8,7 +8,7 @@ require_relative "payout"
8
8
 
9
9
  module Inttegro
10
10
  class Payout
11
- # Typed representation of the cancel response object in the Inttegro API.
11
+ # Response envelope containing a payout.
12
12
  #
13
13
  # This generated model is immutable. Construct it with `.new`, or decode a string-keyed API
14
14
  # payload with `.from_hash`. `#serialize` produces a string-keyed hash using the original wire
@@ -21,7 +21,7 @@ module Inttegro
21
21
  #
22
22
  # Optional in the API payload; omitted values default to `nil`. Wire name: `payout`.
23
23
  # @return [Inttegro::Payout, nil]
24
- class CancelResponse < T::Struct
24
+ class Response < T::Struct
25
25
  const :payout, T.nilable(Inttegro::Payout), default: nil
26
26
  end
27
27
  end
@@ -4,10 +4,11 @@
4
4
  # Generated from openapi/commerce.yml by bin/generate-openapi-types. Do not edit.
5
5
 
6
6
  require_relative "base"
7
+ require_relative "destinations"
7
8
 
8
9
  module Inttegro
9
10
  class Payout
10
- # Typed representation of the set destinations request object in the Inttegro API.
11
+ # Supported payout destination assignments to update.
11
12
  #
12
13
  # This generated model is immutable. Construct it with `.new`, or decode a string-keyed API
13
14
  # payload with `.from_hash`. `#serialize` produces a string-keyed hash using the original wire
@@ -16,12 +17,12 @@ module Inttegro
16
17
  # @api public
17
18
  #
18
19
  # @!attribute [r] destinations
19
- # Currency-to-financial-account destination assignments.
20
+ # Supported currency-to-financial-account destination assignments.
20
21
  #
21
22
  # Required in the API payload. Wire name: `destinations`.
22
- # @return [Hash{String => String}]
23
+ # @return [Inttegro::Payout::Destinations]
23
24
  class SetDestinationsRequest < T::Struct
24
- const :destinations, T::Hash[String, String]
25
+ const :destinations, Inttegro::Payout::Destinations
25
26
  end
26
27
  end
27
28
  end
@@ -4,6 +4,7 @@
4
4
  # Generated from openapi/commerce.yml by bin/generate-openapi-types. Do not edit.
5
5
 
6
6
  require_relative "base"
7
+ require_relative "destinations"
7
8
  require_relative "settings_lookup_schedule"
8
9
 
9
10
  module Inttegro
@@ -17,10 +18,10 @@ module Inttegro
17
18
  # @api public
18
19
  #
19
20
  # @!attribute [r] destinations
20
- # Currency-to-financial-account destination assignments.
21
+ # Supported currency-to-financial-account destination assignments.
21
22
  #
22
23
  # Required in the API payload. Wire name: `destinations`.
23
- # @return [Hash{String => String}]
24
+ # @return [Inttegro::Payout::Destinations]
24
25
  #
25
26
  # @!attribute [r] fx_enabled
26
27
  # Present only when foreign exchange is enabled in stored settings
@@ -29,12 +30,12 @@ module Inttegro
29
30
  # @return [Boolean, nil]
30
31
  #
31
32
  # @!attribute [r] schedule
32
- # Active payout schedule
33
+ # Active payout schedule returned when settings are retrieved.
33
34
  #
34
35
  # Optional in the API payload; omitted values default to `nil`. Wire name: `schedule`.
35
36
  # @return [Inttegro::Payout::SettingsLookupSchedule, nil]
36
37
  class SettingsLookup < T::Struct
37
- const :destinations, T::Hash[String, String]
38
+ const :destinations, Inttegro::Payout::Destinations
38
39
  const :fx_enabled, T.nilable(T::Boolean), default: nil
39
40
  const :schedule, T.nilable(Inttegro::Payout::SettingsLookupSchedule), default: nil
40
41
  end
@@ -8,7 +8,7 @@ require_relative "settings_lookup"
8
8
 
9
9
  module Inttegro
10
10
  class Payout
11
- # Typed representation of the get settings response object in the Inttegro API.
11
+ # Response envelope containing complete payout settings.
12
12
  #
13
13
  # This generated model is immutable. Construct it with `.new`, or decode a string-keyed API
14
14
  # payload with `.from_hash`. `#serialize` produces a string-keyed hash using the original wire
@@ -21,7 +21,7 @@ module Inttegro
21
21
  #
22
22
  # Optional in the API payload; omitted values default to `nil`. Wire name: `settings`.
23
23
  # @return [Inttegro::Payout::SettingsLookup, nil]
24
- class GetSettingsResponse < T::Struct
24
+ class SettingsLookupResponse < T::Struct
25
25
  const :settings, T.nilable(Inttegro::Payout::SettingsLookup), default: nil
26
26
  end
27
27
  end