moov_ruby 0.0.0.pre.dev.10 → 0.0.0.pre.dev.12

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 (68) hide show
  1. checksums.yaml +4 -4
  2. data/lib/moov/apple_pay.rb +5 -5
  3. data/lib/moov/card_issuing.rb +22 -13
  4. data/lib/moov/models/components/accountnameverification.rb +4 -4
  5. data/lib/moov/models/components/batchgettransfersrequest.rb +32 -0
  6. data/lib/moov/models/components/batchgettransfersrequest.rbi +13 -0
  7. data/lib/moov/models/components/card.rb +3 -2
  8. data/lib/moov/models/components/cardaccountupdater.rb +1 -1
  9. data/lib/moov/models/components/cardaddress.rb +6 -6
  10. data/lib/moov/models/components/cardexpiration.rb +2 -2
  11. data/lib/moov/models/components/cardpayouttype.rb +18 -0
  12. data/lib/moov/models/components/cardpayouttype.rbi +11 -0
  13. data/lib/moov/models/components/cardverification.rb +6 -4
  14. data/lib/moov/models/components/cardverificationresult.rb +1 -1
  15. data/lib/moov/models/components/createtransferdestinationcard.rb +6 -2
  16. data/lib/moov/models/components/createtransferdestinationcard.rbi +2 -0
  17. data/lib/moov/models/components/linkcard.rb +10 -7
  18. data/lib/moov/models/components/paymentmethodscard.rb +3 -2
  19. data/lib/moov/models/components/paymentmethodtype.rb +2 -0
  20. data/lib/moov/models/components/pullfromapplepaypaymentmethod.rb +40 -0
  21. data/lib/moov/models/components/pullfromapplepaypaymentmethod.rbi +17 -0
  22. data/lib/moov/models/components/pullfromapplepaypaymentmethod_paymentmethodtype.rb +18 -0
  23. data/lib/moov/models/components/pullfromapplepaypaymentmethod_paymentmethodtype.rbi +11 -0
  24. data/lib/moov/models/components/pullfromapplepaytransferpaymentmethod.rb +40 -0
  25. data/lib/moov/models/components/pullfromapplepaytransferpaymentmethod.rbi +17 -0
  26. data/lib/moov/models/components/pullfromapplepaytransferpaymentmethod_paymentmethodtype.rb +18 -0
  27. data/lib/moov/models/components/pullfromapplepaytransferpaymentmethod_paymentmethodtype.rbi +11 -0
  28. data/lib/moov/models/components/pushtoapplepaypaymentmethod.rb +40 -0
  29. data/lib/moov/models/components/pushtoapplepaypaymentmethod.rbi +17 -0
  30. data/lib/moov/models/components/pushtoapplepaypaymentmethod_paymentmethodtype.rb +18 -0
  31. data/lib/moov/models/components/pushtoapplepaypaymentmethod_paymentmethodtype.rbi +11 -0
  32. data/lib/moov/models/components/pushtoapplepaytransferpaymentmethod.rb +40 -0
  33. data/lib/moov/models/components/pushtoapplepaytransferpaymentmethod.rbi +17 -0
  34. data/lib/moov/models/components/pushtoapplepaytransferpaymentmethod_paymentmethodtype.rb +18 -0
  35. data/lib/moov/models/components/pushtoapplepaytransferpaymentmethod_paymentmethodtype.rbi +11 -0
  36. data/lib/moov/models/components/rtpdetails.rb +58 -0
  37. data/lib/moov/models/components/rtpdetails.rbi +25 -0
  38. data/lib/moov/models/components/rtpfailurecode.rb +27 -0
  39. data/lib/moov/models/components/rtpfailurecode.rbi +11 -0
  40. data/lib/moov/models/components/rtptransactionstatus.rb +21 -0
  41. data/lib/moov/models/components/rtptransactionstatus.rbi +11 -0
  42. data/lib/moov/models/components/transferdestination.rb +6 -2
  43. data/lib/moov/models/components/transferdestination.rbi +2 -0
  44. data/lib/moov/models/components/transferoptions.rb +3 -3
  45. data/lib/moov/models/components/transferpaymentmethodscard.rb +3 -2
  46. data/lib/moov/models/components/transferpaymentmethodtype.rb +2 -0
  47. data/lib/moov/models/components/updatecard.rb +9 -6
  48. data/lib/moov/models/components/updatecardaddress.rb +6 -6
  49. data/lib/moov/models/components/updatecardexpiration.rb +2 -2
  50. data/lib/moov/models/components/webhookbillingstatementcreated.rb +6 -2
  51. data/lib/moov/models/components/webhookbillingstatementcreated.rbi +2 -0
  52. data/lib/moov/models/components.rb +13 -0
  53. data/lib/moov/models/operations/batchgettransfers_request.rb +36 -0
  54. data/lib/moov/models/operations/batchgettransfers_request.rbi +15 -0
  55. data/lib/moov/models/operations/batchgettransfers_response.rb +48 -0
  56. data/lib/moov/models/operations/batchgettransfers_response.rbi +21 -0
  57. data/lib/moov/models/operations/getpaymentmethod_response.rb +2 -2
  58. data/lib/moov/models/operations/linkapplepaytoken_response.rb +5 -5
  59. data/lib/moov/models/operations/linkapplepaytoken_response.rbi +2 -2
  60. data/lib/moov/models/operations/listpaymentmethods_response.rb +2 -2
  61. data/lib/moov/models/operations/updateissuedcard_response.rb +6 -2
  62. data/lib/moov/models/operations/updateissuedcard_response.rbi +2 -0
  63. data/lib/moov/models/operations.rb +2 -0
  64. data/lib/moov/payment_methods.rb +2 -2
  65. data/lib/moov/sdkconfiguration.rb +5 -6
  66. data/lib/moov/transfers.rb +139 -0
  67. data/lib/moov/utils/security.rb +22 -11
  68. metadata +32 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 73779476f1b5442853d32871b804979af69e3764240847bec304d80945ceb022
4
- data.tar.gz: b0ee08f8232a85d4d871ca0cc9b4fa42feb9adad25ea81c750351abbd0e98701
3
+ metadata.gz: 65f1085953193d0c6f760f04b505064cf762404636cc701953f7cc3fe95d2871
4
+ data.tar.gz: 93643f718860312d468393e5b18bd1222c0e25c5161b5b0b12f2379a8b3c3cbe
5
5
  SHA512:
6
- metadata.gz: 915624a6b2ba16eaa5411bcd0e48984bd5f653e59b26f196a92df80df0a0016e09cc3594d9c40cdc126a8e110ab7f2956dff7740e4885d992f3fde96c06a3f04
7
- data.tar.gz: 47791b841e4df3800ec39cfd5e626e8ec9a3163b3002bbf5f93b70ccb909894fcc8eb7d74b0a04002ab698c3854214ae9f0491df809e139c1fc03c63225abb53
6
+ metadata.gz: 39cab29f0738b28876d4fd3095872db80d11374b151295aaaed0e202b8ca2b69deefc8ec375373ab4c820f08c17f43710de305a9c6bfa0cd5f0f73d807931f99
7
+ data.tar.gz: 3e362cea509bce9e4caab9ef028eec4be9fa8280c9597630ffd147fa19b8a35a1f6a54e780e63b0294924cc0885acc303ddd2d35b9f2baa771dfd1d2717a0d33
@@ -617,12 +617,12 @@ module Moov
617
617
 
618
618
  sig { params(link_apple_pay: Models::Components::LinkApplePay, account_id: ::String, timeout_ms: T.nilable(Integer), http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])).returns(Models::Operations::LinkApplePayTokenResponse) }
619
619
  def link_token(link_apple_pay:, account_id:, timeout_ms: nil, http_headers: nil)
620
- # link_token - Connect an Apple Pay token to the specified account.
620
+ # link_token - Connect an Apple Pay token to the specified account.
621
621
  #
622
- # Read our [Apple Pay tutorial](https://docs.moov.io/guides/sources/cards/apple-pay/#register-your-domains) to learn more.
622
+ # Read our [Apple Pay tutorial](https://docs.moov.io/guides/sources/cards/apple-pay/#register-your-domains) to learn more.
623
623
  # The `token` data is defined by Apple Pay and should be passed through from Apple Pay's response unmodified.
624
624
  #
625
- # To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
625
+ # To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
626
626
  # you'll need to specify the `/accounts/{accountID}/cards.write` scope.
627
627
  request = Models::Operations::LinkApplePayTokenRequest.new(
628
628
  account_id: account_id,
@@ -725,13 +725,13 @@ module Moov
725
725
  response: http_response
726
726
  )
727
727
  response_data = http_response.env.response_body
728
- obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Components::LinkedApplePayPaymentMethod)
728
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Crystalline::Array.new(Models::Components::LinkedApplePayPaymentMethod))
729
729
  response = Models::Operations::LinkApplePayTokenResponse.new(
730
730
  status_code: http_response.status,
731
731
  content_type: content_type,
732
732
  raw_response: http_response,
733
733
  headers: http_response.headers,
734
- linked_apple_pay_payment_method: T.unsafe(obj)
734
+ linked_apple_pay_payment_methods: T.unsafe(obj)
735
735
  )
736
736
 
737
737
  return response
@@ -555,19 +555,28 @@ module Moov
555
555
  end
556
556
 
557
557
  content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
558
- if Utils.match_status_code(http_response.status, ['204'])
559
- http_response = @sdk_configuration.hooks.after_success(
560
- hook_ctx: SDKHooks::AfterSuccessHookContext.new(
561
- hook_ctx: hook_ctx
562
- ),
563
- response: http_response
564
- )
565
- return Models::Operations::UpdateIssuedCardResponse.new(
566
- status_code: http_response.status,
567
- content_type: content_type,
568
- raw_response: http_response,
569
- headers: {}
570
- )
558
+ if Utils.match_status_code(http_response.status, ['200'])
559
+ if Utils.match_content_type(content_type, 'application/json')
560
+ http_response = @sdk_configuration.hooks.after_success(
561
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
562
+ hook_ctx: hook_ctx
563
+ ),
564
+ response: http_response
565
+ )
566
+ response_data = http_response.env.response_body
567
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Components::IssuedCard)
568
+ response = Models::Operations::UpdateIssuedCardResponse.new(
569
+ status_code: http_response.status,
570
+ content_type: content_type,
571
+ raw_response: http_response,
572
+ headers: http_response.headers,
573
+ issued_card: T.unsafe(obj)
574
+ )
575
+
576
+ return response
577
+ else
578
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
579
+ end
571
580
  elsif Utils.match_status_code(http_response.status, ['400', '409'])
572
581
  if Utils.match_content_type(content_type, 'application/json')
573
582
  http_response = @sdk_configuration.hooks.after_success(
@@ -12,13 +12,13 @@ module Moov
12
12
  extend T::Sig
13
13
  include Crystalline::MetadataFields
14
14
 
15
-
15
+ # Verification result of the cardholder's first name.
16
16
  field :first_name, Crystalline::Nilable.new(Models::Components::CardVerificationResult), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('firstName'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CardVerificationResult, true) } }
17
-
17
+ # Verification result of the cardholder's last name.
18
18
  field :last_name, Crystalline::Nilable.new(Models::Components::CardVerificationResult), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('lastName'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CardVerificationResult, true) } }
19
-
19
+ # Verification result of the cardholder's middle name.
20
20
  field :middle_name, Crystalline::Nilable.new(Models::Components::CardVerificationResult), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('middleName'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CardVerificationResult, true) } }
21
-
21
+ # Verification result of the cardholder's full name.
22
22
  field :full_name, Crystalline::Nilable.new(Models::Components::CardVerificationResult), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('fullName'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CardVerificationResult, true) } }
23
23
 
24
24
  sig { params(first_name: T.nilable(Models::Components::CardVerificationResult), last_name: T.nilable(Models::Components::CardVerificationResult), middle_name: T.nilable(Models::Components::CardVerificationResult), full_name: T.nilable(Models::Components::CardVerificationResult)).void }
@@ -0,0 +1,32 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Moov
8
+ module Models
9
+ module Components
10
+ # Array of transfer IDs to fetch.
11
+ class BatchGetTransfersRequest
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :transfer_i_ds, Crystalline::Array.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('transferIDs'), required: true } }
17
+
18
+ sig { params(transfer_i_ds: T::Array[::String]).void }
19
+ def initialize(transfer_i_ds:)
20
+ @transfer_i_ds = transfer_i_ds
21
+ end
22
+
23
+ sig { params(other: T.untyped).returns(T::Boolean) }
24
+ def ==(other)
25
+ return false unless other.is_a? self.class
26
+ return false unless @transfer_i_ds == other.transfer_i_ds
27
+ true
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,13 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::BatchGetTransfersRequest
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::BatchGetTransfersRequest
11
+ def transfer_i_ds(); end
12
+ def transfer_i_ds=(str_); end
13
+ end
@@ -28,7 +28,7 @@ module Moov
28
28
  field :bin, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('bin'), required: true } }
29
29
  # The expiration date of the card or token.
30
30
  field :expiration, Models::Components::CardExpiration, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('expiration'), required: true } }
31
-
31
+ # The billing address associated with the card.
32
32
  field :billing_address, Models::Components::CardAddress, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('billingAddress'), required: true } }
33
33
  # The results of submitting cardholder data to a card network for verification.
34
34
  field :card_verification, Models::Components::CardVerification, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardVerification'), required: true } }
@@ -53,7 +53,8 @@ module Moov
53
53
  field :regulated, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('regulated') } }
54
54
  # Indicates cardholder has authorized card to be stored for future payments.
55
55
  field :card_on_file, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardOnFile') } }
56
-
56
+ # Merchant account whose details (statement descriptor, address, etc.) are used for the card verification authorization.
57
+ # If omitted, the partner account's details are used instead.
57
58
  field :merchant_account_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('merchantAccountID') } }
58
59
  # The results of the most recent card update request.
59
60
  field :card_account_updater, Crystalline::Nilable.new(Models::Components::CardAccountUpdater), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardAccountUpdater') } }
@@ -12,7 +12,7 @@ module Moov
12
12
  extend T::Sig
13
13
  include Crystalline::MetadataFields
14
14
 
15
-
15
+ # Timestamp from the card network indicating when the card update was processed.
16
16
  field :updated_on, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('updatedOn'), 'decoder': ::Moov::Utils.datetime_from_iso_format(true) } }
17
17
  # The results of the card update request.
18
18
  field :update_type, Crystalline::Nilable.new(Models::Components::CardUpdateReason), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('updateType'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CardUpdateReason, true) } }
@@ -12,17 +12,17 @@ module Moov
12
12
  extend T::Sig
13
13
  include Crystalline::MetadataFields
14
14
 
15
-
15
+ # Postal or ZIP code.
16
16
  field :postal_code, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('postalCode'), required: true } }
17
-
17
+ # Street address line 1.
18
18
  field :address_line1, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('addressLine1') } }
19
-
19
+ # Street address line 2 (e.g., apartment or suite number).
20
20
  field :address_line2, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('addressLine2') } }
21
-
21
+ # City name.
22
22
  field :city, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('city') } }
23
-
23
+ # Two-letter state or province code.
24
24
  field :state_or_province, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('stateOrProvince') } }
25
-
25
+ # Two-letter ISO 3166-1 country code.
26
26
  field :country, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('country') } }
27
27
 
28
28
  sig { params(postal_code: ::String, address_line1: T.nilable(::String), address_line2: T.nilable(::String), city: T.nilable(::String), state_or_province: T.nilable(::String), country: T.nilable(::String)).void }
@@ -12,9 +12,9 @@ module Moov
12
12
  extend T::Sig
13
13
  include Crystalline::MetadataFields
14
14
 
15
-
15
+ # Two-digit month the card expires.
16
16
  field :month, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('month'), required: true } }
17
-
17
+ # Two-digit year the card expires.
18
18
  field :year, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('year'), required: true } }
19
19
 
20
20
  sig { params(month: ::String, year: ::String).void }
@@ -0,0 +1,18 @@
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
+ # CardPayoutType - Specifies the type of card payout for push-to-card transfers, used to determine the business application identifier (BAI) sent to the card network.
11
+ class CardPayoutType < T::Enum
12
+ enums do
13
+ LOYALTY = new('loyalty')
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,11 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::CardPayoutType
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::CardPayoutType
11
+ end
@@ -12,13 +12,15 @@ module Moov
12
12
  extend T::Sig
13
13
  include Crystalline::MetadataFields
14
14
 
15
-
15
+ # Verification result of the card's CVV.
16
16
  field :cvv, Models::Components::CardVerificationResult, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cvv'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CardVerificationResult, false) } }
17
-
17
+ # Verification result of the billing address line 1.
18
+ # Derived from the same AVS code as `postalCode`; the card network returns a single code covering both address fields.
18
19
  field :address_line1, Models::Components::CardVerificationResult, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('addressLine1'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CardVerificationResult, false) } }
19
-
20
+ # Verification result of the billing address postal code.
21
+ # Derived from the same AVS code as `addressLine1`; the card network returns a single code covering both address fields.
20
22
  field :postal_code, Models::Components::CardVerificationResult, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('postalCode'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CardVerificationResult, false) } }
21
- # The results of submitting cardholder name to a card network for verification.
23
+ # Verification results of the cardholder's name, broken down by name component.
22
24
  field :account_name, Crystalline::Nilable.new(Models::Components::AccountNameVerification), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('accountName') } }
23
25
 
24
26
  sig { params(cvv: Models::Components::CardVerificationResult, address_line1: Models::Components::CardVerificationResult, postal_code: Models::Components::CardVerificationResult, account_name: T.nilable(Models::Components::AccountNameVerification)).void }
@@ -7,7 +7,7 @@
7
7
  module Moov
8
8
  module Models
9
9
  module Components
10
-
10
+ # CardVerificationResult - The result of a card verification check.
11
11
  class CardVerificationResult < T::Enum
12
12
  enums do
13
13
  NO_MATCH = new('noMatch')
@@ -14,16 +14,20 @@ module Moov
14
14
 
15
15
  # An optional override of the default card statement descriptor for a transfer. Accounts must be enabled by Moov to set this field.
16
16
  field :dynamic_descriptor, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('dynamicDescriptor') } }
17
+ # An optional field to specify the type of card payout, used to route the transfer with the appropriate business application identifier (BAI).
18
+ field :payout_type, Crystalline::Nilable.new(Models::Components::CardPayoutType), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('payoutType'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CardPayoutType, true) } }
17
19
 
18
- sig { params(dynamic_descriptor: T.nilable(::String)).void }
19
- def initialize(dynamic_descriptor: nil)
20
+ sig { params(dynamic_descriptor: T.nilable(::String), payout_type: T.nilable(Models::Components::CardPayoutType)).void }
21
+ def initialize(dynamic_descriptor: nil, payout_type: nil)
20
22
  @dynamic_descriptor = dynamic_descriptor
23
+ @payout_type = payout_type
21
24
  end
22
25
 
23
26
  sig { params(other: T.untyped).returns(T::Boolean) }
24
27
  def ==(other)
25
28
  return false unless other.is_a? self.class
26
29
  return false unless @dynamic_descriptor == other.dynamic_descriptor
30
+ return false unless @payout_type == other.payout_type
27
31
  true
28
32
  end
29
33
  end
@@ -10,4 +10,6 @@ end
10
10
  class Moov::Models::Components::CreateTransferDestinationCard
11
11
  def dynamic_descriptor(); end
12
12
  def dynamic_descriptor=(str_); end
13
+ def payout_type(); end
14
+ def payout_type=(str_); end
13
15
  end
@@ -12,25 +12,28 @@ module Moov
12
12
  extend T::Sig
13
13
  include Crystalline::MetadataFields
14
14
 
15
-
15
+ # The full card number (PAN).
16
16
  field :card_number, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardNumber'), required: true } }
17
-
17
+ # The card's 3- or 4-digit card verification value.
18
18
  field :card_cvv, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardCvv'), required: true } }
19
19
  # The expiration date of the card or token.
20
20
  field :expiration, Models::Components::CardExpiration, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('expiration'), required: true } }
21
-
21
+ # The billing address associated with the card.
22
22
  field :billing_address, Models::Components::CardAddress, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('billingAddress'), required: true } }
23
23
  # Wraps a compact-serialized JSON Web Encryption (JWE) token used for secure transmission of sensitive data (e.g., PCI information) through intermediaries.
24
24
  # This token is encrypted using the public key from /end-to-end-keys and wraps an AES key. For details and examples, refer to our
25
25
  # [GitHub repository](https://github.com/moovfinancial/moov-go/blob/main/examples/e2ee/e2ee_test.go).
26
26
  field :e2ee, Crystalline::Nilable.new(Models::Components::E2EEToken), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('e2ee') } }
27
-
27
+ # The name of the cardholder as it appears on the card.
28
28
  field :holder_name, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('holderName') } }
29
-
29
+ # Indicates cardholder has authorized card to be stored for future payments. (e.g., recurring payments).
30
+ # If true and no `merchantAccountID` is provided, the partner account's ID is used as the merchant account for verification.
30
31
  field :card_on_file, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardOnFile') } }
31
-
32
+ # Merchant account whose details (statement descriptor, address, etc.) are used for the card verification authorization.
33
+ # If omitted, the partner account's details are used instead.
32
34
  field :merchant_account_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('merchantAccountID') } }
33
-
35
+ # If true, submits the cardholder's name to the card network for verification as part of the $0 authorization.
36
+ # Only supported for Visa and Mastercard; requesting name verification for American Express or Discover will return an error.
34
37
  field :verify_name, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('verifyName') } }
35
38
 
36
39
  sig { params(card_number: ::String, card_cvv: ::String, expiration: Models::Components::CardExpiration, billing_address: Models::Components::CardAddress, e2ee: T.nilable(Models::Components::E2EEToken), holder_name: T.nilable(::String), card_on_file: T.nilable(T::Boolean), merchant_account_id: T.nilable(::String), verify_name: T.nilable(T::Boolean)).void }
@@ -28,7 +28,7 @@ module Moov
28
28
  field :bin, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('bin'), required: true } }
29
29
  # The expiration date of the card or token.
30
30
  field :expiration, Models::Components::CardExpiration, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('expiration'), required: true } }
31
-
31
+ # The billing address associated with the card.
32
32
  field :billing_address, Models::Components::CardAddress, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('billingAddress'), required: true } }
33
33
  # The results of submitting cardholder data to a card network for verification.
34
34
  field :card_verification, Models::Components::CardVerification, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardVerification'), required: true } }
@@ -40,7 +40,8 @@ module Moov
40
40
  field :issuer_country, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('issuerCountry') } }
41
41
  # Indicates cardholder has authorized card to be stored for future payments.
42
42
  field :card_on_file, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardOnFile') } }
43
-
43
+ # Merchant account whose details (statement descriptor, address, etc.) are used for the card verification authorization.
44
+ # If omitted, the partner account's details are used instead.
44
45
  field :merchant_account_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('merchantAccountID') } }
45
46
  # The results of the most recent card update request.
46
47
  field :card_account_updater, Crystalline::Nilable.new(Models::Components::CardAccountUpdater), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardAccountUpdater') } }
@@ -22,6 +22,8 @@ module Moov
22
22
  APPLE_PAY = new('apple-pay')
23
23
  CARD_PRESENT_PAYMENT = new('card-present-payment')
24
24
  INSTANT_BANK_CREDIT = new('instant-bank-credit')
25
+ PUSH_TO_APPLE_PAY = new('push-to-apple-pay')
26
+ PULL_FROM_APPLE_PAY = new('pull-from-apple-pay')
25
27
  end
26
28
  end
27
29
  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 PullFromApplePayPaymentMethod
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # ID of the payment method.
16
+ field :payment_method_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodID'), required: true } }
17
+
18
+ field :payment_method_type, Models::Components::PullFromApplePayPaymentMethodPaymentMethodType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodType'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::PullFromApplePayPaymentMethodPaymentMethodType, false) } }
19
+ # Describes an Apple Pay token on a Moov account.
20
+ field :apple_pay, Models::Components::ApplePayResponse, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('applePay'), required: true } }
21
+
22
+ sig { params(payment_method_id: ::String, payment_method_type: Models::Components::PullFromApplePayPaymentMethodPaymentMethodType, apple_pay: Models::Components::ApplePayResponse).void }
23
+ def initialize(payment_method_id:, payment_method_type:, apple_pay:)
24
+ @payment_method_id = payment_method_id
25
+ @payment_method_type = payment_method_type
26
+ @apple_pay = apple_pay
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 @payment_method_id == other.payment_method_id
33
+ return false unless @payment_method_type == other.payment_method_type
34
+ return false unless @apple_pay == other.apple_pay
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::PullFromApplePayPaymentMethod
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::PullFromApplePayPaymentMethod
11
+ def payment_method_id(); end
12
+ def payment_method_id=(str_); end
13
+ def payment_method_type(); end
14
+ def payment_method_type=(str_); end
15
+ def apple_pay(); end
16
+ def apple_pay=(str_); end
17
+ end
@@ -0,0 +1,18 @@
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 PullFromApplePayPaymentMethodPaymentMethodType < T::Enum
12
+ enums do
13
+ PULL_FROM_APPLE_PAY = new('pull-from-apple-pay')
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,11 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::PullFromApplePayPaymentMethodPaymentMethodType
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::PullFromApplePayPaymentMethodPaymentMethodType
11
+ 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 PullFromApplePayTransferPaymentMethod
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # ID of the payment method.
16
+ field :payment_method_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodID'), required: true } }
17
+
18
+ field :payment_method_type, Models::Components::PullFromApplePayTransferPaymentMethodPaymentMethodType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodType'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::PullFromApplePayTransferPaymentMethodPaymentMethodType, false) } }
19
+ # Describes an Apple Pay token on a Moov account.
20
+ field :apple_pay, Models::Components::ApplePayResponse, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('applePay'), required: true } }
21
+
22
+ sig { params(payment_method_id: ::String, payment_method_type: Models::Components::PullFromApplePayTransferPaymentMethodPaymentMethodType, apple_pay: Models::Components::ApplePayResponse).void }
23
+ def initialize(payment_method_id:, payment_method_type:, apple_pay:)
24
+ @payment_method_id = payment_method_id
25
+ @payment_method_type = payment_method_type
26
+ @apple_pay = apple_pay
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 @payment_method_id == other.payment_method_id
33
+ return false unless @payment_method_type == other.payment_method_type
34
+ return false unless @apple_pay == other.apple_pay
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::PullFromApplePayTransferPaymentMethod
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::PullFromApplePayTransferPaymentMethod
11
+ def payment_method_id(); end
12
+ def payment_method_id=(str_); end
13
+ def payment_method_type(); end
14
+ def payment_method_type=(str_); end
15
+ def apple_pay(); end
16
+ def apple_pay=(str_); end
17
+ end
@@ -0,0 +1,18 @@
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 PullFromApplePayTransferPaymentMethodPaymentMethodType < T::Enum
12
+ enums do
13
+ PULL_FROM_APPLE_PAY = new('pull-from-apple-pay')
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,11 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::PullFromApplePayTransferPaymentMethodPaymentMethodType
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::PullFromApplePayTransferPaymentMethodPaymentMethodType
11
+ 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 PushToApplePayPaymentMethod
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # ID of the payment method.
16
+ field :payment_method_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodID'), required: true } }
17
+
18
+ field :payment_method_type, Models::Components::PushToApplePayPaymentMethodPaymentMethodType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodType'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::PushToApplePayPaymentMethodPaymentMethodType, false) } }
19
+ # Describes an Apple Pay token on a Moov account.
20
+ field :apple_pay, Models::Components::ApplePayResponse, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('applePay'), required: true } }
21
+
22
+ sig { params(payment_method_id: ::String, payment_method_type: Models::Components::PushToApplePayPaymentMethodPaymentMethodType, apple_pay: Models::Components::ApplePayResponse).void }
23
+ def initialize(payment_method_id:, payment_method_type:, apple_pay:)
24
+ @payment_method_id = payment_method_id
25
+ @payment_method_type = payment_method_type
26
+ @apple_pay = apple_pay
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 @payment_method_id == other.payment_method_id
33
+ return false unless @payment_method_type == other.payment_method_type
34
+ return false unless @apple_pay == other.apple_pay
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::PushToApplePayPaymentMethod
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::PushToApplePayPaymentMethod
11
+ def payment_method_id(); end
12
+ def payment_method_id=(str_); end
13
+ def payment_method_type(); end
14
+ def payment_method_type=(str_); end
15
+ def apple_pay(); end
16
+ def apple_pay=(str_); end
17
+ end