moov_ruby 26.4.0.pre.dev.9 → 26.4.0.pre.dev.11

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 (97) hide show
  1. checksums.yaml +4 -4
  2. data/lib/crystalline/types.rb +11 -3
  3. data/lib/moov/account_terminal_applications.rb +23 -9
  4. data/lib/moov/accounts.rb +58 -23
  5. data/lib/moov/adjustments.rb +13 -5
  6. data/lib/moov/apple_pay.rb +28 -11
  7. data/lib/moov/authentication.rb +13 -5
  8. data/lib/moov/avatars.rb +8 -3
  9. data/lib/moov/bank_accounts.rb +48 -19
  10. data/lib/moov/branding.rb +18 -7
  11. data/lib/moov/capabilities.rb +23 -9
  12. data/lib/moov/card_issuing.rb +28 -11
  13. data/lib/moov/cards.rb +28 -11
  14. data/lib/moov/client.rb +4 -2
  15. data/lib/moov/disputes.rb +58 -23
  16. data/lib/moov/end_to_end_encryption.rb +13 -5
  17. data/lib/moov/enriched_address.rb +8 -3
  18. data/lib/moov/enriched_profile.rb +8 -3
  19. data/lib/moov/fee_plans.rb +53 -21
  20. data/lib/moov/files.rb +18 -7
  21. data/lib/moov/images.rb +39 -19
  22. data/lib/moov/industries.rb +8 -3
  23. data/lib/moov/institutions.rb +13 -5
  24. data/lib/moov/invoices.rb +170 -13
  25. data/lib/moov/issuing_transactions.rb +28 -11
  26. data/lib/moov/models/components/createinvoicelineitem.rb +2 -1
  27. data/lib/moov/models/components/createpaymentlinklineitem.rb +2 -1
  28. data/lib/moov/models/components/createresolutionlink.rb +32 -0
  29. data/lib/moov/models/components/createresolutionlink.rbi +13 -0
  30. data/lib/moov/models/components/feecategory.rb +1 -0
  31. data/lib/moov/models/components/{rtpfailurecode.rb → instantbankfailurecode.rb} +3 -2
  32. data/lib/moov/models/components/instantbankfailurecode.rbi +11 -0
  33. data/lib/moov/models/components/instantbanknetwork.rb +19 -0
  34. data/lib/moov/models/components/{rtpfailurecode.rbi → instantbanknetwork.rbi} +2 -2
  35. data/lib/moov/models/components/{rtptransactiondetails.rb → instantbanktransactiondetails.rb} +16 -8
  36. data/lib/moov/models/components/{rtptransactiondetails.rbi → instantbanktransactiondetails.rbi} +6 -2
  37. data/lib/moov/models/components/{rtptransactionstatus.rb → instantbanktransactionstatus.rb} +2 -2
  38. data/lib/moov/models/components/instantbanktransactionstatus.rbi +11 -0
  39. data/lib/moov/models/components/invoice.rb +14 -2
  40. data/lib/moov/models/components/invoice.rbi +6 -0
  41. data/lib/moov/models/components/invoicelineitem.rb +2 -1
  42. data/lib/moov/models/components/resolutionlink.rb +64 -0
  43. data/lib/moov/models/components/resolutionlink.rbi +29 -0
  44. data/lib/moov/models/components/resolutionlinkrecipient.rb +36 -0
  45. data/lib/moov/models/components/resolutionlinkrecipient.rbi +15 -0
  46. data/lib/moov/models/components/transferdestination.rb +6 -6
  47. data/lib/moov/models/components/transferdestination.rbi +2 -2
  48. data/lib/moov/models/components/updateinvoice.rb +4 -1
  49. data/lib/moov/models/components.rb +7 -3
  50. data/lib/moov/models/errors/createresolutionlinkerror.rb +40 -0
  51. data/lib/moov/models/errors/createresolutionlinkerror.rbi +17 -0
  52. data/lib/moov/models/errors.rb +1 -0
  53. data/lib/moov/models/operations/createresolutionlink_request.rb +49 -0
  54. data/lib/moov/models/operations/createresolutionlink_request.rbi +17 -0
  55. data/lib/moov/models/operations/createresolutionlink_response.rb +48 -0
  56. data/lib/moov/models/operations/createresolutionlink_response.rbi +21 -0
  57. data/lib/moov/models/operations/deleteinvoice_request.rb +49 -0
  58. data/lib/moov/models/operations/deleteinvoice_request.rbi +17 -0
  59. data/lib/moov/models/operations/deleteinvoice_response.rb +44 -0
  60. data/lib/moov/models/operations/deleteinvoice_response.rbi +19 -0
  61. data/lib/moov/models/operations/disableresolutionlink_request.rb +49 -0
  62. data/lib/moov/models/operations/disableresolutionlink_request.rbi +17 -0
  63. data/lib/moov/models/operations/disableresolutionlink_response.rb +44 -0
  64. data/lib/moov/models/operations/disableresolutionlink_response.rbi +19 -0
  65. data/lib/moov/models/operations/getresolutionlink_request.rb +49 -0
  66. data/lib/moov/models/operations/getresolutionlink_request.rbi +17 -0
  67. data/lib/moov/models/operations/getresolutionlink_response.rb +48 -0
  68. data/lib/moov/models/operations/getresolutionlink_response.rbi +21 -0
  69. data/lib/moov/models/operations/listresolutionlinks_request.rb +45 -0
  70. data/lib/moov/models/operations/listresolutionlinks_request.rbi +15 -0
  71. data/lib/moov/models/operations/listresolutionlinks_response.rb +48 -0
  72. data/lib/moov/models/operations/listresolutionlinks_response.rbi +21 -0
  73. data/lib/moov/models/operations.rb +10 -0
  74. data/lib/moov/onboarding.rb +23 -9
  75. data/lib/moov/payment_links.rb +33 -13
  76. data/lib/moov/payment_methods.rb +13 -5
  77. data/lib/moov/ping.rb +8 -3
  78. data/lib/moov/products.rb +28 -11
  79. data/lib/moov/receipts.rb +13 -5
  80. data/lib/moov/representatives.rb +28 -11
  81. data/lib/moov/resolution_links.rb +592 -0
  82. data/lib/moov/scheduling.rb +33 -13
  83. data/lib/moov/sdk_hooks/moov_version.rb +6 -7
  84. data/lib/moov/sdk_hooks/registration.rb +1 -1
  85. data/lib/moov/sdkconfiguration.rb +3 -3
  86. data/lib/moov/statements.rb +13 -5
  87. data/lib/moov/support.rb +28 -11
  88. data/lib/moov/sweeps.rb +33 -13
  89. data/lib/moov/terminal_applications.rb +28 -11
  90. data/lib/moov/transfers.rb +58 -23
  91. data/lib/moov/underwriting.rb +18 -7
  92. data/lib/moov/wallet_transactions.rb +13 -5
  93. data/lib/moov/wallets.rb +23 -9
  94. data/lib/moov/webhooks.rb +43 -17
  95. data/lib/moov_ruby.rb +1 -0
  96. metadata +53 -8
  97. data/lib/moov/models/components/rtptransactionstatus.rbi +0 -11
@@ -0,0 +1,32 @@
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 Components
10
+ # Request body for creating a resolution link.
11
+ class CreateResolutionLink
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # The recipient contact information for the resolution link.
16
+ field :recipient, Models::Components::ResolutionLinkRecipient, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('recipient'), required: true } }
17
+
18
+ sig { params(recipient: Models::Components::ResolutionLinkRecipient).void }
19
+ def initialize(recipient:)
20
+ @recipient = recipient
21
+ end
22
+
23
+ sig { params(other: T.untyped).returns(T::Boolean) }
24
+ def ==(other)
25
+ return false unless other.is_a? self.class
26
+ return false unless @recipient == other.recipient
27
+ true
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,13 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::CreateResolutionLink
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::CreateResolutionLink
11
+ def recipient(); end
12
+ def recipient=(str_); end
13
+ end
@@ -15,6 +15,7 @@ module Moov
15
15
  CARD_OTHER = new('card-other')
16
16
  CARD_PULL = new('card-pull')
17
17
  CARD_PUSH = new('card-push')
18
+ INSTANT_BANK = new('instant-bank')
18
19
  MONTHLY_PLATFORM = new('monthly-platform')
19
20
  NETWORK_PASSTHROUGH = new('network-passthrough')
20
21
  OTHER = new('other')
@@ -7,8 +7,8 @@
7
7
  module Moov
8
8
  module Models
9
9
  module Components
10
- # RTPFailureCode - Status codes for RTP failures.
11
- class RTPFailureCode < T::Enum
10
+ # InstantBankFailureCode - Status codes for instant-bank failures.
11
+ class InstantBankFailureCode < T::Enum
12
12
  enums do
13
13
  PROCESSING_ERROR = new('processing-error')
14
14
  INVALID_ACCOUNT = new('invalid-account')
@@ -19,6 +19,7 @@ module Moov
19
19
  LIMIT_EXCEEDED = new('limit-exceeded')
20
20
  INVALID_AMOUNT = new('invalid-amount')
21
21
  CUSTOMER_DECEASED = new('customer-deceased')
22
+ PARTICIPANT_NOT_AVAILABLE = new('participant-not-available')
22
23
  OTHER = new('other')
23
24
  end
24
25
  end
@@ -0,0 +1,11 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::InstantBankFailureCode
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::InstantBankFailureCode
11
+ end
@@ -0,0 +1,19 @@
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 Components
10
+ # InstantBankNetwork - The network that the transaction was processed on.
11
+ class InstantBankNetwork < T::Enum
12
+ enums do
13
+ FEDNOW = new('fednow')
14
+ RTP = new('rtp')
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -2,10 +2,10 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
 
5
- class Moov::Models::Components::RTPFailureCode
5
+ class Moov::Models::Components::InstantBankNetwork
6
6
  extend ::Crystalline::MetadataFields::ClassMethods
7
7
  end
8
8
 
9
9
 
10
- class Moov::Models::Components::RTPFailureCode
10
+ class Moov::Models::Components::InstantBankNetwork
11
11
  end
@@ -7,17 +7,21 @@
7
7
  module Moov
8
8
  module Models
9
9
  module Components
10
- # RTP specific details about the transaction.
11
- class RTPTransactionDetails
10
+ # Instant-bank specific details about the transaction.
11
+ class InstantBankTransactionDetails
12
12
  extend T::Sig
13
13
  include Crystalline::MetadataFields
14
14
 
15
- # Status of a transaction within the RTP lifecycle.
16
- field :status, Crystalline::Nilable.new(Models::Components::RTPTransactionStatus), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::RTPTransactionStatus, true) } }
15
+ # The network that the transaction was processed on.
16
+ field :network, Models::Components::InstantBankNetwork, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('network'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::InstantBankNetwork, false) } }
17
+ # Status of a transaction within the instant-bank lifecycle.
18
+ field :status, Models::Components::InstantBankTransactionStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::InstantBankTransactionStatus, false) } }
17
19
  # Response code returned by network on failure.
18
20
  field :network_response_code, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('networkResponseCode') } }
19
- # Status codes for RTP failures.
20
- field :failure_code, Crystalline::Nilable.new(Models::Components::RTPFailureCode), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('failureCode'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::RTPFailureCode, true) } }
21
+ # Status codes for instant-bank failures.
22
+ field :failure_code, Crystalline::Nilable.new(Models::Components::InstantBankFailureCode), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('failureCode'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::InstantBankFailureCode, true) } }
23
+
24
+ field :end_to_end_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('endToEndID') } }
21
25
 
22
26
  field :initiated_on, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('initiatedOn'), 'decoder': ::Moov::Utils.datetime_from_iso_format(true) } }
23
27
 
@@ -27,11 +31,13 @@ module Moov
27
31
 
28
32
  field :accepted_without_posting_on, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('acceptedWithoutPostingOn'), 'decoder': ::Moov::Utils.datetime_from_iso_format(true) } }
29
33
 
30
- sig { params(status: T.nilable(Models::Components::RTPTransactionStatus), network_response_code: T.nilable(::String), failure_code: T.nilable(Models::Components::RTPFailureCode), initiated_on: T.nilable(::DateTime), completed_on: T.nilable(::DateTime), failed_on: T.nilable(::DateTime), accepted_without_posting_on: T.nilable(::DateTime)).void }
31
- def initialize(status: nil, network_response_code: nil, failure_code: nil, initiated_on: nil, completed_on: nil, failed_on: nil, accepted_without_posting_on: nil)
34
+ sig { params(network: Models::Components::InstantBankNetwork, status: Models::Components::InstantBankTransactionStatus, network_response_code: T.nilable(::String), failure_code: T.nilable(Models::Components::InstantBankFailureCode), end_to_end_id: T.nilable(::String), initiated_on: T.nilable(::DateTime), completed_on: T.nilable(::DateTime), failed_on: T.nilable(::DateTime), accepted_without_posting_on: T.nilable(::DateTime)).void }
35
+ def initialize(network:, status:, network_response_code: nil, failure_code: nil, end_to_end_id: nil, initiated_on: nil, completed_on: nil, failed_on: nil, accepted_without_posting_on: nil)
36
+ @network = network
32
37
  @status = status
33
38
  @network_response_code = network_response_code
34
39
  @failure_code = failure_code
40
+ @end_to_end_id = end_to_end_id
35
41
  @initiated_on = initiated_on
36
42
  @completed_on = completed_on
37
43
  @failed_on = failed_on
@@ -41,9 +47,11 @@ module Moov
41
47
  sig { params(other: T.untyped).returns(T::Boolean) }
42
48
  def ==(other)
43
49
  return false unless other.is_a? self.class
50
+ return false unless @network == other.network
44
51
  return false unless @status == other.status
45
52
  return false unless @network_response_code == other.network_response_code
46
53
  return false unless @failure_code == other.failure_code
54
+ return false unless @end_to_end_id == other.end_to_end_id
47
55
  return false unless @initiated_on == other.initiated_on
48
56
  return false unless @completed_on == other.completed_on
49
57
  return false unless @failed_on == other.failed_on
@@ -2,18 +2,22 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
 
5
- class Moov::Models::Components::RTPTransactionDetails
5
+ class Moov::Models::Components::InstantBankTransactionDetails
6
6
  extend ::Crystalline::MetadataFields::ClassMethods
7
7
  end
8
8
 
9
9
 
10
- class Moov::Models::Components::RTPTransactionDetails
10
+ class Moov::Models::Components::InstantBankTransactionDetails
11
+ def network(); end
12
+ def network=(str_); end
11
13
  def status(); end
12
14
  def status=(str_); end
13
15
  def network_response_code(); end
14
16
  def network_response_code=(str_); end
15
17
  def failure_code(); end
16
18
  def failure_code=(str_); end
19
+ def end_to_end_id(); end
20
+ def end_to_end_id=(str_); end
17
21
  def initiated_on(); end
18
22
  def initiated_on=(str_); end
19
23
  def completed_on(); end
@@ -7,8 +7,8 @@
7
7
  module Moov
8
8
  module Models
9
9
  module Components
10
- # RTPTransactionStatus - Status of a transaction within the RTP lifecycle.
11
- class RTPTransactionStatus < T::Enum
10
+ # InstantBankTransactionStatus - Status of a transaction within the instant-bank lifecycle.
11
+ class InstantBankTransactionStatus < T::Enum
12
12
  enums do
13
13
  INITIATED = new('initiated')
14
14
  COMPLETED = new('completed')
@@ -0,0 +1,11 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::InstantBankTransactionStatus
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::InstantBankTransactionStatus
11
+ end
@@ -18,6 +18,10 @@ module Moov
18
18
  field :invoice_number, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('invoiceNumber'), required: true } }
19
19
  # A unique identifier for a Moov resource. Supports UUID format (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) or typed format with base32-encoded UUID and type suffix (e.g., kuoaydiojf7uszaokc2ggnaaaa_xfer).
20
20
  field :customer_account_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('customerAccountID'), required: true } }
21
+ # Display name of the customer account.
22
+ field :customer_display_name, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('customerDisplayName'), required: true } }
23
+ # Email address of the customer account.
24
+ field :customer_email, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('customerEmail'), required: true } }
21
25
  # A unique identifier for a Moov resource. Supports UUID format (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) or typed format with base32-encoded UUID and type suffix (e.g., kuoaydiojf7uszaokc2ggnaaaa_xfer).
22
26
  field :partner_account_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('partnerAccountID'), required: true } }
23
27
 
@@ -57,11 +61,15 @@ module Moov
57
61
 
58
62
  field :canceled_on, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('canceledOn'), 'decoder': ::Moov::Utils.datetime_from_iso_format(true) } }
59
63
 
60
- sig { params(invoice_id: ::String, invoice_number: ::String, customer_account_id: ::String, partner_account_id: ::String, status: Models::Components::InvoiceStatus, line_items: Models::Components::InvoiceLineItems, subtotal_amount: Models::Components::AmountDecimal, tax_amount: Models::Components::AmountDecimal, total_amount: Models::Components::AmountDecimal, pending_amount: Models::Components::AmountDecimal, paid_amount: Models::Components::AmountDecimal, refunded_amount: Models::Components::AmountDecimal, disputed_amount: Models::Components::AmountDecimal, created_on: ::DateTime, description: T.nilable(::String), payment_link_code: T.nilable(::String), invoice_payments: T.nilable(T::Array[Models::Components::InvoicePayment]), invoice_date: T.nilable(::DateTime), due_date: T.nilable(::DateTime), sent_on: T.nilable(::DateTime), paid_on: T.nilable(::DateTime), canceled_on: T.nilable(::DateTime)).void }
61
- def initialize(invoice_id:, invoice_number:, customer_account_id:, partner_account_id:, status:, line_items:, subtotal_amount:, tax_amount:, total_amount:, pending_amount:, paid_amount:, refunded_amount:, disputed_amount:, created_on:, description: nil, payment_link_code: nil, invoice_payments: nil, invoice_date: nil, due_date: nil, sent_on: nil, paid_on: nil, canceled_on: nil)
64
+ field :disabled_on, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('disabledOn'), 'decoder': ::Moov::Utils.datetime_from_iso_format(true) } }
65
+
66
+ sig { params(invoice_id: ::String, invoice_number: ::String, customer_account_id: ::String, customer_display_name: ::String, customer_email: ::String, partner_account_id: ::String, status: Models::Components::InvoiceStatus, line_items: Models::Components::InvoiceLineItems, subtotal_amount: Models::Components::AmountDecimal, tax_amount: Models::Components::AmountDecimal, total_amount: Models::Components::AmountDecimal, pending_amount: Models::Components::AmountDecimal, paid_amount: Models::Components::AmountDecimal, refunded_amount: Models::Components::AmountDecimal, disputed_amount: Models::Components::AmountDecimal, created_on: ::DateTime, description: T.nilable(::String), payment_link_code: T.nilable(::String), invoice_payments: T.nilable(T::Array[Models::Components::InvoicePayment]), invoice_date: T.nilable(::DateTime), due_date: T.nilable(::DateTime), sent_on: T.nilable(::DateTime), paid_on: T.nilable(::DateTime), canceled_on: T.nilable(::DateTime), disabled_on: T.nilable(::DateTime)).void }
67
+ def initialize(invoice_id:, invoice_number:, customer_account_id:, customer_display_name:, customer_email:, partner_account_id:, status:, line_items:, subtotal_amount:, tax_amount:, total_amount:, pending_amount:, paid_amount:, refunded_amount:, disputed_amount:, created_on:, description: nil, payment_link_code: nil, invoice_payments: nil, invoice_date: nil, due_date: nil, sent_on: nil, paid_on: nil, canceled_on: nil, disabled_on: nil)
62
68
  @invoice_id = invoice_id
63
69
  @invoice_number = invoice_number
64
70
  @customer_account_id = customer_account_id
71
+ @customer_display_name = customer_display_name
72
+ @customer_email = customer_email
65
73
  @partner_account_id = partner_account_id
66
74
  @status = status
67
75
  @line_items = line_items
@@ -81,6 +89,7 @@ module Moov
81
89
  @sent_on = sent_on
82
90
  @paid_on = paid_on
83
91
  @canceled_on = canceled_on
92
+ @disabled_on = disabled_on
84
93
  end
85
94
 
86
95
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -89,6 +98,8 @@ module Moov
89
98
  return false unless @invoice_id == other.invoice_id
90
99
  return false unless @invoice_number == other.invoice_number
91
100
  return false unless @customer_account_id == other.customer_account_id
101
+ return false unless @customer_display_name == other.customer_display_name
102
+ return false unless @customer_email == other.customer_email
92
103
  return false unless @partner_account_id == other.partner_account_id
93
104
  return false unless @status == other.status
94
105
  return false unless @line_items == other.line_items
@@ -108,6 +119,7 @@ module Moov
108
119
  return false unless @sent_on == other.sent_on
109
120
  return false unless @paid_on == other.paid_on
110
121
  return false unless @canceled_on == other.canceled_on
122
+ return false unless @disabled_on == other.disabled_on
111
123
  true
112
124
  end
113
125
  end
@@ -14,6 +14,10 @@ class Moov::Models::Components::Invoice
14
14
  def invoice_number=(str_); end
15
15
  def customer_account_id(); end
16
16
  def customer_account_id=(str_); end
17
+ def customer_display_name(); end
18
+ def customer_display_name=(str_); end
19
+ def customer_email(); end
20
+ def customer_email=(str_); end
17
21
  def partner_account_id(); end
18
22
  def partner_account_id=(str_); end
19
23
  def status(); end
@@ -52,4 +56,6 @@ class Moov::Models::Components::Invoice
52
56
  def paid_on=(str_); end
53
57
  def canceled_on(); end
54
58
  def canceled_on=(str_); end
59
+ def disabled_on(); end
60
+ def disabled_on=(str_); end
55
61
  end
@@ -19,7 +19,8 @@ module Moov
19
19
  # The quantity of this item.
20
20
  field :quantity, ::Integer, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('quantity'), required: true } }
21
21
  # Optional unique identifier associating the line item with a product.
22
- # This is for reporting or tracking purposes, and does not populate other details of the line item.
22
+ # When provided, images associated with the product will be included on the line item.
23
+ # This does not populate other details of the line item.
23
24
  field :product_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('productID') } }
24
25
  # Optional list of modifiers applied to this item (e.g., toppings, upgrades, customizations).
25
26
  field :options, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::InvoiceLineItemOption)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('options') } }
@@ -0,0 +1,64 @@
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 Components
10
+ # A temporary, secure link sent to a merchant to resolve account requirements such as KYC verification or document uploads.
11
+ class ResolutionLink
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # A unique nanoid identifier for the resolution link.
16
+ field :code, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('code'), required: true } }
17
+ # The ID of the merchant account this resolution link is associated with.
18
+ field :account_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('accountID'), required: true } }
19
+ # The ID of the partner account this resolution link is associated with.
20
+ field :partner_account_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('partnerAccountID'), required: true } }
21
+ # The recipient contact information for the resolution link.
22
+ field :recipient, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('recipient'), required: true } }
23
+ # The URL of the resolution link.
24
+ field :url, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('url'), required: true } }
25
+ # The date and time the resolution link was created.
26
+ field :created_on, ::DateTime, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('createdOn'), required: true, 'decoder': ::Moov::Utils.datetime_from_iso_format(false) } }
27
+ # The date and time the resolution link was last updated.
28
+ field :updated_on, ::DateTime, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('updatedOn'), required: true, 'decoder': ::Moov::Utils.datetime_from_iso_format(false) } }
29
+ # The date and time the resolution link expires.
30
+ field :expires_on, ::DateTime, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('expiresOn'), required: true, 'decoder': ::Moov::Utils.datetime_from_iso_format(false) } }
31
+ # The date and time the resolution link was disabled, if applicable.
32
+ field :disabled_on, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('disabledOn'), 'decoder': ::Moov::Utils.datetime_from_iso_format(true) } }
33
+
34
+ sig { params(code: ::String, account_id: ::String, partner_account_id: ::String, recipient: ::String, url: ::String, created_on: ::DateTime, updated_on: ::DateTime, expires_on: ::DateTime, disabled_on: T.nilable(::DateTime)).void }
35
+ def initialize(code:, account_id:, partner_account_id:, recipient:, url:, created_on:, updated_on:, expires_on:, disabled_on: nil)
36
+ @code = code
37
+ @account_id = account_id
38
+ @partner_account_id = partner_account_id
39
+ @recipient = recipient
40
+ @url = url
41
+ @created_on = created_on
42
+ @updated_on = updated_on
43
+ @expires_on = expires_on
44
+ @disabled_on = disabled_on
45
+ end
46
+
47
+ sig { params(other: T.untyped).returns(T::Boolean) }
48
+ def ==(other)
49
+ return false unless other.is_a? self.class
50
+ return false unless @code == other.code
51
+ return false unless @account_id == other.account_id
52
+ return false unless @partner_account_id == other.partner_account_id
53
+ return false unless @recipient == other.recipient
54
+ return false unless @url == other.url
55
+ return false unless @created_on == other.created_on
56
+ return false unless @updated_on == other.updated_on
57
+ return false unless @expires_on == other.expires_on
58
+ return false unless @disabled_on == other.disabled_on
59
+ true
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,29 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::ResolutionLink
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::ResolutionLink
11
+ def code(); end
12
+ def code=(str_); end
13
+ def account_id(); end
14
+ def account_id=(str_); end
15
+ def partner_account_id(); end
16
+ def partner_account_id=(str_); end
17
+ def recipient(); end
18
+ def recipient=(str_); end
19
+ def url(); end
20
+ def url=(str_); end
21
+ def created_on(); end
22
+ def created_on=(str_); end
23
+ def updated_on(); end
24
+ def updated_on=(str_); end
25
+ def expires_on(); end
26
+ def expires_on=(str_); end
27
+ def disabled_on(); end
28
+ def disabled_on=(str_); end
29
+ 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 Components
10
+ # Contact information for the recipient of a resolution link. Provide either `email` or `phone`, but not both.
11
+ class ResolutionLinkRecipient
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # The email address of the recipient.
16
+ field :email, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('email') } }
17
+ # The phone number of the recipient.
18
+ field :phone, Crystalline::Nilable.new(Models::Components::PhoneNumber), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('phone') } }
19
+
20
+ sig { params(email: T.nilable(::String), phone: T.nilable(Models::Components::PhoneNumber)).void }
21
+ def initialize(email: nil, phone: nil)
22
+ @email = email
23
+ @phone = phone
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 @email == other.email
30
+ return false unless @phone == other.phone
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::Components::ResolutionLinkRecipient
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::ResolutionLinkRecipient
11
+ def email(); end
12
+ def email=(str_); end
13
+ def phone(); end
14
+ def phone=(str_); end
15
+ end
@@ -30,11 +30,11 @@ module Moov
30
30
  field :apple_pay, Crystalline::Nilable.new(Models::Components::ApplePayResponse), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('applePay') } }
31
31
  # Card-specific details about the transaction.
32
32
  field :card_details, Crystalline::Nilable.new(Models::Components::CardTransactionDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardDetails') } }
33
- # RTP specific details about the transaction.
34
- field :rtp_details, Crystalline::Nilable.new(Models::Components::RTPTransactionDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('rtpDetails') } }
33
+ # Instant-bank specific details about the transaction.
34
+ field :instant_bank_details, Crystalline::Nilable.new(Models::Components::InstantBankTransactionDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('instantBankDetails') } }
35
35
 
36
- sig { params(payment_method_id: ::String, payment_method_type: Models::Components::TransferPaymentMethodType, account: Models::Components::TransferAccount, bank_account: T.nilable(Models::Components::TransferPaymentMethodsBankAccount), wallet: T.nilable(Models::Components::TransferPaymentMethodsWallet), card: T.nilable(Models::Components::TransferPaymentMethodsCard), ach_details: T.nilable(Models::Components::ACHTransactionDetails), apple_pay: T.nilable(Models::Components::ApplePayResponse), card_details: T.nilable(Models::Components::CardTransactionDetails), rtp_details: T.nilable(Models::Components::RTPTransactionDetails)).void }
37
- def initialize(payment_method_id:, payment_method_type:, account:, bank_account: nil, wallet: nil, card: nil, ach_details: nil, apple_pay: nil, card_details: nil, rtp_details: nil)
36
+ sig { params(payment_method_id: ::String, payment_method_type: Models::Components::TransferPaymentMethodType, account: Models::Components::TransferAccount, bank_account: T.nilable(Models::Components::TransferPaymentMethodsBankAccount), wallet: T.nilable(Models::Components::TransferPaymentMethodsWallet), card: T.nilable(Models::Components::TransferPaymentMethodsCard), ach_details: T.nilable(Models::Components::ACHTransactionDetails), apple_pay: T.nilable(Models::Components::ApplePayResponse), card_details: T.nilable(Models::Components::CardTransactionDetails), instant_bank_details: T.nilable(Models::Components::InstantBankTransactionDetails)).void }
37
+ def initialize(payment_method_id:, payment_method_type:, account:, bank_account: nil, wallet: nil, card: nil, ach_details: nil, apple_pay: nil, card_details: nil, instant_bank_details: nil)
38
38
  @payment_method_id = payment_method_id
39
39
  @payment_method_type = payment_method_type
40
40
  @account = account
@@ -44,7 +44,7 @@ module Moov
44
44
  @ach_details = ach_details
45
45
  @apple_pay = apple_pay
46
46
  @card_details = card_details
47
- @rtp_details = rtp_details
47
+ @instant_bank_details = instant_bank_details
48
48
  end
49
49
 
50
50
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -59,7 +59,7 @@ module Moov
59
59
  return false unless @ach_details == other.ach_details
60
60
  return false unless @apple_pay == other.apple_pay
61
61
  return false unless @card_details == other.card_details
62
- return false unless @rtp_details == other.rtp_details
62
+ return false unless @instant_bank_details == other.instant_bank_details
63
63
  true
64
64
  end
65
65
  end
@@ -26,6 +26,6 @@ class Moov::Models::Components::TransferDestination
26
26
  def apple_pay=(str_); end
27
27
  def card_details(); end
28
28
  def card_details=(str_); end
29
- def rtp_details(); end
30
- def rtp_details=(str_); end
29
+ def instant_bank_details(); end
30
+ def instant_bank_details=(str_); end
31
31
  end
@@ -17,7 +17,10 @@ module Moov
17
17
  # A collection of line items for an invoice.
18
18
  field :line_items, Crystalline::Nilable.new(Models::Components::CreateInvoiceLineItemsUpdate), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('lineItems') } }
19
19
  # The status can be updated to one of the following values under specific conditions:
20
- # - `canceled`: Can only be set if the current status is `draft`, `unpaid`, or `overdue`.
20
+ # - `canceled`: Can only be set if the current status is `draft`, `unpaid`, or `overdue`. Canceling an invoice
21
+ # indicates the invoice is no longer expected to be paid (e.g., the charge was waived or terms changed).
22
+ # Canceled invoices still appear in list results by default and remain part of the invoice history.
23
+ # To completely discard an invoice created by mistake, use the delete endpoint instead.
21
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.
22
25
  field :status, Crystalline::Nilable.new(Models::Components::InvoiceStatus), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::InvoiceStatus, true) } }
23
26
 
@@ -201,6 +201,7 @@ module Moov
201
201
  autoload :CreateRefund, 'moov/models/components/createrefund.rb'
202
202
  autoload :CreateRefundResponse, 'moov/models/components/createrefundresponse.rb'
203
203
  autoload :CreateRepresentative, 'moov/models/components/createrepresentative.rb'
204
+ autoload :CreateResolutionLink, 'moov/models/components/createresolutionlink.rb'
204
205
  autoload :CreateReversal, 'moov/models/components/createreversal.rb'
205
206
  autoload :CreateRunTransfer, 'moov/models/components/createruntransfer.rb'
206
207
  autoload :CreateScheduledTransferLineItem, 'moov/models/components/createscheduledtransferlineitem.rb'
@@ -305,6 +306,10 @@ module Moov
305
306
  autoload :InstantBankCreditPaymentMethodPaymentMethodType, 'moov/models/components/instantbankcreditpaymentmethod_paymentmethodtype.rb'
306
307
  autoload :InstantBankCreditTransferPaymentMethod, 'moov/models/components/instantbankcredittransferpaymentmethod.rb'
307
308
  autoload :InstantBankCreditTransferPaymentMethodPaymentMethodType, 'moov/models/components/instantbankcredittransferpaymentmethod_paymentmethodtype.rb'
309
+ autoload :InstantBankFailureCode, 'moov/models/components/instantbankfailurecode.rb'
310
+ autoload :InstantBankNetwork, 'moov/models/components/instantbanknetwork.rb'
311
+ autoload :InstantBankTransactionDetails, 'moov/models/components/instantbanktransactiondetails.rb'
312
+ autoload :InstantBankTransactionStatus, 'moov/models/components/instantbanktransactionstatus.rb'
308
313
  autoload :InstantPaymentFees, 'moov/models/components/instantpaymentfees.rb'
309
314
  autoload :InstitutionsSearchResponse, 'moov/models/components/institutionssearchresponse.rb'
310
315
  autoload :Invoice, 'moov/models/components/invoice.rb'
@@ -437,12 +442,9 @@ module Moov
437
442
  autoload :PushToCardTransferPaymentMethod, 'moov/models/components/pushtocardtransferpaymentmethod.rb'
438
443
  autoload :PushToCardTransferPaymentMethodPaymentMethodType, 'moov/models/components/pushtocardtransferpaymentmethod_paymentmethodtype.rb'
439
444
  autoload :QRCode, 'moov/models/components/qrcode.rb'
440
- autoload :RTPFailureCode, 'moov/models/components/rtpfailurecode.rb'
441
445
  autoload :RTPInstitution, 'moov/models/components/rtpinstitution.rb'
442
446
  autoload :RTPRejectionCode, 'moov/models/components/rtprejectioncode.rb'
443
447
  autoload :RTPServices, 'moov/models/components/rtpservices.rb'
444
- autoload :RTPTransactionDetails, 'moov/models/components/rtptransactiondetails.rb'
445
- autoload :RTPTransactionStatus, 'moov/models/components/rtptransactionstatus.rb'
446
448
  autoload :ReceiptKind, 'moov/models/components/receiptkind.rb'
447
449
  autoload :ReceiptRequest, 'moov/models/components/receiptrequest.rb'
448
450
  autoload :ReceiptResponse, 'moov/models/components/receiptresponse.rb'
@@ -462,6 +464,8 @@ module Moov
462
464
  autoload :RequirementErrorCode, 'moov/models/components/requirementerrorcode.rb'
463
465
  autoload :RequirementID, 'moov/models/components/requirementid.rb'
464
466
  autoload :Residual, 'moov/models/components/residual.rb'
467
+ autoload :ResolutionLink, 'moov/models/components/resolutionlink.rb'
468
+ autoload :ResolutionLinkRecipient, 'moov/models/components/resolutionlinkrecipient.rb'
465
469
  autoload :ReturnPolicyType, 'moov/models/components/returnpolicytype.rb'
466
470
  autoload :Reversal, 'moov/models/components/reversal.rb'
467
471
  autoload :ReversedWithCancellation, 'moov/models/components/reversedwithcancellation.rb'
@@ -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 Errors
10
+ # Describes validation errors for the create resolution link request.
11
+ class CreateResolutionLinkError < StandardError
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # An error with the recipient email address.
16
+ field :email, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('email') } }
17
+ # An error with the recipient phone number.
18
+ field :phone, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('phone') } }
19
+ # Raw HTTP response; suitable for custom response parsing
20
+ field :raw_response, Crystalline::Nilable.new(::Faraday::Response), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('-') } }
21
+
22
+ sig { params(email: T.nilable(::String), phone: T.nilable(::String), raw_response: T.nilable(::Faraday::Response)).void }
23
+ def initialize(email: nil, phone: nil, raw_response: nil)
24
+ @email = email
25
+ @phone = phone
26
+ @raw_response = raw_response
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 @email == other.email
33
+ return false unless @phone == other.phone
34
+ return false unless @raw_response == other.raw_response
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::Errors::CreateResolutionLinkError
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Errors::CreateResolutionLinkError
11
+ def email(); end
12
+ def email=(str_); end
13
+ def phone(); end
14
+ def phone=(str_); end
15
+ def raw_response(); end
16
+ def raw_response=(str_); end
17
+ end
@@ -19,6 +19,7 @@ module Moov
19
19
  autoload :CreateInvoiceError, 'moov/models/errors/createinvoiceerror.rb'
20
20
  autoload :CreateInvoicePaymentError, 'moov/models/errors/createinvoicepaymenterror.rb'
21
21
  autoload :CreatePaymentLinkError, 'moov/models/errors/createpaymentlinkerror.rb'
22
+ autoload :CreateResolutionLinkError, 'moov/models/errors/createresolutionlinkerror.rb'
22
23
  autoload :CreateSweepConfigError, 'moov/models/errors/createsweepconfigerror.rb'
23
24
  autoload :CreateTicketError, 'moov/models/errors/createticketerror.rb'
24
25
  autoload :CreateWalletValidationError, 'moov/models/errors/createwalletvalidationerror.rb'