moov_ruby 0.0.0.pre.dev.15 → 0.0.0.pre.dev.17

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 (35) hide show
  1. checksums.yaml +4 -4
  2. data/lib/moov/cards.rb +158 -0
  3. data/lib/moov/models/components/authmethod.rb +19 -0
  4. data/lib/moov/models/components/{rtpfailurecode.rbi → authmethod.rbi} +2 -2
  5. data/lib/moov/models/components/cardmetadata.rb +79 -0
  6. data/lib/moov/models/components/cardmetadata.rbi +35 -0
  7. data/lib/moov/models/components/cardmetadatarequest.rb +38 -0
  8. data/lib/moov/models/components/cardmetadatarequest.rbi +15 -0
  9. data/lib/moov/models/components/collectionpaymentmethodtype.rb +1 -0
  10. data/lib/moov/models/components/createreversal.rb +6 -2
  11. data/lib/moov/models/components/createreversal.rbi +2 -0
  12. data/lib/moov/models/components/googlepayresponse.rb +25 -6
  13. data/lib/moov/models/components/googlepayresponse.rbi +10 -2
  14. data/lib/moov/models/components/reversalamountdetails.rb +32 -0
  15. data/lib/moov/models/components/reversalamountdetails.rbi +13 -0
  16. data/lib/moov/models/components/reversalamountdetailsvalidationerror.rb +32 -0
  17. data/lib/moov/models/components/reversalamountdetailsvalidationerror.rbi +13 -0
  18. data/lib/moov/models/components/transferdestination.rb +2 -6
  19. data/lib/moov/models/components/transferdestination.rbi +0 -2
  20. data/lib/moov/models/components.rb +5 -3
  21. data/lib/moov/models/errors/cardmetadatarequesterror.rb +44 -0
  22. data/lib/moov/models/errors/cardmetadatarequesterror.rbi +19 -0
  23. data/lib/moov/models/errors/reversalvalidationerror.rb +6 -2
  24. data/lib/moov/models/errors/reversalvalidationerror.rbi +2 -0
  25. data/lib/moov/models/errors.rb +1 -0
  26. data/lib/moov/models/operations/getcardmetadata_response.rb +48 -0
  27. data/lib/moov/models/operations/getcardmetadata_response.rbi +21 -0
  28. data/lib/moov/models/operations.rb +1 -0
  29. data/lib/moov/sdkconfiguration.rb +3 -3
  30. metadata +16 -8
  31. data/lib/moov/models/components/rtpdetails.rb +0 -58
  32. data/lib/moov/models/components/rtpdetails.rbi +0 -25
  33. data/lib/moov/models/components/rtpfailurecode.rb +0 -27
  34. data/lib/moov/models/components/rtptransactionstatus.rb +0 -21
  35. data/lib/moov/models/components/rtptransactionstatus.rbi +0 -11
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 07c64e2d1493a44d61d173f746e1b810cf9a37aec85b41cec205f8c881051e65
4
- data.tar.gz: d515c164f8e54e4ca7410d0a8d4111b9d3601a2cfe6f194228494ccd376941f7
3
+ metadata.gz: c7c1379f3422f93a6ebe153b5f58d46329bfd85a162d196b51283bb46db0673f
4
+ data.tar.gz: 42a7a4c7580b6bd0316ed1c90dcce98a7cea5a35f2e170c0f33d051a33f7bb85
5
5
  SHA512:
6
- metadata.gz: 9969e2bf3b4625b6844262b5a72b7c1facc89f704fa2451ad9bf0dca57e507d8e5706b0ccc20819ae790aebc23c61ebacd4bee58169f46c47b4711653f0dd451
7
- data.tar.gz: 81c1d3b616651fde12f88e6e322dfdd6748976166b8640ad10964b5f1161cd859941af9b7f36b78312064c4fc31a47dc26123f1ca4873dfcf7d2622cc2c89bdc
6
+ metadata.gz: a42c42296f003247385ecb0504bd7584c9573c2645a08333429c750a4cd7b990a8582ee7278aa78a3f182ec86b4ecc1175d45a20131dcce30f834f1d2eda7dce
7
+ data.tar.gz: c55d05f2840ca13c07c08e3860939549ddab1fb8c77d93f0ed65d5d2d398bdf7f414d58cd2a3e6a14070078031e39529f064a9e9ab3293ac4d3225df357184d2
data/lib/moov/cards.rb CHANGED
@@ -787,5 +787,163 @@ module Moov
787
787
 
788
788
  end
789
789
  end
790
+
791
+
792
+ sig { params(request: Models::Components::CardMetadataRequest, timeout_ms: T.nilable(Integer), http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])).returns(Models::Operations::GetCardMetadataResponse) }
793
+ def get_metadata(request:, timeout_ms: nil, http_headers: nil)
794
+ # get_metadata - Look up metadata for a card without linking it to a Moov account.
795
+ #
796
+ # Only use this endpoint if you have provided Moov with a copy of your PCI attestation of compliance.
797
+ #
798
+ # To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
799
+ # you'll need to specify the `/card-metadata.read` scope.
800
+ url, params = @sdk_configuration.get_server_details
801
+ base_url = Utils.template_url(url, params)
802
+ url = "#{base_url}/card-metadata"
803
+ headers = {}
804
+ headers = T.cast(headers, T::Hash[String, String])
805
+ req_content_type, data, form = Utils.serialize_request_body(request, false, false, :request, :json)
806
+ headers['content-type'] = req_content_type
807
+ raise StandardError, 'request body is required' if data.nil? && form.nil?
808
+
809
+ if form && !form.empty?
810
+ body = Utils.encode_form(form)
811
+ elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
812
+ body = URI.encode_www_form(T.cast(data, T::Hash[Symbol, Object]))
813
+ else
814
+ body = data
815
+ end
816
+ headers['Accept'] = 'application/json'
817
+ headers['user-agent'] = @sdk_configuration.user_agent
818
+
819
+ security = @sdk_configuration.security_source&.call
820
+
821
+ timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
822
+ timeout ||= @sdk_configuration.timeout
823
+
824
+
825
+ connection = @sdk_configuration.client
826
+
827
+ hook_ctx = SDKHooks::HookContext.new(
828
+ config: @sdk_configuration,
829
+ base_url: base_url,
830
+ oauth2_scopes: nil,
831
+ operation_id: 'getCardMetadata',
832
+ security_source: @sdk_configuration.security_source
833
+ )
834
+
835
+ error = T.let(nil, T.nilable(StandardError))
836
+ http_response = T.let(nil, T.nilable(Faraday::Response))
837
+
838
+
839
+ begin
840
+ http_response = T.must(connection).post(url) do |req|
841
+ req.body = body
842
+ req.headers.merge!(headers)
843
+ req.options.timeout = timeout unless timeout.nil?
844
+ Utils.configure_request_security(req, security)
845
+ http_headers&.each do |key, value|
846
+ req.headers[key.to_s] = value
847
+ end
848
+
849
+ @sdk_configuration.hooks.before_request(
850
+ hook_ctx: SDKHooks::BeforeRequestHookContext.new(
851
+ hook_ctx: hook_ctx
852
+ ),
853
+ request: req
854
+ )
855
+ end
856
+ rescue StandardError => e
857
+ error = e
858
+ ensure
859
+ if http_response.nil? || Utils.error_status?(http_response.status)
860
+ http_response = @sdk_configuration.hooks.after_error(
861
+ error: error,
862
+ hook_ctx: SDKHooks::AfterErrorHookContext.new(
863
+ hook_ctx: hook_ctx
864
+ ),
865
+ response: http_response
866
+ )
867
+ else
868
+ http_response = @sdk_configuration.hooks.after_success(
869
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
870
+ hook_ctx: hook_ctx
871
+ ),
872
+ response: http_response
873
+ )
874
+ end
875
+
876
+ if http_response.nil?
877
+ raise error if !error.nil?
878
+ raise 'no response'
879
+ end
880
+ end
881
+
882
+ content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
883
+ if Utils.match_status_code(http_response.status, ['200'])
884
+ if Utils.match_content_type(content_type, 'application/json')
885
+ http_response = @sdk_configuration.hooks.after_success(
886
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
887
+ hook_ctx: hook_ctx
888
+ ),
889
+ response: http_response
890
+ )
891
+ response_data = http_response.env.response_body
892
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Components::CardMetadata)
893
+ response = Models::Operations::GetCardMetadataResponse.new(
894
+ status_code: http_response.status,
895
+ content_type: content_type,
896
+ raw_response: http_response,
897
+ headers: http_response.headers,
898
+ card_metadata: T.unsafe(obj)
899
+ )
900
+
901
+ return response
902
+ else
903
+ 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'
904
+ end
905
+ elsif Utils.match_status_code(http_response.status, ['400', '409'])
906
+ if Utils.match_content_type(content_type, 'application/json')
907
+ http_response = @sdk_configuration.hooks.after_success(
908
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
909
+ hook_ctx: hook_ctx
910
+ ),
911
+ response: http_response
912
+ )
913
+ response_data = http_response.env.response_body
914
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::GenericError)
915
+ obj.raw_response = http_response
916
+ raise obj
917
+ else
918
+ 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'
919
+ end
920
+ elsif Utils.match_status_code(http_response.status, ['422'])
921
+ if Utils.match_content_type(content_type, 'application/json')
922
+ http_response = @sdk_configuration.hooks.after_success(
923
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
924
+ hook_ctx: hook_ctx
925
+ ),
926
+ response: http_response
927
+ )
928
+ response_data = http_response.env.response_body
929
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::CardMetadataRequestError)
930
+ obj.raw_response = http_response
931
+ raise obj
932
+ else
933
+ 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'
934
+ end
935
+ elsif Utils.match_status_code(http_response.status, ['401', '403', '404', '429'])
936
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
937
+ elsif Utils.match_status_code(http_response.status, ['500', '504'])
938
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
939
+ elsif Utils.match_status_code(http_response.status, ['4XX'])
940
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
941
+ elsif Utils.match_status_code(http_response.status, ['5XX'])
942
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
943
+ else
944
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown status code received'
945
+
946
+ end
947
+ end
790
948
  end
791
949
  end
@@ -0,0 +1,19 @@
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
+ # AuthMethod - The authentication method used for the Google Pay token.
11
+ class AuthMethod < T::Enum
12
+ enums do
13
+ PAN_ONLY = new('PAN_ONLY')
14
+ CRYPTOGRAM_3_DS = new('CRYPTOGRAM_3DS')
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -2,10 +2,10 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
 
5
- class Moov::Models::Components::RTPFailureCode
5
+ class Moov::Models::Components::AuthMethod
6
6
  extend ::Crystalline::MetadataFields::ClassMethods
7
7
  end
8
8
 
9
9
 
10
- class Moov::Models::Components::RTPFailureCode
10
+ class Moov::Models::Components::AuthMethod
11
11
  end
@@ -0,0 +1,79 @@
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
+ # Metadata describing a card.
11
+ class CardMetadata
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # The first six to eight digits of the card number, which identifies the financial institution that issued the card.
16
+ field :bin, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('bin'), required: true } }
17
+ # The card brand.
18
+ field :brand, Models::Components::CardBrand, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('brand'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CardBrand, false) } }
19
+ # The type of the card.
20
+ field :card_type, Models::Components::CardType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardType'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CardType, false) } }
21
+ # The category or level of the card defined by the issuer.
22
+ # Examples include, but not limited to, "REWARDS", "TRADITIONAL REWARDS", "CLASSIC", and "CORPORATE PURCHASING".
23
+ field :card_category, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardCategory') } }
24
+ # If true, the card is for commercial use, or associated with a business.
25
+ # If false, the card is associated with a general consumer.
26
+ field :commercial, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('commercial') } }
27
+ # If true, the card issuing bank is regulated, and the scheme fees for debit transactions will be limited based on the Durbin Amendment.
28
+ # If false, the card issuing bank is not regulated, and the scheme fees will not be limited.
29
+ field :regulated, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('regulated') } }
30
+ # Financial institution that issued the card.
31
+ field :issuer, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('issuer') } }
32
+ # Country where the card was issued.
33
+ field :issuer_country, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('issuerCountry') } }
34
+ # Phone number of the issuer.
35
+ field :issuer_phone, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('issuerPhone') } }
36
+ # URL of the issuer.
37
+ field :issuer_url, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('issuerURL') } }
38
+ # Indicates if the card supports domestic pull-from-card transfer.
39
+ field :domestic_pull_from_card, Crystalline::Nilable.new(Models::Components::DomesticPullFromCard), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('domesticPullFromCard'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::DomesticPullFromCard, true) } }
40
+ # Indicates which level of domestic push-to-card transfer is supported by the card, if any.
41
+ field :domestic_push_to_card, Crystalline::Nilable.new(Models::Components::DomesticPushToCard), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('domesticPushToCard'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::DomesticPushToCard, true) } }
42
+
43
+ sig { params(bin: ::String, brand: Models::Components::CardBrand, card_type: Models::Components::CardType, card_category: T.nilable(::String), commercial: T.nilable(T::Boolean), regulated: T.nilable(T::Boolean), issuer: T.nilable(::String), issuer_country: T.nilable(::String), issuer_phone: T.nilable(::String), issuer_url: T.nilable(::String), domestic_pull_from_card: T.nilable(Models::Components::DomesticPullFromCard), domestic_push_to_card: T.nilable(Models::Components::DomesticPushToCard)).void }
44
+ def initialize(bin:, brand:, card_type:, card_category: nil, commercial: nil, regulated: nil, issuer: nil, issuer_country: nil, issuer_phone: nil, issuer_url: nil, domestic_pull_from_card: nil, domestic_push_to_card: nil)
45
+ @bin = bin
46
+ @brand = brand
47
+ @card_type = card_type
48
+ @card_category = card_category
49
+ @commercial = commercial
50
+ @regulated = regulated
51
+ @issuer = issuer
52
+ @issuer_country = issuer_country
53
+ @issuer_phone = issuer_phone
54
+ @issuer_url = issuer_url
55
+ @domestic_pull_from_card = domestic_pull_from_card
56
+ @domestic_push_to_card = domestic_push_to_card
57
+ end
58
+
59
+ sig { params(other: T.untyped).returns(T::Boolean) }
60
+ def ==(other)
61
+ return false unless other.is_a? self.class
62
+ return false unless @bin == other.bin
63
+ return false unless @brand == other.brand
64
+ return false unless @card_type == other.card_type
65
+ return false unless @card_category == other.card_category
66
+ return false unless @commercial == other.commercial
67
+ return false unless @regulated == other.regulated
68
+ return false unless @issuer == other.issuer
69
+ return false unless @issuer_country == other.issuer_country
70
+ return false unless @issuer_phone == other.issuer_phone
71
+ return false unless @issuer_url == other.issuer_url
72
+ return false unless @domestic_pull_from_card == other.domestic_pull_from_card
73
+ return false unless @domestic_push_to_card == other.domestic_push_to_card
74
+ true
75
+ end
76
+ end
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,35 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::CardMetadata
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::CardMetadata
11
+ def bin(); end
12
+ def bin=(str_); end
13
+ def brand(); end
14
+ def brand=(str_); end
15
+ def card_type(); end
16
+ def card_type=(str_); end
17
+ def card_category(); end
18
+ def card_category=(str_); end
19
+ def commercial(); end
20
+ def commercial=(str_); end
21
+ def regulated(); end
22
+ def regulated=(str_); end
23
+ def issuer(); end
24
+ def issuer=(str_); end
25
+ def issuer_country(); end
26
+ def issuer_country=(str_); end
27
+ def issuer_phone(); end
28
+ def issuer_phone=(str_); end
29
+ def issuer_url(); end
30
+ def issuer_url=(str_); end
31
+ def domestic_pull_from_card(); end
32
+ def domestic_pull_from_card=(str_); end
33
+ def domestic_push_to_card(); end
34
+ def domestic_push_to_card=(str_); end
35
+ end
@@ -0,0 +1,38 @@
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 CardMetadataRequest
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # Wraps a compact-serialized JSON Web Encryption (JWE) token used for secure transmission of sensitive data (e.g., PCI information) through intermediaries.
16
+ # 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
17
+ # [GitHub repository](https://github.com/moovfinancial/moov-go/blob/main/examples/e2ee/e2ee_test.go).
18
+ field :e2ee, Crystalline::Nilable.new(Models::Components::E2EEToken), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('e2ee') } }
19
+ # The full card number (PAN).
20
+ field :card_number, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardNumber') } }
21
+
22
+ sig { params(e2ee: T.nilable(Models::Components::E2EEToken), card_number: T.nilable(::String)).void }
23
+ def initialize(e2ee: nil, card_number: nil)
24
+ @e2ee = e2ee
25
+ @card_number = card_number
26
+ end
27
+
28
+ sig { params(other: T.untyped).returns(T::Boolean) }
29
+ def ==(other)
30
+ return false unless other.is_a? self.class
31
+ return false unless @e2ee == other.e2ee
32
+ return false unless @card_number == other.card_number
33
+ true
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,15 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::CardMetadataRequest
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::CardMetadataRequest
11
+ def e2ee(); end
12
+ def e2ee=(str_); end
13
+ def card_number(); end
14
+ def card_number=(str_); end
15
+ end
@@ -13,6 +13,7 @@ module Moov
13
13
  APPLE_PAY = new('apple-pay')
14
14
  CARD_PAYMENT = new('card-payment')
15
15
  ACH_DEBIT_COLLECT = new('ach-debit-collect')
16
+ GOOGLE_PAY = new('google-pay')
16
17
  end
17
18
  end
18
19
  end
@@ -14,16 +14,20 @@ module Moov
14
14
 
15
15
  # Amount to reverse in cents. Partial amounts will automatically trigger a refund instead of a cancellation.
16
16
  field :amount, ::Integer, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amount'), required: true } }
17
+ # Breakdown of the reversed amount.
18
+ field :amount_details, Crystalline::Nilable.new(Models::Components::ReversalAmountDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amountDetails') } }
17
19
 
18
- sig { params(amount: ::Integer).void }
19
- def initialize(amount:)
20
+ sig { params(amount: ::Integer, amount_details: T.nilable(Models::Components::ReversalAmountDetails)).void }
21
+ def initialize(amount:, amount_details: nil)
20
22
  @amount = amount
23
+ @amount_details = amount_details
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 @amount == other.amount
30
+ return false unless @amount_details == other.amount_details
27
31
  true
28
32
  end
29
33
  end
@@ -10,4 +10,6 @@ end
10
10
  class Moov::Models::Components::CreateReversal
11
11
  def amount(); end
12
12
  def amount=(str_); end
13
+ def amount_details(); end
14
+ def amount_details=(str_); end
13
15
  end
@@ -12,36 +12,55 @@ module Moov
12
12
  extend T::Sig
13
13
  include Crystalline::MetadataFields
14
14
 
15
+ # The unique identifier of the Google Pay token.
16
+ field :token_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('tokenID'), required: true } }
15
17
  # The card brand.
16
18
  field :brand, Models::Components::CardBrand, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('brand'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CardBrand, false) } }
17
- # The last four digits of the underlying card number.
18
- field :card_details, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardDetails'), required: true } }
19
+ # The type of the card.
20
+ field :card_type, Models::Components::CardType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardType'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CardType, false) } }
21
+ # User-friendly name of the tokenized card returned by Google Pay.
22
+ #
23
+ # It usually contains the last four digits of the underlying card.
24
+ # There is no standard format.
25
+ field :card_display_name, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardDisplayName'), required: true } }
19
26
  # Uniquely identifies a linked payment card or token.
20
27
  # For Apple Pay, the fingerprint is based on the tokenized card number and may vary based on the user's device.
21
28
  # This field can be used to identify specific payment methods across multiple accounts on your platform.
22
29
  field :fingerprint, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('fingerprint'), required: true } }
23
30
  # The expiration date of the card or token.
24
31
  field :expiration, Models::Components::CardExpiration, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('expiration'), required: true } }
32
+ # The last four digits of the Google Pay token, which may differ from the tokenized card's last four digits.
33
+ field :dynamic_last_four, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('dynamicLastFour'), required: true } }
25
34
  # Country where the underlying card was issued.
26
35
  field :issuer_country, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('issuerCountry') } }
36
+ # The authentication method used for the Google Pay token.
37
+ field :auth_method, Crystalline::Nilable.new(Models::Components::AuthMethod), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('authMethod'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::AuthMethod, true) } }
27
38
 
28
- sig { params(brand: Models::Components::CardBrand, card_details: ::String, fingerprint: ::String, expiration: Models::Components::CardExpiration, issuer_country: T.nilable(::String)).void }
29
- def initialize(brand:, card_details:, fingerprint:, expiration:, issuer_country: nil)
39
+ sig { params(token_id: ::String, brand: Models::Components::CardBrand, card_type: Models::Components::CardType, card_display_name: ::String, fingerprint: ::String, expiration: Models::Components::CardExpiration, dynamic_last_four: ::String, issuer_country: T.nilable(::String), auth_method: T.nilable(Models::Components::AuthMethod)).void }
40
+ def initialize(token_id:, brand:, card_type:, card_display_name:, fingerprint:, expiration:, dynamic_last_four:, issuer_country: nil, auth_method: nil)
41
+ @token_id = token_id
30
42
  @brand = brand
31
- @card_details = card_details
43
+ @card_type = card_type
44
+ @card_display_name = card_display_name
32
45
  @fingerprint = fingerprint
33
46
  @expiration = expiration
47
+ @dynamic_last_four = dynamic_last_four
34
48
  @issuer_country = issuer_country
49
+ @auth_method = auth_method
35
50
  end
36
51
 
37
52
  sig { params(other: T.untyped).returns(T::Boolean) }
38
53
  def ==(other)
39
54
  return false unless other.is_a? self.class
55
+ return false unless @token_id == other.token_id
40
56
  return false unless @brand == other.brand
41
- return false unless @card_details == other.card_details
57
+ return false unless @card_type == other.card_type
58
+ return false unless @card_display_name == other.card_display_name
42
59
  return false unless @fingerprint == other.fingerprint
43
60
  return false unless @expiration == other.expiration
61
+ return false unless @dynamic_last_four == other.dynamic_last_four
44
62
  return false unless @issuer_country == other.issuer_country
63
+ return false unless @auth_method == other.auth_method
45
64
  true
46
65
  end
47
66
  end
@@ -8,14 +8,22 @@ end
8
8
 
9
9
 
10
10
  class Moov::Models::Components::GooglePayResponse
11
+ def token_id(); end
12
+ def token_id=(str_); end
11
13
  def brand(); end
12
14
  def brand=(str_); end
13
- def card_details(); end
14
- def card_details=(str_); end
15
+ def card_type(); end
16
+ def card_type=(str_); end
17
+ def card_display_name(); end
18
+ def card_display_name=(str_); end
15
19
  def fingerprint(); end
16
20
  def fingerprint=(str_); end
17
21
  def expiration(); end
18
22
  def expiration=(str_); end
23
+ def dynamic_last_four(); end
24
+ def dynamic_last_four=(str_); end
19
25
  def issuer_country(); end
20
26
  def issuer_country=(str_); end
27
+ def auth_method(); end
28
+ def auth_method=(str_); end
21
29
  end
@@ -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
+
11
+ class ReversalAmountDetails
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # The amount of surcharge to refund. Should be proportionate to the surcharge on the original transfer. This does not reply if the reversal resulted in a cancellation instead of a refund
16
+ field :surcharge, Crystalline::Nilable.new(Models::Components::AmountDecimal), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('surcharge') } }
17
+
18
+ sig { params(surcharge: T.nilable(Models::Components::AmountDecimal)).void }
19
+ def initialize(surcharge: nil)
20
+ @surcharge = surcharge
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 @surcharge == other.surcharge
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::ReversalAmountDetails
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::ReversalAmountDetails
11
+ def surcharge(); end
12
+ def surcharge=(str_); end
13
+ end
@@ -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
+
11
+ class ReversalAmountDetailsValidationError
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :surcharge, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('surcharge') } }
17
+
18
+ sig { params(surcharge: T.nilable(::String)).void }
19
+ def initialize(surcharge: nil)
20
+ @surcharge = surcharge
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 @surcharge == other.surcharge
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::ReversalAmountDetailsValidationError
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::ReversalAmountDetailsValidationError
11
+ def surcharge(); end
12
+ def surcharge=(str_); end
13
+ end
@@ -32,13 +32,11 @@ module Moov
32
32
  field :google_pay, Crystalline::Nilable.new(Models::Components::GooglePayResponse), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('googlePay') } }
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
- # @deprecated true: This will be removed in a future release, please migrate away from it as soon as possible.
36
- field :rtp_details, Crystalline::Nilable.new(Models::Components::RtpDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('rtpDetails') } }
37
35
  # Instant-bank specific details about the transaction.
38
36
  field :instant_bank_details, Crystalline::Nilable.new(Models::Components::InstantBankTransactionDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('instantBankDetails') } }
39
37
 
40
- sig { params(payment_method_id: ::String, payment_method_type: Models::Components::TransferPaymentMethodType, account: Models::Components::TransferAccount, bank_account: T.nilable(Models::Components::TransferPaymentMethodsBankAccount), wallet: T.nilable(Models::Components::TransferPaymentMethodsWallet), card: T.nilable(Models::Components::TransferPaymentMethodsCard), ach_details: T.nilable(Models::Components::ACHTransactionDetails), apple_pay: T.nilable(Models::Components::ApplePayResponse), google_pay: T.nilable(Models::Components::GooglePayResponse), card_details: T.nilable(Models::Components::CardTransactionDetails), rtp_details: T.nilable(Models::Components::RtpDetails), instant_bank_details: T.nilable(Models::Components::InstantBankTransactionDetails)).void }
41
- def initialize(payment_method_id:, payment_method_type:, account:, bank_account: nil, wallet: nil, card: nil, ach_details: nil, apple_pay: nil, google_pay: nil, card_details: nil, rtp_details: nil, instant_bank_details: nil)
38
+ sig { params(payment_method_id: ::String, payment_method_type: Models::Components::TransferPaymentMethodType, account: Models::Components::TransferAccount, bank_account: T.nilable(Models::Components::TransferPaymentMethodsBankAccount), wallet: T.nilable(Models::Components::TransferPaymentMethodsWallet), card: T.nilable(Models::Components::TransferPaymentMethodsCard), ach_details: T.nilable(Models::Components::ACHTransactionDetails), apple_pay: T.nilable(Models::Components::ApplePayResponse), google_pay: T.nilable(Models::Components::GooglePayResponse), card_details: T.nilable(Models::Components::CardTransactionDetails), instant_bank_details: T.nilable(Models::Components::InstantBankTransactionDetails)).void }
39
+ def initialize(payment_method_id:, payment_method_type:, account:, bank_account: nil, wallet: nil, card: nil, ach_details: nil, apple_pay: nil, google_pay: nil, card_details: nil, instant_bank_details: nil)
42
40
  @payment_method_id = payment_method_id
43
41
  @payment_method_type = payment_method_type
44
42
  @account = account
@@ -49,7 +47,6 @@ module Moov
49
47
  @apple_pay = apple_pay
50
48
  @google_pay = google_pay
51
49
  @card_details = card_details
52
- @rtp_details = rtp_details
53
50
  @instant_bank_details = instant_bank_details
54
51
  end
55
52
 
@@ -66,7 +63,6 @@ module Moov
66
63
  return false unless @apple_pay == other.apple_pay
67
64
  return false unless @google_pay == other.google_pay
68
65
  return false unless @card_details == other.card_details
69
- return false unless @rtp_details == other.rtp_details
70
66
  return false unless @instant_bank_details == other.instant_bank_details
71
67
  true
72
68
  end
@@ -28,8 +28,6 @@ class Moov::Models::Components::TransferDestination
28
28
  def google_pay=(str_); end
29
29
  def card_details(); end
30
30
  def card_details=(str_); end
31
- def rtp_details(); end
32
- def rtp_details=(str_); end
33
31
  def instant_bank_details(); end
34
32
  def instant_bank_details=(str_); end
35
33
  end
@@ -127,6 +127,8 @@ module Moov
127
127
  autoload :CardExpiration, 'moov/models/components/cardexpiration.rb'
128
128
  autoload :CardExpirationError, 'moov/models/components/cardexpirationerror.rb'
129
129
  autoload :CardIssuingNetwork, 'moov/models/components/cardissuingnetwork.rb'
130
+ autoload :CardMetadata, 'moov/models/components/cardmetadata.rb'
131
+ autoload :CardMetadataRequest, 'moov/models/components/cardmetadatarequest.rb'
130
132
  autoload :CardPaymentDetails, 'moov/models/components/cardpaymentdetails.rb'
131
133
  autoload :CardPaymentDetailsError, 'moov/models/components/cardpaymentdetailserror.rb'
132
134
  autoload :CardPaymentPaymentMethod, 'moov/models/components/cardpaymentpaymentmethod.rb'
@@ -488,11 +490,9 @@ module Moov
488
490
  autoload :PutTipPresets, 'moov/models/components/puttippresets.rb'
489
491
  autoload :PutTransferConfig, 'moov/models/components/puttransferconfig.rb'
490
492
  autoload :QRCode, 'moov/models/components/qrcode.rb'
491
- autoload :RTPFailureCode, 'moov/models/components/rtpfailurecode.rb'
492
493
  autoload :RTPInstitution, 'moov/models/components/rtpinstitution.rb'
493
494
  autoload :RTPRejectionCode, 'moov/models/components/rtprejectioncode.rb'
494
495
  autoload :RTPServices, 'moov/models/components/rtpservices.rb'
495
- autoload :RTPTransactionStatus, 'moov/models/components/rtptransactionstatus.rb'
496
496
  autoload :ReceiptKind, 'moov/models/components/receiptkind.rb'
497
497
  autoload :ReceiptRequest, 'moov/models/components/receiptrequest.rb'
498
498
  autoload :ReceiptResponse, 'moov/models/components/receiptresponse.rb'
@@ -519,6 +519,8 @@ module Moov
519
519
  autoload :ResolutionLinkStatus, 'moov/models/components/resolutionlinkstatus.rb'
520
520
  autoload :ReturnPolicyType, 'moov/models/components/returnpolicytype.rb'
521
521
  autoload :Reversal, 'moov/models/components/reversal.rb'
522
+ autoload :ReversalAmountDetails, 'moov/models/components/reversalamountdetails.rb'
523
+ autoload :ReversalAmountDetailsValidationError, 'moov/models/components/reversalamountdetailsvalidationerror.rb'
522
524
  autoload :ReversedWithCancellation, 'moov/models/components/reversedwithcancellation.rb'
523
525
  autoload :ReversedWithRefund, 'moov/models/components/reversedwithrefund.rb'
524
526
  autoload :RevokeTokenRequest, 'moov/models/components/revoketokenrequest.rb'
@@ -697,6 +699,7 @@ module Moov
697
699
  autoload :AchDetails, 'moov/models/components/achdetails.rb'
698
700
  autoload :AchPayment, 'moov/models/components/achpayment.rb'
699
701
  autoload :AdjustmentFees, 'moov/models/components/adjustmentfees.rb'
702
+ autoload :AuthMethod, 'moov/models/components/authmethod.rb'
700
703
  autoload :CardAcquiring, 'moov/models/components/cardacquiring.rb'
701
704
  autoload :CardDetails, 'moov/models/components/carddetails.rb'
702
705
  autoload :CardFundingSource, 'moov/models/components/cardfundingsource.rb'
@@ -709,7 +712,6 @@ module Moov
709
712
  autoload :OtherFees, 'moov/models/components/otherfees.rb'
710
713
  autoload :Phone, 'moov/models/components/phone.rb'
711
714
  autoload :Responsibilities, 'moov/models/components/responsibilities.rb'
712
- autoload :RtpDetails, 'moov/models/components/rtpdetails.rb'
713
715
  autoload :Status, 'moov/models/components/status.rb'
714
716
  autoload :TokenTypeHint, 'moov/models/components/token_type_hint.rb'
715
717
  autoload :Use, 'moov/models/components/use.rb'
@@ -0,0 +1,44 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Moov
8
+ module Models
9
+ module Errors
10
+
11
+ class CardMetadataRequestError < StandardError
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :error, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('error') } }
17
+
18
+ field :e2ee, Crystalline::Nilable.new(Models::Components::End2EndEncryptionError), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('e2ee') } }
19
+
20
+ field :card_number, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardNumber') } }
21
+ # Raw HTTP response; suitable for custom response parsing
22
+ field :raw_response, Crystalline::Nilable.new(::Faraday::Response), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('-') } }
23
+
24
+ sig { params(error: T.nilable(::String), e2ee: T.nilable(Models::Components::End2EndEncryptionError), card_number: T.nilable(::String), raw_response: T.nilable(::Faraday::Response)).void }
25
+ def initialize(error: nil, e2ee: nil, card_number: nil, raw_response: nil)
26
+ @error = error
27
+ @e2ee = e2ee
28
+ @card_number = card_number
29
+ @raw_response = raw_response
30
+ end
31
+
32
+ sig { params(other: T.untyped).returns(T::Boolean) }
33
+ def ==(other)
34
+ return false unless other.is_a? self.class
35
+ return false unless @error == other.error
36
+ return false unless @e2ee == other.e2ee
37
+ return false unless @card_number == other.card_number
38
+ return false unless @raw_response == other.raw_response
39
+ true
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,19 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Errors::CardMetadataRequestError
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Errors::CardMetadataRequestError
11
+ def error(); end
12
+ def error=(str_); end
13
+ def e2ee(); end
14
+ def e2ee=(str_); end
15
+ def card_number(); end
16
+ def card_number=(str_); end
17
+ def raw_response(); end
18
+ def raw_response=(str_); end
19
+ end
@@ -14,12 +14,15 @@ module Moov
14
14
 
15
15
 
16
16
  field :amount, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amount') } }
17
+
18
+ field :amount_details, Crystalline::Nilable.new(Models::Components::ReversalAmountDetailsValidationError), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amountDetails') } }
17
19
  # Raw HTTP response; suitable for custom response parsing
18
20
  field :raw_response, Crystalline::Nilable.new(::Faraday::Response), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('-') } }
19
21
 
20
- sig { params(amount: T.nilable(::String), raw_response: T.nilable(::Faraday::Response)).void }
21
- def initialize(amount: nil, raw_response: nil)
22
+ sig { params(amount: T.nilable(::String), amount_details: T.nilable(Models::Components::ReversalAmountDetailsValidationError), raw_response: T.nilable(::Faraday::Response)).void }
23
+ def initialize(amount: nil, amount_details: nil, raw_response: nil)
22
24
  @amount = amount
25
+ @amount_details = amount_details
23
26
  @raw_response = raw_response
24
27
  end
25
28
 
@@ -27,6 +30,7 @@ module Moov
27
30
  def ==(other)
28
31
  return false unless other.is_a? self.class
29
32
  return false unless @amount == other.amount
33
+ return false unless @amount_details == other.amount_details
30
34
  return false unless @raw_response == other.raw_response
31
35
  true
32
36
  end
@@ -10,6 +10,8 @@ end
10
10
  class Moov::Models::Errors::ReversalValidationError
11
11
  def amount(); end
12
12
  def amount=(str_); end
13
+ def amount_details(); end
14
+ def amount_details=(str_); end
13
15
  def raw_response(); end
14
16
  def raw_response=(str_); end
15
17
  end
@@ -14,6 +14,7 @@ module Moov
14
14
  autoload :BankAccountValidationError, 'moov/models/errors/bankaccountvalidationerror.rb'
15
15
  autoload :BrandValidationError, 'moov/models/errors/brandvalidationerror.rb'
16
16
  autoload :CardAcquiringRefundError, 'moov/models/errors/cardacquiringrefund_error.rb'
17
+ autoload :CardMetadataRequestError, 'moov/models/errors/cardmetadatarequesterror.rb'
17
18
  autoload :ConnectAccountRequestValidationError, 'moov/models/errors/connectaccountrequestvalidationerror.rb'
18
19
  autoload :CreateAccountError, 'moov/models/errors/createaccounterror.rb'
19
20
  autoload :CreateInvoiceError, 'moov/models/errors/createinvoiceerror.rb'
@@ -0,0 +1,48 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Moov
8
+ module Models
9
+ module Operations
10
+
11
+ class GetCardMetadataResponse
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # HTTP response content type for this operation
16
+ field :content_type, ::String
17
+ # HTTP response status code for this operation
18
+ field :status_code, ::Integer
19
+ # Raw HTTP response; suitable for custom response parsing
20
+ field :raw_response, ::Faraday::Response
21
+
22
+ field :headers, Crystalline::Hash.new(Symbol, Crystalline::Array.new(::String))
23
+ # The request completed successfully.
24
+ field :card_metadata, Crystalline::Nilable.new(Models::Components::CardMetadata)
25
+
26
+ sig { params(content_type: ::String, status_code: ::Integer, raw_response: ::Faraday::Response, headers: T::Hash[Symbol, T::Array[::String]], card_metadata: T.nilable(Models::Components::CardMetadata)).void }
27
+ def initialize(content_type:, status_code:, raw_response:, headers:, card_metadata: nil)
28
+ @content_type = content_type
29
+ @status_code = status_code
30
+ @raw_response = raw_response
31
+ @headers = headers
32
+ @card_metadata = card_metadata
33
+ end
34
+
35
+ sig { params(other: T.untyped).returns(T::Boolean) }
36
+ def ==(other)
37
+ return false unless other.is_a? self.class
38
+ return false unless @content_type == other.content_type
39
+ return false unless @status_code == other.status_code
40
+ return false unless @raw_response == other.raw_response
41
+ return false unless @headers == other.headers
42
+ return false unless @card_metadata == other.card_metadata
43
+ true
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,21 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Operations::GetCardMetadataResponse
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Operations::GetCardMetadataResponse
11
+ def content_type(); end
12
+ def content_type=(str_); end
13
+ def status_code(); end
14
+ def status_code=(str_); end
15
+ def raw_response(); end
16
+ def raw_response=(str_); end
17
+ def headers(); end
18
+ def headers=(str_); end
19
+ def card_metadata(); end
20
+ def card_metadata=(str_); end
21
+ end
@@ -113,6 +113,7 @@ module Moov
113
113
  autoload :GetCancellationResponse, 'moov/models/operations/getcancellation_response.rb'
114
114
  autoload :GetCapabilityRequest, 'moov/models/operations/getcapability_request.rb'
115
115
  autoload :GetCapabilityResponse, 'moov/models/operations/getcapability_response.rb'
116
+ autoload :GetCardMetadataResponse, 'moov/models/operations/getcardmetadata_response.rb'
116
117
  autoload :GetCardRequest, 'moov/models/operations/getcard_request.rb'
117
118
  autoload :GetCardResponse, 'moov/models/operations/getcard_response.rb'
118
119
  autoload :GetDisputeEvidenceDataRequest, 'moov/models/operations/getdisputeevidencedata_request.rb'
@@ -88,9 +88,9 @@ module Moov
88
88
  end
89
89
  @language = 'ruby'
90
90
  @openapi_doc_version = 'dev'
91
- @sdk_version = '0.0.0-dev.15'
92
- @gen_version = '2.881.17'
93
- @user_agent = 'speakeasy-sdk/ruby 0.0.0-dev.15 2.881.17 dev moov_ruby'
91
+ @sdk_version = '0.0.0-dev.17'
92
+ @gen_version = '2.882.0'
93
+ @user_agent = 'speakeasy-sdk/ruby 0.0.0-dev.17 2.882.0 dev moov_ruby'
94
94
  end
95
95
 
96
96
  sig { returns([String, T::Hash[Symbol, String]]) }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: moov_ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0.pre.dev.15
4
+ version: 0.0.0.pre.dev.17
5
5
  platform: ruby
6
6
  authors:
7
7
  - Speakeasy
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-05-02 00:00:00.000000000 Z
11
+ date: 2026-05-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: base64
@@ -394,6 +394,8 @@ files:
394
394
  - lib/moov/models/components/asynccreatedrefund.rbi
395
395
  - lib/moov/models/components/asynctransfer.rb
396
396
  - lib/moov/models/components/asynctransfer.rbi
397
+ - lib/moov/models/components/authmethod.rb
398
+ - lib/moov/models/components/authmethod.rbi
397
399
  - lib/moov/models/components/authorizeduser.rb
398
400
  - lib/moov/models/components/authorizeduser.rbi
399
401
  - lib/moov/models/components/authtoken.rb
@@ -518,6 +520,10 @@ files:
518
520
  - lib/moov/models/components/cardfundingsource.rbi
519
521
  - lib/moov/models/components/cardissuingnetwork.rb
520
522
  - lib/moov/models/components/cardissuingnetwork.rbi
523
+ - lib/moov/models/components/cardmetadata.rb
524
+ - lib/moov/models/components/cardmetadata.rbi
525
+ - lib/moov/models/components/cardmetadatarequest.rb
526
+ - lib/moov/models/components/cardmetadatarequest.rbi
521
527
  - lib/moov/models/components/cardnetwork.rb
522
528
  - lib/moov/models/components/cardnetwork.rbi
523
529
  - lib/moov/models/components/cardpayment.rb
@@ -1310,6 +1316,10 @@ files:
1310
1316
  - lib/moov/models/components/returnpolicytype.rbi
1311
1317
  - lib/moov/models/components/reversal.rb
1312
1318
  - lib/moov/models/components/reversal.rbi
1319
+ - lib/moov/models/components/reversalamountdetails.rb
1320
+ - lib/moov/models/components/reversalamountdetails.rbi
1321
+ - lib/moov/models/components/reversalamountdetailsvalidationerror.rb
1322
+ - lib/moov/models/components/reversalamountdetailsvalidationerror.rbi
1313
1323
  - lib/moov/models/components/reversedwithcancellation.rb
1314
1324
  - lib/moov/models/components/reversedwithcancellation.rbi
1315
1325
  - lib/moov/models/components/reversedwithrefund.rb
@@ -1324,18 +1334,12 @@ files:
1324
1334
  - lib/moov/models/components/rtpcredittransferpaymentmethod.rbi
1325
1335
  - lib/moov/models/components/rtpcredittransferpaymentmethod_paymentmethodtype.rb
1326
1336
  - lib/moov/models/components/rtpcredittransferpaymentmethod_paymentmethodtype.rbi
1327
- - lib/moov/models/components/rtpdetails.rb
1328
- - lib/moov/models/components/rtpdetails.rbi
1329
- - lib/moov/models/components/rtpfailurecode.rb
1330
- - lib/moov/models/components/rtpfailurecode.rbi
1331
1337
  - lib/moov/models/components/rtpinstitution.rb
1332
1338
  - lib/moov/models/components/rtpinstitution.rbi
1333
1339
  - lib/moov/models/components/rtprejectioncode.rb
1334
1340
  - lib/moov/models/components/rtprejectioncode.rbi
1335
1341
  - lib/moov/models/components/rtpservices.rb
1336
1342
  - lib/moov/models/components/rtpservices.rbi
1337
- - lib/moov/models/components/rtptransactionstatus.rb
1338
- - lib/moov/models/components/rtptransactionstatus.rbi
1339
1343
  - lib/moov/models/components/runtransfer.rb
1340
1344
  - lib/moov/models/components/runtransfer.rbi
1341
1345
  - lib/moov/models/components/scheduledtransferimagemetadata.rb
@@ -1695,6 +1699,8 @@ files:
1695
1699
  - lib/moov/models/errors/brandvalidationerror.rbi
1696
1700
  - lib/moov/models/errors/cardacquiringrefund_error.rb
1697
1701
  - lib/moov/models/errors/cardacquiringrefund_error.rbi
1702
+ - lib/moov/models/errors/cardmetadatarequesterror.rb
1703
+ - lib/moov/models/errors/cardmetadatarequesterror.rbi
1698
1704
  - lib/moov/models/errors/connectaccountrequestvalidationerror.rb
1699
1705
  - lib/moov/models/errors/connectaccountrequestvalidationerror.rbi
1700
1706
  - lib/moov/models/errors/createaccounterror.rb
@@ -2014,6 +2020,8 @@ files:
2014
2020
  - lib/moov/models/operations/getcard_request.rbi
2015
2021
  - lib/moov/models/operations/getcard_response.rb
2016
2022
  - lib/moov/models/operations/getcard_response.rbi
2023
+ - lib/moov/models/operations/getcardmetadata_response.rb
2024
+ - lib/moov/models/operations/getcardmetadata_response.rbi
2017
2025
  - lib/moov/models/operations/getdispute_request.rb
2018
2026
  - lib/moov/models/operations/getdispute_request.rbi
2019
2027
  - lib/moov/models/operations/getdispute_response.rb
@@ -1,58 +0,0 @@
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
- # DEPRECATED: use `InstantBankTransactionDetails` instead (v2026.04.00 or later). RTP specific details about the transaction.
11
- #
12
- # @deprecated class: This will be removed in a future release, please migrate away from it as soon as possible.
13
- class RtpDetails
14
- extend T::Sig
15
- include Crystalline::MetadataFields
16
-
17
- # Status of a transaction within the RTP lifecycle.
18
- field :status, Crystalline::Nilable.new(Models::Components::RTPTransactionStatus), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::RTPTransactionStatus, true) } }
19
- # Response code returned by network on failure.
20
- field :network_response_code, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('networkResponseCode') } }
21
- # Status codes for RTP failures.
22
- field :failure_code, Crystalline::Nilable.new(Models::Components::RTPFailureCode), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('failureCode'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::RTPFailureCode, true) } }
23
-
24
- field :initiated_on, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('initiatedOn'), 'decoder': ::Moov::Utils.datetime_from_iso_format(true) } }
25
-
26
- field :completed_on, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('completedOn'), 'decoder': ::Moov::Utils.datetime_from_iso_format(true) } }
27
-
28
- field :failed_on, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('failedOn'), 'decoder': ::Moov::Utils.datetime_from_iso_format(true) } }
29
-
30
- field :accepted_without_posting_on, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('acceptedWithoutPostingOn'), 'decoder': ::Moov::Utils.datetime_from_iso_format(true) } }
31
-
32
- sig { params(status: T.nilable(Models::Components::RTPTransactionStatus), network_response_code: T.nilable(::String), failure_code: T.nilable(Models::Components::RTPFailureCode), initiated_on: T.nilable(::DateTime), completed_on: T.nilable(::DateTime), failed_on: T.nilable(::DateTime), accepted_without_posting_on: T.nilable(::DateTime)).void }
33
- def initialize(status: nil, network_response_code: nil, failure_code: nil, initiated_on: nil, completed_on: nil, failed_on: nil, accepted_without_posting_on: nil)
34
- @status = status
35
- @network_response_code = network_response_code
36
- @failure_code = failure_code
37
- @initiated_on = initiated_on
38
- @completed_on = completed_on
39
- @failed_on = failed_on
40
- @accepted_without_posting_on = accepted_without_posting_on
41
- end
42
-
43
- sig { params(other: T.untyped).returns(T::Boolean) }
44
- def ==(other)
45
- return false unless other.is_a? self.class
46
- return false unless @status == other.status
47
- return false unless @network_response_code == other.network_response_code
48
- return false unless @failure_code == other.failure_code
49
- return false unless @initiated_on == other.initiated_on
50
- return false unless @completed_on == other.completed_on
51
- return false unless @failed_on == other.failed_on
52
- return false unless @accepted_without_posting_on == other.accepted_without_posting_on
53
- true
54
- end
55
- end
56
- end
57
- end
58
- end
@@ -1,25 +0,0 @@
1
- # typed: true
2
- # frozen_string_literal: true
3
-
4
-
5
- class Moov::Models::Components::RtpDetails
6
- extend ::Crystalline::MetadataFields::ClassMethods
7
- end
8
-
9
-
10
- class Moov::Models::Components::RtpDetails
11
- def status(); end
12
- def status=(str_); end
13
- def network_response_code(); end
14
- def network_response_code=(str_); end
15
- def failure_code(); end
16
- def failure_code=(str_); end
17
- def initiated_on(); end
18
- def initiated_on=(str_); end
19
- def completed_on(); end
20
- def completed_on=(str_); end
21
- def failed_on(); end
22
- def failed_on=(str_); end
23
- def accepted_without_posting_on(); end
24
- def accepted_without_posting_on=(str_); end
25
- end
@@ -1,27 +0,0 @@
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
- # RTPFailureCode - Status codes for RTP failures.
11
- class RTPFailureCode < T::Enum
12
- enums do
13
- PROCESSING_ERROR = new('processing-error')
14
- INVALID_ACCOUNT = new('invalid-account')
15
- ACCOUNT_CLOSED = new('account-closed')
16
- ACCOUNT_BLOCKED = new('account-blocked')
17
- INVALID_FIELD = new('invalid-field')
18
- TRANSACTION_NOT_SUPPORTED = new('transaction-not-supported')
19
- LIMIT_EXCEEDED = new('limit-exceeded')
20
- INVALID_AMOUNT = new('invalid-amount')
21
- CUSTOMER_DECEASED = new('customer-deceased')
22
- OTHER = new('other')
23
- end
24
- end
25
- end
26
- end
27
- end
@@ -1,21 +0,0 @@
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
- # RTPTransactionStatus - Status of a transaction within the RTP lifecycle.
11
- class RTPTransactionStatus < T::Enum
12
- enums do
13
- INITIATED = new('initiated')
14
- COMPLETED = new('completed')
15
- FAILED = new('failed')
16
- ACCEPTED_WITHOUT_POSTING = new('accepted-without-posting')
17
- end
18
- end
19
- end
20
- end
21
- end
@@ -1,11 +0,0 @@
1
- # typed: true
2
- # frozen_string_literal: true
3
-
4
-
5
- class Moov::Models::Components::RTPTransactionStatus
6
- extend ::Crystalline::MetadataFields::ClassMethods
7
- end
8
-
9
-
10
- class Moov::Models::Components::RTPTransactionStatus
11
- end