diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index 09eb6e203..7f9560adf 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1,3 +1,3 @@
{
- ".": "0.329.0"
+ ".": "0.330.0"
}
\ No newline at end of file
diff --git a/.stats.yml b/.stats.yml
index f6bbc76b8..5d419a59b 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 213
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/increase%2Fincrease-fc17d091731928c882b2272ea5de831cafcbf237a7887652a5f133c29cb1bbc4.yml
-openapi_spec_hash: aad429d087b7557be4103d1309cd81a0
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/increase%2Fincrease-61d42e1f44023df8161e3b35d6154011e638f78b3b232379396ea8980d6257b5.yml
+openapi_spec_hash: 8831b733d617f5c7ee39db3cb62da20c
config_hash: e1e8bc2138a13f290956ae6687f099cd
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e937fc0ef..a7cd8bc6a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,13 @@
# Changelog
+## 0.330.0 (2025-09-18)
+
+Full Changelog: [v0.329.0...v0.330.0](https://github.com/Increase/increase-java/compare/v0.329.0...v0.330.0)
+
+### Features
+
+* **api:** api update ([ae13952](https://github.com/Increase/increase-java/commit/ae139526da8158c7801ea7c6473b76dd9becd31e))
+
## 0.329.0 (2025-09-17)
Full Changelog: [v0.328.0...v0.329.0](https://github.com/Increase/increase-java/compare/v0.328.0...v0.329.0)
diff --git a/README.md b/README.md
index 026159446..5221cde9b 100644
--- a/README.md
+++ b/README.md
@@ -2,8 +2,8 @@
-[](https://central.sonatype.com/artifact/com.increase.api/increase-java/0.329.0)
-[](https://javadoc.io/doc/com.increase.api/increase-java/0.329.0)
+[](https://central.sonatype.com/artifact/com.increase.api/increase-java/0.330.0)
+[](https://javadoc.io/doc/com.increase.api/increase-java/0.330.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.329.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.330.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.329.0")
+implementation("com.increase.api:increase-java:0.330.0")
```
### Maven
@@ -33,7 +33,7 @@ implementation("com.increase.api:increase-java:0.329.0")
com.increase.api
increase-java
- 0.329.0
+ 0.330.0
```
diff --git a/build.gradle.kts b/build.gradle.kts
index 081f65a96..69fd300a0 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -8,7 +8,7 @@ repositories {
allprojects {
group = "com.increase.api"
- version = "0.329.0" // x-release-please-version
+ version = "0.330.0" // x-release-please-version
}
subprojects {
diff --git a/increase-java-core/src/main/kotlin/com/increase/api/models/routingnumbers/RoutingNumberListResponse.kt b/increase-java-core/src/main/kotlin/com/increase/api/models/routingnumbers/RoutingNumberListResponse.kt
index fe310c6c0..b6a834991 100644
--- a/increase-java-core/src/main/kotlin/com/increase/api/models/routingnumbers/RoutingNumberListResponse.kt
+++ b/increase-java-core/src/main/kotlin/com/increase/api/models/routingnumbers/RoutingNumberListResponse.kt
@@ -21,6 +21,7 @@ import kotlin.jvm.optionals.getOrNull
class RoutingNumberListResponse
private constructor(
private val achTransfers: JsonField,
+ private val fednowTransfers: JsonField,
private val name: JsonField,
private val realTimePaymentsTransfers: JsonField,
private val routingNumber: JsonField,
@@ -34,6 +35,9 @@ private constructor(
@JsonProperty("ach_transfers")
@ExcludeMissing
achTransfers: JsonField = JsonMissing.of(),
+ @JsonProperty("fednow_transfers")
+ @ExcludeMissing
+ fednowTransfers: JsonField = JsonMissing.of(),
@JsonProperty("name") @ExcludeMissing name: JsonField = JsonMissing.of(),
@JsonProperty("real_time_payments_transfers")
@ExcludeMissing
@@ -47,6 +51,7 @@ private constructor(
wireTransfers: JsonField = JsonMissing.of(),
) : this(
achTransfers,
+ fednowTransfers,
name,
realTimePaymentsTransfers,
routingNumber,
@@ -63,6 +68,14 @@ private constructor(
*/
fun achTransfers(): AchTransfers = achTransfers.getRequired("ach_transfers")
+ /**
+ * This routing number's support for FedNow Transfers.
+ *
+ * @throws IncreaseInvalidDataException if the JSON field has an unexpected type or is
+ * unexpectedly missing or null (e.g. if the server responded with an unexpected value).
+ */
+ fun fednowTransfers(): FednowTransfers = fednowTransfers.getRequired("fednow_transfers")
+
/**
* The name of the financial institution belonging to a routing number.
*
@@ -114,6 +127,15 @@ private constructor(
@ExcludeMissing
fun _achTransfers(): JsonField = achTransfers
+ /**
+ * Returns the raw JSON value of [fednowTransfers].
+ *
+ * Unlike [fednowTransfers], this method doesn't throw if the JSON field has an unexpected type.
+ */
+ @JsonProperty("fednow_transfers")
+ @ExcludeMissing
+ fun _fednowTransfers(): JsonField = fednowTransfers
+
/**
* Returns the raw JSON value of [name].
*
@@ -177,6 +199,7 @@ private constructor(
* The following fields are required:
* ```java
* .achTransfers()
+ * .fednowTransfers()
* .name()
* .realTimePaymentsTransfers()
* .routingNumber()
@@ -191,6 +214,7 @@ private constructor(
class Builder internal constructor() {
private var achTransfers: JsonField? = null
+ private var fednowTransfers: JsonField? = null
private var name: JsonField? = null
private var realTimePaymentsTransfers: JsonField? = null
private var routingNumber: JsonField? = null
@@ -201,6 +225,7 @@ private constructor(
@JvmSynthetic
internal fun from(routingNumberListResponse: RoutingNumberListResponse) = apply {
achTransfers = routingNumberListResponse.achTransfers
+ fednowTransfers = routingNumberListResponse.fednowTransfers
name = routingNumberListResponse.name
realTimePaymentsTransfers = routingNumberListResponse.realTimePaymentsTransfers
routingNumber = routingNumberListResponse.routingNumber
@@ -223,6 +248,21 @@ private constructor(
this.achTransfers = achTransfers
}
+ /** This routing number's support for FedNow Transfers. */
+ fun fednowTransfers(fednowTransfers: FednowTransfers) =
+ fednowTransfers(JsonField.of(fednowTransfers))
+
+ /**
+ * Sets [Builder.fednowTransfers] to an arbitrary JSON value.
+ *
+ * You should usually call [Builder.fednowTransfers] with a well-typed [FednowTransfers]
+ * value instead. This method is primarily for setting the field to an undocumented or not
+ * yet supported value.
+ */
+ fun fednowTransfers(fednowTransfers: JsonField) = apply {
+ this.fednowTransfers = fednowTransfers
+ }
+
/** The name of the financial institution belonging to a routing number. */
fun name(name: String) = name(JsonField.of(name))
@@ -318,6 +358,7 @@ private constructor(
* The following fields are required:
* ```java
* .achTransfers()
+ * .fednowTransfers()
* .name()
* .realTimePaymentsTransfers()
* .routingNumber()
@@ -330,6 +371,7 @@ private constructor(
fun build(): RoutingNumberListResponse =
RoutingNumberListResponse(
checkRequired("achTransfers", achTransfers),
+ checkRequired("fednowTransfers", fednowTransfers),
checkRequired("name", name),
checkRequired("realTimePaymentsTransfers", realTimePaymentsTransfers),
checkRequired("routingNumber", routingNumber),
@@ -347,6 +389,7 @@ private constructor(
}
achTransfers().validate()
+ fednowTransfers().validate()
name()
realTimePaymentsTransfers().validate()
routingNumber()
@@ -371,6 +414,7 @@ private constructor(
@JvmSynthetic
internal fun validity(): Int =
(achTransfers.asKnown().getOrNull()?.validity() ?: 0) +
+ (fednowTransfers.asKnown().getOrNull()?.validity() ?: 0) +
(if (name.asKnown().isPresent) 1 else 0) +
(realTimePaymentsTransfers.asKnown().getOrNull()?.validity() ?: 0) +
(if (routingNumber.asKnown().isPresent) 1 else 0) +
@@ -514,6 +558,144 @@ private constructor(
override fun toString() = value.toString()
}
+ /** This routing number's support for FedNow Transfers. */
+ class FednowTransfers @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 routing number can receive this transfer type. */
+ @JvmField val SUPPORTED = of("supported")
+
+ /** The routing number cannot receive this transfer type. */
+ @JvmField val NOT_SUPPORTED = of("not_supported")
+
+ @JvmStatic fun of(value: String) = FednowTransfers(JsonField.of(value))
+ }
+
+ /** An enum containing [FednowTransfers]'s known values. */
+ enum class Known {
+ /** The routing number can receive this transfer type. */
+ SUPPORTED,
+ /** The routing number cannot receive this transfer type. */
+ NOT_SUPPORTED,
+ }
+
+ /**
+ * An enum containing [FednowTransfers]'s known values, as well as an [_UNKNOWN] member.
+ *
+ * An instance of [FednowTransfers] 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 routing number can receive this transfer type. */
+ SUPPORTED,
+ /** The routing number cannot receive this transfer type. */
+ NOT_SUPPORTED,
+ /**
+ * An enum member indicating that [FednowTransfers] 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) {
+ SUPPORTED -> Value.SUPPORTED
+ NOT_SUPPORTED -> Value.NOT_SUPPORTED
+ 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) {
+ SUPPORTED -> Known.SUPPORTED
+ NOT_SUPPORTED -> Known.NOT_SUPPORTED
+ else -> throw IncreaseInvalidDataException("Unknown FednowTransfers: $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(): FednowTransfers = 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 FednowTransfers && value == other.value
+ }
+
+ override fun hashCode() = value.hashCode()
+
+ override fun toString() = value.toString()
+ }
+
/** This routing number's support for Real-Time Payments Transfers. */
class RealTimePaymentsTransfers
@JsonCreator
@@ -926,6 +1108,7 @@ private constructor(
return other is RoutingNumberListResponse &&
achTransfers == other.achTransfers &&
+ fednowTransfers == other.fednowTransfers &&
name == other.name &&
realTimePaymentsTransfers == other.realTimePaymentsTransfers &&
routingNumber == other.routingNumber &&
@@ -937,6 +1120,7 @@ private constructor(
private val hashCode: Int by lazy {
Objects.hash(
achTransfers,
+ fednowTransfers,
name,
realTimePaymentsTransfers,
routingNumber,
@@ -949,5 +1133,5 @@ private constructor(
override fun hashCode(): Int = hashCode
override fun toString() =
- "RoutingNumberListResponse{achTransfers=$achTransfers, name=$name, realTimePaymentsTransfers=$realTimePaymentsTransfers, routingNumber=$routingNumber, type=$type, wireTransfers=$wireTransfers, additionalProperties=$additionalProperties}"
+ "RoutingNumberListResponse{achTransfers=$achTransfers, fednowTransfers=$fednowTransfers, name=$name, realTimePaymentsTransfers=$realTimePaymentsTransfers, routingNumber=$routingNumber, type=$type, wireTransfers=$wireTransfers, additionalProperties=$additionalProperties}"
}
diff --git a/increase-java-core/src/test/kotlin/com/increase/api/models/routingnumbers/RoutingNumberListPageResponseTest.kt b/increase-java-core/src/test/kotlin/com/increase/api/models/routingnumbers/RoutingNumberListPageResponseTest.kt
index d35c29c32..22f3d3bd3 100644
--- a/increase-java-core/src/test/kotlin/com/increase/api/models/routingnumbers/RoutingNumberListPageResponseTest.kt
+++ b/increase-java-core/src/test/kotlin/com/increase/api/models/routingnumbers/RoutingNumberListPageResponseTest.kt
@@ -16,6 +16,7 @@ internal class RoutingNumberListPageResponseTest {
.addData(
RoutingNumberListResponse.builder()
.achTransfers(RoutingNumberListResponse.AchTransfers.SUPPORTED)
+ .fednowTransfers(RoutingNumberListResponse.FednowTransfers.SUPPORTED)
.name("First Bank of the United States")
.realTimePaymentsTransfers(
RoutingNumberListResponse.RealTimePaymentsTransfers.SUPPORTED
@@ -32,6 +33,7 @@ internal class RoutingNumberListPageResponseTest {
.containsExactly(
RoutingNumberListResponse.builder()
.achTransfers(RoutingNumberListResponse.AchTransfers.SUPPORTED)
+ .fednowTransfers(RoutingNumberListResponse.FednowTransfers.SUPPORTED)
.name("First Bank of the United States")
.realTimePaymentsTransfers(
RoutingNumberListResponse.RealTimePaymentsTransfers.SUPPORTED
@@ -52,6 +54,7 @@ internal class RoutingNumberListPageResponseTest {
.addData(
RoutingNumberListResponse.builder()
.achTransfers(RoutingNumberListResponse.AchTransfers.SUPPORTED)
+ .fednowTransfers(RoutingNumberListResponse.FednowTransfers.SUPPORTED)
.name("First Bank of the United States")
.realTimePaymentsTransfers(
RoutingNumberListResponse.RealTimePaymentsTransfers.SUPPORTED
diff --git a/increase-java-core/src/test/kotlin/com/increase/api/models/routingnumbers/RoutingNumberListResponseTest.kt b/increase-java-core/src/test/kotlin/com/increase/api/models/routingnumbers/RoutingNumberListResponseTest.kt
index 5ec1bcb99..154ff33ff 100644
--- a/increase-java-core/src/test/kotlin/com/increase/api/models/routingnumbers/RoutingNumberListResponseTest.kt
+++ b/increase-java-core/src/test/kotlin/com/increase/api/models/routingnumbers/RoutingNumberListResponseTest.kt
@@ -14,6 +14,7 @@ internal class RoutingNumberListResponseTest {
val routingNumberListResponse =
RoutingNumberListResponse.builder()
.achTransfers(RoutingNumberListResponse.AchTransfers.SUPPORTED)
+ .fednowTransfers(RoutingNumberListResponse.FednowTransfers.SUPPORTED)
.name("First Bank of the United States")
.realTimePaymentsTransfers(
RoutingNumberListResponse.RealTimePaymentsTransfers.SUPPORTED
@@ -25,6 +26,8 @@ internal class RoutingNumberListResponseTest {
assertThat(routingNumberListResponse.achTransfers())
.isEqualTo(RoutingNumberListResponse.AchTransfers.SUPPORTED)
+ assertThat(routingNumberListResponse.fednowTransfers())
+ .isEqualTo(RoutingNumberListResponse.FednowTransfers.SUPPORTED)
assertThat(routingNumberListResponse.name()).isEqualTo("First Bank of the United States")
assertThat(routingNumberListResponse.realTimePaymentsTransfers())
.isEqualTo(RoutingNumberListResponse.RealTimePaymentsTransfers.SUPPORTED)
@@ -41,6 +44,7 @@ internal class RoutingNumberListResponseTest {
val routingNumberListResponse =
RoutingNumberListResponse.builder()
.achTransfers(RoutingNumberListResponse.AchTransfers.SUPPORTED)
+ .fednowTransfers(RoutingNumberListResponse.FednowTransfers.SUPPORTED)
.name("First Bank of the United States")
.realTimePaymentsTransfers(
RoutingNumberListResponse.RealTimePaymentsTransfers.SUPPORTED