moov_ruby 26.2.7 → 26.2.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 (90) hide show
  1. checksums.yaml +4 -4
  2. data/lib/moov/account_terminal_applications.rb +16 -16
  3. data/lib/moov/accounts.rb +52 -54
  4. data/lib/moov/adjustments.rb +8 -8
  5. data/lib/moov/apple_pay.rb +20 -20
  6. data/lib/moov/authentication.rb +8 -8
  7. data/lib/moov/avatars.rb +4 -4
  8. data/lib/moov/bank_accounts.rb +36 -36
  9. data/lib/moov/branding.rb +12 -12
  10. data/lib/moov/capabilities.rb +20 -20
  11. data/lib/moov/card_issuing.rb +25 -25
  12. data/lib/moov/cards.rb +20 -20
  13. data/lib/moov/disputes.rb +44 -44
  14. data/lib/moov/end_to_end_encryption.rb +8 -8
  15. data/lib/moov/enriched_address.rb +4 -4
  16. data/lib/moov/enriched_profile.rb +4 -4
  17. data/lib/moov/fee_plans.rb +40 -40
  18. data/lib/moov/files.rb +12 -12
  19. data/lib/moov/images.rb +28 -28
  20. data/lib/moov/industries.rb +4 -4
  21. data/lib/moov/institutions.rb +8 -8
  22. data/lib/moov/issuing_transactions.rb +20 -20
  23. data/lib/moov/models/components/addcapabilities.rb +5 -1
  24. data/lib/moov/models/components/billingaddress.rb +52 -0
  25. data/lib/moov/models/components/billingaddress.rbi +23 -0
  26. data/lib/moov/models/components/capability.rb +7 -1
  27. data/lib/moov/models/components/capabilityid.rb +7 -1
  28. data/lib/moov/models/components/createaccount.rb +5 -1
  29. data/lib/moov/models/components/createpaymentlink.rb +4 -4
  30. data/lib/moov/models/components/fullissuedcard.rb +22 -10
  31. data/lib/moov/models/components/fullissuedcard.rbi +10 -4
  32. data/lib/moov/models/components/issuedcard.rb +22 -10
  33. data/lib/moov/models/components/issuedcard.rbi +10 -4
  34. data/lib/moov/models/components/onboardinginvite.rb +1 -1
  35. data/lib/moov/models/components/onboardinginviterequest.rb +1 -1
  36. data/lib/moov/models/components/paymentlink.rb +3 -3
  37. data/lib/moov/models/components/requestcard.rb +17 -17
  38. data/lib/moov/models/components/requestcard.rbi +8 -8
  39. data/lib/moov/models/components/updateissuedcard.rb +13 -9
  40. data/lib/moov/models/components/updateissuedcard.rbi +6 -4
  41. data/lib/moov/models/components/webhookdataauthorizationexpiring.rb +44 -0
  42. data/lib/moov/models/components/webhookdataauthorizationexpiring.rbi +19 -0
  43. data/lib/moov/models/components/webhookdatacapabilityrequested.rb +7 -1
  44. data/lib/moov/models/components/webhookdatacapabilityupdated.rb +7 -1
  45. data/lib/moov/models/components/webhookdatasweepcreated.rb +6 -2
  46. data/lib/moov/models/components/webhookdatasweepcreated.rbi +2 -0
  47. data/lib/moov/models/components/webhookdatasweepupdated.rb +6 -2
  48. data/lib/moov/models/components/webhookdatasweepupdated.rbi +2 -0
  49. data/lib/moov/models/components/webhookevent.rb +2 -2
  50. data/lib/moov/models/components/webhookeventtype.rb +1 -0
  51. data/lib/moov/models/components.rb +2 -4
  52. data/lib/moov/models/errors/requestcarderror.rb +14 -14
  53. data/lib/moov/models/errors/requestcarderror.rbi +8 -8
  54. data/lib/moov/models/errors/updateissuedcarderror.rb +12 -8
  55. data/lib/moov/models/errors/updateissuedcarderror.rbi +6 -4
  56. data/lib/moov/models/operations/disablecapability_request.rb +7 -1
  57. data/lib/moov/models/operations/getcapability_request.rb +7 -1
  58. data/lib/moov/models/operations/listcancellations_request.rb +36 -0
  59. data/lib/moov/models/operations/listcancellations_request.rbi +15 -0
  60. data/lib/moov/models/operations/listcancellations_response.rb +48 -0
  61. data/lib/moov/models/operations/listcancellations_response.rbi +21 -0
  62. data/lib/moov/models/operations.rb +2 -0
  63. data/lib/moov/onboarding.rb +16 -16
  64. data/lib/moov/payment_links.rb +24 -24
  65. data/lib/moov/payment_methods.rb +8 -8
  66. data/lib/moov/ping.rb +4 -4
  67. data/lib/moov/products.rb +20 -20
  68. data/lib/moov/receipts.rb +8 -8
  69. data/lib/moov/representatives.rb +20 -20
  70. data/lib/moov/scheduling.rb +24 -24
  71. data/lib/moov/sdkconfiguration.rb +3 -3
  72. data/lib/moov/statements.rb +8 -8
  73. data/lib/moov/support.rb +20 -20
  74. data/lib/moov/sweeps.rb +24 -24
  75. data/lib/moov/terminal_applications.rb +20 -20
  76. data/lib/moov/transfers.rb +171 -48
  77. data/lib/moov/underwriting.rb +12 -12
  78. data/lib/moov/utils/retries.rb +4 -1
  79. data/lib/moov/wallet_transactions.rb +8 -8
  80. data/lib/moov/wallets.rb +16 -16
  81. data/lib/moov/webhooks.rb +32 -32
  82. metadata +10 -10
  83. data/lib/moov/models/components/authorizeduser.rb +0 -36
  84. data/lib/moov/models/components/authorizeduser.rbi +0 -15
  85. data/lib/moov/models/components/createauthorizeduser.rb +0 -40
  86. data/lib/moov/models/components/createauthorizeduser.rbi +0 -17
  87. data/lib/moov/models/components/createauthorizedusererror.rb +0 -40
  88. data/lib/moov/models/components/createauthorizedusererror.rbi +0 -17
  89. data/lib/moov/models/components/createauthorizeduserupdate.rb +0 -40
  90. data/lib/moov/models/components/createauthorizeduserupdate.rbi +0 -17
@@ -69,7 +69,7 @@ module Moov
69
69
 
70
70
  timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
71
71
  timeout ||= @sdk_configuration.timeout
72
-
72
+
73
73
 
74
74
  connection = @sdk_configuration.client
75
75
 
@@ -84,7 +84,7 @@ module Moov
84
84
  error = T.let(nil, T.nilable(StandardError))
85
85
  http_response = T.let(nil, T.nilable(Faraday::Response))
86
86
 
87
-
87
+
88
88
  begin
89
89
  http_response = T.must(connection).get(url) do |req|
90
90
  req.headers.merge!(headers)
@@ -121,13 +121,13 @@ module Moov
121
121
  response: http_response
122
122
  )
123
123
  end
124
-
124
+
125
125
  if http_response.nil?
126
126
  raise error if !error.nil?
127
127
  raise 'no response'
128
128
  end
129
129
  end
130
-
130
+
131
131
  content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
132
132
  if Utils.match_status_code(http_response.status, ['200'])
133
133
  if Utils.match_content_type(content_type, 'application/json')
@@ -195,7 +195,7 @@ module Moov
195
195
 
196
196
  timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
197
197
  timeout ||= @sdk_configuration.timeout
198
-
198
+
199
199
 
200
200
  connection = @sdk_configuration.client
201
201
 
@@ -210,7 +210,7 @@ module Moov
210
210
  error = T.let(nil, T.nilable(StandardError))
211
211
  http_response = T.let(nil, T.nilable(Faraday::Response))
212
212
 
213
-
213
+
214
214
  begin
215
215
  http_response = T.must(connection).get(url) do |req|
216
216
  req.headers.merge!(headers)
@@ -247,13 +247,13 @@ module Moov
247
247
  response: http_response
248
248
  )
249
249
  end
250
-
250
+
251
251
  if http_response.nil?
252
252
  raise error if !error.nil?
253
253
  raise 'no response'
254
254
  end
255
255
  end
256
-
256
+
257
257
  content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
258
258
  if Utils.match_status_code(http_response.status, ['200'])
259
259
  if Utils.match_content_type(content_type, 'application/json')
@@ -65,7 +65,7 @@ module Moov
65
65
 
66
66
  timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
67
67
  timeout ||= @sdk_configuration.timeout
68
-
68
+
69
69
 
70
70
  connection = @sdk_configuration.client
71
71
 
@@ -80,7 +80,7 @@ module Moov
80
80
  error = T.let(nil, T.nilable(StandardError))
81
81
  http_response = T.let(nil, T.nilable(Faraday::Response))
82
82
 
83
-
83
+
84
84
  begin
85
85
  http_response = T.must(connection).get(url) do |req|
86
86
  req.headers.merge!(headers)
@@ -117,13 +117,13 @@ module Moov
117
117
  response: http_response
118
118
  )
119
119
  end
120
-
120
+
121
121
  if http_response.nil?
122
122
  raise error if !error.nil?
123
123
  raise 'no response'
124
124
  end
125
125
  end
126
-
126
+
127
127
  content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
128
128
  if Utils.match_status_code(http_response.status, ['200'])
129
129
  if Utils.match_content_type(content_type, 'application/json')
@@ -189,7 +189,7 @@ module Moov
189
189
 
190
190
  timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
191
191
  timeout ||= @sdk_configuration.timeout
192
-
192
+
193
193
 
194
194
  connection = @sdk_configuration.client
195
195
 
@@ -204,7 +204,7 @@ module Moov
204
204
  error = T.let(nil, T.nilable(StandardError))
205
205
  http_response = T.let(nil, T.nilable(Faraday::Response))
206
206
 
207
-
207
+
208
208
  begin
209
209
  http_response = T.must(connection).get(url) do |req|
210
210
  req.headers.merge!(headers)
@@ -240,13 +240,13 @@ module Moov
240
240
  response: http_response
241
241
  )
242
242
  end
243
-
243
+
244
244
  if http_response.nil?
245
245
  raise error if !error.nil?
246
246
  raise 'no response'
247
247
  end
248
248
  end
249
-
249
+
250
250
  content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
251
251
  if Utils.match_status_code(http_response.status, ['200'])
252
252
  if Utils.match_content_type(content_type, 'application/json')
@@ -315,7 +315,7 @@ module Moov
315
315
 
316
316
  timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
317
317
  timeout ||= @sdk_configuration.timeout
318
-
318
+
319
319
 
320
320
  connection = @sdk_configuration.client
321
321
 
@@ -330,7 +330,7 @@ module Moov
330
330
  error = T.let(nil, T.nilable(StandardError))
331
331
  http_response = T.let(nil, T.nilable(Faraday::Response))
332
332
 
333
-
333
+
334
334
  begin
335
335
  http_response = T.must(connection).get(url) do |req|
336
336
  req.headers.merge!(headers)
@@ -367,13 +367,13 @@ module Moov
367
367
  response: http_response
368
368
  )
369
369
  end
370
-
370
+
371
371
  if http_response.nil?
372
372
  raise error if !error.nil?
373
373
  raise 'no response'
374
374
  end
375
375
  end
376
-
376
+
377
377
  content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
378
378
  if Utils.match_status_code(http_response.status, ['200'])
379
379
  if Utils.match_content_type(content_type, 'application/json')
@@ -436,7 +436,7 @@ module Moov
436
436
 
437
437
  timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
438
438
  timeout ||= @sdk_configuration.timeout
439
-
439
+
440
440
 
441
441
  connection = @sdk_configuration.client
442
442
 
@@ -451,7 +451,7 @@ module Moov
451
451
  error = T.let(nil, T.nilable(StandardError))
452
452
  http_response = T.let(nil, T.nilable(Faraday::Response))
453
453
 
454
-
454
+
455
455
  begin
456
456
  http_response = T.must(connection).get(url) do |req|
457
457
  req.headers.merge!(headers)
@@ -488,13 +488,13 @@ module Moov
488
488
  response: http_response
489
489
  )
490
490
  end
491
-
491
+
492
492
  if http_response.nil?
493
493
  raise error if !error.nil?
494
494
  raise 'no response'
495
495
  end
496
496
  end
497
-
497
+
498
498
  content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
499
499
  if Utils.match_status_code(http_response.status, ['200'])
500
500
  if Utils.match_content_type(content_type, 'application/json')
@@ -560,7 +560,7 @@ module Moov
560
560
 
561
561
  timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
562
562
  timeout ||= @sdk_configuration.timeout
563
-
563
+
564
564
 
565
565
  connection = @sdk_configuration.client
566
566
 
@@ -575,7 +575,7 @@ module Moov
575
575
  error = T.let(nil, T.nilable(StandardError))
576
576
  http_response = T.let(nil, T.nilable(Faraday::Response))
577
577
 
578
-
578
+
579
579
  begin
580
580
  http_response = T.must(connection).get(url) do |req|
581
581
  req.headers.merge!(headers)
@@ -611,13 +611,13 @@ module Moov
611
611
  response: http_response
612
612
  )
613
613
  end
614
-
614
+
615
615
  if http_response.nil?
616
616
  raise error if !error.nil?
617
617
  raise 'no response'
618
618
  end
619
619
  end
620
-
620
+
621
621
  content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
622
622
  if Utils.match_status_code(http_response.status, ['200'])
623
623
  if Utils.match_content_type(content_type, 'application/json')
@@ -12,7 +12,11 @@ module Moov
12
12
  extend T::Sig
13
13
  include Crystalline::MetadataFields
14
14
 
15
-
15
+ # Capabilities to request for the account. Request granular capability IDs that match your use case.
16
+ #
17
+ # Read our [capabilities reference](https://docs.moov.io/guides/accounts/capabilities/reference/) to choose the right capabilities for your integration.
18
+ #
19
+ # The `send-funds`, `collect-funds`, and `wallet` capability IDs are deprecated. Use granular values such as `send-funds.ach`, `collect-funds.card-payments`, or `wallet.balance` instead.
16
20
  field :capabilities, Crystalline::Array.new(Models::Components::CapabilityID), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('capabilities'), required: true } }
17
21
 
18
22
  sig { params(capabilities: T::Array[Models::Components::CapabilityID]).void }
@@ -0,0 +1,52 @@
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
+
11
+ class BillingAddress
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :address_line1, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('addressLine1') } }
17
+
18
+ field :address_line2, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('addressLine2') } }
19
+
20
+ field :city, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('city') } }
21
+
22
+ field :state_or_province, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('stateOrProvince') } }
23
+
24
+ field :postal_code, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('postalCode') } }
25
+
26
+ field :country, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('country') } }
27
+
28
+ sig { params(address_line1: T.nilable(::String), address_line2: T.nilable(::String), city: T.nilable(::String), state_or_province: T.nilable(::String), postal_code: T.nilable(::String), country: T.nilable(::String)).void }
29
+ def initialize(address_line1: nil, address_line2: nil, city: nil, state_or_province: nil, postal_code: nil, country: nil)
30
+ @address_line1 = address_line1
31
+ @address_line2 = address_line2
32
+ @city = city
33
+ @state_or_province = state_or_province
34
+ @postal_code = postal_code
35
+ @country = country
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 @address_line1 == other.address_line1
42
+ return false unless @address_line2 == other.address_line2
43
+ return false unless @city == other.city
44
+ return false unless @state_or_province == other.state_or_province
45
+ return false unless @postal_code == other.postal_code
46
+ return false unless @country == other.country
47
+ true
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,23 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::BillingAddress
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::BillingAddress
11
+ def address_line1(); end
12
+ def address_line1=(str_); end
13
+ def address_line2(); end
14
+ def address_line2=(str_); end
15
+ def city(); end
16
+ def city=(str_); end
17
+ def state_or_province(); end
18
+ def state_or_province=(str_); end
19
+ def postal_code(); end
20
+ def postal_code=(str_); end
21
+ def country(); end
22
+ def country=(str_); end
23
+ end
@@ -14,7 +14,13 @@ module Moov
14
14
 
15
15
  # Moov account capabilities.
16
16
  #
17
- # The `production-app`, `platform.production-app`, and / or `platform.wallet-transfers` capabilities might appear in your list. These are read-only capabilities that Moov requests and uses for account verification purposes. These capabilities remains active with your account and require no additional action.
17
+ # **Deprecated capabilities**
18
+ #
19
+ # The `send-funds`, `collect-funds`, and `wallet` capability IDs are deprecated. Request granular capabilities instead (for example, `send-funds.ach`, `collect-funds.card-payments`, or `wallet.balance`). Deprecated values will be removed in a future API version.
20
+ #
21
+ # Read our [capabilities reference](https://docs.moov.io/guides/accounts/capabilities/reference/) to choose the right capabilities for your integration.
22
+ #
23
+ # The `production-app`, `platform.production-app`, and / or `platform.wallet-transfers` capabilities might appear in the list for your Partner account. These are read-only capabilities that Moov requests. These capabilities remain active with your account and require no additional action.
18
24
  field :capability, Models::Components::CapabilityID, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('capability'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CapabilityID, false) } }
19
25
 
20
26
  field :account_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('accountID'), required: true } }
@@ -9,7 +9,13 @@ module Moov
9
9
  module Components
10
10
  # CapabilityID - Moov account capabilities.
11
11
  #
12
- # The `production-app`, `platform.production-app`, and / or `platform.wallet-transfers` capabilities might appear in your list. These are read-only capabilities that Moov requests and uses for account verification purposes. These capabilities remains active with your account and require no additional action.
12
+ # **Deprecated capabilities**
13
+ #
14
+ # The `send-funds`, `collect-funds`, and `wallet` capability IDs are deprecated. Request granular capabilities instead (for example, `send-funds.ach`, `collect-funds.card-payments`, or `wallet.balance`). Deprecated values will be removed in a future API version.
15
+ #
16
+ # Read our [capabilities reference](https://docs.moov.io/guides/accounts/capabilities/reference/) to choose the right capabilities for your integration.
17
+ #
18
+ # The `production-app`, `platform.production-app`, and / or `platform.wallet-transfers` capabilities might appear in the list for your Partner account. These are read-only capabilities that Moov requests. These capabilities remain active with your account and require no additional action.
13
19
  class CapabilityID < T::Enum
14
20
  enums do
15
21
  TRANSFERS = new('transfers')
@@ -27,7 +27,11 @@ module Moov
27
27
  field :customer_support, Crystalline::Nilable.new(Models::Components::CustomerSupport), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('customerSupport') } }
28
28
  # User provided settings to manage an account.
29
29
  field :settings, Crystalline::Nilable.new(Models::Components::Settings), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('settings') } }
30
-
30
+ # Capabilities to request when the account is created. Request granular capability IDs that match your use case.
31
+ #
32
+ # Read our [capabilities reference](https://docs.moov.io/guides/accounts/capabilities/reference/) to choose the right capabilities for your integration.
33
+ #
34
+ # The `send-funds`, `collect-funds`, and `wallet` capability IDs are deprecated. Use granular values such as `send-funds.ach`, `collect-funds.card-payments`, or `wallet.balance` instead.
31
35
  field :capabilities, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::CapabilityID)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('capabilities') } }
32
36
  # The operating mode for an account.
33
37
  field :mode, Crystalline::Nilable.new(Models::Components::Mode), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('mode'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::Mode, true) } }
@@ -9,7 +9,7 @@ module Moov
9
9
  module Components
10
10
  # Request to create a new payment link.
11
11
  #
12
- # A payment link must include either `payment` or `payout` details, but not both. For payout payment links,
12
+ # A payment link must include exactly one of `payment`, `payout`, or `customAmountPayment` details. For payout payment links,
13
13
  # `maxUses` will automatically be set to 1, as these are intended for a one-time disbursement
14
14
  # to a specific recipient.
15
15
  #
@@ -21,12 +21,12 @@ module Moov
21
21
  field :partner_account_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('partnerAccountID'), required: true } }
22
22
  # The merchant's preferred payment method ID. Must be a wallet payment method.
23
23
  field :merchant_payment_method_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('merchantPaymentMethodID'), required: true } }
24
- # The fixed amount of the payment link.
24
+ # The fixed amount of the payment link.
25
25
  #
26
26
  # In API versions before `2026.07.00`, this was a required field.
27
27
  #
28
- # In API version `2026.07.00` and beyond, this field is required for `fixed` payment amount types and omitted
29
- # for `open` payment amount types.
28
+ # In API version `2026.07.00` and beyond, this field is required for `payment` and `payout` links and must be
29
+ # omitted for `customAmountPayment` links, where the payor chooses the amount.
30
30
  field :amount, Models::Components::Amount, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amount'), required: true } }
31
31
  # Customizable display options for a payment link.
32
32
  field :display, Models::Components::PaymentLinkDisplayOptions, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('display'), required: true } }
@@ -20,8 +20,6 @@ module Moov
20
20
  field :last_four_card_number, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('lastFourCardNumber'), required: true } }
21
21
  # The expiration date of the card or token.
22
22
  field :expiration, Models::Components::CardExpiration, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('expiration'), required: true } }
23
- # Fields for identifying an authorized individual.
24
- field :authorized_user, Models::Components::AuthorizedUser, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('authorizedUser'), required: true } }
25
23
  # Unique identifier for the wallet funding the card.
26
24
  field :funding_wallet_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('fundingWalletID'), required: true } }
27
25
  # The `state` represents the operational status of an issued card. A card can only approve incoming authorizations if it is in an active state.
@@ -35,29 +33,40 @@ module Moov
35
33
  field :form_factor, Models::Components::IssuedCardFormFactor, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('formFactor'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::IssuedCardFormFactor, false) } }
36
34
 
37
35
  field :created_on, ::DateTime, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('createdOn'), required: true, 'decoder': ::Moov::Utils.datetime_from_iso_format(false) } }
36
+
37
+ field :updated_on, ::DateTime, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('updatedOn'), required: true, 'decoder': ::Moov::Utils.datetime_from_iso_format(false) } }
38
38
  # The issued card's Primary Account Number (PAN)
39
39
  field :pan, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('pan'), required: true } }
40
40
  # The issued card's 3- or 4-digit Card Verification Value (CVV).
41
41
  field :cvv, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cvv'), required: true } }
42
- # Optional descriptor for the card.
43
- field :memo, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('memo') } }
42
+ # Identifier for the account of the card's authorized user.
43
+ field :authorized_user_account_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('authorizedUserAccountID') } }
44
+ # An optional descriptive name for the card.
45
+ field :nickname, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('nickname') } }
46
+ # Free-form key-value pair list. Useful for storing information that is not captured elsewhere.
47
+ field :metadata, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::String)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('metadata') } }
48
+ # Billing address associated with the card.
49
+ field :billing_address, Crystalline::Nilable.new(Models::Components::Address), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('billingAddress') } }
44
50
 
45
51
  field :controls, Crystalline::Nilable.new(Models::Components::IssuingControls), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('controls') } }
46
52
 
47
- sig { params(issued_card_id: ::String, brand: Models::Components::CardBrand, last_four_card_number: ::String, expiration: Models::Components::CardExpiration, authorized_user: Models::Components::AuthorizedUser, funding_wallet_id: ::String, state: Models::Components::IssuedCardState, form_factor: Models::Components::IssuedCardFormFactor, created_on: ::DateTime, pan: ::String, cvv: ::String, memo: T.nilable(::String), controls: T.nilable(Models::Components::IssuingControls)).void }
48
- def initialize(issued_card_id:, brand:, last_four_card_number:, expiration:, authorized_user:, funding_wallet_id:, state:, form_factor:, created_on:, pan:, cvv:, memo: nil, controls: nil)
53
+ sig { params(issued_card_id: ::String, brand: Models::Components::CardBrand, last_four_card_number: ::String, expiration: Models::Components::CardExpiration, funding_wallet_id: ::String, state: Models::Components::IssuedCardState, form_factor: Models::Components::IssuedCardFormFactor, created_on: ::DateTime, updated_on: ::DateTime, pan: ::String, cvv: ::String, authorized_user_account_id: T.nilable(::String), nickname: T.nilable(::String), metadata: T.nilable(T::Hash[Symbol, ::String]), billing_address: T.nilable(Models::Components::Address), controls: T.nilable(Models::Components::IssuingControls)).void }
54
+ def initialize(issued_card_id:, brand:, last_four_card_number:, expiration:, funding_wallet_id:, state:, form_factor:, created_on:, updated_on:, pan:, cvv:, authorized_user_account_id: nil, nickname: nil, metadata: nil, billing_address: nil, controls: nil)
49
55
  @issued_card_id = issued_card_id
50
56
  @brand = brand
51
57
  @last_four_card_number = last_four_card_number
52
58
  @expiration = expiration
53
- @authorized_user = authorized_user
54
59
  @funding_wallet_id = funding_wallet_id
55
60
  @state = state
56
61
  @form_factor = form_factor
57
62
  @created_on = created_on
63
+ @updated_on = updated_on
58
64
  @pan = pan
59
65
  @cvv = cvv
60
- @memo = memo
66
+ @authorized_user_account_id = authorized_user_account_id
67
+ @nickname = nickname
68
+ @metadata = metadata
69
+ @billing_address = billing_address
61
70
  @controls = controls
62
71
  end
63
72
 
@@ -68,14 +77,17 @@ module Moov
68
77
  return false unless @brand == other.brand
69
78
  return false unless @last_four_card_number == other.last_four_card_number
70
79
  return false unless @expiration == other.expiration
71
- return false unless @authorized_user == other.authorized_user
72
80
  return false unless @funding_wallet_id == other.funding_wallet_id
73
81
  return false unless @state == other.state
74
82
  return false unless @form_factor == other.form_factor
75
83
  return false unless @created_on == other.created_on
84
+ return false unless @updated_on == other.updated_on
76
85
  return false unless @pan == other.pan
77
86
  return false unless @cvv == other.cvv
78
- return false unless @memo == other.memo
87
+ return false unless @authorized_user_account_id == other.authorized_user_account_id
88
+ return false unless @nickname == other.nickname
89
+ return false unless @metadata == other.metadata
90
+ return false unless @billing_address == other.billing_address
79
91
  return false unless @controls == other.controls
80
92
  true
81
93
  end
@@ -16,8 +16,6 @@ class Moov::Models::Components::FullIssuedCard
16
16
  def last_four_card_number=(str_); end
17
17
  def expiration(); end
18
18
  def expiration=(str_); end
19
- def authorized_user(); end
20
- def authorized_user=(str_); end
21
19
  def funding_wallet_id(); end
22
20
  def funding_wallet_id=(str_); end
23
21
  def state(); end
@@ -26,12 +24,20 @@ class Moov::Models::Components::FullIssuedCard
26
24
  def form_factor=(str_); end
27
25
  def created_on(); end
28
26
  def created_on=(str_); end
27
+ def updated_on(); end
28
+ def updated_on=(str_); end
29
29
  def pan(); end
30
30
  def pan=(str_); end
31
31
  def cvv(); end
32
32
  def cvv=(str_); end
33
- def memo(); end
34
- def memo=(str_); end
33
+ def authorized_user_account_id(); end
34
+ def authorized_user_account_id=(str_); end
35
+ def nickname(); end
36
+ def nickname=(str_); end
37
+ def metadata(); end
38
+ def metadata=(str_); end
39
+ def billing_address(); end
40
+ def billing_address=(str_); end
35
41
  def controls(); end
36
42
  def controls=(str_); end
37
43
  end
@@ -20,8 +20,6 @@ module Moov
20
20
  field :last_four_card_number, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('lastFourCardNumber'), required: true } }
21
21
  # The expiration date of the card or token.
22
22
  field :expiration, Models::Components::CardExpiration, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('expiration'), required: true } }
23
- # Fields for identifying an authorized individual.
24
- field :authorized_user, Models::Components::AuthorizedUser, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('authorizedUser'), required: true } }
25
23
  # Unique identifier for the wallet funding the card.
26
24
  field :funding_wallet_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('fundingWalletID'), required: true } }
27
25
  # The `state` represents the operational status of an issued card. A card can only approve incoming authorizations if it is in an active state.
@@ -35,23 +33,34 @@ module Moov
35
33
  field :form_factor, Models::Components::IssuedCardFormFactor, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('formFactor'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::IssuedCardFormFactor, false) } }
36
34
 
37
35
  field :created_on, ::DateTime, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('createdOn'), required: true, 'decoder': ::Moov::Utils.datetime_from_iso_format(false) } }
38
- # Optional descriptor for the card.
39
- field :memo, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('memo') } }
36
+
37
+ field :updated_on, ::DateTime, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('updatedOn'), required: true, 'decoder': ::Moov::Utils.datetime_from_iso_format(false) } }
38
+ # Identifier for the account of the card's authorized user.
39
+ field :authorized_user_account_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('authorizedUserAccountID') } }
40
+ # An optional descriptive name for the card.
41
+ field :nickname, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('nickname') } }
42
+ # Free-form key-value pair list. Useful for storing information that is not captured elsewhere.
43
+ field :metadata, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::String)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('metadata') } }
44
+ # Billing address associated with the card.
45
+ field :billing_address, Crystalline::Nilable.new(Models::Components::Address), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('billingAddress') } }
40
46
 
41
47
  field :controls, Crystalline::Nilable.new(Models::Components::IssuingControls), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('controls') } }
42
48
 
43
- sig { params(issued_card_id: ::String, brand: Models::Components::CardBrand, last_four_card_number: ::String, expiration: Models::Components::CardExpiration, authorized_user: Models::Components::AuthorizedUser, funding_wallet_id: ::String, state: Models::Components::IssuedCardState, form_factor: Models::Components::IssuedCardFormFactor, created_on: ::DateTime, memo: T.nilable(::String), controls: T.nilable(Models::Components::IssuingControls)).void }
44
- def initialize(issued_card_id:, brand:, last_four_card_number:, expiration:, authorized_user:, funding_wallet_id:, state:, form_factor:, created_on:, memo: nil, controls: nil)
49
+ sig { params(issued_card_id: ::String, brand: Models::Components::CardBrand, last_four_card_number: ::String, expiration: Models::Components::CardExpiration, funding_wallet_id: ::String, state: Models::Components::IssuedCardState, form_factor: Models::Components::IssuedCardFormFactor, created_on: ::DateTime, updated_on: ::DateTime, authorized_user_account_id: T.nilable(::String), nickname: T.nilable(::String), metadata: T.nilable(T::Hash[Symbol, ::String]), billing_address: T.nilable(Models::Components::Address), controls: T.nilable(Models::Components::IssuingControls)).void }
50
+ def initialize(issued_card_id:, brand:, last_four_card_number:, expiration:, funding_wallet_id:, state:, form_factor:, created_on:, updated_on:, authorized_user_account_id: nil, nickname: nil, metadata: nil, billing_address: nil, controls: nil)
45
51
  @issued_card_id = issued_card_id
46
52
  @brand = brand
47
53
  @last_four_card_number = last_four_card_number
48
54
  @expiration = expiration
49
- @authorized_user = authorized_user
50
55
  @funding_wallet_id = funding_wallet_id
51
56
  @state = state
52
57
  @form_factor = form_factor
53
58
  @created_on = created_on
54
- @memo = memo
59
+ @updated_on = updated_on
60
+ @authorized_user_account_id = authorized_user_account_id
61
+ @nickname = nickname
62
+ @metadata = metadata
63
+ @billing_address = billing_address
55
64
  @controls = controls
56
65
  end
57
66
 
@@ -62,12 +71,15 @@ module Moov
62
71
  return false unless @brand == other.brand
63
72
  return false unless @last_four_card_number == other.last_four_card_number
64
73
  return false unless @expiration == other.expiration
65
- return false unless @authorized_user == other.authorized_user
66
74
  return false unless @funding_wallet_id == other.funding_wallet_id
67
75
  return false unless @state == other.state
68
76
  return false unless @form_factor == other.form_factor
69
77
  return false unless @created_on == other.created_on
70
- return false unless @memo == other.memo
78
+ return false unless @updated_on == other.updated_on
79
+ return false unless @authorized_user_account_id == other.authorized_user_account_id
80
+ return false unless @nickname == other.nickname
81
+ return false unless @metadata == other.metadata
82
+ return false unless @billing_address == other.billing_address
71
83
  return false unless @controls == other.controls
72
84
  true
73
85
  end
@@ -16,8 +16,6 @@ class Moov::Models::Components::IssuedCard
16
16
  def last_four_card_number=(str_); end
17
17
  def expiration(); end
18
18
  def expiration=(str_); end
19
- def authorized_user(); end
20
- def authorized_user=(str_); end
21
19
  def funding_wallet_id(); end
22
20
  def funding_wallet_id=(str_); end
23
21
  def state(); end
@@ -26,8 +24,16 @@ class Moov::Models::Components::IssuedCard
26
24
  def form_factor=(str_); end
27
25
  def created_on(); end
28
26
  def created_on=(str_); end
29
- def memo(); end
30
- def memo=(str_); end
27
+ def updated_on(); end
28
+ def updated_on=(str_); end
29
+ def authorized_user_account_id(); end
30
+ def authorized_user_account_id=(str_); end
31
+ def nickname(); end
32
+ def nickname=(str_); end
33
+ def metadata(); end
34
+ def metadata=(str_); end
35
+ def billing_address(); end
36
+ def billing_address=(str_); end
31
37
  def controls(); end
32
38
  def controls=(str_); end
33
39
  end
@@ -19,7 +19,7 @@ module Moov
19
19
  # List of [scopes](https://docs.moov.io/api/authentication/scopes/) you request to use on this
20
20
  # account. These values are used to determine what can be done with the account onboarded.
21
21
  field :scopes, Crystalline::Array.new(Models::Components::ApplicationScope), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('scopes'), required: true } }
22
- # List of [capabilities](https://docs.moov.io/guides/accounts/capabilities/) you intend to request for this
22
+ # List of [capabilities](https://docs.moov.io/guides/accounts/capabilities/reference/) you intend to request for this
23
23
  # account. These values are used to determine what information to collect from the user during onboarding.
24
24
  field :capabilities, Crystalline::Array.new(Models::Components::CapabilityID), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('capabilities'), required: true } }
25
25
  # List of fee plan codes to assign the account created by the invitee.
@@ -15,7 +15,7 @@ module Moov
15
15
  # List of [scopes](https://docs.moov.io/api/authentication/scopes/) you request to use on this
16
16
  # account. These values are used to determine what can be done with the account onboarded.
17
17
  field :scopes, Crystalline::Array.new(Models::Components::ApplicationScope), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('scopes'), required: true } }
18
- # List of [capabilities](https://docs.moov.io/guides/accounts/capabilities/) you intend to request for this
18
+ # List of [capabilities](https://docs.moov.io/guides/accounts/capabilities/reference/) you intend to request for this
19
19
  # account. These values are used to determine what information to collect from the user during onboarding.
20
20
  field :capabilities, Crystalline::Array.new(Models::Components::CapabilityID), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('capabilities'), required: true } }
21
21
  # List of fee plan codes to assign the account created by the invitee.
@@ -30,12 +30,12 @@ module Moov
30
30
  field :merchant_payment_method_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('merchantPaymentMethodID'), required: true } }
31
31
  # Link to the payment landing page for this payment link.
32
32
  field :link, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('link'), required: true } }
33
- # The fixed amount of the payment link.
33
+ # The fixed amount of the payment link.
34
34
  #
35
35
  # In API versions before `2026.07.00`, this was a required field.
36
36
  #
37
- # In API version `2026.07.00` and beyond, this field is required for `fixed` payment amount types and omitted
38
- # for `open` payment amount types.
37
+ # In API version `2026.07.00` and beyond, this field is present for `payment` and `payout` links and omitted
38
+ # for `customAmountPayment` links, where the payor chooses the amount.
39
39
  field :amount, Models::Components::Amount, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amount'), required: true } }
40
40
  # The number of times this payment link has been used.
41
41
  field :uses, ::Integer, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('uses'), required: true } }