diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 857b235a..0114ce37 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.91.2" + ".": "0.92.0" } \ No newline at end of file diff --git a/.stats.yml b/.stats.yml index f1b4b0a5..2b14f03c 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 156 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-8469aee20249c9dcb2b57796df62fd39d2c14668a6853476b6c1bab9c80a4e4c.yml -openapi_spec_hash: 3339f9fd912f2eb8ba5efc3c73f5d030 -config_hash: 620bf845d9ccfaf0ad7e2452463bb227 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-9580d7ed7ee603cba3dd0db9bb1ee48094dfe2a90c1ca13a7f10ab8deaa73e2c.yml +openapi_spec_hash: 6f707e3df699aec761f20db720fb3a32 +config_hash: dc221a354631e360e545ebb7435ecd35 diff --git a/CHANGELOG.md b/CHANGELOG.md index 7cb76c75..7d400bcd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 0.92.0 (2025-05-12) + +Full Changelog: [v0.91.2...v0.92.0](https://github.com/lithic-com/lithic-python/compare/v0.91.2...v0.92.0) + +### Features + +* **api:** manual updates ([16d9634](https://github.com/lithic-com/lithic-python/commit/16d9634aac35c3039a01800ae548e6d3a5939b94)) + ## 0.91.2 (2025-05-09) Full Changelog: [v0.91.1...v0.91.2](https://github.com/lithic-com/lithic-python/compare/v0.91.1...v0.91.2) diff --git a/pyproject.toml b/pyproject.toml index f29cd8b5..9d650a5f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "lithic" -version = "0.91.2" +version = "0.92.0" description = "The official Python library for the lithic API" dynamic = ["readme"] license = "Apache-2.0" diff --git a/src/lithic/_version.py b/src/lithic/_version.py index 20550971..b187bc34 100644 --- a/src/lithic/_version.py +++ b/src/lithic/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "lithic" -__version__ = "0.91.2" # x-release-please-version +__version__ = "0.92.0" # x-release-please-version diff --git a/src/lithic/resources/cards/cards.py b/src/lithic/resources/cards/cards.py index f545e7a4..caba9a30 100644 --- a/src/lithic/resources/cards/cards.py +++ b/src/lithic/resources/cards/cards.py @@ -416,6 +416,7 @@ def list( begin: Union[str, datetime] | NotGiven = NOT_GIVEN, end: Union[str, datetime] | NotGiven = NOT_GIVEN, ending_before: str | NotGiven = NOT_GIVEN, + memo: str | NotGiven = NOT_GIVEN, page_size: int | NotGiven = NOT_GIVEN, starting_after: str | NotGiven = NOT_GIVEN, state: Literal["CLOSED", "OPEN", "PAUSED", "PENDING_ACTIVATION", "PENDING_FULFILLMENT"] | NotGiven = NOT_GIVEN, @@ -441,6 +442,8 @@ def list( ending_before: A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item. + memo: Returns cards containing the specified partial or full memo text. + page_size: Page size (for pagination). starting_after: A cursor representing an item's token after which a page of results should @@ -470,6 +473,7 @@ def list( "begin": begin, "end": end, "ending_before": ending_before, + "memo": memo, "page_size": page_size, "starting_after": starting_after, "state": state, @@ -1403,6 +1407,7 @@ def list( begin: Union[str, datetime] | NotGiven = NOT_GIVEN, end: Union[str, datetime] | NotGiven = NOT_GIVEN, ending_before: str | NotGiven = NOT_GIVEN, + memo: str | NotGiven = NOT_GIVEN, page_size: int | NotGiven = NOT_GIVEN, starting_after: str | NotGiven = NOT_GIVEN, state: Literal["CLOSED", "OPEN", "PAUSED", "PENDING_ACTIVATION", "PENDING_FULFILLMENT"] | NotGiven = NOT_GIVEN, @@ -1428,6 +1433,8 @@ def list( ending_before: A cursor representing an item's token before which a page of results should end. Used to retrieve the previous page of results before this item. + memo: Returns cards containing the specified partial or full memo text. + page_size: Page size (for pagination). starting_after: A cursor representing an item's token after which a page of results should @@ -1457,6 +1464,7 @@ def list( "begin": begin, "end": end, "ending_before": ending_before, + "memo": memo, "page_size": page_size, "starting_after": starting_after, "state": state, diff --git a/src/lithic/resources/events/events.py b/src/lithic/resources/events/events.py index 8907c3a3..d4d3c5b9 100644 --- a/src/lithic/resources/events/events.py +++ b/src/lithic/resources/events/events.py @@ -133,6 +133,7 @@ def list( "external_payment.updated", "financial_account.created", "financial_account.updated", + "funding_event.created", "loan_tape.created", "loan_tape.updated", "management_operation.created", @@ -397,6 +398,7 @@ def list( "external_payment.updated", "financial_account.created", "financial_account.updated", + "funding_event.created", "loan_tape.created", "loan_tape.updated", "management_operation.created", diff --git a/src/lithic/resources/events/subscriptions.py b/src/lithic/resources/events/subscriptions.py index 8371a7e1..c0df898e 100644 --- a/src/lithic/resources/events/subscriptions.py +++ b/src/lithic/resources/events/subscriptions.py @@ -85,6 +85,7 @@ def create( "external_payment.updated", "financial_account.created", "financial_account.updated", + "funding_event.created", "loan_tape.created", "loan_tape.updated", "management_operation.created", @@ -219,6 +220,7 @@ def update( "external_payment.updated", "financial_account.created", "financial_account.updated", + "funding_event.created", "loan_tape.created", "loan_tape.updated", "management_operation.created", @@ -659,6 +661,7 @@ def send_simulated_example( "external_payment.updated", "financial_account.created", "financial_account.updated", + "funding_event.created", "loan_tape.created", "loan_tape.updated", "management_operation.created", @@ -769,6 +772,7 @@ async def create( "external_payment.updated", "financial_account.created", "financial_account.updated", + "funding_event.created", "loan_tape.created", "loan_tape.updated", "management_operation.created", @@ -903,6 +907,7 @@ async def update( "external_payment.updated", "financial_account.created", "financial_account.updated", + "funding_event.created", "loan_tape.created", "loan_tape.updated", "management_operation.created", @@ -1343,6 +1348,7 @@ async def send_simulated_example( "external_payment.updated", "financial_account.created", "financial_account.updated", + "funding_event.created", "loan_tape.created", "loan_tape.updated", "management_operation.created", diff --git a/src/lithic/types/card_list_params.py b/src/lithic/types/card_list_params.py index 13dc9e53..456a8bea 100644 --- a/src/lithic/types/card_list_params.py +++ b/src/lithic/types/card_list_params.py @@ -33,6 +33,9 @@ class CardListParams(TypedDict, total=False): Used to retrieve the previous page of results before this item. """ + memo: str + """Returns cards containing the specified partial or full memo text.""" + page_size: int """Page size (for pagination).""" diff --git a/src/lithic/types/event.py b/src/lithic/types/event.py index ce2cbe4a..e5017865 100644 --- a/src/lithic/types/event.py +++ b/src/lithic/types/event.py @@ -45,6 +45,7 @@ class Event(BaseModel): "external_payment.updated", "financial_account.created", "financial_account.updated", + "funding_event.created", "loan_tape.created", "loan_tape.updated", "management_operation.created", diff --git a/src/lithic/types/event_list_params.py b/src/lithic/types/event_list_params.py index 92820896..62fd37a5 100644 --- a/src/lithic/types/event_list_params.py +++ b/src/lithic/types/event_list_params.py @@ -57,6 +57,7 @@ class EventListParams(TypedDict, total=False): "external_payment.updated", "financial_account.created", "financial_account.updated", + "funding_event.created", "loan_tape.created", "loan_tape.updated", "management_operation.created", diff --git a/src/lithic/types/event_subscription.py b/src/lithic/types/event_subscription.py index acf5f6e7..de52401d 100644 --- a/src/lithic/types/event_subscription.py +++ b/src/lithic/types/event_subscription.py @@ -48,6 +48,7 @@ class EventSubscription(BaseModel): "external_payment.updated", "financial_account.created", "financial_account.updated", + "funding_event.created", "loan_tape.created", "loan_tape.updated", "management_operation.created", diff --git a/src/lithic/types/events/subscription_create_params.py b/src/lithic/types/events/subscription_create_params.py index 00455890..61da0828 100644 --- a/src/lithic/types/events/subscription_create_params.py +++ b/src/lithic/types/events/subscription_create_params.py @@ -45,6 +45,7 @@ class SubscriptionCreateParams(TypedDict, total=False): "external_payment.updated", "financial_account.created", "financial_account.updated", + "funding_event.created", "loan_tape.created", "loan_tape.updated", "management_operation.created", diff --git a/src/lithic/types/events/subscription_send_simulated_example_params.py b/src/lithic/types/events/subscription_send_simulated_example_params.py index cd949c85..cb185c2d 100644 --- a/src/lithic/types/events/subscription_send_simulated_example_params.py +++ b/src/lithic/types/events/subscription_send_simulated_example_params.py @@ -34,6 +34,7 @@ class SubscriptionSendSimulatedExampleParams(TypedDict, total=False): "external_payment.updated", "financial_account.created", "financial_account.updated", + "funding_event.created", "loan_tape.created", "loan_tape.updated", "management_operation.created", diff --git a/src/lithic/types/events/subscription_update_params.py b/src/lithic/types/events/subscription_update_params.py index 1fd5687a..bc00aa03 100644 --- a/src/lithic/types/events/subscription_update_params.py +++ b/src/lithic/types/events/subscription_update_params.py @@ -45,6 +45,7 @@ class SubscriptionUpdateParams(TypedDict, total=False): "external_payment.updated", "financial_account.created", "financial_account.updated", + "funding_event.created", "loan_tape.created", "loan_tape.updated", "management_operation.created", diff --git a/src/lithic/types/financial_accounts/statements/statement_line_items.py b/src/lithic/types/financial_accounts/statements/statement_line_items.py index 5016fd58..069b1881 100644 --- a/src/lithic/types/financial_accounts/statements/statement_line_items.py +++ b/src/lithic/types/financial_accounts/statements/statement_line_items.py @@ -29,6 +29,7 @@ class Data(BaseModel): "MANAGEMENT_FEE", "MANAGEMENT_REWARD", "MANAGEMENT_DISBURSEMENT", + "PROGRAM_FUNDING", ] created: datetime diff --git a/src/lithic/types/three_ds/authentication_retrieve_response.py b/src/lithic/types/three_ds/authentication_retrieve_response.py index b4ed6923..6662cafd 100644 --- a/src/lithic/types/three_ds/authentication_retrieve_response.py +++ b/src/lithic/types/three_ds/authentication_retrieve_response.py @@ -292,6 +292,12 @@ class Transaction(BaseModel): Maps to EMV 3DS field purchaseAmount. """ + cardholder_amount: Optional[float] = None + """Approximate amount of the purchase in minor units of cardholder currency. + + Derived from `amount` using a daily conversion rate. + """ + currency: str """Currency of the purchase. Maps to EMV 3DS field purchaseCurrency.""" diff --git a/src/lithic/types/transaction.py b/src/lithic/types/transaction.py index 7a56ffc7..6f5ec8ed 100644 --- a/src/lithic/types/transaction.py +++ b/src/lithic/types/transaction.py @@ -30,6 +30,7 @@ "EventAmountsSettlement", "EventNetworkInfo", "EventNetworkInfoAcquirer", + "EventNetworkInfoAmex", "EventNetworkInfoMastercard", "EventNetworkInfoVisa", "EventRuleResult", @@ -157,6 +158,9 @@ class CardholderAuthentication(BaseModel): (deprecated, use `authentication_result`) """ + authentication_method: Optional[Literal["FRICTIONLESS", "CHALLENGE", "NONE"]] = None + """Indicates the method used to authenticate the cardholder.""" + class Merchant(BaseModel): acceptor_id: str @@ -369,6 +373,24 @@ class EventNetworkInfoAcquirer(BaseModel): """Identifier assigned by the acquirer.""" +class EventNetworkInfoAmex(BaseModel): + original_transaction_id: Optional[str] = None + """Identifier assigned by American Express. + + Matches the `transaction_id` of a prior related event. May be populated in + incremental authorizations (authorization requests that augment a previously + authorized amount), authorization advices, financial authorizations, and + clearings. + """ + + transaction_id: Optional[str] = None + """ + Identifier assigned by American Express to link original messages to subsequent + messages. Guaranteed by American Express to be unique for each original + authorization and financial authorization. + """ + + class EventNetworkInfoMastercard(BaseModel): banknet_reference_number: Optional[str] = None """Identifier assigned by Mastercard. @@ -427,6 +449,8 @@ class EventNetworkInfoVisa(BaseModel): class EventNetworkInfo(BaseModel): acquirer: Optional[EventNetworkInfoAcquirer] = None + amex: Optional[EventNetworkInfoAmex] = None + mastercard: Optional[EventNetworkInfoMastercard] = None visa: Optional[EventNetworkInfoVisa] = None @@ -740,12 +764,11 @@ class Transaction(BaseModel): merchant_currency: str """3-character alphabetic ISO 4217 code for the local currency of the transaction.""" - network: Optional[Literal["INTERLINK", "MAESTRO", "MASTERCARD", "UNKNOWN", "VISA"]] = None + network: Optional[Literal["AMEX", "INTERLINK", "MAESTRO", "MASTERCARD", "UNKNOWN", "VISA"]] = None """Card network of the authorization. - Can be `INTERLINK`, `MAESTRO`, `MASTERCARD`, `VISA`, or `UNKNOWN`. Value is - `UNKNOWN` when Lithic cannot determine the network code from the upstream - provider. + Value is `UNKNOWN` when Lithic cannot determine the network code from the + upstream provider. """ network_risk_score: Optional[int] = None diff --git a/tests/api_resources/test_cards.py b/tests/api_resources/test_cards.py index a089e191..cfc20f69 100644 --- a/tests/api_resources/test_cards.py +++ b/tests/api_resources/test_cards.py @@ -192,6 +192,7 @@ def test_method_list_with_all_params(self, client: Lithic) -> None: begin=parse_datetime("2019-12-27T18:11:19.117Z"), end=parse_datetime("2019-12-27T18:11:19.117Z"), ending_before="ending_before", + memo="memo", page_size=1, starting_after="starting_after", state="CLOSED", @@ -813,6 +814,7 @@ async def test_method_list_with_all_params(self, async_client: AsyncLithic) -> N begin=parse_datetime("2019-12-27T18:11:19.117Z"), end=parse_datetime("2019-12-27T18:11:19.117Z"), ending_before="ending_before", + memo="memo", page_size=1, starting_after="starting_after", state="CLOSED",