moov_ruby 0.0.0.pre.dev.4 → 0.0.0.pre.dev.6

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 (93) 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/invoice.rb +14 -2
  31. data/lib/moov/models/components/invoice.rbi +6 -0
  32. data/lib/moov/models/components/invoicelineitem.rb +2 -1
  33. data/lib/moov/models/components/resolutionlink.rb +64 -0
  34. data/lib/moov/models/components/resolutionlink.rbi +29 -0
  35. data/lib/moov/models/components/resolutionlinkrecipient.rb +36 -0
  36. data/lib/moov/models/components/resolutionlinkrecipient.rbi +15 -0
  37. data/lib/moov/models/components/transferdestination.rb +2 -6
  38. data/lib/moov/models/components/transferdestination.rbi +0 -2
  39. data/lib/moov/models/components/updateinvoice.rb +4 -1
  40. data/lib/moov/models/components.rb +3 -3
  41. data/lib/moov/models/errors/createresolutionlinkerror.rb +40 -0
  42. data/lib/moov/models/errors/createresolutionlinkerror.rbi +17 -0
  43. data/lib/moov/models/errors.rb +1 -0
  44. data/lib/moov/models/operations/createresolutionlink_request.rb +49 -0
  45. data/lib/moov/models/operations/createresolutionlink_request.rbi +17 -0
  46. data/lib/moov/models/operations/createresolutionlink_response.rb +48 -0
  47. data/lib/moov/models/operations/createresolutionlink_response.rbi +21 -0
  48. data/lib/moov/models/operations/deleteinvoice_request.rb +49 -0
  49. data/lib/moov/models/operations/deleteinvoice_request.rbi +17 -0
  50. data/lib/moov/models/operations/deleteinvoice_response.rb +44 -0
  51. data/lib/moov/models/operations/deleteinvoice_response.rbi +19 -0
  52. data/lib/moov/models/operations/disableresolutionlink_request.rb +49 -0
  53. data/lib/moov/models/operations/disableresolutionlink_request.rbi +17 -0
  54. data/lib/moov/models/operations/disableresolutionlink_response.rb +44 -0
  55. data/lib/moov/models/operations/disableresolutionlink_response.rbi +19 -0
  56. data/lib/moov/models/operations/getresolutionlink_request.rb +49 -0
  57. data/lib/moov/models/operations/getresolutionlink_request.rbi +17 -0
  58. data/lib/moov/models/operations/getresolutionlink_response.rb +48 -0
  59. data/lib/moov/models/operations/getresolutionlink_response.rbi +21 -0
  60. data/lib/moov/models/operations/listresolutionlinks_request.rb +45 -0
  61. data/lib/moov/models/operations/listresolutionlinks_request.rbi +15 -0
  62. data/lib/moov/models/operations/listresolutionlinks_response.rb +48 -0
  63. data/lib/moov/models/operations/listresolutionlinks_response.rbi +21 -0
  64. data/lib/moov/models/operations.rb +10 -0
  65. data/lib/moov/onboarding.rb +23 -9
  66. data/lib/moov/payment_links.rb +33 -13
  67. data/lib/moov/payment_methods.rb +13 -5
  68. data/lib/moov/ping.rb +8 -3
  69. data/lib/moov/products.rb +28 -11
  70. data/lib/moov/receipts.rb +13 -5
  71. data/lib/moov/representatives.rb +28 -11
  72. data/lib/moov/resolution_links.rb +592 -0
  73. data/lib/moov/scheduling.rb +33 -13
  74. data/lib/moov/sdk_hooks/moov_version.rb +6 -7
  75. data/lib/moov/sdk_hooks/registration.rb +1 -1
  76. data/lib/moov/sdkconfiguration.rb +3 -3
  77. data/lib/moov/statements.rb +13 -5
  78. data/lib/moov/support.rb +28 -11
  79. data/lib/moov/sweeps.rb +33 -13
  80. data/lib/moov/terminal_applications.rb +28 -11
  81. data/lib/moov/transfers.rb +58 -23
  82. data/lib/moov/underwriting.rb +18 -7
  83. data/lib/moov/wallet_transactions.rb +13 -5
  84. data/lib/moov/wallets.rb +23 -9
  85. data/lib/moov/webhooks.rb +43 -17
  86. data/lib/moov_ruby.rb +1 -0
  87. metadata +31 -8
  88. data/lib/moov/models/components/rtpfailurecode.rb +0 -27
  89. data/lib/moov/models/components/rtpfailurecode.rbi +0 -11
  90. data/lib/moov/models/components/rtptransactiondetails.rb +0 -56
  91. data/lib/moov/models/components/rtptransactiondetails.rbi +0 -25
  92. data/lib/moov/models/components/rtptransactionstatus.rb +0 -21
  93. 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
@@ -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,13 +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') } }
35
33
  # Instant-bank specific details about the transaction.
36
34
  field :instant_bank_details, Crystalline::Nilable.new(Models::Components::InstantBankTransactionDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('instantBankDetails') } }
37
35
 
38
- 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), instant_bank_details: T.nilable(Models::Components::InstantBankTransactionDetails)).void }
39
- 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, instant_bank_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)
40
38
  @payment_method_id = payment_method_id
41
39
  @payment_method_type = payment_method_type
42
40
  @account = account
@@ -46,7 +44,6 @@ module Moov
46
44
  @ach_details = ach_details
47
45
  @apple_pay = apple_pay
48
46
  @card_details = card_details
49
- @rtp_details = rtp_details
50
47
  @instant_bank_details = instant_bank_details
51
48
  end
52
49
 
@@ -62,7 +59,6 @@ module Moov
62
59
  return false unless @ach_details == other.ach_details
63
60
  return false unless @apple_pay == other.apple_pay
64
61
  return false unless @card_details == other.card_details
65
- return false unless @rtp_details == other.rtp_details
66
62
  return false unless @instant_bank_details == other.instant_bank_details
67
63
  true
68
64
  end
@@ -26,8 +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
31
29
  def instant_bank_details(); end
32
30
  def instant_bank_details=(str_); end
33
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'
@@ -441,12 +442,9 @@ module Moov
441
442
  autoload :PushToCardTransferPaymentMethod, 'moov/models/components/pushtocardtransferpaymentmethod.rb'
442
443
  autoload :PushToCardTransferPaymentMethodPaymentMethodType, 'moov/models/components/pushtocardtransferpaymentmethod_paymentmethodtype.rb'
443
444
  autoload :QRCode, 'moov/models/components/qrcode.rb'
444
- autoload :RTPFailureCode, 'moov/models/components/rtpfailurecode.rb'
445
445
  autoload :RTPInstitution, 'moov/models/components/rtpinstitution.rb'
446
446
  autoload :RTPRejectionCode, 'moov/models/components/rtprejectioncode.rb'
447
447
  autoload :RTPServices, 'moov/models/components/rtpservices.rb'
448
- autoload :RTPTransactionDetails, 'moov/models/components/rtptransactiondetails.rb'
449
- autoload :RTPTransactionStatus, 'moov/models/components/rtptransactionstatus.rb'
450
448
  autoload :ReceiptKind, 'moov/models/components/receiptkind.rb'
451
449
  autoload :ReceiptRequest, 'moov/models/components/receiptrequest.rb'
452
450
  autoload :ReceiptResponse, 'moov/models/components/receiptresponse.rb'
@@ -466,6 +464,8 @@ module Moov
466
464
  autoload :RequirementErrorCode, 'moov/models/components/requirementerrorcode.rb'
467
465
  autoload :RequirementID, 'moov/models/components/requirementid.rb'
468
466
  autoload :Residual, 'moov/models/components/residual.rb'
467
+ autoload :ResolutionLink, 'moov/models/components/resolutionlink.rb'
468
+ autoload :ResolutionLinkRecipient, 'moov/models/components/resolutionlinkrecipient.rb'
469
469
  autoload :ReturnPolicyType, 'moov/models/components/returnpolicytype.rb'
470
470
  autoload :Reversal, 'moov/models/components/reversal.rb'
471
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'
@@ -0,0 +1,49 @@
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 CreateResolutionLinkRequest
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 :create_resolution_link, Models::Components::CreateResolutionLink, { 'request': { 'media_type': 'application/json' } }
19
+ # Specify an API version.
20
+ #
21
+ # API versioning follows the format `vYYYY.QQ.BB`, where
22
+ # - `YYYY` is the year
23
+ # - `QQ` is the two-digit month for the first month of the quarter (e.g., 01, 04, 07, 10)
24
+ # - `BB` is the build number, starting at `.01`, for subsequent builds in the same quarter.
25
+ # - For example, `v2024.01.00` is the initial release of the first quarter of 2024.
26
+ #
27
+ # The `dev` version represents the most recent development state. It may include breaking changes and should be treated as a beta release.
28
+ # When no version is specified, the API defaults to `v2024.01.00`.
29
+ field :x_moov_version, Crystalline::Nilable.new(::String), { 'header': { 'field_name': 'X-Moov-Version', 'style': 'simple', 'explode': false } }
30
+
31
+ sig { params(account_id: ::String, create_resolution_link: Models::Components::CreateResolutionLink, x_moov_version: T.nilable(::String)).void }
32
+ def initialize(account_id:, create_resolution_link:, x_moov_version: nil)
33
+ @account_id = account_id
34
+ @create_resolution_link = create_resolution_link
35
+ @x_moov_version = x_moov_version
36
+ end
37
+
38
+ sig { params(other: T.untyped).returns(T::Boolean) }
39
+ def ==(other)
40
+ return false unless other.is_a? self.class
41
+ return false unless @account_id == other.account_id
42
+ return false unless @create_resolution_link == other.create_resolution_link
43
+ return false unless @x_moov_version == other.x_moov_version
44
+ true
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,17 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Operations::CreateResolutionLinkRequest
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Operations::CreateResolutionLinkRequest
11
+ def account_id(); end
12
+ def account_id=(str_); end
13
+ def create_resolution_link(); end
14
+ def create_resolution_link=(str_); end
15
+ def x_moov_version(); end
16
+ def x_moov_version=(str_); end
17
+ end
@@ -0,0 +1,48 @@
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 CreateResolutionLinkResponse
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
+ # The request completed successfully.
24
+ field :resolution_link, Crystalline::Nilable.new(Models::Components::ResolutionLink)
25
+
26
+ sig { params(content_type: ::String, status_code: ::Integer, raw_response: ::Faraday::Response, headers: T::Hash[Symbol, T::Array[::String]], resolution_link: T.nilable(Models::Components::ResolutionLink)).void }
27
+ def initialize(content_type:, status_code:, raw_response:, headers:, resolution_link: nil)
28
+ @content_type = content_type
29
+ @status_code = status_code
30
+ @raw_response = raw_response
31
+ @headers = headers
32
+ @resolution_link = resolution_link
33
+ end
34
+
35
+ sig { params(other: T.untyped).returns(T::Boolean) }
36
+ def ==(other)
37
+ return false unless other.is_a? self.class
38
+ return false unless @content_type == other.content_type
39
+ return false unless @status_code == other.status_code
40
+ return false unless @raw_response == other.raw_response
41
+ return false unless @headers == other.headers
42
+ return false unless @resolution_link == other.resolution_link
43
+ true
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,21 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Operations::CreateResolutionLinkResponse
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Operations::CreateResolutionLinkResponse
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
+ def resolution_link(); end
20
+ def resolution_link=(str_); end
21
+ end
@@ -0,0 +1,49 @@
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 DeleteInvoiceRequest
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
+ # Specify an API version.
20
+ #
21
+ # API versioning follows the format `vYYYY.QQ.BB`, where
22
+ # - `YYYY` is the year
23
+ # - `QQ` is the two-digit month for the first month of the quarter (e.g., 01, 04, 07, 10)
24
+ # - `BB` is the build number, starting at `.01`, for subsequent builds in the same quarter.
25
+ # - For example, `v2024.01.00` is the initial release of the first quarter of 2024.
26
+ #
27
+ # The `dev` version represents the most recent development state. It may include breaking changes and should be treated as a beta release.
28
+ # When no version is specified, the API defaults to `v2024.01.00`.
29
+ field :x_moov_version, Crystalline::Nilable.new(::String), { 'header': { 'field_name': 'X-Moov-Version', 'style': 'simple', 'explode': false } }
30
+
31
+ sig { params(account_id: ::String, invoice_id: ::String, x_moov_version: T.nilable(::String)).void }
32
+ def initialize(account_id:, invoice_id:, x_moov_version: nil)
33
+ @account_id = account_id
34
+ @invoice_id = invoice_id
35
+ @x_moov_version = x_moov_version
36
+ end
37
+
38
+ sig { params(other: T.untyped).returns(T::Boolean) }
39
+ def ==(other)
40
+ return false unless other.is_a? self.class
41
+ return false unless @account_id == other.account_id
42
+ return false unless @invoice_id == other.invoice_id
43
+ return false unless @x_moov_version == other.x_moov_version
44
+ true
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,17 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Operations::DeleteInvoiceRequest
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Operations::DeleteInvoiceRequest
11
+ def account_id(); end
12
+ def account_id=(str_); end
13
+ def invoice_id(); end
14
+ def invoice_id=(str_); end
15
+ def x_moov_version(); end
16
+ def x_moov_version=(str_); end
17
+ end