moov_ruby 26.4.19 → 26.4.20

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 (41) hide show
  1. checksums.yaml +4 -4
  2. data/lib/moov/invoices.rb +180 -0
  3. data/lib/moov/models/components/createinvoice.rb +10 -2
  4. data/lib/moov/models/components/createinvoice.rbi +4 -0
  5. data/lib/moov/models/components/createinvoicenotification.rb +32 -0
  6. data/lib/moov/models/components/createinvoicenotification.rbi +13 -0
  7. data/lib/moov/models/components/invoice.rb +6 -2
  8. data/lib/moov/models/components/invoice.rbi +2 -0
  9. data/lib/moov/models/components/invoicenotificationlimitedchannel.rb +36 -0
  10. data/lib/moov/models/components/invoicenotificationlimitedchannel.rbi +15 -0
  11. data/lib/moov/models/components/invoicepaymentoptions.rb +40 -0
  12. data/lib/moov/models/components/invoicepaymentoptions.rbi +17 -0
  13. data/lib/moov/models/components/invoicepaymentoptionserror.rb +40 -0
  14. data/lib/moov/models/components/invoicepaymentoptionserror.rbi +17 -0
  15. data/lib/moov/models/components/invoicepaymentoptionsupdate.rb +40 -0
  16. data/lib/moov/models/components/invoicepaymentoptionsupdate.rbi +17 -0
  17. data/lib/moov/models/components/notificationchannel.rb +18 -0
  18. data/lib/moov/models/components/notificationchannel.rbi +11 -0
  19. data/lib/moov/models/components/updateinvoice.rb +6 -2
  20. data/lib/moov/models/components/updateinvoice.rbi +2 -0
  21. data/lib/moov/models/components.rb +6 -0
  22. data/lib/moov/models/errors/createinvoiceerror.rb +10 -2
  23. data/lib/moov/models/errors/createinvoiceerror.rbi +4 -0
  24. data/lib/moov/models/errors/invoicenotificationerror.rb +36 -0
  25. data/lib/moov/models/errors/invoicenotificationerror.rbi +15 -0
  26. data/lib/moov/models/errors/invoicenotificationratelimitederror.rb +44 -0
  27. data/lib/moov/models/errors/invoicenotificationratelimitederror.rbi +19 -0
  28. data/lib/moov/models/errors/updateinvoiceerror.rb +6 -2
  29. data/lib/moov/models/errors/updateinvoiceerror.rbi +2 -0
  30. data/lib/moov/models/errors.rb +2 -0
  31. data/lib/moov/models/operations/createcancellation_request.rb +7 -2
  32. data/lib/moov/models/operations/createcancellation_request.rbi +2 -0
  33. data/lib/moov/models/operations/createinvoicenotification_request.rb +40 -0
  34. data/lib/moov/models/operations/createinvoicenotification_request.rbi +17 -0
  35. data/lib/moov/models/operations/createinvoicenotification_response.rb +44 -0
  36. data/lib/moov/models/operations/createinvoicenotification_response.rbi +19 -0
  37. data/lib/moov/models/operations/initiaterefund_request.rb +1 -1
  38. data/lib/moov/models/operations.rb +2 -0
  39. data/lib/moov/sdkconfiguration.rb +3 -3
  40. data/lib/moov/transfers.rb +6 -4
  41. metadata +22 -2
@@ -14,6 +14,8 @@ class Moov::Models::Components::UpdateInvoice
14
14
  def line_items=(str_); end
15
15
  def status(); end
16
16
  def status=(str_); end
17
+ def payment(); end
18
+ def payment=(str_); end
17
19
  def tax_amount(); end
18
20
  def tax_amount=(str_); end
19
21
  def invoice_date(); end
@@ -186,6 +186,7 @@ module Moov
186
186
  autoload :CreateInvoiceLineItems, 'moov/models/components/createinvoicelineitems.rb'
187
187
  autoload :CreateInvoiceLineItemsUpdate, 'moov/models/components/createinvoicelineitemsupdate.rb'
188
188
  autoload :CreateInvoiceLineItemsValidationError, 'moov/models/components/createinvoicelineitemsvalidationerror.rb'
189
+ autoload :CreateInvoiceNotification, 'moov/models/components/createinvoicenotification.rb'
189
190
  autoload :CreateInvoicePayment, 'moov/models/components/createinvoicepayment.rb'
190
191
  autoload :CreatePaymentLink, 'moov/models/components/createpaymentlink.rb'
191
192
  autoload :CreatePaymentLinkLineItem, 'moov/models/components/createpaymentlinklineitem.rb'
@@ -339,7 +340,11 @@ module Moov
339
340
  autoload :InvoiceLineItemValidationError, 'moov/models/components/invoicelineitemvalidationerror.rb'
340
341
  autoload :InvoiceLineItems, 'moov/models/components/invoicelineitems.rb'
341
342
  autoload :InvoiceLineItemsValidationError, 'moov/models/components/invoicelineitemsvalidationerror.rb'
343
+ autoload :InvoiceNotificationLimitedChannel, 'moov/models/components/invoicenotificationlimitedchannel.rb'
342
344
  autoload :InvoicePayment, 'moov/models/components/invoicepayment.rb'
345
+ autoload :InvoicePaymentOptions, 'moov/models/components/invoicepaymentoptions.rb'
346
+ autoload :InvoicePaymentOptionsError, 'moov/models/components/invoicepaymentoptionserror.rb'
347
+ autoload :InvoicePaymentOptionsUpdate, 'moov/models/components/invoicepaymentoptionsupdate.rb'
343
348
  autoload :InvoicePaymentType, 'moov/models/components/invoicepaymenttype.rb'
344
349
  autoload :InvoiceStatus, 'moov/models/components/invoicestatus.rb'
345
350
  autoload :InvoiceTransferPayment, 'moov/models/components/invoicetransferpayment.rb'
@@ -394,6 +399,7 @@ module Moov
394
399
  autoload :MoovWalletTransferPaymentMethod, 'moov/models/components/moovwallettransferpaymentmethod.rb'
395
400
  autoload :MoovWalletTransferPaymentMethodPaymentMethodType, 'moov/models/components/moovwallettransferpaymentmethod_paymentmethodtype.rb'
396
401
  autoload :MxPayload, 'moov/models/components/mxpayload.rb'
402
+ autoload :NotificationChannel, 'moov/models/components/notificationchannel.rb'
397
403
  autoload :OAuth2ClientType, 'moov/models/components/oauth2clienttype.rb'
398
404
  autoload :Occurrence, 'moov/models/components/occurrence.rb'
399
405
  autoload :OccurrenceStatus, 'moov/models/components/occurrencestatus.rb'
@@ -17,6 +17,8 @@ module Moov
17
17
 
18
18
  field :customer_email, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('customerEmail') } }
19
19
 
20
+ field :invoice_number, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('invoiceNumber') } }
21
+
20
22
  field :description, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('description') } }
21
23
 
22
24
  field :line_items, Crystalline::Nilable.new(Models::Components::CreateInvoiceLineItemsValidationError), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('lineItems') } }
@@ -25,18 +27,22 @@ module Moov
25
27
 
26
28
  field :due_date, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('dueDate') } }
27
29
 
30
+ field :payment, Crystalline::Nilable.new(Models::Components::InvoicePaymentOptionsError), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('payment') } }
31
+
28
32
  field :tax_amount, Crystalline::Nilable.new(Models::Components::AmountDecimalValidationError), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('taxAmount') } }
29
33
  # Raw HTTP response; suitable for custom response parsing
30
34
  field :raw_response, Crystalline::Nilable.new(::Faraday::Response), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('-') } }
31
35
 
32
- sig { params(customer_account_id: T.nilable(::String), customer_email: T.nilable(::String), description: T.nilable(::String), line_items: T.nilable(Models::Components::CreateInvoiceLineItemsValidationError), invoice_date: T.nilable(::String), due_date: T.nilable(::String), tax_amount: T.nilable(Models::Components::AmountDecimalValidationError), raw_response: T.nilable(::Faraday::Response)).void }
33
- def initialize(customer_account_id: nil, customer_email: nil, description: nil, line_items: nil, invoice_date: nil, due_date: nil, tax_amount: nil, raw_response: nil)
36
+ sig { params(customer_account_id: T.nilable(::String), customer_email: T.nilable(::String), invoice_number: T.nilable(::String), description: T.nilable(::String), line_items: T.nilable(Models::Components::CreateInvoiceLineItemsValidationError), invoice_date: T.nilable(::String), due_date: T.nilable(::String), payment: T.nilable(Models::Components::InvoicePaymentOptionsError), tax_amount: T.nilable(Models::Components::AmountDecimalValidationError), raw_response: T.nilable(::Faraday::Response)).void }
37
+ def initialize(customer_account_id: nil, customer_email: nil, invoice_number: nil, description: nil, line_items: nil, invoice_date: nil, due_date: nil, payment: nil, tax_amount: nil, raw_response: nil)
34
38
  @customer_account_id = customer_account_id
35
39
  @customer_email = customer_email
40
+ @invoice_number = invoice_number
36
41
  @description = description
37
42
  @line_items = line_items
38
43
  @invoice_date = invoice_date
39
44
  @due_date = due_date
45
+ @payment = payment
40
46
  @tax_amount = tax_amount
41
47
  @raw_response = raw_response
42
48
  end
@@ -46,10 +52,12 @@ module Moov
46
52
  return false unless other.is_a? self.class
47
53
  return false unless @customer_account_id == other.customer_account_id
48
54
  return false unless @customer_email == other.customer_email
55
+ return false unless @invoice_number == other.invoice_number
49
56
  return false unless @description == other.description
50
57
  return false unless @line_items == other.line_items
51
58
  return false unless @invoice_date == other.invoice_date
52
59
  return false unless @due_date == other.due_date
60
+ return false unless @payment == other.payment
53
61
  return false unless @tax_amount == other.tax_amount
54
62
  return false unless @raw_response == other.raw_response
55
63
  true
@@ -12,6 +12,8 @@ class Moov::Models::Errors::CreateInvoiceError
12
12
  def customer_account_id=(str_); end
13
13
  def customer_email(); end
14
14
  def customer_email=(str_); end
15
+ def invoice_number(); end
16
+ def invoice_number=(str_); end
15
17
  def description(); end
16
18
  def description=(str_); end
17
19
  def line_items(); end
@@ -20,6 +22,8 @@ class Moov::Models::Errors::CreateInvoiceError
20
22
  def invoice_date=(str_); end
21
23
  def due_date(); end
22
24
  def due_date=(str_); end
25
+ def payment(); end
26
+ def payment=(str_); end
23
27
  def tax_amount(); end
24
28
  def tax_amount=(str_); end
25
29
  def raw_response(); end
@@ -0,0 +1,36 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Moov
8
+ module Models
9
+ module Errors
10
+
11
+ class InvoiceNotificationError < StandardError
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :channels, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('channels') } }
17
+ # Raw HTTP response; suitable for custom response parsing
18
+ field :raw_response, Crystalline::Nilable.new(::Faraday::Response), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('-') } }
19
+
20
+ sig { params(channels: T.nilable(::String), raw_response: T.nilable(::Faraday::Response)).void }
21
+ def initialize(channels: nil, raw_response: nil)
22
+ @channels = channels
23
+ @raw_response = raw_response
24
+ end
25
+
26
+ sig { params(other: T.untyped).returns(T::Boolean) }
27
+ def ==(other)
28
+ return false unless other.is_a? self.class
29
+ return false unless @channels == other.channels
30
+ return false unless @raw_response == other.raw_response
31
+ true
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,15 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Errors::InvoiceNotificationError
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Errors::InvoiceNotificationError
11
+ def channels(); end
12
+ def channels=(str_); end
13
+ def raw_response(); end
14
+ def raw_response=(str_); end
15
+ end
@@ -0,0 +1,44 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Moov
8
+ module Models
9
+ module Errors
10
+
11
+ class InvoiceNotificationRateLimitedError < StandardError
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # A description of the rate limit error.
16
+ field :error, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('error'), required: true } }
17
+ # The requested channels that are rate limited.
18
+ field :limited_channels, Crystalline::Array.new(Models::Components::InvoiceNotificationLimitedChannel), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('limitedChannels'), required: true } }
19
+ # The requested channels that are not rate limited and can be sent in a new request.
20
+ field :available_channels, Crystalline::Array.new(Models::Components::NotificationChannel), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('availableChannels'), required: true } }
21
+ # Raw HTTP response; suitable for custom response parsing
22
+ field :raw_response, Crystalline::Nilable.new(::Faraday::Response), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('-') } }
23
+
24
+ sig { params(error: ::String, limited_channels: T::Array[Models::Components::InvoiceNotificationLimitedChannel], available_channels: T::Array[Models::Components::NotificationChannel], raw_response: T.nilable(::Faraday::Response)).void }
25
+ def initialize(error:, limited_channels:, available_channels:, raw_response: nil)
26
+ @error = error
27
+ @limited_channels = limited_channels
28
+ @available_channels = available_channels
29
+ @raw_response = raw_response
30
+ end
31
+
32
+ sig { params(other: T.untyped).returns(T::Boolean) }
33
+ def ==(other)
34
+ return false unless other.is_a? self.class
35
+ return false unless @error == other.error
36
+ return false unless @limited_channels == other.limited_channels
37
+ return false unless @available_channels == other.available_channels
38
+ return false unless @raw_response == other.raw_response
39
+ true
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,19 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Errors::InvoiceNotificationRateLimitedError
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Errors::InvoiceNotificationRateLimitedError
11
+ def error(); end
12
+ def error=(str_); end
13
+ def limited_channels(); end
14
+ def limited_channels=(str_); end
15
+ def available_channels(); end
16
+ def available_channels=(str_); end
17
+ def raw_response(); end
18
+ def raw_response=(str_); end
19
+ end
@@ -23,17 +23,20 @@ module Moov
23
23
 
24
24
  field :status, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status') } }
25
25
 
26
+ field :payment, Crystalline::Nilable.new(Models::Components::InvoicePaymentOptionsError), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('payment') } }
27
+
26
28
  field :tax_amount, Crystalline::Nilable.new(Models::Components::AmountDecimalValidationError), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('taxAmount') } }
27
29
  # Raw HTTP response; suitable for custom response parsing
28
30
  field :raw_response, Crystalline::Nilable.new(::Faraday::Response), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('-') } }
29
31
 
30
- sig { params(description: T.nilable(::String), line_items: T.nilable(Models::Components::InvoiceLineItemsValidationError), invoice_date: T.nilable(::String), due_date: T.nilable(::String), status: T.nilable(::String), tax_amount: T.nilable(Models::Components::AmountDecimalValidationError), raw_response: T.nilable(::Faraday::Response)).void }
31
- def initialize(description: nil, line_items: nil, invoice_date: nil, due_date: nil, status: nil, tax_amount: nil, raw_response: nil)
32
+ sig { params(description: T.nilable(::String), line_items: T.nilable(Models::Components::InvoiceLineItemsValidationError), invoice_date: T.nilable(::String), due_date: T.nilable(::String), status: T.nilable(::String), payment: T.nilable(Models::Components::InvoicePaymentOptionsError), tax_amount: T.nilable(Models::Components::AmountDecimalValidationError), raw_response: T.nilable(::Faraday::Response)).void }
33
+ def initialize(description: nil, line_items: nil, invoice_date: nil, due_date: nil, status: nil, payment: nil, tax_amount: nil, raw_response: nil)
32
34
  @description = description
33
35
  @line_items = line_items
34
36
  @invoice_date = invoice_date
35
37
  @due_date = due_date
36
38
  @status = status
39
+ @payment = payment
37
40
  @tax_amount = tax_amount
38
41
  @raw_response = raw_response
39
42
  end
@@ -46,6 +49,7 @@ module Moov
46
49
  return false unless @invoice_date == other.invoice_date
47
50
  return false unless @due_date == other.due_date
48
51
  return false unless @status == other.status
52
+ return false unless @payment == other.payment
49
53
  return false unless @tax_amount == other.tax_amount
50
54
  return false unless @raw_response == other.raw_response
51
55
  true
@@ -18,6 +18,8 @@ class Moov::Models::Errors::UpdateInvoiceError
18
18
  def due_date=(str_); end
19
19
  def status(); end
20
20
  def status=(str_); end
21
+ def payment(); end
22
+ def payment=(str_); end
21
23
  def tax_amount(); end
22
24
  def tax_amount=(str_); end
23
25
  def raw_response(); end
@@ -31,6 +31,8 @@ module Moov
31
31
  autoload :GenericError, 'moov/models/errors/genericerror.rb'
32
32
  autoload :ImageMetadataValidationError, 'moov/models/errors/imagemetadatavalidationerror.rb'
33
33
  autoload :ImageRequestValidationError, 'moov/models/errors/imagerequestvalidationerror.rb'
34
+ autoload :InvoiceNotificationError, 'moov/models/errors/invoicenotificationerror.rb'
35
+ autoload :InvoiceNotificationRateLimitedError, 'moov/models/errors/invoicenotificationratelimitederror.rb'
34
36
  autoload :LinkApplePayError, 'moov/models/errors/linkapplepayerror.rb'
35
37
  autoload :LinkCardError, 'moov/models/errors/linkcarderror.rb'
36
38
  autoload :LinkGooglePayError, 'moov/models/errors/linkgooglepayerror.rb'
@@ -16,11 +16,15 @@ module Moov
16
16
  field :account_id, ::String, { 'path_param': { 'field_name': 'accountID', 'style': 'simple', 'explode': false } }
17
17
  # The transfer ID to cancel.
18
18
  field :transfer_id, ::String, { 'path_param': { 'field_name': 'transferID', 'style': 'simple', 'explode': false } }
19
+ # Prevents duplicate cancellations from being created.
20
+ # In v2026.10 and later, this header is required, and reusing a key returns a `409` response with the original cancellation.
21
+ field :x_idempotency_key, Crystalline::Nilable.new(::String), { 'header': { 'field_name': 'x-idempotency-key', 'style': 'simple', 'explode': false } }
19
22
 
20
- sig { params(account_id: ::String, transfer_id: ::String).void }
21
- def initialize(account_id:, transfer_id:)
23
+ sig { params(account_id: ::String, transfer_id: ::String, x_idempotency_key: T.nilable(::String)).void }
24
+ def initialize(account_id:, transfer_id:, x_idempotency_key: nil)
22
25
  @account_id = account_id
23
26
  @transfer_id = transfer_id
27
+ @x_idempotency_key = x_idempotency_key
24
28
  end
25
29
 
26
30
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -28,6 +32,7 @@ module Moov
28
32
  return false unless other.is_a? self.class
29
33
  return false unless @account_id == other.account_id
30
34
  return false unless @transfer_id == other.transfer_id
35
+ return false unless @x_idempotency_key == other.x_idempotency_key
31
36
  true
32
37
  end
33
38
  end
@@ -12,4 +12,6 @@ class Moov::Models::Operations::CreateCancellationRequest
12
12
  def account_id=(str_); end
13
13
  def transfer_id(); end
14
14
  def transfer_id=(str_); end
15
+ def x_idempotency_key(); end
16
+ def x_idempotency_key=(str_); end
15
17
  end
@@ -0,0 +1,40 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Moov
8
+ module Models
9
+ module Operations
10
+
11
+ class CreateInvoiceNotificationRequest
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :account_id, ::String, { 'path_param': { 'field_name': 'accountID', 'style': 'simple', 'explode': false } }
17
+
18
+ field :invoice_id, ::String, { 'path_param': { 'field_name': 'invoiceID', 'style': 'simple', 'explode': false } }
19
+
20
+ field :create_invoice_notification, Models::Components::CreateInvoiceNotification, { 'request': { 'media_type': 'application/json' } }
21
+
22
+ sig { params(account_id: ::String, invoice_id: ::String, create_invoice_notification: Models::Components::CreateInvoiceNotification).void }
23
+ def initialize(account_id:, invoice_id:, create_invoice_notification:)
24
+ @account_id = account_id
25
+ @invoice_id = invoice_id
26
+ @create_invoice_notification = create_invoice_notification
27
+ end
28
+
29
+ sig { params(other: T.untyped).returns(T::Boolean) }
30
+ def ==(other)
31
+ return false unless other.is_a? self.class
32
+ return false unless @account_id == other.account_id
33
+ return false unless @invoice_id == other.invoice_id
34
+ return false unless @create_invoice_notification == other.create_invoice_notification
35
+ true
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,17 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Operations::CreateInvoiceNotificationRequest
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Operations::CreateInvoiceNotificationRequest
11
+ def account_id(); end
12
+ def account_id=(str_); end
13
+ def invoice_id(); end
14
+ def invoice_id=(str_); end
15
+ def create_invoice_notification(); end
16
+ def create_invoice_notification=(str_); end
17
+ end
@@ -0,0 +1,44 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Moov
8
+ module Models
9
+ module Operations
10
+
11
+ class CreateInvoiceNotificationResponse
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # HTTP response content type for this operation
16
+ field :content_type, ::String
17
+ # HTTP response status code for this operation
18
+ field :status_code, ::Integer
19
+ # Raw HTTP response; suitable for custom response parsing
20
+ field :raw_response, ::Faraday::Response
21
+
22
+ field :headers, Crystalline::Hash.new(Symbol, Crystalline::Array.new(::String))
23
+
24
+ sig { params(content_type: ::String, status_code: ::Integer, raw_response: ::Faraday::Response, headers: T::Hash[Symbol, T::Array[::String]]).void }
25
+ def initialize(content_type:, status_code:, raw_response:, headers:)
26
+ @content_type = content_type
27
+ @status_code = status_code
28
+ @raw_response = raw_response
29
+ @headers = headers
30
+ end
31
+
32
+ sig { params(other: T.untyped).returns(T::Boolean) }
33
+ def ==(other)
34
+ return false unless other.is_a? self.class
35
+ return false unless @content_type == other.content_type
36
+ return false unless @status_code == other.status_code
37
+ return false unless @raw_response == other.raw_response
38
+ return false unless @headers == other.headers
39
+ true
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,19 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Operations::CreateInvoiceNotificationResponse
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Operations::CreateInvoiceNotificationResponse
11
+ def content_type(); end
12
+ def content_type=(str_); end
13
+ def status_code(); end
14
+ def status_code=(str_); end
15
+ def raw_response(); end
16
+ def raw_response=(str_); end
17
+ def headers(); end
18
+ def headers=(str_); end
19
+ end
@@ -14,7 +14,7 @@ module Moov
14
14
 
15
15
  # Prevents duplicate refunds from being created.
16
16
  field :x_idempotency_key, ::String, { 'header': { 'field_name': 'x-idempotency-key', 'style': 'simple', 'explode': false } }
17
- # The merchant's Moov account ID.
17
+ # Moov account ID of the partner for the transfer.
18
18
  field :account_id, ::String, { 'path_param': { 'field_name': 'accountID', 'style': 'simple', 'explode': false } }
19
19
  # Identifier for the transfer.
20
20
  field :transfer_id, ::String, { 'path_param': { 'field_name': 'transferID', 'style': 'simple', 'explode': false } }
@@ -30,6 +30,8 @@ module Moov
30
30
  autoload :CreateCancellationResponse, 'moov/models/operations/createcancellation_response.rb'
31
31
  autoload :CreateFeePlanAgreementsRequest, 'moov/models/operations/createfeeplanagreements_request.rb'
32
32
  autoload :CreateFeePlanAgreementsResponse, 'moov/models/operations/createfeeplanagreements_response.rb'
33
+ autoload :CreateInvoiceNotificationRequest, 'moov/models/operations/createinvoicenotification_request.rb'
34
+ autoload :CreateInvoiceNotificationResponse, 'moov/models/operations/createinvoicenotification_response.rb'
33
35
  autoload :CreateInvoicePaymentRequest, 'moov/models/operations/createinvoicepayment_request.rb'
34
36
  autoload :CreateInvoicePaymentResponse, 'moov/models/operations/createinvoicepayment_response.rb'
35
37
  autoload :CreateInvoiceRequest, 'moov/models/operations/createinvoice_request.rb'
@@ -88,9 +88,9 @@ module Moov
88
88
  end
89
89
  @language = 'ruby'
90
90
  @openapi_doc_version = 'v2026.04.00'
91
- @sdk_version = '26.4.19'
92
- @gen_version = '2.943.0'
93
- @user_agent = 'speakeasy-sdk/ruby 26.4.19 2.943.0 v2026.04.00 moov_ruby'
91
+ @sdk_version = '26.4.20'
92
+ @gen_version = '2.950.2'
93
+ @user_agent = 'speakeasy-sdk/ruby 26.4.20 2.950.2 v2026.04.00 moov_ruby'
94
94
  end
95
95
 
96
96
  sig { returns([String, T::Hash[Symbol, String]]) }
@@ -1000,8 +1000,8 @@ module Moov
1000
1000
  end
1001
1001
 
1002
1002
 
1003
- sig { params(account_id: ::String, transfer_id: ::String, timeout_ms: T.nilable(Integer), http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])).returns(Models::Operations::CreateCancellationResponse) }
1004
- def create_cancellation(account_id:, transfer_id:, timeout_ms: nil, http_headers: nil)
1003
+ sig { params(account_id: ::String, transfer_id: ::String, x_idempotency_key: T.nilable(::String), timeout_ms: T.nilable(Integer), http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])).returns(Models::Operations::CreateCancellationResponse) }
1004
+ def create_cancellation(account_id:, transfer_id:, x_idempotency_key: nil, timeout_ms: nil, http_headers: nil)
1005
1005
  # create_cancellation - Initiate a cancellation for a card, ACH, or queued transfer.
1006
1006
  #
1007
1007
  # In v2026.10 and later, an auth-capture `card-payment` transfer can be canceled before any captures exist.
@@ -1011,7 +1011,8 @@ module Moov
1011
1011
  # to specify the `/accounts/{accountID}/transfers.write` scope.
1012
1012
  request = Models::Operations::CreateCancellationRequest.new(
1013
1013
  account_id: account_id,
1014
- transfer_id: transfer_id
1014
+ transfer_id: transfer_id,
1015
+ x_idempotency_key: x_idempotency_key
1015
1016
  )
1016
1017
  url, params = @sdk_configuration.get_server_details
1017
1018
  base_url = Utils.template_url(url, params)
@@ -1021,7 +1022,7 @@ module Moov
1021
1022
  '/accounts/{accountID}/transfers/{transferID}/cancellations',
1022
1023
  request
1023
1024
  )
1024
- headers = {}
1025
+ headers = Utils.get_headers(request)
1025
1026
  headers = T.cast(headers, T::Hash[String, String])
1026
1027
  headers['Accept'] = 'application/json'
1027
1028
  headers['user-agent'] = @sdk_configuration.user_agent
@@ -1391,6 +1392,7 @@ module Moov
1391
1392
  sig { params(request: Models::Operations::InitiateRefundRequest, timeout_ms: T.nilable(Integer), http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])).returns(Models::Operations::InitiateRefundResponse) }
1392
1393
  def initiate_refund(request:, timeout_ms: nil, http_headers: nil)
1393
1394
  # initiate_refund - Initiate a refund for a card transfer.
1395
+ # The `accountID` must identify the partner account for the transfer.
1394
1396
  #
1395
1397
  # **Use the [Cancel or refund a card transfer](https://docs.moov.io/api/money-movement/refunds/cancel/) endpoint for more comprehensive cancel and refund options.**
1396
1398
  # See the [reversals](https://docs.moov.io/guides/money-movement/accept-payments/card-acceptance/reversals/) guide for more information.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: moov_ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 26.4.19
4
+ version: 26.4.20
5
5
  platform: ruby
6
6
  authors:
7
7
  - Speakeasy
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-10-02 00:00:00.000000000 Z
11
+ date: 2026-10-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: base64
@@ -644,6 +644,8 @@ files:
644
644
  - lib/moov/models/components/createinvoicelineitemsvalidationerror.rbi
645
645
  - lib/moov/models/components/createinvoicelineitemvalidationerror.rb
646
646
  - lib/moov/models/components/createinvoicelineitemvalidationerror.rbi
647
+ - lib/moov/models/components/createinvoicenotification.rb
648
+ - lib/moov/models/components/createinvoicenotification.rbi
647
649
  - lib/moov/models/components/createinvoicepayment.rb
648
650
  - lib/moov/models/components/createinvoicepayment.rbi
649
651
  - lib/moov/models/components/createpaymentlink.rb
@@ -950,8 +952,16 @@ files:
950
952
  - lib/moov/models/components/invoicelineitemsvalidationerror.rbi
951
953
  - lib/moov/models/components/invoicelineitemvalidationerror.rb
952
954
  - lib/moov/models/components/invoicelineitemvalidationerror.rbi
955
+ - lib/moov/models/components/invoicenotificationlimitedchannel.rb
956
+ - lib/moov/models/components/invoicenotificationlimitedchannel.rbi
953
957
  - lib/moov/models/components/invoicepayment.rb
954
958
  - lib/moov/models/components/invoicepayment.rbi
959
+ - lib/moov/models/components/invoicepaymentoptions.rb
960
+ - lib/moov/models/components/invoicepaymentoptions.rbi
961
+ - lib/moov/models/components/invoicepaymentoptionserror.rb
962
+ - lib/moov/models/components/invoicepaymentoptionserror.rbi
963
+ - lib/moov/models/components/invoicepaymentoptionsupdate.rb
964
+ - lib/moov/models/components/invoicepaymentoptionsupdate.rbi
955
965
  - lib/moov/models/components/invoicepaymenttype.rb
956
966
  - lib/moov/models/components/invoicepaymenttype.rbi
957
967
  - lib/moov/models/components/invoicestatus.rb
@@ -1066,6 +1076,8 @@ files:
1066
1076
  - lib/moov/models/components/mxauthorizationcode.rbi
1067
1077
  - lib/moov/models/components/mxpayload.rb
1068
1078
  - lib/moov/models/components/mxpayload.rbi
1079
+ - lib/moov/models/components/notificationchannel.rb
1080
+ - lib/moov/models/components/notificationchannel.rbi
1069
1081
  - lib/moov/models/components/oauth2clienttype.rb
1070
1082
  - lib/moov/models/components/oauth2clienttype.rbi
1071
1083
  - lib/moov/models/components/occurrence.rb
@@ -1725,6 +1737,10 @@ files:
1725
1737
  - lib/moov/models/errors/imagemetadatavalidationerror.rbi
1726
1738
  - lib/moov/models/errors/imagerequestvalidationerror.rb
1727
1739
  - lib/moov/models/errors/imagerequestvalidationerror.rbi
1740
+ - lib/moov/models/errors/invoicenotificationerror.rb
1741
+ - lib/moov/models/errors/invoicenotificationerror.rbi
1742
+ - lib/moov/models/errors/invoicenotificationratelimitederror.rb
1743
+ - lib/moov/models/errors/invoicenotificationratelimitederror.rbi
1728
1744
  - lib/moov/models/errors/linkapplepayerror.rb
1729
1745
  - lib/moov/models/errors/linkapplepayerror.rbi
1730
1746
  - lib/moov/models/errors/linkcarderror.rb
@@ -1844,6 +1860,10 @@ files:
1844
1860
  - lib/moov/models/operations/createinvoice_request.rbi
1845
1861
  - lib/moov/models/operations/createinvoice_response.rb
1846
1862
  - lib/moov/models/operations/createinvoice_response.rbi
1863
+ - lib/moov/models/operations/createinvoicenotification_request.rb
1864
+ - lib/moov/models/operations/createinvoicenotification_request.rbi
1865
+ - lib/moov/models/operations/createinvoicenotification_response.rb
1866
+ - lib/moov/models/operations/createinvoicenotification_response.rbi
1847
1867
  - lib/moov/models/operations/createinvoicepayment_request.rb
1848
1868
  - lib/moov/models/operations/createinvoicepayment_request.rbi
1849
1869
  - lib/moov/models/operations/createinvoicepayment_response.rb