diff --git a/.release-please-manifest.json b/.release-please-manifest.json index b4e9b910..83120c09 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "1.233.0" + ".": "1.234.0" } \ No newline at end of file diff --git a/.stats.yml b/.stats.yml index 507678f1..c9fd3761 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 234 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/increase%2Fincrease-561b73fd99114001dc2e93ee7371e33969398e7bc5b7e78dd1b3e8eea8e254ff.yml -openapi_spec_hash: 3b0ba693d170e8b422ba9255cdc96853 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/increase%2Fincrease-946ad9479adebd282fe6122c780bc4d062ff9ce0e8794c74bd1ec4aa330aab04.yml +openapi_spec_hash: eb1f88706f7c87c9f72903c7a7c96026 config_hash: 890ca5fa6b8209d4eaac90550c7dc62c diff --git a/CHANGELOG.md b/CHANGELOG.md index 1ecb0192..e494fbe2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 1.234.0 (2026-03-06) + +Full Changelog: [v1.233.0...v1.234.0](https://github.com/Increase/increase-ruby/compare/v1.233.0...v1.234.0) + +### Features + +* **api:** api update ([b6c7325](https://github.com/Increase/increase-ruby/commit/b6c7325c671925b430c9e2dba7a0b354589bb57d)) + ## 1.233.0 (2026-03-05) Full Changelog: [v1.232.0...v1.233.0](https://github.com/Increase/increase-ruby/compare/v1.232.0...v1.233.0) diff --git a/Gemfile.lock b/Gemfile.lock index ed00d717..00ee0676 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -11,7 +11,7 @@ GIT PATH remote: . specs: - increase (1.233.0) + increase (1.234.0) cgi connection_pool diff --git a/README.md b/README.md index d1cc7b89..5d25ddad 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ To use this gem, install via Bundler by adding the following to your application ```ruby -gem "increase", "~> 1.233.0" +gem "increase", "~> 1.234.0" ``` diff --git a/lib/increase/models/real_time_decision.rb b/lib/increase/models/real_time_decision.rb index 002a869f..83ac48fd 100644 --- a/lib/increase/models/real_time_decision.rb +++ b/lib/increase/models/real_time_decision.rb @@ -118,24 +118,245 @@ class RealTimeDecision < Increase::Internal::Type::BaseModel # @see Increase::Models::RealTimeDecision#card_authentication class CardAuthentication < Increase::Internal::Type::BaseModel + # @!attribute access_control_server_transaction_id + # A unique identifier assigned by the Access Control Server (us) for this + # transaction. + # + # @return [String] + required :access_control_server_transaction_id, String + # @!attribute account_id # The identifier of the Account the card belongs to. # # @return [String] required :account_id, String + # @!attribute billing_address_city + # The city of the cardholder billing address associated with the card used for + # this purchase. + # + # @return [String, nil] + required :billing_address_city, String, nil?: true + + # @!attribute billing_address_country + # The country of the cardholder billing address associated with the card used for + # this purchase. + # + # @return [String, nil] + required :billing_address_country, String, nil?: true + + # @!attribute billing_address_line1 + # The first line of the cardholder billing address associated with the card used + # for this purchase. + # + # @return [String, nil] + required :billing_address_line1, String, nil?: true + + # @!attribute billing_address_line2 + # The second line of the cardholder billing address associated with the card used + # for this purchase. + # + # @return [String, nil] + required :billing_address_line2, String, nil?: true + + # @!attribute billing_address_line3 + # The third line of the cardholder billing address associated with the card used + # for this purchase. + # + # @return [String, nil] + required :billing_address_line3, String, nil?: true + + # @!attribute billing_address_postal_code + # The postal code of the cardholder billing address associated with the card used + # for this purchase. + # + # @return [String, nil] + required :billing_address_postal_code, String, nil?: true + + # @!attribute billing_address_state + # The US state of the cardholder billing address associated with the card used for + # this purchase. + # + # @return [String, nil] + required :billing_address_state, String, nil?: true + # @!attribute card_id - # The identifier of the Card that is being tokenized. + # The identifier of the Card. # # @return [String] required :card_id, String + # @!attribute cardholder_email + # The email address of the cardholder. + # + # @return [String, nil] + required :cardholder_email, String, nil?: true + + # @!attribute cardholder_name + # The name of the cardholder. + # + # @return [String, nil] + required :cardholder_name, String, nil?: true + + # @!attribute category + # The category of the card authentication attempt. + # + # @return [Symbol, Increase::Models::RealTimeDecision::CardAuthentication::Category, nil] + required :category, enum: -> { Increase::RealTimeDecision::CardAuthentication::Category }, nil?: true + # @!attribute decision # Whether or not the authentication attempt was approved. # # @return [Symbol, Increase::Models::RealTimeDecision::CardAuthentication::Decision, nil] required :decision, enum: -> { Increase::RealTimeDecision::CardAuthentication::Decision }, nil?: true + # @!attribute device_channel + # The device channel of the card authentication attempt. + # + # @return [Increase::Models::RealTimeDecision::CardAuthentication::DeviceChannel] + required :device_channel, -> { Increase::RealTimeDecision::CardAuthentication::DeviceChannel } + + # @!attribute directory_server_transaction_id + # A unique identifier assigned by the Directory Server (the card network) for this + # transaction. + # + # @return [String] + required :directory_server_transaction_id, String + + # @!attribute merchant_acceptor_id + # The merchant identifier (commonly abbreviated as MID) of the merchant the card + # is transacting with. + # + # @return [String] + required :merchant_acceptor_id, String + + # @!attribute merchant_category_code + # The Merchant Category Code (commonly abbreviated as MCC) of the merchant the + # card is transacting with. + # + # @return [String] + required :merchant_category_code, String + + # @!attribute merchant_country + # The country the merchant resides in. + # + # @return [String] + required :merchant_country, String + + # @!attribute merchant_name + # The name of the merchant. + # + # @return [String] + required :merchant_name, String + + # @!attribute prior_card_authentication_id + # The ID of a prior Card Authentication that the requestor used to authenticate + # this cardholder for a previous transaction. + # + # @return [String, nil] + required :prior_card_authentication_id, String, nil?: true + + # @!attribute purchase_amount + # The purchase amount in minor units. + # + # @return [Integer, nil] + required :purchase_amount, Integer, nil?: true + + # @!attribute purchase_currency + # The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code for the + # authentication attempt's purchase currency. + # + # @return [String, nil] + required :purchase_currency, String, nil?: true + + # @!attribute requestor_authentication_indicator + # The 3DS requestor authentication indicator describes why the authentication + # attempt is performed, such as for a recurring transaction. + # + # @return [Symbol, Increase::Models::RealTimeDecision::CardAuthentication::RequestorAuthenticationIndicator, nil] + required :requestor_authentication_indicator, + enum: -> { + Increase::RealTimeDecision::CardAuthentication::RequestorAuthenticationIndicator + }, + nil?: true + + # @!attribute requestor_challenge_indicator + # Indicates whether a challenge is requested for this transaction. + # + # @return [Symbol, Increase::Models::RealTimeDecision::CardAuthentication::RequestorChallengeIndicator, nil] + required :requestor_challenge_indicator, + enum: -> { Increase::RealTimeDecision::CardAuthentication::RequestorChallengeIndicator }, + nil?: true + + # @!attribute requestor_name + # The name of the 3DS requestor. + # + # @return [String] + required :requestor_name, String + + # @!attribute requestor_url + # The URL of the 3DS requestor. + # + # @return [String] + required :requestor_url, String + + # @!attribute shipping_address_city + # The city of the shipping address associated with this purchase. + # + # @return [String, nil] + required :shipping_address_city, String, nil?: true + + # @!attribute shipping_address_country + # The country of the shipping address associated with this purchase. + # + # @return [String, nil] + required :shipping_address_country, String, nil?: true + + # @!attribute shipping_address_line1 + # The first line of the shipping address associated with this purchase. + # + # @return [String, nil] + required :shipping_address_line1, String, nil?: true + + # @!attribute shipping_address_line2 + # The second line of the shipping address associated with this purchase. + # + # @return [String, nil] + required :shipping_address_line2, String, nil?: true + + # @!attribute shipping_address_line3 + # The third line of the shipping address associated with this purchase. + # + # @return [String, nil] + required :shipping_address_line3, String, nil?: true + + # @!attribute shipping_address_postal_code + # The postal code of the shipping address associated with this purchase. + # + # @return [String, nil] + required :shipping_address_postal_code, String, nil?: true + + # @!attribute shipping_address_state + # The US state of the shipping address associated with this purchase. + # + # @return [String, nil] + required :shipping_address_state, String, nil?: true + + # @!attribute three_d_secure_server_transaction_id + # A unique identifier assigned by the 3DS Server initiating the authentication + # attempt for this transaction. + # + # @return [String] + required :three_d_secure_server_transaction_id, String + + # @!attribute transaction_type + # The type of transaction being authenticated. + # + # @return [Symbol, Increase::Models::RealTimeDecision::CardAuthentication::TransactionType, nil] + required :transaction_type, + enum: -> { Increase::RealTimeDecision::CardAuthentication::TransactionType }, + nil?: true + # @!attribute upcoming_card_payment_id # The identifier of the Card Payment this authentication attempt will belong to. # Available in the API once the card authentication has completed. @@ -143,20 +364,102 @@ class CardAuthentication < Increase::Internal::Type::BaseModel # @return [String] required :upcoming_card_payment_id, String - # @!method initialize(account_id:, card_id:, decision:, upcoming_card_payment_id:) + # @!method initialize(access_control_server_transaction_id:, account_id:, billing_address_city:, billing_address_country:, billing_address_line1:, billing_address_line2:, billing_address_line3:, billing_address_postal_code:, billing_address_state:, card_id:, cardholder_email:, cardholder_name:, category:, decision:, device_channel:, directory_server_transaction_id:, merchant_acceptor_id:, merchant_category_code:, merchant_country:, merchant_name:, prior_card_authentication_id:, purchase_amount:, purchase_currency:, requestor_authentication_indicator:, requestor_challenge_indicator:, requestor_name:, requestor_url:, shipping_address_city:, shipping_address_country:, shipping_address_line1:, shipping_address_line2:, shipping_address_line3:, shipping_address_postal_code:, shipping_address_state:, three_d_secure_server_transaction_id:, transaction_type:, upcoming_card_payment_id:) # Some parameter documentations has been truncated, see # {Increase::Models::RealTimeDecision::CardAuthentication} for more details. # # Fields related to a 3DS authentication attempt. # + # @param access_control_server_transaction_id [String] A unique identifier assigned by the Access Control Server (us) for this transact + # # @param account_id [String] The identifier of the Account the card belongs to. # - # @param card_id [String] The identifier of the Card that is being tokenized. + # @param billing_address_city [String, nil] The city of the cardholder billing address associated with the card used for thi + # + # @param billing_address_country [String, nil] The country of the cardholder billing address associated with the card used for + # + # @param billing_address_line1 [String, nil] The first line of the cardholder billing address associated with the card used f + # + # @param billing_address_line2 [String, nil] The second line of the cardholder billing address associated with the card used + # + # @param billing_address_line3 [String, nil] The third line of the cardholder billing address associated with the card used f + # + # @param billing_address_postal_code [String, nil] The postal code of the cardholder billing address associated with the card used + # + # @param billing_address_state [String, nil] The US state of the cardholder billing address associated with the card used for + # + # @param card_id [String] The identifier of the Card. + # + # @param cardholder_email [String, nil] The email address of the cardholder. + # + # @param cardholder_name [String, nil] The name of the cardholder. + # + # @param category [Symbol, Increase::Models::RealTimeDecision::CardAuthentication::Category, nil] The category of the card authentication attempt. # # @param decision [Symbol, Increase::Models::RealTimeDecision::CardAuthentication::Decision, nil] Whether or not the authentication attempt was approved. # + # @param device_channel [Increase::Models::RealTimeDecision::CardAuthentication::DeviceChannel] The device channel of the card authentication attempt. + # + # @param directory_server_transaction_id [String] A unique identifier assigned by the Directory Server (the card network) for this + # + # @param merchant_acceptor_id [String] The merchant identifier (commonly abbreviated as MID) of the merchant the card i + # + # @param merchant_category_code [String] The Merchant Category Code (commonly abbreviated as MCC) of the merchant the car + # + # @param merchant_country [String] The country the merchant resides in. + # + # @param merchant_name [String] The name of the merchant. + # + # @param prior_card_authentication_id [String, nil] The ID of a prior Card Authentication that the requestor used to authenticate th + # + # @param purchase_amount [Integer, nil] The purchase amount in minor units. + # + # @param purchase_currency [String, nil] The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code for the authenticati + # + # @param requestor_authentication_indicator [Symbol, Increase::Models::RealTimeDecision::CardAuthentication::RequestorAuthenticationIndicator, nil] The 3DS requestor authentication indicator describes why the authentication atte + # + # @param requestor_challenge_indicator [Symbol, Increase::Models::RealTimeDecision::CardAuthentication::RequestorChallengeIndicator, nil] Indicates whether a challenge is requested for this transaction. + # + # @param requestor_name [String] The name of the 3DS requestor. + # + # @param requestor_url [String] The URL of the 3DS requestor. + # + # @param shipping_address_city [String, nil] The city of the shipping address associated with this purchase. + # + # @param shipping_address_country [String, nil] The country of the shipping address associated with this purchase. + # + # @param shipping_address_line1 [String, nil] The first line of the shipping address associated with this purchase. + # + # @param shipping_address_line2 [String, nil] The second line of the shipping address associated with this purchase. + # + # @param shipping_address_line3 [String, nil] The third line of the shipping address associated with this purchase. + # + # @param shipping_address_postal_code [String, nil] The postal code of the shipping address associated with this purchase. + # + # @param shipping_address_state [String, nil] The US state of the shipping address associated with this purchase. + # + # @param three_d_secure_server_transaction_id [String] A unique identifier assigned by the 3DS Server initiating the authentication att + # + # @param transaction_type [Symbol, Increase::Models::RealTimeDecision::CardAuthentication::TransactionType, nil] The type of transaction being authenticated. + # # @param upcoming_card_payment_id [String] The identifier of the Card Payment this authentication attempt will belong to. A + # The category of the card authentication attempt. + # + # @see Increase::Models::RealTimeDecision::CardAuthentication#category + module Category + extend Increase::Internal::Type::Enum + + # The authentication attempt is for a payment. + PAYMENT_AUTHENTICATION = :payment_authentication + + # The authentication attempt is not for a payment. + NON_PAYMENT_AUTHENTICATION = :non_payment_authentication + + # @!method self.values + # @return [Array] + end + # Whether or not the authentication attempt was approved. # # @see Increase::Models::RealTimeDecision::CardAuthentication#decision @@ -175,6 +478,305 @@ module Decision # @!method self.values # @return [Array] end + + # @see Increase::Models::RealTimeDecision::CardAuthentication#device_channel + class DeviceChannel < Increase::Internal::Type::BaseModel + # @!attribute browser + # Fields specific to the browser device channel. + # + # @return [Increase::Models::RealTimeDecision::CardAuthentication::DeviceChannel::Browser, nil] + required :browser, + -> { Increase::RealTimeDecision::CardAuthentication::DeviceChannel::Browser }, + nil?: true + + # @!attribute category + # The category of the device channel. + # + # @return [Symbol, Increase::Models::RealTimeDecision::CardAuthentication::DeviceChannel::Category] + required :category, enum: -> { Increase::RealTimeDecision::CardAuthentication::DeviceChannel::Category } + + # @!attribute merchant_initiated + # Fields specific to merchant initiated transactions. + # + # @return [Increase::Models::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated, nil] + required :merchant_initiated, + -> { Increase::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated }, + nil?: true + + # @!method initialize(browser:, category:, merchant_initiated:) + # The device channel of the card authentication attempt. + # + # @param browser [Increase::Models::RealTimeDecision::CardAuthentication::DeviceChannel::Browser, nil] Fields specific to the browser device channel. + # + # @param category [Symbol, Increase::Models::RealTimeDecision::CardAuthentication::DeviceChannel::Category] The category of the device channel. + # + # @param merchant_initiated [Increase::Models::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated, nil] Fields specific to merchant initiated transactions. + + # @see Increase::Models::RealTimeDecision::CardAuthentication::DeviceChannel#browser + class Browser < Increase::Internal::Type::BaseModel + # @!attribute accept_header + # The accept header from the cardholder's browser. + # + # @return [String, nil] + required :accept_header, String, nil?: true + + # @!attribute ip_address + # The IP address of the cardholder's browser. + # + # @return [String, nil] + required :ip_address, String, nil?: true + + # @!attribute javascript_enabled + # Whether JavaScript is enabled in the cardholder's browser. + # + # @return [Symbol, Increase::Models::RealTimeDecision::CardAuthentication::DeviceChannel::Browser::JavascriptEnabled, nil] + required :javascript_enabled, + enum: -> { + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::Browser::JavascriptEnabled + }, + nil?: true + + # @!attribute language + # The language of the cardholder's browser. + # + # @return [String, nil] + required :language, String, nil?: true + + # @!attribute user_agent + # The user agent of the cardholder's browser. + # + # @return [String, nil] + required :user_agent, String, nil?: true + + # @!method initialize(accept_header:, ip_address:, javascript_enabled:, language:, user_agent:) + # Fields specific to the browser device channel. + # + # @param accept_header [String, nil] The accept header from the cardholder's browser. + # + # @param ip_address [String, nil] The IP address of the cardholder's browser. + # + # @param javascript_enabled [Symbol, Increase::Models::RealTimeDecision::CardAuthentication::DeviceChannel::Browser::JavascriptEnabled, nil] Whether JavaScript is enabled in the cardholder's browser. + # + # @param language [String, nil] The language of the cardholder's browser. + # + # @param user_agent [String, nil] The user agent of the cardholder's browser. + + # Whether JavaScript is enabled in the cardholder's browser. + # + # @see Increase::Models::RealTimeDecision::CardAuthentication::DeviceChannel::Browser#javascript_enabled + module JavascriptEnabled + extend Increase::Internal::Type::Enum + + # JavaScript is enabled in the cardholder's browser. + ENABLED = :enabled + + # JavaScript is not enabled in the cardholder's browser. + DISABLED = :disabled + + # @!method self.values + # @return [Array] + end + end + + # The category of the device channel. + # + # @see Increase::Models::RealTimeDecision::CardAuthentication::DeviceChannel#category + module Category + extend Increase::Internal::Type::Enum + + # The authentication attempt was made from an app. + APP = :app + + # The authentication attempt was made from a browser. + BROWSER = :browser + + # The authentication attempt was initiated by the 3DS Requestor. + THREE_DS_REQUESTOR_INITIATED = :three_ds_requestor_initiated + + # @!method self.values + # @return [Array] + end + + # @see Increase::Models::RealTimeDecision::CardAuthentication::DeviceChannel#merchant_initiated + class MerchantInitiated < Increase::Internal::Type::BaseModel + # @!attribute indicator + # The merchant initiated indicator for the transaction. + # + # @return [Symbol, Increase::Models::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated::Indicator] + required :indicator, + enum: -> { Increase::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated::Indicator } + + # @!method initialize(indicator:) + # Fields specific to merchant initiated transactions. + # + # @param indicator [Symbol, Increase::Models::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated::Indicator] The merchant initiated indicator for the transaction. + + # The merchant initiated indicator for the transaction. + # + # @see Increase::Models::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated#indicator + module Indicator + extend Increase::Internal::Type::Enum + + # Recurring transaction. + RECURRING_TRANSACTION = :recurring_transaction + + # Installment transaction. + INSTALLMENT_TRANSACTION = :installment_transaction + + # Add card. + ADD_CARD = :add_card + + # Maintain card information. + MAINTAIN_CARD_INFORMATION = :maintain_card_information + + # Account verification. + ACCOUNT_VERIFICATION = :account_verification + + # Split or delayed shipment. + SPLIT_DELAYED_SHIPMENT = :split_delayed_shipment + + # Top up. + TOP_UP = :top_up + + # Mail order. + MAIL_ORDER = :mail_order + + # Telephone order. + TELEPHONE_ORDER = :telephone_order + + # Whitelist status check. + WHITELIST_STATUS_CHECK = :whitelist_status_check + + # Other payment. + OTHER_PAYMENT = :other_payment + + # Billing agreement. + BILLING_AGREEMENT = :billing_agreement + + # Device binding status check. + DEVICE_BINDING_STATUS_CHECK = :device_binding_status_check + + # Card security code status check. + CARD_SECURITY_CODE_STATUS_CHECK = :card_security_code_status_check + + # Delayed shipment. + DELAYED_SHIPMENT = :delayed_shipment + + # Split payment. + SPLIT_PAYMENT = :split_payment + + # FIDO credential deletion. + FIDO_CREDENTIAL_DELETION = :fido_credential_deletion + + # FIDO credential registration. + FIDO_CREDENTIAL_REGISTRATION = :fido_credential_registration + + # Decoupled authentication fallback. + DECOUPLED_AUTHENTICATION_FALLBACK = :decoupled_authentication_fallback + + # @!method self.values + # @return [Array] + end + end + end + + # The 3DS requestor authentication indicator describes why the authentication + # attempt is performed, such as for a recurring transaction. + # + # @see Increase::Models::RealTimeDecision::CardAuthentication#requestor_authentication_indicator + module RequestorAuthenticationIndicator + extend Increase::Internal::Type::Enum + + # The authentication is for a payment transaction. + PAYMENT_TRANSACTION = :payment_transaction + + # The authentication is for a recurring transaction. + RECURRING_TRANSACTION = :recurring_transaction + + # The authentication is for an installment transaction. + INSTALLMENT_TRANSACTION = :installment_transaction + + # The authentication is for adding a card. + ADD_CARD = :add_card + + # The authentication is for maintaining a card. + MAINTAIN_CARD = :maintain_card + + # The authentication is for EMV token cardholder verification. + EMV_TOKEN_CARDHOLDER_VERIFICATION = :emv_token_cardholder_verification + + # The authentication is for a billing agreement. + BILLING_AGREEMENT = :billing_agreement + + # @!method self.values + # @return [Array] + end + + # Indicates whether a challenge is requested for this transaction. + # + # @see Increase::Models::RealTimeDecision::CardAuthentication#requestor_challenge_indicator + module RequestorChallengeIndicator + extend Increase::Internal::Type::Enum + + # No preference. + NO_PREFERENCE = :no_preference + + # No challenge requested. + NO_CHALLENGE_REQUESTED = :no_challenge_requested + + # Challenge requested, 3DS Requestor preference. + CHALLENGE_REQUESTED_3DS_REQUESTOR_PREFERENCE = :challenge_requested_3ds_requestor_preference + + # Challenge requested, mandate. + CHALLENGE_REQUESTED_MANDATE = :challenge_requested_mandate + + # No challenge requested, transactional risk analysis already performed. + NO_CHALLENGE_REQUESTED_TRANSACTIONAL_RISK_ANALYSIS_ALREADY_PERFORMED = + :no_challenge_requested_transactional_risk_analysis_already_performed + + # No challenge requested, data share only. + NO_CHALLENGE_REQUESTED_DATA_SHARE_ONLY = :no_challenge_requested_data_share_only + + # No challenge requested, strong consumer authentication already performed. + NO_CHALLENGE_REQUESTED_STRONG_CONSUMER_AUTHENTICATION_ALREADY_PERFORMED = + :no_challenge_requested_strong_consumer_authentication_already_performed + + # No challenge requested, utilize whitelist exemption if no challenge required. + NO_CHALLENGE_REQUESTED_UTILIZE_WHITELIST_EXEMPTION_IF_NO_CHALLENGE_REQUIRED = + :no_challenge_requested_utilize_whitelist_exemption_if_no_challenge_required + + # Challenge requested, whitelist prompt requested if challenge required. + CHALLENGE_REQUESTED_WHITELIST_PROMPT_REQUESTED_IF_CHALLENGE_REQUIRED = + :challenge_requested_whitelist_prompt_requested_if_challenge_required + + # @!method self.values + # @return [Array] + end + + # The type of transaction being authenticated. + # + # @see Increase::Models::RealTimeDecision::CardAuthentication#transaction_type + module TransactionType + extend Increase::Internal::Type::Enum + + # Purchase of goods or services. + GOODS_SERVICE_PURCHASE = :goods_service_purchase + + # Check acceptance. + CHECK_ACCEPTANCE = :check_acceptance + + # Account funding. + ACCOUNT_FUNDING = :account_funding + + # Quasi-cash transaction. + QUASI_CASH_TRANSACTION = :quasi_cash_transaction + + # Prepaid activation and load. + PREPAID_ACTIVATION_AND_LOAD = :prepaid_activation_and_load + + # @!method self.values + # @return [Array] + end end # @see Increase::Models::RealTimeDecision#card_authentication_challenge diff --git a/lib/increase/version.rb b/lib/increase/version.rb index 74093585..11db949d 100644 --- a/lib/increase/version.rb +++ b/lib/increase/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module Increase - VERSION = "1.233.0" + VERSION = "1.234.0" end diff --git a/rbi/increase/models/real_time_decision.rbi b/rbi/increase/models/real_time_decision.rbi index 352d10d7..36677fe6 100644 --- a/rbi/increase/models/real_time_decision.rbi +++ b/rbi/increase/models/real_time_decision.rbi @@ -220,14 +220,72 @@ module Increase ) end + # A unique identifier assigned by the Access Control Server (us) for this + # transaction. + sig { returns(String) } + attr_accessor :access_control_server_transaction_id + # The identifier of the Account the card belongs to. sig { returns(String) } attr_accessor :account_id - # The identifier of the Card that is being tokenized. + # The city of the cardholder billing address associated with the card used for + # this purchase. + sig { returns(T.nilable(String)) } + attr_accessor :billing_address_city + + # The country of the cardholder billing address associated with the card used for + # this purchase. + sig { returns(T.nilable(String)) } + attr_accessor :billing_address_country + + # The first line of the cardholder billing address associated with the card used + # for this purchase. + sig { returns(T.nilable(String)) } + attr_accessor :billing_address_line1 + + # The second line of the cardholder billing address associated with the card used + # for this purchase. + sig { returns(T.nilable(String)) } + attr_accessor :billing_address_line2 + + # The third line of the cardholder billing address associated with the card used + # for this purchase. + sig { returns(T.nilable(String)) } + attr_accessor :billing_address_line3 + + # The postal code of the cardholder billing address associated with the card used + # for this purchase. + sig { returns(T.nilable(String)) } + attr_accessor :billing_address_postal_code + + # The US state of the cardholder billing address associated with the card used for + # this purchase. + sig { returns(T.nilable(String)) } + attr_accessor :billing_address_state + + # The identifier of the Card. sig { returns(String) } attr_accessor :card_id + # The email address of the cardholder. + sig { returns(T.nilable(String)) } + attr_accessor :cardholder_email + + # The name of the cardholder. + sig { returns(T.nilable(String)) } + attr_accessor :cardholder_name + + # The category of the card authentication attempt. + sig do + returns( + T.nilable( + Increase::RealTimeDecision::CardAuthentication::Category::TaggedSymbol + ) + ) + end + attr_accessor :category + # Whether or not the authentication attempt was approved. sig do returns( @@ -238,6 +296,129 @@ module Increase end attr_accessor :decision + # The device channel of the card authentication attempt. + sig do + returns(Increase::RealTimeDecision::CardAuthentication::DeviceChannel) + end + attr_reader :device_channel + + sig do + params( + device_channel: + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::OrHash + ).void + end + attr_writer :device_channel + + # A unique identifier assigned by the Directory Server (the card network) for this + # transaction. + sig { returns(String) } + attr_accessor :directory_server_transaction_id + + # The merchant identifier (commonly abbreviated as MID) of the merchant the card + # is transacting with. + sig { returns(String) } + attr_accessor :merchant_acceptor_id + + # The Merchant Category Code (commonly abbreviated as MCC) of the merchant the + # card is transacting with. + sig { returns(String) } + attr_accessor :merchant_category_code + + # The country the merchant resides in. + sig { returns(String) } + attr_accessor :merchant_country + + # The name of the merchant. + sig { returns(String) } + attr_accessor :merchant_name + + # The ID of a prior Card Authentication that the requestor used to authenticate + # this cardholder for a previous transaction. + sig { returns(T.nilable(String)) } + attr_accessor :prior_card_authentication_id + + # The purchase amount in minor units. + sig { returns(T.nilable(Integer)) } + attr_accessor :purchase_amount + + # The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code for the + # authentication attempt's purchase currency. + sig { returns(T.nilable(String)) } + attr_accessor :purchase_currency + + # The 3DS requestor authentication indicator describes why the authentication + # attempt is performed, such as for a recurring transaction. + sig do + returns( + T.nilable( + Increase::RealTimeDecision::CardAuthentication::RequestorAuthenticationIndicator::TaggedSymbol + ) + ) + end + attr_accessor :requestor_authentication_indicator + + # Indicates whether a challenge is requested for this transaction. + sig do + returns( + T.nilable( + Increase::RealTimeDecision::CardAuthentication::RequestorChallengeIndicator::TaggedSymbol + ) + ) + end + attr_accessor :requestor_challenge_indicator + + # The name of the 3DS requestor. + sig { returns(String) } + attr_accessor :requestor_name + + # The URL of the 3DS requestor. + sig { returns(String) } + attr_accessor :requestor_url + + # The city of the shipping address associated with this purchase. + sig { returns(T.nilable(String)) } + attr_accessor :shipping_address_city + + # The country of the shipping address associated with this purchase. + sig { returns(T.nilable(String)) } + attr_accessor :shipping_address_country + + # The first line of the shipping address associated with this purchase. + sig { returns(T.nilable(String)) } + attr_accessor :shipping_address_line1 + + # The second line of the shipping address associated with this purchase. + sig { returns(T.nilable(String)) } + attr_accessor :shipping_address_line2 + + # The third line of the shipping address associated with this purchase. + sig { returns(T.nilable(String)) } + attr_accessor :shipping_address_line3 + + # The postal code of the shipping address associated with this purchase. + sig { returns(T.nilable(String)) } + attr_accessor :shipping_address_postal_code + + # The US state of the shipping address associated with this purchase. + sig { returns(T.nilable(String)) } + attr_accessor :shipping_address_state + + # A unique identifier assigned by the 3DS Server initiating the authentication + # attempt for this transaction. + sig { returns(String) } + attr_accessor :three_d_secure_server_transaction_id + + # The type of transaction being authenticated. + sig do + returns( + T.nilable( + Increase::RealTimeDecision::CardAuthentication::TransactionType::TaggedSymbol + ) + ) + end + attr_accessor :transaction_type + # The identifier of the Card Payment this authentication attempt will belong to. # Available in the API once the card authentication has completed. sig { returns(String) } @@ -246,22 +427,149 @@ module Increase # Fields related to a 3DS authentication attempt. sig do params( + access_control_server_transaction_id: String, account_id: String, + billing_address_city: T.nilable(String), + billing_address_country: T.nilable(String), + billing_address_line1: T.nilable(String), + billing_address_line2: T.nilable(String), + billing_address_line3: T.nilable(String), + billing_address_postal_code: T.nilable(String), + billing_address_state: T.nilable(String), card_id: String, + cardholder_email: T.nilable(String), + cardholder_name: T.nilable(String), + category: + T.nilable( + Increase::RealTimeDecision::CardAuthentication::Category::OrSymbol + ), decision: T.nilable( Increase::RealTimeDecision::CardAuthentication::Decision::OrSymbol ), + device_channel: + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::OrHash, + directory_server_transaction_id: String, + merchant_acceptor_id: String, + merchant_category_code: String, + merchant_country: String, + merchant_name: String, + prior_card_authentication_id: T.nilable(String), + purchase_amount: T.nilable(Integer), + purchase_currency: T.nilable(String), + requestor_authentication_indicator: + T.nilable( + Increase::RealTimeDecision::CardAuthentication::RequestorAuthenticationIndicator::OrSymbol + ), + requestor_challenge_indicator: + T.nilable( + Increase::RealTimeDecision::CardAuthentication::RequestorChallengeIndicator::OrSymbol + ), + requestor_name: String, + requestor_url: String, + shipping_address_city: T.nilable(String), + shipping_address_country: T.nilable(String), + shipping_address_line1: T.nilable(String), + shipping_address_line2: T.nilable(String), + shipping_address_line3: T.nilable(String), + shipping_address_postal_code: T.nilable(String), + shipping_address_state: T.nilable(String), + three_d_secure_server_transaction_id: String, + transaction_type: + T.nilable( + Increase::RealTimeDecision::CardAuthentication::TransactionType::OrSymbol + ), upcoming_card_payment_id: String ).returns(T.attached_class) end def self.new( + # A unique identifier assigned by the Access Control Server (us) for this + # transaction. + access_control_server_transaction_id:, # The identifier of the Account the card belongs to. account_id:, - # The identifier of the Card that is being tokenized. + # The city of the cardholder billing address associated with the card used for + # this purchase. + billing_address_city:, + # The country of the cardholder billing address associated with the card used for + # this purchase. + billing_address_country:, + # The first line of the cardholder billing address associated with the card used + # for this purchase. + billing_address_line1:, + # The second line of the cardholder billing address associated with the card used + # for this purchase. + billing_address_line2:, + # The third line of the cardholder billing address associated with the card used + # for this purchase. + billing_address_line3:, + # The postal code of the cardholder billing address associated with the card used + # for this purchase. + billing_address_postal_code:, + # The US state of the cardholder billing address associated with the card used for + # this purchase. + billing_address_state:, + # The identifier of the Card. card_id:, + # The email address of the cardholder. + cardholder_email:, + # The name of the cardholder. + cardholder_name:, + # The category of the card authentication attempt. + category:, # Whether or not the authentication attempt was approved. decision:, + # The device channel of the card authentication attempt. + device_channel:, + # A unique identifier assigned by the Directory Server (the card network) for this + # transaction. + directory_server_transaction_id:, + # The merchant identifier (commonly abbreviated as MID) of the merchant the card + # is transacting with. + merchant_acceptor_id:, + # The Merchant Category Code (commonly abbreviated as MCC) of the merchant the + # card is transacting with. + merchant_category_code:, + # The country the merchant resides in. + merchant_country:, + # The name of the merchant. + merchant_name:, + # The ID of a prior Card Authentication that the requestor used to authenticate + # this cardholder for a previous transaction. + prior_card_authentication_id:, + # The purchase amount in minor units. + purchase_amount:, + # The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code for the + # authentication attempt's purchase currency. + purchase_currency:, + # The 3DS requestor authentication indicator describes why the authentication + # attempt is performed, such as for a recurring transaction. + requestor_authentication_indicator:, + # Indicates whether a challenge is requested for this transaction. + requestor_challenge_indicator:, + # The name of the 3DS requestor. + requestor_name:, + # The URL of the 3DS requestor. + requestor_url:, + # The city of the shipping address associated with this purchase. + shipping_address_city:, + # The country of the shipping address associated with this purchase. + shipping_address_country:, + # The first line of the shipping address associated with this purchase. + shipping_address_line1:, + # The second line of the shipping address associated with this purchase. + shipping_address_line2:, + # The third line of the shipping address associated with this purchase. + shipping_address_line3:, + # The postal code of the shipping address associated with this purchase. + shipping_address_postal_code:, + # The US state of the shipping address associated with this purchase. + shipping_address_state:, + # A unique identifier assigned by the 3DS Server initiating the authentication + # attempt for this transaction. + three_d_secure_server_transaction_id:, + # The type of transaction being authenticated. + transaction_type:, # The identifier of the Card Payment this authentication attempt will belong to. # Available in the API once the card authentication has completed. upcoming_card_payment_id: @@ -271,12 +579,58 @@ module Increase sig do override.returns( { + access_control_server_transaction_id: String, account_id: String, + billing_address_city: T.nilable(String), + billing_address_country: T.nilable(String), + billing_address_line1: T.nilable(String), + billing_address_line2: T.nilable(String), + billing_address_line3: T.nilable(String), + billing_address_postal_code: T.nilable(String), + billing_address_state: T.nilable(String), card_id: String, + cardholder_email: T.nilable(String), + cardholder_name: T.nilable(String), + category: + T.nilable( + Increase::RealTimeDecision::CardAuthentication::Category::TaggedSymbol + ), decision: T.nilable( Increase::RealTimeDecision::CardAuthentication::Decision::TaggedSymbol ), + device_channel: + Increase::RealTimeDecision::CardAuthentication::DeviceChannel, + directory_server_transaction_id: String, + merchant_acceptor_id: String, + merchant_category_code: String, + merchant_country: String, + merchant_name: String, + prior_card_authentication_id: T.nilable(String), + purchase_amount: T.nilable(Integer), + purchase_currency: T.nilable(String), + requestor_authentication_indicator: + T.nilable( + Increase::RealTimeDecision::CardAuthentication::RequestorAuthenticationIndicator::TaggedSymbol + ), + requestor_challenge_indicator: + T.nilable( + Increase::RealTimeDecision::CardAuthentication::RequestorChallengeIndicator::TaggedSymbol + ), + requestor_name: String, + requestor_url: String, + shipping_address_city: T.nilable(String), + shipping_address_country: T.nilable(String), + shipping_address_line1: T.nilable(String), + shipping_address_line2: T.nilable(String), + shipping_address_line3: T.nilable(String), + shipping_address_postal_code: T.nilable(String), + shipping_address_state: T.nilable(String), + three_d_secure_server_transaction_id: String, + transaction_type: + T.nilable( + Increase::RealTimeDecision::CardAuthentication::TransactionType::TaggedSymbol + ), upcoming_card_payment_id: String } ) @@ -284,6 +638,44 @@ module Increase def to_hash end + # The category of the card authentication attempt. + module Category + extend Increase::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all( + Symbol, + Increase::RealTimeDecision::CardAuthentication::Category + ) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + # The authentication attempt is for a payment. + PAYMENT_AUTHENTICATION = + T.let( + :payment_authentication, + Increase::RealTimeDecision::CardAuthentication::Category::TaggedSymbol + ) + + # The authentication attempt is not for a payment. + NON_PAYMENT_AUTHENTICATION = + T.let( + :non_payment_authentication, + Increase::RealTimeDecision::CardAuthentication::Category::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Increase::RealTimeDecision::CardAuthentication::Category::TaggedSymbol + ] + ) + end + def self.values + end + end + # Whether or not the authentication attempt was approved. module Decision extend Increase::Internal::Type::Enum @@ -328,6 +720,690 @@ module Increase def self.values end end + + class DeviceChannel < Increase::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Increase::RealTimeDecision::CardAuthentication::DeviceChannel, + Increase::Internal::AnyHash + ) + end + + # Fields specific to the browser device channel. + sig do + returns( + T.nilable( + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::Browser + ) + ) + end + attr_reader :browser + + sig do + params( + browser: + T.nilable( + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::Browser::OrHash + ) + ).void + end + attr_writer :browser + + # The category of the device channel. + sig do + returns( + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::Category::TaggedSymbol + ) + end + attr_accessor :category + + # Fields specific to merchant initiated transactions. + sig do + returns( + T.nilable( + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated + ) + ) + end + attr_reader :merchant_initiated + + sig do + params( + merchant_initiated: + T.nilable( + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated::OrHash + ) + ).void + end + attr_writer :merchant_initiated + + # The device channel of the card authentication attempt. + sig do + params( + browser: + T.nilable( + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::Browser::OrHash + ), + category: + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::Category::OrSymbol, + merchant_initiated: + T.nilable( + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated::OrHash + ) + ).returns(T.attached_class) + end + def self.new( + # Fields specific to the browser device channel. + browser:, + # The category of the device channel. + category:, + # Fields specific to merchant initiated transactions. + merchant_initiated: + ) + end + + sig do + override.returns( + { + browser: + T.nilable( + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::Browser + ), + category: + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::Category::TaggedSymbol, + merchant_initiated: + T.nilable( + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated + ) + } + ) + end + def to_hash + end + + class Browser < Increase::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::Browser, + Increase::Internal::AnyHash + ) + end + + # The accept header from the cardholder's browser. + sig { returns(T.nilable(String)) } + attr_accessor :accept_header + + # The IP address of the cardholder's browser. + sig { returns(T.nilable(String)) } + attr_accessor :ip_address + + # Whether JavaScript is enabled in the cardholder's browser. + sig do + returns( + T.nilable( + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::Browser::JavascriptEnabled::TaggedSymbol + ) + ) + end + attr_accessor :javascript_enabled + + # The language of the cardholder's browser. + sig { returns(T.nilable(String)) } + attr_accessor :language + + # The user agent of the cardholder's browser. + sig { returns(T.nilable(String)) } + attr_accessor :user_agent + + # Fields specific to the browser device channel. + sig do + params( + accept_header: T.nilable(String), + ip_address: T.nilable(String), + javascript_enabled: + T.nilable( + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::Browser::JavascriptEnabled::OrSymbol + ), + language: T.nilable(String), + user_agent: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + # The accept header from the cardholder's browser. + accept_header:, + # The IP address of the cardholder's browser. + ip_address:, + # Whether JavaScript is enabled in the cardholder's browser. + javascript_enabled:, + # The language of the cardholder's browser. + language:, + # The user agent of the cardholder's browser. + user_agent: + ) + end + + sig do + override.returns( + { + accept_header: T.nilable(String), + ip_address: T.nilable(String), + javascript_enabled: + T.nilable( + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::Browser::JavascriptEnabled::TaggedSymbol + ), + language: T.nilable(String), + user_agent: T.nilable(String) + } + ) + end + def to_hash + end + + # Whether JavaScript is enabled in the cardholder's browser. + module JavascriptEnabled + extend Increase::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all( + Symbol, + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::Browser::JavascriptEnabled + ) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + # JavaScript is enabled in the cardholder's browser. + ENABLED = + T.let( + :enabled, + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::Browser::JavascriptEnabled::TaggedSymbol + ) + + # JavaScript is not enabled in the cardholder's browser. + DISABLED = + T.let( + :disabled, + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::Browser::JavascriptEnabled::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::Browser::JavascriptEnabled::TaggedSymbol + ] + ) + end + def self.values + end + end + end + + # The category of the device channel. + module Category + extend Increase::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all( + Symbol, + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::Category + ) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + # The authentication attempt was made from an app. + APP = + T.let( + :app, + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::Category::TaggedSymbol + ) + + # The authentication attempt was made from a browser. + BROWSER = + T.let( + :browser, + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::Category::TaggedSymbol + ) + + # The authentication attempt was initiated by the 3DS Requestor. + THREE_DS_REQUESTOR_INITIATED = + T.let( + :three_ds_requestor_initiated, + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::Category::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::Category::TaggedSymbol + ] + ) + end + def self.values + end + end + + class MerchantInitiated < Increase::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated, + Increase::Internal::AnyHash + ) + end + + # The merchant initiated indicator for the transaction. + sig do + returns( + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated::Indicator::TaggedSymbol + ) + end + attr_accessor :indicator + + # Fields specific to merchant initiated transactions. + sig do + params( + indicator: + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated::Indicator::OrSymbol + ).returns(T.attached_class) + end + def self.new( + # The merchant initiated indicator for the transaction. + indicator: + ) + end + + sig do + override.returns( + { + indicator: + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated::Indicator::TaggedSymbol + } + ) + end + def to_hash + end + + # The merchant initiated indicator for the transaction. + module Indicator + extend Increase::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all( + Symbol, + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated::Indicator + ) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + # Recurring transaction. + RECURRING_TRANSACTION = + T.let( + :recurring_transaction, + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated::Indicator::TaggedSymbol + ) + + # Installment transaction. + INSTALLMENT_TRANSACTION = + T.let( + :installment_transaction, + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated::Indicator::TaggedSymbol + ) + + # Add card. + ADD_CARD = + T.let( + :add_card, + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated::Indicator::TaggedSymbol + ) + + # Maintain card information. + MAINTAIN_CARD_INFORMATION = + T.let( + :maintain_card_information, + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated::Indicator::TaggedSymbol + ) + + # Account verification. + ACCOUNT_VERIFICATION = + T.let( + :account_verification, + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated::Indicator::TaggedSymbol + ) + + # Split or delayed shipment. + SPLIT_DELAYED_SHIPMENT = + T.let( + :split_delayed_shipment, + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated::Indicator::TaggedSymbol + ) + + # Top up. + TOP_UP = + T.let( + :top_up, + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated::Indicator::TaggedSymbol + ) + + # Mail order. + MAIL_ORDER = + T.let( + :mail_order, + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated::Indicator::TaggedSymbol + ) + + # Telephone order. + TELEPHONE_ORDER = + T.let( + :telephone_order, + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated::Indicator::TaggedSymbol + ) + + # Whitelist status check. + WHITELIST_STATUS_CHECK = + T.let( + :whitelist_status_check, + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated::Indicator::TaggedSymbol + ) + + # Other payment. + OTHER_PAYMENT = + T.let( + :other_payment, + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated::Indicator::TaggedSymbol + ) + + # Billing agreement. + BILLING_AGREEMENT = + T.let( + :billing_agreement, + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated::Indicator::TaggedSymbol + ) + + # Device binding status check. + DEVICE_BINDING_STATUS_CHECK = + T.let( + :device_binding_status_check, + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated::Indicator::TaggedSymbol + ) + + # Card security code status check. + CARD_SECURITY_CODE_STATUS_CHECK = + T.let( + :card_security_code_status_check, + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated::Indicator::TaggedSymbol + ) + + # Delayed shipment. + DELAYED_SHIPMENT = + T.let( + :delayed_shipment, + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated::Indicator::TaggedSymbol + ) + + # Split payment. + SPLIT_PAYMENT = + T.let( + :split_payment, + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated::Indicator::TaggedSymbol + ) + + # FIDO credential deletion. + FIDO_CREDENTIAL_DELETION = + T.let( + :fido_credential_deletion, + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated::Indicator::TaggedSymbol + ) + + # FIDO credential registration. + FIDO_CREDENTIAL_REGISTRATION = + T.let( + :fido_credential_registration, + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated::Indicator::TaggedSymbol + ) + + # Decoupled authentication fallback. + DECOUPLED_AUTHENTICATION_FALLBACK = + T.let( + :decoupled_authentication_fallback, + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated::Indicator::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Increase::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated::Indicator::TaggedSymbol + ] + ) + end + def self.values + end + end + end + end + + # The 3DS requestor authentication indicator describes why the authentication + # attempt is performed, such as for a recurring transaction. + module RequestorAuthenticationIndicator + extend Increase::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all( + Symbol, + Increase::RealTimeDecision::CardAuthentication::RequestorAuthenticationIndicator + ) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + # The authentication is for a payment transaction. + PAYMENT_TRANSACTION = + T.let( + :payment_transaction, + Increase::RealTimeDecision::CardAuthentication::RequestorAuthenticationIndicator::TaggedSymbol + ) + + # The authentication is for a recurring transaction. + RECURRING_TRANSACTION = + T.let( + :recurring_transaction, + Increase::RealTimeDecision::CardAuthentication::RequestorAuthenticationIndicator::TaggedSymbol + ) + + # The authentication is for an installment transaction. + INSTALLMENT_TRANSACTION = + T.let( + :installment_transaction, + Increase::RealTimeDecision::CardAuthentication::RequestorAuthenticationIndicator::TaggedSymbol + ) + + # The authentication is for adding a card. + ADD_CARD = + T.let( + :add_card, + Increase::RealTimeDecision::CardAuthentication::RequestorAuthenticationIndicator::TaggedSymbol + ) + + # The authentication is for maintaining a card. + MAINTAIN_CARD = + T.let( + :maintain_card, + Increase::RealTimeDecision::CardAuthentication::RequestorAuthenticationIndicator::TaggedSymbol + ) + + # The authentication is for EMV token cardholder verification. + EMV_TOKEN_CARDHOLDER_VERIFICATION = + T.let( + :emv_token_cardholder_verification, + Increase::RealTimeDecision::CardAuthentication::RequestorAuthenticationIndicator::TaggedSymbol + ) + + # The authentication is for a billing agreement. + BILLING_AGREEMENT = + T.let( + :billing_agreement, + Increase::RealTimeDecision::CardAuthentication::RequestorAuthenticationIndicator::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Increase::RealTimeDecision::CardAuthentication::RequestorAuthenticationIndicator::TaggedSymbol + ] + ) + end + def self.values + end + end + + # Indicates whether a challenge is requested for this transaction. + module RequestorChallengeIndicator + extend Increase::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all( + Symbol, + Increase::RealTimeDecision::CardAuthentication::RequestorChallengeIndicator + ) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + # No preference. + NO_PREFERENCE = + T.let( + :no_preference, + Increase::RealTimeDecision::CardAuthentication::RequestorChallengeIndicator::TaggedSymbol + ) + + # No challenge requested. + NO_CHALLENGE_REQUESTED = + T.let( + :no_challenge_requested, + Increase::RealTimeDecision::CardAuthentication::RequestorChallengeIndicator::TaggedSymbol + ) + + # Challenge requested, 3DS Requestor preference. + CHALLENGE_REQUESTED_3DS_REQUESTOR_PREFERENCE = + T.let( + :challenge_requested_3ds_requestor_preference, + Increase::RealTimeDecision::CardAuthentication::RequestorChallengeIndicator::TaggedSymbol + ) + + # Challenge requested, mandate. + CHALLENGE_REQUESTED_MANDATE = + T.let( + :challenge_requested_mandate, + Increase::RealTimeDecision::CardAuthentication::RequestorChallengeIndicator::TaggedSymbol + ) + + # No challenge requested, transactional risk analysis already performed. + NO_CHALLENGE_REQUESTED_TRANSACTIONAL_RISK_ANALYSIS_ALREADY_PERFORMED = + T.let( + :no_challenge_requested_transactional_risk_analysis_already_performed, + Increase::RealTimeDecision::CardAuthentication::RequestorChallengeIndicator::TaggedSymbol + ) + + # No challenge requested, data share only. + NO_CHALLENGE_REQUESTED_DATA_SHARE_ONLY = + T.let( + :no_challenge_requested_data_share_only, + Increase::RealTimeDecision::CardAuthentication::RequestorChallengeIndicator::TaggedSymbol + ) + + # No challenge requested, strong consumer authentication already performed. + NO_CHALLENGE_REQUESTED_STRONG_CONSUMER_AUTHENTICATION_ALREADY_PERFORMED = + T.let( + :no_challenge_requested_strong_consumer_authentication_already_performed, + Increase::RealTimeDecision::CardAuthentication::RequestorChallengeIndicator::TaggedSymbol + ) + + # No challenge requested, utilize whitelist exemption if no challenge required. + NO_CHALLENGE_REQUESTED_UTILIZE_WHITELIST_EXEMPTION_IF_NO_CHALLENGE_REQUIRED = + T.let( + :no_challenge_requested_utilize_whitelist_exemption_if_no_challenge_required, + Increase::RealTimeDecision::CardAuthentication::RequestorChallengeIndicator::TaggedSymbol + ) + + # Challenge requested, whitelist prompt requested if challenge required. + CHALLENGE_REQUESTED_WHITELIST_PROMPT_REQUESTED_IF_CHALLENGE_REQUIRED = + T.let( + :challenge_requested_whitelist_prompt_requested_if_challenge_required, + Increase::RealTimeDecision::CardAuthentication::RequestorChallengeIndicator::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Increase::RealTimeDecision::CardAuthentication::RequestorChallengeIndicator::TaggedSymbol + ] + ) + end + def self.values + end + end + + # The type of transaction being authenticated. + module TransactionType + extend Increase::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all( + Symbol, + Increase::RealTimeDecision::CardAuthentication::TransactionType + ) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + # Purchase of goods or services. + GOODS_SERVICE_PURCHASE = + T.let( + :goods_service_purchase, + Increase::RealTimeDecision::CardAuthentication::TransactionType::TaggedSymbol + ) + + # Check acceptance. + CHECK_ACCEPTANCE = + T.let( + :check_acceptance, + Increase::RealTimeDecision::CardAuthentication::TransactionType::TaggedSymbol + ) + + # Account funding. + ACCOUNT_FUNDING = + T.let( + :account_funding, + Increase::RealTimeDecision::CardAuthentication::TransactionType::TaggedSymbol + ) + + # Quasi-cash transaction. + QUASI_CASH_TRANSACTION = + T.let( + :quasi_cash_transaction, + Increase::RealTimeDecision::CardAuthentication::TransactionType::TaggedSymbol + ) + + # Prepaid activation and load. + PREPAID_ACTIVATION_AND_LOAD = + T.let( + :prepaid_activation_and_load, + Increase::RealTimeDecision::CardAuthentication::TransactionType::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Increase::RealTimeDecision::CardAuthentication::TransactionType::TaggedSymbol + ] + ) + end + def self.values + end + end end class CardAuthenticationChallenge < Increase::Internal::Type::BaseModel diff --git a/sig/increase/models/real_time_decision.rbs b/sig/increase/models/real_time_decision.rbs index b2a41a67..4b4815db 100644 --- a/sig/increase/models/real_time_decision.rbs +++ b/sig/increase/models/real_time_decision.rbs @@ -73,35 +73,214 @@ module Increase type card_authentication = { + access_control_server_transaction_id: String, account_id: String, + billing_address_city: String?, + billing_address_country: String?, + :billing_address_line1 => String?, + :billing_address_line2 => String?, + :billing_address_line3 => String?, + billing_address_postal_code: String?, + billing_address_state: String?, card_id: String, + cardholder_email: String?, + cardholder_name: String?, + category: Increase::Models::RealTimeDecision::CardAuthentication::category?, decision: Increase::Models::RealTimeDecision::CardAuthentication::decision?, + device_channel: Increase::RealTimeDecision::CardAuthentication::DeviceChannel, + directory_server_transaction_id: String, + merchant_acceptor_id: String, + merchant_category_code: String, + merchant_country: String, + merchant_name: String, + prior_card_authentication_id: String?, + purchase_amount: Integer?, + purchase_currency: String?, + requestor_authentication_indicator: Increase::Models::RealTimeDecision::CardAuthentication::requestor_authentication_indicator?, + requestor_challenge_indicator: Increase::Models::RealTimeDecision::CardAuthentication::requestor_challenge_indicator?, + requestor_name: String, + requestor_url: String, + shipping_address_city: String?, + shipping_address_country: String?, + :shipping_address_line1 => String?, + :shipping_address_line2 => String?, + :shipping_address_line3 => String?, + shipping_address_postal_code: String?, + shipping_address_state: String?, + three_d_secure_server_transaction_id: String, + transaction_type: Increase::Models::RealTimeDecision::CardAuthentication::transaction_type?, upcoming_card_payment_id: String } class CardAuthentication < Increase::Internal::Type::BaseModel + attr_accessor access_control_server_transaction_id: String + attr_accessor account_id: String + attr_accessor billing_address_city: String? + + attr_accessor billing_address_country: String? + + attr_accessor billing_address_line1: String? + + attr_accessor billing_address_line2: String? + + attr_accessor billing_address_line3: String? + + attr_accessor billing_address_postal_code: String? + + attr_accessor billing_address_state: String? + attr_accessor card_id: String + attr_accessor cardholder_email: String? + + attr_accessor cardholder_name: String? + + attr_accessor category: Increase::Models::RealTimeDecision::CardAuthentication::category? + attr_accessor decision: Increase::Models::RealTimeDecision::CardAuthentication::decision? + attr_accessor device_channel: Increase::RealTimeDecision::CardAuthentication::DeviceChannel + + attr_accessor directory_server_transaction_id: String + + attr_accessor merchant_acceptor_id: String + + attr_accessor merchant_category_code: String + + attr_accessor merchant_country: String + + attr_accessor merchant_name: String + + attr_accessor prior_card_authentication_id: String? + + attr_accessor purchase_amount: Integer? + + attr_accessor purchase_currency: String? + + attr_accessor requestor_authentication_indicator: Increase::Models::RealTimeDecision::CardAuthentication::requestor_authentication_indicator? + + attr_accessor requestor_challenge_indicator: Increase::Models::RealTimeDecision::CardAuthentication::requestor_challenge_indicator? + + attr_accessor requestor_name: String + + attr_accessor requestor_url: String + + attr_accessor shipping_address_city: String? + + attr_accessor shipping_address_country: String? + + attr_accessor shipping_address_line1: String? + + attr_accessor shipping_address_line2: String? + + attr_accessor shipping_address_line3: String? + + attr_accessor shipping_address_postal_code: String? + + attr_accessor shipping_address_state: String? + + attr_accessor three_d_secure_server_transaction_id: String + + attr_accessor transaction_type: Increase::Models::RealTimeDecision::CardAuthentication::transaction_type? + attr_accessor upcoming_card_payment_id: String def initialize: ( + access_control_server_transaction_id: String, account_id: String, + billing_address_city: String?, + billing_address_country: String?, + billing_address_line1: String?, + billing_address_line2: String?, + billing_address_line3: String?, + billing_address_postal_code: String?, + billing_address_state: String?, card_id: String, + cardholder_email: String?, + cardholder_name: String?, + category: Increase::Models::RealTimeDecision::CardAuthentication::category?, decision: Increase::Models::RealTimeDecision::CardAuthentication::decision?, + device_channel: Increase::RealTimeDecision::CardAuthentication::DeviceChannel, + directory_server_transaction_id: String, + merchant_acceptor_id: String, + merchant_category_code: String, + merchant_country: String, + merchant_name: String, + prior_card_authentication_id: String?, + purchase_amount: Integer?, + purchase_currency: String?, + requestor_authentication_indicator: Increase::Models::RealTimeDecision::CardAuthentication::requestor_authentication_indicator?, + requestor_challenge_indicator: Increase::Models::RealTimeDecision::CardAuthentication::requestor_challenge_indicator?, + requestor_name: String, + requestor_url: String, + shipping_address_city: String?, + shipping_address_country: String?, + shipping_address_line1: String?, + shipping_address_line2: String?, + shipping_address_line3: String?, + shipping_address_postal_code: String?, + shipping_address_state: String?, + three_d_secure_server_transaction_id: String, + transaction_type: Increase::Models::RealTimeDecision::CardAuthentication::transaction_type?, upcoming_card_payment_id: String ) -> void def to_hash: -> { + access_control_server_transaction_id: String, account_id: String, + billing_address_city: String?, + billing_address_country: String?, + :billing_address_line1 => String?, + :billing_address_line2 => String?, + :billing_address_line3 => String?, + billing_address_postal_code: String?, + billing_address_state: String?, card_id: String, + cardholder_email: String?, + cardholder_name: String?, + category: Increase::Models::RealTimeDecision::CardAuthentication::category?, decision: Increase::Models::RealTimeDecision::CardAuthentication::decision?, + device_channel: Increase::RealTimeDecision::CardAuthentication::DeviceChannel, + directory_server_transaction_id: String, + merchant_acceptor_id: String, + merchant_category_code: String, + merchant_country: String, + merchant_name: String, + prior_card_authentication_id: String?, + purchase_amount: Integer?, + purchase_currency: String?, + requestor_authentication_indicator: Increase::Models::RealTimeDecision::CardAuthentication::requestor_authentication_indicator?, + requestor_challenge_indicator: Increase::Models::RealTimeDecision::CardAuthentication::requestor_challenge_indicator?, + requestor_name: String, + requestor_url: String, + shipping_address_city: String?, + shipping_address_country: String?, + :shipping_address_line1 => String?, + :shipping_address_line2 => String?, + :shipping_address_line3 => String?, + shipping_address_postal_code: String?, + shipping_address_state: String?, + three_d_secure_server_transaction_id: String, + transaction_type: Increase::Models::RealTimeDecision::CardAuthentication::transaction_type?, upcoming_card_payment_id: String } + type category = :payment_authentication | :non_payment_authentication + + module Category + extend Increase::Internal::Type::Enum + + # The authentication attempt is for a payment. + PAYMENT_AUTHENTICATION: :payment_authentication + + # The authentication attempt is not for a payment. + NON_PAYMENT_AUTHENTICATION: :non_payment_authentication + + def self?.values: -> ::Array[Increase::Models::RealTimeDecision::CardAuthentication::category] + end + type decision = :approve | :challenge | :deny module Decision @@ -118,6 +297,310 @@ module Increase def self?.values: -> ::Array[Increase::Models::RealTimeDecision::CardAuthentication::decision] end + + type device_channel = + { + browser: Increase::RealTimeDecision::CardAuthentication::DeviceChannel::Browser?, + category: Increase::Models::RealTimeDecision::CardAuthentication::DeviceChannel::category, + merchant_initiated: Increase::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated? + } + + class DeviceChannel < Increase::Internal::Type::BaseModel + attr_accessor browser: Increase::RealTimeDecision::CardAuthentication::DeviceChannel::Browser? + + attr_accessor category: Increase::Models::RealTimeDecision::CardAuthentication::DeviceChannel::category + + attr_accessor merchant_initiated: Increase::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated? + + def initialize: ( + browser: Increase::RealTimeDecision::CardAuthentication::DeviceChannel::Browser?, + category: Increase::Models::RealTimeDecision::CardAuthentication::DeviceChannel::category, + merchant_initiated: Increase::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated? + ) -> void + + def to_hash: -> { + browser: Increase::RealTimeDecision::CardAuthentication::DeviceChannel::Browser?, + category: Increase::Models::RealTimeDecision::CardAuthentication::DeviceChannel::category, + merchant_initiated: Increase::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated? + } + + type browser = + { + accept_header: String?, + ip_address: String?, + javascript_enabled: Increase::Models::RealTimeDecision::CardAuthentication::DeviceChannel::Browser::javascript_enabled?, + language: String?, + user_agent: String? + } + + class Browser < Increase::Internal::Type::BaseModel + attr_accessor accept_header: String? + + attr_accessor ip_address: String? + + attr_accessor javascript_enabled: Increase::Models::RealTimeDecision::CardAuthentication::DeviceChannel::Browser::javascript_enabled? + + attr_accessor language: String? + + attr_accessor user_agent: String? + + def initialize: ( + accept_header: String?, + ip_address: String?, + javascript_enabled: Increase::Models::RealTimeDecision::CardAuthentication::DeviceChannel::Browser::javascript_enabled?, + language: String?, + user_agent: String? + ) -> void + + def to_hash: -> { + accept_header: String?, + ip_address: String?, + javascript_enabled: Increase::Models::RealTimeDecision::CardAuthentication::DeviceChannel::Browser::javascript_enabled?, + language: String?, + user_agent: String? + } + + type javascript_enabled = :enabled | :disabled + + module JavascriptEnabled + extend Increase::Internal::Type::Enum + + # JavaScript is enabled in the cardholder's browser. + ENABLED: :enabled + + # JavaScript is not enabled in the cardholder's browser. + DISABLED: :disabled + + def self?.values: -> ::Array[Increase::Models::RealTimeDecision::CardAuthentication::DeviceChannel::Browser::javascript_enabled] + end + end + + type category = :app | :browser | :three_ds_requestor_initiated + + module Category + extend Increase::Internal::Type::Enum + + # The authentication attempt was made from an app. + APP: :app + + # The authentication attempt was made from a browser. + BROWSER: :browser + + # The authentication attempt was initiated by the 3DS Requestor. + THREE_DS_REQUESTOR_INITIATED: :three_ds_requestor_initiated + + def self?.values: -> ::Array[Increase::Models::RealTimeDecision::CardAuthentication::DeviceChannel::category] + end + + type merchant_initiated = + { + indicator: Increase::Models::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated::indicator + } + + class MerchantInitiated < Increase::Internal::Type::BaseModel + attr_accessor indicator: Increase::Models::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated::indicator + + def initialize: ( + indicator: Increase::Models::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated::indicator + ) -> void + + def to_hash: -> { + indicator: Increase::Models::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated::indicator + } + + type indicator = + :recurring_transaction + | :installment_transaction + | :add_card + | :maintain_card_information + | :account_verification + | :split_delayed_shipment + | :top_up + | :mail_order + | :telephone_order + | :whitelist_status_check + | :other_payment + | :billing_agreement + | :device_binding_status_check + | :card_security_code_status_check + | :delayed_shipment + | :split_payment + | :fido_credential_deletion + | :fido_credential_registration + | :decoupled_authentication_fallback + + module Indicator + extend Increase::Internal::Type::Enum + + # Recurring transaction. + RECURRING_TRANSACTION: :recurring_transaction + + # Installment transaction. + INSTALLMENT_TRANSACTION: :installment_transaction + + # Add card. + ADD_CARD: :add_card + + # Maintain card information. + MAINTAIN_CARD_INFORMATION: :maintain_card_information + + # Account verification. + ACCOUNT_VERIFICATION: :account_verification + + # Split or delayed shipment. + SPLIT_DELAYED_SHIPMENT: :split_delayed_shipment + + # Top up. + TOP_UP: :top_up + + # Mail order. + MAIL_ORDER: :mail_order + + # Telephone order. + TELEPHONE_ORDER: :telephone_order + + # Whitelist status check. + WHITELIST_STATUS_CHECK: :whitelist_status_check + + # Other payment. + OTHER_PAYMENT: :other_payment + + # Billing agreement. + BILLING_AGREEMENT: :billing_agreement + + # Device binding status check. + DEVICE_BINDING_STATUS_CHECK: :device_binding_status_check + + # Card security code status check. + CARD_SECURITY_CODE_STATUS_CHECK: :card_security_code_status_check + + # Delayed shipment. + DELAYED_SHIPMENT: :delayed_shipment + + # Split payment. + SPLIT_PAYMENT: :split_payment + + # FIDO credential deletion. + FIDO_CREDENTIAL_DELETION: :fido_credential_deletion + + # FIDO credential registration. + FIDO_CREDENTIAL_REGISTRATION: :fido_credential_registration + + # Decoupled authentication fallback. + DECOUPLED_AUTHENTICATION_FALLBACK: :decoupled_authentication_fallback + + def self?.values: -> ::Array[Increase::Models::RealTimeDecision::CardAuthentication::DeviceChannel::MerchantInitiated::indicator] + end + end + end + + type requestor_authentication_indicator = + :payment_transaction + | :recurring_transaction + | :installment_transaction + | :add_card + | :maintain_card + | :emv_token_cardholder_verification + | :billing_agreement + + module RequestorAuthenticationIndicator + extend Increase::Internal::Type::Enum + + # The authentication is for a payment transaction. + PAYMENT_TRANSACTION: :payment_transaction + + # The authentication is for a recurring transaction. + RECURRING_TRANSACTION: :recurring_transaction + + # The authentication is for an installment transaction. + INSTALLMENT_TRANSACTION: :installment_transaction + + # The authentication is for adding a card. + ADD_CARD: :add_card + + # The authentication is for maintaining a card. + MAINTAIN_CARD: :maintain_card + + # The authentication is for EMV token cardholder verification. + EMV_TOKEN_CARDHOLDER_VERIFICATION: :emv_token_cardholder_verification + + # The authentication is for a billing agreement. + BILLING_AGREEMENT: :billing_agreement + + def self?.values: -> ::Array[Increase::Models::RealTimeDecision::CardAuthentication::requestor_authentication_indicator] + end + + type requestor_challenge_indicator = + :no_preference + | :no_challenge_requested + | :challenge_requested_3ds_requestor_preference + | :challenge_requested_mandate + | :no_challenge_requested_transactional_risk_analysis_already_performed + | :no_challenge_requested_data_share_only + | :no_challenge_requested_strong_consumer_authentication_already_performed + | :no_challenge_requested_utilize_whitelist_exemption_if_no_challenge_required + | :challenge_requested_whitelist_prompt_requested_if_challenge_required + + module RequestorChallengeIndicator + extend Increase::Internal::Type::Enum + + # No preference. + NO_PREFERENCE: :no_preference + + # No challenge requested. + NO_CHALLENGE_REQUESTED: :no_challenge_requested + + # Challenge requested, 3DS Requestor preference. + CHALLENGE_REQUESTED_3DS_REQUESTOR_PREFERENCE: :challenge_requested_3ds_requestor_preference + + # Challenge requested, mandate. + CHALLENGE_REQUESTED_MANDATE: :challenge_requested_mandate + + # No challenge requested, transactional risk analysis already performed. + NO_CHALLENGE_REQUESTED_TRANSACTIONAL_RISK_ANALYSIS_ALREADY_PERFORMED: :no_challenge_requested_transactional_risk_analysis_already_performed + + # No challenge requested, data share only. + NO_CHALLENGE_REQUESTED_DATA_SHARE_ONLY: :no_challenge_requested_data_share_only + + # No challenge requested, strong consumer authentication already performed. + NO_CHALLENGE_REQUESTED_STRONG_CONSUMER_AUTHENTICATION_ALREADY_PERFORMED: :no_challenge_requested_strong_consumer_authentication_already_performed + + # No challenge requested, utilize whitelist exemption if no challenge required. + NO_CHALLENGE_REQUESTED_UTILIZE_WHITELIST_EXEMPTION_IF_NO_CHALLENGE_REQUIRED: :no_challenge_requested_utilize_whitelist_exemption_if_no_challenge_required + + # Challenge requested, whitelist prompt requested if challenge required. + CHALLENGE_REQUESTED_WHITELIST_PROMPT_REQUESTED_IF_CHALLENGE_REQUIRED: :challenge_requested_whitelist_prompt_requested_if_challenge_required + + def self?.values: -> ::Array[Increase::Models::RealTimeDecision::CardAuthentication::requestor_challenge_indicator] + end + + type transaction_type = + :goods_service_purchase + | :check_acceptance + | :account_funding + | :quasi_cash_transaction + | :prepaid_activation_and_load + + module TransactionType + extend Increase::Internal::Type::Enum + + # Purchase of goods or services. + GOODS_SERVICE_PURCHASE: :goods_service_purchase + + # Check acceptance. + CHECK_ACCEPTANCE: :check_acceptance + + # Account funding. + ACCOUNT_FUNDING: :account_funding + + # Quasi-cash transaction. + QUASI_CASH_TRANSACTION: :quasi_cash_transaction + + # Prepaid activation and load. + PREPAID_ACTIVATION_AND_LOAD: :prepaid_activation_and_load + + def self?.values: -> ::Array[Increase::Models::RealTimeDecision::CardAuthentication::transaction_type] + end end type card_authentication_challenge =