From 126641d827512c68dfef741d7a6a053cbfe94f12 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 28 May 2026 11:09:29 +0000 Subject: [PATCH 1/5] feat(api): Add created field and make completed_at nullable in latest_challenge --- .stats.yml | 4 ++-- src/lithic/types/card_authorization.py | 15 +++++++++------ 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/.stats.yml b/.stats.yml index fd5aad70..9a6d985e 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 194 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic/lithic-efe780032e44b3cf0f6914407e43bce6aa7176fa50aa6ec018f93c1f28af8490.yml -openapi_spec_hash: fcb4ca53ca59978f23f21d7c74fcc0b0 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic/lithic-af18ede440e3b8a8b15aa3831c5add93c25934cdb037a0c6128a4c4e82fe5d4f.yml +openapi_spec_hash: be9b3152e28212b685337a42ad1acf97 config_hash: a0a579b0564a5c18568a78f5ba2b6653 diff --git a/src/lithic/types/card_authorization.py b/src/lithic/types/card_authorization.py index b477c63f..5e1287df 100644 --- a/src/lithic/types/card_authorization.py +++ b/src/lithic/types/card_authorization.py @@ -201,6 +201,15 @@ class LatestChallenge(BaseModel): The latest Authorization Challenge that was issued to the cardholder for this merchant. """ + completed_at: Optional[datetime] = None + """The date and time when the Authorization Challenge was completed in UTC. + + Filled only if the challenge has been completed. + """ + + created: datetime + """The date and time when the Authorization Challenge was created in UTC""" + method: Literal["SMS", "OUT_OF_BAND"] """The method used to deliver the challenge to the cardholder @@ -224,12 +233,6 @@ class LatestChallenge(BaseModel): - `ERROR` - There was an error processing the challenge """ - completed_at: Optional[datetime] = None - """The date and time when the Authorization Challenge was completed in UTC. - - Present only if the status is `COMPLETED`. - """ - class NetworkSpecificDataMastercardOnBehalfServiceResult(BaseModel): result_1: str From 71b5283efe22257a9a706ebc41ba51c523775d5c Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 28 May 2026 18:30:04 +0000 Subject: [PATCH 2/5] docs(api): update support contact URL in cards/account/card documentation --- .stats.yml | 4 ++-- src/lithic/resources/cards/cards.py | 8 ++++---- src/lithic/types/account.py | 2 +- src/lithic/types/card.py | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.stats.yml b/.stats.yml index 9a6d985e..3673729f 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 194 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic/lithic-af18ede440e3b8a8b15aa3831c5add93c25934cdb037a0c6128a4c4e82fe5d4f.yml -openapi_spec_hash: be9b3152e28212b685337a42ad1acf97 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic/lithic-c1cfc621309e4d49899f9b055c399d7ad3eb24c05bad299322c1e03804d3d130.yml +openapi_spec_hash: 799d9da903ff2e4d51fe3f1566d17c92 config_hash: a0a579b0564a5c18568a78f5ba2b6653 diff --git a/src/lithic/resources/cards/cards.py b/src/lithic/resources/cards/cards.py index 0ab13db6..41d0e592 100644 --- a/src/lithic/resources/cards/cards.py +++ b/src/lithic/resources/cards/cards.py @@ -1200,8 +1200,8 @@ def search_by_pan( Customers must be PCI compliant to use this endpoint. Please contact - [support@lithic.com](mailto:support@lithic.com) for questions. _Note: this is a - `POST` endpoint because it is more secure to send sensitive data in a request + [support.lithic.com](https://support.lithic.com/) for questions. _Note: this is + a `POST` endpoint because it is more secure to send sensitive data in a request body than in a URL._ Args: @@ -2428,8 +2428,8 @@ async def search_by_pan( Customers must be PCI compliant to use this endpoint. Please contact - [support@lithic.com](mailto:support@lithic.com) for questions. _Note: this is a - `POST` endpoint because it is more secure to send sensitive data in a request + [support.lithic.com](https://support.lithic.com/) for questions. _Note: this is + a `POST` endpoint because it is more secure to send sensitive data in a request body than in a URL._ Args: diff --git a/src/lithic/types/account.py b/src/lithic/types/account.py index 7cc0f683..94a944b3 100644 --- a/src/lithic/types/account.py +++ b/src/lithic/types/account.py @@ -101,7 +101,7 @@ class Account(BaseModel): accounts are unable to be transitioned to `ACTIVE` or `PAUSED` states. Accounts can be manually set to `CLOSED`, or this can be done by Lithic due to failure to pass KYB/KYC or for risk/compliance reasons. Please contact - [support@lithic.com](mailto:support@lithic.com) if you believe this was done + [support.lithic.com](https://support.lithic.com/) if you believe this was done by mistake. """ diff --git a/src/lithic/types/card.py b/src/lithic/types/card.py index 99b56ba7..3bb986c2 100644 --- a/src/lithic/types/card.py +++ b/src/lithic/types/card.py @@ -19,5 +19,5 @@ class Card(NonPCICard): """Primary Account Number (PAN) (i.e. the card number). Customers must be PCI compliant to have PAN returned as a - field in production. Please contact support@lithic.com for questions. + field in production. Please contact https://support.lithic.com/ for questions. """ From 5bde4bcae161d20561ed1be62e636462018365e7 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 4 Jun 2026 22:44:33 +0000 Subject: [PATCH 3/5] feat(api): add name_validation field to card_authorization --- .stats.yml | 4 +-- src/lithic/types/card_authorization.py | 47 ++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3673729f..d96ccb7e 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 194 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic/lithic-c1cfc621309e4d49899f9b055c399d7ad3eb24c05bad299322c1e03804d3d130.yml -openapi_spec_hash: 799d9da903ff2e4d51fe3f1566d17c92 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic/lithic-841a8ecd13fc28d3df06e6e11f63df6106be819aad9fe3dd6637afd7bc142a56.yml +openapi_spec_hash: 705fb3eb9dc54e3b2b542896154cff80 config_hash: a0a579b0564a5c18568a78f5ba2b6653 diff --git a/src/lithic/types/card_authorization.py b/src/lithic/types/card_authorization.py index 5e1287df..4b11c293 100644 --- a/src/lithic/types/card_authorization.py +++ b/src/lithic/types/card_authorization.py @@ -20,6 +20,9 @@ "Avs", "Card", "Merchant", + "NameValidation", + "NameValidationName", + "NameValidationNameOnFileMatch", "ServiceLocation", "FleetInfo", "LatestChallenge", @@ -149,6 +152,43 @@ class Merchant(merchant.Merchant): """Street address of card acceptor.""" +class NameValidationName(BaseModel): + """Cardholder name as provided by the card network.""" + + first: str + """First name""" + + last: str + """Last name""" + + middle: Optional[str] = None + """Middle name""" + + +class NameValidationNameOnFileMatch(BaseModel): + """ + Lithic's computed match result comparing the network-provided name to the name on file. + """ + + full_name: Literal["MATCH", "PARTIAL_MATCH", "NO_MATCH", "UNVERIFIED"] + """Overall name match result.""" + + +class NameValidation(BaseModel): + """ + Network name validation data, present when the card network requested name validation for this transaction. Contains the cardholder name provided by the network and Lithic's computed match result against KYC data on file. + """ + + name: NameValidationName + """Cardholder name as provided by the card network.""" + + name_on_file_match: NameValidationNameOnFileMatch + """ + Lithic's computed match result comparing the network-provided name to the name + on file. + """ + + class ServiceLocation(BaseModel): """ Where the cardholder received the service, when different from the card acceptor location. This is populated from network data elements such as Mastercard DE-122 SE1 SF9-14 and Visa F34 DS02. @@ -470,6 +510,13 @@ class CardAuthorization(BaseModel): merchant_currency: str """3-character alphabetic ISO 4217 code for the local currency of the transaction.""" + name_validation: Optional[NameValidation] = None + """ + Network name validation data, present when the card network requested name + validation for this transaction. Contains the cardholder name provided by the + network and Lithic's computed match result against KYC data on file. + """ + service_location: Optional[ServiceLocation] = None """ Where the cardholder received the service, when different from the card acceptor From dc58d95543aa7723246f81b6d836512f19bc02a0 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 5 Jun 2026 06:55:19 +0000 Subject: [PATCH 4/5] feat(api): add hold_adjustment action type to auth rules --- .stats.yml | 4 ++-- .../conditional_authorization_adjustment_parameters.py | 10 +++++----- ...tional_authorization_adjustment_parameters_param.py | 10 +++++----- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.stats.yml b/.stats.yml index d96ccb7e..e70ac5eb 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 194 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic/lithic-841a8ecd13fc28d3df06e6e11f63df6106be819aad9fe3dd6637afd7bc142a56.yml -openapi_spec_hash: 705fb3eb9dc54e3b2b542896154cff80 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic/lithic-93254f6abf9fab9e687be2f48198b5126c298b634e2ad626abf413f560f1cbe1.yml +openapi_spec_hash: 6aaac55fbf96d785ca3867adc3c7ca0e config_hash: a0a579b0564a5c18568a78f5ba2b6653 diff --git a/src/lithic/types/auth_rules/conditional_authorization_adjustment_parameters.py b/src/lithic/types/auth_rules/conditional_authorization_adjustment_parameters.py index 74c7d1d8..4cf486b8 100644 --- a/src/lithic/types/auth_rules/conditional_authorization_adjustment_parameters.py +++ b/src/lithic/types/auth_rules/conditional_authorization_adjustment_parameters.py @@ -7,11 +7,11 @@ from .conditional_value import ConditionalValue from .conditional_operation import ConditionalOperation -__all__ = ["ConditionalAuthorizationAdjustmentParameters", "Adjustment", "Condition", "ConditionParameters"] +__all__ = ["ConditionalAuthorizationAdjustmentParameters", "Action", "Condition", "ConditionParameters"] -class Adjustment(BaseModel): - """The hold adjustment to apply if the conditions are met""" +class Action(BaseModel): + """The hold adjustment to apply if the conditions are met.""" mode: Literal["REPLACE_WITH_AMOUNT", "ADD_PERCENTAGE", "ADD_AMOUNT"] """The mode of the hold adjustment, determining how the value is interpreted: @@ -244,7 +244,7 @@ class Condition(BaseModel): class ConditionalAuthorizationAdjustmentParameters(BaseModel): - adjustment: Adjustment - """The hold adjustment to apply if the conditions are met""" + action: Action + """The hold adjustment to apply if the conditions are met.""" conditions: List[Condition] diff --git a/src/lithic/types/auth_rules/conditional_authorization_adjustment_parameters_param.py b/src/lithic/types/auth_rules/conditional_authorization_adjustment_parameters_param.py index efd835fc..2a745175 100644 --- a/src/lithic/types/auth_rules/conditional_authorization_adjustment_parameters_param.py +++ b/src/lithic/types/auth_rules/conditional_authorization_adjustment_parameters_param.py @@ -9,11 +9,11 @@ from .conditional_operation import ConditionalOperation from .conditional_value_param import ConditionalValueParam -__all__ = ["ConditionalAuthorizationAdjustmentParametersParam", "Adjustment", "Condition", "ConditionParameters"] +__all__ = ["ConditionalAuthorizationAdjustmentParametersParam", "Action", "Condition", "ConditionParameters"] -class Adjustment(TypedDict, total=False): - """The hold adjustment to apply if the conditions are met""" +class Action(TypedDict, total=False): + """The hold adjustment to apply if the conditions are met.""" mode: Required[Literal["REPLACE_WITH_AMOUNT", "ADD_PERCENTAGE", "ADD_AMOUNT"]] """The mode of the hold adjustment, determining how the value is interpreted: @@ -248,7 +248,7 @@ class Condition(TypedDict, total=False): class ConditionalAuthorizationAdjustmentParametersParam(TypedDict, total=False): - adjustment: Required[Adjustment] - """The hold adjustment to apply if the conditions are met""" + action: Required[Action] + """The hold adjustment to apply if the conditions are met.""" conditions: Required[Iterable[Condition]] From 29275c634001769972b7c65e1988c9715fb640be Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 5 Jun 2026 06:55:50 +0000 Subject: [PATCH 5/5] release: 0.126.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 15 +++++++++++++++ pyproject.toml | 2 +- src/lithic/_version.py | 2 +- 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index f3343e21..f38100a4 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.125.0" + ".": "0.126.0" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 9b482a40..8e283c746 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,20 @@ # Changelog +## 0.126.0 (2026-06-05) + +Full Changelog: [v0.125.0...v0.126.0](https://github.com/lithic-com/lithic-python/compare/v0.125.0...v0.126.0) + +### Features + +* **api:** Add created field and make completed_at nullable in latest_challenge ([126641d](https://github.com/lithic-com/lithic-python/commit/126641d827512c68dfef741d7a6a053cbfe94f12)) +* **api:** add hold_adjustment action type to auth rules ([dc58d95](https://github.com/lithic-com/lithic-python/commit/dc58d95543aa7723246f81b6d836512f19bc02a0)) +* **api:** add name_validation field to card_authorization ([5bde4bc](https://github.com/lithic-com/lithic-python/commit/5bde4bcae161d20561ed1be62e636462018365e7)) + + +### Documentation + +* **api:** update support contact URL in cards/account/card documentation ([71b5283](https://github.com/lithic-com/lithic-python/commit/71b5283efe22257a9a706ebc41ba51c523775d5c)) + ## 0.125.0 (2026-05-26) Full Changelog: [v0.124.0...v0.125.0](https://github.com/lithic-com/lithic-python/compare/v0.124.0...v0.125.0) diff --git a/pyproject.toml b/pyproject.toml index 2bf23915..bb2dbd26 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "lithic" -version = "0.125.0" +version = "0.126.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 dd6fbb88..9c42a542 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.125.0" # x-release-please-version +__version__ = "0.126.0" # x-release-please-version