moov_ruby 26.7.6 → 26.7.8

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/lib/moov/invoices.rb +180 -0
  3. data/lib/moov/models/components/createdtransfer.rb +2 -1
  4. data/lib/moov/models/components/createinvoice.rb +14 -2
  5. data/lib/moov/models/components/createinvoice.rbi +6 -0
  6. data/lib/moov/models/components/createinvoicenotification.rb +32 -0
  7. data/lib/moov/models/components/createinvoicenotification.rbi +13 -0
  8. data/lib/moov/models/components/invoice.rb +6 -2
  9. data/lib/moov/models/components/invoice.rbi +2 -0
  10. data/lib/moov/models/components/invoicenotificationlimitedchannel.rb +36 -0
  11. data/lib/moov/models/components/invoicenotificationlimitedchannel.rbi +15 -0
  12. data/lib/moov/models/components/invoicepaymentoptions.rb +40 -0
  13. data/lib/moov/models/components/invoicepaymentoptions.rbi +17 -0
  14. data/lib/moov/models/components/invoicepaymentoptionserror.rb +40 -0
  15. data/lib/moov/models/components/invoicepaymentoptionserror.rbi +17 -0
  16. data/lib/moov/models/components/invoicepaymentoptionsupdate.rb +40 -0
  17. data/lib/moov/models/components/invoicepaymentoptionsupdate.rbi +17 -0
  18. data/lib/moov/models/components/notificationchannel.rb +18 -0
  19. data/lib/moov/models/components/notificationchannel.rbi +11 -0
  20. data/lib/moov/models/components/transfer.rb +2 -1
  21. data/lib/moov/models/components/updateinvoice.rb +6 -2
  22. data/lib/moov/models/components/updateinvoice.rbi +2 -0
  23. data/lib/moov/models/components/webhookdatatransferstatus.rb +1 -0
  24. data/lib/moov/models/components.rb +6 -0
  25. data/lib/moov/models/errors/createinvoiceerror.rb +14 -2
  26. data/lib/moov/models/errors/createinvoiceerror.rbi +6 -0
  27. data/lib/moov/models/errors/invoicenotificationerror.rb +36 -0
  28. data/lib/moov/models/errors/invoicenotificationerror.rbi +15 -0
  29. data/lib/moov/models/errors/invoicenotificationratelimitederror.rb +44 -0
  30. data/lib/moov/models/errors/invoicenotificationratelimitederror.rbi +19 -0
  31. data/lib/moov/models/errors/transfer_error.rb +2 -1
  32. data/lib/moov/models/errors/updateinvoiceerror.rb +6 -2
  33. data/lib/moov/models/errors/updateinvoiceerror.rbi +2 -0
  34. data/lib/moov/models/errors.rb +2 -0
  35. data/lib/moov/models/operations/createcancellation_request.rb +7 -2
  36. data/lib/moov/models/operations/createcancellation_request.rbi +2 -0
  37. data/lib/moov/models/operations/createinvoicenotification_request.rb +40 -0
  38. data/lib/moov/models/operations/createinvoicenotification_request.rbi +17 -0
  39. data/lib/moov/models/operations/createinvoicenotification_response.rb +44 -0
  40. data/lib/moov/models/operations/createinvoicenotification_response.rbi +19 -0
  41. data/lib/moov/models/operations/initiaterefund_request.rb +1 -1
  42. data/lib/moov/models/operations/listtransfers_request.rb +6 -2
  43. data/lib/moov/models/operations/listtransfers_request.rbi +2 -0
  44. data/lib/moov/models/operations.rb +2 -0
  45. data/lib/moov/sdkconfiguration.rb +3 -3
  46. data/lib/moov/transfers.rb +6 -4
  47. metadata +22 -2
@@ -23,6 +23,8 @@ module Moov
23
23
  # To completely discard an invoice created by mistake, use the delete endpoint instead.
24
24
  # - `unpaid`: Can only be set if the current status is `draft`. Setting the status to `unpaid` finalizes the invoice and sends an email with a payment link to the customer.
25
25
  field :status, Crystalline::Nilable.new(Models::Components::InvoiceStatus), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::InvoiceStatus, true) } }
26
+ # Payment options to update on the invoice.
27
+ field :payment, Crystalline::Nilable.new(Models::Components::InvoicePaymentOptionsUpdate), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('payment') } }
26
28
 
27
29
  field :amount_details, Crystalline::Nilable.new(Models::Components::AmountDetailsUpdate), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amountDetails') } }
28
30
 
@@ -30,11 +32,12 @@ module Moov
30
32
 
31
33
  field :due_date, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('dueDate'), 'decoder': ::Moov::Utils.datetime_from_iso_format(true) } }
32
34
 
33
- sig { params(description: T.nilable(::String), line_items: T.nilable(Models::Components::CreateInvoiceLineItemsUpdate), status: T.nilable(Models::Components::InvoiceStatus), amount_details: T.nilable(Models::Components::AmountDetailsUpdate), invoice_date: T.nilable(::DateTime), due_date: T.nilable(::DateTime)).void }
34
- def initialize(description: nil, line_items: nil, status: nil, amount_details: nil, invoice_date: nil, due_date: nil)
35
+ sig { params(description: T.nilable(::String), line_items: T.nilable(Models::Components::CreateInvoiceLineItemsUpdate), status: T.nilable(Models::Components::InvoiceStatus), payment: T.nilable(Models::Components::InvoicePaymentOptionsUpdate), amount_details: T.nilable(Models::Components::AmountDetailsUpdate), invoice_date: T.nilable(::DateTime), due_date: T.nilable(::DateTime)).void }
36
+ def initialize(description: nil, line_items: nil, status: nil, payment: nil, amount_details: nil, invoice_date: nil, due_date: nil)
35
37
  @description = description
36
38
  @line_items = line_items
37
39
  @status = status
40
+ @payment = payment
38
41
  @amount_details = amount_details
39
42
  @invoice_date = invoice_date
40
43
  @due_date = due_date
@@ -46,6 +49,7 @@ module Moov
46
49
  return false unless @description == other.description
47
50
  return false unless @line_items == other.line_items
48
51
  return false unless @status == other.status
52
+ return false unless @payment == other.payment
49
53
  return false unless @amount_details == other.amount_details
50
54
  return false unless @invoice_date == other.invoice_date
51
55
  return false unless @due_date == other.due_date
@@ -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 amount_details(); end
18
20
  def amount_details=(str_); end
19
21
  def invoice_date(); end
@@ -26,6 +26,7 @@ module Moov
26
26
  SOURCE_SETTLED = new('source.settled')
27
27
  SOURCE_FAILED = new('source.failed')
28
28
  SOURCE_CANCELED = new('source.canceled')
29
+ SOURCE_CLEARED_EXTERNALLY = new('source.cleared-externally')
29
30
  DESTINATION_COMPLETED = new('destination.completed')
30
31
  DESTINATION_CORRECTED = new('destination.corrected')
31
32
  DESTINATION_INITIATED = new('destination.initiated')
@@ -196,6 +196,7 @@ module Moov
196
196
  autoload :CreateInvoiceLineItems, 'moov/models/components/createinvoicelineitems.rb'
197
197
  autoload :CreateInvoiceLineItemsUpdate, 'moov/models/components/createinvoicelineitemsupdate.rb'
198
198
  autoload :CreateInvoiceLineItemsValidationError, 'moov/models/components/createinvoicelineitemsvalidationerror.rb'
199
+ autoload :CreateInvoiceNotification, 'moov/models/components/createinvoicenotification.rb'
199
200
  autoload :CreateInvoicePayment, 'moov/models/components/createinvoicepayment.rb'
200
201
  autoload :CreatePaymentLink, 'moov/models/components/createpaymentlink.rb'
201
202
  autoload :CreatePaymentLinkAmountDetails, 'moov/models/components/createpaymentlinkamountdetails.rb'
@@ -354,7 +355,11 @@ module Moov
354
355
  autoload :InvoiceLineItemValidationError, 'moov/models/components/invoicelineitemvalidationerror.rb'
355
356
  autoload :InvoiceLineItems, 'moov/models/components/invoicelineitems.rb'
356
357
  autoload :InvoiceLineItemsValidationError, 'moov/models/components/invoicelineitemsvalidationerror.rb'
358
+ autoload :InvoiceNotificationLimitedChannel, 'moov/models/components/invoicenotificationlimitedchannel.rb'
357
359
  autoload :InvoicePayment, 'moov/models/components/invoicepayment.rb'
360
+ autoload :InvoicePaymentOptions, 'moov/models/components/invoicepaymentoptions.rb'
361
+ autoload :InvoicePaymentOptionsError, 'moov/models/components/invoicepaymentoptionserror.rb'
362
+ autoload :InvoicePaymentOptionsUpdate, 'moov/models/components/invoicepaymentoptionsupdate.rb'
358
363
  autoload :InvoicePaymentType, 'moov/models/components/invoicepaymenttype.rb'
359
364
  autoload :InvoiceStatus, 'moov/models/components/invoicestatus.rb'
360
365
  autoload :InvoiceTransferPayment, 'moov/models/components/invoicetransferpayment.rb'
@@ -424,6 +429,7 @@ module Moov
424
429
  autoload :MoovWalletTransferPaymentMethod, 'moov/models/components/moovwallettransferpaymentmethod.rb'
425
430
  autoload :MoovWalletTransferPaymentMethodPaymentMethodType, 'moov/models/components/moovwallettransferpaymentmethod_paymentmethodtype.rb'
426
431
  autoload :MxPayload, 'moov/models/components/mxpayload.rb'
432
+ autoload :NotificationChannel, 'moov/models/components/notificationchannel.rb'
427
433
  autoload :OAuth2ClientType, 'moov/models/components/oauth2clienttype.rb'
428
434
  autoload :Occurrence, 'moov/models/components/occurrence.rb'
429
435
  autoload :OccurrenceStatus, 'moov/models/components/occurrencestatus.rb'
@@ -15,6 +15,10 @@ module Moov
15
15
 
16
16
  field :customer_account_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('customerAccountID') } }
17
17
 
18
+ field :customer_email, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('customerEmail') } }
19
+
20
+ field :invoice_number, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('invoiceNumber') } }
21
+
18
22
  field :description, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('description') } }
19
23
 
20
24
  field :line_items, Crystalline::Nilable.new(Models::Components::CreateInvoiceLineItemsValidationError), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('lineItems') } }
@@ -23,17 +27,22 @@ module Moov
23
27
 
24
28
  field :due_date, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('dueDate') } }
25
29
 
30
+ field :payment, Crystalline::Nilable.new(Models::Components::InvoicePaymentOptionsError), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('payment') } }
31
+
26
32
  field :amount_details, Crystalline::Nilable.new(Models::Components::AmountDetailsValidationError), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amountDetails') } }
27
33
  # Raw HTTP response; suitable for custom response parsing
28
34
  field :raw_response, Crystalline::Nilable.new(::Faraday::Response), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('-') } }
29
35
 
30
- sig { params(customer_account_id: T.nilable(::String), description: T.nilable(::String), line_items: T.nilable(Models::Components::CreateInvoiceLineItemsValidationError), invoice_date: T.nilable(::String), due_date: T.nilable(::String), amount_details: T.nilable(Models::Components::AmountDetailsValidationError), raw_response: T.nilable(::Faraday::Response)).void }
31
- def initialize(customer_account_id: nil, description: nil, line_items: nil, invoice_date: nil, due_date: nil, amount_details: 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), amount_details: T.nilable(Models::Components::AmountDetailsValidationError), 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, amount_details: nil, raw_response: nil)
32
38
  @customer_account_id = customer_account_id
39
+ @customer_email = customer_email
40
+ @invoice_number = invoice_number
33
41
  @description = description
34
42
  @line_items = line_items
35
43
  @invoice_date = invoice_date
36
44
  @due_date = due_date
45
+ @payment = payment
37
46
  @amount_details = amount_details
38
47
  @raw_response = raw_response
39
48
  end
@@ -42,10 +51,13 @@ module Moov
42
51
  def ==(other)
43
52
  return false unless other.is_a? self.class
44
53
  return false unless @customer_account_id == other.customer_account_id
54
+ return false unless @customer_email == other.customer_email
55
+ return false unless @invoice_number == other.invoice_number
45
56
  return false unless @description == other.description
46
57
  return false unless @line_items == other.line_items
47
58
  return false unless @invoice_date == other.invoice_date
48
59
  return false unless @due_date == other.due_date
60
+ return false unless @payment == other.payment
49
61
  return false unless @amount_details == other.amount_details
50
62
  return false unless @raw_response == other.raw_response
51
63
  true
@@ -10,6 +10,10 @@ end
10
10
  class Moov::Models::Errors::CreateInvoiceError
11
11
  def customer_account_id(); end
12
12
  def customer_account_id=(str_); end
13
+ def customer_email(); end
14
+ def customer_email=(str_); end
15
+ def invoice_number(); end
16
+ def invoice_number=(str_); end
13
17
  def description(); end
14
18
  def description=(str_); end
15
19
  def line_items(); end
@@ -18,6 +22,8 @@ class Moov::Models::Errors::CreateInvoiceError
18
22
  def invoice_date=(str_); end
19
23
  def due_date(); end
20
24
  def due_date=(str_); end
25
+ def payment(); end
26
+ def payment=(str_); end
21
27
  def amount_details(); end
22
28
  def amount_details=(str_); end
23
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
@@ -72,7 +72,8 @@ module Moov
72
72
  field :line_items, Crystalline::Nilable.new(Models::Components::TransferLineItems), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('lineItems') } }
73
73
  # ID of the invoice that the transfer is associated with.
74
74
  field :invoice_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('invoiceID') } }
75
-
75
+ # The tip, tax, and surcharge portion of the transfer amount.
76
+ # For an auth-capture `card-payment` transfer, this is the aggregate of all captures' `amountDetails`.
76
77
  field :amount_details, Crystalline::Nilable.new(Models::Components::TransferAmountDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amountDetails') } }
77
78
  # The card authorization and capture IDs associated with a transfer.
78
79
  field :capture, Crystalline::Nilable.new(Models::Components::TransferCapture), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('capture') } }
@@ -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 :amount_details, Crystalline::Nilable.new(Models::Components::AmountDetailsValidationError), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amountDetails') } }
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), amount_details: T.nilable(Models::Components::AmountDetailsValidationError), raw_response: T.nilable(::Faraday::Response)).void }
31
- def initialize(description: nil, line_items: nil, invoice_date: nil, due_date: nil, status: nil, amount_details: 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), amount_details: T.nilable(Models::Components::AmountDetailsValidationError), 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, amount_details: 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
  @amount_details = amount_details
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 @amount_details == other.amount_details
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 amount_details(); end
22
24
  def amount_details=(str_); end
23
25
  def raw_response(); end
@@ -33,6 +33,8 @@ module Moov
33
33
  autoload :GenericError, 'moov/models/errors/genericerror.rb'
34
34
  autoload :ImageMetadataValidationError, 'moov/models/errors/imagemetadatavalidationerror.rb'
35
35
  autoload :ImageRequestValidationError, 'moov/models/errors/imagerequestvalidationerror.rb'
36
+ autoload :InvoiceNotificationError, 'moov/models/errors/invoicenotificationerror.rb'
37
+ autoload :InvoiceNotificationRateLimitedError, 'moov/models/errors/invoicenotificationratelimitederror.rb'
36
38
  autoload :LinkApplePayError, 'moov/models/errors/linkapplepayerror.rb'
37
39
  autoload :LinkCardError, 'moov/models/errors/linkcarderror.rb'
38
40
  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 } }
@@ -36,6 +36,8 @@ module Moov
36
36
  field :foreign_id, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'foreignID', 'style': 'form', 'explode': false } }
37
37
  # Optional comma-separated authorization IDs.
38
38
  field :authorization_i_ds, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'authorizationIDs', 'style': 'form', 'explode': false } }
39
+ # Optional comma-separated invoice IDs.
40
+ field :invoice_i_ds, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'invoiceIDs', 'style': 'form', 'explode': false } }
39
41
  # Optional comma-separated IDs to filter for transfers associated with specific card captures.
40
42
  field :capture_i_ds, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'captureIDs', 'style': 'form', 'explode': false } }
41
43
 
@@ -43,8 +45,8 @@ module Moov
43
45
  # Page size. When omitted, the server defaults to `200`.
44
46
  field :count, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'count', 'style': 'form', 'explode': false } }
45
47
 
46
- sig { params(account_id: ::String, account_i_ds: T.nilable(T::Array[::String]), status: T.nilable(Models::Components::TransferStatus), start_date_time: T.nilable(::DateTime), end_date_time: T.nilable(::DateTime), group_id: T.nilable(::String), schedule_id: T.nilable(::String), payment_link_code: T.nilable(::String), refunded: T.nilable(T::Boolean), disputed: T.nilable(T::Boolean), foreign_id: T.nilable(::String), authorization_i_ds: T.nilable(T::Array[::String]), capture_i_ds: T.nilable(T::Array[::String]), skip: T.nilable(::Integer), count: T.nilable(::Integer)).void }
47
- def initialize(account_id:, account_i_ds: nil, status: nil, start_date_time: nil, end_date_time: nil, group_id: nil, schedule_id: nil, payment_link_code: nil, refunded: nil, disputed: nil, foreign_id: nil, authorization_i_ds: nil, capture_i_ds: nil, skip: nil, count: nil)
48
+ sig { params(account_id: ::String, account_i_ds: T.nilable(T::Array[::String]), status: T.nilable(Models::Components::TransferStatus), start_date_time: T.nilable(::DateTime), end_date_time: T.nilable(::DateTime), group_id: T.nilable(::String), schedule_id: T.nilable(::String), payment_link_code: T.nilable(::String), refunded: T.nilable(T::Boolean), disputed: T.nilable(T::Boolean), foreign_id: T.nilable(::String), authorization_i_ds: T.nilable(T::Array[::String]), invoice_i_ds: T.nilable(T::Array[::String]), capture_i_ds: T.nilable(T::Array[::String]), skip: T.nilable(::Integer), count: T.nilable(::Integer)).void }
49
+ def initialize(account_id:, account_i_ds: nil, status: nil, start_date_time: nil, end_date_time: nil, group_id: nil, schedule_id: nil, payment_link_code: nil, refunded: nil, disputed: nil, foreign_id: nil, authorization_i_ds: nil, invoice_i_ds: nil, capture_i_ds: nil, skip: nil, count: nil)
48
50
  @account_id = account_id
49
51
  @account_i_ds = account_i_ds
50
52
  @status = status
@@ -57,6 +59,7 @@ module Moov
57
59
  @disputed = disputed
58
60
  @foreign_id = foreign_id
59
61
  @authorization_i_ds = authorization_i_ds
62
+ @invoice_i_ds = invoice_i_ds
60
63
  @capture_i_ds = capture_i_ds
61
64
  @skip = skip
62
65
  @count = count
@@ -77,6 +80,7 @@ module Moov
77
80
  return false unless @disputed == other.disputed
78
81
  return false unless @foreign_id == other.foreign_id
79
82
  return false unless @authorization_i_ds == other.authorization_i_ds
83
+ return false unless @invoice_i_ds == other.invoice_i_ds
80
84
  return false unless @capture_i_ds == other.capture_i_ds
81
85
  return false unless @skip == other.skip
82
86
  return false unless @count == other.count
@@ -32,6 +32,8 @@ class Moov::Models::Operations::ListTransfersRequest
32
32
  def foreign_id=(str_); end
33
33
  def authorization_i_ds(); end
34
34
  def authorization_i_ds=(str_); end
35
+ def invoice_i_ds(); end
36
+ def invoice_i_ds=(str_); end
35
37
  def capture_i_ds(); end
36
38
  def capture_i_ds=(str_); end
37
39
  def skip(); end
@@ -32,6 +32,8 @@ module Moov
32
32
  autoload :CreateDepositAccountResponse, 'moov/models/operations/createdepositaccount_response.rb'
33
33
  autoload :CreateFeePlanAgreementsRequest, 'moov/models/operations/createfeeplanagreements_request.rb'
34
34
  autoload :CreateFeePlanAgreementsResponse, 'moov/models/operations/createfeeplanagreements_response.rb'
35
+ autoload :CreateInvoiceNotificationRequest, 'moov/models/operations/createinvoicenotification_request.rb'
36
+ autoload :CreateInvoiceNotificationResponse, 'moov/models/operations/createinvoicenotification_response.rb'
35
37
  autoload :CreateInvoicePaymentRequest, 'moov/models/operations/createinvoicepayment_request.rb'
36
38
  autoload :CreateInvoicePaymentResponse, 'moov/models/operations/createinvoicepayment_response.rb'
37
39
  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.07.00'
91
- @sdk_version = '26.7.6'
92
- @gen_version = '2.938.0'
93
- @user_agent = 'speakeasy-sdk/ruby 26.7.6 2.938.0 v2026.07.00 moov_ruby'
91
+ @sdk_version = '26.7.8'
92
+ @gen_version = '2.950.2'
93
+ @user_agent = 'speakeasy-sdk/ruby 26.7.8 2.950.2 v2026.07.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.