moov_ruby 0.3.38 → 0.3.39

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 (72) hide show
  1. checksums.yaml +4 -4
  2. data/lib/crystalline/metadata_fields.rb +3 -1
  3. data/lib/crystalline/module.rb +6 -2
  4. data/lib/crystalline/types.rb +52 -0
  5. data/lib/moov/models/components/achcreditsamedaytransferpaymentmethod.rb +40 -0
  6. data/lib/moov/models/components/achcreditsamedaytransferpaymentmethod.rbi +17 -0
  7. data/lib/moov/models/components/achcreditsamedaytransferpaymentmethod_paymentmethodtype.rb +18 -0
  8. data/lib/moov/models/components/achcreditsamedaytransferpaymentmethod_paymentmethodtype.rbi +11 -0
  9. data/lib/moov/models/components/achcreditstandardtransferpaymentmethod.rb +40 -0
  10. data/lib/moov/models/components/achcreditstandardtransferpaymentmethod.rbi +17 -0
  11. data/lib/moov/models/components/achcreditstandardtransferpaymentmethod_paymentmethodtype.rb +18 -0
  12. data/lib/moov/models/components/achcreditstandardtransferpaymentmethod_paymentmethodtype.rbi +11 -0
  13. data/lib/moov/models/components/achdebitcollecttransferpaymentmethod.rb +40 -0
  14. data/lib/moov/models/components/achdebitcollecttransferpaymentmethod.rbi +17 -0
  15. data/lib/moov/models/components/achdebitcollecttransferpaymentmethod_paymentmethodtype.rb +18 -0
  16. data/lib/moov/models/components/achdebitcollecttransferpaymentmethod_paymentmethodtype.rbi +11 -0
  17. data/lib/moov/models/components/achdebitfundtransferpaymentmethod.rb +40 -0
  18. data/lib/moov/models/components/achdebitfundtransferpaymentmethod.rbi +17 -0
  19. data/lib/moov/models/components/achdebitfundtransferpaymentmethod_paymentmethodtype.rb +18 -0
  20. data/lib/moov/models/components/achdebitfundtransferpaymentmethod_paymentmethodtype.rbi +11 -0
  21. data/lib/moov/models/components/applepaytransferpaymentmethod.rb +40 -0
  22. data/lib/moov/models/components/applepaytransferpaymentmethod.rbi +17 -0
  23. data/lib/moov/models/components/applepaytransferpaymentmethod_paymentmethodtype.rb +18 -0
  24. data/lib/moov/models/components/applepaytransferpaymentmethod_paymentmethodtype.rbi +11 -0
  25. data/lib/moov/models/components/cardpaymenttransferpaymentmethod.rb +40 -0
  26. data/lib/moov/models/components/cardpaymenttransferpaymentmethod.rbi +17 -0
  27. data/lib/moov/models/components/cardpaymenttransferpaymentmethod_paymentmethodtype.rb +18 -0
  28. data/lib/moov/models/components/cardpaymenttransferpaymentmethod_paymentmethodtype.rbi +11 -0
  29. data/lib/moov/models/components/cardpresentpaymenttransferpaymentmethod.rb +40 -0
  30. data/lib/moov/models/components/cardpresentpaymenttransferpaymentmethod.rbi +17 -0
  31. data/lib/moov/models/components/cardpresentpaymenttransferpaymentmethod_paymentmethodtype.rb +18 -0
  32. data/lib/moov/models/components/cardpresentpaymenttransferpaymentmethod_paymentmethodtype.rbi +11 -0
  33. data/lib/moov/models/components/instantbankcredittransferpaymentmethod.rb +40 -0
  34. data/lib/moov/models/components/instantbankcredittransferpaymentmethod.rbi +17 -0
  35. data/lib/moov/models/components/instantbankcredittransferpaymentmethod_paymentmethodtype.rb +18 -0
  36. data/lib/moov/models/components/instantbankcredittransferpaymentmethod_paymentmethodtype.rbi +11 -0
  37. data/lib/moov/models/components/moovwallettransferpaymentmethod.rb +40 -0
  38. data/lib/moov/models/components/moovwallettransferpaymentmethod.rbi +17 -0
  39. data/lib/moov/models/components/moovwallettransferpaymentmethod_paymentmethodtype.rb +18 -0
  40. data/lib/moov/models/components/moovwallettransferpaymentmethod_paymentmethodtype.rbi +11 -0
  41. data/lib/moov/models/components/pullfromcardtransferpaymentmethod.rb +40 -0
  42. data/lib/moov/models/components/pullfromcardtransferpaymentmethod.rbi +17 -0
  43. data/lib/moov/models/components/pullfromcardtransferpaymentmethod_paymentmethodtype.rb +18 -0
  44. data/lib/moov/models/components/pullfromcardtransferpaymentmethod_paymentmethodtype.rbi +11 -0
  45. data/lib/moov/models/components/pushtocardtransferpaymentmethod.rb +40 -0
  46. data/lib/moov/models/components/pushtocardtransferpaymentmethod.rbi +17 -0
  47. data/lib/moov/models/components/pushtocardtransferpaymentmethod_paymentmethodtype.rb +18 -0
  48. data/lib/moov/models/components/pushtocardtransferpaymentmethod_paymentmethodtype.rbi +11 -0
  49. data/lib/moov/models/components/rtpcredittransferpaymentmethod.rb +40 -0
  50. data/lib/moov/models/components/rtpcredittransferpaymentmethod.rbi +17 -0
  51. data/lib/moov/models/components/rtpcredittransferpaymentmethod_paymentmethodtype.rb +18 -0
  52. data/lib/moov/models/components/rtpcredittransferpaymentmethod_paymentmethodtype.rbi +11 -0
  53. data/lib/moov/models/components/transferdestination.rb +5 -5
  54. data/lib/moov/models/components/transferentrymode.rb +18 -0
  55. data/lib/moov/models/components/transferentrymode.rbi +11 -0
  56. data/lib/moov/models/components/transferoptions.rb +3 -3
  57. data/lib/moov/models/components/transferpaymentmethod.rb +27 -0
  58. data/lib/moov/models/components/transferpaymentmethod.rbi +11 -0
  59. data/lib/moov/models/components/transferpaymentmethodsbankaccount.rb +70 -0
  60. data/lib/moov/models/components/transferpaymentmethodsbankaccount.rbi +31 -0
  61. data/lib/moov/models/components/transferpaymentmethodscard.rb +98 -0
  62. data/lib/moov/models/components/transferpaymentmethodscard.rbi +45 -0
  63. data/lib/moov/models/components/transferpaymentmethodswallet.rb +42 -0
  64. data/lib/moov/models/components/transferpaymentmethodswallet.rbi +17 -0
  65. data/lib/moov/models/components/transferpaymentmethodtype.rb +29 -0
  66. data/lib/moov/models/components/transferpaymentmethodtype.rbi +11 -0
  67. data/lib/moov/models/components/transfersource.rb +6 -6
  68. data/lib/moov/models/components/transferterminalcard.rb +78 -0
  69. data/lib/moov/models/components/transferterminalcard.rbi +35 -0
  70. data/lib/moov/models/components.rb +31 -0
  71. data/lib/moov/sdkconfiguration.rb +3 -3
  72. metadata +64 -2
@@ -0,0 +1,27 @@
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 method of moving money
11
+ class TransferPaymentMethod
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+
17
+ def initialize; end
18
+
19
+ sig { params(other: T.untyped).returns(T::Boolean) }
20
+ def ==(other)
21
+ return false unless other.is_a? self.class
22
+ true
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,11 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::TransferPaymentMethod
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::TransferPaymentMethod
11
+ end
@@ -0,0 +1,70 @@
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 bank account as contained within a payment method.
11
+ class TransferPaymentMethodsBankAccount
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :bank_account_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('bankAccountID'), required: true } }
17
+ # Once the bank account is linked, we don't reveal the full bank account number.
18
+ #
19
+ # The fingerprint acts as a way to identify whether two linked bank accounts are the same.
20
+ field :fingerprint, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('fingerprint'), required: true } }
21
+
22
+ field :status, Models::Components::BankAccountStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': Utils.enum_from_string(Models::Components::BankAccountStatus, false) } }
23
+
24
+ field :holder_name, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('holderName'), required: true } }
25
+ # The type of holder on a funding source.
26
+ field :holder_type, Models::Components::BankAccountHolderType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('holderType'), required: true, 'decoder': Utils.enum_from_string(Models::Components::BankAccountHolderType, false) } }
27
+
28
+ field :bank_name, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('bankName'), required: true } }
29
+ # The bank account type.
30
+ field :bank_account_type, Models::Components::BankAccountType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('bankAccountType'), required: true, 'decoder': Utils.enum_from_string(Models::Components::BankAccountType, false) } }
31
+
32
+ field :routing_number, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('routingNumber'), required: true } }
33
+
34
+ field :last_four_account_number, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('lastFourAccountNumber'), required: true } }
35
+
36
+ field :updated_on, ::DateTime, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('updatedOn'), required: true, 'decoder': Utils.datetime_from_iso_format(false) } }
37
+
38
+ sig { params(bank_account_id: ::String, fingerprint: ::String, status: Models::Components::BankAccountStatus, holder_name: ::String, holder_type: Models::Components::BankAccountHolderType, bank_name: ::String, bank_account_type: Models::Components::BankAccountType, routing_number: ::String, last_four_account_number: ::String, updated_on: ::DateTime).void }
39
+ def initialize(bank_account_id:, fingerprint:, status:, holder_name:, holder_type:, bank_name:, bank_account_type:, routing_number:, last_four_account_number:, updated_on:)
40
+ @bank_account_id = bank_account_id
41
+ @fingerprint = fingerprint
42
+ @status = status
43
+ @holder_name = holder_name
44
+ @holder_type = holder_type
45
+ @bank_name = bank_name
46
+ @bank_account_type = bank_account_type
47
+ @routing_number = routing_number
48
+ @last_four_account_number = last_four_account_number
49
+ @updated_on = updated_on
50
+ end
51
+
52
+ sig { params(other: T.untyped).returns(T::Boolean) }
53
+ def ==(other)
54
+ return false unless other.is_a? self.class
55
+ return false unless @bank_account_id == other.bank_account_id
56
+ return false unless @fingerprint == other.fingerprint
57
+ return false unless @status == other.status
58
+ return false unless @holder_name == other.holder_name
59
+ return false unless @holder_type == other.holder_type
60
+ return false unless @bank_name == other.bank_name
61
+ return false unless @bank_account_type == other.bank_account_type
62
+ return false unless @routing_number == other.routing_number
63
+ return false unless @last_four_account_number == other.last_four_account_number
64
+ return false unless @updated_on == other.updated_on
65
+ true
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,31 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::TransferPaymentMethodsBankAccount
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::TransferPaymentMethodsBankAccount
11
+ def bank_account_id(); end
12
+ def bank_account_id=(str_); end
13
+ def fingerprint(); end
14
+ def fingerprint=(str_); end
15
+ def status(); end
16
+ def status=(str_); end
17
+ def holder_name(); end
18
+ def holder_name=(str_); end
19
+ def holder_type(); end
20
+ def holder_type=(str_); end
21
+ def bank_name(); end
22
+ def bank_name=(str_); end
23
+ def bank_account_type(); end
24
+ def bank_account_type=(str_); end
25
+ def routing_number(); end
26
+ def routing_number=(str_); end
27
+ def last_four_account_number(); end
28
+ def last_four_account_number=(str_); end
29
+ def updated_on(); end
30
+ def updated_on=(str_); end
31
+ end
@@ -0,0 +1,98 @@
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 card as contained within a payment method.
11
+ class TransferPaymentMethodsCard
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # ID of the card.
16
+ field :card_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardID'), required: true } }
17
+ # Uniquely identifies a linked payment card or token.
18
+ # For Apple Pay, the fingerprint is based on the tokenized card number and may vary based on the user's device.
19
+ # This field can be used to identify specific payment methods across multiple accounts on your platform.
20
+ field :fingerprint, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('fingerprint'), required: true } }
21
+ # The card brand.
22
+ field :brand, Models::Components::CardBrand, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('brand'), required: true, 'decoder': Utils.enum_from_string(Models::Components::CardBrand, false) } }
23
+ # The type of the card.
24
+ field :card_type, Models::Components::CardType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardType'), required: true, 'decoder': Utils.enum_from_string(Models::Components::CardType, false) } }
25
+ # Last four digits of the card number
26
+ field :last_four_card_number, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('lastFourCardNumber'), required: true } }
27
+ # The first six to eight digits of the card number, which identifies the financial institution that issued the card.
28
+ field :bin, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('bin'), required: true } }
29
+ # The expiration date of the card or token.
30
+ field :expiration, Models::Components::CardExpiration, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('expiration'), required: true } }
31
+
32
+ field :billing_address, Models::Components::CardAddress, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('billingAddress'), required: true } }
33
+ # The results of submitting cardholder data to a card network for verification.
34
+ field :card_verification, Models::Components::CardVerification, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardVerification'), required: true } }
35
+ # The name of the cardholder as it appears on the card.
36
+ field :holder_name, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('holderName') } }
37
+ # Financial institution that issued the card.
38
+ field :issuer, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('issuer') } }
39
+ # Country where the card was issued.
40
+ field :issuer_country, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('issuerCountry') } }
41
+ # Indicates cardholder has authorized card to be stored for future payments.
42
+ field :card_on_file, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardOnFile') } }
43
+
44
+ field :merchant_account_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('merchantAccountID') } }
45
+ # The results of the most recent card update request.
46
+ field :card_account_updater, Crystalline::Nilable.new(Models::Components::CardAccountUpdater), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardAccountUpdater') } }
47
+ # Indicates which level of domestic push-to-card transfer is supported by the card, if any.
48
+ field :domestic_push_to_card, Crystalline::Nilable.new(Models::Components::DomesticPushToCard), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('domesticPushToCard'), 'decoder': Utils.enum_from_string(Models::Components::DomesticPushToCard, true) } }
49
+ # Indicates if the card supports domestic pull-from-card transfer.
50
+ field :domestic_pull_from_card, Crystalline::Nilable.new(Models::Components::DomesticPullFromCard), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('domesticPullFromCard'), 'decoder': Utils.enum_from_string(Models::Components::DomesticPullFromCard, true) } }
51
+
52
+ sig { params(card_id: ::String, fingerprint: ::String, brand: Models::Components::CardBrand, card_type: Models::Components::CardType, last_four_card_number: ::String, bin: ::String, expiration: Models::Components::CardExpiration, billing_address: Models::Components::CardAddress, card_verification: Models::Components::CardVerification, holder_name: T.nilable(::String), issuer: T.nilable(::String), issuer_country: T.nilable(::String), card_on_file: T.nilable(T::Boolean), merchant_account_id: T.nilable(::String), card_account_updater: T.nilable(Models::Components::CardAccountUpdater), domestic_push_to_card: T.nilable(Models::Components::DomesticPushToCard), domestic_pull_from_card: T.nilable(Models::Components::DomesticPullFromCard)).void }
53
+ def initialize(card_id:, fingerprint:, brand:, card_type:, last_four_card_number:, bin:, expiration:, billing_address:, card_verification:, holder_name: nil, issuer: nil, issuer_country: nil, card_on_file: nil, merchant_account_id: nil, card_account_updater: nil, domestic_push_to_card: nil, domestic_pull_from_card: nil)
54
+ @card_id = card_id
55
+ @fingerprint = fingerprint
56
+ @brand = brand
57
+ @card_type = card_type
58
+ @last_four_card_number = last_four_card_number
59
+ @bin = bin
60
+ @expiration = expiration
61
+ @billing_address = billing_address
62
+ @card_verification = card_verification
63
+ @holder_name = holder_name
64
+ @issuer = issuer
65
+ @issuer_country = issuer_country
66
+ @card_on_file = card_on_file
67
+ @merchant_account_id = merchant_account_id
68
+ @card_account_updater = card_account_updater
69
+ @domestic_push_to_card = domestic_push_to_card
70
+ @domestic_pull_from_card = domestic_pull_from_card
71
+ end
72
+
73
+ sig { params(other: T.untyped).returns(T::Boolean) }
74
+ def ==(other)
75
+ return false unless other.is_a? self.class
76
+ return false unless @card_id == other.card_id
77
+ return false unless @fingerprint == other.fingerprint
78
+ return false unless @brand == other.brand
79
+ return false unless @card_type == other.card_type
80
+ return false unless @last_four_card_number == other.last_four_card_number
81
+ return false unless @bin == other.bin
82
+ return false unless @expiration == other.expiration
83
+ return false unless @billing_address == other.billing_address
84
+ return false unless @card_verification == other.card_verification
85
+ return false unless @holder_name == other.holder_name
86
+ return false unless @issuer == other.issuer
87
+ return false unless @issuer_country == other.issuer_country
88
+ return false unless @card_on_file == other.card_on_file
89
+ return false unless @merchant_account_id == other.merchant_account_id
90
+ return false unless @card_account_updater == other.card_account_updater
91
+ return false unless @domestic_push_to_card == other.domestic_push_to_card
92
+ return false unless @domestic_pull_from_card == other.domestic_pull_from_card
93
+ true
94
+ end
95
+ end
96
+ end
97
+ end
98
+ end
@@ -0,0 +1,45 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::TransferPaymentMethodsCard
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::TransferPaymentMethodsCard
11
+ def card_id(); end
12
+ def card_id=(str_); end
13
+ def fingerprint(); end
14
+ def fingerprint=(str_); end
15
+ def brand(); end
16
+ def brand=(str_); end
17
+ def card_type(); end
18
+ def card_type=(str_); end
19
+ def last_four_card_number(); end
20
+ def last_four_card_number=(str_); end
21
+ def bin(); end
22
+ def bin=(str_); end
23
+ def expiration(); end
24
+ def expiration=(str_); end
25
+ def billing_address(); end
26
+ def billing_address=(str_); end
27
+ def card_verification(); end
28
+ def card_verification=(str_); end
29
+ def holder_name(); end
30
+ def holder_name=(str_); end
31
+ def issuer(); end
32
+ def issuer=(str_); end
33
+ def issuer_country(); end
34
+ def issuer_country=(str_); end
35
+ def card_on_file(); end
36
+ def card_on_file=(str_); end
37
+ def merchant_account_id(); end
38
+ def merchant_account_id=(str_); end
39
+ def card_account_updater(); end
40
+ def card_account_updater=(str_); end
41
+ def domestic_push_to_card(); end
42
+ def domestic_push_to_card=(str_); end
43
+ def domestic_pull_from_card(); end
44
+ def domestic_pull_from_card=(str_); end
45
+ end
@@ -0,0 +1,42 @@
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 TransferPaymentMethodsWallet
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :wallet_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('walletID'), required: true } }
17
+
18
+ field :partner_account_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('partnerAccountID'), required: true } }
19
+ # Type of a wallet.
20
+ # - `default`: The system-generated wallet automatically created when an account is granted the wallet capability.
21
+ # - `general`: An additional, user-defined wallet created via API or Dashboard.
22
+ field :wallet_type, Models::Components::WalletType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('walletType'), required: true, 'decoder': Utils.enum_from_string(Models::Components::WalletType, false) } }
23
+
24
+ sig { params(wallet_id: ::String, partner_account_id: ::String, wallet_type: Models::Components::WalletType).void }
25
+ def initialize(wallet_id:, partner_account_id:, wallet_type:)
26
+ @wallet_id = wallet_id
27
+ @partner_account_id = partner_account_id
28
+ @wallet_type = wallet_type
29
+ end
30
+
31
+ sig { params(other: T.untyped).returns(T::Boolean) }
32
+ def ==(other)
33
+ return false unless other.is_a? self.class
34
+ return false unless @wallet_id == other.wallet_id
35
+ return false unless @partner_account_id == other.partner_account_id
36
+ return false unless @wallet_type == other.wallet_type
37
+ true
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,17 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::TransferPaymentMethodsWallet
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::TransferPaymentMethodsWallet
11
+ def wallet_id(); end
12
+ def wallet_id=(str_); end
13
+ def partner_account_id(); end
14
+ def partner_account_id=(str_); end
15
+ def wallet_type(); end
16
+ def wallet_type=(str_); end
17
+ end
@@ -0,0 +1,29 @@
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
+ # TransferPaymentMethodType - The payment method type that represents a payment rail and directionality
11
+ class TransferPaymentMethodType < T::Enum
12
+ enums do
13
+ MOOV_WALLET = new('moov-wallet')
14
+ ACH_DEBIT_FUND = new('ach-debit-fund')
15
+ ACH_DEBIT_COLLECT = new('ach-debit-collect')
16
+ ACH_CREDIT_STANDARD = new('ach-credit-standard')
17
+ ACH_CREDIT_SAME_DAY = new('ach-credit-same-day')
18
+ RTP_CREDIT = new('rtp-credit')
19
+ CARD_PAYMENT = new('card-payment')
20
+ PUSH_TO_CARD = new('push-to-card')
21
+ PULL_FROM_CARD = new('pull-from-card')
22
+ APPLE_PAY = new('apple-pay')
23
+ CARD_PRESENT_PAYMENT = new('card-present-payment')
24
+ INSTANT_BANK_CREDIT = new('instant-bank-credit')
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,11 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::TransferPaymentMethodType
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::TransferPaymentMethodType
11
+ end
@@ -15,27 +15,27 @@ module Moov
15
15
 
16
16
  field :payment_method_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodID'), required: true } }
17
17
  # The payment method type that represents a payment rail and directionality
18
- field :payment_method_type, Models::Components::PaymentMethodType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodType'), required: true, 'decoder': Utils.enum_from_string(Models::Components::PaymentMethodType, false) } }
18
+ field :payment_method_type, Models::Components::TransferPaymentMethodType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodType'), required: true, 'decoder': Utils.enum_from_string(Models::Components::TransferPaymentMethodType, false) } }
19
19
 
20
20
  field :account, Models::Components::TransferAccount, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('account'), required: true } }
21
21
  # String present only if the transfer is part of a transfer group.
22
22
  field :transfer_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('transferID') } }
23
23
  # A bank account as contained within a payment method.
24
- field :bank_account, Crystalline::Nilable.new(Models::Components::PaymentMethodsBankAccount), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('bankAccount') } }
24
+ field :bank_account, Crystalline::Nilable.new(Models::Components::TransferPaymentMethodsBankAccount), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('bankAccount') } }
25
25
 
26
- field :wallet, Crystalline::Nilable.new(Models::Components::PaymentMethodsWallet), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('wallet') } }
26
+ field :wallet, Crystalline::Nilable.new(Models::Components::TransferPaymentMethodsWallet), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('wallet') } }
27
27
  # A card as contained within a payment method.
28
- field :card, Crystalline::Nilable.new(Models::Components::PaymentMethodsCard), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('card') } }
28
+ field :card, Crystalline::Nilable.new(Models::Components::TransferPaymentMethodsCard), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('card') } }
29
29
  # Describes an Apple Pay token on a Moov account.
30
30
  field :apple_pay, Crystalline::Nilable.new(Models::Components::ApplePayResponse), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('applePay') } }
31
31
  # Describes payment card details captured with tap or in-person payment.
32
- field :terminal_card, Crystalline::Nilable.new(Models::Components::TerminalCard), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('terminalCard') } }
32
+ field :terminal_card, Crystalline::Nilable.new(Models::Components::TransferTerminalCard), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('terminalCard') } }
33
33
  # Card-specific details about the transaction.
34
34
  field :card_details, Crystalline::Nilable.new(Models::Components::CardTransactionDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardDetails') } }
35
35
  # ACH specific details about the transaction.
36
36
  field :ach_details, Crystalline::Nilable.new(Models::Components::ACHTransactionDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('achDetails') } }
37
37
 
38
- sig { params(payment_method_id: ::String, payment_method_type: Models::Components::PaymentMethodType, account: Models::Components::TransferAccount, transfer_id: T.nilable(::String), bank_account: T.nilable(Models::Components::PaymentMethodsBankAccount), wallet: T.nilable(Models::Components::PaymentMethodsWallet), card: T.nilable(Models::Components::PaymentMethodsCard), apple_pay: T.nilable(Models::Components::ApplePayResponse), terminal_card: T.nilable(Models::Components::TerminalCard), card_details: T.nilable(Models::Components::CardTransactionDetails), ach_details: T.nilable(Models::Components::ACHTransactionDetails)).void }
38
+ sig { params(payment_method_id: ::String, payment_method_type: Models::Components::TransferPaymentMethodType, account: Models::Components::TransferAccount, transfer_id: T.nilable(::String), bank_account: T.nilable(Models::Components::TransferPaymentMethodsBankAccount), wallet: T.nilable(Models::Components::TransferPaymentMethodsWallet), card: T.nilable(Models::Components::TransferPaymentMethodsCard), apple_pay: T.nilable(Models::Components::ApplePayResponse), terminal_card: T.nilable(Models::Components::TransferTerminalCard), card_details: T.nilable(Models::Components::CardTransactionDetails), ach_details: T.nilable(Models::Components::ACHTransactionDetails)).void }
39
39
  def initialize(payment_method_id:, payment_method_type:, account:, transfer_id: nil, bank_account: nil, wallet: nil, card: nil, apple_pay: nil, terminal_card: nil, card_details: nil, ach_details: nil)
40
40
  @payment_method_id = payment_method_id
41
41
  @payment_method_type = payment_method_type
@@ -0,0 +1,78 @@
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
+ # Describes payment card details captured with tap or in-person payment.
11
+ class TransferTerminalCard
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # How the card information was entered into the point of sale terminal.
16
+ field :entry_mode, Crystalline::Nilable.new(Models::Components::TransferEntryMode), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('entryMode'), 'decoder': Utils.enum_from_string(Models::Components::TransferEntryMode, true) } }
17
+ # The card brand.
18
+ field :brand, Crystalline::Nilable.new(Models::Components::CardBrand), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('brand'), 'decoder': Utils.enum_from_string(Models::Components::CardBrand, true) } }
19
+
20
+ field :bin, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('bin') } }
21
+ # The type of the card.
22
+ field :card_type, Crystalline::Nilable.new(Models::Components::CardType), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardType'), 'decoder': Utils.enum_from_string(Models::Components::CardType, true) } }
23
+ # The expiration date of the card or token.
24
+ field :expiration, Crystalline::Nilable.new(Models::Components::CardExpiration), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('expiration') } }
25
+ # Uniquely identifies a linked payment card or token.
26
+ # For Apple Pay, the fingerprint is based on the tokenized card number and may vary based on the user's device.
27
+ # This field can be used to identify specific payment methods across multiple accounts on your platform.
28
+ field :fingerprint, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('fingerprint') } }
29
+ # The name of the cardholder as it appears on the card.
30
+ field :holder_name, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('holderName') } }
31
+ # Financial institution that issued the card.
32
+ field :issuer, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('issuer') } }
33
+ # Country where the card was issued.
34
+ field :issuer_country, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('issuerCountry') } }
35
+ # Last four digits of the card number
36
+ field :last_four_card_number, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('lastFourCardNumber') } }
37
+ # Identifier for the point of sale terminal application.
38
+ field :application_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('applicationID') } }
39
+ # Name label for the point of sale terminal application.
40
+ field :application_name, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('applicationName') } }
41
+
42
+ sig { params(entry_mode: T.nilable(Models::Components::TransferEntryMode), brand: T.nilable(Models::Components::CardBrand), bin: T.nilable(::String), card_type: T.nilable(Models::Components::CardType), expiration: T.nilable(Models::Components::CardExpiration), fingerprint: T.nilable(::String), holder_name: T.nilable(::String), issuer: T.nilable(::String), issuer_country: T.nilable(::String), last_four_card_number: T.nilable(::String), application_id: T.nilable(::String), application_name: T.nilable(::String)).void }
43
+ def initialize(entry_mode: nil, brand: nil, bin: nil, card_type: nil, expiration: nil, fingerprint: nil, holder_name: nil, issuer: nil, issuer_country: nil, last_four_card_number: nil, application_id: nil, application_name: nil)
44
+ @entry_mode = entry_mode
45
+ @brand = brand
46
+ @bin = bin
47
+ @card_type = card_type
48
+ @expiration = expiration
49
+ @fingerprint = fingerprint
50
+ @holder_name = holder_name
51
+ @issuer = issuer
52
+ @issuer_country = issuer_country
53
+ @last_four_card_number = last_four_card_number
54
+ @application_id = application_id
55
+ @application_name = application_name
56
+ end
57
+
58
+ sig { params(other: T.untyped).returns(T::Boolean) }
59
+ def ==(other)
60
+ return false unless other.is_a? self.class
61
+ return false unless @entry_mode == other.entry_mode
62
+ return false unless @brand == other.brand
63
+ return false unless @bin == other.bin
64
+ return false unless @card_type == other.card_type
65
+ return false unless @expiration == other.expiration
66
+ return false unless @fingerprint == other.fingerprint
67
+ return false unless @holder_name == other.holder_name
68
+ return false unless @issuer == other.issuer
69
+ return false unless @issuer_country == other.issuer_country
70
+ return false unless @last_four_card_number == other.last_four_card_number
71
+ return false unless @application_id == other.application_id
72
+ return false unless @application_name == other.application_name
73
+ true
74
+ end
75
+ end
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,35 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::TransferTerminalCard
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::TransferTerminalCard
11
+ def entry_mode(); end
12
+ def entry_mode=(str_); end
13
+ def brand(); end
14
+ def brand=(str_); end
15
+ def bin(); end
16
+ def bin=(str_); end
17
+ def card_type(); end
18
+ def card_type=(str_); end
19
+ def expiration(); end
20
+ def expiration=(str_); end
21
+ def fingerprint(); end
22
+ def fingerprint=(str_); end
23
+ def holder_name(); end
24
+ def holder_name=(str_); end
25
+ def issuer(); end
26
+ def issuer=(str_); end
27
+ def issuer_country(); end
28
+ def issuer_country=(str_); end
29
+ def last_four_card_number(); end
30
+ def last_four_card_number=(str_); end
31
+ def application_id(); end
32
+ def application_id=(str_); end
33
+ def application_name(); end
34
+ def application_name=(str_); end
35
+ end