Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.93.0"
".": "0.94.0"
}
8 changes: 4 additions & 4 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 162
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-67859c948e3b903a317f4bd14135c7ee44254d2760068117bab34b7c4058be71.yml
openapi_spec_hash: 23a4716c6168e96f040ac8575582d075
config_hash: 227ad54062905d4ae964b24cef0505b0
configured_endpoints: 165
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-aa684ff2a2af585fe502a6e44520ddd883f5141a1113fc9dbe7830027842aa09.yml
openapi_spec_hash: b58989fdc04768fc1eb758e180c5f128
config_hash: 1a83dceb58f6f525b19a5775018db7e8
19 changes: 19 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,24 @@
# Changelog

## 0.94.0 (2025-06-27)

Full Changelog: [v0.93.0...v0.94.0](https://github.com/lithic-com/lithic-java/compare/v0.93.0...v0.94.0)

### Features

* **api:** introduce dedicated model for SpendLimitDuration ([48444d4](https://github.com/lithic-com/lithic-java/commit/48444d4d52a1f1d963b7a1520886529ffbd80a26))
* **client:** adds support for on-demand Auth Rule Performance Reports ([66d5cd0](https://github.com/lithic-com/lithic-java/commit/66d5cd0a89266de35f2326d579357cc4190fc20c))


### Bug Fixes

* **ci:** release-doctor — report correct token name ([1c7b405](https://github.com/lithic-com/lithic-java/commit/1c7b405338adfb8e8f7cf875ed3d6c8c03274e02))


### Chores

* **internal:** manual updates ([806eca4](https://github.com/lithic-com/lithic-java/commit/806eca42328cfaabcb56c1b4040b77f83f882884))

## 0.93.0 (2025-06-23)

Full Changelog: [v0.92.0...v0.93.0](https://github.com/lithic-com/lithic-java/compare/v0.92.0...v0.93.0)
Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

<!-- x-release-please-start-version -->

[![Maven Central](https://img.shields.io/maven-central/v/com.lithic.api/lithic-java)](https://central.sonatype.com/artifact/com.lithic.api/lithic-java/0.93.0)
[![javadoc](https://javadoc.io/badge2/com.lithic.api/lithic-java/0.93.0/javadoc.svg)](https://javadoc.io/doc/com.lithic.api/lithic-java/0.93.0)
[![Maven Central](https://img.shields.io/maven-central/v/com.lithic.api/lithic-java)](https://central.sonatype.com/artifact/com.lithic.api/lithic-java/0.94.0)
[![javadoc](https://javadoc.io/badge2/com.lithic.api/lithic-java/0.94.0/javadoc.svg)](https://javadoc.io/doc/com.lithic.api/lithic-java/0.94.0)

<!-- x-release-please-end -->

Expand All @@ -13,7 +13,7 @@ The Lithic Java SDK is similar to the Lithic Kotlin SDK but with minor differenc

<!-- x-release-please-start-version -->

The REST API documentation can be found on [docs.lithic.com](https://docs.lithic.com). Javadocs are available on [javadoc.io](https://javadoc.io/doc/com.lithic.api/lithic-java/0.93.0).
The REST API documentation can be found on [docs.lithic.com](https://docs.lithic.com). Javadocs are available on [javadoc.io](https://javadoc.io/doc/com.lithic.api/lithic-java/0.94.0).

<!-- x-release-please-end -->

Expand All @@ -24,7 +24,7 @@ The REST API documentation can be found on [docs.lithic.com](https://docs.lithic
### Gradle

```kotlin
implementation("com.lithic.api:lithic-java:0.93.0")
implementation("com.lithic.api:lithic-java:0.94.0")
```

### Maven
Expand All @@ -33,7 +33,7 @@ implementation("com.lithic.api:lithic-java:0.93.0")
<dependency>
<groupId>com.lithic.api</groupId>
<artifactId>lithic-java</artifactId>
<version>0.93.0</version>
<version>0.94.0</version>
</dependency>
```

Expand Down
8 changes: 4 additions & 4 deletions bin/check-release-environment
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,19 @@
errors=()

if [ -z "${SONATYPE_USERNAME}" ]; then
errors+=("The LITHIC_SONATYPE_USERNAME secret has not been set. Please set it in either this repository's secrets or your organization secrets")
errors+=("The SONATYPE_USERNAME secret has not been set. Please set it in either this repository's secrets or your organization secrets")
fi

if [ -z "${SONATYPE_PASSWORD}" ]; then
errors+=("The LITHIC_SONATYPE_PASSWORD secret has not been set. Please set it in either this repository's secrets or your organization secrets")
errors+=("The SONATYPE_PASSWORD secret has not been set. Please set it in either this repository's secrets or your organization secrets")
fi

if [ -z "${GPG_SIGNING_KEY}" ]; then
errors+=("The LITHIC_SONATYPE_GPG_SIGNING_KEY secret has not been set. Please set it in either this repository's secrets or your organization secrets")
errors+=("The GPG_SIGNING_KEY secret has not been set. Please set it in either this repository's secrets or your organization secrets")
fi

if [ -z "${GPG_SIGNING_PASSWORD}" ]; then
errors+=("The LITHIC_SONATYPE_GPG_SIGNING_PASSWORD secret has not been set. Please set it in either this repository's secrets or your organization secrets")
errors+=("The GPG_SIGNING_PASSWORD secret has not been set. Please set it in either this repository's secrets or your organization secrets")
fi

lenErrors=${#errors[@]}
Expand Down
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ repositories {

allprojects {
group = "com.lithic.api"
version = "0.93.0" // x-release-please-version
version = "0.94.0" // x-release-please-version
}

subprojects {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import com.lithic.api.services.blocking.EventService
import com.lithic.api.services.blocking.ExternalBankAccountService
import com.lithic.api.services.blocking.ExternalPaymentService
import com.lithic.api.services.blocking.FinancialAccountService
import com.lithic.api.services.blocking.FraudService
import com.lithic.api.services.blocking.FundingEventService
import com.lithic.api.services.blocking.ManagementOperationService
import com.lithic.api.services.blocking.PaymentService
Expand Down Expand Up @@ -127,6 +128,8 @@ interface LithicClient {

fun fundingEvents(): FundingEventService

fun fraud(): FraudService

/** Status of api */
fun apiStatus(): ApiStatus = apiStatus(ClientApiStatusParams.none())

Expand Down Expand Up @@ -219,6 +222,8 @@ interface LithicClient {

fun fundingEvents(): FundingEventService.WithRawResponse

fun fraud(): FraudService.WithRawResponse

/**
* Returns a raw HTTP response for `get /v1/status`, but is otherwise the same as
* [LithicClient.apiStatus].
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import com.lithic.api.services.async.EventServiceAsync
import com.lithic.api.services.async.ExternalBankAccountServiceAsync
import com.lithic.api.services.async.ExternalPaymentServiceAsync
import com.lithic.api.services.async.FinancialAccountServiceAsync
import com.lithic.api.services.async.FraudServiceAsync
import com.lithic.api.services.async.FundingEventServiceAsync
import com.lithic.api.services.async.ManagementOperationServiceAsync
import com.lithic.api.services.async.PaymentServiceAsync
Expand Down Expand Up @@ -127,6 +128,8 @@ interface LithicClientAsync {

fun fundingEvents(): FundingEventServiceAsync

fun fraud(): FraudServiceAsync

/** Status of api */
fun apiStatus(): CompletableFuture<ApiStatus> = apiStatus(ClientApiStatusParams.none())

Expand Down Expand Up @@ -222,6 +225,8 @@ interface LithicClientAsync {

fun fundingEvents(): FundingEventServiceAsync.WithRawResponse

fun fraud(): FraudServiceAsync.WithRawResponse

/**
* Returns a raw HTTP response for `get /v1/status`, but is otherwise the same as
* [LithicClientAsync.apiStatus].
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,8 @@ import com.lithic.api.services.async.ExternalPaymentServiceAsync
import com.lithic.api.services.async.ExternalPaymentServiceAsyncImpl
import com.lithic.api.services.async.FinancialAccountServiceAsync
import com.lithic.api.services.async.FinancialAccountServiceAsyncImpl
import com.lithic.api.services.async.FraudServiceAsync
import com.lithic.api.services.async.FraudServiceAsyncImpl
import com.lithic.api.services.async.FundingEventServiceAsync
import com.lithic.api.services.async.FundingEventServiceAsyncImpl
import com.lithic.api.services.async.ManagementOperationServiceAsync
Expand Down Expand Up @@ -195,6 +197,10 @@ class LithicClientAsyncImpl(private val clientOptions: ClientOptions) : LithicCl
FundingEventServiceAsyncImpl(clientOptionsWithUserAgent)
}

private val fraud: FraudServiceAsync by lazy {
FraudServiceAsyncImpl(clientOptionsWithUserAgent)
}

override fun sync(): LithicClient = sync

override fun withRawResponse(): LithicClientAsync.WithRawResponse = withRawResponse
Expand Down Expand Up @@ -257,6 +263,8 @@ class LithicClientAsyncImpl(private val clientOptions: ClientOptions) : LithicCl

override fun fundingEvents(): FundingEventServiceAsync = fundingEvents

override fun fraud(): FraudServiceAsync = fraud

override fun apiStatus(
params: ClientApiStatusParams,
requestOptions: RequestOptions,
Expand Down Expand Up @@ -376,6 +384,10 @@ class LithicClientAsyncImpl(private val clientOptions: ClientOptions) : LithicCl
FundingEventServiceAsyncImpl.WithRawResponseImpl(clientOptions)
}

private val fraud: FraudServiceAsync.WithRawResponse by lazy {
FraudServiceAsyncImpl.WithRawResponseImpl(clientOptions)
}

override fun withOptions(
modifier: Consumer<ClientOptions.Builder>
): LithicClientAsync.WithRawResponse =
Expand Down Expand Up @@ -443,6 +455,8 @@ class LithicClientAsyncImpl(private val clientOptions: ClientOptions) : LithicCl

override fun fundingEvents(): FundingEventServiceAsync.WithRawResponse = fundingEvents

override fun fraud(): FraudServiceAsync.WithRawResponse = fraud

private val apiStatusHandler: Handler<ApiStatus> =
jsonHandler<ApiStatus>(clientOptions.jsonMapper).withErrorHandler(errorHandler)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,8 @@ import com.lithic.api.services.blocking.ExternalPaymentService
import com.lithic.api.services.blocking.ExternalPaymentServiceImpl
import com.lithic.api.services.blocking.FinancialAccountService
import com.lithic.api.services.blocking.FinancialAccountServiceImpl
import com.lithic.api.services.blocking.FraudService
import com.lithic.api.services.blocking.FraudServiceImpl
import com.lithic.api.services.blocking.FundingEventService
import com.lithic.api.services.blocking.FundingEventServiceImpl
import com.lithic.api.services.blocking.ManagementOperationService
Expand Down Expand Up @@ -180,6 +182,8 @@ class LithicClientImpl(private val clientOptions: ClientOptions) : LithicClient
FundingEventServiceImpl(clientOptionsWithUserAgent)
}

private val fraud: FraudService by lazy { FraudServiceImpl(clientOptionsWithUserAgent) }

override fun async(): LithicClientAsync = async

override fun withRawResponse(): LithicClient.WithRawResponse = withRawResponse
Expand Down Expand Up @@ -241,6 +245,8 @@ class LithicClientImpl(private val clientOptions: ClientOptions) : LithicClient

override fun fundingEvents(): FundingEventService = fundingEvents

override fun fraud(): FraudService = fraud

override fun apiStatus(
params: ClientApiStatusParams,
requestOptions: RequestOptions,
Expand Down Expand Up @@ -360,6 +366,10 @@ class LithicClientImpl(private val clientOptions: ClientOptions) : LithicClient
FundingEventServiceImpl.WithRawResponseImpl(clientOptions)
}

private val fraud: FraudService.WithRawResponse by lazy {
FraudServiceImpl.WithRawResponseImpl(clientOptions)
}

override fun withOptions(
modifier: Consumer<ClientOptions.Builder>
): LithicClient.WithRawResponse =
Expand Down Expand Up @@ -426,6 +436,8 @@ class LithicClientImpl(private val clientOptions: ClientOptions) : LithicClient

override fun fundingEvents(): FundingEventService.WithRawResponse = fundingEvents

override fun fraud(): FraudService.WithRawResponse = fraud

private val apiStatusHandler: Handler<ApiStatus> =
jsonHandler<ApiStatus>(clientOptions.jsonMapper).withErrorHandler(errorHandler)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,10 @@ import kotlin.jvm.optionals.getOrNull
* backtest reports on-demand through the
* `/v2/auth_rules/{auth_rule_token}/backtests/{auth_rule_backtest_token}` endpoint.
*
* Lithic currently supports backtesting for `CONDITIONAL_BLOCK` rules. Backtesting for
* `VELOCITY_LIMIT` rules is generally not supported. In specific cases (i.e. where Lithic has
* pre-calculated the requested velocity metrics for historical transactions), a backtest may be
* feasible. However, such cases are uncommon and customers should not anticipate support for
* Lithic currently supports backtesting for `CONDITIONAL_BLOCK` / `CONDITIONAL_3DS_ACTION` rules.
* Backtesting for `VELOCITY_LIMIT` rules is generally not supported. In specific cases (i.e. where
* Lithic has pre-calculated the requested velocity metrics for historical transactions), a backtest
* may be feasible. However, such cases are uncommon and customers should not anticipate support for
* velocity backtests under most configurations. If a historical transaction does not feature the
* required inputs to evaluate the rule, then it will not be included in the final backtest report.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,11 @@ import java.util.Optional
import kotlin.jvm.optionals.getOrNull

/**
* Requests a performance report of an Auth rule to be asynchronously generated. Reports can only be
* run on rules in draft or active mode and will included approved and declined statistics as well
* as examples. The generated report will be delivered asynchronously through a webhook with
* `event_type` = `auth_rules.performance_report.created`. See the docs on setting up
* This endpoint is deprecated and will be removed in the future. Requests a performance report of
* an Auth rule to be asynchronously generated. Reports can only be run on rules in draft or active
* mode and will included approved and declined statistics as well as examples. The generated report
* will be delivered asynchronously through a webhook with `event_type` =
* `auth_rules.performance_report.created`. See the docs on setting up
* [webhook subscriptions](https://docs.lithic.com/docs/events-api).
*
* Reports are generated based on data collected by Lithic's processing system in the trailing week.
Expand Down Expand Up @@ -55,6 +56,7 @@ import kotlin.jvm.optionals.getOrNull
* processing systems have processed the transaction, and when a transaction will be included in the
* report.
*/
@Deprecated("deprecated")
class AuthRuleV2ReportParams
private constructor(
private val authRuleToken: String?,
Expand Down
Loading