diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 859ebd32..76293726 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.1.0-alpha.42" + ".": "0.1.0-alpha.43" } \ No newline at end of file diff --git a/.stats.yml b/.stats.yml index 829e46b3..fa389875 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 169 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-1d44bb7fad99487af1161eb24dfd5369440eda7e80ed237cbc1acc6802a7d212.yml openapi_spec_hash: 1b6b6215b60094b76b91c56b925a251a -config_hash: ac676e77c8ca051c7aad978c26e96345 +config_hash: e68a052fd109c0885732114753abc739 diff --git a/CHANGELOG.md b/CHANGELOG.md index bd098772..40d5772d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 0.1.0-alpha.43 (2025-09-11) + +Full Changelog: [v0.1.0-alpha.42...v0.1.0-alpha.43](https://github.com/lithic-com/lithic-ruby/compare/v0.1.0-alpha.42...v0.1.0-alpha.43) + +### Features + +* **api:** manual updates ([bde90fd](https://github.com/lithic-com/lithic-ruby/commit/bde90fdad11812628ad656e2a32c40d06184cbaf)) + ## 0.1.0-alpha.42 (2025-09-09) Full Changelog: [v0.1.0-alpha.41...v0.1.0-alpha.42](https://github.com/lithic-com/lithic-ruby/compare/v0.1.0-alpha.41...v0.1.0-alpha.42) diff --git a/Gemfile.lock b/Gemfile.lock index 466ec222..29a0588e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -11,7 +11,7 @@ GIT PATH remote: . specs: - lithic (0.1.0.pre.alpha.42) + lithic (0.1.0.pre.alpha.43) connection_pool GEM diff --git a/README.md b/README.md index 14a8b49a..18009e42 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ To use this gem, install via Bundler by adding the following to your application ```ruby -gem "lithic", "~> 0.1.0.pre.alpha.42" +gem "lithic", "~> 0.1.0.pre.alpha.43" ``` diff --git a/lib/lithic.rb b/lib/lithic.rb index f6385160..f7ea6358 100644 --- a/lib/lithic.rb +++ b/lib/lithic.rb @@ -339,6 +339,8 @@ require_relative "lithic/models/transaction_simulate_authorization_response" require_relative "lithic/models/transaction_simulate_clearing_params" require_relative "lithic/models/transaction_simulate_clearing_response" +require_relative "lithic/models/transaction_simulate_credit_authorization_advice_params" +require_relative "lithic/models/transaction_simulate_credit_authorization_advice_response" require_relative "lithic/models/transaction_simulate_credit_authorization_params" require_relative "lithic/models/transaction_simulate_credit_authorization_response" require_relative "lithic/models/transaction_simulate_return_params" diff --git a/lib/lithic/models.rb b/lib/lithic/models.rb index a0736466..c977e1f9 100644 --- a/lib/lithic/models.rb +++ b/lib/lithic/models.rb @@ -375,6 +375,9 @@ module Lithic TransactionSimulateClearingParams = Lithic::Models::TransactionSimulateClearingParams + TransactionSimulateCreditAuthorizationAdviceParams = + Lithic::Models::TransactionSimulateCreditAuthorizationAdviceParams + TransactionSimulateCreditAuthorizationParams = Lithic::Models::TransactionSimulateCreditAuthorizationParams diff --git a/lib/lithic/models/transaction_simulate_credit_authorization_advice_params.rb b/lib/lithic/models/transaction_simulate_credit_authorization_advice_params.rb new file mode 100644 index 00000000..d3a20079 --- /dev/null +++ b/lib/lithic/models/transaction_simulate_credit_authorization_advice_params.rb @@ -0,0 +1,62 @@ +# frozen_string_literal: true + +module Lithic + module Models + # @see Lithic::Resources::Transactions#simulate_credit_authorization_advice + class TransactionSimulateCreditAuthorizationAdviceParams < Lithic::Internal::Type::BaseModel + extend Lithic::Internal::Type::RequestParameters::Converter + include Lithic::Internal::Type::RequestParameters + + # @!attribute amount + # Amount (in cents). Any value entered will be converted into a negative amount in + # the simulated transaction. For example, entering 100 in this field will appear + # as a -100 amount in the transaction. + # + # @return [Integer] + required :amount, Integer + + # @!attribute descriptor + # Merchant descriptor. + # + # @return [String] + required :descriptor, String + + # @!attribute pan + # Sixteen digit card number. + # + # @return [String] + required :pan, String + + # @!attribute mcc + # Merchant category code for the transaction to be simulated. A four-digit number + # listed in ISO 18245. Supported merchant category codes can be found + # [here](https://docs.lithic.com/docs/transactions#merchant-category-codes-mccs). + # + # @return [String, nil] + optional :mcc, String + + # @!attribute merchant_acceptor_id + # Unique identifier to identify the payment card acceptor. + # + # @return [String, nil] + optional :merchant_acceptor_id, String + + # @!method initialize(amount:, descriptor:, pan:, mcc: nil, merchant_acceptor_id: nil, request_options: {}) + # Some parameter documentations has been truncated, see + # {Lithic::Models::TransactionSimulateCreditAuthorizationAdviceParams} for more + # details. + # + # @param amount [Integer] Amount (in cents). Any value entered will be converted into a negative amount in + # + # @param descriptor [String] Merchant descriptor. + # + # @param pan [String] Sixteen digit card number. + # + # @param mcc [String] Merchant category code for the transaction to be simulated. A four-digit number + # + # @param merchant_acceptor_id [String] Unique identifier to identify the payment card acceptor. + # + # @param request_options [Lithic::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/lithic/models/transaction_simulate_credit_authorization_advice_response.rb b/lib/lithic/models/transaction_simulate_credit_authorization_advice_response.rb new file mode 100644 index 00000000..f22e8581 --- /dev/null +++ b/lib/lithic/models/transaction_simulate_credit_authorization_advice_response.rb @@ -0,0 +1,25 @@ +# frozen_string_literal: true + +module Lithic + module Models + # @see Lithic::Resources::Transactions#simulate_credit_authorization_advice + class TransactionSimulateCreditAuthorizationAdviceResponse < Lithic::Internal::Type::BaseModel + # @!attribute token + # A unique token to reference this transaction. + # + # @return [String, nil] + optional :token, String + + # @!attribute debugging_request_id + # Debugging request ID to share with Lithic Support team. + # + # @return [String, nil] + optional :debugging_request_id, String + + # @!method initialize(token: nil, debugging_request_id: nil) + # @param token [String] A unique token to reference this transaction. + # + # @param debugging_request_id [String] Debugging request ID to share with Lithic Support team. + end + end +end diff --git a/lib/lithic/resources/transactions.rb b/lib/lithic/resources/transactions.rb index 84833f74..b807202a 100644 --- a/lib/lithic/resources/transactions.rb +++ b/lib/lithic/resources/transactions.rb @@ -204,6 +204,8 @@ def simulate_clearing(params) ) end + # @deprecated use `simulate_credit_authorization_advice` instead + # # Some parameter documentations has been truncated, see # {Lithic::Models::TransactionSimulateCreditAuthorizationParams} for more details. # @@ -238,6 +240,41 @@ def simulate_credit_authorization(params) ) end + # Some parameter documentations has been truncated, see + # {Lithic::Models::TransactionSimulateCreditAuthorizationAdviceParams} for more + # details. + # + # Simulates a credit authorization advice from the card network. This message + # indicates that the network approved a credit authorization on your behalf. + # + # @overload simulate_credit_authorization_advice(amount:, descriptor:, pan:, mcc: nil, merchant_acceptor_id: nil, request_options: {}) + # + # @param amount [Integer] Amount (in cents). Any value entered will be converted into a negative amount in + # + # @param descriptor [String] Merchant descriptor. + # + # @param pan [String] Sixteen digit card number. + # + # @param mcc [String] Merchant category code for the transaction to be simulated. A four-digit number + # + # @param merchant_acceptor_id [String] Unique identifier to identify the payment card acceptor. + # + # @param request_options [Lithic::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Lithic::Models::TransactionSimulateCreditAuthorizationAdviceResponse] + # + # @see Lithic::Models::TransactionSimulateCreditAuthorizationAdviceParams + def simulate_credit_authorization_advice(params) + parsed, options = Lithic::TransactionSimulateCreditAuthorizationAdviceParams.dump_request(params) + @client.request( + method: :post, + path: "v1/simulate/credit_authorization_advice", + body: parsed, + model: Lithic::Models::TransactionSimulateCreditAuthorizationAdviceResponse, + options: options + ) + end + # Returns, or refunds, an amount back to a card. Returns simulated via this # endpoint clear immediately, without prior authorization, and result in a # `SETTLED` transaction status. diff --git a/lib/lithic/version.rb b/lib/lithic/version.rb index 4df379ea..015c596c 100644 --- a/lib/lithic/version.rb +++ b/lib/lithic/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module Lithic - VERSION = "0.1.0.pre.alpha.42" + VERSION = "0.1.0.pre.alpha.43" end diff --git a/rbi/lithic/models.rbi b/rbi/lithic/models.rbi index d677d5c4..bdf14ea6 100644 --- a/rbi/lithic/models.rbi +++ b/rbi/lithic/models.rbi @@ -367,6 +367,9 @@ module Lithic TransactionSimulateClearingParams = Lithic::Models::TransactionSimulateClearingParams + TransactionSimulateCreditAuthorizationAdviceParams = + Lithic::Models::TransactionSimulateCreditAuthorizationAdviceParams + TransactionSimulateCreditAuthorizationParams = Lithic::Models::TransactionSimulateCreditAuthorizationParams diff --git a/rbi/lithic/models/transaction_simulate_credit_authorization_advice_params.rbi b/rbi/lithic/models/transaction_simulate_credit_authorization_advice_params.rbi new file mode 100644 index 00000000..8d47a3db --- /dev/null +++ b/rbi/lithic/models/transaction_simulate_credit_authorization_advice_params.rbi @@ -0,0 +1,92 @@ +# typed: strong + +module Lithic + module Models + class TransactionSimulateCreditAuthorizationAdviceParams < Lithic::Internal::Type::BaseModel + extend Lithic::Internal::Type::RequestParameters::Converter + include Lithic::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Lithic::TransactionSimulateCreditAuthorizationAdviceParams, + Lithic::Internal::AnyHash + ) + end + + # Amount (in cents). Any value entered will be converted into a negative amount in + # the simulated transaction. For example, entering 100 in this field will appear + # as a -100 amount in the transaction. + sig { returns(Integer) } + attr_accessor :amount + + # Merchant descriptor. + sig { returns(String) } + attr_accessor :descriptor + + # Sixteen digit card number. + sig { returns(String) } + attr_accessor :pan + + # Merchant category code for the transaction to be simulated. A four-digit number + # listed in ISO 18245. Supported merchant category codes can be found + # [here](https://docs.lithic.com/docs/transactions#merchant-category-codes-mccs). + sig { returns(T.nilable(String)) } + attr_reader :mcc + + sig { params(mcc: String).void } + attr_writer :mcc + + # Unique identifier to identify the payment card acceptor. + sig { returns(T.nilable(String)) } + attr_reader :merchant_acceptor_id + + sig { params(merchant_acceptor_id: String).void } + attr_writer :merchant_acceptor_id + + sig do + params( + amount: Integer, + descriptor: String, + pan: String, + mcc: String, + merchant_acceptor_id: String, + request_options: Lithic::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + # Amount (in cents). Any value entered will be converted into a negative amount in + # the simulated transaction. For example, entering 100 in this field will appear + # as a -100 amount in the transaction. + amount:, + # Merchant descriptor. + descriptor:, + # Sixteen digit card number. + pan:, + # Merchant category code for the transaction to be simulated. A four-digit number + # listed in ISO 18245. Supported merchant category codes can be found + # [here](https://docs.lithic.com/docs/transactions#merchant-category-codes-mccs). + mcc: nil, + # Unique identifier to identify the payment card acceptor. + merchant_acceptor_id: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + amount: Integer, + descriptor: String, + pan: String, + mcc: String, + merchant_acceptor_id: String, + request_options: Lithic::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/lithic/models/transaction_simulate_credit_authorization_advice_response.rbi b/rbi/lithic/models/transaction_simulate_credit_authorization_advice_response.rbi new file mode 100644 index 00000000..08910eee --- /dev/null +++ b/rbi/lithic/models/transaction_simulate_credit_authorization_advice_response.rbi @@ -0,0 +1,46 @@ +# typed: strong + +module Lithic + module Models + class TransactionSimulateCreditAuthorizationAdviceResponse < Lithic::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Lithic::Models::TransactionSimulateCreditAuthorizationAdviceResponse, + Lithic::Internal::AnyHash + ) + end + + # A unique token to reference this transaction. + sig { returns(T.nilable(String)) } + attr_reader :token + + sig { params(token: String).void } + attr_writer :token + + # Debugging request ID to share with Lithic Support team. + sig { returns(T.nilable(String)) } + attr_reader :debugging_request_id + + sig { params(debugging_request_id: String).void } + attr_writer :debugging_request_id + + sig do + params(token: String, debugging_request_id: String).returns( + T.attached_class + ) + end + def self.new( + # A unique token to reference this transaction. + token: nil, + # Debugging request ID to share with Lithic Support team. + debugging_request_id: nil + ) + end + + sig { override.returns({ token: String, debugging_request_id: String }) } + def to_hash + end + end + end +end diff --git a/rbi/lithic/resources/transactions.rbi b/rbi/lithic/resources/transactions.rbi index 8f0dbeab..0f8d5415 100644 --- a/rbi/lithic/resources/transactions.rbi +++ b/rbi/lithic/resources/transactions.rbi @@ -241,6 +241,39 @@ module Lithic ) end + # Simulates a credit authorization advice from the card network. This message + # indicates that the network approved a credit authorization on your behalf. + sig do + params( + amount: Integer, + descriptor: String, + pan: String, + mcc: String, + merchant_acceptor_id: String, + request_options: Lithic::RequestOptions::OrHash + ).returns( + Lithic::Models::TransactionSimulateCreditAuthorizationAdviceResponse + ) + end + def simulate_credit_authorization_advice( + # Amount (in cents). Any value entered will be converted into a negative amount in + # the simulated transaction. For example, entering 100 in this field will appear + # as a -100 amount in the transaction. + amount:, + # Merchant descriptor. + descriptor:, + # Sixteen digit card number. + pan:, + # Merchant category code for the transaction to be simulated. A four-digit number + # listed in ISO 18245. Supported merchant category codes can be found + # [here](https://docs.lithic.com/docs/transactions#merchant-category-codes-mccs). + mcc: nil, + # Unique identifier to identify the payment card acceptor. + merchant_acceptor_id: nil, + request_options: {} + ) + end + # Returns, or refunds, an amount back to a card. Returns simulated via this # endpoint clear immediately, without prior authorization, and result in a # `SETTLED` transaction status. diff --git a/sig/lithic/models.rbs b/sig/lithic/models.rbs index f62c2a07..c1a1729b 100644 --- a/sig/lithic/models.rbs +++ b/sig/lithic/models.rbs @@ -333,6 +333,8 @@ module Lithic class TransactionSimulateClearingParams = Lithic::Models::TransactionSimulateClearingParams + class TransactionSimulateCreditAuthorizationAdviceParams = Lithic::Models::TransactionSimulateCreditAuthorizationAdviceParams + class TransactionSimulateCreditAuthorizationParams = Lithic::Models::TransactionSimulateCreditAuthorizationParams class TransactionSimulateReturnParams = Lithic::Models::TransactionSimulateReturnParams diff --git a/sig/lithic/models/transaction_simulate_credit_authorization_advice_params.rbs b/sig/lithic/models/transaction_simulate_credit_authorization_advice_params.rbs new file mode 100644 index 00000000..48590323 --- /dev/null +++ b/sig/lithic/models/transaction_simulate_credit_authorization_advice_params.rbs @@ -0,0 +1,50 @@ +module Lithic + module Models + type transaction_simulate_credit_authorization_advice_params = + { + amount: Integer, + descriptor: String, + pan: String, + mcc: String, + merchant_acceptor_id: String + } + & Lithic::Internal::Type::request_parameters + + class TransactionSimulateCreditAuthorizationAdviceParams < Lithic::Internal::Type::BaseModel + extend Lithic::Internal::Type::RequestParameters::Converter + include Lithic::Internal::Type::RequestParameters + + attr_accessor amount: Integer + + attr_accessor descriptor: String + + attr_accessor pan: String + + attr_reader mcc: String? + + def mcc=: (String) -> String + + attr_reader merchant_acceptor_id: String? + + def merchant_acceptor_id=: (String) -> String + + def initialize: ( + amount: Integer, + descriptor: String, + pan: String, + ?mcc: String, + ?merchant_acceptor_id: String, + ?request_options: Lithic::request_opts + ) -> void + + def to_hash: -> { + amount: Integer, + descriptor: String, + pan: String, + mcc: String, + merchant_acceptor_id: String, + request_options: Lithic::RequestOptions + } + end + end +end diff --git a/sig/lithic/models/transaction_simulate_credit_authorization_advice_response.rbs b/sig/lithic/models/transaction_simulate_credit_authorization_advice_response.rbs new file mode 100644 index 00000000..a91c77d3 --- /dev/null +++ b/sig/lithic/models/transaction_simulate_credit_authorization_advice_response.rbs @@ -0,0 +1,20 @@ +module Lithic + module Models + type transaction_simulate_credit_authorization_advice_response = + { token: String, debugging_request_id: String } + + class TransactionSimulateCreditAuthorizationAdviceResponse < Lithic::Internal::Type::BaseModel + attr_reader token: String? + + def token=: (String) -> String + + attr_reader debugging_request_id: String? + + def debugging_request_id=: (String) -> String + + def initialize: (?token: String, ?debugging_request_id: String) -> void + + def to_hash: -> { token: String, debugging_request_id: String } + end + end +end diff --git a/sig/lithic/resources/transactions.rbs b/sig/lithic/resources/transactions.rbs index d3e45caf..a5b20993 100644 --- a/sig/lithic/resources/transactions.rbs +++ b/sig/lithic/resources/transactions.rbs @@ -63,6 +63,15 @@ module Lithic ?request_options: Lithic::request_opts ) -> Lithic::Models::TransactionSimulateCreditAuthorizationResponse + def simulate_credit_authorization_advice: ( + amount: Integer, + descriptor: String, + pan: String, + ?mcc: String, + ?merchant_acceptor_id: String, + ?request_options: Lithic::request_opts + ) -> Lithic::Models::TransactionSimulateCreditAuthorizationAdviceResponse + def simulate_return: ( amount: Integer, descriptor: String, diff --git a/test/lithic/resources/transactions_test.rb b/test/lithic/resources/transactions_test.rb index 805031df..30e5a2d0 100644 --- a/test/lithic/resources/transactions_test.rb +++ b/test/lithic/resources/transactions_test.rb @@ -167,6 +167,26 @@ def test_simulate_credit_authorization_required_params end end + def test_simulate_credit_authorization_advice_required_params + response = + @lithic.transactions.simulate_credit_authorization_advice( + amount: 3831, + descriptor: "COFFEE SHOP", + pan: "4111111289144142" + ) + + assert_pattern do + response => Lithic::Models::TransactionSimulateCreditAuthorizationAdviceResponse + end + + assert_pattern do + response => { + token: String | nil, + debugging_request_id: String | nil + } + end + end + def test_simulate_return_required_params response = @lithic.transactions.simulate_return(amount: 3831, descriptor: "COFFEE SHOP", pan: "4111111289144142")