moov_ruby 26.10.0.pre.dev.9 → 26.10.0.pre.dev.10

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 (61) hide show
  1. checksums.yaml +4 -4
  2. data/lib/moov/card_issuing.rb +2 -8
  3. data/lib/moov/models/components/capability.rb +2 -0
  4. data/lib/moov/models/components/capabilityid.rb +3 -0
  5. data/lib/moov/models/components/capture.rb +2 -6
  6. data/lib/moov/models/components/capture.rbi +0 -2
  7. data/lib/moov/models/components/createcapture.rb +2 -6
  8. data/lib/moov/models/components/createcapture.rbi +0 -2
  9. data/lib/moov/models/components/createsweepconfig.rb +6 -2
  10. data/lib/moov/models/components/createsweepconfig.rbi +2 -0
  11. data/lib/moov/models/components/fullissuedcard.rb +6 -4
  12. data/lib/moov/models/components/issuedcard.rb +6 -4
  13. data/lib/moov/models/components/issuedcardauthorization.rb +6 -2
  14. data/lib/moov/models/components/issuedcardauthorization.rbi +2 -0
  15. data/lib/moov/models/components/issuedcardstate.rb +6 -4
  16. data/lib/moov/models/components/issuedcardtransaction.rb +6 -2
  17. data/lib/moov/models/components/issuedcardtransaction.rbi +2 -0
  18. data/lib/moov/models/components/issuedcontrols_allowedschedule.rb +1 -1
  19. data/lib/moov/models/components/issuingcontrols_allowedschedule.rb +1 -1
  20. data/lib/moov/models/components/patchsweepconfig.rb +6 -2
  21. data/lib/moov/models/components/patchsweepconfig.rbi +2 -0
  22. data/lib/moov/models/components/schedule.rb +40 -0
  23. data/lib/moov/models/components/schedule.rbi +17 -0
  24. data/lib/moov/models/components/schedulewindow.rb +1 -1
  25. data/lib/moov/models/components/sweepconfig.rb +6 -2
  26. data/lib/moov/models/components/sweepconfig.rbi +2 -0
  27. data/lib/moov/models/components/sweepconfigschedule.rb +40 -0
  28. data/lib/moov/models/components/sweepconfigschedule.rbi +17 -0
  29. data/lib/moov/models/components/sweepconfigscheduleerror.rb +40 -0
  30. data/lib/moov/models/components/sweepconfigscheduleerror.rbi +17 -0
  31. data/lib/moov/models/components/sweepschedulefrequency.rb +18 -0
  32. data/lib/moov/models/components/sweepschedulefrequency.rbi +11 -0
  33. data/lib/moov/models/components/updateissuedcard.rb +3 -3
  34. data/lib/moov/models/components/updateissuedcardstate.rb +3 -3
  35. data/lib/moov/models/components/updateissuingcontrols_allowedschedule.rb +1 -1
  36. data/lib/moov/models/components/upsertunderwriting.rb +1 -1
  37. data/lib/moov/models/components/webhookdatacapabilityrequested.rb +2 -0
  38. data/lib/moov/models/components/webhookdatacapabilityupdated.rb +2 -0
  39. data/lib/moov/models/components.rb +4 -0
  40. data/lib/moov/models/errors/capturevalidationerror.rb +2 -6
  41. data/lib/moov/models/errors/capturevalidationerror.rbi +0 -2
  42. data/lib/moov/models/errors/createsweepconfigerror.rb +6 -2
  43. data/lib/moov/models/errors/createsweepconfigerror.rbi +2 -0
  44. data/lib/moov/models/errors/listtransfersvalidationerror.rb +6 -2
  45. data/lib/moov/models/errors/listtransfersvalidationerror.rbi +2 -0
  46. data/lib/moov/models/errors/patchsweepconfigerror.rb +6 -2
  47. data/lib/moov/models/errors/patchsweepconfigerror.rbi +2 -0
  48. data/lib/moov/models/operations/disablecapability_request.rb +2 -0
  49. data/lib/moov/models/operations/getcapability_request.rb +2 -0
  50. data/lib/moov/models/operations/listissuedcardauthorizations_request.rb +6 -2
  51. data/lib/moov/models/operations/listissuedcardauthorizations_request.rbi +2 -0
  52. data/lib/moov/models/operations/listissuedcards_request.rb +6 -2
  53. data/lib/moov/models/operations/listissuedcards_request.rbi +2 -0
  54. data/lib/moov/models/operations/listissuedcardtransactions_request.rb +6 -2
  55. data/lib/moov/models/operations/listissuedcardtransactions_request.rbi +2 -0
  56. data/lib/moov/models/operations/listtransfers_request.rb +7 -2
  57. data/lib/moov/models/operations/listtransfers_request.rbi +2 -0
  58. data/lib/moov/models/operations/listtransfers_response.rb +1 -1
  59. data/lib/moov/sdkconfiguration.rb +3 -3
  60. data/lib/moov/transfers.rb +6 -1
  61. metadata +10 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 92855518412c0f21421834f424f9e2fff720d872c953522b69cec238e14be84e
4
- data.tar.gz: 432bf8b773f25677de7518154dc7b07abc771520d140794bc8b74ca7f2b10a70
3
+ metadata.gz: a44ddef1d9a415950b561e06e74f872b2a91f44701dd121306ea65b3a39bdea7
4
+ data.tar.gz: 52ed87b718258132e75de1162162b78920efff8c49e54b8570dfa910556547bf
5
5
  SHA512:
6
- metadata.gz: 7b01721394998a6e416e739bb579c7f224e85d4a8dcb49095f063ca64cfcb25495f86bd10eabf67ec20bf6a202eac8937a3dd2e4676d99a2d11c0cce556a6f88
7
- data.tar.gz: 29aa0ded28948e5454fd90417e2a4e6c59e741ba5a6ef02bdb47387a6cba9b86a5d5bb0d22d758722839ebfcb901d1d01de3f0f953accf2bda9352cb8565a755
6
+ metadata.gz: c22cba84ccd65cd1c020b022329396c4d82ee0ca1f78a432b2ac85957bde457836e7084836794b0daf4d462ab2221919c6b3b6a95f1f2cbbc70ff3bebc9c0a89
7
+ data.tar.gz: 56bcab0ec1ece99f2de0771174d71d15417fcf41ffd809ae1a9f2ebecaf8b5be0518b1a0a40c5784c67f91ff84f6c829759a4b63fb8755023e26dc47e6dfdb91
@@ -860,18 +860,12 @@ module Moov
860
860
  end
861
861
 
862
862
 
863
- sig { params(account_id: ::String, skip: T.nilable(::Integer), count: T.nilable(::Integer), states: T.nilable(T::Array[Models::Components::IssuedCardState]), timeout_ms: T.nilable(Integer), http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])).returns(Models::Operations::ListIssuedCardsResponse) }
864
- def list(account_id:, skip: nil, count: nil, states: nil, timeout_ms: nil, http_headers: nil)
863
+ sig { params(request: Models::Operations::ListIssuedCardsRequest, timeout_ms: T.nilable(Integer), http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])).returns(Models::Operations::ListIssuedCardsResponse) }
864
+ def list(request:, timeout_ms: nil, http_headers: nil)
865
865
  # list - List Moov issued cards existing for the account.
866
866
  #
867
867
  # To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
868
868
  # you'll need to specify the `/accounts/{accountID}/issued-cards.read` scope.
869
- request = Models::Operations::ListIssuedCardsRequest.new(
870
- account_id: account_id,
871
- skip: skip,
872
- count: count,
873
- states: states
874
- )
875
869
  url, params = @sdk_configuration.get_server_details
876
870
  base_url = Utils.template_url(url, params)
877
871
  url = Utils.generate_url(
@@ -21,6 +21,8 @@ module Moov
21
21
  # Read our [capabilities reference](https://docs.moov.io/guides/accounts/capabilities/reference/) to choose the right capabilities for your integration.
22
22
  #
23
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.
24
+ #
25
+ # Starting in v2026.10.00, the `platform.moov-money` capability might appear in the list for accounts enrolled in Moov Money. This is a read-only capability that Moov requests. It requires no additional action.
24
26
  field :capability, Models::Components::CapabilityID, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('capability'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::CapabilityID, false) } }
25
27
 
26
28
  field :account_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('accountID'), required: true } }
@@ -16,6 +16,8 @@ module Moov
16
16
  # Read our [capabilities reference](https://docs.moov.io/guides/accounts/capabilities/reference/) to choose the right capabilities for your integration.
17
17
  #
18
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.
19
+ #
20
+ # Starting in v2026.10.00, the `platform.moov-money` capability might appear in the list for accounts enrolled in Moov Money. This is a read-only capability that Moov requests. It requires no additional action.
19
21
  class CapabilityID
20
22
  include ::Crystalline::Enum
21
23
  enums do
@@ -38,6 +40,7 @@ module Moov
38
40
  PRODUCTION_APP = new('production-app')
39
41
  PLATFORM_PRODUCTION_APP = new('platform.production-app')
40
42
  PLATFORM_WALLET_TRANSFERS = new('platform.wallet-transfers')
43
+ PLATFORM_MOOV_MONEY = new('platform.moov-money')
41
44
  end
42
45
  open!
43
46
  end
@@ -22,8 +22,6 @@ module Moov
22
22
  field :status, Models::Components::CaptureStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::CaptureStatus, false) } }
23
23
 
24
24
  field :created_on, ::DateTime, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('createdOn'), required: true, 'decoder': ::Moov::Utils.datetime_from_iso_format(false) } }
25
- # Payment method of the merchant account the funds were captured into. For card-acquiring transfers, this must be a moov-wallet payment method.
26
- field :destination_payment_method_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('destinationPaymentMethodID'), required: true } }
27
25
  # An optional description of the capture that is used on receipts and for your own internal use.
28
26
  field :description, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('description') } }
29
27
  # Free-form key-value pair list. Useful for storing information that is not captured elsewhere.
@@ -41,14 +39,13 @@ module Moov
41
39
 
42
40
  field :failure_code, Crystalline::Nilable.new(Models::Components::CardTransactionFailureCode), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('failureCode'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::CardTransactionFailureCode, true) } }
43
41
 
44
- sig { params(capture_id: ::String, amount: Models::Components::AmountDecimal, is_final: T::Boolean, status: Models::Components::CaptureStatus, created_on: ::DateTime, destination_payment_method_id: ::String, description: T.nilable(::String), metadata: T.nilable(T::Hash[Symbol, ::String]), foreign_id: T.nilable(::String), line_items: T.nilable(Models::Components::TransferLineItems), amount_details: T.nilable(Models::Components::TransferAmountDetails), facilitator_fee_amount: T.nilable(Models::Components::AmountDecimal), failure_code: T.nilable(Models::Components::CardTransactionFailureCode)).void }
45
- def initialize(capture_id:, amount:, is_final:, status:, created_on:, destination_payment_method_id:, description: nil, metadata: nil, foreign_id: nil, line_items: nil, amount_details: nil, facilitator_fee_amount: nil, failure_code: nil)
42
+ sig { params(capture_id: ::String, amount: Models::Components::AmountDecimal, is_final: T::Boolean, status: Models::Components::CaptureStatus, created_on: ::DateTime, description: T.nilable(::String), metadata: T.nilable(T::Hash[Symbol, ::String]), foreign_id: T.nilable(::String), line_items: T.nilable(Models::Components::TransferLineItems), amount_details: T.nilable(Models::Components::TransferAmountDetails), facilitator_fee_amount: T.nilable(Models::Components::AmountDecimal), failure_code: T.nilable(Models::Components::CardTransactionFailureCode)).void }
43
+ def initialize(capture_id:, amount:, is_final:, status:, created_on:, description: nil, metadata: nil, foreign_id: nil, line_items: nil, amount_details: nil, facilitator_fee_amount: nil, failure_code: nil)
46
44
  @capture_id = capture_id
47
45
  @amount = amount
48
46
  @is_final = is_final
49
47
  @status = status
50
48
  @created_on = created_on
51
- @destination_payment_method_id = destination_payment_method_id
52
49
  @description = description
53
50
  @metadata = metadata
54
51
  @foreign_id = foreign_id
@@ -66,7 +63,6 @@ module Moov
66
63
  return false unless @is_final == other.is_final
67
64
  return false unless @status == other.status
68
65
  return false unless @created_on == other.created_on
69
- return false unless @destination_payment_method_id == other.destination_payment_method_id
70
66
  return false unless @description == other.description
71
67
  return false unless @metadata == other.metadata
72
68
  return false unless @foreign_id == other.foreign_id
@@ -18,8 +18,6 @@ class Moov::Models::Components::Capture
18
18
  def status=(str_); end
19
19
  def created_on(); end
20
20
  def created_on=(str_); end
21
- def destination_payment_method_id(); end
22
- def destination_payment_method_id=(str_); end
23
21
  def description(); end
24
22
  def description=(str_); end
25
23
  def metadata(); end
@@ -12,8 +12,6 @@ module Moov
12
12
  extend T::Sig
13
13
  include Crystalline::MetadataFields
14
14
 
15
- # Payment method of the merchant account to capture funds into. For card-acquiring transfers, this must be a moov-wallet payment method.
16
- field :destination_payment_method_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('destinationPaymentMethodID'), required: true } }
17
15
  # Amount to capture.
18
16
  # If omitted, the remaining capturable amount is captured.
19
17
  field :amount, Crystalline::Nilable.new(Models::Components::AmountDecimal), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amount') } }
@@ -35,9 +33,8 @@ module Moov
35
33
  # The transfer's facilitator fee is the sum of its capture fees.
36
34
  field :facilitator_fee_amount, Crystalline::Nilable.new(Models::Components::AmountDecimal), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('facilitatorFeeAmount') } }
37
35
 
38
- sig { params(destination_payment_method_id: ::String, amount: T.nilable(Models::Components::AmountDecimal), is_final: T.nilable(T::Boolean), description: T.nilable(::String), metadata: T.nilable(T::Hash[Symbol, ::String]), foreign_id: T.nilable(::String), line_items: T.nilable(Models::Components::CreateTransferLineItems), amount_details: T.nilable(Models::Components::CreateTransferAmountDetails), facilitator_fee_amount: T.nilable(Models::Components::AmountDecimal)).void }
39
- def initialize(destination_payment_method_id:, amount: nil, is_final: nil, description: nil, metadata: nil, foreign_id: nil, line_items: nil, amount_details: nil, facilitator_fee_amount: nil)
40
- @destination_payment_method_id = destination_payment_method_id
36
+ sig { params(amount: T.nilable(Models::Components::AmountDecimal), is_final: T.nilable(T::Boolean), description: T.nilable(::String), metadata: T.nilable(T::Hash[Symbol, ::String]), foreign_id: T.nilable(::String), line_items: T.nilable(Models::Components::CreateTransferLineItems), amount_details: T.nilable(Models::Components::CreateTransferAmountDetails), facilitator_fee_amount: T.nilable(Models::Components::AmountDecimal)).void }
37
+ def initialize(amount: nil, is_final: nil, description: nil, metadata: nil, foreign_id: nil, line_items: nil, amount_details: nil, facilitator_fee_amount: nil)
41
38
  @amount = amount
42
39
  @is_final = is_final
43
40
  @description = description
@@ -51,7 +48,6 @@ module Moov
51
48
  sig { params(other: T.untyped).returns(T::Boolean) }
52
49
  def ==(other)
53
50
  return false unless other.is_a? self.class
54
- return false unless @destination_payment_method_id == other.destination_payment_method_id
55
51
  return false unless @amount == other.amount
56
52
  return false unless @is_final == other.is_final
57
53
  return false unless @description == other.description
@@ -8,8 +8,6 @@ end
8
8
 
9
9
 
10
10
  class Moov::Models::Components::CreateCapture
11
- def destination_payment_method_id(); end
12
- def destination_payment_method_id=(str_); end
13
11
  def amount(); end
14
12
  def amount=(str_); end
15
13
  def is_final(); end
@@ -24,15 +24,18 @@ module Moov
24
24
  field :statement_descriptor, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('statementDescriptor') } }
25
25
 
26
26
  field :minimum_balance, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('minimumBalance') } }
27
+ # Overrides the time of day this wallet's sweep runs. Sweeps only run on US banking days.
28
+ field :schedule, Crystalline::Nilable.new(Models::Components::SweepConfigSchedule), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('schedule') } }
27
29
 
28
- sig { params(wallet_id: ::String, status: Models::Components::SweepConfigStatus, push_payment_method_id: ::String, pull_payment_method_id: ::String, statement_descriptor: T.nilable(::String), minimum_balance: T.nilable(::String)).void }
29
- def initialize(wallet_id:, status:, push_payment_method_id:, pull_payment_method_id:, statement_descriptor: nil, minimum_balance: nil)
30
+ sig { params(wallet_id: ::String, status: Models::Components::SweepConfigStatus, push_payment_method_id: ::String, pull_payment_method_id: ::String, statement_descriptor: T.nilable(::String), minimum_balance: T.nilable(::String), schedule: T.nilable(Models::Components::SweepConfigSchedule)).void }
31
+ def initialize(wallet_id:, status:, push_payment_method_id:, pull_payment_method_id:, statement_descriptor: nil, minimum_balance: nil, schedule: nil)
30
32
  @wallet_id = wallet_id
31
33
  @status = status
32
34
  @push_payment_method_id = push_payment_method_id
33
35
  @pull_payment_method_id = pull_payment_method_id
34
36
  @statement_descriptor = statement_descriptor
35
37
  @minimum_balance = minimum_balance
38
+ @schedule = schedule
36
39
  end
37
40
 
38
41
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -44,6 +47,7 @@ module Moov
44
47
  return false unless @pull_payment_method_id == other.pull_payment_method_id
45
48
  return false unless @statement_descriptor == other.statement_descriptor
46
49
  return false unless @minimum_balance == other.minimum_balance
50
+ return false unless @schedule == other.schedule
47
51
  true
48
52
  end
49
53
  end
@@ -20,4 +20,6 @@ class Moov::Models::Components::CreateSweepConfig
20
20
  def statement_descriptor=(str_); end
21
21
  def minimum_balance(); end
22
22
  def minimum_balance=(str_); end
23
+ def schedule(); end
24
+ def schedule=(str_); end
23
25
  end
@@ -22,11 +22,13 @@ module Moov
22
22
  field :expiration, Models::Components::CardExpiration, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('expiration'), required: true } }
23
23
  # Unique identifier for the wallet funding the card.
24
24
  field :funding_wallet_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('fundingWalletID'), required: true } }
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.
25
+ # The `state` represents the operational status of an issued card.
26
26
  #
27
- # - `active`: The card is operational and can approve authorizations.
28
- # - `frozen`: The card is temporarily suspended and cannot approve authorizations. A frozen card can be reactivated by setting its state back to `active`.
29
- # - `closed`: The card is permanently deactivated and cannot approve authorizations. A card can be closed by request or when it expires.
27
+ # Authorizations can only be approved while the card is `active`:
28
+ #
29
+ # - `active`: The card is operational and authorizations can be approved.
30
+ # - `frozen`: The card is temporarily suspended and authorizations cannot be approved. Set the state back to `active` to reactivate it. A card can move between `frozen` and `active` as often as needed.
31
+ # - `closed`: The card is permanently deactivated. A card is closed by request or when it expires, and cannot be reopened.
30
32
  field :state, Models::Components::IssuedCardState, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('state'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::IssuedCardState, false) } }
31
33
  # Specifies the type of spend card to be issued. Presently supports virtual only, providing a digital number without a physical card.
32
34
  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) } }
@@ -22,11 +22,13 @@ module Moov
22
22
  field :expiration, Models::Components::CardExpiration, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('expiration'), required: true } }
23
23
  # Unique identifier for the wallet funding the card.
24
24
  field :funding_wallet_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('fundingWalletID'), required: true } }
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.
25
+ # The `state` represents the operational status of an issued card.
26
26
  #
27
- # - `active`: The card is operational and can approve authorizations.
28
- # - `frozen`: The card is temporarily suspended and cannot approve authorizations. A frozen card can be reactivated by setting its state back to `active`.
29
- # - `closed`: The card is permanently deactivated and cannot approve authorizations. A card can be closed by request or when it expires.
27
+ # Authorizations can only be approved while the card is `active`:
28
+ #
29
+ # - `active`: The card is operational and authorizations can be approved.
30
+ # - `frozen`: The card is temporarily suspended and authorizations cannot be approved. Set the state back to `active` to reactivate it. A card can move between `frozen` and `active` as often as needed.
31
+ # - `closed`: The card is permanently deactivated. A card is closed by request or when it expires, and cannot be reopened.
30
32
  field :state, Models::Components::IssuedCardState, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('state'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::IssuedCardState, false) } }
31
33
  # Specifies the type of spend card to be issued. Presently supports virtual only, providing a digital number without a physical card.
32
34
  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) } }
@@ -30,14 +30,16 @@ module Moov
30
30
  field :created_on, ::DateTime, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('createdOn'), required: true, 'decoder': ::Moov::Utils.datetime_from_iso_format(false) } }
31
31
  # Last four digits of the card number. Omitted for authorizations recorded before this was captured.
32
32
  field :last_four_card_number, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('lastFourCardNumber') } }
33
+ # Identifier for the account of the card's authorized user.
34
+ field :authorized_user_account_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('authorizedUserAccountID') } }
33
35
  # List of card transaction IDs associated with this authorization.
34
36
  field :card_transactions, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardTransactions') } }
35
37
  # The reason an authorization or authorization event was declined. Only present if the
36
38
  # authorization or event has been declined.
37
39
  field :decline_reason, Crystalline::Nilable.new(Models::Components::IssuingDeclineReason), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('declineReason'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::IssuingDeclineReason, true) } }
38
40
 
39
- sig { params(authorization_id: ::String, issued_card_id: ::String, funding_wallet_id: ::String, network: Models::Components::CardIssuingNetwork, authorized_amount: ::String, status: Models::Components::IssuingAuthorizationStatus, merchant_data: Models::Components::IssuingMerchantData, created_on: ::DateTime, last_four_card_number: T.nilable(::String), card_transactions: T.nilable(T::Array[::String]), decline_reason: T.nilable(Models::Components::IssuingDeclineReason)).void }
40
- def initialize(authorization_id:, issued_card_id:, funding_wallet_id:, network:, authorized_amount:, status:, merchant_data:, created_on:, last_four_card_number: nil, card_transactions: nil, decline_reason: nil)
41
+ sig { params(authorization_id: ::String, issued_card_id: ::String, funding_wallet_id: ::String, network: Models::Components::CardIssuingNetwork, authorized_amount: ::String, status: Models::Components::IssuingAuthorizationStatus, merchant_data: Models::Components::IssuingMerchantData, created_on: ::DateTime, last_four_card_number: T.nilable(::String), authorized_user_account_id: T.nilable(::String), card_transactions: T.nilable(T::Array[::String]), decline_reason: T.nilable(Models::Components::IssuingDeclineReason)).void }
42
+ def initialize(authorization_id:, issued_card_id:, funding_wallet_id:, network:, authorized_amount:, status:, merchant_data:, created_on:, last_four_card_number: nil, authorized_user_account_id: nil, card_transactions: nil, decline_reason: nil)
41
43
  @authorization_id = authorization_id
42
44
  @issued_card_id = issued_card_id
43
45
  @funding_wallet_id = funding_wallet_id
@@ -47,6 +49,7 @@ module Moov
47
49
  @merchant_data = merchant_data
48
50
  @created_on = created_on
49
51
  @last_four_card_number = last_four_card_number
52
+ @authorized_user_account_id = authorized_user_account_id
50
53
  @card_transactions = card_transactions
51
54
  @decline_reason = decline_reason
52
55
  end
@@ -63,6 +66,7 @@ module Moov
63
66
  return false unless @merchant_data == other.merchant_data
64
67
  return false unless @created_on == other.created_on
65
68
  return false unless @last_four_card_number == other.last_four_card_number
69
+ return false unless @authorized_user_account_id == other.authorized_user_account_id
66
70
  return false unless @card_transactions == other.card_transactions
67
71
  return false unless @decline_reason == other.decline_reason
68
72
  true
@@ -26,6 +26,8 @@ class Moov::Models::Components::IssuedCardAuthorization
26
26
  def created_on=(str_); end
27
27
  def last_four_card_number(); end
28
28
  def last_four_card_number=(str_); end
29
+ def authorized_user_account_id(); end
30
+ def authorized_user_account_id=(str_); end
29
31
  def card_transactions(); end
30
32
  def card_transactions=(str_); end
31
33
  def decline_reason(); end
@@ -7,11 +7,13 @@
7
7
  module Moov
8
8
  module Models
9
9
  module Components
10
- # IssuedCardState - The `state` represents the operational status of an issued card. A card can only approve incoming authorizations if it is in an active state.
10
+ # IssuedCardState - The `state` represents the operational status of an issued card.
11
11
  #
12
- # - `active`: The card is operational and can approve authorizations.
13
- # - `frozen`: The card is temporarily suspended and cannot approve authorizations. A frozen card can be reactivated by setting its state back to `active`.
14
- # - `closed`: The card is permanently deactivated and cannot approve authorizations. A card can be closed by request or when it expires.
12
+ # Authorizations can only be approved while the card is `active`:
13
+ #
14
+ # - `active`: The card is operational and authorizations can be approved.
15
+ # - `frozen`: The card is temporarily suspended and authorizations cannot be approved. Set the state back to `active` to reactivate it. A card can move between `frozen` and `active` as often as needed.
16
+ # - `closed`: The card is permanently deactivated. A card is closed by request or when it expires, and cannot be reopened.
15
17
  class IssuedCardState
16
18
  include ::Crystalline::Enum
17
19
  enums do
@@ -28,11 +28,13 @@ module Moov
28
28
  field :created_on, ::DateTime, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('createdOn'), required: true, 'decoder': ::Moov::Utils.datetime_from_iso_format(false) } }
29
29
  # Last four digits of the card number. Omitted for transactions recorded before this was captured.
30
30
  field :last_four_card_number, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('lastFourCardNumber') } }
31
+ # Identifier for the account of the card's authorized user.
32
+ field :authorized_user_account_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('authorizedUserAccountID') } }
31
33
 
32
34
  field :authorization_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('authorizationID') } }
33
35
 
34
- sig { params(card_transaction_id: ::String, issued_card_id: ::String, funding_wallet_id: ::String, amount: ::String, authorized_on: ::DateTime, merchant_data: Models::Components::IssuingMerchantData, created_on: ::DateTime, last_four_card_number: T.nilable(::String), authorization_id: T.nilable(::String)).void }
35
- def initialize(card_transaction_id:, issued_card_id:, funding_wallet_id:, amount:, authorized_on:, merchant_data:, created_on:, last_four_card_number: nil, authorization_id: nil)
36
+ sig { params(card_transaction_id: ::String, issued_card_id: ::String, funding_wallet_id: ::String, amount: ::String, authorized_on: ::DateTime, merchant_data: Models::Components::IssuingMerchantData, created_on: ::DateTime, last_four_card_number: T.nilable(::String), authorized_user_account_id: T.nilable(::String), authorization_id: T.nilable(::String)).void }
37
+ def initialize(card_transaction_id:, issued_card_id:, funding_wallet_id:, amount:, authorized_on:, merchant_data:, created_on:, last_four_card_number: nil, authorized_user_account_id: nil, authorization_id: nil)
36
38
  @card_transaction_id = card_transaction_id
37
39
  @issued_card_id = issued_card_id
38
40
  @funding_wallet_id = funding_wallet_id
@@ -41,6 +43,7 @@ module Moov
41
43
  @merchant_data = merchant_data
42
44
  @created_on = created_on
43
45
  @last_four_card_number = last_four_card_number
46
+ @authorized_user_account_id = authorized_user_account_id
44
47
  @authorization_id = authorization_id
45
48
  end
46
49
 
@@ -55,6 +58,7 @@ module Moov
55
58
  return false unless @merchant_data == other.merchant_data
56
59
  return false unless @created_on == other.created_on
57
60
  return false unless @last_four_card_number == other.last_four_card_number
61
+ return false unless @authorized_user_account_id == other.authorized_user_account_id
58
62
  return false unless @authorization_id == other.authorization_id
59
63
  true
60
64
  end
@@ -24,6 +24,8 @@ class Moov::Models::Components::IssuedCardTransaction
24
24
  def created_on=(str_); end
25
25
  def last_four_card_number(); end
26
26
  def last_four_card_number=(str_); end
27
+ def authorized_user_account_id(); end
28
+ def authorized_user_account_id=(str_); end
27
29
  def authorization_id(); end
28
30
  def authorization_id=(str_); end
29
31
  end
@@ -14,7 +14,7 @@ module Moov
14
14
 
15
15
  # IANA timezone string used to evaluate window boundaries against the authorization time.
16
16
  field :timezone, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('timezone'), required: true } }
17
- # Time windows during which the card may authorize. Any matching window allows the transaction.
17
+ # Time windows during which authorizations on the card can be approved. Any matching window allows the transaction.
18
18
  field :windows, Crystalline::Array.new(Models::Components::ScheduleWindow), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('windows'), required: true } }
19
19
 
20
20
  sig { params(timezone: ::String, windows: T::Array[Models::Components::ScheduleWindow]).void }
@@ -14,7 +14,7 @@ module Moov
14
14
 
15
15
  # IANA timezone string used to evaluate window boundaries against the authorization time.
16
16
  field :timezone, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('timezone'), required: true } }
17
- # Time windows during which the card may authorize. Any matching window allows the transaction.
17
+ # Time windows during which authorizations on the card can be approved. Any matching window allows the transaction.
18
18
  field :windows, Crystalline::Array.new(Models::Components::ScheduleWindow), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('windows'), required: true } }
19
19
 
20
20
  sig { params(timezone: ::String, windows: T::Array[Models::Components::ScheduleWindow]).void }
@@ -22,14 +22,17 @@ module Moov
22
22
  field :statement_descriptor, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('statementDescriptor') } }
23
23
 
24
24
  field :minimum_balance, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('minimumBalance') } }
25
+ # Overrides the time of day this wallet's sweep runs. Sweeps only run on US banking days.
26
+ field :schedule, Crystalline::Nilable.new(Models::Components::Schedule), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('schedule') } }
25
27
 
26
- sig { params(status: T.nilable(Models::Components::Status), push_payment_method_id: T.nilable(::String), pull_payment_method_id: T.nilable(::String), statement_descriptor: T.nilable(::String), minimum_balance: T.nilable(::String)).void }
27
- def initialize(status: nil, push_payment_method_id: nil, pull_payment_method_id: nil, statement_descriptor: nil, minimum_balance: nil)
28
+ sig { params(status: T.nilable(Models::Components::Status), push_payment_method_id: T.nilable(::String), pull_payment_method_id: T.nilable(::String), statement_descriptor: T.nilable(::String), minimum_balance: T.nilable(::String), schedule: T.nilable(Models::Components::Schedule)).void }
29
+ def initialize(status: nil, push_payment_method_id: nil, pull_payment_method_id: nil, statement_descriptor: nil, minimum_balance: nil, schedule: nil)
28
30
  @status = status
29
31
  @push_payment_method_id = push_payment_method_id
30
32
  @pull_payment_method_id = pull_payment_method_id
31
33
  @statement_descriptor = statement_descriptor
32
34
  @minimum_balance = minimum_balance
35
+ @schedule = schedule
33
36
  end
34
37
 
35
38
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -40,6 +43,7 @@ module Moov
40
43
  return false unless @pull_payment_method_id == other.pull_payment_method_id
41
44
  return false unless @statement_descriptor == other.statement_descriptor
42
45
  return false unless @minimum_balance == other.minimum_balance
46
+ return false unless @schedule == other.schedule
43
47
  true
44
48
  end
45
49
  end
@@ -18,4 +18,6 @@ class Moov::Models::Components::PatchSweepConfig
18
18
  def statement_descriptor=(str_); end
19
19
  def minimum_balance(); end
20
20
  def minimum_balance=(str_); end
21
+ def schedule(); end
22
+ def schedule=(str_); end
21
23
  end
@@ -0,0 +1,40 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Moov
8
+ module Models
9
+ module Components
10
+ # Overrides the time of day this wallet's sweep runs. Sweeps only run on US banking days.
11
+ class Schedule
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # Time of day the sweep runs, in 24-hour `HH:mm` format. Must fall on a 15-minute mark (`:00`, `:15`, `:30`, `:45`).
16
+ field :cutoff_time, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cutoffTime'), required: true } }
17
+ # IANA timezone for `cutoffTime`, such as `America/New_York` or `UTC`.
18
+ field :timezone, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('timezone'), required: true } }
19
+ # How often the sweep runs. Defaults to `daily`.
20
+ field :frequency, Crystalline::Nilable.new(Models::Components::SweepScheduleFrequency), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('frequency'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::SweepScheduleFrequency, true) } }
21
+
22
+ sig { params(cutoff_time: ::String, timezone: ::String, frequency: T.nilable(Models::Components::SweepScheduleFrequency)).void }
23
+ def initialize(cutoff_time:, timezone:, frequency: nil)
24
+ @cutoff_time = cutoff_time
25
+ @timezone = timezone
26
+ @frequency = frequency
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 @cutoff_time == other.cutoff_time
33
+ return false unless @timezone == other.timezone
34
+ return false unless @frequency == other.frequency
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::Components::Schedule
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::Schedule
11
+ def cutoff_time(); end
12
+ def cutoff_time=(str_); end
13
+ def timezone(); end
14
+ def timezone=(str_); end
15
+ def frequency(); end
16
+ def frequency=(str_); end
17
+ end
@@ -7,7 +7,7 @@
7
7
  module Moov
8
8
  module Models
9
9
  module Components
10
- # A window of time during which the card may authorize.
10
+ # A window of time during which authorizations on the card can be approved.
11
11
  class ScheduleWindow
12
12
  extend T::Sig
13
13
  include Crystalline::MetadataFields
@@ -32,11 +32,13 @@ module Moov
32
32
  field :minimum_balance, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('minimumBalance') } }
33
33
  # The text that appears on the banking statement. The default descriptor is a 10 character ID if an override is not set in the sweep configs statementDescriptor.
34
34
  field :statement_descriptor, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('statementDescriptor') } }
35
+ # A configured wallet-level override of the time of day the sweep runs.
36
+ field :schedule, Crystalline::Nilable.new(Models::Components::SweepConfigSchedule), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('schedule') } }
35
37
  # An array of fields that are locked. To request updates, please contact Moov support.
36
38
  field :locked_fields, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('lockedFields') } }
37
39
 
38
- sig { params(sweep_config_id: ::String, wallet_id: ::String, status: Models::Components::SweepConfigStatus, push_payment_method: Models::Components::SweepConfigPaymentMethod, pull_payment_method: Models::Components::SweepConfigPaymentMethod, created_on: ::DateTime, updated_on: ::DateTime, minimum_balance: T.nilable(::String), statement_descriptor: T.nilable(::String), locked_fields: T.nilable(T::Array[::String])).void }
39
- def initialize(sweep_config_id:, wallet_id:, status:, push_payment_method:, pull_payment_method:, created_on:, updated_on:, minimum_balance: nil, statement_descriptor: nil, locked_fields: nil)
40
+ sig { params(sweep_config_id: ::String, wallet_id: ::String, status: Models::Components::SweepConfigStatus, push_payment_method: Models::Components::SweepConfigPaymentMethod, pull_payment_method: Models::Components::SweepConfigPaymentMethod, created_on: ::DateTime, updated_on: ::DateTime, minimum_balance: T.nilable(::String), statement_descriptor: T.nilable(::String), schedule: T.nilable(Models::Components::SweepConfigSchedule), locked_fields: T.nilable(T::Array[::String])).void }
41
+ def initialize(sweep_config_id:, wallet_id:, status:, push_payment_method:, pull_payment_method:, created_on:, updated_on:, minimum_balance: nil, statement_descriptor: nil, schedule: nil, locked_fields: nil)
40
42
  @sweep_config_id = sweep_config_id
41
43
  @wallet_id = wallet_id
42
44
  @status = status
@@ -46,6 +48,7 @@ module Moov
46
48
  @updated_on = updated_on
47
49
  @minimum_balance = minimum_balance
48
50
  @statement_descriptor = statement_descriptor
51
+ @schedule = schedule
49
52
  @locked_fields = locked_fields
50
53
  end
51
54
 
@@ -61,6 +64,7 @@ module Moov
61
64
  return false unless @updated_on == other.updated_on
62
65
  return false unless @minimum_balance == other.minimum_balance
63
66
  return false unless @statement_descriptor == other.statement_descriptor
67
+ return false unless @schedule == other.schedule
64
68
  return false unless @locked_fields == other.locked_fields
65
69
  true
66
70
  end
@@ -26,6 +26,8 @@ class Moov::Models::Components::SweepConfig
26
26
  def minimum_balance=(str_); end
27
27
  def statement_descriptor(); end
28
28
  def statement_descriptor=(str_); end
29
+ def schedule(); end
30
+ def schedule=(str_); end
29
31
  def locked_fields(); end
30
32
  def locked_fields=(str_); end
31
33
  end
@@ -0,0 +1,40 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Moov
8
+ module Models
9
+ module Components
10
+
11
+ class SweepConfigSchedule
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # Time of day the sweep runs, in 24-hour `HH:mm` format. Must fall on a 15-minute mark (`:00`, `:15`, `:30`, `:45`).
16
+ field :cutoff_time, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cutoffTime'), required: true } }
17
+ # IANA timezone for `cutoffTime`, such as `America/New_York` or `UTC`.
18
+ field :timezone, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('timezone'), required: true } }
19
+ # How often the sweep runs. Defaults to `daily`.
20
+ field :frequency, Crystalline::Nilable.new(Models::Components::SweepScheduleFrequency), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('frequency'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::SweepScheduleFrequency, true) } }
21
+
22
+ sig { params(cutoff_time: ::String, timezone: ::String, frequency: T.nilable(Models::Components::SweepScheduleFrequency)).void }
23
+ def initialize(cutoff_time:, timezone:, frequency: nil)
24
+ @cutoff_time = cutoff_time
25
+ @timezone = timezone
26
+ @frequency = frequency
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 @cutoff_time == other.cutoff_time
33
+ return false unless @timezone == other.timezone
34
+ return false unless @frequency == other.frequency
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::Components::SweepConfigSchedule
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::SweepConfigSchedule
11
+ def cutoff_time(); end
12
+ def cutoff_time=(str_); end
13
+ def timezone(); end
14
+ def timezone=(str_); end
15
+ def frequency(); end
16
+ def frequency=(str_); end
17
+ end
@@ -0,0 +1,40 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Moov
8
+ module Models
9
+ module Components
10
+
11
+ class SweepConfigScheduleError
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :cutoff_time, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cutoffTime') } }
17
+
18
+ field :timezone, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('timezone') } }
19
+
20
+ field :frequency, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('frequency') } }
21
+
22
+ sig { params(cutoff_time: T.nilable(::String), timezone: T.nilable(::String), frequency: T.nilable(::String)).void }
23
+ def initialize(cutoff_time: nil, timezone: nil, frequency: nil)
24
+ @cutoff_time = cutoff_time
25
+ @timezone = timezone
26
+ @frequency = frequency
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 @cutoff_time == other.cutoff_time
33
+ return false unless @timezone == other.timezone
34
+ return false unless @frequency == other.frequency
35
+ true
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end