diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index 285be38ef..39ba1f879 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1,3 +1,3 @@
{
- ".": "0.449.0"
+ ".": "0.450.0"
}
\ No newline at end of file
diff --git a/.stats.yml b/.stats.yml
index 71f54a569..93d127a29 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
-configured_endpoints: 232
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/increase%2Fincrease-8bcd1f04377ee8ae354a1cb3b1c214232c8b448a93c98502ea92b696bf0757bf.yml
-openapi_spec_hash: c338b176720c2dc69dd3f7db351ea8a5
-config_hash: d15ecbf4dc8a7a0ef99397d11b557444
+configured_endpoints: 233
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/increase%2Fincrease-1ed184e346fa8c739f7de410b940df9f160681dd818eed4ec1e48b40451007d0.yml
+openapi_spec_hash: 0bc3978204acc7949c98e1d098bf5e1c
+config_hash: ca482105d83c23b2986f1c9c441c4343
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6a564ea66..2d8415cfc 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,13 @@
# Changelog
+## 0.450.0 (2026-03-05)
+
+Full Changelog: [v0.449.0...v0.450.0](https://github.com/Increase/increase-java/compare/v0.449.0...v0.450.0)
+
+### Features
+
+* **api:** api update ([c2ceb5a](https://github.com/Increase/increase-java/commit/c2ceb5a789ab8f7c6ee9e92ac3a46d10210ba02c))
+
## 0.449.0 (2026-03-05)
Full Changelog: [v0.448.0...v0.449.0](https://github.com/Increase/increase-java/compare/v0.448.0...v0.449.0)
diff --git a/README.md b/README.md
index 1027431bc..5d51a13f5 100644
--- a/README.md
+++ b/README.md
@@ -2,8 +2,8 @@
-[](https://central.sonatype.com/artifact/com.increase.api/increase-java/0.449.0)
-[](https://javadoc.io/doc/com.increase.api/increase-java/0.449.0)
+[](https://central.sonatype.com/artifact/com.increase.api/increase-java/0.450.0)
+[](https://javadoc.io/doc/com.increase.api/increase-java/0.450.0)
@@ -13,7 +13,7 @@ The Increase Java SDK is similar to the Increase Kotlin SDK but with minor diffe
-The REST API documentation can be found on [increase.com](https://increase.com/documentation). Javadocs are available on [javadoc.io](https://javadoc.io/doc/com.increase.api/increase-java/0.449.0).
+The REST API documentation can be found on [increase.com](https://increase.com/documentation). Javadocs are available on [javadoc.io](https://javadoc.io/doc/com.increase.api/increase-java/0.450.0).
@@ -24,7 +24,7 @@ The REST API documentation can be found on [increase.com](https://increase.com/d
### Gradle
```kotlin
-implementation("com.increase.api:increase-java:0.449.0")
+implementation("com.increase.api:increase-java:0.450.0")
```
### Maven
@@ -33,7 +33,7 @@ implementation("com.increase.api:increase-java:0.449.0")
com.increase.api
increase-java
- 0.449.0
+ 0.450.0
```
diff --git a/build.gradle.kts b/build.gradle.kts
index 1c0bf3d6b..824f5b624 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -8,7 +8,7 @@ repositories {
allprojects {
group = "com.increase.api"
- version = "0.449.0" // x-release-please-version
+ version = "0.450.0" // x-release-please-version
}
subprojects {
diff --git a/increase-java-core/src/main/kotlin/com/increase/api/models/simulations/checkdeposits/CheckDepositAdjustmentParams.kt b/increase-java-core/src/main/kotlin/com/increase/api/models/simulations/checkdeposits/CheckDepositAdjustmentParams.kt
new file mode 100644
index 000000000..db714c051
--- /dev/null
+++ b/increase-java-core/src/main/kotlin/com/increase/api/models/simulations/checkdeposits/CheckDepositAdjustmentParams.kt
@@ -0,0 +1,698 @@
+// File generated from our OpenAPI spec by Stainless.
+
+package com.increase.api.models.simulations.checkdeposits
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter
+import com.fasterxml.jackson.annotation.JsonAnySetter
+import com.fasterxml.jackson.annotation.JsonCreator
+import com.fasterxml.jackson.annotation.JsonProperty
+import com.increase.api.core.Enum
+import com.increase.api.core.ExcludeMissing
+import com.increase.api.core.JsonField
+import com.increase.api.core.JsonMissing
+import com.increase.api.core.JsonValue
+import com.increase.api.core.Params
+import com.increase.api.core.http.Headers
+import com.increase.api.core.http.QueryParams
+import com.increase.api.errors.IncreaseInvalidDataException
+import java.util.Collections
+import java.util.Objects
+import java.util.Optional
+import kotlin.jvm.optionals.getOrNull
+
+/**
+ * Simulates the creation of a [Check Deposit Adjustment](#check-deposit-adjustments) on a
+ * [Check Deposit](#check-deposits). This Check Deposit must first have a `status` of `submitted`.
+ */
+class CheckDepositAdjustmentParams
+private constructor(
+ private val checkDepositId: String?,
+ private val body: Body,
+ private val additionalHeaders: Headers,
+ private val additionalQueryParams: QueryParams,
+) : Params {
+
+ /** The identifier of the Check Deposit you wish to adjust. */
+ fun checkDepositId(): Optional = Optional.ofNullable(checkDepositId)
+
+ /**
+ * The adjustment amount in the minor unit of the Check Deposit's currency (e.g., cents). A
+ * negative amount means that the funds are being clawed back by the other bank and is a debit
+ * to your account. Defaults to the negative of the Check Deposit amount.
+ *
+ * @throws IncreaseInvalidDataException if the JSON field has an unexpected type (e.g. if the
+ * server responded with an unexpected value).
+ */
+ fun amount(): Optional = body.amount()
+
+ /**
+ * The reason for the adjustment. Defaults to `non_conforming_item`, which is often used for a
+ * low quality image that the recipient wasn't able to handle.
+ *
+ * @throws IncreaseInvalidDataException if the JSON field has an unexpected type (e.g. if the
+ * server responded with an unexpected value).
+ */
+ fun reason(): Optional = body.reason()
+
+ /**
+ * Returns the raw JSON value of [amount].
+ *
+ * Unlike [amount], this method doesn't throw if the JSON field has an unexpected type.
+ */
+ fun _amount(): JsonField = body._amount()
+
+ /**
+ * Returns the raw JSON value of [reason].
+ *
+ * Unlike [reason], this method doesn't throw if the JSON field has an unexpected type.
+ */
+ fun _reason(): JsonField = body._reason()
+
+ fun _additionalBodyProperties(): Map = body._additionalProperties()
+
+ /** Additional headers to send with the request. */
+ fun _additionalHeaders(): Headers = additionalHeaders
+
+ /** Additional query param to send with the request. */
+ fun _additionalQueryParams(): QueryParams = additionalQueryParams
+
+ fun toBuilder() = Builder().from(this)
+
+ companion object {
+
+ @JvmStatic fun none(): CheckDepositAdjustmentParams = builder().build()
+
+ /**
+ * Returns a mutable builder for constructing an instance of [CheckDepositAdjustmentParams].
+ */
+ @JvmStatic fun builder() = Builder()
+ }
+
+ /** A builder for [CheckDepositAdjustmentParams]. */
+ class Builder internal constructor() {
+
+ private var checkDepositId: String? = null
+ private var body: Body.Builder = Body.builder()
+ private var additionalHeaders: Headers.Builder = Headers.builder()
+ private var additionalQueryParams: QueryParams.Builder = QueryParams.builder()
+
+ @JvmSynthetic
+ internal fun from(checkDepositAdjustmentParams: CheckDepositAdjustmentParams) = apply {
+ checkDepositId = checkDepositAdjustmentParams.checkDepositId
+ body = checkDepositAdjustmentParams.body.toBuilder()
+ additionalHeaders = checkDepositAdjustmentParams.additionalHeaders.toBuilder()
+ additionalQueryParams = checkDepositAdjustmentParams.additionalQueryParams.toBuilder()
+ }
+
+ /** The identifier of the Check Deposit you wish to adjust. */
+ fun checkDepositId(checkDepositId: String?) = apply { this.checkDepositId = checkDepositId }
+
+ /** Alias for calling [Builder.checkDepositId] with `checkDepositId.orElse(null)`. */
+ fun checkDepositId(checkDepositId: Optional) =
+ checkDepositId(checkDepositId.getOrNull())
+
+ /**
+ * Sets the entire request body.
+ *
+ * This is generally only useful if you are already constructing the body separately.
+ * Otherwise, it's more convenient to use the top-level setters instead:
+ * - [amount]
+ * - [reason]
+ */
+ fun body(body: Body) = apply { this.body = body.toBuilder() }
+
+ /**
+ * The adjustment amount in the minor unit of the Check Deposit's currency (e.g., cents). A
+ * negative amount means that the funds are being clawed back by the other bank and is a
+ * debit to your account. Defaults to the negative of the Check Deposit amount.
+ */
+ fun amount(amount: Long) = apply { body.amount(amount) }
+
+ /**
+ * Sets [Builder.amount] to an arbitrary JSON value.
+ *
+ * You should usually call [Builder.amount] with a well-typed [Long] value instead. This
+ * method is primarily for setting the field to an undocumented or not yet supported value.
+ */
+ fun amount(amount: JsonField) = apply { body.amount(amount) }
+
+ /**
+ * The reason for the adjustment. Defaults to `non_conforming_item`, which is often used for
+ * a low quality image that the recipient wasn't able to handle.
+ */
+ fun reason(reason: Reason) = apply { body.reason(reason) }
+
+ /**
+ * Sets [Builder.reason] to an arbitrary JSON value.
+ *
+ * You should usually call [Builder.reason] with a well-typed [Reason] value instead. This
+ * method is primarily for setting the field to an undocumented or not yet supported value.
+ */
+ fun reason(reason: JsonField) = apply { body.reason(reason) }
+
+ fun additionalBodyProperties(additionalBodyProperties: Map) = apply {
+ body.additionalProperties(additionalBodyProperties)
+ }
+
+ fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply {
+ body.putAdditionalProperty(key, value)
+ }
+
+ fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) =
+ apply {
+ body.putAllAdditionalProperties(additionalBodyProperties)
+ }
+
+ fun removeAdditionalBodyProperty(key: String) = apply { body.removeAdditionalProperty(key) }
+
+ fun removeAllAdditionalBodyProperties(keys: Set) = apply {
+ body.removeAllAdditionalProperties(keys)
+ }
+
+ fun additionalHeaders(additionalHeaders: Headers) = apply {
+ this.additionalHeaders.clear()
+ putAllAdditionalHeaders(additionalHeaders)
+ }
+
+ fun additionalHeaders(additionalHeaders: Map>) = apply {
+ this.additionalHeaders.clear()
+ putAllAdditionalHeaders(additionalHeaders)
+ }
+
+ fun putAdditionalHeader(name: String, value: String) = apply {
+ additionalHeaders.put(name, value)
+ }
+
+ fun putAdditionalHeaders(name: String, values: Iterable) = apply {
+ additionalHeaders.put(name, values)
+ }
+
+ fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply {
+ this.additionalHeaders.putAll(additionalHeaders)
+ }
+
+ fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply {
+ this.additionalHeaders.putAll(additionalHeaders)
+ }
+
+ fun replaceAdditionalHeaders(name: String, value: String) = apply {
+ additionalHeaders.replace(name, value)
+ }
+
+ fun replaceAdditionalHeaders(name: String, values: Iterable) = apply {
+ additionalHeaders.replace(name, values)
+ }
+
+ fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply {
+ this.additionalHeaders.replaceAll(additionalHeaders)
+ }
+
+ fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply {
+ this.additionalHeaders.replaceAll(additionalHeaders)
+ }
+
+ fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) }
+
+ fun removeAllAdditionalHeaders(names: Set) = apply {
+ additionalHeaders.removeAll(names)
+ }
+
+ fun additionalQueryParams(additionalQueryParams: QueryParams) = apply {
+ this.additionalQueryParams.clear()
+ putAllAdditionalQueryParams(additionalQueryParams)
+ }
+
+ fun additionalQueryParams(additionalQueryParams: Map>) = apply {
+ this.additionalQueryParams.clear()
+ putAllAdditionalQueryParams(additionalQueryParams)
+ }
+
+ fun putAdditionalQueryParam(key: String, value: String) = apply {
+ additionalQueryParams.put(key, value)
+ }
+
+ fun putAdditionalQueryParams(key: String, values: Iterable) = apply {
+ additionalQueryParams.put(key, values)
+ }
+
+ fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply {
+ this.additionalQueryParams.putAll(additionalQueryParams)
+ }
+
+ fun putAllAdditionalQueryParams(additionalQueryParams: Map>) =
+ apply {
+ this.additionalQueryParams.putAll(additionalQueryParams)
+ }
+
+ fun replaceAdditionalQueryParams(key: String, value: String) = apply {
+ additionalQueryParams.replace(key, value)
+ }
+
+ fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply {
+ additionalQueryParams.replace(key, values)
+ }
+
+ fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply {
+ this.additionalQueryParams.replaceAll(additionalQueryParams)
+ }
+
+ fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) =
+ apply {
+ this.additionalQueryParams.replaceAll(additionalQueryParams)
+ }
+
+ fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) }
+
+ fun removeAllAdditionalQueryParams(keys: Set) = apply {
+ additionalQueryParams.removeAll(keys)
+ }
+
+ /**
+ * Returns an immutable instance of [CheckDepositAdjustmentParams].
+ *
+ * Further updates to this [Builder] will not mutate the returned instance.
+ */
+ fun build(): CheckDepositAdjustmentParams =
+ CheckDepositAdjustmentParams(
+ checkDepositId,
+ body.build(),
+ additionalHeaders.build(),
+ additionalQueryParams.build(),
+ )
+ }
+
+ fun _body(): Body = body
+
+ fun _pathParam(index: Int): String =
+ when (index) {
+ 0 -> checkDepositId ?: ""
+ else -> ""
+ }
+
+ override fun _headers(): Headers = additionalHeaders
+
+ override fun _queryParams(): QueryParams = additionalQueryParams
+
+ class Body
+ @JsonCreator(mode = JsonCreator.Mode.DISABLED)
+ private constructor(
+ private val amount: JsonField,
+ private val reason: JsonField,
+ private val additionalProperties: MutableMap,
+ ) {
+
+ @JsonCreator
+ private constructor(
+ @JsonProperty("amount") @ExcludeMissing amount: JsonField = JsonMissing.of(),
+ @JsonProperty("reason") @ExcludeMissing reason: JsonField = JsonMissing.of(),
+ ) : this(amount, reason, mutableMapOf())
+
+ /**
+ * The adjustment amount in the minor unit of the Check Deposit's currency (e.g., cents). A
+ * negative amount means that the funds are being clawed back by the other bank and is a
+ * debit to your account. Defaults to the negative of the Check Deposit amount.
+ *
+ * @throws IncreaseInvalidDataException if the JSON field has an unexpected type (e.g. if
+ * the server responded with an unexpected value).
+ */
+ fun amount(): Optional = amount.getOptional("amount")
+
+ /**
+ * The reason for the adjustment. Defaults to `non_conforming_item`, which is often used for
+ * a low quality image that the recipient wasn't able to handle.
+ *
+ * @throws IncreaseInvalidDataException if the JSON field has an unexpected type (e.g. if
+ * the server responded with an unexpected value).
+ */
+ fun reason(): Optional = reason.getOptional("reason")
+
+ /**
+ * Returns the raw JSON value of [amount].
+ *
+ * Unlike [amount], this method doesn't throw if the JSON field has an unexpected type.
+ */
+ @JsonProperty("amount") @ExcludeMissing fun _amount(): JsonField = amount
+
+ /**
+ * Returns the raw JSON value of [reason].
+ *
+ * Unlike [reason], this method doesn't throw if the JSON field has an unexpected type.
+ */
+ @JsonProperty("reason") @ExcludeMissing fun _reason(): JsonField = reason
+
+ @JsonAnySetter
+ private fun putAdditionalProperty(key: String, value: JsonValue) {
+ additionalProperties.put(key, value)
+ }
+
+ @JsonAnyGetter
+ @ExcludeMissing
+ fun _additionalProperties(): Map =
+ Collections.unmodifiableMap(additionalProperties)
+
+ fun toBuilder() = Builder().from(this)
+
+ companion object {
+
+ /** Returns a mutable builder for constructing an instance of [Body]. */
+ @JvmStatic fun builder() = Builder()
+ }
+
+ /** A builder for [Body]. */
+ class Builder internal constructor() {
+
+ private var amount: JsonField = JsonMissing.of()
+ private var reason: JsonField = JsonMissing.of()
+ private var additionalProperties: MutableMap = mutableMapOf()
+
+ @JvmSynthetic
+ internal fun from(body: Body) = apply {
+ amount = body.amount
+ reason = body.reason
+ additionalProperties = body.additionalProperties.toMutableMap()
+ }
+
+ /**
+ * The adjustment amount in the minor unit of the Check Deposit's currency (e.g.,
+ * cents). A negative amount means that the funds are being clawed back by the other
+ * bank and is a debit to your account. Defaults to the negative of the Check Deposit
+ * amount.
+ */
+ fun amount(amount: Long) = amount(JsonField.of(amount))
+
+ /**
+ * Sets [Builder.amount] to an arbitrary JSON value.
+ *
+ * You should usually call [Builder.amount] with a well-typed [Long] value instead. This
+ * method is primarily for setting the field to an undocumented or not yet supported
+ * value.
+ */
+ fun amount(amount: JsonField) = apply { this.amount = amount }
+
+ /**
+ * The reason for the adjustment. Defaults to `non_conforming_item`, which is often used
+ * for a low quality image that the recipient wasn't able to handle.
+ */
+ fun reason(reason: Reason) = reason(JsonField.of(reason))
+
+ /**
+ * Sets [Builder.reason] to an arbitrary JSON value.
+ *
+ * You should usually call [Builder.reason] with a well-typed [Reason] value instead.
+ * This method is primarily for setting the field to an undocumented or not yet
+ * supported value.
+ */
+ fun reason(reason: JsonField) = apply { this.reason = reason }
+
+ fun additionalProperties(additionalProperties: Map) = apply {
+ this.additionalProperties.clear()
+ putAllAdditionalProperties(additionalProperties)
+ }
+
+ fun putAdditionalProperty(key: String, value: JsonValue) = apply {
+ additionalProperties.put(key, value)
+ }
+
+ fun putAllAdditionalProperties(additionalProperties: Map) = apply {
+ this.additionalProperties.putAll(additionalProperties)
+ }
+
+ fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) }
+
+ fun removeAllAdditionalProperties(keys: Set) = apply {
+ keys.forEach(::removeAdditionalProperty)
+ }
+
+ /**
+ * Returns an immutable instance of [Body].
+ *
+ * Further updates to this [Builder] will not mutate the returned instance.
+ */
+ fun build(): Body = Body(amount, reason, additionalProperties.toMutableMap())
+ }
+
+ private var validated: Boolean = false
+
+ fun validate(): Body = apply {
+ if (validated) {
+ return@apply
+ }
+
+ amount()
+ reason().ifPresent { it.validate() }
+ validated = true
+ }
+
+ fun isValid(): Boolean =
+ try {
+ validate()
+ true
+ } catch (e: IncreaseInvalidDataException) {
+ false
+ }
+
+ /**
+ * Returns a score indicating how many valid values are contained in this object
+ * recursively.
+ *
+ * Used for best match union deserialization.
+ */
+ @JvmSynthetic
+ internal fun validity(): Int =
+ (if (amount.asKnown().isPresent) 1 else 0) +
+ (reason.asKnown().getOrNull()?.validity() ?: 0)
+
+ override fun equals(other: Any?): Boolean {
+ if (this === other) {
+ return true
+ }
+
+ return other is Body &&
+ amount == other.amount &&
+ reason == other.reason &&
+ additionalProperties == other.additionalProperties
+ }
+
+ private val hashCode: Int by lazy { Objects.hash(amount, reason, additionalProperties) }
+
+ override fun hashCode(): Int = hashCode
+
+ override fun toString() =
+ "Body{amount=$amount, reason=$reason, additionalProperties=$additionalProperties}"
+ }
+
+ /**
+ * The reason for the adjustment. Defaults to `non_conforming_item`, which is often used for a
+ * low quality image that the recipient wasn't able to handle.
+ */
+ class Reason @JsonCreator private constructor(private val value: JsonField) : Enum {
+
+ /**
+ * Returns this class instance's raw value.
+ *
+ * This is usually only useful if this instance was deserialized from data that doesn't
+ * match any known member, and you want to know that value. For example, if the SDK is on an
+ * older version than the API, then the API may respond with new members that the SDK is
+ * unaware of.
+ */
+ @com.fasterxml.jackson.annotation.JsonValue fun _value(): JsonField = value
+
+ companion object {
+
+ /**
+ * The return was initiated too late and the receiving institution has responded with a
+ * Late Return Claim.
+ */
+ @JvmField val LATE_RETURN = of("late_return")
+
+ /**
+ * The check was deposited to the wrong payee and the depositing institution has
+ * reimbursed the funds with a Wrong Payee Credit.
+ */
+ @JvmField val WRONG_PAYEE_CREDIT = of("wrong_payee_credit")
+
+ /**
+ * The check was deposited with a different amount than what was written on the check.
+ */
+ @JvmField val ADJUSTED_AMOUNT = of("adjusted_amount")
+
+ /**
+ * The recipient was not able to process the check. This usually happens for e.g., low
+ * quality images.
+ */
+ @JvmField val NON_CONFORMING_ITEM = of("non_conforming_item")
+
+ /** The check has already been deposited elsewhere and so this is a duplicate. */
+ @JvmField val PAID = of("paid")
+
+ @JvmStatic fun of(value: String) = Reason(JsonField.of(value))
+ }
+
+ /** An enum containing [Reason]'s known values. */
+ enum class Known {
+ /**
+ * The return was initiated too late and the receiving institution has responded with a
+ * Late Return Claim.
+ */
+ LATE_RETURN,
+ /**
+ * The check was deposited to the wrong payee and the depositing institution has
+ * reimbursed the funds with a Wrong Payee Credit.
+ */
+ WRONG_PAYEE_CREDIT,
+ /**
+ * The check was deposited with a different amount than what was written on the check.
+ */
+ ADJUSTED_AMOUNT,
+ /**
+ * The recipient was not able to process the check. This usually happens for e.g., low
+ * quality images.
+ */
+ NON_CONFORMING_ITEM,
+ /** The check has already been deposited elsewhere and so this is a duplicate. */
+ PAID,
+ }
+
+ /**
+ * An enum containing [Reason]'s known values, as well as an [_UNKNOWN] member.
+ *
+ * An instance of [Reason] can contain an unknown value in a couple of cases:
+ * - It was deserialized from data that doesn't match any known member. For example, if the
+ * SDK is on an older version than the API, then the API may respond with new members that
+ * the SDK is unaware of.
+ * - It was constructed with an arbitrary value using the [of] method.
+ */
+ enum class Value {
+ /**
+ * The return was initiated too late and the receiving institution has responded with a
+ * Late Return Claim.
+ */
+ LATE_RETURN,
+ /**
+ * The check was deposited to the wrong payee and the depositing institution has
+ * reimbursed the funds with a Wrong Payee Credit.
+ */
+ WRONG_PAYEE_CREDIT,
+ /**
+ * The check was deposited with a different amount than what was written on the check.
+ */
+ ADJUSTED_AMOUNT,
+ /**
+ * The recipient was not able to process the check. This usually happens for e.g., low
+ * quality images.
+ */
+ NON_CONFORMING_ITEM,
+ /** The check has already been deposited elsewhere and so this is a duplicate. */
+ PAID,
+ /** An enum member indicating that [Reason] was instantiated with an unknown value. */
+ _UNKNOWN,
+ }
+
+ /**
+ * Returns an enum member corresponding to this class instance's value, or [Value._UNKNOWN]
+ * if the class was instantiated with an unknown value.
+ *
+ * Use the [known] method instead if you're certain the value is always known or if you want
+ * to throw for the unknown case.
+ */
+ fun value(): Value =
+ when (this) {
+ LATE_RETURN -> Value.LATE_RETURN
+ WRONG_PAYEE_CREDIT -> Value.WRONG_PAYEE_CREDIT
+ ADJUSTED_AMOUNT -> Value.ADJUSTED_AMOUNT
+ NON_CONFORMING_ITEM -> Value.NON_CONFORMING_ITEM
+ PAID -> Value.PAID
+ else -> Value._UNKNOWN
+ }
+
+ /**
+ * Returns an enum member corresponding to this class instance's value.
+ *
+ * Use the [value] method instead if you're uncertain the value is always known and don't
+ * want to throw for the unknown case.
+ *
+ * @throws IncreaseInvalidDataException if this class instance's value is a not a known
+ * member.
+ */
+ fun known(): Known =
+ when (this) {
+ LATE_RETURN -> Known.LATE_RETURN
+ WRONG_PAYEE_CREDIT -> Known.WRONG_PAYEE_CREDIT
+ ADJUSTED_AMOUNT -> Known.ADJUSTED_AMOUNT
+ NON_CONFORMING_ITEM -> Known.NON_CONFORMING_ITEM
+ PAID -> Known.PAID
+ else -> throw IncreaseInvalidDataException("Unknown Reason: $value")
+ }
+
+ /**
+ * Returns this class instance's primitive wire representation.
+ *
+ * This differs from the [toString] method because that method is primarily for debugging
+ * and generally doesn't throw.
+ *
+ * @throws IncreaseInvalidDataException if this class instance's value does not have the
+ * expected primitive type.
+ */
+ fun asString(): String =
+ _value().asString().orElseThrow {
+ IncreaseInvalidDataException("Value is not a String")
+ }
+
+ private var validated: Boolean = false
+
+ fun validate(): Reason = apply {
+ if (validated) {
+ return@apply
+ }
+
+ known()
+ validated = true
+ }
+
+ fun isValid(): Boolean =
+ try {
+ validate()
+ true
+ } catch (e: IncreaseInvalidDataException) {
+ false
+ }
+
+ /**
+ * Returns a score indicating how many valid values are contained in this object
+ * recursively.
+ *
+ * Used for best match union deserialization.
+ */
+ @JvmSynthetic internal fun validity(): Int = if (value() == Value._UNKNOWN) 0 else 1
+
+ override fun equals(other: Any?): Boolean {
+ if (this === other) {
+ return true
+ }
+
+ return other is Reason && value == other.value
+ }
+
+ override fun hashCode() = value.hashCode()
+
+ override fun toString() = value.toString()
+ }
+
+ override fun equals(other: Any?): Boolean {
+ if (this === other) {
+ return true
+ }
+
+ return other is CheckDepositAdjustmentParams &&
+ checkDepositId == other.checkDepositId &&
+ body == other.body &&
+ additionalHeaders == other.additionalHeaders &&
+ additionalQueryParams == other.additionalQueryParams
+ }
+
+ override fun hashCode(): Int =
+ Objects.hash(checkDepositId, body, additionalHeaders, additionalQueryParams)
+
+ override fun toString() =
+ "CheckDepositAdjustmentParams{checkDepositId=$checkDepositId, body=$body, additionalHeaders=$additionalHeaders, additionalQueryParams=$additionalQueryParams}"
+}
diff --git a/increase-java-core/src/main/kotlin/com/increase/api/services/async/simulations/CheckDepositServiceAsync.kt b/increase-java-core/src/main/kotlin/com/increase/api/services/async/simulations/CheckDepositServiceAsync.kt
index fff1ac0aa..2713748f3 100644
--- a/increase-java-core/src/main/kotlin/com/increase/api/services/async/simulations/CheckDepositServiceAsync.kt
+++ b/increase-java-core/src/main/kotlin/com/increase/api/services/async/simulations/CheckDepositServiceAsync.kt
@@ -6,6 +6,7 @@ import com.increase.api.core.ClientOptions
import com.increase.api.core.RequestOptions
import com.increase.api.core.http.HttpResponseFor
import com.increase.api.models.checkdeposits.CheckDeposit
+import com.increase.api.models.simulations.checkdeposits.CheckDepositAdjustmentParams
import com.increase.api.models.simulations.checkdeposits.CheckDepositRejectParams
import com.increase.api.models.simulations.checkdeposits.CheckDepositReturnParams
import com.increase.api.models.simulations.checkdeposits.CheckDepositSubmitParams
@@ -26,6 +27,45 @@ interface CheckDepositServiceAsync {
*/
fun withOptions(modifier: Consumer): CheckDepositServiceAsync
+ /**
+ * Simulates the creation of a [Check Deposit Adjustment](#check-deposit-adjustments) on a
+ * [Check Deposit](#check-deposits). This Check Deposit must first have a `status` of
+ * `submitted`.
+ */
+ fun adjustment(checkDepositId: String): CompletableFuture =
+ adjustment(checkDepositId, CheckDepositAdjustmentParams.none())
+
+ /** @see adjustment */
+ fun adjustment(
+ checkDepositId: String,
+ params: CheckDepositAdjustmentParams = CheckDepositAdjustmentParams.none(),
+ requestOptions: RequestOptions = RequestOptions.none(),
+ ): CompletableFuture =
+ adjustment(params.toBuilder().checkDepositId(checkDepositId).build(), requestOptions)
+
+ /** @see adjustment */
+ fun adjustment(
+ checkDepositId: String,
+ params: CheckDepositAdjustmentParams = CheckDepositAdjustmentParams.none(),
+ ): CompletableFuture = adjustment(checkDepositId, params, RequestOptions.none())
+
+ /** @see adjustment */
+ fun adjustment(
+ params: CheckDepositAdjustmentParams,
+ requestOptions: RequestOptions = RequestOptions.none(),
+ ): CompletableFuture
+
+ /** @see adjustment */
+ fun adjustment(params: CheckDepositAdjustmentParams): CompletableFuture =
+ adjustment(params, RequestOptions.none())
+
+ /** @see adjustment */
+ fun adjustment(
+ checkDepositId: String,
+ requestOptions: RequestOptions,
+ ): CompletableFuture =
+ adjustment(checkDepositId, CheckDepositAdjustmentParams.none(), requestOptions)
+
/**
* Simulates the rejection of a [Check Deposit](#check-deposits) by Increase due to factors like
* poor image quality. This Check Deposit must first have a `status` of `pending`.
@@ -155,6 +195,48 @@ interface CheckDepositServiceAsync {
modifier: Consumer
): CheckDepositServiceAsync.WithRawResponse
+ /**
+ * Returns a raw HTTP response for `post
+ * /simulations/check_deposits/{check_deposit_id}/adjustment`, but is otherwise the same as
+ * [CheckDepositServiceAsync.adjustment].
+ */
+ fun adjustment(checkDepositId: String): CompletableFuture> =
+ adjustment(checkDepositId, CheckDepositAdjustmentParams.none())
+
+ /** @see adjustment */
+ fun adjustment(
+ checkDepositId: String,
+ params: CheckDepositAdjustmentParams = CheckDepositAdjustmentParams.none(),
+ requestOptions: RequestOptions = RequestOptions.none(),
+ ): CompletableFuture> =
+ adjustment(params.toBuilder().checkDepositId(checkDepositId).build(), requestOptions)
+
+ /** @see adjustment */
+ fun adjustment(
+ checkDepositId: String,
+ params: CheckDepositAdjustmentParams = CheckDepositAdjustmentParams.none(),
+ ): CompletableFuture> =
+ adjustment(checkDepositId, params, RequestOptions.none())
+
+ /** @see adjustment */
+ fun adjustment(
+ params: CheckDepositAdjustmentParams,
+ requestOptions: RequestOptions = RequestOptions.none(),
+ ): CompletableFuture>
+
+ /** @see adjustment */
+ fun adjustment(
+ params: CheckDepositAdjustmentParams
+ ): CompletableFuture> =
+ adjustment(params, RequestOptions.none())
+
+ /** @see adjustment */
+ fun adjustment(
+ checkDepositId: String,
+ requestOptions: RequestOptions,
+ ): CompletableFuture> =
+ adjustment(checkDepositId, CheckDepositAdjustmentParams.none(), requestOptions)
+
/**
* Returns a raw HTTP response for `post
* /simulations/check_deposits/{check_deposit_id}/reject`, but is otherwise the same as
diff --git a/increase-java-core/src/main/kotlin/com/increase/api/services/async/simulations/CheckDepositServiceAsyncImpl.kt b/increase-java-core/src/main/kotlin/com/increase/api/services/async/simulations/CheckDepositServiceAsyncImpl.kt
index 24f03975b..7870a8d57 100644
--- a/increase-java-core/src/main/kotlin/com/increase/api/services/async/simulations/CheckDepositServiceAsyncImpl.kt
+++ b/increase-java-core/src/main/kotlin/com/increase/api/services/async/simulations/CheckDepositServiceAsyncImpl.kt
@@ -17,6 +17,7 @@ import com.increase.api.core.http.json
import com.increase.api.core.http.parseable
import com.increase.api.core.prepareAsync
import com.increase.api.models.checkdeposits.CheckDeposit
+import com.increase.api.models.simulations.checkdeposits.CheckDepositAdjustmentParams
import com.increase.api.models.simulations.checkdeposits.CheckDepositRejectParams
import com.increase.api.models.simulations.checkdeposits.CheckDepositReturnParams
import com.increase.api.models.simulations.checkdeposits.CheckDepositSubmitParams
@@ -36,6 +37,13 @@ class CheckDepositServiceAsyncImpl internal constructor(private val clientOption
override fun withOptions(modifier: Consumer): CheckDepositServiceAsync =
CheckDepositServiceAsyncImpl(clientOptions.toBuilder().apply(modifier::accept).build())
+ override fun adjustment(
+ params: CheckDepositAdjustmentParams,
+ requestOptions: RequestOptions,
+ ): CompletableFuture =
+ // post /simulations/check_deposits/{check_deposit_id}/adjustment
+ withRawResponse().adjustment(params, requestOptions).thenApply { it.parse() }
+
override fun reject(
params: CheckDepositRejectParams,
requestOptions: RequestOptions,
@@ -70,6 +78,45 @@ class CheckDepositServiceAsyncImpl internal constructor(private val clientOption
clientOptions.toBuilder().apply(modifier::accept).build()
)
+ private val adjustmentHandler: Handler =
+ jsonHandler(clientOptions.jsonMapper)
+
+ override fun adjustment(
+ params: CheckDepositAdjustmentParams,
+ requestOptions: RequestOptions,
+ ): CompletableFuture> {
+ // We check here instead of in the params builder because this can be specified
+ // positionally or in the params class.
+ checkRequired("checkDepositId", params.checkDepositId().getOrNull())
+ val request =
+ HttpRequest.builder()
+ .method(HttpMethod.POST)
+ .baseUrl(clientOptions.baseUrl())
+ .addPathSegments(
+ "simulations",
+ "check_deposits",
+ params._pathParam(0),
+ "adjustment",
+ )
+ .body(json(clientOptions.jsonMapper, params._body()))
+ .build()
+ .prepareAsync(clientOptions, params)
+ val requestOptions = requestOptions.applyDefaults(RequestOptions.from(clientOptions))
+ return request
+ .thenComposeAsync { clientOptions.httpClient.executeAsync(it, requestOptions) }
+ .thenApply { response ->
+ errorHandler.handle(response).parseable {
+ response
+ .use { adjustmentHandler.handle(it) }
+ .also {
+ if (requestOptions.responseValidation!!) {
+ it.validate()
+ }
+ }
+ }
+ }
+ }
+
private val rejectHandler: Handler =
jsonHandler(clientOptions.jsonMapper)
diff --git a/increase-java-core/src/main/kotlin/com/increase/api/services/blocking/simulations/CheckDepositService.kt b/increase-java-core/src/main/kotlin/com/increase/api/services/blocking/simulations/CheckDepositService.kt
index 2f8bf7ace..ae93cca91 100644
--- a/increase-java-core/src/main/kotlin/com/increase/api/services/blocking/simulations/CheckDepositService.kt
+++ b/increase-java-core/src/main/kotlin/com/increase/api/services/blocking/simulations/CheckDepositService.kt
@@ -7,6 +7,7 @@ import com.increase.api.core.ClientOptions
import com.increase.api.core.RequestOptions
import com.increase.api.core.http.HttpResponseFor
import com.increase.api.models.checkdeposits.CheckDeposit
+import com.increase.api.models.simulations.checkdeposits.CheckDepositAdjustmentParams
import com.increase.api.models.simulations.checkdeposits.CheckDepositRejectParams
import com.increase.api.models.simulations.checkdeposits.CheckDepositReturnParams
import com.increase.api.models.simulations.checkdeposits.CheckDepositSubmitParams
@@ -26,6 +27,42 @@ interface CheckDepositService {
*/
fun withOptions(modifier: Consumer): CheckDepositService
+ /**
+ * Simulates the creation of a [Check Deposit Adjustment](#check-deposit-adjustments) on a
+ * [Check Deposit](#check-deposits). This Check Deposit must first have a `status` of
+ * `submitted`.
+ */
+ fun adjustment(checkDepositId: String): CheckDeposit =
+ adjustment(checkDepositId, CheckDepositAdjustmentParams.none())
+
+ /** @see adjustment */
+ fun adjustment(
+ checkDepositId: String,
+ params: CheckDepositAdjustmentParams = CheckDepositAdjustmentParams.none(),
+ requestOptions: RequestOptions = RequestOptions.none(),
+ ): CheckDeposit =
+ adjustment(params.toBuilder().checkDepositId(checkDepositId).build(), requestOptions)
+
+ /** @see adjustment */
+ fun adjustment(
+ checkDepositId: String,
+ params: CheckDepositAdjustmentParams = CheckDepositAdjustmentParams.none(),
+ ): CheckDeposit = adjustment(checkDepositId, params, RequestOptions.none())
+
+ /** @see adjustment */
+ fun adjustment(
+ params: CheckDepositAdjustmentParams,
+ requestOptions: RequestOptions = RequestOptions.none(),
+ ): CheckDeposit
+
+ /** @see adjustment */
+ fun adjustment(params: CheckDepositAdjustmentParams): CheckDeposit =
+ adjustment(params, RequestOptions.none())
+
+ /** @see adjustment */
+ fun adjustment(checkDepositId: String, requestOptions: RequestOptions): CheckDeposit =
+ adjustment(checkDepositId, CheckDepositAdjustmentParams.none(), requestOptions)
+
/**
* Simulates the rejection of a [Check Deposit](#check-deposits) by Increase due to factors like
* poor image quality. This Check Deposit must first have a `status` of `pending`.
@@ -145,6 +182,51 @@ interface CheckDepositService {
modifier: Consumer
): CheckDepositService.WithRawResponse
+ /**
+ * Returns a raw HTTP response for `post
+ * /simulations/check_deposits/{check_deposit_id}/adjustment`, but is otherwise the same as
+ * [CheckDepositService.adjustment].
+ */
+ @MustBeClosed
+ fun adjustment(checkDepositId: String): HttpResponseFor =
+ adjustment(checkDepositId, CheckDepositAdjustmentParams.none())
+
+ /** @see adjustment */
+ @MustBeClosed
+ fun adjustment(
+ checkDepositId: String,
+ params: CheckDepositAdjustmentParams = CheckDepositAdjustmentParams.none(),
+ requestOptions: RequestOptions = RequestOptions.none(),
+ ): HttpResponseFor =
+ adjustment(params.toBuilder().checkDepositId(checkDepositId).build(), requestOptions)
+
+ /** @see adjustment */
+ @MustBeClosed
+ fun adjustment(
+ checkDepositId: String,
+ params: CheckDepositAdjustmentParams = CheckDepositAdjustmentParams.none(),
+ ): HttpResponseFor = adjustment(checkDepositId, params, RequestOptions.none())
+
+ /** @see adjustment */
+ @MustBeClosed
+ fun adjustment(
+ params: CheckDepositAdjustmentParams,
+ requestOptions: RequestOptions = RequestOptions.none(),
+ ): HttpResponseFor
+
+ /** @see adjustment */
+ @MustBeClosed
+ fun adjustment(params: CheckDepositAdjustmentParams): HttpResponseFor =
+ adjustment(params, RequestOptions.none())
+
+ /** @see adjustment */
+ @MustBeClosed
+ fun adjustment(
+ checkDepositId: String,
+ requestOptions: RequestOptions,
+ ): HttpResponseFor =
+ adjustment(checkDepositId, CheckDepositAdjustmentParams.none(), requestOptions)
+
/**
* Returns a raw HTTP response for `post
* /simulations/check_deposits/{check_deposit_id}/reject`, but is otherwise the same as
diff --git a/increase-java-core/src/main/kotlin/com/increase/api/services/blocking/simulations/CheckDepositServiceImpl.kt b/increase-java-core/src/main/kotlin/com/increase/api/services/blocking/simulations/CheckDepositServiceImpl.kt
index cc02438da..5c2e6499b 100644
--- a/increase-java-core/src/main/kotlin/com/increase/api/services/blocking/simulations/CheckDepositServiceImpl.kt
+++ b/increase-java-core/src/main/kotlin/com/increase/api/services/blocking/simulations/CheckDepositServiceImpl.kt
@@ -17,6 +17,7 @@ import com.increase.api.core.http.json
import com.increase.api.core.http.parseable
import com.increase.api.core.prepare
import com.increase.api.models.checkdeposits.CheckDeposit
+import com.increase.api.models.simulations.checkdeposits.CheckDepositAdjustmentParams
import com.increase.api.models.simulations.checkdeposits.CheckDepositRejectParams
import com.increase.api.models.simulations.checkdeposits.CheckDepositReturnParams
import com.increase.api.models.simulations.checkdeposits.CheckDepositSubmitParams
@@ -35,6 +36,13 @@ class CheckDepositServiceImpl internal constructor(private val clientOptions: Cl
override fun withOptions(modifier: Consumer): CheckDepositService =
CheckDepositServiceImpl(clientOptions.toBuilder().apply(modifier::accept).build())
+ override fun adjustment(
+ params: CheckDepositAdjustmentParams,
+ requestOptions: RequestOptions,
+ ): CheckDeposit =
+ // post /simulations/check_deposits/{check_deposit_id}/adjustment
+ withRawResponse().adjustment(params, requestOptions).parse()
+
override fun reject(
params: CheckDepositRejectParams,
requestOptions: RequestOptions,
@@ -69,6 +77,42 @@ class CheckDepositServiceImpl internal constructor(private val clientOptions: Cl
clientOptions.toBuilder().apply(modifier::accept).build()
)
+ private val adjustmentHandler: Handler =
+ jsonHandler(clientOptions.jsonMapper)
+
+ override fun adjustment(
+ params: CheckDepositAdjustmentParams,
+ requestOptions: RequestOptions,
+ ): HttpResponseFor {
+ // We check here instead of in the params builder because this can be specified
+ // positionally or in the params class.
+ checkRequired("checkDepositId", params.checkDepositId().getOrNull())
+ val request =
+ HttpRequest.builder()
+ .method(HttpMethod.POST)
+ .baseUrl(clientOptions.baseUrl())
+ .addPathSegments(
+ "simulations",
+ "check_deposits",
+ params._pathParam(0),
+ "adjustment",
+ )
+ .body(json(clientOptions.jsonMapper, params._body()))
+ .build()
+ .prepare(clientOptions, params)
+ val requestOptions = requestOptions.applyDefaults(RequestOptions.from(clientOptions))
+ val response = clientOptions.httpClient.execute(request, requestOptions)
+ return errorHandler.handle(response).parseable {
+ response
+ .use { adjustmentHandler.handle(it) }
+ .also {
+ if (requestOptions.responseValidation!!) {
+ it.validate()
+ }
+ }
+ }
+ }
+
private val rejectHandler: Handler =
jsonHandler(clientOptions.jsonMapper)
diff --git a/increase-java-core/src/test/kotlin/com/increase/api/models/simulations/checkdeposits/CheckDepositAdjustmentParamsTest.kt b/increase-java-core/src/test/kotlin/com/increase/api/models/simulations/checkdeposits/CheckDepositAdjustmentParamsTest.kt
new file mode 100644
index 000000000..120695757
--- /dev/null
+++ b/increase-java-core/src/test/kotlin/com/increase/api/models/simulations/checkdeposits/CheckDepositAdjustmentParamsTest.kt
@@ -0,0 +1,55 @@
+// File generated from our OpenAPI spec by Stainless.
+
+package com.increase.api.models.simulations.checkdeposits
+
+import org.assertj.core.api.Assertions.assertThat
+import org.junit.jupiter.api.Test
+
+internal class CheckDepositAdjustmentParamsTest {
+
+ @Test
+ fun create() {
+ CheckDepositAdjustmentParams.builder()
+ .checkDepositId("check_deposit_f06n9gpg7sxn8t19lfc1")
+ .amount(-1000000000L)
+ .reason(CheckDepositAdjustmentParams.Reason.LATE_RETURN)
+ .build()
+ }
+
+ @Test
+ fun pathParams() {
+ val params =
+ CheckDepositAdjustmentParams.builder()
+ .checkDepositId("check_deposit_f06n9gpg7sxn8t19lfc1")
+ .build()
+
+ assertThat(params._pathParam(0)).isEqualTo("check_deposit_f06n9gpg7sxn8t19lfc1")
+ // out-of-bound path param
+ assertThat(params._pathParam(1)).isEqualTo("")
+ }
+
+ @Test
+ fun body() {
+ val params =
+ CheckDepositAdjustmentParams.builder()
+ .checkDepositId("check_deposit_f06n9gpg7sxn8t19lfc1")
+ .amount(-1000000000L)
+ .reason(CheckDepositAdjustmentParams.Reason.LATE_RETURN)
+ .build()
+
+ val body = params._body()
+
+ assertThat(body.amount()).contains(-1000000000L)
+ assertThat(body.reason()).contains(CheckDepositAdjustmentParams.Reason.LATE_RETURN)
+ }
+
+ @Test
+ fun bodyWithoutOptionalFields() {
+ val params =
+ CheckDepositAdjustmentParams.builder()
+ .checkDepositId("check_deposit_f06n9gpg7sxn8t19lfc1")
+ .build()
+
+ val body = params._body()
+ }
+}
diff --git a/increase-java-core/src/test/kotlin/com/increase/api/services/async/simulations/CheckDepositServiceAsyncTest.kt b/increase-java-core/src/test/kotlin/com/increase/api/services/async/simulations/CheckDepositServiceAsyncTest.kt
index 2d290bf66..190d80a19 100644
--- a/increase-java-core/src/test/kotlin/com/increase/api/services/async/simulations/CheckDepositServiceAsyncTest.kt
+++ b/increase-java-core/src/test/kotlin/com/increase/api/services/async/simulations/CheckDepositServiceAsyncTest.kt
@@ -4,6 +4,7 @@ package com.increase.api.services.async.simulations
import com.increase.api.TestServerExtension
import com.increase.api.client.okhttp.IncreaseOkHttpClientAsync
+import com.increase.api.models.simulations.checkdeposits.CheckDepositAdjustmentParams
import com.increase.api.models.simulations.checkdeposits.CheckDepositSubmitParams
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.extension.ExtendWith
@@ -11,6 +12,28 @@ import org.junit.jupiter.api.extension.ExtendWith
@ExtendWith(TestServerExtension::class)
internal class CheckDepositServiceAsyncTest {
+ @Test
+ fun adjustment() {
+ val client =
+ IncreaseOkHttpClientAsync.builder()
+ .baseUrl(TestServerExtension.BASE_URL)
+ .apiKey("My API Key")
+ .build()
+ val checkDepositServiceAsync = client.simulations().checkDeposits()
+
+ val checkDepositFuture =
+ checkDepositServiceAsync.adjustment(
+ CheckDepositAdjustmentParams.builder()
+ .checkDepositId("check_deposit_f06n9gpg7sxn8t19lfc1")
+ .amount(-1000000000L)
+ .reason(CheckDepositAdjustmentParams.Reason.LATE_RETURN)
+ .build()
+ )
+
+ val checkDeposit = checkDepositFuture.get()
+ checkDeposit.validate()
+ }
+
@Test
fun reject() {
val client =
diff --git a/increase-java-core/src/test/kotlin/com/increase/api/services/blocking/simulations/CheckDepositServiceTest.kt b/increase-java-core/src/test/kotlin/com/increase/api/services/blocking/simulations/CheckDepositServiceTest.kt
index fd139b3fe..d8710f5bd 100644
--- a/increase-java-core/src/test/kotlin/com/increase/api/services/blocking/simulations/CheckDepositServiceTest.kt
+++ b/increase-java-core/src/test/kotlin/com/increase/api/services/blocking/simulations/CheckDepositServiceTest.kt
@@ -4,6 +4,7 @@ package com.increase.api.services.blocking.simulations
import com.increase.api.TestServerExtension
import com.increase.api.client.okhttp.IncreaseOkHttpClient
+import com.increase.api.models.simulations.checkdeposits.CheckDepositAdjustmentParams
import com.increase.api.models.simulations.checkdeposits.CheckDepositSubmitParams
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.extension.ExtendWith
@@ -11,6 +12,27 @@ import org.junit.jupiter.api.extension.ExtendWith
@ExtendWith(TestServerExtension::class)
internal class CheckDepositServiceTest {
+ @Test
+ fun adjustment() {
+ val client =
+ IncreaseOkHttpClient.builder()
+ .baseUrl(TestServerExtension.BASE_URL)
+ .apiKey("My API Key")
+ .build()
+ val checkDepositService = client.simulations().checkDeposits()
+
+ val checkDeposit =
+ checkDepositService.adjustment(
+ CheckDepositAdjustmentParams.builder()
+ .checkDepositId("check_deposit_f06n9gpg7sxn8t19lfc1")
+ .amount(-1000000000L)
+ .reason(CheckDepositAdjustmentParams.Reason.LATE_RETURN)
+ .build()
+ )
+
+ checkDeposit.validate()
+ }
+
@Test
fun reject() {
val client =