diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 2aca35ae..4208b5cb 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.5.0" + ".": "0.6.0" } \ No newline at end of file diff --git a/.stats.yml b/.stats.yml index 5a93d129..c89f8408 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 177 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-c24eebe942f400bff8922a6fbef1ce551ad14f61eb4da21b50d823a62ca42586.yml -openapi_spec_hash: b79ed927e625dedff69cea29131a34d9 -config_hash: 693dddc4721eef512d75ab6c60897794 +configured_endpoints: 185 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-a45946df228eec554b3cd2491f658bd5a45cb91509da0a9f92d50468ea88072f.yml +openapi_spec_hash: 24c7c13e1e7385cab5442ca66091ffc6 +config_hash: 50031f78031362c2e4900222b9ce7ada diff --git a/CHANGELOG.md b/CHANGELOG.md index 4843f4bb..40944073 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,31 @@ # Changelog +## 0.6.0 (2026-02-27) + +Full Changelog: [v0.5.0...v0.6.0](https://github.com/lithic-com/lithic-ruby/compare/v0.5.0...v0.6.0) + +### Features + +* **api:** Add account holder entity endpoints ([508b031](https://github.com/lithic-com/lithic-ruby/commit/508b0315e2ec79e74014759a97e82d209259e2cf)) +* **api:** Add INTEREST_AND_FEES_PAUSED substatus to financial account ([23c7be9](https://github.com/lithic-com/lithic-ruby/commit/23c7be999b5a04a770dd18d2d34ff3967c68a85a)) +* **api:** Expose MIL interest schedules and loan tape configuration endpoints ([a07d19f](https://github.com/lithic-com/lithic-ruby/commit/a07d19f3933cc1e282073f015bec87421a9a76d6)) + + +### Bug Fixes + +* **api:** Correct token_metadata field name in tokenization.approval_request schema ([a4d5ae7](https://github.com/lithic-com/lithic-ruby/commit/a4d5ae7a5754d8901469be17c57b020c6c246839)) +* properly mock time in ruby ci tests ([ac193de](https://github.com/lithic-com/lithic-ruby/commit/ac193de27a9ce3b9f5bf3162a57a95da2ea88352)) + + +### Chores + +* update mock server docs ([8abd2ee](https://github.com/lithic-com/lithic-ruby/commit/8abd2eee9b45f88f1a5e821200cb657b07c48084)) + + +### Documentation + +* Remove CONDITIONAL_BLOCK from docs ([993ab5c](https://github.com/lithic-com/lithic-ruby/commit/993ab5cda8b310bab4083f59713043549cc154f1)) + ## 0.5.0 (2026-02-13) Full Changelog: [v0.4.0...v0.5.0](https://github.com/lithic-com/lithic-ruby/compare/v0.4.0...v0.5.0) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 601331c5..7855934b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -68,8 +68,8 @@ $ bundle exec rake Most tests require you to [set up a mock server](https://github.com/stoplightio/prism) against the OpenAPI spec to run the tests. -```bash -$ npx prism mock path/to/your/openapi.yml +```sh +$ ./scripts/mock ``` ```bash diff --git a/Gemfile.lock b/Gemfile.lock index 5effaf10..3252a6db 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -18,7 +18,7 @@ GIT PATH remote: . specs: - lithic (0.5.0) + lithic (0.6.0) cgi connection_pool diff --git a/README.md b/README.md index 1923f494..9c3d4109 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ To use this gem, install via Bundler by adding the following to your application ```ruby -gem "lithic", "~> 0.5.0" +gem "lithic", "~> 0.6.0" ``` diff --git a/lib/lithic.rb b/lib/lithic.rb index 992b361c..995b537c 100644 --- a/lib/lithic.rb +++ b/lib/lithic.rb @@ -65,6 +65,7 @@ require_relative "lithic/models/external_bank_account" require_relative "lithic/models/external_payment" require_relative "lithic/models/financial_account" +require_relative "lithic/models/financial_accounts/interest_tier_schedule" require_relative "lithic/models/funding_event" require_relative "lithic/models/internal_transaction" require_relative "lithic/models/financial_accounts/loan_tape" @@ -91,6 +92,10 @@ require_relative "lithic/models/account_holder_list_params" require_relative "lithic/models/account_holder_retrieve_document_params" require_relative "lithic/models/account_holder_retrieve_params" +require_relative "lithic/models/account_holders/account_holder_entity" +require_relative "lithic/models/account_holders/entity_create_params" +require_relative "lithic/models/account_holders/entity_create_response" +require_relative "lithic/models/account_holders/entity_delete_params" require_relative "lithic/models/account_holder_simulate_enrollment_document_review_params" require_relative "lithic/models/account_holder_simulate_enrollment_review_params" require_relative "lithic/models/account_holder_simulate_enrollment_review_response" @@ -209,7 +214,6 @@ require_relative "lithic/models/digital_wallet_tokenization_two_factor_authentication_code_sent_webhook_event" require_relative "lithic/models/digital_wallet_tokenization_two_factor_authentication_code_webhook_event" require_relative "lithic/models/digital_wallet_tokenization_updated_webhook_event" -require_relative "lithic/models/digital_wallet_token_metadata" require_relative "lithic/models/dispute_create_params" require_relative "lithic/models/dispute_delete_evidence_params" require_relative "lithic/models/dispute_delete_params" @@ -280,13 +284,22 @@ require_relative "lithic/models/financial_account_retrieve_params" require_relative "lithic/models/financial_accounts/balance_list_params" require_relative "lithic/models/financial_accounts/category_balances" +require_relative "lithic/models/financial_accounts/category_tier" require_relative "lithic/models/financial_accounts/credit_configuration_retrieve_params" require_relative "lithic/models/financial_accounts/credit_configuration_update_params" require_relative "lithic/models/financial_accounts/financial_account_credit_config" +require_relative "lithic/models/financial_accounts/loan_tape_configuration" require_relative "lithic/models/financial_accounts/statements" require_relative "lithic/models/financial_accounts/financial_transaction_list_params" require_relative "lithic/models/financial_accounts/financial_transaction_retrieve_params" +require_relative "lithic/models/financial_accounts/interest_tier_schedule_create_params" +require_relative "lithic/models/financial_accounts/interest_tier_schedule_delete_params" +require_relative "lithic/models/financial_accounts/interest_tier_schedule_list_params" +require_relative "lithic/models/financial_accounts/interest_tier_schedule_retrieve_params" +require_relative "lithic/models/financial_accounts/interest_tier_schedule_update_params" +require_relative "lithic/models/financial_accounts/loan_tape_configuration_retrieve_params" require_relative "lithic/models/financial_accounts/loan_tape_list_params" +require_relative "lithic/models/financial_accounts/loan_tape_rebuild_configuration" require_relative "lithic/models/financial_accounts/loan_tape_retrieve_params" require_relative "lithic/models/financial_accounts/statement_list_params" require_relative "lithic/models/financial_accounts/statement_retrieve_params" @@ -402,6 +415,7 @@ require_relative "lithic/models/tokenization_unpause_params" require_relative "lithic/models/tokenization_update_digital_card_art_params" require_relative "lithic/models/tokenization_updated_webhook_event" +require_relative "lithic/models/token_metadata" require_relative "lithic/models/transaction_expire_authorization_params" require_relative "lithic/models/transaction_list_params" require_relative "lithic/models/transaction_retrieve_params" @@ -433,6 +447,7 @@ require_relative "lithic/models" require_relative "lithic/resources/account_activity" require_relative "lithic/resources/account_holders" +require_relative "lithic/resources/account_holders/entities" require_relative "lithic/resources/accounts" require_relative "lithic/resources/auth_rules" require_relative "lithic/resources/auth_rules/v2" @@ -461,6 +476,8 @@ require_relative "lithic/resources/financial_accounts/balances" require_relative "lithic/resources/financial_accounts/credit_configuration" require_relative "lithic/resources/financial_accounts/financial_transactions" +require_relative "lithic/resources/financial_accounts/interest_tier_schedule" +require_relative "lithic/resources/financial_accounts/loan_tape_configuration" require_relative "lithic/resources/financial_accounts/loan_tapes" require_relative "lithic/resources/financial_accounts/statements" require_relative "lithic/resources/financial_accounts/statements/line_items" diff --git a/lib/lithic/models.rb b/lib/lithic/models.rb index f74a466a..3489ad54 100644 --- a/lib/lithic/models.rb +++ b/lib/lithic/models.rb @@ -63,6 +63,8 @@ module Lithic AccountHolderRetrieveParams = Lithic::Models::AccountHolderRetrieveParams + AccountHolders = Lithic::Models::AccountHolders + AccountHolderSimulateEnrollmentDocumentReviewParams = Lithic::Models::AccountHolderSimulateEnrollmentDocumentReviewParams @@ -227,8 +229,6 @@ module Lithic DigitalWalletTokenizationUpdatedWebhookEvent = Lithic::Models::DigitalWalletTokenizationUpdatedWebhookEvent - DigitalWalletTokenMetadata = Lithic::Models::DigitalWalletTokenMetadata - Dispute = Lithic::Models::Dispute DisputeCreateParams = Lithic::Models::DisputeCreateParams @@ -536,6 +536,8 @@ module Lithic TokenizationUpdatedWebhookEvent = Lithic::Models::TokenizationUpdatedWebhookEvent + TokenMetadata = Lithic::Models::TokenMetadata + Transaction = Lithic::Models::Transaction TransactionExpireAuthorizationParams = Lithic::Models::TransactionExpireAuthorizationParams diff --git a/lib/lithic/models/account_holders/account_holder_entity.rb b/lib/lithic/models/account_holders/account_holder_entity.rb new file mode 100644 index 00000000..5b55940d --- /dev/null +++ b/lib/lithic/models/account_holders/account_holder_entity.rb @@ -0,0 +1,183 @@ +# frozen_string_literal: true + +module Lithic + module Models + module AccountHolders + # @see Lithic::Resources::AccountHolders::Entities#delete + class AccountHolderEntity < Lithic::Internal::Type::BaseModel + # @!attribute token + # Globally unique identifier for the entity + # + # @return [String] + required :token, String + + # @!attribute account_holder_token + # Globally unique identifier for the account holder + # + # @return [String] + required :account_holder_token, String + + # @!attribute address + # Individual's current address + # + # @return [Lithic::Models::AccountHolders::AccountHolderEntity::Address] + required :address, -> { Lithic::AccountHolders::AccountHolderEntity::Address } + + # @!attribute dob + # Individual's date of birth, as an RFC 3339 date + # + # @return [String, nil] + required :dob, String, nil?: true + + # @!attribute email + # Individual's email address + # + # @return [String, nil] + required :email, String, nil?: true + + # @!attribute first_name + # Individual's first name, as it appears on government-issued identity documents + # + # @return [String, nil] + required :first_name, String, nil?: true + + # @!attribute last_name + # Individual's last name, as it appears on government-issued identity documents + # + # @return [String, nil] + required :last_name, String, nil?: true + + # @!attribute phone_number + # Individual's phone number, entered in E.164 format + # + # @return [String, nil] + required :phone_number, String, nil?: true + + # @!attribute status + # The status of the entity + # + # @return [Symbol, Lithic::Models::AccountHolders::AccountHolderEntity::Status] + required :status, enum: -> { Lithic::AccountHolders::AccountHolderEntity::Status } + + # @!attribute type + # The type of entity + # + # @return [Symbol, Lithic::Models::AccountHolders::AccountHolderEntity::Type] + required :type, enum: -> { Lithic::AccountHolders::AccountHolderEntity::Type } + + # @!method initialize(token:, account_holder_token:, address:, dob:, email:, first_name:, last_name:, phone_number:, status:, type:) + # Information about an entity associated with an account holder + # + # @param token [String] Globally unique identifier for the entity + # + # @param account_holder_token [String] Globally unique identifier for the account holder + # + # @param address [Lithic::Models::AccountHolders::AccountHolderEntity::Address] Individual's current address + # + # @param dob [String, nil] Individual's date of birth, as an RFC 3339 date + # + # @param email [String, nil] Individual's email address + # + # @param first_name [String, nil] Individual's first name, as it appears on government-issued identity documents + # + # @param last_name [String, nil] Individual's last name, as it appears on government-issued identity documents + # + # @param phone_number [String, nil] Individual's phone number, entered in E.164 format + # + # @param status [Symbol, Lithic::Models::AccountHolders::AccountHolderEntity::Status] The status of the entity + # + # @param type [Symbol, Lithic::Models::AccountHolders::AccountHolderEntity::Type] The type of entity + + # @see Lithic::Models::AccountHolders::AccountHolderEntity#address + class Address < Lithic::Internal::Type::BaseModel + # @!attribute address1 + # Valid deliverable address (no PO boxes). + # + # @return [String] + required :address1, String + + # @!attribute city + # Name of city. + # + # @return [String] + required :city, String + + # @!attribute country + # Valid country code. Only USA is currently supported, entered in uppercase ISO + # 3166-1 alpha-3 three-character format. + # + # @return [String] + required :country, String + + # @!attribute postal_code + # Valid postal code. Only USA ZIP codes are currently supported, entered as a + # five-digit ZIP or nine-digit ZIP+4. + # + # @return [String] + required :postal_code, String + + # @!attribute state + # Valid state code. Only USA state codes are currently supported, entered in + # uppercase ISO 3166-2 two-character format. + # + # @return [String] + required :state, String + + # @!attribute address2 + # Unit or apartment number (if applicable). + # + # @return [String, nil] + optional :address2, String + + # @!method initialize(address1:, city:, country:, postal_code:, state:, address2: nil) + # Some parameter documentations has been truncated, see + # {Lithic::Models::AccountHolders::AccountHolderEntity::Address} for more details. + # + # Individual's current address + # + # @param address1 [String] Valid deliverable address (no PO boxes). + # + # @param city [String] Name of city. + # + # @param country [String] Valid country code. Only USA is currently supported, entered in uppercase ISO 31 + # + # @param postal_code [String] Valid postal code. Only USA ZIP codes are currently supported, entered as a five + # + # @param state [String] Valid state code. Only USA state codes are currently supported, entered in upper + # + # @param address2 [String] Unit or apartment number (if applicable). + end + + # The status of the entity + # + # @see Lithic::Models::AccountHolders::AccountHolderEntity#status + module Status + extend Lithic::Internal::Type::Enum + + ACCEPTED = :ACCEPTED + INACTIVE = :INACTIVE + PENDING_REVIEW = :PENDING_REVIEW + REJECTED = :REJECTED + + # @!method self.values + # @return [Array] + end + + # The type of entity + # + # @see Lithic::Models::AccountHolders::AccountHolderEntity#type + module Type + extend Lithic::Internal::Type::Enum + + BENEFICIAL_OWNER_INDIVIDUAL = :BENEFICIAL_OWNER_INDIVIDUAL + CONTROL_PERSON = :CONTROL_PERSON + + # @!method self.values + # @return [Array] + end + end + end + + AccountHolderEntity = AccountHolders::AccountHolderEntity + end +end diff --git a/lib/lithic/models/account_holders/entity_create_params.rb b/lib/lithic/models/account_holders/entity_create_params.rb new file mode 100644 index 00000000..3ce5d8ff --- /dev/null +++ b/lib/lithic/models/account_holders/entity_create_params.rb @@ -0,0 +1,159 @@ +# frozen_string_literal: true + +module Lithic + module Models + module AccountHolders + # @see Lithic::Resources::AccountHolders::Entities#create + class EntityCreateParams < Lithic::Internal::Type::BaseModel + extend Lithic::Internal::Type::RequestParameters::Converter + include Lithic::Internal::Type::RequestParameters + + # @!attribute address + # Individual's current address - PO boxes, UPS drops, and FedEx drops are not + # acceptable; APO/FPO are acceptable. Only USA addresses are currently supported. + # + # @return [Lithic::Models::AccountHolders::EntityCreateParams::Address] + required :address, -> { Lithic::AccountHolders::EntityCreateParams::Address } + + # @!attribute dob + # Individual's date of birth, as an RFC 3339 date. + # + # @return [String] + required :dob, String + + # @!attribute email + # Individual's email address. If utilizing Lithic for chargeback processing, this + # customer email address may be used to communicate dispute status and resolution. + # + # @return [String] + required :email, String + + # @!attribute first_name + # Individual's first name, as it appears on government-issued identity documents. + # + # @return [String] + required :first_name, String + + # @!attribute government_id + # Government-issued identification number (required for identity verification and + # compliance with banking regulations). Social Security Numbers (SSN) and + # Individual Taxpayer Identification Numbers (ITIN) are currently supported, + # entered as full nine-digits, with or without hyphens + # + # @return [String] + required :government_id, String + + # @!attribute last_name + # Individual's last name, as it appears on government-issued identity documents. + # + # @return [String] + required :last_name, String + + # @!attribute phone_number + # Individual's phone number, entered in E.164 format. + # + # @return [String] + required :phone_number, String + + # @!attribute type + # The type of entity to create on the account holder + # + # @return [Symbol, Lithic::Models::AccountHolders::EntityCreateParams::Type] + required :type, enum: -> { Lithic::AccountHolders::EntityCreateParams::Type } + + # @!method initialize(address:, dob:, email:, first_name:, government_id:, last_name:, phone_number:, type:, request_options: {}) + # Some parameter documentations has been truncated, see + # {Lithic::Models::AccountHolders::EntityCreateParams} for more details. + # + # @param address [Lithic::Models::AccountHolders::EntityCreateParams::Address] Individual's current address - PO boxes, UPS drops, and FedEx drops are not acce + # + # @param dob [String] Individual's date of birth, as an RFC 3339 date. + # + # @param email [String] Individual's email address. If utilizing Lithic for chargeback processing, this + # + # @param first_name [String] Individual's first name, as it appears on government-issued identity documents. + # + # @param government_id [String] Government-issued identification number (required for identity verification and + # + # @param last_name [String] Individual's last name, as it appears on government-issued identity documents. + # + # @param phone_number [String] Individual's phone number, entered in E.164 format. + # + # @param type [Symbol, Lithic::Models::AccountHolders::EntityCreateParams::Type] The type of entity to create on the account holder + # + # @param request_options [Lithic::RequestOptions, Hash{Symbol=>Object}] + + class Address < Lithic::Internal::Type::BaseModel + # @!attribute address1 + # Valid deliverable address (no PO boxes). + # + # @return [String] + required :address1, String + + # @!attribute city + # Name of city. + # + # @return [String] + required :city, String + + # @!attribute country + # Valid country code. Only USA is currently supported, entered in uppercase ISO + # 3166-1 alpha-3 three-character format. + # + # @return [String] + required :country, String + + # @!attribute postal_code + # Valid postal code. Only USA ZIP codes are currently supported, entered as a + # five-digit ZIP or nine-digit ZIP+4. + # + # @return [String] + required :postal_code, String + + # @!attribute state + # Valid state code. Only USA state codes are currently supported, entered in + # uppercase ISO 3166-2 two-character format. + # + # @return [String] + required :state, String + + # @!attribute address2 + # Unit or apartment number (if applicable). + # + # @return [String, nil] + optional :address2, String + + # @!method initialize(address1:, city:, country:, postal_code:, state:, address2: nil) + # Some parameter documentations has been truncated, see + # {Lithic::Models::AccountHolders::EntityCreateParams::Address} for more details. + # + # Individual's current address - PO boxes, UPS drops, and FedEx drops are not + # acceptable; APO/FPO are acceptable. Only USA addresses are currently supported. + # + # @param address1 [String] Valid deliverable address (no PO boxes). + # + # @param city [String] Name of city. + # + # @param country [String] Valid country code. Only USA is currently supported, entered in uppercase ISO 31 + # + # @param postal_code [String] Valid postal code. Only USA ZIP codes are currently supported, entered as a five + # + # @param state [String] Valid state code. Only USA state codes are currently supported, entered in upper + # + # @param address2 [String] Unit or apartment number (if applicable). + end + + # The type of entity to create on the account holder + module Type + extend Lithic::Internal::Type::Enum + + BENEFICIAL_OWNER_INDIVIDUAL = :BENEFICIAL_OWNER_INDIVIDUAL + CONTROL_PERSON = :CONTROL_PERSON + + # @!method self.values + # @return [Array] + end + end + end + end +end diff --git a/lib/lithic/models/account_holders/entity_create_response.rb b/lib/lithic/models/account_holders/entity_create_response.rb new file mode 100644 index 00000000..11dcff5b --- /dev/null +++ b/lib/lithic/models/account_holders/entity_create_response.rb @@ -0,0 +1,113 @@ +# frozen_string_literal: true + +module Lithic + module Models + module AccountHolders + # @see Lithic::Resources::AccountHolders::Entities#create + class EntityCreateResponse < Lithic::Internal::Type::BaseModel + # @!attribute token + # Globally unique identifier for the entity + # + # @return [String] + required :token, String + + # @!attribute account_holder_token + # Globally unique identifier for the account holder + # + # @return [String] + required :account_holder_token, String + + # @!attribute created + # Timestamp of when the entity was created + # + # @return [Time] + required :created, Time + + # @!attribute required_documents + # A list of documents required for the entity to be approved + # + # @return [Array] + required :required_documents, -> { Lithic::Internal::Type::ArrayOf[Lithic::RequiredDocument] } + + # @!attribute status + # Entity verification status + # + # @return [Symbol, Lithic::Models::AccountHolders::EntityCreateResponse::Status] + required :status, enum: -> { Lithic::Models::AccountHolders::EntityCreateResponse::Status } + + # @!attribute status_reasons + # Reason for the evaluation status + # + # @return [Array] + required :status_reasons, + -> { Lithic::Internal::Type::ArrayOf[enum: Lithic::Models::AccountHolders::EntityCreateResponse::StatusReason] } + + # @!method initialize(token:, account_holder_token:, created:, required_documents:, status:, status_reasons:) + # Response body for creating a new beneficial owner or replacing the control + # person entity on an existing KYB account holder. + # + # @param token [String] Globally unique identifier for the entity + # + # @param account_holder_token [String] Globally unique identifier for the account holder + # + # @param created [Time] Timestamp of when the entity was created + # + # @param required_documents [Array] A list of documents required for the entity to be approved + # + # @param status [Symbol, Lithic::Models::AccountHolders::EntityCreateResponse::Status] Entity verification status + # + # @param status_reasons [Array] Reason for the evaluation status + + # Entity verification status + # + # @see Lithic::Models::AccountHolders::EntityCreateResponse#status + module Status + extend Lithic::Internal::Type::Enum + + ACCEPTED = :ACCEPTED + INACTIVE = :INACTIVE + PENDING_REVIEW = :PENDING_REVIEW + REJECTED = :REJECTED + + # @!method self.values + # @return [Array] + end + + # Status Reasons for KYC/KYB enrollment states + module StatusReason + extend Lithic::Internal::Type::Enum + + ADDRESS_VERIFICATION_FAILURE = :ADDRESS_VERIFICATION_FAILURE + AGE_THRESHOLD_FAILURE = :AGE_THRESHOLD_FAILURE + COMPLETE_VERIFICATION_FAILURE = :COMPLETE_VERIFICATION_FAILURE + DOB_VERIFICATION_FAILURE = :DOB_VERIFICATION_FAILURE + ID_VERIFICATION_FAILURE = :ID_VERIFICATION_FAILURE + MAX_DOCUMENT_ATTEMPTS = :MAX_DOCUMENT_ATTEMPTS + MAX_RESUBMISSION_ATTEMPTS = :MAX_RESUBMISSION_ATTEMPTS + NAME_VERIFICATION_FAILURE = :NAME_VERIFICATION_FAILURE + OTHER_VERIFICATION_FAILURE = :OTHER_VERIFICATION_FAILURE + RISK_THRESHOLD_FAILURE = :RISK_THRESHOLD_FAILURE + WATCHLIST_ALERT_FAILURE = :WATCHLIST_ALERT_FAILURE + PRIMARY_BUSINESS_ENTITY_ID_VERIFICATION_FAILURE = :PRIMARY_BUSINESS_ENTITY_ID_VERIFICATION_FAILURE + PRIMARY_BUSINESS_ENTITY_ADDRESS_VERIFICATION_FAILURE = + :PRIMARY_BUSINESS_ENTITY_ADDRESS_VERIFICATION_FAILURE + PRIMARY_BUSINESS_ENTITY_NAME_VERIFICATION_FAILURE = :PRIMARY_BUSINESS_ENTITY_NAME_VERIFICATION_FAILURE + PRIMARY_BUSINESS_ENTITY_BUSINESS_OFFICERS_NOT_MATCHED = + :PRIMARY_BUSINESS_ENTITY_BUSINESS_OFFICERS_NOT_MATCHED + PRIMARY_BUSINESS_ENTITY_SOS_FILING_INACTIVE = :PRIMARY_BUSINESS_ENTITY_SOS_FILING_INACTIVE + PRIMARY_BUSINESS_ENTITY_SOS_NOT_MATCHED = :PRIMARY_BUSINESS_ENTITY_SOS_NOT_MATCHED + PRIMARY_BUSINESS_ENTITY_CMRA_FAILURE = :PRIMARY_BUSINESS_ENTITY_CMRA_FAILURE + PRIMARY_BUSINESS_ENTITY_WATCHLIST_FAILURE = :PRIMARY_BUSINESS_ENTITY_WATCHLIST_FAILURE + PRIMARY_BUSINESS_ENTITY_REGISTERED_AGENT_FAILURE = :PRIMARY_BUSINESS_ENTITY_REGISTERED_AGENT_FAILURE + CONTROL_PERSON_BLOCKLIST_ALERT_FAILURE = :CONTROL_PERSON_BLOCKLIST_ALERT_FAILURE + CONTROL_PERSON_ID_VERIFICATION_FAILURE = :CONTROL_PERSON_ID_VERIFICATION_FAILURE + CONTROL_PERSON_DOB_VERIFICATION_FAILURE = :CONTROL_PERSON_DOB_VERIFICATION_FAILURE + CONTROL_PERSON_NAME_VERIFICATION_FAILURE = :CONTROL_PERSON_NAME_VERIFICATION_FAILURE + + # @!method self.values + # @return [Array] + end + end + end + end +end diff --git a/lib/lithic/models/account_holders/entity_delete_params.rb b/lib/lithic/models/account_holders/entity_delete_params.rb new file mode 100644 index 00000000..906d92a6 --- /dev/null +++ b/lib/lithic/models/account_holders/entity_delete_params.rb @@ -0,0 +1,22 @@ +# frozen_string_literal: true + +module Lithic + module Models + module AccountHolders + # @see Lithic::Resources::AccountHolders::Entities#delete + class EntityDeleteParams < Lithic::Internal::Type::BaseModel + extend Lithic::Internal::Type::RequestParameters::Converter + include Lithic::Internal::Type::RequestParameters + + # @!attribute account_holder_token + # + # @return [String] + required :account_holder_token, String + + # @!method initialize(account_holder_token:, request_options: {}) + # @param account_holder_token [String] + # @param request_options [Lithic::RequestOptions, Hash{Symbol=>Object}] + end + end + end +end diff --git a/lib/lithic/models/auth_rules/auth_rule.rb b/lib/lithic/models/auth_rules/auth_rule.rb index 0b496259..845b612d 100644 --- a/lib/lithic/models/auth_rules/auth_rule.rb +++ b/lib/lithic/models/auth_rules/auth_rule.rb @@ -76,7 +76,8 @@ class AuthRule < Lithic::Internal::Type::BaseModel # several event streams, the effective one is defined by the separate # `event_stream` field. # - # - `CONDITIONAL_BLOCK`: AUTHORIZATION event stream. + # - `CONDITIONAL_BLOCK`: Deprecated. Use `CONDITIONAL_ACTION` instead. + # AUTHORIZATION event stream. # - `VELOCITY_LIMIT`: AUTHORIZATION event stream. # - `MERCHANT_LOCK`: AUTHORIZATION event stream. # - `CONDITIONAL_ACTION`: AUTHORIZATION, THREE_DS_AUTHENTICATION, TOKENIZATION, @@ -152,6 +153,7 @@ class CurrentVersion < Lithic::Internal::Type::BaseModel module Parameters extend Lithic::Internal::Type::Union + # Deprecated: Use CONDITIONAL_ACTION instead. variant -> { Lithic::AuthRules::ConditionalBlockParameters } variant -> { Lithic::AuthRules::VelocityLimitParams } @@ -202,6 +204,7 @@ class DraftVersion < Lithic::Internal::Type::BaseModel module Parameters extend Lithic::Internal::Type::Union + # Deprecated: Use CONDITIONAL_ACTION instead. variant -> { Lithic::AuthRules::ConditionalBlockParameters } variant -> { Lithic::AuthRules::VelocityLimitParams } @@ -239,7 +242,8 @@ module State # several event streams, the effective one is defined by the separate # `event_stream` field. # - # - `CONDITIONAL_BLOCK`: AUTHORIZATION event stream. + # - `CONDITIONAL_BLOCK`: Deprecated. Use `CONDITIONAL_ACTION` instead. + # AUTHORIZATION event stream. # - `VELOCITY_LIMIT`: AUTHORIZATION event stream. # - `MERCHANT_LOCK`: AUTHORIZATION event stream. # - `CONDITIONAL_ACTION`: AUTHORIZATION, THREE_DS_AUTHENTICATION, TOKENIZATION, diff --git a/lib/lithic/models/auth_rules/conditional_block_parameters.rb b/lib/lithic/models/auth_rules/conditional_block_parameters.rb index fded0e87..2126c459 100644 --- a/lib/lithic/models/auth_rules/conditional_block_parameters.rb +++ b/lib/lithic/models/auth_rules/conditional_block_parameters.rb @@ -3,6 +3,7 @@ module Lithic module Models module AuthRules + # @deprecated class ConditionalBlockParameters < Lithic::Internal::Type::BaseModel # @!attribute conditions # @@ -10,6 +11,8 @@ class ConditionalBlockParameters < Lithic::Internal::Type::BaseModel required :conditions, -> { Lithic::Internal::Type::ArrayOf[Lithic::AuthRules::AuthRuleCondition] } # @!method initialize(conditions:) + # Deprecated: Use CONDITIONAL_ACTION instead. + # # @param conditions [Array] end end diff --git a/lib/lithic/models/auth_rules/v2_create_params.rb b/lib/lithic/models/auth_rules/v2_create_params.rb index b402608d..20f6fd75 100644 --- a/lib/lithic/models/auth_rules/v2_create_params.rb +++ b/lib/lithic/models/auth_rules/v2_create_params.rb @@ -20,7 +20,8 @@ class V2CreateParams < Lithic::Internal::Type::BaseModel # several event streams, the effective one is defined by the separate # `event_stream` field. # - # - `CONDITIONAL_BLOCK`: AUTHORIZATION event stream. + # - `CONDITIONAL_BLOCK`: Deprecated. Use `CONDITIONAL_ACTION` instead. + # AUTHORIZATION event stream. # - `VELOCITY_LIMIT`: AUTHORIZATION event stream. # - `MERCHANT_LOCK`: AUTHORIZATION event stream. # - `CONDITIONAL_ACTION`: AUTHORIZATION, THREE_DS_AUTHENTICATION, TOKENIZATION, @@ -99,6 +100,7 @@ class V2CreateParams < Lithic::Internal::Type::BaseModel module Parameters extend Lithic::Internal::Type::Union + # Deprecated: Use CONDITIONAL_ACTION instead. variant -> { Lithic::AuthRules::ConditionalBlockParameters } variant -> { Lithic::AuthRules::VelocityLimitParams } @@ -122,7 +124,8 @@ module Parameters # several event streams, the effective one is defined by the separate # `event_stream` field. # - # - `CONDITIONAL_BLOCK`: AUTHORIZATION event stream. + # - `CONDITIONAL_BLOCK`: Deprecated. Use `CONDITIONAL_ACTION` instead. + # AUTHORIZATION event stream. # - `VELOCITY_LIMIT`: AUTHORIZATION event stream. # - `MERCHANT_LOCK`: AUTHORIZATION event stream. # - `CONDITIONAL_ACTION`: AUTHORIZATION, THREE_DS_AUTHENTICATION, TOKENIZATION, diff --git a/lib/lithic/models/auth_rules/v2_draft_params.rb b/lib/lithic/models/auth_rules/v2_draft_params.rb index 10e2d072..f29e2f46 100644 --- a/lib/lithic/models/auth_rules/v2_draft_params.rb +++ b/lib/lithic/models/auth_rules/v2_draft_params.rb @@ -23,6 +23,7 @@ class V2DraftParams < Lithic::Internal::Type::BaseModel module Parameters extend Lithic::Internal::Type::Union + # Deprecated: Use CONDITIONAL_ACTION instead. variant -> { Lithic::AuthRules::ConditionalBlockParameters } variant -> { Lithic::AuthRules::VelocityLimitParams } diff --git a/lib/lithic/models/digital_wallet_tokenization_approval_request_webhook_event.rb b/lib/lithic/models/digital_wallet_tokenization_approval_request_webhook_event.rb index 18426c38..5312f011 100644 --- a/lib/lithic/models/digital_wallet_tokenization_approval_request_webhook_event.rb +++ b/lib/lithic/models/digital_wallet_tokenization_approval_request_webhook_event.rb @@ -31,6 +31,12 @@ class DigitalWalletTokenizationApprovalRequestWebhookEvent < Lithic::Internal::T }, nil?: true + # @!attribute digital_wallet_token_metadata + # Contains the metadata for the digital wallet being tokenized. + # + # @return [Lithic::Models::TokenMetadata] + required :digital_wallet_token_metadata, -> { Lithic::TokenMetadata } + # @!attribute event_type # The name of this event # @@ -68,12 +74,6 @@ class DigitalWalletTokenizationApprovalRequestWebhookEvent < Lithic::Internal::T # @return [Lithic::Models::Device, nil] optional :device, -> { Lithic::Device } - # @!attribute digital_wallet_token_metadata - # Contains the metadata for the digital wallet being tokenized. - # - # @return [Lithic::Models::DigitalWalletTokenMetadata, nil] - optional :digital_wallet_token_metadata, -> { Lithic::DigitalWalletTokenMetadata } - # @!attribute rule_results # Results from rules that were evaluated for this tokenization # @@ -101,7 +101,7 @@ class DigitalWalletTokenizationApprovalRequestWebhookEvent < Lithic::Internal::T optional :tokenization_tfa_reasons, -> { Lithic::Internal::Type::ArrayOf[enum: Lithic::TokenizationTfaReason] } - # @!method initialize(account_token:, card_token:, created:, customer_tokenization_decision:, event_type:, issuer_decision:, tokenization_channel:, tokenization_token:, wallet_decisioning_info:, device: nil, digital_wallet_token_metadata: nil, rule_results: nil, tokenization_decline_reasons: nil, tokenization_source: nil, tokenization_tfa_reasons: nil) + # @!method initialize(account_token:, card_token:, created:, customer_tokenization_decision:, digital_wallet_token_metadata:, event_type:, issuer_decision:, tokenization_channel:, tokenization_token:, wallet_decisioning_info:, device: nil, rule_results: nil, tokenization_decline_reasons: nil, tokenization_source: nil, tokenization_tfa_reasons: nil) # Some parameter documentations has been truncated, see # {Lithic::Models::DigitalWalletTokenizationApprovalRequestWebhookEvent} for more # details. @@ -114,6 +114,8 @@ class DigitalWalletTokenizationApprovalRequestWebhookEvent < Lithic::Internal::T # # @param customer_tokenization_decision [Lithic::Models::DigitalWalletTokenizationApprovalRequestWebhookEvent::CustomerTokenizationDecision, nil] Contains the metadata for the customer tokenization decision. # + # @param digital_wallet_token_metadata [Lithic::Models::TokenMetadata] Contains the metadata for the digital wallet being tokenized. + # # @param event_type [Symbol, Lithic::Models::DigitalWalletTokenizationApprovalRequestWebhookEvent::EventType] The name of this event # # @param issuer_decision [Symbol, Lithic::Models::DigitalWalletTokenizationApprovalRequestWebhookEvent::IssuerDecision] Whether Lithic decisioned on the token, and if so, what the decision was. APPROV @@ -126,8 +128,6 @@ class DigitalWalletTokenizationApprovalRequestWebhookEvent < Lithic::Internal::T # # @param device [Lithic::Models::Device] # - # @param digital_wallet_token_metadata [Lithic::Models::DigitalWalletTokenMetadata] Contains the metadata for the digital wallet being tokenized. - # # @param rule_results [Array] Results from rules that were evaluated for this tokenization # # @param tokenization_decline_reasons [Array] List of reasons why the tokenization was declined diff --git a/lib/lithic/models/financial_account.rb b/lib/lithic/models/financial_account.rb index ebe8a552..4a80cec9 100644 --- a/lib/lithic/models/financial_account.rb +++ b/lib/lithic/models/financial_account.rb @@ -182,6 +182,7 @@ module Substatus END_USER_REQUEST = :END_USER_REQUEST BANK_REQUEST = :BANK_REQUEST DELINQUENT = :DELINQUENT + INTEREST_AND_FEES_PAUSED = :INTEREST_AND_FEES_PAUSED # @!method self.values # @return [Array] diff --git a/lib/lithic/models/financial_account_update_status_params.rb b/lib/lithic/models/financial_account_update_status_params.rb index 4ec1c0f2..382850ca 100644 --- a/lib/lithic/models/financial_account_update_status_params.rb +++ b/lib/lithic/models/financial_account_update_status_params.rb @@ -55,6 +55,7 @@ module Substatus END_USER_REQUEST = :END_USER_REQUEST BANK_REQUEST = :BANK_REQUEST CHARGED_OFF_DELINQUENT = :CHARGED_OFF_DELINQUENT + INTEREST_AND_FEES_PAUSED = :INTEREST_AND_FEES_PAUSED # @!method self.values # @return [Array] diff --git a/lib/lithic/models/financial_accounts/category_tier.rb b/lib/lithic/models/financial_accounts/category_tier.rb new file mode 100644 index 00000000..041ae461 --- /dev/null +++ b/lib/lithic/models/financial_accounts/category_tier.rb @@ -0,0 +1,28 @@ +# frozen_string_literal: true + +module Lithic + module Models + module FinancialAccounts + class CategoryTier < Lithic::Internal::Type::BaseModel + # @!attribute cap_rate + # Maximum interest rate for this category, e.g. '0.0525' for 5.25% + # + # @return [String, nil] + optional :cap_rate, String + + # @!attribute rate + # Interest rate for this category, e.g. '0.0525' for 5.25% + # + # @return [String, nil] + optional :rate, String + + # @!method initialize(cap_rate: nil, rate: nil) + # Rate and rate cap for interest on a category + # + # @param cap_rate [String] Maximum interest rate for this category, e.g. '0.0525' for 5.25% + # + # @param rate [String] Interest rate for this category, e.g. '0.0525' for 5.25% + end + end + end +end diff --git a/lib/lithic/models/financial_accounts/interest_tier_schedule.rb b/lib/lithic/models/financial_accounts/interest_tier_schedule.rb new file mode 100644 index 00000000..69afa8cd --- /dev/null +++ b/lib/lithic/models/financial_accounts/interest_tier_schedule.rb @@ -0,0 +1,50 @@ +# frozen_string_literal: true + +module Lithic + module Models + module FinancialAccounts + # @see Lithic::Resources::FinancialAccounts::InterestTierSchedule#create + class FinancialAccountsInterestTierSchedule < Lithic::Internal::Type::BaseModel + # @!attribute credit_product_token + # Globally unique identifier for a credit product + # + # @return [String] + required :credit_product_token, String + + # @!attribute effective_date + # Date the tier should be effective in YYYY-MM-DD format + # + # @return [Date] + required :effective_date, Date + + # @!attribute tier_name + # Name of a tier contained in the credit product. Mutually exclusive with + # tier_rates + # + # @return [String, nil] + optional :tier_name, String + + # @!attribute tier_rates + # Custom rates per category. Mutually exclusive with tier_name + # + # @return [Object, nil] + optional :tier_rates, Lithic::Internal::Type::Unknown + + # @!method initialize(credit_product_token:, effective_date:, tier_name: nil, tier_rates: nil) + # Some parameter documentations has been truncated, see + # {Lithic::Models::FinancialAccounts::FinancialAccountsInterestTierSchedule} for + # more details. + # + # Entry in the Tier Schedule of an account + # + # @param credit_product_token [String] Globally unique identifier for a credit product + # + # @param effective_date [Date] Date the tier should be effective in YYYY-MM-DD format + # + # @param tier_name [String] Name of a tier contained in the credit product. Mutually exclusive with tier_rat + # + # @param tier_rates [Object] Custom rates per category. Mutually exclusive with tier_name + end + end + end +end diff --git a/lib/lithic/models/financial_accounts/interest_tier_schedule_create_params.rb b/lib/lithic/models/financial_accounts/interest_tier_schedule_create_params.rb new file mode 100644 index 00000000..84c2b032 --- /dev/null +++ b/lib/lithic/models/financial_accounts/interest_tier_schedule_create_params.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +module Lithic + module Models + module FinancialAccounts + # @see Lithic::Resources::FinancialAccounts::InterestTierSchedule#create + class InterestTierScheduleCreateParams < Lithic::Models::FinancialAccounts::FinancialAccountsInterestTierSchedule + extend Lithic::Internal::Type::RequestParameters::Converter + include Lithic::Internal::Type::RequestParameters + + # @!method initialize(request_options: {}) + # @param request_options [Lithic::RequestOptions, Hash{Symbol=>Object}] + end + end + end +end diff --git a/lib/lithic/models/financial_accounts/interest_tier_schedule_delete_params.rb b/lib/lithic/models/financial_accounts/interest_tier_schedule_delete_params.rb new file mode 100644 index 00000000..8d995dc1 --- /dev/null +++ b/lib/lithic/models/financial_accounts/interest_tier_schedule_delete_params.rb @@ -0,0 +1,22 @@ +# frozen_string_literal: true + +module Lithic + module Models + module FinancialAccounts + # @see Lithic::Resources::FinancialAccounts::InterestTierSchedule#delete + class InterestTierScheduleDeleteParams < Lithic::Internal::Type::BaseModel + extend Lithic::Internal::Type::RequestParameters::Converter + include Lithic::Internal::Type::RequestParameters + + # @!attribute financial_account_token + # + # @return [String] + required :financial_account_token, String + + # @!method initialize(financial_account_token:, request_options: {}) + # @param financial_account_token [String] + # @param request_options [Lithic::RequestOptions, Hash{Symbol=>Object}] + end + end + end +end diff --git a/lib/lithic/models/financial_accounts/interest_tier_schedule_list_params.rb b/lib/lithic/models/financial_accounts/interest_tier_schedule_list_params.rb new file mode 100644 index 00000000..c0ff2cd2 --- /dev/null +++ b/lib/lithic/models/financial_accounts/interest_tier_schedule_list_params.rb @@ -0,0 +1,40 @@ +# frozen_string_literal: true + +module Lithic + module Models + module FinancialAccounts + # @see Lithic::Resources::FinancialAccounts::InterestTierSchedule#list + class InterestTierScheduleListParams < Lithic::Internal::Type::BaseModel + extend Lithic::Internal::Type::RequestParameters::Converter + include Lithic::Internal::Type::RequestParameters + + # @!attribute after_date + # Return schedules with effective_date >= after_date (ISO format YYYY-MM-DD) + # + # @return [Date, nil] + optional :after_date, Date + + # @!attribute before_date + # Return schedules with effective_date <= before_date (ISO format YYYY-MM-DD) + # + # @return [Date, nil] + optional :before_date, Date + + # @!attribute for_date + # Return schedule with effective_date == for_date (ISO format YYYY-MM-DD) + # + # @return [Date, nil] + optional :for_date, Date + + # @!method initialize(after_date: nil, before_date: nil, for_date: nil, request_options: {}) + # @param after_date [Date] Return schedules with effective_date >= after_date (ISO format YYYY-MM-DD) + # + # @param before_date [Date] Return schedules with effective_date <= before_date (ISO format YYYY-MM-DD) + # + # @param for_date [Date] Return schedule with effective_date == for_date (ISO format YYYY-MM-DD) + # + # @param request_options [Lithic::RequestOptions, Hash{Symbol=>Object}] + end + end + end +end diff --git a/lib/lithic/models/financial_accounts/interest_tier_schedule_retrieve_params.rb b/lib/lithic/models/financial_accounts/interest_tier_schedule_retrieve_params.rb new file mode 100644 index 00000000..85395f11 --- /dev/null +++ b/lib/lithic/models/financial_accounts/interest_tier_schedule_retrieve_params.rb @@ -0,0 +1,22 @@ +# frozen_string_literal: true + +module Lithic + module Models + module FinancialAccounts + # @see Lithic::Resources::FinancialAccounts::InterestTierSchedule#retrieve + class InterestTierScheduleRetrieveParams < Lithic::Internal::Type::BaseModel + extend Lithic::Internal::Type::RequestParameters::Converter + include Lithic::Internal::Type::RequestParameters + + # @!attribute financial_account_token + # + # @return [String] + required :financial_account_token, String + + # @!method initialize(financial_account_token:, request_options: {}) + # @param financial_account_token [String] + # @param request_options [Lithic::RequestOptions, Hash{Symbol=>Object}] + end + end + end +end diff --git a/lib/lithic/models/financial_accounts/interest_tier_schedule_update_params.rb b/lib/lithic/models/financial_accounts/interest_tier_schedule_update_params.rb new file mode 100644 index 00000000..3f23a21f --- /dev/null +++ b/lib/lithic/models/financial_accounts/interest_tier_schedule_update_params.rb @@ -0,0 +1,44 @@ +# frozen_string_literal: true + +module Lithic + module Models + module FinancialAccounts + # @see Lithic::Resources::FinancialAccounts::InterestTierSchedule#update + class InterestTierScheduleUpdateParams < Lithic::Internal::Type::BaseModel + extend Lithic::Internal::Type::RequestParameters::Converter + include Lithic::Internal::Type::RequestParameters + + # @!attribute financial_account_token + # + # @return [String] + required :financial_account_token, String + + # @!attribute tier_name + # Name of a tier contained in the credit product. Mutually exclusive with + # tier_rates + # + # @return [String, nil] + optional :tier_name, String + + # @!attribute tier_rates + # Custom rates per category. Mutually exclusive with tier_name + # + # @return [Object, nil] + optional :tier_rates, Lithic::Internal::Type::Unknown + + # @!method initialize(financial_account_token:, tier_name: nil, tier_rates: nil, request_options: {}) + # Some parameter documentations has been truncated, see + # {Lithic::Models::FinancialAccounts::InterestTierScheduleUpdateParams} for more + # details. + # + # @param financial_account_token [String] + # + # @param tier_name [String] Name of a tier contained in the credit product. Mutually exclusive with tier_rat + # + # @param tier_rates [Object] Custom rates per category. Mutually exclusive with tier_name + # + # @param request_options [Lithic::RequestOptions, Hash{Symbol=>Object}] + end + end + end +end diff --git a/lib/lithic/models/financial_accounts/loan_tape.rb b/lib/lithic/models/financial_accounts/loan_tape.rb index 119439a8..cb8f4c2e 100644 --- a/lib/lithic/models/financial_accounts/loan_tape.rb +++ b/lib/lithic/models/financial_accounts/loan_tape.rb @@ -299,6 +299,7 @@ module Substatus END_USER_REQUEST = :END_USER_REQUEST BANK_REQUEST = :BANK_REQUEST DELINQUENT = :DELINQUENT + INTEREST_AND_FEES_PAUSED = :INTEREST_AND_FEES_PAUSED # @!method self.values # @return [Array] diff --git a/lib/lithic/models/financial_accounts/loan_tape_configuration.rb b/lib/lithic/models/financial_accounts/loan_tape_configuration.rb new file mode 100644 index 00000000..20b799e9 --- /dev/null +++ b/lib/lithic/models/financial_accounts/loan_tape_configuration.rb @@ -0,0 +1,63 @@ +# frozen_string_literal: true + +module Lithic + module Models + module FinancialAccounts + # @see Lithic::Resources::FinancialAccounts::LoanTapeConfiguration#retrieve + class FinancialAccountsLoanTapeConfiguration < Lithic::Internal::Type::BaseModel + # @!attribute created_at + # + # @return [Time] + required :created_at, Time + + # @!attribute financial_account_token + # + # @return [String] + required :financial_account_token, String + + # @!attribute instance_token + # + # @return [String] + required :instance_token, String + + # @!attribute updated_at + # + # @return [Time] + required :updated_at, Time + + # @!attribute credit_product_token + # + # @return [String, nil] + optional :credit_product_token, String + + # @!attribute loan_tape_rebuild_configuration + # Configuration for building loan tapes + # + # @return [Lithic::Models::FinancialAccounts::LoanTapeRebuildConfiguration, nil] + optional :loan_tape_rebuild_configuration, -> { Lithic::FinancialAccounts::LoanTapeRebuildConfiguration } + + # @!attribute tier_schedule_changed_at + # + # @return [Time, nil] + optional :tier_schedule_changed_at, Time + + # @!method initialize(created_at:, financial_account_token:, instance_token:, updated_at:, credit_product_token: nil, loan_tape_rebuild_configuration: nil, tier_schedule_changed_at: nil) + # Configuration for loan tapes + # + # @param created_at [Time] + # + # @param financial_account_token [String] + # + # @param instance_token [String] + # + # @param updated_at [Time] + # + # @param credit_product_token [String] + # + # @param loan_tape_rebuild_configuration [Lithic::Models::FinancialAccounts::LoanTapeRebuildConfiguration] Configuration for building loan tapes + # + # @param tier_schedule_changed_at [Time] + end + end + end +end diff --git a/lib/lithic/models/financial_accounts/loan_tape_configuration_retrieve_params.rb b/lib/lithic/models/financial_accounts/loan_tape_configuration_retrieve_params.rb new file mode 100644 index 00000000..bb07a88f --- /dev/null +++ b/lib/lithic/models/financial_accounts/loan_tape_configuration_retrieve_params.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +module Lithic + module Models + module FinancialAccounts + # @see Lithic::Resources::FinancialAccounts::LoanTapeConfiguration#retrieve + class LoanTapeConfigurationRetrieveParams < Lithic::Internal::Type::BaseModel + extend Lithic::Internal::Type::RequestParameters::Converter + include Lithic::Internal::Type::RequestParameters + + # @!method initialize(request_options: {}) + # @param request_options [Lithic::RequestOptions, Hash{Symbol=>Object}] + end + end + end +end diff --git a/lib/lithic/models/financial_accounts/loan_tape_rebuild_configuration.rb b/lib/lithic/models/financial_accounts/loan_tape_rebuild_configuration.rb new file mode 100644 index 00000000..1c8f0de1 --- /dev/null +++ b/lib/lithic/models/financial_accounts/loan_tape_rebuild_configuration.rb @@ -0,0 +1,36 @@ +# frozen_string_literal: true + +module Lithic + module Models + module FinancialAccounts + class LoanTapeRebuildConfiguration < Lithic::Internal::Type::BaseModel + # @!attribute rebuild_needed + # Whether the account's loan tapes need to be rebuilt or not + # + # @return [Boolean] + required :rebuild_needed, Lithic::Internal::Type::Boolean + + # @!attribute last_rebuild + # The date for which the account's loan tapes were last rebuilt + # + # @return [Date, nil] + optional :last_rebuild, Date + + # @!attribute rebuild_from + # Date from which to start rebuilding from if the account requires a rebuild + # + # @return [Date, nil] + optional :rebuild_from, Date + + # @!method initialize(rebuild_needed:, last_rebuild: nil, rebuild_from: nil) + # Configuration for building loan tapes + # + # @param rebuild_needed [Boolean] Whether the account's loan tapes need to be rebuilt or not + # + # @param last_rebuild [Date] The date for which the account's loan tapes were last rebuilt + # + # @param rebuild_from [Date] Date from which to start rebuilding from if the account requires a rebuild + end + end + end +end diff --git a/lib/lithic/models/financial_accounts/statement.rb b/lib/lithic/models/financial_accounts/statement.rb index 57f5971c..fd3c37ef 100644 --- a/lib/lithic/models/financial_accounts/statement.rb +++ b/lib/lithic/models/financial_accounts/statement.rb @@ -299,6 +299,7 @@ module Substatus END_USER_REQUEST = :END_USER_REQUEST BANK_REQUEST = :BANK_REQUEST DELINQUENT = :DELINQUENT + INTEREST_AND_FEES_PAUSED = :INTEREST_AND_FEES_PAUSED # @!method self.values # @return [Array] diff --git a/lib/lithic/models/digital_wallet_token_metadata.rb b/lib/lithic/models/token_metadata.rb similarity index 71% rename from lib/lithic/models/digital_wallet_token_metadata.rb rename to lib/lithic/models/token_metadata.rb index d7a3719b..a5f47436 100644 --- a/lib/lithic/models/digital_wallet_token_metadata.rb +++ b/lib/lithic/models/token_metadata.rb @@ -2,12 +2,12 @@ module Lithic module Models - class DigitalWalletTokenMetadata < Lithic::Internal::Type::BaseModel + class TokenMetadata < Lithic::Internal::Type::BaseModel # @!attribute payment_account_info # Contains the information of the account responsible for the payment. # - # @return [Lithic::Models::DigitalWalletTokenMetadata::PaymentAccountInfo] - required :payment_account_info, -> { Lithic::DigitalWalletTokenMetadata::PaymentAccountInfo } + # @return [Lithic::Models::TokenMetadata::PaymentAccountInfo] + required :payment_account_info, -> { Lithic::TokenMetadata::PaymentAccountInfo } # @!attribute status # The current status of the digital wallet token. Pending or declined. @@ -31,16 +31,16 @@ class DigitalWalletTokenMetadata < Lithic::Internal::Type::BaseModel # @!attribute token_requestor_name # Human-readable name of the wallet that the token_requestor_id maps to. # - # @return [Symbol, Lithic::Models::DigitalWalletTokenMetadata::TokenRequestorName, nil] - optional :token_requestor_name, enum: -> { Lithic::DigitalWalletTokenMetadata::TokenRequestorName } + # @return [Symbol, Lithic::Models::TokenMetadata::TokenRequestorName, nil] + optional :token_requestor_name, enum: -> { Lithic::TokenMetadata::TokenRequestorName } # @!method initialize(payment_account_info:, status:, payment_app_instance_id: nil, token_requestor_id: nil, token_requestor_name: nil) # Some parameter documentations has been truncated, see - # {Lithic::Models::DigitalWalletTokenMetadata} for more details. + # {Lithic::Models::TokenMetadata} for more details. # # Contains the metadata for the digital wallet being tokenized. # - # @param payment_account_info [Lithic::Models::DigitalWalletTokenMetadata::PaymentAccountInfo] Contains the information of the account responsible for the payment. + # @param payment_account_info [Lithic::Models::TokenMetadata::PaymentAccountInfo] Contains the information of the account responsible for the payment. # # @param status [String] The current status of the digital wallet token. Pending or declined. # @@ -48,17 +48,16 @@ class DigitalWalletTokenMetadata < Lithic::Internal::Type::BaseModel # # @param token_requestor_id [String] The party that requested the digitization # - # @param token_requestor_name [Symbol, Lithic::Models::DigitalWalletTokenMetadata::TokenRequestorName] Human-readable name of the wallet that the token_requestor_id maps to. + # @param token_requestor_name [Symbol, Lithic::Models::TokenMetadata::TokenRequestorName] Human-readable name of the wallet that the token_requestor_id maps to. - # @see Lithic::Models::DigitalWalletTokenMetadata#payment_account_info + # @see Lithic::Models::TokenMetadata#payment_account_info class PaymentAccountInfo < Lithic::Internal::Type::BaseModel # @!attribute account_holder_data # Additional information that can be used to identify the account holder, such as # name, address, etc # - # @return [Lithic::Models::DigitalWalletTokenMetadata::PaymentAccountInfo::AccountHolderData] - required :account_holder_data, - -> { Lithic::DigitalWalletTokenMetadata::PaymentAccountInfo::AccountHolderData } + # @return [Lithic::Models::TokenMetadata::PaymentAccountInfo::AccountHolderData] + required :account_holder_data, -> { Lithic::TokenMetadata::PaymentAccountInfo::AccountHolderData } # @!attribute pan_unique_reference # Reference to the PAN that is unique per Wallet Provider @@ -81,12 +80,11 @@ class PaymentAccountInfo < Lithic::Internal::Type::BaseModel # @!method initialize(account_holder_data:, pan_unique_reference: nil, payment_account_reference: nil, token_unique_reference: nil) # Some parameter documentations has been truncated, see - # {Lithic::Models::DigitalWalletTokenMetadata::PaymentAccountInfo} for more - # details. + # {Lithic::Models::TokenMetadata::PaymentAccountInfo} for more details. # # Contains the information of the account responsible for the payment. # - # @param account_holder_data [Lithic::Models::DigitalWalletTokenMetadata::PaymentAccountInfo::AccountHolderData] Additional information that can be used to identify the account holder, such as + # @param account_holder_data [Lithic::Models::TokenMetadata::PaymentAccountInfo::AccountHolderData] Additional information that can be used to identify the account holder, such as # # @param pan_unique_reference [String, nil] Reference to the PAN that is unique per Wallet Provider # @@ -94,7 +92,7 @@ class PaymentAccountInfo < Lithic::Internal::Type::BaseModel # # @param token_unique_reference [String, nil] A unique reference assigned following the allocation of a token used to identify - # @see Lithic::Models::DigitalWalletTokenMetadata::PaymentAccountInfo#account_holder_data + # @see Lithic::Models::TokenMetadata::PaymentAccountInfo#account_holder_data class AccountHolderData < Lithic::Internal::Type::BaseModel # @!attribute phone_number # The phone number, may contain country code along with phone number when @@ -105,8 +103,8 @@ class AccountHolderData < Lithic::Internal::Type::BaseModel # @!method initialize(phone_number: nil) # Some parameter documentations has been truncated, see - # {Lithic::Models::DigitalWalletTokenMetadata::PaymentAccountInfo::AccountHolderData} - # for more details. + # {Lithic::Models::TokenMetadata::PaymentAccountInfo::AccountHolderData} for more + # details. # # Additional information that can be used to identify the account holder, such as # name, address, etc @@ -117,7 +115,7 @@ class AccountHolderData < Lithic::Internal::Type::BaseModel # Human-readable name of the wallet that the token_requestor_id maps to. # - # @see Lithic::Models::DigitalWalletTokenMetadata#token_requestor_name + # @see Lithic::Models::TokenMetadata#token_requestor_name module TokenRequestorName extend Lithic::Internal::Type::Enum @@ -127,6 +125,7 @@ module TokenRequestorName FACEBOOK = :FACEBOOK FITBIT_PAY = :FITBIT_PAY GARMIN_PAY = :GARMIN_PAY + GOOGLE_PAY = :GOOGLE_PAY MICROSOFT_PAY = :MICROSOFT_PAY NETFLIX = :NETFLIX SAMSUNG_PAY = :SAMSUNG_PAY diff --git a/lib/lithic/models/tokenization_approval_request_webhook_event.rb b/lib/lithic/models/tokenization_approval_request_webhook_event.rb index 1ef0aaad..ec431949 100644 --- a/lib/lithic/models/tokenization_approval_request_webhook_event.rb +++ b/lib/lithic/models/tokenization_approval_request_webhook_event.rb @@ -42,6 +42,12 @@ class TokenizationApprovalRequestWebhookEvent < Lithic::Internal::Type::BaseMode # @return [Symbol, Lithic::Models::TokenizationApprovalRequestWebhookEvent::IssuerDecision] required :issuer_decision, enum: -> { Lithic::TokenizationApprovalRequestWebhookEvent::IssuerDecision } + # @!attribute token_metadata + # Contains the metadata for the digital wallet being tokenized. + # + # @return [Lithic::Models::TokenMetadata] + required :token_metadata, -> { Lithic::TokenMetadata } + # @!attribute tokenization_channel # The channel through which the tokenization was made. # @@ -65,12 +71,6 @@ class TokenizationApprovalRequestWebhookEvent < Lithic::Internal::Type::BaseMode # @return [Lithic::Models::Device, nil] optional :device, -> { Lithic::Device } - # @!attribute digital_wallet_token_metadata - # Contains the metadata for the digital wallet being tokenized. - # - # @return [Lithic::Models::DigitalWalletTokenMetadata, nil] - optional :digital_wallet_token_metadata, -> { Lithic::DigitalWalletTokenMetadata } - # @!attribute rule_results # Results from rules that were evaluated for this tokenization # @@ -98,7 +98,7 @@ class TokenizationApprovalRequestWebhookEvent < Lithic::Internal::Type::BaseMode optional :tokenization_tfa_reasons, -> { Lithic::Internal::Type::ArrayOf[enum: Lithic::TokenizationTfaReason] } - # @!method initialize(account_token:, card_token:, created:, customer_tokenization_decision:, event_type:, issuer_decision:, tokenization_channel:, tokenization_token:, wallet_decisioning_info:, device: nil, digital_wallet_token_metadata: nil, rule_results: nil, tokenization_decline_reasons: nil, tokenization_source: nil, tokenization_tfa_reasons: nil) + # @!method initialize(account_token:, card_token:, created:, customer_tokenization_decision:, event_type:, issuer_decision:, token_metadata:, tokenization_channel:, tokenization_token:, wallet_decisioning_info:, device: nil, rule_results: nil, tokenization_decline_reasons: nil, tokenization_source: nil, tokenization_tfa_reasons: nil) # Some parameter documentations has been truncated, see # {Lithic::Models::TokenizationApprovalRequestWebhookEvent} for more details. # @@ -114,6 +114,8 @@ class TokenizationApprovalRequestWebhookEvent < Lithic::Internal::Type::BaseMode # # @param issuer_decision [Symbol, Lithic::Models::TokenizationApprovalRequestWebhookEvent::IssuerDecision] Whether Lithic decisioned on the token, and if so, what the decision was. APPROV # + # @param token_metadata [Lithic::Models::TokenMetadata] Contains the metadata for the digital wallet being tokenized. + # # @param tokenization_channel [Symbol, Lithic::Models::TokenizationApprovalRequestWebhookEvent::TokenizationChannel] The channel through which the tokenization was made. # # @param tokenization_token [String] Unique identifier for the digital wallet token attempt @@ -122,8 +124,6 @@ class TokenizationApprovalRequestWebhookEvent < Lithic::Internal::Type::BaseMode # # @param device [Lithic::Models::Device] # - # @param digital_wallet_token_metadata [Lithic::Models::DigitalWalletTokenMetadata] Contains the metadata for the digital wallet being tokenized. - # # @param rule_results [Array] Results from rules that were evaluated for this tokenization # # @param tokenization_decline_reasons [Array] List of reasons why the tokenization was declined diff --git a/lib/lithic/models/tokenization_decisioning_request_webhook_event.rb b/lib/lithic/models/tokenization_decisioning_request_webhook_event.rb index 92be6a66..c466c1a8 100644 --- a/lib/lithic/models/tokenization_decisioning_request_webhook_event.rb +++ b/lib/lithic/models/tokenization_decisioning_request_webhook_event.rb @@ -21,6 +21,12 @@ class TokenizationDecisioningRequestWebhookEvent < Lithic::Internal::Type::BaseM # @return [Time] required :created, Time + # @!attribute digital_wallet_token_metadata + # Contains the metadata for the digital wallet being tokenized. + # + # @return [Lithic::Models::TokenMetadata] + required :digital_wallet_token_metadata, -> { Lithic::TokenMetadata } + # @!attribute event_type # The name of this event # @@ -57,12 +63,6 @@ class TokenizationDecisioningRequestWebhookEvent < Lithic::Internal::Type::BaseM # @return [Lithic::Models::Device, nil] optional :device, -> { Lithic::Device } - # @!attribute digital_wallet_token_metadata - # Contains the metadata for the digital wallet being tokenized. - # - # @return [Lithic::Models::DigitalWalletTokenMetadata, nil] - optional :digital_wallet_token_metadata, -> { Lithic::DigitalWalletTokenMetadata } - # @!attribute tokenization_source # The source of the tokenization. # @@ -70,7 +70,7 @@ class TokenizationDecisioningRequestWebhookEvent < Lithic::Internal::Type::BaseM optional :tokenization_source, enum: -> { Lithic::TokenizationDecisioningRequestWebhookEvent::TokenizationSource } - # @!method initialize(account_token:, card_token:, created:, event_type:, issuer_decision:, tokenization_channel:, tokenization_token:, wallet_decisioning_info:, device: nil, digital_wallet_token_metadata: nil, tokenization_source: nil) + # @!method initialize(account_token:, card_token:, created:, digital_wallet_token_metadata:, event_type:, issuer_decision:, tokenization_channel:, tokenization_token:, wallet_decisioning_info:, device: nil, tokenization_source: nil) # Some parameter documentations has been truncated, see # {Lithic::Models::TokenizationDecisioningRequestWebhookEvent} for more details. # @@ -82,6 +82,8 @@ class TokenizationDecisioningRequestWebhookEvent < Lithic::Internal::Type::BaseM # # @param created [Time] Indicate when the request was received from Mastercard or Visa # + # @param digital_wallet_token_metadata [Lithic::Models::TokenMetadata] Contains the metadata for the digital wallet being tokenized. + # # @param event_type [Symbol, Lithic::Models::TokenizationDecisioningRequestWebhookEvent::EventType] The name of this event # # @param issuer_decision [Symbol, Lithic::Models::TokenizationDecisioningRequestWebhookEvent::IssuerDecision] Whether Lithic decisioned on the token, and if so, what the decision was. APPROV @@ -94,8 +96,6 @@ class TokenizationDecisioningRequestWebhookEvent < Lithic::Internal::Type::BaseM # # @param device [Lithic::Models::Device] # - # @param digital_wallet_token_metadata [Lithic::Models::DigitalWalletTokenMetadata] Contains the metadata for the digital wallet being tokenized. - # # @param tokenization_source [Symbol, Lithic::Models::TokenizationDecisioningRequestWebhookEvent::TokenizationSource] The source of the tokenization. # The name of this event diff --git a/lib/lithic/resources/account_holders.rb b/lib/lithic/resources/account_holders.rb index 2f44d2b4..7a7bb6b9 100644 --- a/lib/lithic/resources/account_holders.rb +++ b/lib/lithic/resources/account_holders.rb @@ -3,6 +3,9 @@ module Lithic module Resources class AccountHolders + # @return [Lithic::Resources::AccountHolders::Entities] + attr_reader :entities + # Some parameter documentations has been truncated, see # {Lithic::Models::AccountHolderCreateParams} for more details. # @@ -391,6 +394,7 @@ def upload_document(account_holder_token, params) # @param client [Lithic::Client] def initialize(client:) @client = client + @entities = Lithic::Resources::AccountHolders::Entities.new(client: client) end end end diff --git a/lib/lithic/resources/account_holders/entities.rb b/lib/lithic/resources/account_holders/entities.rb new file mode 100644 index 00000000..43920529 --- /dev/null +++ b/lib/lithic/resources/account_holders/entities.rb @@ -0,0 +1,89 @@ +# frozen_string_literal: true + +module Lithic + module Resources + class AccountHolders + class Entities + # Some parameter documentations has been truncated, see + # {Lithic::Models::AccountHolders::EntityCreateParams} for more details. + # + # Create a new beneficial owner or replace the control person entity on an + # existing KYB account holder. This endpoint is only applicable for account + # holders enrolled through a KYB workflow with the Persona KYB provider. A new + # control person can only replace the existing one. A maximum of 4 beneficial + # owners can be associated with an account holder. + # + # @overload create(account_holder_token, address:, dob:, email:, first_name:, government_id:, last_name:, phone_number:, type:, request_options: {}) + # + # @param account_holder_token [String] Globally unique identifier for the account holder. + # + # @param address [Lithic::Models::AccountHolders::EntityCreateParams::Address] Individual's current address - PO boxes, UPS drops, and FedEx drops are not acce + # + # @param dob [String] Individual's date of birth, as an RFC 3339 date. + # + # @param email [String] Individual's email address. If utilizing Lithic for chargeback processing, this + # + # @param first_name [String] Individual's first name, as it appears on government-issued identity documents. + # + # @param government_id [String] Government-issued identification number (required for identity verification and + # + # @param last_name [String] Individual's last name, as it appears on government-issued identity documents. + # + # @param phone_number [String] Individual's phone number, entered in E.164 format. + # + # @param type [Symbol, Lithic::Models::AccountHolders::EntityCreateParams::Type] The type of entity to create on the account holder + # + # @param request_options [Lithic::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Lithic::Models::AccountHolders::EntityCreateResponse] + # + # @see Lithic::Models::AccountHolders::EntityCreateParams + def create(account_holder_token, params) + parsed, options = Lithic::AccountHolders::EntityCreateParams.dump_request(params) + @client.request( + method: :post, + path: ["v1/account_holders/%1$s/entities", account_holder_token], + body: parsed, + model: Lithic::Models::AccountHolders::EntityCreateResponse, + options: options + ) + end + + # Deactivate a beneficial owner entity on an existing KYB account holder. Only + # beneficial owner entities can be deactivated. + # + # @overload delete(entity_token, account_holder_token:, request_options: {}) + # + # @param entity_token [String] Globally unique identifier for the entity. + # + # @param account_holder_token [String] Globally unique identifier for the account holder. + # + # @param request_options [Lithic::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Lithic::Models::AccountHolders::AccountHolderEntity] + # + # @see Lithic::Models::AccountHolders::EntityDeleteParams + def delete(entity_token, params) + parsed, options = Lithic::AccountHolders::EntityDeleteParams.dump_request(params) + account_holder_token = + parsed.delete(:account_holder_token) do + raise ArgumentError.new("missing required path argument #{_1}") + end + @client.request( + method: :delete, + path: ["v1/account_holders/%1$s/entities/%2$s", account_holder_token, entity_token], + model: Lithic::AccountHolders::AccountHolderEntity, + options: options + ) + end + + # @api private + # + # @param client [Lithic::Client] + def initialize(client:) + @client = client + end + end + end + end +end diff --git a/lib/lithic/resources/financial_accounts.rb b/lib/lithic/resources/financial_accounts.rb index fc2f9e9c..d7ddbe5e 100644 --- a/lib/lithic/resources/financial_accounts.rb +++ b/lib/lithic/resources/financial_accounts.rb @@ -18,6 +18,12 @@ class FinancialAccounts # @return [Lithic::Resources::FinancialAccounts::LoanTapes] attr_reader :loan_tapes + # @return [Lithic::Resources::FinancialAccounts::LoanTapeConfiguration] + attr_reader :loan_tape_configuration + + # @return [Lithic::Resources::FinancialAccounts::InterestTierSchedule] + attr_reader :interest_tier_schedule + # Create a new financial account # # @overload create(nickname:, type:, account_token: nil, is_for_benefit_of: nil, idempotency_key: nil, request_options: {}) @@ -181,6 +187,9 @@ def initialize(client:) @credit_configuration = Lithic::Resources::FinancialAccounts::CreditConfiguration.new(client: client) @statements = Lithic::Resources::FinancialAccounts::Statements.new(client: client) @loan_tapes = Lithic::Resources::FinancialAccounts::LoanTapes.new(client: client) + @loan_tape_configuration = + Lithic::Resources::FinancialAccounts::LoanTapeConfiguration.new(client: client) + @interest_tier_schedule = Lithic::Resources::FinancialAccounts::InterestTierSchedule.new(client: client) end end end diff --git a/lib/lithic/resources/financial_accounts/interest_tier_schedule.rb b/lib/lithic/resources/financial_accounts/interest_tier_schedule.rb new file mode 100644 index 00000000..5b5718d6 --- /dev/null +++ b/lib/lithic/resources/financial_accounts/interest_tier_schedule.rb @@ -0,0 +1,205 @@ +# frozen_string_literal: true + +module Lithic + module Resources + class FinancialAccounts + class InterestTierSchedule + # Some parameter documentations has been truncated, see + # {Lithic::Models::FinancialAccounts::InterestTierScheduleCreateParams} for more + # details. + # + # Create a new interest tier schedule entry for a supported financial account + # + # @overload create(financial_account_token, credit_product_token:, effective_date:, tier_name: nil, tier_rates: nil, request_options: {}) + # + # @param financial_account_token [String] Globally unique identifier for financial account + # + # @param credit_product_token [String] Globally unique identifier for a credit product + # + # @param effective_date [Date] Date the tier should be effective in YYYY-MM-DD format + # + # @param tier_name [String] Name of a tier contained in the credit product. Mutually exclusive with tier_rat + # + # @param tier_rates [Object] Custom rates per category. Mutually exclusive with tier_name + # + # @param request_options [Lithic::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Lithic::Models::FinancialAccounts::FinancialAccountsInterestTierSchedule] + # + # @see Lithic::Models::FinancialAccounts::InterestTierScheduleCreateParams + def create(financial_account_token, params) + parsed, options = Lithic::FinancialAccounts::InterestTierScheduleCreateParams.dump_request(params) + @client.request( + method: :post, + path: ["v1/financial_accounts/%1$s/interest_tier_schedule", financial_account_token], + body: parsed, + model: Lithic::FinancialAccounts::FinancialAccountsInterestTierSchedule, + options: options + ) + end + + # Get a specific interest tier schedule by effective date + # + # @overload retrieve(effective_date, financial_account_token:, request_options: {}) + # + # @param effective_date [Date] Effective date in ISO format (YYYY-MM-DD) + # + # @param financial_account_token [String] Globally unique identifier for financial account + # + # @param request_options [Lithic::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Lithic::Models::FinancialAccounts::FinancialAccountsInterestTierSchedule] + # + # @see Lithic::Models::FinancialAccounts::InterestTierScheduleRetrieveParams + def retrieve(effective_date, params) + parsed, options = Lithic::FinancialAccounts::InterestTierScheduleRetrieveParams.dump_request(params) + financial_account_token = + parsed.delete(:financial_account_token) do + raise ArgumentError.new("missing required path argument #{_1}") + end + @client.request( + method: :get, + path: [ + "v1/financial_accounts/%1$s/interest_tier_schedule/%2$s", + financial_account_token, + effective_date + ], + model: Lithic::FinancialAccounts::FinancialAccountsInterestTierSchedule, + options: options + ) + end + + # Some parameter documentations has been truncated, see + # {Lithic::Models::FinancialAccounts::InterestTierScheduleUpdateParams} for more + # details. + # + # Update an existing interest tier schedule + # + # @overload update(effective_date, financial_account_token:, tier_name: nil, tier_rates: nil, request_options: {}) + # + # @param effective_date [Date] Path param: Effective date in ISO format (YYYY-MM-DD) + # + # @param financial_account_token [String] Path param: Globally unique identifier for financial account + # + # @param tier_name [String] Body param: Name of a tier contained in the credit product. Mutually exclusive w + # + # @param tier_rates [Object] Body param: Custom rates per category. Mutually exclusive with tier_name + # + # @param request_options [Lithic::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Lithic::Models::FinancialAccounts::FinancialAccountsInterestTierSchedule] + # + # @see Lithic::Models::FinancialAccounts::InterestTierScheduleUpdateParams + def update(effective_date, params) + parsed, options = Lithic::FinancialAccounts::InterestTierScheduleUpdateParams.dump_request(params) + financial_account_token = + parsed.delete(:financial_account_token) do + raise ArgumentError.new("missing required path argument #{_1}") + end + @client.request( + method: :put, + path: [ + "v1/financial_accounts/%1$s/interest_tier_schedule/%2$s", + financial_account_token, + effective_date + ], + body: parsed, + model: Lithic::FinancialAccounts::FinancialAccountsInterestTierSchedule, + options: options + ) + end + + # List interest tier schedules for a financial account with optional date + # filtering. + # + # If no date parameters are provided, returns all tier schedules. If date + # parameters are provided, uses filtering to return matching schedules (max 100). + # + # - for_date: Returns exact match (takes precedence over other dates) + # - before_date: Returns schedules with effective_date <= before_date + # - after_date: Returns schedules with effective_date >= after_date + # - Both before_date and after_date: Returns schedules in range + # + # @overload list(financial_account_token, after_date: nil, before_date: nil, for_date: nil, request_options: {}) + # + # @param financial_account_token [String] Globally unique identifier for financial account + # + # @param after_date [Date] Return schedules with effective_date >= after_date (ISO format YYYY-MM-DD) + # + # @param before_date [Date] Return schedules with effective_date <= before_date (ISO format YYYY-MM-DD) + # + # @param for_date [Date] Return schedule with effective_date == for_date (ISO format YYYY-MM-DD) + # + # @param request_options [Lithic::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Lithic::Internal::SinglePage] + # + # @see Lithic::Models::FinancialAccounts::InterestTierScheduleListParams + def list(financial_account_token, params = {}) + parsed, options = Lithic::FinancialAccounts::InterestTierScheduleListParams.dump_request(params) + @client.request( + method: :get, + path: ["v1/financial_accounts/%1$s/interest_tier_schedule", financial_account_token], + query: parsed, + page: Lithic::Internal::SinglePage, + model: Lithic::FinancialAccounts::FinancialAccountsInterestTierSchedule, + options: options + ) + end + + # Delete an interest tier schedule entry. + # + # Returns: + # + # - 400 Bad Request: Invalid effective_date format OR attempting to delete the + # earliest tier schedule entry for a non-PENDING account + # - 404 Not Found: Tier schedule entry not found for the given effective_date OR + # ledger account not found + # + # Note: PENDING accounts can delete the earliest tier schedule entry (account + # hasn't opened yet). Active/non-PENDING accounts cannot delete the earliest entry + # to prevent orphaning the account. + # + # If the deleted tier schedule has a past effective_date and the account is + # ACTIVE, the loan tape rebuild configuration will be updated to trigger rebuilds + # from that date. + # + # @overload delete(effective_date, financial_account_token:, request_options: {}) + # + # @param effective_date [Date] Effective date in ISO format (YYYY-MM-DD) + # + # @param financial_account_token [String] Globally unique identifier for financial account + # + # @param request_options [Lithic::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [nil] + # + # @see Lithic::Models::FinancialAccounts::InterestTierScheduleDeleteParams + def delete(effective_date, params) + parsed, options = Lithic::FinancialAccounts::InterestTierScheduleDeleteParams.dump_request(params) + financial_account_token = + parsed.delete(:financial_account_token) do + raise ArgumentError.new("missing required path argument #{_1}") + end + @client.request( + method: :delete, + path: [ + "v1/financial_accounts/%1$s/interest_tier_schedule/%2$s", + financial_account_token, + effective_date + ], + model: NilClass, + options: options + ) + end + + # @api private + # + # @param client [Lithic::Client] + def initialize(client:) + @client = client + end + end + end + end +end diff --git a/lib/lithic/resources/financial_accounts/loan_tape_configuration.rb b/lib/lithic/resources/financial_accounts/loan_tape_configuration.rb new file mode 100644 index 00000000..333d4a04 --- /dev/null +++ b/lib/lithic/resources/financial_accounts/loan_tape_configuration.rb @@ -0,0 +1,36 @@ +# frozen_string_literal: true + +module Lithic + module Resources + class FinancialAccounts + class LoanTapeConfiguration + # Get the loan tape configuration for a given financial account. + # + # @overload retrieve(financial_account_token, request_options: {}) + # + # @param financial_account_token [String] Globally unique identifier for financial account. + # + # @param request_options [Lithic::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Lithic::Models::FinancialAccounts::FinancialAccountsLoanTapeConfiguration] + # + # @see Lithic::Models::FinancialAccounts::LoanTapeConfigurationRetrieveParams + def retrieve(financial_account_token, params = {}) + @client.request( + method: :get, + path: ["v1/financial_accounts/%1$s/loan_tape_configuration", financial_account_token], + model: Lithic::FinancialAccounts::FinancialAccountsLoanTapeConfiguration, + options: params[:request_options] + ) + end + + # @api private + # + # @param client [Lithic::Client] + def initialize(client:) + @client = client + end + end + end + end +end diff --git a/lib/lithic/version.rb b/lib/lithic/version.rb index c18bbd02..578f310f 100644 --- a/lib/lithic/version.rb +++ b/lib/lithic/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module Lithic - VERSION = "0.5.0" + VERSION = "0.6.0" end diff --git a/rbi/lithic/models.rbi b/rbi/lithic/models.rbi index c711f98e..a01624e9 100644 --- a/rbi/lithic/models.rbi +++ b/rbi/lithic/models.rbi @@ -30,6 +30,8 @@ module Lithic AccountHolderRetrieveParams = Lithic::Models::AccountHolderRetrieveParams + AccountHolders = Lithic::Models::AccountHolders + AccountHolderSimulateEnrollmentDocumentReviewParams = Lithic::Models::AccountHolderSimulateEnrollmentDocumentReviewParams @@ -206,8 +208,6 @@ module Lithic DigitalWalletTokenizationUpdatedWebhookEvent = Lithic::Models::DigitalWalletTokenizationUpdatedWebhookEvent - DigitalWalletTokenMetadata = Lithic::Models::DigitalWalletTokenMetadata - Dispute = Lithic::Models::Dispute DisputeCreateParams = Lithic::Models::DisputeCreateParams @@ -561,6 +561,8 @@ module Lithic TokenizationUpdatedWebhookEvent = Lithic::Models::TokenizationUpdatedWebhookEvent + TokenMetadata = Lithic::Models::TokenMetadata + Transaction = Lithic::Models::Transaction TransactionExpireAuthorizationParams = diff --git a/rbi/lithic/models/account_holders/account_holder_entity.rbi b/rbi/lithic/models/account_holders/account_holder_entity.rbi new file mode 100644 index 00000000..ebdf94a1 --- /dev/null +++ b/rbi/lithic/models/account_holders/account_holder_entity.rbi @@ -0,0 +1,296 @@ +# typed: strong + +module Lithic + module Models + AccountHolderEntity = AccountHolders::AccountHolderEntity + + module AccountHolders + class AccountHolderEntity < Lithic::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Lithic::AccountHolders::AccountHolderEntity, + Lithic::Internal::AnyHash + ) + end + + # Globally unique identifier for the entity + sig { returns(String) } + attr_accessor :token + + # Globally unique identifier for the account holder + sig { returns(String) } + attr_accessor :account_holder_token + + # Individual's current address + sig { returns(Lithic::AccountHolders::AccountHolderEntity::Address) } + attr_reader :address + + sig do + params( + address: + Lithic::AccountHolders::AccountHolderEntity::Address::OrHash + ).void + end + attr_writer :address + + # Individual's date of birth, as an RFC 3339 date + sig { returns(T.nilable(String)) } + attr_accessor :dob + + # Individual's email address + sig { returns(T.nilable(String)) } + attr_accessor :email + + # Individual's first name, as it appears on government-issued identity documents + sig { returns(T.nilable(String)) } + attr_accessor :first_name + + # Individual's last name, as it appears on government-issued identity documents + sig { returns(T.nilable(String)) } + attr_accessor :last_name + + # Individual's phone number, entered in E.164 format + sig { returns(T.nilable(String)) } + attr_accessor :phone_number + + # The status of the entity + sig do + returns( + Lithic::AccountHolders::AccountHolderEntity::Status::TaggedSymbol + ) + end + attr_accessor :status + + # The type of entity + sig do + returns( + Lithic::AccountHolders::AccountHolderEntity::Type::TaggedSymbol + ) + end + attr_accessor :type + + # Information about an entity associated with an account holder + sig do + params( + token: String, + account_holder_token: String, + address: + Lithic::AccountHolders::AccountHolderEntity::Address::OrHash, + dob: T.nilable(String), + email: T.nilable(String), + first_name: T.nilable(String), + last_name: T.nilable(String), + phone_number: T.nilable(String), + status: + Lithic::AccountHolders::AccountHolderEntity::Status::OrSymbol, + type: Lithic::AccountHolders::AccountHolderEntity::Type::OrSymbol + ).returns(T.attached_class) + end + def self.new( + # Globally unique identifier for the entity + token:, + # Globally unique identifier for the account holder + account_holder_token:, + # Individual's current address + address:, + # Individual's date of birth, as an RFC 3339 date + dob:, + # Individual's email address + email:, + # Individual's first name, as it appears on government-issued identity documents + first_name:, + # Individual's last name, as it appears on government-issued identity documents + last_name:, + # Individual's phone number, entered in E.164 format + phone_number:, + # The status of the entity + status:, + # The type of entity + type: + ) + end + + sig do + override.returns( + { + token: String, + account_holder_token: String, + address: Lithic::AccountHolders::AccountHolderEntity::Address, + dob: T.nilable(String), + email: T.nilable(String), + first_name: T.nilable(String), + last_name: T.nilable(String), + phone_number: T.nilable(String), + status: + Lithic::AccountHolders::AccountHolderEntity::Status::TaggedSymbol, + type: + Lithic::AccountHolders::AccountHolderEntity::Type::TaggedSymbol + } + ) + end + def to_hash + end + + class Address < Lithic::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Lithic::AccountHolders::AccountHolderEntity::Address, + Lithic::Internal::AnyHash + ) + end + + # Valid deliverable address (no PO boxes). + sig { returns(String) } + attr_accessor :address1 + + # Name of city. + sig { returns(String) } + attr_accessor :city + + # Valid country code. Only USA is currently supported, entered in uppercase ISO + # 3166-1 alpha-3 three-character format. + sig { returns(String) } + attr_accessor :country + + # Valid postal code. Only USA ZIP codes are currently supported, entered as a + # five-digit ZIP or nine-digit ZIP+4. + sig { returns(String) } + attr_accessor :postal_code + + # Valid state code. Only USA state codes are currently supported, entered in + # uppercase ISO 3166-2 two-character format. + sig { returns(String) } + attr_accessor :state + + # Unit or apartment number (if applicable). + sig { returns(T.nilable(String)) } + attr_reader :address2 + + sig { params(address2: String).void } + attr_writer :address2 + + # Individual's current address + sig do + params( + address1: String, + city: String, + country: String, + postal_code: String, + state: String, + address2: String + ).returns(T.attached_class) + end + def self.new( + # Valid deliverable address (no PO boxes). + address1:, + # Name of city. + city:, + # Valid country code. Only USA is currently supported, entered in uppercase ISO + # 3166-1 alpha-3 three-character format. + country:, + # Valid postal code. Only USA ZIP codes are currently supported, entered as a + # five-digit ZIP or nine-digit ZIP+4. + postal_code:, + # Valid state code. Only USA state codes are currently supported, entered in + # uppercase ISO 3166-2 two-character format. + state:, + # Unit or apartment number (if applicable). + address2: nil + ) + end + + sig do + override.returns( + { + address1: String, + city: String, + country: String, + postal_code: String, + state: String, + address2: String + } + ) + end + def to_hash + end + end + + # The status of the entity + module Status + extend Lithic::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all(Symbol, Lithic::AccountHolders::AccountHolderEntity::Status) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + ACCEPTED = + T.let( + :ACCEPTED, + Lithic::AccountHolders::AccountHolderEntity::Status::TaggedSymbol + ) + INACTIVE = + T.let( + :INACTIVE, + Lithic::AccountHolders::AccountHolderEntity::Status::TaggedSymbol + ) + PENDING_REVIEW = + T.let( + :PENDING_REVIEW, + Lithic::AccountHolders::AccountHolderEntity::Status::TaggedSymbol + ) + REJECTED = + T.let( + :REJECTED, + Lithic::AccountHolders::AccountHolderEntity::Status::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Lithic::AccountHolders::AccountHolderEntity::Status::TaggedSymbol + ] + ) + end + def self.values + end + end + + # The type of entity + module Type + extend Lithic::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all(Symbol, Lithic::AccountHolders::AccountHolderEntity::Type) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + BENEFICIAL_OWNER_INDIVIDUAL = + T.let( + :BENEFICIAL_OWNER_INDIVIDUAL, + Lithic::AccountHolders::AccountHolderEntity::Type::TaggedSymbol + ) + CONTROL_PERSON = + T.let( + :CONTROL_PERSON, + Lithic::AccountHolders::AccountHolderEntity::Type::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Lithic::AccountHolders::AccountHolderEntity::Type::TaggedSymbol + ] + ) + end + def self.values + end + end + end + end + end +end diff --git a/rbi/lithic/models/account_holders/entity_create_params.rbi b/rbi/lithic/models/account_holders/entity_create_params.rbi new file mode 100644 index 00000000..ee668873 --- /dev/null +++ b/rbi/lithic/models/account_holders/entity_create_params.rbi @@ -0,0 +1,242 @@ +# typed: strong + +module Lithic + module Models + module AccountHolders + class EntityCreateParams < Lithic::Internal::Type::BaseModel + extend Lithic::Internal::Type::RequestParameters::Converter + include Lithic::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Lithic::AccountHolders::EntityCreateParams, + Lithic::Internal::AnyHash + ) + end + + # Individual's current address - PO boxes, UPS drops, and FedEx drops are not + # acceptable; APO/FPO are acceptable. Only USA addresses are currently supported. + sig { returns(Lithic::AccountHolders::EntityCreateParams::Address) } + attr_reader :address + + sig do + params( + address: Lithic::AccountHolders::EntityCreateParams::Address::OrHash + ).void + end + attr_writer :address + + # Individual's date of birth, as an RFC 3339 date. + sig { returns(String) } + attr_accessor :dob + + # Individual's email address. If utilizing Lithic for chargeback processing, this + # customer email address may be used to communicate dispute status and resolution. + sig { returns(String) } + attr_accessor :email + + # Individual's first name, as it appears on government-issued identity documents. + sig { returns(String) } + attr_accessor :first_name + + # Government-issued identification number (required for identity verification and + # compliance with banking regulations). Social Security Numbers (SSN) and + # Individual Taxpayer Identification Numbers (ITIN) are currently supported, + # entered as full nine-digits, with or without hyphens + sig { returns(String) } + attr_accessor :government_id + + # Individual's last name, as it appears on government-issued identity documents. + sig { returns(String) } + attr_accessor :last_name + + # Individual's phone number, entered in E.164 format. + sig { returns(String) } + attr_accessor :phone_number + + # The type of entity to create on the account holder + sig do + returns(Lithic::AccountHolders::EntityCreateParams::Type::OrSymbol) + end + attr_accessor :type + + sig do + params( + address: + Lithic::AccountHolders::EntityCreateParams::Address::OrHash, + dob: String, + email: String, + first_name: String, + government_id: String, + last_name: String, + phone_number: String, + type: Lithic::AccountHolders::EntityCreateParams::Type::OrSymbol, + request_options: Lithic::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + # Individual's current address - PO boxes, UPS drops, and FedEx drops are not + # acceptable; APO/FPO are acceptable. Only USA addresses are currently supported. + address:, + # Individual's date of birth, as an RFC 3339 date. + dob:, + # Individual's email address. If utilizing Lithic for chargeback processing, this + # customer email address may be used to communicate dispute status and resolution. + email:, + # Individual's first name, as it appears on government-issued identity documents. + first_name:, + # Government-issued identification number (required for identity verification and + # compliance with banking regulations). Social Security Numbers (SSN) and + # Individual Taxpayer Identification Numbers (ITIN) are currently supported, + # entered as full nine-digits, with or without hyphens + government_id:, + # Individual's last name, as it appears on government-issued identity documents. + last_name:, + # Individual's phone number, entered in E.164 format. + phone_number:, + # The type of entity to create on the account holder + type:, + request_options: {} + ) + end + + sig do + override.returns( + { + address: Lithic::AccountHolders::EntityCreateParams::Address, + dob: String, + email: String, + first_name: String, + government_id: String, + last_name: String, + phone_number: String, + type: Lithic::AccountHolders::EntityCreateParams::Type::OrSymbol, + request_options: Lithic::RequestOptions + } + ) + end + def to_hash + end + + class Address < Lithic::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Lithic::AccountHolders::EntityCreateParams::Address, + Lithic::Internal::AnyHash + ) + end + + # Valid deliverable address (no PO boxes). + sig { returns(String) } + attr_accessor :address1 + + # Name of city. + sig { returns(String) } + attr_accessor :city + + # Valid country code. Only USA is currently supported, entered in uppercase ISO + # 3166-1 alpha-3 three-character format. + sig { returns(String) } + attr_accessor :country + + # Valid postal code. Only USA ZIP codes are currently supported, entered as a + # five-digit ZIP or nine-digit ZIP+4. + sig { returns(String) } + attr_accessor :postal_code + + # Valid state code. Only USA state codes are currently supported, entered in + # uppercase ISO 3166-2 two-character format. + sig { returns(String) } + attr_accessor :state + + # Unit or apartment number (if applicable). + sig { returns(T.nilable(String)) } + attr_reader :address2 + + sig { params(address2: String).void } + attr_writer :address2 + + # Individual's current address - PO boxes, UPS drops, and FedEx drops are not + # acceptable; APO/FPO are acceptable. Only USA addresses are currently supported. + sig do + params( + address1: String, + city: String, + country: String, + postal_code: String, + state: String, + address2: String + ).returns(T.attached_class) + end + def self.new( + # Valid deliverable address (no PO boxes). + address1:, + # Name of city. + city:, + # Valid country code. Only USA is currently supported, entered in uppercase ISO + # 3166-1 alpha-3 three-character format. + country:, + # Valid postal code. Only USA ZIP codes are currently supported, entered as a + # five-digit ZIP or nine-digit ZIP+4. + postal_code:, + # Valid state code. Only USA state codes are currently supported, entered in + # uppercase ISO 3166-2 two-character format. + state:, + # Unit or apartment number (if applicable). + address2: nil + ) + end + + sig do + override.returns( + { + address1: String, + city: String, + country: String, + postal_code: String, + state: String, + address2: String + } + ) + end + def to_hash + end + end + + # The type of entity to create on the account holder + module Type + extend Lithic::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all(Symbol, Lithic::AccountHolders::EntityCreateParams::Type) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + BENEFICIAL_OWNER_INDIVIDUAL = + T.let( + :BENEFICIAL_OWNER_INDIVIDUAL, + Lithic::AccountHolders::EntityCreateParams::Type::TaggedSymbol + ) + CONTROL_PERSON = + T.let( + :CONTROL_PERSON, + Lithic::AccountHolders::EntityCreateParams::Type::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Lithic::AccountHolders::EntityCreateParams::Type::TaggedSymbol + ] + ) + end + def self.values + end + end + end + end + end +end diff --git a/rbi/lithic/models/account_holders/entity_create_response.rbi b/rbi/lithic/models/account_holders/entity_create_response.rbi new file mode 100644 index 00000000..59f33de3 --- /dev/null +++ b/rbi/lithic/models/account_holders/entity_create_response.rbi @@ -0,0 +1,292 @@ +# typed: strong + +module Lithic + module Models + module AccountHolders + class EntityCreateResponse < Lithic::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Lithic::Models::AccountHolders::EntityCreateResponse, + Lithic::Internal::AnyHash + ) + end + + # Globally unique identifier for the entity + sig { returns(String) } + attr_accessor :token + + # Globally unique identifier for the account holder + sig { returns(String) } + attr_accessor :account_holder_token + + # Timestamp of when the entity was created + sig { returns(Time) } + attr_accessor :created + + # A list of documents required for the entity to be approved + sig { returns(T::Array[Lithic::RequiredDocument]) } + attr_accessor :required_documents + + # Entity verification status + sig do + returns( + Lithic::Models::AccountHolders::EntityCreateResponse::Status::TaggedSymbol + ) + end + attr_accessor :status + + # Reason for the evaluation status + sig do + returns( + T::Array[ + Lithic::Models::AccountHolders::EntityCreateResponse::StatusReason::TaggedSymbol + ] + ) + end + attr_accessor :status_reasons + + # Response body for creating a new beneficial owner or replacing the control + # person entity on an existing KYB account holder. + sig do + params( + token: String, + account_holder_token: String, + created: Time, + required_documents: T::Array[Lithic::RequiredDocument::OrHash], + status: + Lithic::Models::AccountHolders::EntityCreateResponse::Status::OrSymbol, + status_reasons: + T::Array[ + Lithic::Models::AccountHolders::EntityCreateResponse::StatusReason::OrSymbol + ] + ).returns(T.attached_class) + end + def self.new( + # Globally unique identifier for the entity + token:, + # Globally unique identifier for the account holder + account_holder_token:, + # Timestamp of when the entity was created + created:, + # A list of documents required for the entity to be approved + required_documents:, + # Entity verification status + status:, + # Reason for the evaluation status + status_reasons: + ) + end + + sig do + override.returns( + { + token: String, + account_holder_token: String, + created: Time, + required_documents: T::Array[Lithic::RequiredDocument], + status: + Lithic::Models::AccountHolders::EntityCreateResponse::Status::TaggedSymbol, + status_reasons: + T::Array[ + Lithic::Models::AccountHolders::EntityCreateResponse::StatusReason::TaggedSymbol + ] + } + ) + end + def to_hash + end + + # Entity verification status + module Status + extend Lithic::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all( + Symbol, + Lithic::Models::AccountHolders::EntityCreateResponse::Status + ) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + ACCEPTED = + T.let( + :ACCEPTED, + Lithic::Models::AccountHolders::EntityCreateResponse::Status::TaggedSymbol + ) + INACTIVE = + T.let( + :INACTIVE, + Lithic::Models::AccountHolders::EntityCreateResponse::Status::TaggedSymbol + ) + PENDING_REVIEW = + T.let( + :PENDING_REVIEW, + Lithic::Models::AccountHolders::EntityCreateResponse::Status::TaggedSymbol + ) + REJECTED = + T.let( + :REJECTED, + Lithic::Models::AccountHolders::EntityCreateResponse::Status::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Lithic::Models::AccountHolders::EntityCreateResponse::Status::TaggedSymbol + ] + ) + end + def self.values + end + end + + # Status Reasons for KYC/KYB enrollment states + module StatusReason + extend Lithic::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all( + Symbol, + Lithic::Models::AccountHolders::EntityCreateResponse::StatusReason + ) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + ADDRESS_VERIFICATION_FAILURE = + T.let( + :ADDRESS_VERIFICATION_FAILURE, + Lithic::Models::AccountHolders::EntityCreateResponse::StatusReason::TaggedSymbol + ) + AGE_THRESHOLD_FAILURE = + T.let( + :AGE_THRESHOLD_FAILURE, + Lithic::Models::AccountHolders::EntityCreateResponse::StatusReason::TaggedSymbol + ) + COMPLETE_VERIFICATION_FAILURE = + T.let( + :COMPLETE_VERIFICATION_FAILURE, + Lithic::Models::AccountHolders::EntityCreateResponse::StatusReason::TaggedSymbol + ) + DOB_VERIFICATION_FAILURE = + T.let( + :DOB_VERIFICATION_FAILURE, + Lithic::Models::AccountHolders::EntityCreateResponse::StatusReason::TaggedSymbol + ) + ID_VERIFICATION_FAILURE = + T.let( + :ID_VERIFICATION_FAILURE, + Lithic::Models::AccountHolders::EntityCreateResponse::StatusReason::TaggedSymbol + ) + MAX_DOCUMENT_ATTEMPTS = + T.let( + :MAX_DOCUMENT_ATTEMPTS, + Lithic::Models::AccountHolders::EntityCreateResponse::StatusReason::TaggedSymbol + ) + MAX_RESUBMISSION_ATTEMPTS = + T.let( + :MAX_RESUBMISSION_ATTEMPTS, + Lithic::Models::AccountHolders::EntityCreateResponse::StatusReason::TaggedSymbol + ) + NAME_VERIFICATION_FAILURE = + T.let( + :NAME_VERIFICATION_FAILURE, + Lithic::Models::AccountHolders::EntityCreateResponse::StatusReason::TaggedSymbol + ) + OTHER_VERIFICATION_FAILURE = + T.let( + :OTHER_VERIFICATION_FAILURE, + Lithic::Models::AccountHolders::EntityCreateResponse::StatusReason::TaggedSymbol + ) + RISK_THRESHOLD_FAILURE = + T.let( + :RISK_THRESHOLD_FAILURE, + Lithic::Models::AccountHolders::EntityCreateResponse::StatusReason::TaggedSymbol + ) + WATCHLIST_ALERT_FAILURE = + T.let( + :WATCHLIST_ALERT_FAILURE, + Lithic::Models::AccountHolders::EntityCreateResponse::StatusReason::TaggedSymbol + ) + PRIMARY_BUSINESS_ENTITY_ID_VERIFICATION_FAILURE = + T.let( + :PRIMARY_BUSINESS_ENTITY_ID_VERIFICATION_FAILURE, + Lithic::Models::AccountHolders::EntityCreateResponse::StatusReason::TaggedSymbol + ) + PRIMARY_BUSINESS_ENTITY_ADDRESS_VERIFICATION_FAILURE = + T.let( + :PRIMARY_BUSINESS_ENTITY_ADDRESS_VERIFICATION_FAILURE, + Lithic::Models::AccountHolders::EntityCreateResponse::StatusReason::TaggedSymbol + ) + PRIMARY_BUSINESS_ENTITY_NAME_VERIFICATION_FAILURE = + T.let( + :PRIMARY_BUSINESS_ENTITY_NAME_VERIFICATION_FAILURE, + Lithic::Models::AccountHolders::EntityCreateResponse::StatusReason::TaggedSymbol + ) + PRIMARY_BUSINESS_ENTITY_BUSINESS_OFFICERS_NOT_MATCHED = + T.let( + :PRIMARY_BUSINESS_ENTITY_BUSINESS_OFFICERS_NOT_MATCHED, + Lithic::Models::AccountHolders::EntityCreateResponse::StatusReason::TaggedSymbol + ) + PRIMARY_BUSINESS_ENTITY_SOS_FILING_INACTIVE = + T.let( + :PRIMARY_BUSINESS_ENTITY_SOS_FILING_INACTIVE, + Lithic::Models::AccountHolders::EntityCreateResponse::StatusReason::TaggedSymbol + ) + PRIMARY_BUSINESS_ENTITY_SOS_NOT_MATCHED = + T.let( + :PRIMARY_BUSINESS_ENTITY_SOS_NOT_MATCHED, + Lithic::Models::AccountHolders::EntityCreateResponse::StatusReason::TaggedSymbol + ) + PRIMARY_BUSINESS_ENTITY_CMRA_FAILURE = + T.let( + :PRIMARY_BUSINESS_ENTITY_CMRA_FAILURE, + Lithic::Models::AccountHolders::EntityCreateResponse::StatusReason::TaggedSymbol + ) + PRIMARY_BUSINESS_ENTITY_WATCHLIST_FAILURE = + T.let( + :PRIMARY_BUSINESS_ENTITY_WATCHLIST_FAILURE, + Lithic::Models::AccountHolders::EntityCreateResponse::StatusReason::TaggedSymbol + ) + PRIMARY_BUSINESS_ENTITY_REGISTERED_AGENT_FAILURE = + T.let( + :PRIMARY_BUSINESS_ENTITY_REGISTERED_AGENT_FAILURE, + Lithic::Models::AccountHolders::EntityCreateResponse::StatusReason::TaggedSymbol + ) + CONTROL_PERSON_BLOCKLIST_ALERT_FAILURE = + T.let( + :CONTROL_PERSON_BLOCKLIST_ALERT_FAILURE, + Lithic::Models::AccountHolders::EntityCreateResponse::StatusReason::TaggedSymbol + ) + CONTROL_PERSON_ID_VERIFICATION_FAILURE = + T.let( + :CONTROL_PERSON_ID_VERIFICATION_FAILURE, + Lithic::Models::AccountHolders::EntityCreateResponse::StatusReason::TaggedSymbol + ) + CONTROL_PERSON_DOB_VERIFICATION_FAILURE = + T.let( + :CONTROL_PERSON_DOB_VERIFICATION_FAILURE, + Lithic::Models::AccountHolders::EntityCreateResponse::StatusReason::TaggedSymbol + ) + CONTROL_PERSON_NAME_VERIFICATION_FAILURE = + T.let( + :CONTROL_PERSON_NAME_VERIFICATION_FAILURE, + Lithic::Models::AccountHolders::EntityCreateResponse::StatusReason::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Lithic::Models::AccountHolders::EntityCreateResponse::StatusReason::TaggedSymbol + ] + ) + end + def self.values + end + end + end + end + end +end diff --git a/rbi/lithic/models/account_holders/entity_delete_params.rbi b/rbi/lithic/models/account_holders/entity_delete_params.rbi new file mode 100644 index 00000000..c8b5dd32 --- /dev/null +++ b/rbi/lithic/models/account_holders/entity_delete_params.rbi @@ -0,0 +1,43 @@ +# typed: strong + +module Lithic + module Models + module AccountHolders + class EntityDeleteParams < Lithic::Internal::Type::BaseModel + extend Lithic::Internal::Type::RequestParameters::Converter + include Lithic::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Lithic::AccountHolders::EntityDeleteParams, + Lithic::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :account_holder_token + + sig do + params( + account_holder_token: String, + request_options: Lithic::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(account_holder_token:, request_options: {}) + end + + sig do + override.returns( + { + account_holder_token: String, + request_options: Lithic::RequestOptions + } + ) + end + def to_hash + end + end + end + end +end diff --git a/rbi/lithic/models/auth_rules/auth_rule.rbi b/rbi/lithic/models/auth_rules/auth_rule.rbi index 0967448e..c3ab200e 100644 --- a/rbi/lithic/models/auth_rules/auth_rule.rbi +++ b/rbi/lithic/models/auth_rules/auth_rule.rbi @@ -75,7 +75,8 @@ module Lithic # several event streams, the effective one is defined by the separate # `event_stream` field. # - # - `CONDITIONAL_BLOCK`: AUTHORIZATION event stream. + # - `CONDITIONAL_BLOCK`: Deprecated. Use `CONDITIONAL_ACTION` instead. + # AUTHORIZATION event stream. # - `VELOCITY_LIMIT`: AUTHORIZATION event stream. # - `MERCHANT_LOCK`: AUTHORIZATION event stream. # - `CONDITIONAL_ACTION`: AUTHORIZATION, THREE_DS_AUTHENTICATION, TOKENIZATION, @@ -136,7 +137,8 @@ module Lithic # several event streams, the effective one is defined by the separate # `event_stream` field. # - # - `CONDITIONAL_BLOCK`: AUTHORIZATION event stream. + # - `CONDITIONAL_BLOCK`: Deprecated. Use `CONDITIONAL_ACTION` instead. + # AUTHORIZATION event stream. # - `VELOCITY_LIMIT`: AUTHORIZATION event stream. # - `MERCHANT_LOCK`: AUTHORIZATION event stream. # - `CONDITIONAL_ACTION`: AUTHORIZATION, THREE_DS_AUTHENTICATION, TOKENIZATION, @@ -372,7 +374,8 @@ module Lithic # several event streams, the effective one is defined by the separate # `event_stream` field. # - # - `CONDITIONAL_BLOCK`: AUTHORIZATION event stream. + # - `CONDITIONAL_BLOCK`: Deprecated. Use `CONDITIONAL_ACTION` instead. + # AUTHORIZATION event stream. # - `VELOCITY_LIMIT`: AUTHORIZATION event stream. # - `MERCHANT_LOCK`: AUTHORIZATION event stream. # - `CONDITIONAL_ACTION`: AUTHORIZATION, THREE_DS_AUTHENTICATION, TOKENIZATION, diff --git a/rbi/lithic/models/auth_rules/conditional_block_parameters.rbi b/rbi/lithic/models/auth_rules/conditional_block_parameters.rbi index 63481624..72f4885a 100644 --- a/rbi/lithic/models/auth_rules/conditional_block_parameters.rbi +++ b/rbi/lithic/models/auth_rules/conditional_block_parameters.rbi @@ -15,6 +15,7 @@ module Lithic sig { returns(T::Array[Lithic::AuthRules::AuthRuleCondition]) } attr_accessor :conditions + # Deprecated: Use CONDITIONAL_ACTION instead. sig do params( conditions: T::Array[Lithic::AuthRules::AuthRuleCondition::OrHash] diff --git a/rbi/lithic/models/auth_rules/v2_create_params.rbi b/rbi/lithic/models/auth_rules/v2_create_params.rbi index b629de3f..da048ad0 100644 --- a/rbi/lithic/models/auth_rules/v2_create_params.rbi +++ b/rbi/lithic/models/auth_rules/v2_create_params.rbi @@ -33,7 +33,8 @@ module Lithic # several event streams, the effective one is defined by the separate # `event_stream` field. # - # - `CONDITIONAL_BLOCK`: AUTHORIZATION event stream. + # - `CONDITIONAL_BLOCK`: Deprecated. Use `CONDITIONAL_ACTION` instead. + # AUTHORIZATION event stream. # - `VELOCITY_LIMIT`: AUTHORIZATION event stream. # - `MERCHANT_LOCK`: AUTHORIZATION event stream. # - `CONDITIONAL_ACTION`: AUTHORIZATION, THREE_DS_AUTHENTICATION, TOKENIZATION, @@ -114,7 +115,8 @@ module Lithic # several event streams, the effective one is defined by the separate # `event_stream` field. # - # - `CONDITIONAL_BLOCK`: AUTHORIZATION event stream. + # - `CONDITIONAL_BLOCK`: Deprecated. Use `CONDITIONAL_ACTION` instead. + # AUTHORIZATION event stream. # - `VELOCITY_LIMIT`: AUTHORIZATION event stream. # - `MERCHANT_LOCK`: AUTHORIZATION event stream. # - `CONDITIONAL_ACTION`: AUTHORIZATION, THREE_DS_AUTHENTICATION, TOKENIZATION, @@ -197,7 +199,8 @@ module Lithic # several event streams, the effective one is defined by the separate # `event_stream` field. # - # - `CONDITIONAL_BLOCK`: AUTHORIZATION event stream. + # - `CONDITIONAL_BLOCK`: Deprecated. Use `CONDITIONAL_ACTION` instead. + # AUTHORIZATION event stream. # - `VELOCITY_LIMIT`: AUTHORIZATION event stream. # - `MERCHANT_LOCK`: AUTHORIZATION event stream. # - `CONDITIONAL_ACTION`: AUTHORIZATION, THREE_DS_AUTHENTICATION, TOKENIZATION, diff --git a/rbi/lithic/models/digital_wallet_tokenization_approval_request_webhook_event.rbi b/rbi/lithic/models/digital_wallet_tokenization_approval_request_webhook_event.rbi index 5cbc69fe..38ee1025 100644 --- a/rbi/lithic/models/digital_wallet_tokenization_approval_request_webhook_event.rbi +++ b/rbi/lithic/models/digital_wallet_tokenization_approval_request_webhook_event.rbi @@ -43,6 +43,17 @@ module Lithic end attr_writer :customer_tokenization_decision + # Contains the metadata for the digital wallet being tokenized. + sig { returns(Lithic::TokenMetadata) } + attr_reader :digital_wallet_token_metadata + + sig do + params( + digital_wallet_token_metadata: Lithic::TokenMetadata::OrHash + ).void + end + attr_writer :digital_wallet_token_metadata + # The name of this event sig do returns( @@ -88,18 +99,6 @@ module Lithic sig { params(device: Lithic::Device::OrHash).void } attr_writer :device - # Contains the metadata for the digital wallet being tokenized. - sig { returns(T.nilable(Lithic::DigitalWalletTokenMetadata)) } - attr_reader :digital_wallet_token_metadata - - sig do - params( - digital_wallet_token_metadata: - Lithic::DigitalWalletTokenMetadata::OrHash - ).void - end - attr_writer :digital_wallet_token_metadata - # Results from rules that were evaluated for this tokenization sig { returns(T.nilable(T::Array[Lithic::TokenizationRuleResult])) } attr_reader :rule_results @@ -170,6 +169,7 @@ module Lithic T.nilable( Lithic::DigitalWalletTokenizationApprovalRequestWebhookEvent::CustomerTokenizationDecision::OrHash ), + digital_wallet_token_metadata: Lithic::TokenMetadata::OrHash, event_type: Lithic::DigitalWalletTokenizationApprovalRequestWebhookEvent::EventType::OrSymbol, issuer_decision: @@ -179,8 +179,6 @@ module Lithic tokenization_token: String, wallet_decisioning_info: Lithic::WalletDecisioningInfo::OrHash, device: Lithic::Device::OrHash, - digital_wallet_token_metadata: - Lithic::DigitalWalletTokenMetadata::OrHash, rule_results: T::Array[Lithic::TokenizationRuleResult::OrHash], tokenization_decline_reasons: T::Array[Lithic::TokenizationDeclineReason::OrSymbol], @@ -199,6 +197,8 @@ module Lithic created:, # Contains the metadata for the customer tokenization decision. customer_tokenization_decision:, + # Contains the metadata for the digital wallet being tokenized. + digital_wallet_token_metadata:, # The name of this event event_type:, # Whether Lithic decisioned on the token, and if so, what the decision was. @@ -210,8 +210,6 @@ module Lithic tokenization_token:, wallet_decisioning_info:, device: nil, - # Contains the metadata for the digital wallet being tokenized. - digital_wallet_token_metadata: nil, # Results from rules that were evaluated for this tokenization rule_results: nil, # List of reasons why the tokenization was declined @@ -233,6 +231,7 @@ module Lithic T.nilable( Lithic::DigitalWalletTokenizationApprovalRequestWebhookEvent::CustomerTokenizationDecision ), + digital_wallet_token_metadata: Lithic::TokenMetadata, event_type: Lithic::DigitalWalletTokenizationApprovalRequestWebhookEvent::EventType::TaggedSymbol, issuer_decision: @@ -242,7 +241,6 @@ module Lithic tokenization_token: String, wallet_decisioning_info: Lithic::WalletDecisioningInfo, device: Lithic::Device, - digital_wallet_token_metadata: Lithic::DigitalWalletTokenMetadata, rule_results: T::Array[Lithic::TokenizationRuleResult], tokenization_decline_reasons: T::Array[Lithic::TokenizationDeclineReason::TaggedSymbol], diff --git a/rbi/lithic/models/financial_account.rbi b/rbi/lithic/models/financial_account.rbi index 52255039..2b6211dd 100644 --- a/rbi/lithic/models/financial_account.rbi +++ b/rbi/lithic/models/financial_account.rbi @@ -292,6 +292,11 @@ module Lithic ) DELINQUENT = T.let(:DELINQUENT, Lithic::FinancialAccount::Substatus::TaggedSymbol) + INTEREST_AND_FEES_PAUSED = + T.let( + :INTEREST_AND_FEES_PAUSED, + Lithic::FinancialAccount::Substatus::TaggedSymbol + ) sig do override.returns( diff --git a/rbi/lithic/models/financial_account_update_status_params.rbi b/rbi/lithic/models/financial_account_update_status_params.rbi index 82edfd94..98c1a269 100644 --- a/rbi/lithic/models/financial_account_update_status_params.rbi +++ b/rbi/lithic/models/financial_account_update_status_params.rbi @@ -148,6 +148,11 @@ module Lithic :CHARGED_OFF_DELINQUENT, Lithic::FinancialAccountUpdateStatusParams::Substatus::TaggedSymbol ) + INTEREST_AND_FEES_PAUSED = + T.let( + :INTEREST_AND_FEES_PAUSED, + Lithic::FinancialAccountUpdateStatusParams::Substatus::TaggedSymbol + ) sig do override.returns( diff --git a/rbi/lithic/models/financial_accounts/category_tier.rbi b/rbi/lithic/models/financial_accounts/category_tier.rbi new file mode 100644 index 00000000..70c28381 --- /dev/null +++ b/rbi/lithic/models/financial_accounts/category_tier.rbi @@ -0,0 +1,45 @@ +# typed: strong + +module Lithic + module Models + module FinancialAccounts + class CategoryTier < Lithic::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Lithic::FinancialAccounts::CategoryTier, + Lithic::Internal::AnyHash + ) + end + + # Maximum interest rate for this category, e.g. '0.0525' for 5.25% + sig { returns(T.nilable(String)) } + attr_reader :cap_rate + + sig { params(cap_rate: String).void } + attr_writer :cap_rate + + # Interest rate for this category, e.g. '0.0525' for 5.25% + sig { returns(T.nilable(String)) } + attr_reader :rate + + sig { params(rate: String).void } + attr_writer :rate + + # Rate and rate cap for interest on a category + sig { params(cap_rate: String, rate: String).returns(T.attached_class) } + def self.new( + # Maximum interest rate for this category, e.g. '0.0525' for 5.25% + cap_rate: nil, + # Interest rate for this category, e.g. '0.0525' for 5.25% + rate: nil + ) + end + + sig { override.returns({ cap_rate: String, rate: String }) } + def to_hash + end + end + end + end +end diff --git a/rbi/lithic/models/financial_accounts/interest_tier_schedule.rbi b/rbi/lithic/models/financial_accounts/interest_tier_schedule.rbi new file mode 100644 index 00000000..f9c3d742 --- /dev/null +++ b/rbi/lithic/models/financial_accounts/interest_tier_schedule.rbi @@ -0,0 +1,75 @@ +# typed: strong + +module Lithic + module Models + module FinancialAccounts + class FinancialAccountsInterestTierSchedule < Lithic::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Lithic::FinancialAccounts::FinancialAccountsInterestTierSchedule, + Lithic::Internal::AnyHash + ) + end + + # Globally unique identifier for a credit product + sig { returns(String) } + attr_accessor :credit_product_token + + # Date the tier should be effective in YYYY-MM-DD format + sig { returns(Date) } + attr_accessor :effective_date + + # Name of a tier contained in the credit product. Mutually exclusive with + # tier_rates + sig { returns(T.nilable(String)) } + attr_reader :tier_name + + sig { params(tier_name: String).void } + attr_writer :tier_name + + # Custom rates per category. Mutually exclusive with tier_name + sig { returns(T.nilable(T.anything)) } + attr_reader :tier_rates + + sig { params(tier_rates: T.anything).void } + attr_writer :tier_rates + + # Entry in the Tier Schedule of an account + sig do + params( + credit_product_token: String, + effective_date: Date, + tier_name: String, + tier_rates: T.anything + ).returns(T.attached_class) + end + def self.new( + # Globally unique identifier for a credit product + credit_product_token:, + # Date the tier should be effective in YYYY-MM-DD format + effective_date:, + # Name of a tier contained in the credit product. Mutually exclusive with + # tier_rates + tier_name: nil, + # Custom rates per category. Mutually exclusive with tier_name + tier_rates: nil + ) + end + + sig do + override.returns( + { + credit_product_token: String, + effective_date: Date, + tier_name: String, + tier_rates: T.anything + } + ) + end + def to_hash + end + end + end + end +end diff --git a/rbi/lithic/models/financial_accounts/interest_tier_schedule_create_params.rbi b/rbi/lithic/models/financial_accounts/interest_tier_schedule_create_params.rbi new file mode 100644 index 00000000..15e8b265 --- /dev/null +++ b/rbi/lithic/models/financial_accounts/interest_tier_schedule_create_params.rbi @@ -0,0 +1,32 @@ +# typed: strong + +module Lithic + module Models + module FinancialAccounts + class InterestTierScheduleCreateParams < Lithic::Models::FinancialAccounts::FinancialAccountsInterestTierSchedule + extend Lithic::Internal::Type::RequestParameters::Converter + include Lithic::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Lithic::FinancialAccounts::InterestTierScheduleCreateParams, + Lithic::Internal::AnyHash + ) + end + + sig do + params(request_options: Lithic::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Lithic::RequestOptions }) } + def to_hash + end + end + end + end +end diff --git a/rbi/lithic/models/financial_accounts/interest_tier_schedule_delete_params.rbi b/rbi/lithic/models/financial_accounts/interest_tier_schedule_delete_params.rbi new file mode 100644 index 00000000..73abf0d6 --- /dev/null +++ b/rbi/lithic/models/financial_accounts/interest_tier_schedule_delete_params.rbi @@ -0,0 +1,43 @@ +# typed: strong + +module Lithic + module Models + module FinancialAccounts + class InterestTierScheduleDeleteParams < Lithic::Internal::Type::BaseModel + extend Lithic::Internal::Type::RequestParameters::Converter + include Lithic::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Lithic::FinancialAccounts::InterestTierScheduleDeleteParams, + Lithic::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :financial_account_token + + sig do + params( + financial_account_token: String, + request_options: Lithic::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(financial_account_token:, request_options: {}) + end + + sig do + override.returns( + { + financial_account_token: String, + request_options: Lithic::RequestOptions + } + ) + end + def to_hash + end + end + end + end +end diff --git a/rbi/lithic/models/financial_accounts/interest_tier_schedule_list_params.rbi b/rbi/lithic/models/financial_accounts/interest_tier_schedule_list_params.rbi new file mode 100644 index 00000000..9482aa64 --- /dev/null +++ b/rbi/lithic/models/financial_accounts/interest_tier_schedule_list_params.rbi @@ -0,0 +1,73 @@ +# typed: strong + +module Lithic + module Models + module FinancialAccounts + class InterestTierScheduleListParams < Lithic::Internal::Type::BaseModel + extend Lithic::Internal::Type::RequestParameters::Converter + include Lithic::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Lithic::FinancialAccounts::InterestTierScheduleListParams, + Lithic::Internal::AnyHash + ) + end + + # Return schedules with effective_date >= after_date (ISO format YYYY-MM-DD) + sig { returns(T.nilable(Date)) } + attr_reader :after_date + + sig { params(after_date: Date).void } + attr_writer :after_date + + # Return schedules with effective_date <= before_date (ISO format YYYY-MM-DD) + sig { returns(T.nilable(Date)) } + attr_reader :before_date + + sig { params(before_date: Date).void } + attr_writer :before_date + + # Return schedule with effective_date == for_date (ISO format YYYY-MM-DD) + sig { returns(T.nilable(Date)) } + attr_reader :for_date + + sig { params(for_date: Date).void } + attr_writer :for_date + + sig do + params( + after_date: Date, + before_date: Date, + for_date: Date, + request_options: Lithic::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + # Return schedules with effective_date >= after_date (ISO format YYYY-MM-DD) + after_date: nil, + # Return schedules with effective_date <= before_date (ISO format YYYY-MM-DD) + before_date: nil, + # Return schedule with effective_date == for_date (ISO format YYYY-MM-DD) + for_date: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + after_date: Date, + before_date: Date, + for_date: Date, + request_options: Lithic::RequestOptions + } + ) + end + def to_hash + end + end + end + end +end diff --git a/rbi/lithic/models/financial_accounts/interest_tier_schedule_retrieve_params.rbi b/rbi/lithic/models/financial_accounts/interest_tier_schedule_retrieve_params.rbi new file mode 100644 index 00000000..fe292f2a --- /dev/null +++ b/rbi/lithic/models/financial_accounts/interest_tier_schedule_retrieve_params.rbi @@ -0,0 +1,43 @@ +# typed: strong + +module Lithic + module Models + module FinancialAccounts + class InterestTierScheduleRetrieveParams < Lithic::Internal::Type::BaseModel + extend Lithic::Internal::Type::RequestParameters::Converter + include Lithic::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Lithic::FinancialAccounts::InterestTierScheduleRetrieveParams, + Lithic::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :financial_account_token + + sig do + params( + financial_account_token: String, + request_options: Lithic::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(financial_account_token:, request_options: {}) + end + + sig do + override.returns( + { + financial_account_token: String, + request_options: Lithic::RequestOptions + } + ) + end + def to_hash + end + end + end + end +end diff --git a/rbi/lithic/models/financial_accounts/interest_tier_schedule_update_params.rbi b/rbi/lithic/models/financial_accounts/interest_tier_schedule_update_params.rbi new file mode 100644 index 00000000..a753c700 --- /dev/null +++ b/rbi/lithic/models/financial_accounts/interest_tier_schedule_update_params.rbi @@ -0,0 +1,70 @@ +# typed: strong + +module Lithic + module Models + module FinancialAccounts + class InterestTierScheduleUpdateParams < Lithic::Internal::Type::BaseModel + extend Lithic::Internal::Type::RequestParameters::Converter + include Lithic::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Lithic::FinancialAccounts::InterestTierScheduleUpdateParams, + Lithic::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :financial_account_token + + # Name of a tier contained in the credit product. Mutually exclusive with + # tier_rates + sig { returns(T.nilable(String)) } + attr_reader :tier_name + + sig { params(tier_name: String).void } + attr_writer :tier_name + + # Custom rates per category. Mutually exclusive with tier_name + sig { returns(T.nilable(T.anything)) } + attr_reader :tier_rates + + sig { params(tier_rates: T.anything).void } + attr_writer :tier_rates + + sig do + params( + financial_account_token: String, + tier_name: String, + tier_rates: T.anything, + request_options: Lithic::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + financial_account_token:, + # Name of a tier contained in the credit product. Mutually exclusive with + # tier_rates + tier_name: nil, + # Custom rates per category. Mutually exclusive with tier_name + tier_rates: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + financial_account_token: String, + tier_name: String, + tier_rates: T.anything, + request_options: Lithic::RequestOptions + } + ) + end + def to_hash + end + end + end + end +end diff --git a/rbi/lithic/models/financial_accounts/loan_tape.rbi b/rbi/lithic/models/financial_accounts/loan_tape.rbi index c16c9221..7b44d44f 100644 --- a/rbi/lithic/models/financial_accounts/loan_tape.rbi +++ b/rbi/lithic/models/financial_accounts/loan_tape.rbi @@ -525,6 +525,11 @@ module Lithic :DELINQUENT, Lithic::FinancialAccounts::LoanTape::AccountStanding::FinancialAccountState::Substatus::TaggedSymbol ) + INTEREST_AND_FEES_PAUSED = + T.let( + :INTEREST_AND_FEES_PAUSED, + Lithic::FinancialAccounts::LoanTape::AccountStanding::FinancialAccountState::Substatus::TaggedSymbol + ) sig do override.returns( diff --git a/rbi/lithic/models/financial_accounts/loan_tape_configuration.rbi b/rbi/lithic/models/financial_accounts/loan_tape_configuration.rbi new file mode 100644 index 00000000..05eab93e --- /dev/null +++ b/rbi/lithic/models/financial_accounts/loan_tape_configuration.rbi @@ -0,0 +1,99 @@ +# typed: strong + +module Lithic + module Models + module FinancialAccounts + class FinancialAccountsLoanTapeConfiguration < Lithic::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Lithic::FinancialAccounts::FinancialAccountsLoanTapeConfiguration, + Lithic::Internal::AnyHash + ) + end + + sig { returns(Time) } + attr_accessor :created_at + + sig { returns(String) } + attr_accessor :financial_account_token + + sig { returns(String) } + attr_accessor :instance_token + + sig { returns(Time) } + attr_accessor :updated_at + + sig { returns(T.nilable(String)) } + attr_reader :credit_product_token + + sig { params(credit_product_token: String).void } + attr_writer :credit_product_token + + # Configuration for building loan tapes + sig do + returns( + T.nilable(Lithic::FinancialAccounts::LoanTapeRebuildConfiguration) + ) + end + attr_reader :loan_tape_rebuild_configuration + + sig do + params( + loan_tape_rebuild_configuration: + Lithic::FinancialAccounts::LoanTapeRebuildConfiguration::OrHash + ).void + end + attr_writer :loan_tape_rebuild_configuration + + sig { returns(T.nilable(Time)) } + attr_reader :tier_schedule_changed_at + + sig { params(tier_schedule_changed_at: Time).void } + attr_writer :tier_schedule_changed_at + + # Configuration for loan tapes + sig do + params( + created_at: Time, + financial_account_token: String, + instance_token: String, + updated_at: Time, + credit_product_token: String, + loan_tape_rebuild_configuration: + Lithic::FinancialAccounts::LoanTapeRebuildConfiguration::OrHash, + tier_schedule_changed_at: Time + ).returns(T.attached_class) + end + def self.new( + created_at:, + financial_account_token:, + instance_token:, + updated_at:, + credit_product_token: nil, + # Configuration for building loan tapes + loan_tape_rebuild_configuration: nil, + tier_schedule_changed_at: nil + ) + end + + sig do + override.returns( + { + created_at: Time, + financial_account_token: String, + instance_token: String, + updated_at: Time, + credit_product_token: String, + loan_tape_rebuild_configuration: + Lithic::FinancialAccounts::LoanTapeRebuildConfiguration, + tier_schedule_changed_at: Time + } + ) + end + def to_hash + end + end + end + end +end diff --git a/rbi/lithic/models/financial_accounts/loan_tape_configuration_retrieve_params.rbi b/rbi/lithic/models/financial_accounts/loan_tape_configuration_retrieve_params.rbi new file mode 100644 index 00000000..29bdd55c --- /dev/null +++ b/rbi/lithic/models/financial_accounts/loan_tape_configuration_retrieve_params.rbi @@ -0,0 +1,32 @@ +# typed: strong + +module Lithic + module Models + module FinancialAccounts + class LoanTapeConfigurationRetrieveParams < Lithic::Internal::Type::BaseModel + extend Lithic::Internal::Type::RequestParameters::Converter + include Lithic::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Lithic::FinancialAccounts::LoanTapeConfigurationRetrieveParams, + Lithic::Internal::AnyHash + ) + end + + sig do + params(request_options: Lithic::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Lithic::RequestOptions }) } + def to_hash + end + end + end + end +end diff --git a/rbi/lithic/models/financial_accounts/loan_tape_rebuild_configuration.rbi b/rbi/lithic/models/financial_accounts/loan_tape_rebuild_configuration.rbi new file mode 100644 index 00000000..ebbcb958 --- /dev/null +++ b/rbi/lithic/models/financial_accounts/loan_tape_rebuild_configuration.rbi @@ -0,0 +1,65 @@ +# typed: strong + +module Lithic + module Models + module FinancialAccounts + class LoanTapeRebuildConfiguration < Lithic::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Lithic::FinancialAccounts::LoanTapeRebuildConfiguration, + Lithic::Internal::AnyHash + ) + end + + # Whether the account's loan tapes need to be rebuilt or not + sig { returns(T::Boolean) } + attr_accessor :rebuild_needed + + # The date for which the account's loan tapes were last rebuilt + sig { returns(T.nilable(Date)) } + attr_reader :last_rebuild + + sig { params(last_rebuild: Date).void } + attr_writer :last_rebuild + + # Date from which to start rebuilding from if the account requires a rebuild + sig { returns(T.nilable(Date)) } + attr_reader :rebuild_from + + sig { params(rebuild_from: Date).void } + attr_writer :rebuild_from + + # Configuration for building loan tapes + sig do + params( + rebuild_needed: T::Boolean, + last_rebuild: Date, + rebuild_from: Date + ).returns(T.attached_class) + end + def self.new( + # Whether the account's loan tapes need to be rebuilt or not + rebuild_needed:, + # The date for which the account's loan tapes were last rebuilt + last_rebuild: nil, + # Date from which to start rebuilding from if the account requires a rebuild + rebuild_from: nil + ) + end + + sig do + override.returns( + { + rebuild_needed: T::Boolean, + last_rebuild: Date, + rebuild_from: Date + } + ) + end + def to_hash + end + end + end + end +end diff --git a/rbi/lithic/models/financial_accounts/statement.rbi b/rbi/lithic/models/financial_accounts/statement.rbi index bfd67029..f7cf45c9 100644 --- a/rbi/lithic/models/financial_accounts/statement.rbi +++ b/rbi/lithic/models/financial_accounts/statement.rbi @@ -520,6 +520,11 @@ module Lithic :DELINQUENT, Lithic::FinancialAccounts::Statement::AccountStanding::FinancialAccountState::Substatus::TaggedSymbol ) + INTEREST_AND_FEES_PAUSED = + T.let( + :INTEREST_AND_FEES_PAUSED, + Lithic::FinancialAccounts::Statement::AccountStanding::FinancialAccountState::Substatus::TaggedSymbol + ) sig do override.returns( diff --git a/rbi/lithic/models/digital_wallet_token_metadata.rbi b/rbi/lithic/models/token_metadata.rbi similarity index 73% rename from rbi/lithic/models/digital_wallet_token_metadata.rbi rename to rbi/lithic/models/token_metadata.rbi index db80faf5..5a51b2bb 100644 --- a/rbi/lithic/models/digital_wallet_token_metadata.rbi +++ b/rbi/lithic/models/token_metadata.rbi @@ -2,20 +2,18 @@ module Lithic module Models - class DigitalWalletTokenMetadata < Lithic::Internal::Type::BaseModel + class TokenMetadata < Lithic::Internal::Type::BaseModel OrHash = - T.type_alias do - T.any(Lithic::DigitalWalletTokenMetadata, Lithic::Internal::AnyHash) - end + T.type_alias { T.any(Lithic::TokenMetadata, Lithic::Internal::AnyHash) } # Contains the information of the account responsible for the payment. - sig { returns(Lithic::DigitalWalletTokenMetadata::PaymentAccountInfo) } + sig { returns(Lithic::TokenMetadata::PaymentAccountInfo) } attr_reader :payment_account_info sig do params( payment_account_info: - Lithic::DigitalWalletTokenMetadata::PaymentAccountInfo::OrHash + Lithic::TokenMetadata::PaymentAccountInfo::OrHash ).void end attr_writer :payment_account_info @@ -39,9 +37,7 @@ module Lithic # Human-readable name of the wallet that the token_requestor_id maps to. sig do returns( - T.nilable( - Lithic::DigitalWalletTokenMetadata::TokenRequestorName::TaggedSymbol - ) + T.nilable(Lithic::TokenMetadata::TokenRequestorName::TaggedSymbol) ) end attr_reader :token_requestor_name @@ -49,7 +45,7 @@ module Lithic sig do params( token_requestor_name: - Lithic::DigitalWalletTokenMetadata::TokenRequestorName::OrSymbol + Lithic::TokenMetadata::TokenRequestorName::OrSymbol ).void end attr_writer :token_requestor_name @@ -58,12 +54,12 @@ module Lithic sig do params( payment_account_info: - Lithic::DigitalWalletTokenMetadata::PaymentAccountInfo::OrHash, + Lithic::TokenMetadata::PaymentAccountInfo::OrHash, status: String, payment_app_instance_id: T.nilable(String), token_requestor_id: String, token_requestor_name: - Lithic::DigitalWalletTokenMetadata::TokenRequestorName::OrSymbol + Lithic::TokenMetadata::TokenRequestorName::OrSymbol ).returns(T.attached_class) end def self.new( @@ -84,13 +80,12 @@ module Lithic sig do override.returns( { - payment_account_info: - Lithic::DigitalWalletTokenMetadata::PaymentAccountInfo, + payment_account_info: Lithic::TokenMetadata::PaymentAccountInfo, status: String, payment_app_instance_id: T.nilable(String), token_requestor_id: String, token_requestor_name: - Lithic::DigitalWalletTokenMetadata::TokenRequestorName::TaggedSymbol + Lithic::TokenMetadata::TokenRequestorName::TaggedSymbol } ) end @@ -101,7 +96,7 @@ module Lithic OrHash = T.type_alias do T.any( - Lithic::DigitalWalletTokenMetadata::PaymentAccountInfo, + Lithic::TokenMetadata::PaymentAccountInfo, Lithic::Internal::AnyHash ) end @@ -109,16 +104,14 @@ module Lithic # Additional information that can be used to identify the account holder, such as # name, address, etc sig do - returns( - Lithic::DigitalWalletTokenMetadata::PaymentAccountInfo::AccountHolderData - ) + returns(Lithic::TokenMetadata::PaymentAccountInfo::AccountHolderData) end attr_reader :account_holder_data sig do params( account_holder_data: - Lithic::DigitalWalletTokenMetadata::PaymentAccountInfo::AccountHolderData::OrHash + Lithic::TokenMetadata::PaymentAccountInfo::AccountHolderData::OrHash ).void end attr_writer :account_holder_data @@ -140,7 +133,7 @@ module Lithic sig do params( account_holder_data: - Lithic::DigitalWalletTokenMetadata::PaymentAccountInfo::AccountHolderData::OrHash, + Lithic::TokenMetadata::PaymentAccountInfo::AccountHolderData::OrHash, pan_unique_reference: T.nilable(String), payment_account_reference: T.nilable(String), token_unique_reference: T.nilable(String) @@ -164,7 +157,7 @@ module Lithic override.returns( { account_holder_data: - Lithic::DigitalWalletTokenMetadata::PaymentAccountInfo::AccountHolderData, + Lithic::TokenMetadata::PaymentAccountInfo::AccountHolderData, pan_unique_reference: T.nilable(String), payment_account_reference: T.nilable(String), token_unique_reference: T.nilable(String) @@ -178,7 +171,7 @@ module Lithic OrHash = T.type_alias do T.any( - Lithic::DigitalWalletTokenMetadata::PaymentAccountInfo::AccountHolderData, + Lithic::TokenMetadata::PaymentAccountInfo::AccountHolderData, Lithic::Internal::AnyHash ) end @@ -212,74 +205,74 @@ module Lithic TaggedSymbol = T.type_alias do - T.all( - Symbol, - Lithic::DigitalWalletTokenMetadata::TokenRequestorName - ) + T.all(Symbol, Lithic::TokenMetadata::TokenRequestorName) end OrSymbol = T.type_alias { T.any(Symbol, String) } AMAZON_ONE = T.let( :AMAZON_ONE, - Lithic::DigitalWalletTokenMetadata::TokenRequestorName::TaggedSymbol + Lithic::TokenMetadata::TokenRequestorName::TaggedSymbol ) ANDROID_PAY = T.let( :ANDROID_PAY, - Lithic::DigitalWalletTokenMetadata::TokenRequestorName::TaggedSymbol + Lithic::TokenMetadata::TokenRequestorName::TaggedSymbol ) APPLE_PAY = T.let( :APPLE_PAY, - Lithic::DigitalWalletTokenMetadata::TokenRequestorName::TaggedSymbol + Lithic::TokenMetadata::TokenRequestorName::TaggedSymbol ) FACEBOOK = T.let( :FACEBOOK, - Lithic::DigitalWalletTokenMetadata::TokenRequestorName::TaggedSymbol + Lithic::TokenMetadata::TokenRequestorName::TaggedSymbol ) FITBIT_PAY = T.let( :FITBIT_PAY, - Lithic::DigitalWalletTokenMetadata::TokenRequestorName::TaggedSymbol + Lithic::TokenMetadata::TokenRequestorName::TaggedSymbol ) GARMIN_PAY = T.let( :GARMIN_PAY, - Lithic::DigitalWalletTokenMetadata::TokenRequestorName::TaggedSymbol + Lithic::TokenMetadata::TokenRequestorName::TaggedSymbol + ) + GOOGLE_PAY = + T.let( + :GOOGLE_PAY, + Lithic::TokenMetadata::TokenRequestorName::TaggedSymbol ) MICROSOFT_PAY = T.let( :MICROSOFT_PAY, - Lithic::DigitalWalletTokenMetadata::TokenRequestorName::TaggedSymbol + Lithic::TokenMetadata::TokenRequestorName::TaggedSymbol ) NETFLIX = T.let( :NETFLIX, - Lithic::DigitalWalletTokenMetadata::TokenRequestorName::TaggedSymbol + Lithic::TokenMetadata::TokenRequestorName::TaggedSymbol ) SAMSUNG_PAY = T.let( :SAMSUNG_PAY, - Lithic::DigitalWalletTokenMetadata::TokenRequestorName::TaggedSymbol + Lithic::TokenMetadata::TokenRequestorName::TaggedSymbol ) UNKNOWN = T.let( :UNKNOWN, - Lithic::DigitalWalletTokenMetadata::TokenRequestorName::TaggedSymbol + Lithic::TokenMetadata::TokenRequestorName::TaggedSymbol ) VISA_CHECKOUT = T.let( :VISA_CHECKOUT, - Lithic::DigitalWalletTokenMetadata::TokenRequestorName::TaggedSymbol + Lithic::TokenMetadata::TokenRequestorName::TaggedSymbol ) sig do override.returns( - T::Array[ - Lithic::DigitalWalletTokenMetadata::TokenRequestorName::TaggedSymbol - ] + T::Array[Lithic::TokenMetadata::TokenRequestorName::TaggedSymbol] ) end def self.values diff --git a/rbi/lithic/models/tokenization_approval_request_webhook_event.rbi b/rbi/lithic/models/tokenization_approval_request_webhook_event.rbi index f94ec837..dcc42788 100644 --- a/rbi/lithic/models/tokenization_approval_request_webhook_event.rbi +++ b/rbi/lithic/models/tokenization_approval_request_webhook_event.rbi @@ -60,6 +60,13 @@ module Lithic end attr_accessor :issuer_decision + # Contains the metadata for the digital wallet being tokenized. + sig { returns(Lithic::TokenMetadata) } + attr_reader :token_metadata + + sig { params(token_metadata: Lithic::TokenMetadata::OrHash).void } + attr_writer :token_metadata + # The channel through which the tokenization was made. sig do returns( @@ -88,18 +95,6 @@ module Lithic sig { params(device: Lithic::Device::OrHash).void } attr_writer :device - # Contains the metadata for the digital wallet being tokenized. - sig { returns(T.nilable(Lithic::DigitalWalletTokenMetadata)) } - attr_reader :digital_wallet_token_metadata - - sig do - params( - digital_wallet_token_metadata: - Lithic::DigitalWalletTokenMetadata::OrHash - ).void - end - attr_writer :digital_wallet_token_metadata - # Results from rules that were evaluated for this tokenization sig { returns(T.nilable(T::Array[Lithic::TokenizationRuleResult])) } attr_reader :rule_results @@ -174,13 +169,12 @@ module Lithic Lithic::TokenizationApprovalRequestWebhookEvent::EventType::OrSymbol, issuer_decision: Lithic::TokenizationApprovalRequestWebhookEvent::IssuerDecision::OrSymbol, + token_metadata: Lithic::TokenMetadata::OrHash, tokenization_channel: Lithic::TokenizationApprovalRequestWebhookEvent::TokenizationChannel::OrSymbol, tokenization_token: String, wallet_decisioning_info: Lithic::WalletDecisioningInfo::OrHash, device: Lithic::Device::OrHash, - digital_wallet_token_metadata: - Lithic::DigitalWalletTokenMetadata::OrHash, rule_results: T::Array[Lithic::TokenizationRuleResult::OrHash], tokenization_decline_reasons: T::Array[Lithic::TokenizationDeclineReason::OrSymbol], @@ -204,14 +198,14 @@ module Lithic # Whether Lithic decisioned on the token, and if so, what the decision was. # APPROVED/VERIFICATION_REQUIRED/DENIED. issuer_decision:, + # Contains the metadata for the digital wallet being tokenized. + token_metadata:, # The channel through which the tokenization was made. tokenization_channel:, # Unique identifier for the digital wallet token attempt tokenization_token:, wallet_decisioning_info:, device: nil, - # Contains the metadata for the digital wallet being tokenized. - digital_wallet_token_metadata: nil, # Results from rules that were evaluated for this tokenization rule_results: nil, # List of reasons why the tokenization was declined @@ -237,12 +231,12 @@ module Lithic Lithic::TokenizationApprovalRequestWebhookEvent::EventType::TaggedSymbol, issuer_decision: Lithic::TokenizationApprovalRequestWebhookEvent::IssuerDecision::TaggedSymbol, + token_metadata: Lithic::TokenMetadata, tokenization_channel: Lithic::TokenizationApprovalRequestWebhookEvent::TokenizationChannel::TaggedSymbol, tokenization_token: String, wallet_decisioning_info: Lithic::WalletDecisioningInfo, device: Lithic::Device, - digital_wallet_token_metadata: Lithic::DigitalWalletTokenMetadata, rule_results: T::Array[Lithic::TokenizationRuleResult], tokenization_decline_reasons: T::Array[Lithic::TokenizationDeclineReason::TaggedSymbol], diff --git a/rbi/lithic/models/tokenization_decisioning_request_webhook_event.rbi b/rbi/lithic/models/tokenization_decisioning_request_webhook_event.rbi index 90e45f3b..0c1ce2f4 100644 --- a/rbi/lithic/models/tokenization_decisioning_request_webhook_event.rbi +++ b/rbi/lithic/models/tokenization_decisioning_request_webhook_event.rbi @@ -23,6 +23,17 @@ module Lithic sig { returns(Time) } attr_accessor :created + # Contains the metadata for the digital wallet being tokenized. + sig { returns(Lithic::TokenMetadata) } + attr_reader :digital_wallet_token_metadata + + sig do + params( + digital_wallet_token_metadata: Lithic::TokenMetadata::OrHash + ).void + end + attr_writer :digital_wallet_token_metadata + # The name of this event sig do returns( @@ -68,18 +79,6 @@ module Lithic sig { params(device: Lithic::Device::OrHash).void } attr_writer :device - # Contains the metadata for the digital wallet being tokenized. - sig { returns(T.nilable(Lithic::DigitalWalletTokenMetadata)) } - attr_reader :digital_wallet_token_metadata - - sig do - params( - digital_wallet_token_metadata: - Lithic::DigitalWalletTokenMetadata::OrHash - ).void - end - attr_writer :digital_wallet_token_metadata - # The source of the tokenization. sig do returns( @@ -104,6 +103,7 @@ module Lithic account_token: String, card_token: String, created: Time, + digital_wallet_token_metadata: Lithic::TokenMetadata::OrHash, event_type: Lithic::TokenizationDecisioningRequestWebhookEvent::EventType::OrSymbol, issuer_decision: @@ -113,8 +113,6 @@ module Lithic tokenization_token: String, wallet_decisioning_info: Lithic::WalletDecisioningInfo::OrHash, device: Lithic::Device::OrHash, - digital_wallet_token_metadata: - Lithic::DigitalWalletTokenMetadata::OrHash, tokenization_source: Lithic::TokenizationDecisioningRequestWebhookEvent::TokenizationSource::OrSymbol ).returns(T.attached_class) @@ -126,6 +124,8 @@ module Lithic card_token:, # Indicate when the request was received from Mastercard or Visa created:, + # Contains the metadata for the digital wallet being tokenized. + digital_wallet_token_metadata:, # The name of this event event_type:, # Whether Lithic decisioned on the token, and if so, what the decision was. @@ -137,8 +137,6 @@ module Lithic tokenization_token:, wallet_decisioning_info:, device: nil, - # Contains the metadata for the digital wallet being tokenized. - digital_wallet_token_metadata: nil, # The source of the tokenization. tokenization_source: nil ) @@ -150,6 +148,7 @@ module Lithic account_token: String, card_token: String, created: Time, + digital_wallet_token_metadata: Lithic::TokenMetadata, event_type: Lithic::TokenizationDecisioningRequestWebhookEvent::EventType::TaggedSymbol, issuer_decision: @@ -159,7 +158,6 @@ module Lithic tokenization_token: String, wallet_decisioning_info: Lithic::WalletDecisioningInfo, device: Lithic::Device, - digital_wallet_token_metadata: Lithic::DigitalWalletTokenMetadata, tokenization_source: Lithic::TokenizationDecisioningRequestWebhookEvent::TokenizationSource::TaggedSymbol } diff --git a/rbi/lithic/resources/account_holders.rbi b/rbi/lithic/resources/account_holders.rbi index 04c8d74c..76136675 100644 --- a/rbi/lithic/resources/account_holders.rbi +++ b/rbi/lithic/resources/account_holders.rbi @@ -3,6 +3,9 @@ module Lithic module Resources class AccountHolders + sig { returns(Lithic::Resources::AccountHolders::Entities) } + attr_reader :entities + # Create an account holder and initiate the appropriate onboarding workflow. # Account holders and accounts have a 1:1 relationship. When an account holder is # successfully created an associated account is also created. All calls to this diff --git a/rbi/lithic/resources/account_holders/entities.rbi b/rbi/lithic/resources/account_holders/entities.rbi new file mode 100644 index 00000000..be313551 --- /dev/null +++ b/rbi/lithic/resources/account_holders/entities.rbi @@ -0,0 +1,80 @@ +# typed: strong + +module Lithic + module Resources + class AccountHolders + class Entities + # Create a new beneficial owner or replace the control person entity on an + # existing KYB account holder. This endpoint is only applicable for account + # holders enrolled through a KYB workflow with the Persona KYB provider. A new + # control person can only replace the existing one. A maximum of 4 beneficial + # owners can be associated with an account holder. + sig do + params( + account_holder_token: String, + address: + Lithic::AccountHolders::EntityCreateParams::Address::OrHash, + dob: String, + email: String, + first_name: String, + government_id: String, + last_name: String, + phone_number: String, + type: Lithic::AccountHolders::EntityCreateParams::Type::OrSymbol, + request_options: Lithic::RequestOptions::OrHash + ).returns(Lithic::Models::AccountHolders::EntityCreateResponse) + end + def create( + # Globally unique identifier for the account holder. + account_holder_token, + # Individual's current address - PO boxes, UPS drops, and FedEx drops are not + # acceptable; APO/FPO are acceptable. Only USA addresses are currently supported. + address:, + # Individual's date of birth, as an RFC 3339 date. + dob:, + # Individual's email address. If utilizing Lithic for chargeback processing, this + # customer email address may be used to communicate dispute status and resolution. + email:, + # Individual's first name, as it appears on government-issued identity documents. + first_name:, + # Government-issued identification number (required for identity verification and + # compliance with banking regulations). Social Security Numbers (SSN) and + # Individual Taxpayer Identification Numbers (ITIN) are currently supported, + # entered as full nine-digits, with or without hyphens + government_id:, + # Individual's last name, as it appears on government-issued identity documents. + last_name:, + # Individual's phone number, entered in E.164 format. + phone_number:, + # The type of entity to create on the account holder + type:, + request_options: {} + ) + end + + # Deactivate a beneficial owner entity on an existing KYB account holder. Only + # beneficial owner entities can be deactivated. + sig do + params( + entity_token: String, + account_holder_token: String, + request_options: Lithic::RequestOptions::OrHash + ).returns(Lithic::AccountHolders::AccountHolderEntity) + end + def delete( + # Globally unique identifier for the entity. + entity_token, + # Globally unique identifier for the account holder. + account_holder_token:, + request_options: {} + ) + end + + # @api private + sig { params(client: Lithic::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end + end +end diff --git a/rbi/lithic/resources/auth_rules/v2.rbi b/rbi/lithic/resources/auth_rules/v2.rbi index 47e222a0..54f637da 100644 --- a/rbi/lithic/resources/auth_rules/v2.rbi +++ b/rbi/lithic/resources/auth_rules/v2.rbi @@ -39,7 +39,8 @@ module Lithic # several event streams, the effective one is defined by the separate # `event_stream` field. # - # - `CONDITIONAL_BLOCK`: AUTHORIZATION event stream. + # - `CONDITIONAL_BLOCK`: Deprecated. Use `CONDITIONAL_ACTION` instead. + # AUTHORIZATION event stream. # - `VELOCITY_LIMIT`: AUTHORIZATION event stream. # - `MERCHANT_LOCK`: AUTHORIZATION event stream. # - `CONDITIONAL_ACTION`: AUTHORIZATION, THREE_DS_AUTHENTICATION, TOKENIZATION, diff --git a/rbi/lithic/resources/financial_accounts.rbi b/rbi/lithic/resources/financial_accounts.rbi index fddebdd4..bd89fe0a 100644 --- a/rbi/lithic/resources/financial_accounts.rbi +++ b/rbi/lithic/resources/financial_accounts.rbi @@ -20,6 +20,16 @@ module Lithic sig { returns(Lithic::Resources::FinancialAccounts::LoanTapes) } attr_reader :loan_tapes + sig do + returns(Lithic::Resources::FinancialAccounts::LoanTapeConfiguration) + end + attr_reader :loan_tape_configuration + + sig do + returns(Lithic::Resources::FinancialAccounts::InterestTierSchedule) + end + attr_reader :interest_tier_schedule + # Create a new financial account sig do params( diff --git a/rbi/lithic/resources/financial_accounts/interest_tier_schedule.rbi b/rbi/lithic/resources/financial_accounts/interest_tier_schedule.rbi new file mode 100644 index 00000000..22802042 --- /dev/null +++ b/rbi/lithic/resources/financial_accounts/interest_tier_schedule.rbi @@ -0,0 +1,156 @@ +# typed: strong + +module Lithic + module Resources + class FinancialAccounts + class InterestTierSchedule + # Create a new interest tier schedule entry for a supported financial account + sig do + params( + financial_account_token: String, + credit_product_token: String, + effective_date: Date, + tier_name: String, + tier_rates: T.anything, + request_options: Lithic::RequestOptions::OrHash + ).returns( + Lithic::FinancialAccounts::FinancialAccountsInterestTierSchedule + ) + end + def create( + # Globally unique identifier for financial account + financial_account_token, + # Globally unique identifier for a credit product + credit_product_token:, + # Date the tier should be effective in YYYY-MM-DD format + effective_date:, + # Name of a tier contained in the credit product. Mutually exclusive with + # tier_rates + tier_name: nil, + # Custom rates per category. Mutually exclusive with tier_name + tier_rates: nil, + request_options: {} + ) + end + + # Get a specific interest tier schedule by effective date + sig do + params( + effective_date: Date, + financial_account_token: String, + request_options: Lithic::RequestOptions::OrHash + ).returns( + Lithic::FinancialAccounts::FinancialAccountsInterestTierSchedule + ) + end + def retrieve( + # Effective date in ISO format (YYYY-MM-DD) + effective_date, + # Globally unique identifier for financial account + financial_account_token:, + request_options: {} + ) + end + + # Update an existing interest tier schedule + sig do + params( + effective_date: Date, + financial_account_token: String, + tier_name: String, + tier_rates: T.anything, + request_options: Lithic::RequestOptions::OrHash + ).returns( + Lithic::FinancialAccounts::FinancialAccountsInterestTierSchedule + ) + end + def update( + # Path param: Effective date in ISO format (YYYY-MM-DD) + effective_date, + # Path param: Globally unique identifier for financial account + financial_account_token:, + # Body param: Name of a tier contained in the credit product. Mutually exclusive + # with tier_rates + tier_name: nil, + # Body param: Custom rates per category. Mutually exclusive with tier_name + tier_rates: nil, + request_options: {} + ) + end + + # List interest tier schedules for a financial account with optional date + # filtering. + # + # If no date parameters are provided, returns all tier schedules. If date + # parameters are provided, uses filtering to return matching schedules (max 100). + # + # - for_date: Returns exact match (takes precedence over other dates) + # - before_date: Returns schedules with effective_date <= before_date + # - after_date: Returns schedules with effective_date >= after_date + # - Both before_date and after_date: Returns schedules in range + sig do + params( + financial_account_token: String, + after_date: Date, + before_date: Date, + for_date: Date, + request_options: Lithic::RequestOptions::OrHash + ).returns( + Lithic::Internal::SinglePage[ + Lithic::FinancialAccounts::FinancialAccountsInterestTierSchedule + ] + ) + end + def list( + # Globally unique identifier for financial account + financial_account_token, + # Return schedules with effective_date >= after_date (ISO format YYYY-MM-DD) + after_date: nil, + # Return schedules with effective_date <= before_date (ISO format YYYY-MM-DD) + before_date: nil, + # Return schedule with effective_date == for_date (ISO format YYYY-MM-DD) + for_date: nil, + request_options: {} + ) + end + + # Delete an interest tier schedule entry. + # + # Returns: + # + # - 400 Bad Request: Invalid effective_date format OR attempting to delete the + # earliest tier schedule entry for a non-PENDING account + # - 404 Not Found: Tier schedule entry not found for the given effective_date OR + # ledger account not found + # + # Note: PENDING accounts can delete the earliest tier schedule entry (account + # hasn't opened yet). Active/non-PENDING accounts cannot delete the earliest entry + # to prevent orphaning the account. + # + # If the deleted tier schedule has a past effective_date and the account is + # ACTIVE, the loan tape rebuild configuration will be updated to trigger rebuilds + # from that date. + sig do + params( + effective_date: Date, + financial_account_token: String, + request_options: Lithic::RequestOptions::OrHash + ).void + end + def delete( + # Effective date in ISO format (YYYY-MM-DD) + effective_date, + # Globally unique identifier for financial account + financial_account_token:, + request_options: {} + ) + end + + # @api private + sig { params(client: Lithic::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end + end +end diff --git a/rbi/lithic/resources/financial_accounts/loan_tape_configuration.rbi b/rbi/lithic/resources/financial_accounts/loan_tape_configuration.rbi new file mode 100644 index 00000000..6b32dc17 --- /dev/null +++ b/rbi/lithic/resources/financial_accounts/loan_tape_configuration.rbi @@ -0,0 +1,30 @@ +# typed: strong + +module Lithic + module Resources + class FinancialAccounts + class LoanTapeConfiguration + # Get the loan tape configuration for a given financial account. + sig do + params( + financial_account_token: String, + request_options: Lithic::RequestOptions::OrHash + ).returns( + Lithic::FinancialAccounts::FinancialAccountsLoanTapeConfiguration + ) + end + def retrieve( + # Globally unique identifier for financial account. + financial_account_token, + request_options: {} + ) + end + + # @api private + sig { params(client: Lithic::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end + end +end diff --git a/sig/lithic/models.rbs b/sig/lithic/models.rbs index 51887173..e6145869 100644 --- a/sig/lithic/models.rbs +++ b/sig/lithic/models.rbs @@ -23,6 +23,8 @@ module Lithic class AccountHolderRetrieveParams = Lithic::Models::AccountHolderRetrieveParams + module AccountHolders = Lithic::Models::AccountHolders + class AccountHolderSimulateEnrollmentDocumentReviewParams = Lithic::Models::AccountHolderSimulateEnrollmentDocumentReviewParams class AccountHolderSimulateEnrollmentReviewParams = Lithic::Models::AccountHolderSimulateEnrollmentReviewParams @@ -179,8 +181,6 @@ module Lithic class DigitalWalletTokenizationUpdatedWebhookEvent = Lithic::Models::DigitalWalletTokenizationUpdatedWebhookEvent - class DigitalWalletTokenMetadata = Lithic::Models::DigitalWalletTokenMetadata - class Dispute = Lithic::Models::Dispute class DisputeCreateParams = Lithic::Models::DisputeCreateParams @@ -485,6 +485,8 @@ module Lithic class TokenizationUpdatedWebhookEvent = Lithic::Models::TokenizationUpdatedWebhookEvent + class TokenMetadata = Lithic::Models::TokenMetadata + class Transaction = Lithic::Models::Transaction class TransactionExpireAuthorizationParams = Lithic::Models::TransactionExpireAuthorizationParams diff --git a/sig/lithic/models/account_holders/account_holder_entity.rbs b/sig/lithic/models/account_holders/account_holder_entity.rbs new file mode 100644 index 00000000..798d5609 --- /dev/null +++ b/sig/lithic/models/account_holders/account_holder_entity.rbs @@ -0,0 +1,137 @@ +module Lithic + module Models + class AccountHolderEntity = AccountHolders::AccountHolderEntity + + module AccountHolders + type account_holder_entity = + { + token: String, + account_holder_token: String, + address: Lithic::AccountHolders::AccountHolderEntity::Address, + dob: String?, + email: String?, + first_name: String?, + last_name: String?, + phone_number: String?, + status: Lithic::Models::AccountHolders::AccountHolderEntity::status, + type: Lithic::Models::AccountHolders::AccountHolderEntity::type_ + } + + class AccountHolderEntity < Lithic::Internal::Type::BaseModel + attr_accessor token: String + + attr_accessor account_holder_token: String + + attr_accessor address: Lithic::AccountHolders::AccountHolderEntity::Address + + attr_accessor dob: String? + + attr_accessor email: String? + + attr_accessor first_name: String? + + attr_accessor last_name: String? + + attr_accessor phone_number: String? + + attr_accessor status: Lithic::Models::AccountHolders::AccountHolderEntity::status + + attr_accessor type: Lithic::Models::AccountHolders::AccountHolderEntity::type_ + + def initialize: ( + token: String, + account_holder_token: String, + address: Lithic::AccountHolders::AccountHolderEntity::Address, + dob: String?, + email: String?, + first_name: String?, + last_name: String?, + phone_number: String?, + status: Lithic::Models::AccountHolders::AccountHolderEntity::status, + type: Lithic::Models::AccountHolders::AccountHolderEntity::type_ + ) -> void + + def to_hash: -> { + token: String, + account_holder_token: String, + address: Lithic::AccountHolders::AccountHolderEntity::Address, + dob: String?, + email: String?, + first_name: String?, + last_name: String?, + phone_number: String?, + status: Lithic::Models::AccountHolders::AccountHolderEntity::status, + type: Lithic::Models::AccountHolders::AccountHolderEntity::type_ + } + + type address = + { + :address1 => String, + city: String, + country: String, + postal_code: String, + state: String, + :address2 => String + } + + class Address < Lithic::Internal::Type::BaseModel + attr_accessor address1: String + + attr_accessor city: String + + attr_accessor country: String + + attr_accessor postal_code: String + + attr_accessor state: String + + attr_reader address2: String? + + def address2=: (String) -> String + + def initialize: ( + address1: String, + city: String, + country: String, + postal_code: String, + state: String, + ?address2: String + ) -> void + + def to_hash: -> { + :address1 => String, + city: String, + country: String, + postal_code: String, + state: String, + :address2 => String + } + end + + type status = :ACCEPTED | :INACTIVE | :PENDING_REVIEW | :REJECTED + + module Status + extend Lithic::Internal::Type::Enum + + ACCEPTED: :ACCEPTED + INACTIVE: :INACTIVE + PENDING_REVIEW: :PENDING_REVIEW + REJECTED: :REJECTED + + def self?.values: -> ::Array[Lithic::Models::AccountHolders::AccountHolderEntity::status] + end + + type type_ = :BENEFICIAL_OWNER_INDIVIDUAL | :CONTROL_PERSON + + module Type + extend Lithic::Internal::Type::Enum + + BENEFICIAL_OWNER_INDIVIDUAL: :BENEFICIAL_OWNER_INDIVIDUAL + CONTROL_PERSON: :CONTROL_PERSON + + def self?.values: -> ::Array[Lithic::Models::AccountHolders::AccountHolderEntity::type_] + end + end + end + end +end diff --git a/sig/lithic/models/account_holders/entity_create_params.rbs b/sig/lithic/models/account_holders/entity_create_params.rbs new file mode 100644 index 00000000..b957ffcf --- /dev/null +++ b/sig/lithic/models/account_holders/entity_create_params.rbs @@ -0,0 +1,118 @@ +module Lithic + module Models + module AccountHolders + type entity_create_params = + { + address: Lithic::AccountHolders::EntityCreateParams::Address, + dob: String, + email: String, + first_name: String, + government_id: String, + last_name: String, + phone_number: String, + type: Lithic::Models::AccountHolders::EntityCreateParams::type_ + } + & Lithic::Internal::Type::request_parameters + + class EntityCreateParams < Lithic::Internal::Type::BaseModel + extend Lithic::Internal::Type::RequestParameters::Converter + include Lithic::Internal::Type::RequestParameters + + attr_accessor address: Lithic::AccountHolders::EntityCreateParams::Address + + attr_accessor dob: String + + attr_accessor email: String + + attr_accessor first_name: String + + attr_accessor government_id: String + + attr_accessor last_name: String + + attr_accessor phone_number: String + + attr_accessor type: Lithic::Models::AccountHolders::EntityCreateParams::type_ + + def initialize: ( + address: Lithic::AccountHolders::EntityCreateParams::Address, + dob: String, + email: String, + first_name: String, + government_id: String, + last_name: String, + phone_number: String, + type: Lithic::Models::AccountHolders::EntityCreateParams::type_, + ?request_options: Lithic::request_opts + ) -> void + + def to_hash: -> { + address: Lithic::AccountHolders::EntityCreateParams::Address, + dob: String, + email: String, + first_name: String, + government_id: String, + last_name: String, + phone_number: String, + type: Lithic::Models::AccountHolders::EntityCreateParams::type_, + request_options: Lithic::RequestOptions + } + + type address = + { + :address1 => String, + city: String, + country: String, + postal_code: String, + state: String, + :address2 => String + } + + class Address < Lithic::Internal::Type::BaseModel + attr_accessor address1: String + + attr_accessor city: String + + attr_accessor country: String + + attr_accessor postal_code: String + + attr_accessor state: String + + attr_reader address2: String? + + def address2=: (String) -> String + + def initialize: ( + address1: String, + city: String, + country: String, + postal_code: String, + state: String, + ?address2: String + ) -> void + + def to_hash: -> { + :address1 => String, + city: String, + country: String, + postal_code: String, + state: String, + :address2 => String + } + end + + type type_ = :BENEFICIAL_OWNER_INDIVIDUAL | :CONTROL_PERSON + + module Type + extend Lithic::Internal::Type::Enum + + BENEFICIAL_OWNER_INDIVIDUAL: :BENEFICIAL_OWNER_INDIVIDUAL + CONTROL_PERSON: :CONTROL_PERSON + + def self?.values: -> ::Array[Lithic::Models::AccountHolders::EntityCreateParams::type_] + end + end + end + end +end diff --git a/sig/lithic/models/account_holders/entity_create_response.rbs b/sig/lithic/models/account_holders/entity_create_response.rbs new file mode 100644 index 00000000..05f91bc1 --- /dev/null +++ b/sig/lithic/models/account_holders/entity_create_response.rbs @@ -0,0 +1,117 @@ +module Lithic + module Models + module AccountHolders + type entity_create_response = + { + token: String, + account_holder_token: String, + created: Time, + required_documents: ::Array[Lithic::RequiredDocument], + status: Lithic::Models::AccountHolders::EntityCreateResponse::status, + status_reasons: ::Array[Lithic::Models::AccountHolders::EntityCreateResponse::status_reason] + } + + class EntityCreateResponse < Lithic::Internal::Type::BaseModel + attr_accessor token: String + + attr_accessor account_holder_token: String + + attr_accessor created: Time + + attr_accessor required_documents: ::Array[Lithic::RequiredDocument] + + attr_accessor status: Lithic::Models::AccountHolders::EntityCreateResponse::status + + attr_accessor status_reasons: ::Array[Lithic::Models::AccountHolders::EntityCreateResponse::status_reason] + + def initialize: ( + token: String, + account_holder_token: String, + created: Time, + required_documents: ::Array[Lithic::RequiredDocument], + status: Lithic::Models::AccountHolders::EntityCreateResponse::status, + status_reasons: ::Array[Lithic::Models::AccountHolders::EntityCreateResponse::status_reason] + ) -> void + + def to_hash: -> { + token: String, + account_holder_token: String, + created: Time, + required_documents: ::Array[Lithic::RequiredDocument], + status: Lithic::Models::AccountHolders::EntityCreateResponse::status, + status_reasons: ::Array[Lithic::Models::AccountHolders::EntityCreateResponse::status_reason] + } + + type status = :ACCEPTED | :INACTIVE | :PENDING_REVIEW | :REJECTED + + module Status + extend Lithic::Internal::Type::Enum + + ACCEPTED: :ACCEPTED + INACTIVE: :INACTIVE + PENDING_REVIEW: :PENDING_REVIEW + REJECTED: :REJECTED + + def self?.values: -> ::Array[Lithic::Models::AccountHolders::EntityCreateResponse::status] + end + + type status_reason = + :ADDRESS_VERIFICATION_FAILURE + | :AGE_THRESHOLD_FAILURE + | :COMPLETE_VERIFICATION_FAILURE + | :DOB_VERIFICATION_FAILURE + | :ID_VERIFICATION_FAILURE + | :MAX_DOCUMENT_ATTEMPTS + | :MAX_RESUBMISSION_ATTEMPTS + | :NAME_VERIFICATION_FAILURE + | :OTHER_VERIFICATION_FAILURE + | :RISK_THRESHOLD_FAILURE + | :WATCHLIST_ALERT_FAILURE + | :PRIMARY_BUSINESS_ENTITY_ID_VERIFICATION_FAILURE + | :PRIMARY_BUSINESS_ENTITY_ADDRESS_VERIFICATION_FAILURE + | :PRIMARY_BUSINESS_ENTITY_NAME_VERIFICATION_FAILURE + | :PRIMARY_BUSINESS_ENTITY_BUSINESS_OFFICERS_NOT_MATCHED + | :PRIMARY_BUSINESS_ENTITY_SOS_FILING_INACTIVE + | :PRIMARY_BUSINESS_ENTITY_SOS_NOT_MATCHED + | :PRIMARY_BUSINESS_ENTITY_CMRA_FAILURE + | :PRIMARY_BUSINESS_ENTITY_WATCHLIST_FAILURE + | :PRIMARY_BUSINESS_ENTITY_REGISTERED_AGENT_FAILURE + | :CONTROL_PERSON_BLOCKLIST_ALERT_FAILURE + | :CONTROL_PERSON_ID_VERIFICATION_FAILURE + | :CONTROL_PERSON_DOB_VERIFICATION_FAILURE + | :CONTROL_PERSON_NAME_VERIFICATION_FAILURE + + module StatusReason + extend Lithic::Internal::Type::Enum + + ADDRESS_VERIFICATION_FAILURE: :ADDRESS_VERIFICATION_FAILURE + AGE_THRESHOLD_FAILURE: :AGE_THRESHOLD_FAILURE + COMPLETE_VERIFICATION_FAILURE: :COMPLETE_VERIFICATION_FAILURE + DOB_VERIFICATION_FAILURE: :DOB_VERIFICATION_FAILURE + ID_VERIFICATION_FAILURE: :ID_VERIFICATION_FAILURE + MAX_DOCUMENT_ATTEMPTS: :MAX_DOCUMENT_ATTEMPTS + MAX_RESUBMISSION_ATTEMPTS: :MAX_RESUBMISSION_ATTEMPTS + NAME_VERIFICATION_FAILURE: :NAME_VERIFICATION_FAILURE + OTHER_VERIFICATION_FAILURE: :OTHER_VERIFICATION_FAILURE + RISK_THRESHOLD_FAILURE: :RISK_THRESHOLD_FAILURE + WATCHLIST_ALERT_FAILURE: :WATCHLIST_ALERT_FAILURE + PRIMARY_BUSINESS_ENTITY_ID_VERIFICATION_FAILURE: :PRIMARY_BUSINESS_ENTITY_ID_VERIFICATION_FAILURE + PRIMARY_BUSINESS_ENTITY_ADDRESS_VERIFICATION_FAILURE: :PRIMARY_BUSINESS_ENTITY_ADDRESS_VERIFICATION_FAILURE + PRIMARY_BUSINESS_ENTITY_NAME_VERIFICATION_FAILURE: :PRIMARY_BUSINESS_ENTITY_NAME_VERIFICATION_FAILURE + PRIMARY_BUSINESS_ENTITY_BUSINESS_OFFICERS_NOT_MATCHED: :PRIMARY_BUSINESS_ENTITY_BUSINESS_OFFICERS_NOT_MATCHED + PRIMARY_BUSINESS_ENTITY_SOS_FILING_INACTIVE: :PRIMARY_BUSINESS_ENTITY_SOS_FILING_INACTIVE + PRIMARY_BUSINESS_ENTITY_SOS_NOT_MATCHED: :PRIMARY_BUSINESS_ENTITY_SOS_NOT_MATCHED + PRIMARY_BUSINESS_ENTITY_CMRA_FAILURE: :PRIMARY_BUSINESS_ENTITY_CMRA_FAILURE + PRIMARY_BUSINESS_ENTITY_WATCHLIST_FAILURE: :PRIMARY_BUSINESS_ENTITY_WATCHLIST_FAILURE + PRIMARY_BUSINESS_ENTITY_REGISTERED_AGENT_FAILURE: :PRIMARY_BUSINESS_ENTITY_REGISTERED_AGENT_FAILURE + CONTROL_PERSON_BLOCKLIST_ALERT_FAILURE: :CONTROL_PERSON_BLOCKLIST_ALERT_FAILURE + CONTROL_PERSON_ID_VERIFICATION_FAILURE: :CONTROL_PERSON_ID_VERIFICATION_FAILURE + CONTROL_PERSON_DOB_VERIFICATION_FAILURE: :CONTROL_PERSON_DOB_VERIFICATION_FAILURE + CONTROL_PERSON_NAME_VERIFICATION_FAILURE: :CONTROL_PERSON_NAME_VERIFICATION_FAILURE + + def self?.values: -> ::Array[Lithic::Models::AccountHolders::EntityCreateResponse::status_reason] + end + end + end + end +end diff --git a/sig/lithic/models/account_holders/entity_delete_params.rbs b/sig/lithic/models/account_holders/entity_delete_params.rbs new file mode 100644 index 00000000..f2c2beda --- /dev/null +++ b/sig/lithic/models/account_holders/entity_delete_params.rbs @@ -0,0 +1,26 @@ +module Lithic + module Models + module AccountHolders + type entity_delete_params = + { account_holder_token: String } + & Lithic::Internal::Type::request_parameters + + class EntityDeleteParams < Lithic::Internal::Type::BaseModel + extend Lithic::Internal::Type::RequestParameters::Converter + include Lithic::Internal::Type::RequestParameters + + attr_accessor account_holder_token: String + + def initialize: ( + account_holder_token: String, + ?request_options: Lithic::request_opts + ) -> void + + def to_hash: -> { + account_holder_token: String, + request_options: Lithic::RequestOptions + } + end + end + end +end diff --git a/sig/lithic/models/digital_wallet_tokenization_approval_request_webhook_event.rbs b/sig/lithic/models/digital_wallet_tokenization_approval_request_webhook_event.rbs index d9691dcf..0e9274ca 100644 --- a/sig/lithic/models/digital_wallet_tokenization_approval_request_webhook_event.rbs +++ b/sig/lithic/models/digital_wallet_tokenization_approval_request_webhook_event.rbs @@ -6,13 +6,13 @@ module Lithic card_token: String, created: Time, customer_tokenization_decision: Lithic::DigitalWalletTokenizationApprovalRequestWebhookEvent::CustomerTokenizationDecision?, + digital_wallet_token_metadata: Lithic::TokenMetadata, event_type: Lithic::Models::DigitalWalletTokenizationApprovalRequestWebhookEvent::event_type, issuer_decision: Lithic::Models::DigitalWalletTokenizationApprovalRequestWebhookEvent::issuer_decision, tokenization_channel: Lithic::Models::DigitalWalletTokenizationApprovalRequestWebhookEvent::tokenization_channel, tokenization_token: String, wallet_decisioning_info: Lithic::WalletDecisioningInfo, device: Lithic::Device, - digital_wallet_token_metadata: Lithic::DigitalWalletTokenMetadata, rule_results: ::Array[Lithic::TokenizationRuleResult], tokenization_decline_reasons: ::Array[Lithic::Models::tokenization_decline_reason], tokenization_source: Lithic::Models::DigitalWalletTokenizationApprovalRequestWebhookEvent::tokenization_source, @@ -28,6 +28,8 @@ module Lithic attr_accessor customer_tokenization_decision: Lithic::DigitalWalletTokenizationApprovalRequestWebhookEvent::CustomerTokenizationDecision? + attr_accessor digital_wallet_token_metadata: Lithic::TokenMetadata + attr_accessor event_type: Lithic::Models::DigitalWalletTokenizationApprovalRequestWebhookEvent::event_type attr_accessor issuer_decision: Lithic::Models::DigitalWalletTokenizationApprovalRequestWebhookEvent::issuer_decision @@ -42,12 +44,6 @@ module Lithic def device=: (Lithic::Device) -> Lithic::Device - attr_reader digital_wallet_token_metadata: Lithic::DigitalWalletTokenMetadata? - - def digital_wallet_token_metadata=: ( - Lithic::DigitalWalletTokenMetadata - ) -> Lithic::DigitalWalletTokenMetadata - attr_reader rule_results: ::Array[Lithic::TokenizationRuleResult]? def rule_results=: ( @@ -77,13 +73,13 @@ module Lithic card_token: String, created: Time, customer_tokenization_decision: Lithic::DigitalWalletTokenizationApprovalRequestWebhookEvent::CustomerTokenizationDecision?, + digital_wallet_token_metadata: Lithic::TokenMetadata, event_type: Lithic::Models::DigitalWalletTokenizationApprovalRequestWebhookEvent::event_type, issuer_decision: Lithic::Models::DigitalWalletTokenizationApprovalRequestWebhookEvent::issuer_decision, tokenization_channel: Lithic::Models::DigitalWalletTokenizationApprovalRequestWebhookEvent::tokenization_channel, tokenization_token: String, wallet_decisioning_info: Lithic::WalletDecisioningInfo, ?device: Lithic::Device, - ?digital_wallet_token_metadata: Lithic::DigitalWalletTokenMetadata, ?rule_results: ::Array[Lithic::TokenizationRuleResult], ?tokenization_decline_reasons: ::Array[Lithic::Models::tokenization_decline_reason], ?tokenization_source: Lithic::Models::DigitalWalletTokenizationApprovalRequestWebhookEvent::tokenization_source, @@ -95,13 +91,13 @@ module Lithic card_token: String, created: Time, customer_tokenization_decision: Lithic::DigitalWalletTokenizationApprovalRequestWebhookEvent::CustomerTokenizationDecision?, + digital_wallet_token_metadata: Lithic::TokenMetadata, event_type: Lithic::Models::DigitalWalletTokenizationApprovalRequestWebhookEvent::event_type, issuer_decision: Lithic::Models::DigitalWalletTokenizationApprovalRequestWebhookEvent::issuer_decision, tokenization_channel: Lithic::Models::DigitalWalletTokenizationApprovalRequestWebhookEvent::tokenization_channel, tokenization_token: String, wallet_decisioning_info: Lithic::WalletDecisioningInfo, device: Lithic::Device, - digital_wallet_token_metadata: Lithic::DigitalWalletTokenMetadata, rule_results: ::Array[Lithic::TokenizationRuleResult], tokenization_decline_reasons: ::Array[Lithic::Models::tokenization_decline_reason], tokenization_source: Lithic::Models::DigitalWalletTokenizationApprovalRequestWebhookEvent::tokenization_source, diff --git a/sig/lithic/models/financial_account.rbs b/sig/lithic/models/financial_account.rbs index 798ac410..c2faa523 100644 --- a/sig/lithic/models/financial_account.rbs +++ b/sig/lithic/models/financial_account.rbs @@ -142,6 +142,7 @@ module Lithic | :END_USER_REQUEST | :BANK_REQUEST | :DELINQUENT + | :INTEREST_AND_FEES_PAUSED module Substatus extend Lithic::Internal::Type::Enum @@ -151,6 +152,7 @@ module Lithic END_USER_REQUEST: :END_USER_REQUEST BANK_REQUEST: :BANK_REQUEST DELINQUENT: :DELINQUENT + INTEREST_AND_FEES_PAUSED: :INTEREST_AND_FEES_PAUSED def self?.values: -> ::Array[Lithic::Models::FinancialAccount::substatus] end diff --git a/sig/lithic/models/financial_account_update_status_params.rbs b/sig/lithic/models/financial_account_update_status_params.rbs index 7f1e2b32..637fe780 100644 --- a/sig/lithic/models/financial_account_update_status_params.rbs +++ b/sig/lithic/models/financial_account_update_status_params.rbs @@ -52,6 +52,7 @@ module Lithic | :END_USER_REQUEST | :BANK_REQUEST | :CHARGED_OFF_DELINQUENT + | :INTEREST_AND_FEES_PAUSED module Substatus extend Lithic::Internal::Type::Enum @@ -60,6 +61,7 @@ module Lithic END_USER_REQUEST: :END_USER_REQUEST BANK_REQUEST: :BANK_REQUEST CHARGED_OFF_DELINQUENT: :CHARGED_OFF_DELINQUENT + INTEREST_AND_FEES_PAUSED: :INTEREST_AND_FEES_PAUSED def self?.values: -> ::Array[Lithic::Models::FinancialAccountUpdateStatusParams::substatus] end diff --git a/sig/lithic/models/financial_accounts/category_tier.rbs b/sig/lithic/models/financial_accounts/category_tier.rbs new file mode 100644 index 00000000..cecc18f2 --- /dev/null +++ b/sig/lithic/models/financial_accounts/category_tier.rbs @@ -0,0 +1,21 @@ +module Lithic + module Models + module FinancialAccounts + type category_tier = { cap_rate: String, rate: String } + + class CategoryTier < Lithic::Internal::Type::BaseModel + attr_reader cap_rate: String? + + def cap_rate=: (String) -> String + + attr_reader rate: String? + + def rate=: (String) -> String + + def initialize: (?cap_rate: String, ?rate: String) -> void + + def to_hash: -> { cap_rate: String, rate: String } + end + end + end +end diff --git a/sig/lithic/models/financial_accounts/interest_tier_schedule.rbs b/sig/lithic/models/financial_accounts/interest_tier_schedule.rbs new file mode 100644 index 00000000..51f6b9a2 --- /dev/null +++ b/sig/lithic/models/financial_accounts/interest_tier_schedule.rbs @@ -0,0 +1,41 @@ +module Lithic + module Models + module FinancialAccounts + type financial_accounts_interest_tier_schedule = + { + credit_product_token: String, + effective_date: Date, + tier_name: String, + tier_rates: top + } + + class FinancialAccountsInterestTierSchedule < Lithic::Internal::Type::BaseModel + attr_accessor credit_product_token: String + + attr_accessor effective_date: Date + + attr_reader tier_name: String? + + def tier_name=: (String) -> String + + attr_reader tier_rates: top? + + def tier_rates=: (top) -> top + + def initialize: ( + credit_product_token: String, + effective_date: Date, + ?tier_name: String, + ?tier_rates: top + ) -> void + + def to_hash: -> { + credit_product_token: String, + effective_date: Date, + tier_name: String, + tier_rates: top + } + end + end + end +end diff --git a/sig/lithic/models/financial_accounts/interest_tier_schedule_create_params.rbs b/sig/lithic/models/financial_accounts/interest_tier_schedule_create_params.rbs new file mode 100644 index 00000000..40602d5f --- /dev/null +++ b/sig/lithic/models/financial_accounts/interest_tier_schedule_create_params.rbs @@ -0,0 +1,17 @@ +module Lithic + module Models + module FinancialAccounts + type interest_tier_schedule_create_params = + { } & Lithic::Internal::Type::request_parameters + + class InterestTierScheduleCreateParams < Lithic::Models::FinancialAccounts::FinancialAccountsInterestTierSchedule + extend Lithic::Internal::Type::RequestParameters::Converter + include Lithic::Internal::Type::RequestParameters + + def initialize: (?request_options: Lithic::request_opts) -> void + + def to_hash: -> { request_options: Lithic::RequestOptions } + end + end + end +end diff --git a/sig/lithic/models/financial_accounts/interest_tier_schedule_delete_params.rbs b/sig/lithic/models/financial_accounts/interest_tier_schedule_delete_params.rbs new file mode 100644 index 00000000..92660b9b --- /dev/null +++ b/sig/lithic/models/financial_accounts/interest_tier_schedule_delete_params.rbs @@ -0,0 +1,26 @@ +module Lithic + module Models + module FinancialAccounts + type interest_tier_schedule_delete_params = + { financial_account_token: String } + & Lithic::Internal::Type::request_parameters + + class InterestTierScheduleDeleteParams < Lithic::Internal::Type::BaseModel + extend Lithic::Internal::Type::RequestParameters::Converter + include Lithic::Internal::Type::RequestParameters + + attr_accessor financial_account_token: String + + def initialize: ( + financial_account_token: String, + ?request_options: Lithic::request_opts + ) -> void + + def to_hash: -> { + financial_account_token: String, + request_options: Lithic::RequestOptions + } + end + end + end +end diff --git a/sig/lithic/models/financial_accounts/interest_tier_schedule_list_params.rbs b/sig/lithic/models/financial_accounts/interest_tier_schedule_list_params.rbs new file mode 100644 index 00000000..c7448d2b --- /dev/null +++ b/sig/lithic/models/financial_accounts/interest_tier_schedule_list_params.rbs @@ -0,0 +1,40 @@ +module Lithic + module Models + module FinancialAccounts + type interest_tier_schedule_list_params = + { after_date: Date, before_date: Date, for_date: Date } + & Lithic::Internal::Type::request_parameters + + class InterestTierScheduleListParams < Lithic::Internal::Type::BaseModel + extend Lithic::Internal::Type::RequestParameters::Converter + include Lithic::Internal::Type::RequestParameters + + attr_reader after_date: Date? + + def after_date=: (Date) -> Date + + attr_reader before_date: Date? + + def before_date=: (Date) -> Date + + attr_reader for_date: Date? + + def for_date=: (Date) -> Date + + def initialize: ( + ?after_date: Date, + ?before_date: Date, + ?for_date: Date, + ?request_options: Lithic::request_opts + ) -> void + + def to_hash: -> { + after_date: Date, + before_date: Date, + for_date: Date, + request_options: Lithic::RequestOptions + } + end + end + end +end diff --git a/sig/lithic/models/financial_accounts/interest_tier_schedule_retrieve_params.rbs b/sig/lithic/models/financial_accounts/interest_tier_schedule_retrieve_params.rbs new file mode 100644 index 00000000..c8851243 --- /dev/null +++ b/sig/lithic/models/financial_accounts/interest_tier_schedule_retrieve_params.rbs @@ -0,0 +1,26 @@ +module Lithic + module Models + module FinancialAccounts + type interest_tier_schedule_retrieve_params = + { financial_account_token: String } + & Lithic::Internal::Type::request_parameters + + class InterestTierScheduleRetrieveParams < Lithic::Internal::Type::BaseModel + extend Lithic::Internal::Type::RequestParameters::Converter + include Lithic::Internal::Type::RequestParameters + + attr_accessor financial_account_token: String + + def initialize: ( + financial_account_token: String, + ?request_options: Lithic::request_opts + ) -> void + + def to_hash: -> { + financial_account_token: String, + request_options: Lithic::RequestOptions + } + end + end + end +end diff --git a/sig/lithic/models/financial_accounts/interest_tier_schedule_update_params.rbs b/sig/lithic/models/financial_accounts/interest_tier_schedule_update_params.rbs new file mode 100644 index 00000000..03aec2bb --- /dev/null +++ b/sig/lithic/models/financial_accounts/interest_tier_schedule_update_params.rbs @@ -0,0 +1,38 @@ +module Lithic + module Models + module FinancialAccounts + type interest_tier_schedule_update_params = + { financial_account_token: String, tier_name: String, tier_rates: top } + & Lithic::Internal::Type::request_parameters + + class InterestTierScheduleUpdateParams < Lithic::Internal::Type::BaseModel + extend Lithic::Internal::Type::RequestParameters::Converter + include Lithic::Internal::Type::RequestParameters + + attr_accessor financial_account_token: String + + attr_reader tier_name: String? + + def tier_name=: (String) -> String + + attr_reader tier_rates: top? + + def tier_rates=: (top) -> top + + def initialize: ( + financial_account_token: String, + ?tier_name: String, + ?tier_rates: top, + ?request_options: Lithic::request_opts + ) -> void + + def to_hash: -> { + financial_account_token: String, + tier_name: String, + tier_rates: top, + request_options: Lithic::RequestOptions + } + end + end + end +end diff --git a/sig/lithic/models/financial_accounts/loan_tape.rbs b/sig/lithic/models/financial_accounts/loan_tape.rbs index e1e4ad52..dea4a048 100644 --- a/sig/lithic/models/financial_accounts/loan_tape.rbs +++ b/sig/lithic/models/financial_accounts/loan_tape.rbs @@ -213,6 +213,7 @@ module Lithic | :END_USER_REQUEST | :BANK_REQUEST | :DELINQUENT + | :INTEREST_AND_FEES_PAUSED module Substatus extend Lithic::Internal::Type::Enum @@ -222,6 +223,7 @@ module Lithic END_USER_REQUEST: :END_USER_REQUEST BANK_REQUEST: :BANK_REQUEST DELINQUENT: :DELINQUENT + INTEREST_AND_FEES_PAUSED: :INTEREST_AND_FEES_PAUSED def self?.values: -> ::Array[Lithic::Models::FinancialAccounts::LoanTape::AccountStanding::FinancialAccountState::substatus] end diff --git a/sig/lithic/models/financial_accounts/loan_tape_configuration.rbs b/sig/lithic/models/financial_accounts/loan_tape_configuration.rbs new file mode 100644 index 00000000..e4e1b871 --- /dev/null +++ b/sig/lithic/models/financial_accounts/loan_tape_configuration.rbs @@ -0,0 +1,60 @@ +module Lithic + module Models + module FinancialAccounts + type financial_accounts_loan_tape_configuration = + { + created_at: Time, + financial_account_token: String, + instance_token: String, + updated_at: Time, + credit_product_token: String, + loan_tape_rebuild_configuration: Lithic::FinancialAccounts::LoanTapeRebuildConfiguration, + tier_schedule_changed_at: Time + } + + class FinancialAccountsLoanTapeConfiguration < Lithic::Internal::Type::BaseModel + attr_accessor created_at: Time + + attr_accessor financial_account_token: String + + attr_accessor instance_token: String + + attr_accessor updated_at: Time + + attr_reader credit_product_token: String? + + def credit_product_token=: (String) -> String + + attr_reader loan_tape_rebuild_configuration: Lithic::FinancialAccounts::LoanTapeRebuildConfiguration? + + def loan_tape_rebuild_configuration=: ( + Lithic::FinancialAccounts::LoanTapeRebuildConfiguration + ) -> Lithic::FinancialAccounts::LoanTapeRebuildConfiguration + + attr_reader tier_schedule_changed_at: Time? + + def tier_schedule_changed_at=: (Time) -> Time + + def initialize: ( + created_at: Time, + financial_account_token: String, + instance_token: String, + updated_at: Time, + ?credit_product_token: String, + ?loan_tape_rebuild_configuration: Lithic::FinancialAccounts::LoanTapeRebuildConfiguration, + ?tier_schedule_changed_at: Time + ) -> void + + def to_hash: -> { + created_at: Time, + financial_account_token: String, + instance_token: String, + updated_at: Time, + credit_product_token: String, + loan_tape_rebuild_configuration: Lithic::FinancialAccounts::LoanTapeRebuildConfiguration, + tier_schedule_changed_at: Time + } + end + end + end +end diff --git a/sig/lithic/models/financial_accounts/loan_tape_configuration_retrieve_params.rbs b/sig/lithic/models/financial_accounts/loan_tape_configuration_retrieve_params.rbs new file mode 100644 index 00000000..b63aaa97 --- /dev/null +++ b/sig/lithic/models/financial_accounts/loan_tape_configuration_retrieve_params.rbs @@ -0,0 +1,17 @@ +module Lithic + module Models + module FinancialAccounts + type loan_tape_configuration_retrieve_params = + { } & Lithic::Internal::Type::request_parameters + + class LoanTapeConfigurationRetrieveParams < Lithic::Internal::Type::BaseModel + extend Lithic::Internal::Type::RequestParameters::Converter + include Lithic::Internal::Type::RequestParameters + + def initialize: (?request_options: Lithic::request_opts) -> void + + def to_hash: -> { request_options: Lithic::RequestOptions } + end + end + end +end diff --git a/sig/lithic/models/financial_accounts/loan_tape_rebuild_configuration.rbs b/sig/lithic/models/financial_accounts/loan_tape_rebuild_configuration.rbs new file mode 100644 index 00000000..defdf24f --- /dev/null +++ b/sig/lithic/models/financial_accounts/loan_tape_rebuild_configuration.rbs @@ -0,0 +1,32 @@ +module Lithic + module Models + module FinancialAccounts + type loan_tape_rebuild_configuration = + { rebuild_needed: bool, last_rebuild: Date, rebuild_from: Date } + + class LoanTapeRebuildConfiguration < Lithic::Internal::Type::BaseModel + attr_accessor rebuild_needed: bool + + attr_reader last_rebuild: Date? + + def last_rebuild=: (Date) -> Date + + attr_reader rebuild_from: Date? + + def rebuild_from=: (Date) -> Date + + def initialize: ( + rebuild_needed: bool, + ?last_rebuild: Date, + ?rebuild_from: Date + ) -> void + + def to_hash: -> { + rebuild_needed: bool, + last_rebuild: Date, + rebuild_from: Date + } + end + end + end +end diff --git a/sig/lithic/models/financial_accounts/statement.rbs b/sig/lithic/models/financial_accounts/statement.rbs index 5f47bb68..dbd52b9f 100644 --- a/sig/lithic/models/financial_accounts/statement.rbs +++ b/sig/lithic/models/financial_accounts/statement.rbs @@ -217,6 +217,7 @@ module Lithic | :END_USER_REQUEST | :BANK_REQUEST | :DELINQUENT + | :INTEREST_AND_FEES_PAUSED module Substatus extend Lithic::Internal::Type::Enum @@ -226,6 +227,7 @@ module Lithic END_USER_REQUEST: :END_USER_REQUEST BANK_REQUEST: :BANK_REQUEST DELINQUENT: :DELINQUENT + INTEREST_AND_FEES_PAUSED: :INTEREST_AND_FEES_PAUSED def self?.values: -> ::Array[Lithic::Models::FinancialAccounts::Statement::AccountStanding::FinancialAccountState::substatus] end diff --git a/sig/lithic/models/digital_wallet_token_metadata.rbs b/sig/lithic/models/token_metadata.rbs similarity index 61% rename from sig/lithic/models/digital_wallet_token_metadata.rbs rename to sig/lithic/models/token_metadata.rbs index 93f46c2d..e56e5111 100644 --- a/sig/lithic/models/digital_wallet_token_metadata.rbs +++ b/sig/lithic/models/token_metadata.rbs @@ -1,16 +1,16 @@ module Lithic module Models - type digital_wallet_token_metadata = + type token_metadata = { - payment_account_info: Lithic::DigitalWalletTokenMetadata::PaymentAccountInfo, + payment_account_info: Lithic::TokenMetadata::PaymentAccountInfo, status: String, payment_app_instance_id: String?, token_requestor_id: String, - token_requestor_name: Lithic::Models::DigitalWalletTokenMetadata::token_requestor_name + token_requestor_name: Lithic::Models::TokenMetadata::token_requestor_name } - class DigitalWalletTokenMetadata < Lithic::Internal::Type::BaseModel - attr_accessor payment_account_info: Lithic::DigitalWalletTokenMetadata::PaymentAccountInfo + class TokenMetadata < Lithic::Internal::Type::BaseModel + attr_accessor payment_account_info: Lithic::TokenMetadata::PaymentAccountInfo attr_accessor status: String @@ -20,38 +20,38 @@ module Lithic def token_requestor_id=: (String) -> String - attr_reader token_requestor_name: Lithic::Models::DigitalWalletTokenMetadata::token_requestor_name? + attr_reader token_requestor_name: Lithic::Models::TokenMetadata::token_requestor_name? def token_requestor_name=: ( - Lithic::Models::DigitalWalletTokenMetadata::token_requestor_name - ) -> Lithic::Models::DigitalWalletTokenMetadata::token_requestor_name + Lithic::Models::TokenMetadata::token_requestor_name + ) -> Lithic::Models::TokenMetadata::token_requestor_name def initialize: ( - payment_account_info: Lithic::DigitalWalletTokenMetadata::PaymentAccountInfo, + payment_account_info: Lithic::TokenMetadata::PaymentAccountInfo, status: String, ?payment_app_instance_id: String?, ?token_requestor_id: String, - ?token_requestor_name: Lithic::Models::DigitalWalletTokenMetadata::token_requestor_name + ?token_requestor_name: Lithic::Models::TokenMetadata::token_requestor_name ) -> void def to_hash: -> { - payment_account_info: Lithic::DigitalWalletTokenMetadata::PaymentAccountInfo, + payment_account_info: Lithic::TokenMetadata::PaymentAccountInfo, status: String, payment_app_instance_id: String?, token_requestor_id: String, - token_requestor_name: Lithic::Models::DigitalWalletTokenMetadata::token_requestor_name + token_requestor_name: Lithic::Models::TokenMetadata::token_requestor_name } type payment_account_info = { - account_holder_data: Lithic::DigitalWalletTokenMetadata::PaymentAccountInfo::AccountHolderData, + account_holder_data: Lithic::TokenMetadata::PaymentAccountInfo::AccountHolderData, pan_unique_reference: String?, payment_account_reference: String?, token_unique_reference: String? } class PaymentAccountInfo < Lithic::Internal::Type::BaseModel - attr_accessor account_holder_data: Lithic::DigitalWalletTokenMetadata::PaymentAccountInfo::AccountHolderData + attr_accessor account_holder_data: Lithic::TokenMetadata::PaymentAccountInfo::AccountHolderData attr_accessor pan_unique_reference: String? @@ -60,14 +60,14 @@ module Lithic attr_accessor token_unique_reference: String? def initialize: ( - account_holder_data: Lithic::DigitalWalletTokenMetadata::PaymentAccountInfo::AccountHolderData, + account_holder_data: Lithic::TokenMetadata::PaymentAccountInfo::AccountHolderData, ?pan_unique_reference: String?, ?payment_account_reference: String?, ?token_unique_reference: String? ) -> void def to_hash: -> { - account_holder_data: Lithic::DigitalWalletTokenMetadata::PaymentAccountInfo::AccountHolderData, + account_holder_data: Lithic::TokenMetadata::PaymentAccountInfo::AccountHolderData, pan_unique_reference: String?, payment_account_reference: String?, token_unique_reference: String? @@ -91,6 +91,7 @@ module Lithic | :FACEBOOK | :FITBIT_PAY | :GARMIN_PAY + | :GOOGLE_PAY | :MICROSOFT_PAY | :NETFLIX | :SAMSUNG_PAY @@ -106,13 +107,14 @@ module Lithic FACEBOOK: :FACEBOOK FITBIT_PAY: :FITBIT_PAY GARMIN_PAY: :GARMIN_PAY + GOOGLE_PAY: :GOOGLE_PAY MICROSOFT_PAY: :MICROSOFT_PAY NETFLIX: :NETFLIX SAMSUNG_PAY: :SAMSUNG_PAY UNKNOWN: :UNKNOWN VISA_CHECKOUT: :VISA_CHECKOUT - def self?.values: -> ::Array[Lithic::Models::DigitalWalletTokenMetadata::token_requestor_name] + def self?.values: -> ::Array[Lithic::Models::TokenMetadata::token_requestor_name] end end end diff --git a/sig/lithic/models/tokenization_approval_request_webhook_event.rbs b/sig/lithic/models/tokenization_approval_request_webhook_event.rbs index 6fbf2224..1cf1f1b7 100644 --- a/sig/lithic/models/tokenization_approval_request_webhook_event.rbs +++ b/sig/lithic/models/tokenization_approval_request_webhook_event.rbs @@ -8,11 +8,11 @@ module Lithic customer_tokenization_decision: Lithic::TokenizationApprovalRequestWebhookEvent::CustomerTokenizationDecision?, event_type: Lithic::Models::TokenizationApprovalRequestWebhookEvent::event_type, issuer_decision: Lithic::Models::TokenizationApprovalRequestWebhookEvent::issuer_decision, + token_metadata: Lithic::TokenMetadata, tokenization_channel: Lithic::Models::TokenizationApprovalRequestWebhookEvent::tokenization_channel, tokenization_token: String, wallet_decisioning_info: Lithic::WalletDecisioningInfo, device: Lithic::Device, - digital_wallet_token_metadata: Lithic::DigitalWalletTokenMetadata, rule_results: ::Array[Lithic::TokenizationRuleResult], tokenization_decline_reasons: ::Array[Lithic::Models::tokenization_decline_reason], tokenization_source: Lithic::Models::TokenizationApprovalRequestWebhookEvent::tokenization_source, @@ -32,6 +32,8 @@ module Lithic attr_accessor issuer_decision: Lithic::Models::TokenizationApprovalRequestWebhookEvent::issuer_decision + attr_accessor token_metadata: Lithic::TokenMetadata + attr_accessor tokenization_channel: Lithic::Models::TokenizationApprovalRequestWebhookEvent::tokenization_channel attr_accessor tokenization_token: String @@ -42,12 +44,6 @@ module Lithic def device=: (Lithic::Device) -> Lithic::Device - attr_reader digital_wallet_token_metadata: Lithic::DigitalWalletTokenMetadata? - - def digital_wallet_token_metadata=: ( - Lithic::DigitalWalletTokenMetadata - ) -> Lithic::DigitalWalletTokenMetadata - attr_reader rule_results: ::Array[Lithic::TokenizationRuleResult]? def rule_results=: ( @@ -79,11 +75,11 @@ module Lithic customer_tokenization_decision: Lithic::TokenizationApprovalRequestWebhookEvent::CustomerTokenizationDecision?, event_type: Lithic::Models::TokenizationApprovalRequestWebhookEvent::event_type, issuer_decision: Lithic::Models::TokenizationApprovalRequestWebhookEvent::issuer_decision, + token_metadata: Lithic::TokenMetadata, tokenization_channel: Lithic::Models::TokenizationApprovalRequestWebhookEvent::tokenization_channel, tokenization_token: String, wallet_decisioning_info: Lithic::WalletDecisioningInfo, ?device: Lithic::Device, - ?digital_wallet_token_metadata: Lithic::DigitalWalletTokenMetadata, ?rule_results: ::Array[Lithic::TokenizationRuleResult], ?tokenization_decline_reasons: ::Array[Lithic::Models::tokenization_decline_reason], ?tokenization_source: Lithic::Models::TokenizationApprovalRequestWebhookEvent::tokenization_source, @@ -97,11 +93,11 @@ module Lithic customer_tokenization_decision: Lithic::TokenizationApprovalRequestWebhookEvent::CustomerTokenizationDecision?, event_type: Lithic::Models::TokenizationApprovalRequestWebhookEvent::event_type, issuer_decision: Lithic::Models::TokenizationApprovalRequestWebhookEvent::issuer_decision, + token_metadata: Lithic::TokenMetadata, tokenization_channel: Lithic::Models::TokenizationApprovalRequestWebhookEvent::tokenization_channel, tokenization_token: String, wallet_decisioning_info: Lithic::WalletDecisioningInfo, device: Lithic::Device, - digital_wallet_token_metadata: Lithic::DigitalWalletTokenMetadata, rule_results: ::Array[Lithic::TokenizationRuleResult], tokenization_decline_reasons: ::Array[Lithic::Models::tokenization_decline_reason], tokenization_source: Lithic::Models::TokenizationApprovalRequestWebhookEvent::tokenization_source, diff --git a/sig/lithic/models/tokenization_decisioning_request_webhook_event.rbs b/sig/lithic/models/tokenization_decisioning_request_webhook_event.rbs index cd7c4bd1..41fc3d1c 100644 --- a/sig/lithic/models/tokenization_decisioning_request_webhook_event.rbs +++ b/sig/lithic/models/tokenization_decisioning_request_webhook_event.rbs @@ -5,13 +5,13 @@ module Lithic account_token: String, card_token: String, created: Time, + digital_wallet_token_metadata: Lithic::TokenMetadata, event_type: Lithic::Models::TokenizationDecisioningRequestWebhookEvent::event_type, issuer_decision: Lithic::Models::TokenizationDecisioningRequestWebhookEvent::issuer_decision, tokenization_channel: Lithic::Models::TokenizationDecisioningRequestWebhookEvent::tokenization_channel, tokenization_token: String, wallet_decisioning_info: Lithic::WalletDecisioningInfo, device: Lithic::Device, - digital_wallet_token_metadata: Lithic::DigitalWalletTokenMetadata, tokenization_source: Lithic::Models::TokenizationDecisioningRequestWebhookEvent::tokenization_source } @@ -22,6 +22,8 @@ module Lithic attr_accessor created: Time + attr_accessor digital_wallet_token_metadata: Lithic::TokenMetadata + attr_accessor event_type: Lithic::Models::TokenizationDecisioningRequestWebhookEvent::event_type attr_accessor issuer_decision: Lithic::Models::TokenizationDecisioningRequestWebhookEvent::issuer_decision @@ -36,12 +38,6 @@ module Lithic def device=: (Lithic::Device) -> Lithic::Device - attr_reader digital_wallet_token_metadata: Lithic::DigitalWalletTokenMetadata? - - def digital_wallet_token_metadata=: ( - Lithic::DigitalWalletTokenMetadata - ) -> Lithic::DigitalWalletTokenMetadata - attr_reader tokenization_source: Lithic::Models::TokenizationDecisioningRequestWebhookEvent::tokenization_source? def tokenization_source=: ( @@ -52,13 +48,13 @@ module Lithic account_token: String, card_token: String, created: Time, + digital_wallet_token_metadata: Lithic::TokenMetadata, event_type: Lithic::Models::TokenizationDecisioningRequestWebhookEvent::event_type, issuer_decision: Lithic::Models::TokenizationDecisioningRequestWebhookEvent::issuer_decision, tokenization_channel: Lithic::Models::TokenizationDecisioningRequestWebhookEvent::tokenization_channel, tokenization_token: String, wallet_decisioning_info: Lithic::WalletDecisioningInfo, ?device: Lithic::Device, - ?digital_wallet_token_metadata: Lithic::DigitalWalletTokenMetadata, ?tokenization_source: Lithic::Models::TokenizationDecisioningRequestWebhookEvent::tokenization_source ) -> void @@ -66,13 +62,13 @@ module Lithic account_token: String, card_token: String, created: Time, + digital_wallet_token_metadata: Lithic::TokenMetadata, event_type: Lithic::Models::TokenizationDecisioningRequestWebhookEvent::event_type, issuer_decision: Lithic::Models::TokenizationDecisioningRequestWebhookEvent::issuer_decision, tokenization_channel: Lithic::Models::TokenizationDecisioningRequestWebhookEvent::tokenization_channel, tokenization_token: String, wallet_decisioning_info: Lithic::WalletDecisioningInfo, device: Lithic::Device, - digital_wallet_token_metadata: Lithic::DigitalWalletTokenMetadata, tokenization_source: Lithic::Models::TokenizationDecisioningRequestWebhookEvent::tokenization_source } diff --git a/sig/lithic/resources/account_holders.rbs b/sig/lithic/resources/account_holders.rbs index 25e1956e..f9aa5099 100644 --- a/sig/lithic/resources/account_holders.rbs +++ b/sig/lithic/resources/account_holders.rbs @@ -1,6 +1,8 @@ module Lithic module Resources class AccountHolders + attr_reader entities: Lithic::Resources::AccountHolders::Entities + def create: ( business_entity: Lithic::AccountHolderCreateParams::BusinessEntity, tos_timestamp: String, diff --git a/sig/lithic/resources/account_holders/entities.rbs b/sig/lithic/resources/account_holders/entities.rbs new file mode 100644 index 00000000..dcd3c404 --- /dev/null +++ b/sig/lithic/resources/account_holders/entities.rbs @@ -0,0 +1,28 @@ +module Lithic + module Resources + class AccountHolders + class Entities + def create: ( + String account_holder_token, + address: Lithic::AccountHolders::EntityCreateParams::Address, + dob: String, + email: String, + first_name: String, + government_id: String, + last_name: String, + phone_number: String, + type: Lithic::Models::AccountHolders::EntityCreateParams::type_, + ?request_options: Lithic::request_opts + ) -> Lithic::Models::AccountHolders::EntityCreateResponse + + def delete: ( + String entity_token, + account_holder_token: String, + ?request_options: Lithic::request_opts + ) -> Lithic::AccountHolders::AccountHolderEntity + + def initialize: (client: Lithic::Client) -> void + end + end + end +end diff --git a/sig/lithic/resources/financial_accounts.rbs b/sig/lithic/resources/financial_accounts.rbs index 5bcfe9eb..7a607491 100644 --- a/sig/lithic/resources/financial_accounts.rbs +++ b/sig/lithic/resources/financial_accounts.rbs @@ -11,6 +11,10 @@ module Lithic attr_reader loan_tapes: Lithic::Resources::FinancialAccounts::LoanTapes + attr_reader loan_tape_configuration: Lithic::Resources::FinancialAccounts::LoanTapeConfiguration + + attr_reader interest_tier_schedule: Lithic::Resources::FinancialAccounts::InterestTierSchedule + def create: ( nickname: String, type: Lithic::Models::FinancialAccountCreateParams::type_, diff --git a/sig/lithic/resources/financial_accounts/interest_tier_schedule.rbs b/sig/lithic/resources/financial_accounts/interest_tier_schedule.rbs new file mode 100644 index 00000000..a40f3aea --- /dev/null +++ b/sig/lithic/resources/financial_accounts/interest_tier_schedule.rbs @@ -0,0 +1,46 @@ +module Lithic + module Resources + class FinancialAccounts + class InterestTierSchedule + def create: ( + String financial_account_token, + credit_product_token: String, + effective_date: Date, + ?tier_name: String, + ?tier_rates: top, + ?request_options: Lithic::request_opts + ) -> Lithic::FinancialAccounts::FinancialAccountsInterestTierSchedule + + def retrieve: ( + Date effective_date, + financial_account_token: String, + ?request_options: Lithic::request_opts + ) -> Lithic::FinancialAccounts::FinancialAccountsInterestTierSchedule + + def update: ( + Date effective_date, + financial_account_token: String, + ?tier_name: String, + ?tier_rates: top, + ?request_options: Lithic::request_opts + ) -> Lithic::FinancialAccounts::FinancialAccountsInterestTierSchedule + + def list: ( + String financial_account_token, + ?after_date: Date, + ?before_date: Date, + ?for_date: Date, + ?request_options: Lithic::request_opts + ) -> Lithic::Internal::SinglePage[Lithic::FinancialAccounts::FinancialAccountsInterestTierSchedule] + + def delete: ( + Date effective_date, + financial_account_token: String, + ?request_options: Lithic::request_opts + ) -> nil + + def initialize: (client: Lithic::Client) -> void + end + end + end +end diff --git a/sig/lithic/resources/financial_accounts/loan_tape_configuration.rbs b/sig/lithic/resources/financial_accounts/loan_tape_configuration.rbs new file mode 100644 index 00000000..6f9c8fa7 --- /dev/null +++ b/sig/lithic/resources/financial_accounts/loan_tape_configuration.rbs @@ -0,0 +1,14 @@ +module Lithic + module Resources + class FinancialAccounts + class LoanTapeConfiguration + def retrieve: ( + String financial_account_token, + ?request_options: Lithic::request_opts + ) -> Lithic::FinancialAccounts::FinancialAccountsLoanTapeConfiguration + + def initialize: (client: Lithic::Client) -> void + end + end + end +end diff --git a/test/lithic/client_test.rb b/test/lithic/client_test.rb index d932871e..0344dd8f 100644 --- a/test/lithic/client_test.rb +++ b/test/lithic/client_test.rb @@ -107,19 +107,21 @@ def test_client_retry_after_seconds end def test_client_retry_after_date + time_now = Time.now + stub_request(:post, "http://localhost/v1/cards").to_return_json( status: 500, - headers: {"retry-after" => (Time.now + 10).httpdate}, + headers: {"retry-after" => (time_now + 10).httpdate}, body: {} ) lithic = Lithic::Client.new(base_url: "http://localhost", api_key: "My Lithic API Key", max_retries: 1) + Thread.current.thread_variable_set(:time_now, time_now) assert_raises(Lithic::Errors::InternalServerError) do - Thread.current.thread_variable_set(:time_now, Time.now) lithic.cards.create(type: :VIRTUAL) - Thread.current.thread_variable_set(:time_now, nil) end + Thread.current.thread_variable_set(:time_now, nil) assert_requested(:any, /./, times: 2) assert_in_delta(10, Thread.current.thread_variable_get(:mock_sleep).last, 1.0) diff --git a/test/lithic/resource_namespaces.rb b/test/lithic/resource_namespaces.rb index fe14d474..ae465057 100644 --- a/test/lithic/resource_namespaces.rb +++ b/test/lithic/resource_namespaces.rb @@ -3,6 +3,9 @@ module Lithic module Test module Resources + module AccountHolders + end + module AuthRules module V2 end diff --git a/test/lithic/resources/account_holders/entities_test.rb b/test/lithic/resources/account_holders/entities_test.rb new file mode 100644 index 00000000..1586e271 --- /dev/null +++ b/test/lithic/resources/account_holders/entities_test.rb @@ -0,0 +1,68 @@ +# frozen_string_literal: true + +require_relative "../../test_helper" + +class Lithic::Test::Resources::AccountHolders::EntitiesTest < Lithic::Test::ResourceTest + def test_create_required_params + response = + @lithic.account_holders.entities.create( + "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", + address: { + address1: "300 Normal Forest Way", + city: "Portland", + country: "USA", + postal_code: "90210", + state: "OR" + }, + dob: "1991-03-08T08:00:00Z", + email: "tim@left-earth.com", + first_name: "Timmy", + government_id: "211-23-1412", + last_name: "Turner", + phone_number: "+15555555555", + type: :BENEFICIAL_OWNER_INDIVIDUAL + ) + + assert_pattern do + response => Lithic::Models::AccountHolders::EntityCreateResponse + end + + assert_pattern do + response => { + token: String, + account_holder_token: String, + created: Time, + required_documents: ^(Lithic::Internal::Type::ArrayOf[Lithic::RequiredDocument]), + status: Lithic::Models::AccountHolders::EntityCreateResponse::Status, + status_reasons: ^(Lithic::Internal::Type::ArrayOf[enum: Lithic::Models::AccountHolders::EntityCreateResponse::StatusReason]) + } + end + end + + def test_delete_required_params + response = + @lithic.account_holders.entities.delete( + "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", + account_holder_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" + ) + + assert_pattern do + response => Lithic::AccountHolders::AccountHolderEntity + end + + assert_pattern do + response => { + token: String, + account_holder_token: String, + address: Lithic::AccountHolders::AccountHolderEntity::Address, + dob: String | nil, + email: String | nil, + first_name: String | nil, + last_name: String | nil, + phone_number: String | nil, + status: Lithic::AccountHolders::AccountHolderEntity::Status, + type: Lithic::AccountHolders::AccountHolderEntity::Type + } + end + end +end diff --git a/test/lithic/resources/financial_accounts/interest_tier_schedule_test.rb b/test/lithic/resources/financial_accounts/interest_tier_schedule_test.rb new file mode 100644 index 00000000..5767f495 --- /dev/null +++ b/test/lithic/resources/financial_accounts/interest_tier_schedule_test.rb @@ -0,0 +1,105 @@ +# frozen_string_literal: true + +require_relative "../../test_helper" + +class Lithic::Test::Resources::FinancialAccounts::InterestTierScheduleTest < Lithic::Test::ResourceTest + def test_create_required_params + response = + @lithic.financial_accounts.interest_tier_schedule.create( + "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", + credit_product_token: "credit_product_token", + effective_date: "2019-12-27" + ) + + assert_pattern do + response => Lithic::FinancialAccounts::FinancialAccountsInterestTierSchedule + end + + assert_pattern do + response => { + credit_product_token: String, + effective_date: Date, + tier_name: String | nil, + tier_rates: Lithic::Internal::Type::Unknown | nil + } + end + end + + def test_retrieve_required_params + response = + @lithic.financial_accounts.interest_tier_schedule.retrieve( + "2019-12-27", + financial_account_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" + ) + + assert_pattern do + response => Lithic::FinancialAccounts::FinancialAccountsInterestTierSchedule + end + + assert_pattern do + response => { + credit_product_token: String, + effective_date: Date, + tier_name: String | nil, + tier_rates: Lithic::Internal::Type::Unknown | nil + } + end + end + + def test_update_required_params + response = + @lithic.financial_accounts.interest_tier_schedule.update( + "2019-12-27", + financial_account_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" + ) + + assert_pattern do + response => Lithic::FinancialAccounts::FinancialAccountsInterestTierSchedule + end + + assert_pattern do + response => { + credit_product_token: String, + effective_date: Date, + tier_name: String | nil, + tier_rates: Lithic::Internal::Type::Unknown | nil + } + end + end + + def test_list + response = @lithic.financial_accounts.interest_tier_schedule.list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") + + assert_pattern do + response => Lithic::Internal::SinglePage + end + + row = response.to_enum.first + return if row.nil? + + assert_pattern do + row => Lithic::FinancialAccounts::FinancialAccountsInterestTierSchedule + end + + assert_pattern do + row => { + credit_product_token: String, + effective_date: Date, + tier_name: String | nil, + tier_rates: Lithic::Internal::Type::Unknown | nil + } + end + end + + def test_delete_required_params + response = + @lithic.financial_accounts.interest_tier_schedule.delete( + "2019-12-27", + financial_account_token: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" + ) + + assert_pattern do + response => nil + end + end +end diff --git a/test/lithic/resources/financial_accounts/loan_tape_configuration_test.rb b/test/lithic/resources/financial_accounts/loan_tape_configuration_test.rb new file mode 100644 index 00000000..9e82dbed --- /dev/null +++ b/test/lithic/resources/financial_accounts/loan_tape_configuration_test.rb @@ -0,0 +1,26 @@ +# frozen_string_literal: true + +require_relative "../../test_helper" + +class Lithic::Test::Resources::FinancialAccounts::LoanTapeConfigurationTest < Lithic::Test::ResourceTest + def test_retrieve + response = + @lithic.financial_accounts.loan_tape_configuration.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") + + assert_pattern do + response => Lithic::FinancialAccounts::FinancialAccountsLoanTapeConfiguration + end + + assert_pattern do + response => { + created_at: Time, + financial_account_token: String, + instance_token: String, + updated_at: Time, + credit_product_token: String | nil, + loan_tape_rebuild_configuration: Lithic::FinancialAccounts::LoanTapeRebuildConfiguration | nil, + tier_schedule_changed_at: Time | nil + } + end + end +end