diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index 414ada657..d2b3093d6 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1,3 +1,3 @@
{
- ".": "0.485.0"
+ ".": "0.486.0"
}
\ No newline at end of file
diff --git a/.stats.yml b/.stats.yml
index d4fff91f9..8e3e051f7 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 236
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/increase%2Fincrease-5444aa15ed771b293975e4ea457bbf96f3fd4268dab9cef1d64fc18efbba3718.yml
-openapi_spec_hash: 94be74f7b294a338dd47d95721bb52ae
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/increase%2Fincrease-f3d22401feb4671870673cb67688b163ee7f26acb6d2f89dcf79b26b0675523f.yml
+openapi_spec_hash: 4d6dbce33f5de203d92df4c20a957665
config_hash: 25d7d7aa4882db6189b4b53e8e249e80
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6029f7413..03d529dd3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,13 @@
# Changelog
+## 0.486.0 (2026-03-19)
+
+Full Changelog: [v0.485.0...v0.486.0](https://github.com/Increase/increase-java/compare/v0.485.0...v0.486.0)
+
+### Features
+
+* **api:** api update ([d4e2d48](https://github.com/Increase/increase-java/commit/d4e2d482bfe255f31b55dc3ca07238f12fed92a1))
+
## 0.485.0 (2026-03-18)
Full Changelog: [v0.484.0...v0.485.0](https://github.com/Increase/increase-java/compare/v0.484.0...v0.485.0)
diff --git a/README.md b/README.md
index f0c27e9cf..cdae65603 100644
--- a/README.md
+++ b/README.md
@@ -2,8 +2,8 @@
-[](https://central.sonatype.com/artifact/com.increase.api/increase-java/0.485.0)
-[](https://javadoc.io/doc/com.increase.api/increase-java/0.485.0)
+[](https://central.sonatype.com/artifact/com.increase.api/increase-java/0.486.0)
+[](https://javadoc.io/doc/com.increase.api/increase-java/0.486.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.485.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.486.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.485.0")
+implementation("com.increase.api:increase-java:0.486.0")
```
### Maven
@@ -33,7 +33,7 @@ implementation("com.increase.api:increase-java:0.485.0")
com.increase.api
increase-java
- 0.485.0
+ 0.486.0
```
diff --git a/build.gradle.kts b/build.gradle.kts
index 9faca8f42..5210a3ef5 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -8,7 +8,7 @@ repositories {
allprojects {
group = "com.increase.api"
- version = "0.485.0" // x-release-please-version
+ version = "0.486.0" // x-release-please-version
}
subprojects {
diff --git a/increase-java-core/src/main/kotlin/com/increase/api/models/wiredrawdownrequests/WireDrawdownRequestCreateParams.kt b/increase-java-core/src/main/kotlin/com/increase/api/models/wiredrawdownrequests/WireDrawdownRequestCreateParams.kt
index 5ab5bae73..4655140f3 100644
--- a/increase-java-core/src/main/kotlin/com/increase/api/models/wiredrawdownrequests/WireDrawdownRequestCreateParams.kt
+++ b/increase-java-core/src/main/kotlin/com/increase/api/models/wiredrawdownrequests/WireDrawdownRequestCreateParams.kt
@@ -6,6 +6,7 @@ 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
@@ -84,6 +85,14 @@ private constructor(
*/
fun unstructuredRemittanceInformation(): String = body.unstructuredRemittanceInformation()
+ /**
+ * Determines who bears the cost of the drawdown request. Defaults to `shared` if not specified.
+ *
+ * @throws IncreaseInvalidDataException if the JSON field has an unexpected type (e.g. if the
+ * server responded with an unexpected value).
+ */
+ fun chargeBearer(): Optional = body.chargeBearer()
+
/**
* The debtor's account number.
*
@@ -168,6 +177,13 @@ private constructor(
fun _unstructuredRemittanceInformation(): JsonField =
body._unstructuredRemittanceInformation()
+ /**
+ * Returns the raw JSON value of [chargeBearer].
+ *
+ * Unlike [chargeBearer], this method doesn't throw if the JSON field has an unexpected type.
+ */
+ fun _chargeBearer(): JsonField = body._chargeBearer()
+
/**
* Returns the raw JSON value of [debtorAccountNumber].
*
@@ -361,6 +377,23 @@ private constructor(
unstructuredRemittanceInformation: JsonField
) = apply { body.unstructuredRemittanceInformation(unstructuredRemittanceInformation) }
+ /**
+ * Determines who bears the cost of the drawdown request. Defaults to `shared` if not
+ * specified.
+ */
+ fun chargeBearer(chargeBearer: ChargeBearer) = apply { body.chargeBearer(chargeBearer) }
+
+ /**
+ * Sets [Builder.chargeBearer] to an arbitrary JSON value.
+ *
+ * You should usually call [Builder.chargeBearer] with a well-typed [ChargeBearer] value
+ * instead. This method is primarily for setting the field to an undocumented or not yet
+ * supported value.
+ */
+ fun chargeBearer(chargeBearer: JsonField) = apply {
+ body.chargeBearer(chargeBearer)
+ }
+
/** The debtor's account number. */
fun debtorAccountNumber(debtorAccountNumber: String) = apply {
body.debtorAccountNumber(debtorAccountNumber)
@@ -590,6 +623,7 @@ private constructor(
private val debtorAddress: JsonField,
private val debtorName: JsonField,
private val unstructuredRemittanceInformation: JsonField,
+ private val chargeBearer: JsonField,
private val debtorAccountNumber: JsonField,
private val debtorExternalAccountId: JsonField,
private val debtorRoutingNumber: JsonField,
@@ -618,6 +652,9 @@ private constructor(
@JsonProperty("unstructured_remittance_information")
@ExcludeMissing
unstructuredRemittanceInformation: JsonField = JsonMissing.of(),
+ @JsonProperty("charge_bearer")
+ @ExcludeMissing
+ chargeBearer: JsonField = JsonMissing.of(),
@JsonProperty("debtor_account_number")
@ExcludeMissing
debtorAccountNumber: JsonField = JsonMissing.of(),
@@ -638,6 +675,7 @@ private constructor(
debtorAddress,
debtorName,
unstructuredRemittanceInformation,
+ chargeBearer,
debtorAccountNumber,
debtorExternalAccountId,
debtorRoutingNumber,
@@ -702,6 +740,15 @@ private constructor(
fun unstructuredRemittanceInformation(): String =
unstructuredRemittanceInformation.getRequired("unstructured_remittance_information")
+ /**
+ * Determines who bears the cost of the drawdown request. Defaults to `shared` if not
+ * specified.
+ *
+ * @throws IncreaseInvalidDataException if the JSON field has an unexpected type (e.g. if
+ * the server responded with an unexpected value).
+ */
+ fun chargeBearer(): Optional = chargeBearer.getOptional("charge_bearer")
+
/**
* The debtor's account number.
*
@@ -807,6 +854,16 @@ private constructor(
fun _unstructuredRemittanceInformation(): JsonField =
unstructuredRemittanceInformation
+ /**
+ * Returns the raw JSON value of [chargeBearer].
+ *
+ * Unlike [chargeBearer], this method doesn't throw if the JSON field has an unexpected
+ * type.
+ */
+ @JsonProperty("charge_bearer")
+ @ExcludeMissing
+ fun _chargeBearer(): JsonField = chargeBearer
+
/**
* Returns the raw JSON value of [debtorAccountNumber].
*
@@ -888,6 +945,7 @@ private constructor(
private var debtorAddress: JsonField? = null
private var debtorName: JsonField? = null
private var unstructuredRemittanceInformation: JsonField? = null
+ private var chargeBearer: JsonField = JsonMissing.of()
private var debtorAccountNumber: JsonField = JsonMissing.of()
private var debtorExternalAccountId: JsonField = JsonMissing.of()
private var debtorRoutingNumber: JsonField = JsonMissing.of()
@@ -903,6 +961,7 @@ private constructor(
debtorAddress = body.debtorAddress
debtorName = body.debtorName
unstructuredRemittanceInformation = body.unstructuredRemittanceInformation
+ chargeBearer = body.chargeBearer
debtorAccountNumber = body.debtorAccountNumber
debtorExternalAccountId = body.debtorExternalAccountId
debtorRoutingNumber = body.debtorRoutingNumber
@@ -1008,6 +1067,23 @@ private constructor(
unstructuredRemittanceInformation: JsonField
) = apply { this.unstructuredRemittanceInformation = unstructuredRemittanceInformation }
+ /**
+ * Determines who bears the cost of the drawdown request. Defaults to `shared` if not
+ * specified.
+ */
+ fun chargeBearer(chargeBearer: ChargeBearer) = chargeBearer(JsonField.of(chargeBearer))
+
+ /**
+ * Sets [Builder.chargeBearer] to an arbitrary JSON value.
+ *
+ * You should usually call [Builder.chargeBearer] with a well-typed [ChargeBearer] value
+ * instead. This method is primarily for setting the field to an undocumented or not yet
+ * supported value.
+ */
+ fun chargeBearer(chargeBearer: JsonField) = apply {
+ this.chargeBearer = chargeBearer
+ }
+
/** The debtor's account number. */
fun debtorAccountNumber(debtorAccountNumber: String) =
debtorAccountNumber(JsonField.of(debtorAccountNumber))
@@ -1123,6 +1199,7 @@ private constructor(
"unstructuredRemittanceInformation",
unstructuredRemittanceInformation,
),
+ chargeBearer,
debtorAccountNumber,
debtorExternalAccountId,
debtorRoutingNumber,
@@ -1145,6 +1222,7 @@ private constructor(
debtorAddress().validate()
debtorName()
unstructuredRemittanceInformation()
+ chargeBearer().ifPresent { it.validate() }
debtorAccountNumber()
debtorExternalAccountId()
debtorRoutingNumber()
@@ -1175,6 +1253,7 @@ private constructor(
(debtorAddress.asKnown().getOrNull()?.validity() ?: 0) +
(if (debtorName.asKnown().isPresent) 1 else 0) +
(if (unstructuredRemittanceInformation.asKnown().isPresent) 1 else 0) +
+ (chargeBearer.asKnown().getOrNull()?.validity() ?: 0) +
(if (debtorAccountNumber.asKnown().isPresent) 1 else 0) +
(if (debtorExternalAccountId.asKnown().isPresent) 1 else 0) +
(if (debtorRoutingNumber.asKnown().isPresent) 1 else 0) +
@@ -1193,6 +1272,7 @@ private constructor(
debtorAddress == other.debtorAddress &&
debtorName == other.debtorName &&
unstructuredRemittanceInformation == other.unstructuredRemittanceInformation &&
+ chargeBearer == other.chargeBearer &&
debtorAccountNumber == other.debtorAccountNumber &&
debtorExternalAccountId == other.debtorExternalAccountId &&
debtorRoutingNumber == other.debtorRoutingNumber &&
@@ -1209,6 +1289,7 @@ private constructor(
debtorAddress,
debtorName,
unstructuredRemittanceInformation,
+ chargeBearer,
debtorAccountNumber,
debtorExternalAccountId,
debtorRoutingNumber,
@@ -1220,7 +1301,7 @@ private constructor(
override fun hashCode(): Int = hashCode
override fun toString() =
- "Body{accountNumberId=$accountNumberId, amount=$amount, creditorAddress=$creditorAddress, creditorName=$creditorName, debtorAddress=$debtorAddress, debtorName=$debtorName, unstructuredRemittanceInformation=$unstructuredRemittanceInformation, debtorAccountNumber=$debtorAccountNumber, debtorExternalAccountId=$debtorExternalAccountId, debtorRoutingNumber=$debtorRoutingNumber, endToEndIdentification=$endToEndIdentification, additionalProperties=$additionalProperties}"
+ "Body{accountNumberId=$accountNumberId, amount=$amount, creditorAddress=$creditorAddress, creditorName=$creditorName, debtorAddress=$debtorAddress, debtorName=$debtorName, unstructuredRemittanceInformation=$unstructuredRemittanceInformation, chargeBearer=$chargeBearer, debtorAccountNumber=$debtorAccountNumber, debtorExternalAccountId=$debtorExternalAccountId, debtorRoutingNumber=$debtorRoutingNumber, endToEndIdentification=$endToEndIdentification, additionalProperties=$additionalProperties}"
}
/** The creditor's address. */
@@ -1925,6 +2006,163 @@ private constructor(
"DebtorAddress{city=$city, country=$country, line1=$line1, line2=$line2, postalCode=$postalCode, state=$state, additionalProperties=$additionalProperties}"
}
+ /**
+ * Determines who bears the cost of the drawdown request. Defaults to `shared` if not specified.
+ */
+ class ChargeBearer @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 {
+
+ /** Charges are shared between the debtor and creditor. */
+ @JvmField val SHARED = of("shared")
+
+ /** Charges are borne by the debtor. */
+ @JvmField val DEBTOR = of("debtor")
+
+ /** Charges are borne by the creditor. */
+ @JvmField val CREDITOR = of("creditor")
+
+ /** Charges are determined by the service level. */
+ @JvmField val SERVICE_LEVEL = of("service_level")
+
+ @JvmStatic fun of(value: String) = ChargeBearer(JsonField.of(value))
+ }
+
+ /** An enum containing [ChargeBearer]'s known values. */
+ enum class Known {
+ /** Charges are shared between the debtor and creditor. */
+ SHARED,
+ /** Charges are borne by the debtor. */
+ DEBTOR,
+ /** Charges are borne by the creditor. */
+ CREDITOR,
+ /** Charges are determined by the service level. */
+ SERVICE_LEVEL,
+ }
+
+ /**
+ * An enum containing [ChargeBearer]'s known values, as well as an [_UNKNOWN] member.
+ *
+ * An instance of [ChargeBearer] 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 {
+ /** Charges are shared between the debtor and creditor. */
+ SHARED,
+ /** Charges are borne by the debtor. */
+ DEBTOR,
+ /** Charges are borne by the creditor. */
+ CREDITOR,
+ /** Charges are determined by the service level. */
+ SERVICE_LEVEL,
+ /**
+ * An enum member indicating that [ChargeBearer] 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) {
+ SHARED -> Value.SHARED
+ DEBTOR -> Value.DEBTOR
+ CREDITOR -> Value.CREDITOR
+ SERVICE_LEVEL -> Value.SERVICE_LEVEL
+ 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) {
+ SHARED -> Known.SHARED
+ DEBTOR -> Known.DEBTOR
+ CREDITOR -> Known.CREDITOR
+ SERVICE_LEVEL -> Known.SERVICE_LEVEL
+ else -> throw IncreaseInvalidDataException("Unknown ChargeBearer: $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(): ChargeBearer = 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 ChargeBearer && value == other.value
+ }
+
+ override fun hashCode() = value.hashCode()
+
+ override fun toString() = value.toString()
+ }
+
override fun equals(other: Any?): Boolean {
if (this === other) {
return true
diff --git a/increase-java-core/src/test/kotlin/com/increase/api/models/wiredrawdownrequests/WireDrawdownRequestCreateParamsTest.kt b/increase-java-core/src/test/kotlin/com/increase/api/models/wiredrawdownrequests/WireDrawdownRequestCreateParamsTest.kt
index ae46fdbc6..4f40cb01f 100644
--- a/increase-java-core/src/test/kotlin/com/increase/api/models/wiredrawdownrequests/WireDrawdownRequestCreateParamsTest.kt
+++ b/increase-java-core/src/test/kotlin/com/increase/api/models/wiredrawdownrequests/WireDrawdownRequestCreateParamsTest.kt
@@ -35,6 +35,7 @@ internal class WireDrawdownRequestCreateParamsTest {
)
.debtorName("Ian Crease")
.unstructuredRemittanceInformation("Invoice 29582")
+ .chargeBearer(WireDrawdownRequestCreateParams.ChargeBearer.SHARED)
.debtorAccountNumber("987654321")
.debtorExternalAccountId("debtor_external_account_id")
.debtorRoutingNumber("101050001")
@@ -71,6 +72,7 @@ internal class WireDrawdownRequestCreateParamsTest {
)
.debtorName("Ian Crease")
.unstructuredRemittanceInformation("Invoice 29582")
+ .chargeBearer(WireDrawdownRequestCreateParams.ChargeBearer.SHARED)
.debtorAccountNumber("987654321")
.debtorExternalAccountId("debtor_external_account_id")
.debtorRoutingNumber("101050001")
@@ -106,6 +108,8 @@ internal class WireDrawdownRequestCreateParamsTest {
)
assertThat(body.debtorName()).isEqualTo("Ian Crease")
assertThat(body.unstructuredRemittanceInformation()).isEqualTo("Invoice 29582")
+ assertThat(body.chargeBearer())
+ .contains(WireDrawdownRequestCreateParams.ChargeBearer.SHARED)
assertThat(body.debtorAccountNumber()).contains("987654321")
assertThat(body.debtorExternalAccountId()).contains("debtor_external_account_id")
assertThat(body.debtorRoutingNumber()).contains("101050001")
diff --git a/increase-java-core/src/test/kotlin/com/increase/api/services/async/WireDrawdownRequestServiceAsyncTest.kt b/increase-java-core/src/test/kotlin/com/increase/api/services/async/WireDrawdownRequestServiceAsyncTest.kt
index 5fbafff88..5c5ea6c09 100644
--- a/increase-java-core/src/test/kotlin/com/increase/api/services/async/WireDrawdownRequestServiceAsyncTest.kt
+++ b/increase-java-core/src/test/kotlin/com/increase/api/services/async/WireDrawdownRequestServiceAsyncTest.kt
@@ -48,6 +48,7 @@ internal class WireDrawdownRequestServiceAsyncTest {
)
.debtorName("Ian Crease")
.unstructuredRemittanceInformation("Invoice 29582")
+ .chargeBearer(WireDrawdownRequestCreateParams.ChargeBearer.SHARED)
.debtorAccountNumber("987654321")
.debtorExternalAccountId("debtor_external_account_id")
.debtorRoutingNumber("101050001")
diff --git a/increase-java-core/src/test/kotlin/com/increase/api/services/blocking/WireDrawdownRequestServiceTest.kt b/increase-java-core/src/test/kotlin/com/increase/api/services/blocking/WireDrawdownRequestServiceTest.kt
index cb7bac691..2c882f420 100644
--- a/increase-java-core/src/test/kotlin/com/increase/api/services/blocking/WireDrawdownRequestServiceTest.kt
+++ b/increase-java-core/src/test/kotlin/com/increase/api/services/blocking/WireDrawdownRequestServiceTest.kt
@@ -48,6 +48,7 @@ internal class WireDrawdownRequestServiceTest {
)
.debtorName("Ian Crease")
.unstructuredRemittanceInformation("Invoice 29582")
+ .chargeBearer(WireDrawdownRequestCreateParams.ChargeBearer.SHARED)
.debtorAccountNumber("987654321")
.debtorExternalAccountId("debtor_external_account_id")
.debtorRoutingNumber("101050001")