diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index b4da64f27..4a1242df8 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1,3 +1,3 @@
{
- ".": "0.132.0"
+ ".": "0.133.0"
}
\ No newline at end of file
diff --git a/.stats.yml b/.stats.yml
index a57158191..4f5b5f067 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 214
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic/lithic-59c09c7355b21b663e001d2ee1086ebd0a70d9b5433823282bca296eedff9eb0.yml
-openapi_spec_hash: d9c3b932c810809abc6e973d662ad376
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic/lithic-9c9038d362c6a423011de6cfe5bf4a93ca2ea6e6991327583c4dcc47ceb8d7e3.yml
+openapi_spec_hash: c2acf17ac5eb3d9e11f86c57a0af3cb3
config_hash: 337a99d8cc30006358b7bc2531401669
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e62e0e027..f448ed49f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,27 @@
# Changelog
+## 0.133.0 (2026-08-10)
+
+Full Changelog: [v0.132.0...v0.133.0](https://github.com/lithic-com/lithic-java/compare/v0.132.0...v0.133.0)
+
+### Features
+
+* **api:** add blockchain_addresses field to FinancialAccount and webhook events ([3ac1807](https://github.com/lithic-com/lithic-java/commit/3ac18071466c0d8e43570f4cdf878ec1a506a40c))
+* **api:** add limitCashAmount/limitCashCount fields to VelocityLimitParams ([9507834](https://github.com/lithic-com/lithic-java/commit/9507834f2c34614684d100e960b40a1dca2ce9c5))
+* **api:** add PROGRAM scope to AchPayment/CardTransaction, entity types to Case ([cd6e1c3](https://github.com/lithic-com/lithic-java/commit/cd6e1c3244d56d6c37ea9806d4de572a19ca5244))
+* **api:** add stablecoin event types to FinancialEvent/Payment/StatementLineItems ([46fa6f1](https://github.com/lithic-com/lithic-java/commit/46fa6f1495cab9c378cf03932090cb6710fff7ed))
+* **api:** Add STABLECOIN to approvals request and transfer type enums ([3b3dd7a](https://github.com/lithic-com/lithic-java/commit/3b3dd7ae05e57fd7d4112db5dab1a752cdacbe72))
+
+
+### Chores
+
+* **internal:** codegen related update ([39e4623](https://github.com/lithic-com/lithic-java/commit/39e4623d63b58bc9f048cc6a2592e657cf1706b8))
+
+
+### Documentation
+
+* **api:** update CVV field descriptions to note AMEX uses 4 digits ([2892515](https://github.com/lithic-com/lithic-java/commit/28925154b2b09da8cfc8e8a01d38886698df0156))
+
## 0.132.0 (2026-08-03)
Full Changelog: [v0.131.0...v0.132.0](https://github.com/lithic-com/lithic-java/compare/v0.131.0...v0.132.0)
diff --git a/README.md b/README.md
index e0cf94193..067a2deca 100644
--- a/README.md
+++ b/README.md
@@ -2,8 +2,8 @@
-[](https://central.sonatype.com/artifact/com.lithic.api/lithic-java/0.132.0)
-[](https://javadoc.io/doc/com.lithic.api/lithic-java/0.132.0)
+[](https://central.sonatype.com/artifact/com.lithic.api/lithic-java/0.133.0)
+[](https://javadoc.io/doc/com.lithic.api/lithic-java/0.133.0)
@@ -22,7 +22,7 @@ Use the Lithic MCP Server to enable AI assistants to interact with this API, all
-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.132.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.133.0).
@@ -33,7 +33,7 @@ The REST API documentation can be found on [docs.lithic.com](https://docs.lithic
### Gradle
```kotlin
-implementation("com.lithic.api:lithic-java:0.132.0")
+implementation("com.lithic.api:lithic-java:0.133.0")
```
### Maven
@@ -42,7 +42,7 @@ implementation("com.lithic.api:lithic-java:0.132.0")
com.lithic.api
lithic-java
- 0.132.0
+ 0.133.0
```
diff --git a/build.gradle.kts b/build.gradle.kts
index 3f9804eaf..9d85f0e19 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -8,7 +8,7 @@ repositories {
allprojects {
group = "com.lithic.api"
- version = "0.132.0" // x-release-please-version
+ version = "0.133.0" // x-release-please-version
}
subprojects {
diff --git a/lithic-java-core/src/main/kotlin/com/lithic/api/models/AchPaymentUpdateAction.kt b/lithic-java-core/src/main/kotlin/com/lithic/api/models/AchPaymentUpdateAction.kt
index c4a6a5e6c..70e3bc0f3 100644
--- a/lithic-java-core/src/main/kotlin/com/lithic/api/models/AchPaymentUpdateAction.kt
+++ b/lithic-java-core/src/main/kotlin/com/lithic/api/models/AchPaymentUpdateAction.kt
@@ -862,12 +862,15 @@ private constructor(
@JvmField val FINANCIAL_ACCOUNT = of("FINANCIAL_ACCOUNT")
+ @JvmField val PROGRAM = of("PROGRAM")
+
@JvmStatic fun of(value: String) = Scope(JsonField.of(value))
}
/** An enum containing [Scope]'s known values. */
enum class Known {
- FINANCIAL_ACCOUNT
+ FINANCIAL_ACCOUNT,
+ PROGRAM,
}
/**
@@ -881,6 +884,7 @@ private constructor(
*/
enum class Value {
FINANCIAL_ACCOUNT,
+ PROGRAM,
/**
* An enum member indicating that [Scope] was instantiated with an unknown value.
*/
@@ -897,6 +901,7 @@ private constructor(
fun value(): Value =
when (this) {
FINANCIAL_ACCOUNT -> Value.FINANCIAL_ACCOUNT
+ PROGRAM -> Value.PROGRAM
else -> Value._UNKNOWN
}
@@ -912,6 +917,7 @@ private constructor(
fun known(): Known =
when (this) {
FINANCIAL_ACCOUNT -> Known.FINANCIAL_ACCOUNT
+ PROGRAM -> Known.PROGRAM
else -> throw LithicInvalidDataException("Unknown Scope: $value")
}
diff --git a/lithic-java-core/src/main/kotlin/com/lithic/api/models/Card.kt b/lithic-java-core/src/main/kotlin/com/lithic/api/models/Card.kt
index 3a5dc5710..86cb54599 100644
--- a/lithic-java-core/src/main/kotlin/com/lithic/api/models/Card.kt
+++ b/lithic-java-core/src/main/kotlin/com/lithic/api/models/Card.kt
@@ -434,7 +434,7 @@ private constructor(
fun substatus(): Optional = substatus.getOptional("substatus")
/**
- * Three digit cvv printed on the back of the card.
+ * Three or four digit CVV printed on the card. Amex cards use four digit CVVs
*
* @throws LithicInvalidDataException if the JSON field has an unexpected type (e.g. if the
* server responded with an unexpected value).
@@ -1241,7 +1241,7 @@ private constructor(
this.substatus = substatus
}
- /** Three digit cvv printed on the back of the card. */
+ /** Three or four digit CVV printed on the card. Amex cards use four digit CVVs */
fun cvv(cvv: String) = cvv(JsonField.of(cvv))
/**
diff --git a/lithic-java-core/src/main/kotlin/com/lithic/api/models/CardTransactionUpdateAction.kt b/lithic-java-core/src/main/kotlin/com/lithic/api/models/CardTransactionUpdateAction.kt
index 52b12b4bc..e165eba49 100644
--- a/lithic-java-core/src/main/kotlin/com/lithic/api/models/CardTransactionUpdateAction.kt
+++ b/lithic-java-core/src/main/kotlin/com/lithic/api/models/CardTransactionUpdateAction.kt
@@ -866,6 +866,8 @@ private constructor(
@JvmField val ACCOUNT = of("ACCOUNT")
+ @JvmField val PROGRAM = of("PROGRAM")
+
@JvmStatic fun of(value: String) = Scope(JsonField.of(value))
}
@@ -873,6 +875,7 @@ private constructor(
enum class Known {
CARD,
ACCOUNT,
+ PROGRAM,
}
/**
@@ -887,6 +890,7 @@ private constructor(
enum class Value {
CARD,
ACCOUNT,
+ PROGRAM,
/**
* An enum member indicating that [Scope] was instantiated with an unknown value.
*/
@@ -904,6 +908,7 @@ private constructor(
when (this) {
CARD -> Value.CARD
ACCOUNT -> Value.ACCOUNT
+ PROGRAM -> Value.PROGRAM
else -> Value._UNKNOWN
}
@@ -920,6 +925,7 @@ private constructor(
when (this) {
CARD -> Known.CARD
ACCOUNT -> Known.ACCOUNT
+ PROGRAM -> Known.PROGRAM
else -> throw LithicInvalidDataException("Unknown Scope: $value")
}
diff --git a/lithic-java-core/src/main/kotlin/com/lithic/api/models/CaseEntity.kt b/lithic-java-core/src/main/kotlin/com/lithic/api/models/CaseEntity.kt
index 62944dff2..b04662a78 100644
--- a/lithic-java-core/src/main/kotlin/com/lithic/api/models/CaseEntity.kt
+++ b/lithic-java-core/src/main/kotlin/com/lithic/api/models/CaseEntity.kt
@@ -15,6 +15,7 @@ import com.lithic.api.core.checkRequired
import com.lithic.api.errors.LithicInvalidDataException
import java.util.Collections
import java.util.Objects
+import java.util.Optional
import kotlin.jvm.optionals.getOrNull
/** The entity a case is associated with */
@@ -37,17 +38,21 @@ private constructor(
) : this(entityToken, entityType, mutableMapOf())
/**
- * Globally unique identifier for the associated entity
+ * Globally unique identifier for the associated entity: the card token for `CARD`, the account
+ * token for `ACCOUNT`, and the financial account token for `FINANCIAL_ACCOUNT`. Null for
+ * `PROGRAM`, which is not scoped to an individual entity
*
- * @throws LithicInvalidDataException if the JSON field has an unexpected type or is
- * unexpectedly missing or null (e.g. if the server responded with an unexpected value).
+ * @throws LithicInvalidDataException if the JSON field has an unexpected type (e.g. if the
+ * server responded with an unexpected value).
*/
- fun entityToken(): String = entityToken.getRequired("entity_token")
+ fun entityToken(): Optional = entityToken.getOptional("entity_token")
/**
* The type of entity a case is associated with:
* - `CARD` - The case is associated with a card
* - `ACCOUNT` - The case is associated with an account
+ * - `FINANCIAL_ACCOUNT` - The case is associated with a financial account
+ * - `PROGRAM` - The case is associated with the whole program
*
* @throws LithicInvalidDataException if the JSON field has an unexpected type or is
* unexpectedly missing or null (e.g. if the server responded with an unexpected value).
@@ -112,8 +117,15 @@ private constructor(
additionalProperties = caseEntity.additionalProperties.toMutableMap()
}
- /** Globally unique identifier for the associated entity */
- fun entityToken(entityToken: String) = entityToken(JsonField.of(entityToken))
+ /**
+ * Globally unique identifier for the associated entity: the card token for `CARD`, the
+ * account token for `ACCOUNT`, and the financial account token for `FINANCIAL_ACCOUNT`.
+ * Null for `PROGRAM`, which is not scoped to an individual entity
+ */
+ fun entityToken(entityToken: String?) = entityToken(JsonField.ofNullable(entityToken))
+
+ /** Alias for calling [Builder.entityToken] with `entityToken.orElse(null)`. */
+ fun entityToken(entityToken: Optional) = entityToken(entityToken.getOrNull())
/**
* Sets [Builder.entityToken] to an arbitrary JSON value.
@@ -128,6 +140,8 @@ private constructor(
* The type of entity a case is associated with:
* - `CARD` - The case is associated with a card
* - `ACCOUNT` - The case is associated with an account
+ * - `FINANCIAL_ACCOUNT` - The case is associated with a financial account
+ * - `PROGRAM` - The case is associated with the whole program
*/
fun entityType(entityType: EntityType2) = entityType(JsonField.of(entityType))
@@ -222,6 +236,8 @@ private constructor(
* The type of entity a case is associated with:
* - `CARD` - The case is associated with a card
* - `ACCOUNT` - The case is associated with an account
+ * - `FINANCIAL_ACCOUNT` - The case is associated with a financial account
+ * - `PROGRAM` - The case is associated with the whole program
*/
class EntityType2 @JsonCreator private constructor(private val value: JsonField) :
Enum {
@@ -242,6 +258,10 @@ private constructor(
@JvmField val ACCOUNT = of("ACCOUNT")
+ @JvmField val FINANCIAL_ACCOUNT = of("FINANCIAL_ACCOUNT")
+
+ @JvmField val PROGRAM = of("PROGRAM")
+
@JvmStatic fun of(value: String) = EntityType2(JsonField.of(value))
}
@@ -249,6 +269,8 @@ private constructor(
enum class Known {
CARD,
ACCOUNT,
+ FINANCIAL_ACCOUNT,
+ PROGRAM,
}
/**
@@ -263,6 +285,8 @@ private constructor(
enum class Value {
CARD,
ACCOUNT,
+ FINANCIAL_ACCOUNT,
+ PROGRAM,
/**
* An enum member indicating that [EntityType2] was instantiated with an unknown value.
*/
@@ -280,6 +304,8 @@ private constructor(
when (this) {
CARD -> Value.CARD
ACCOUNT -> Value.ACCOUNT
+ FINANCIAL_ACCOUNT -> Value.FINANCIAL_ACCOUNT
+ PROGRAM -> Value.PROGRAM
else -> Value._UNKNOWN
}
@@ -296,6 +322,8 @@ private constructor(
when (this) {
CARD -> Known.CARD
ACCOUNT -> Known.ACCOUNT
+ FINANCIAL_ACCOUNT -> Known.FINANCIAL_ACCOUNT
+ PROGRAM -> Known.PROGRAM
else -> throw LithicInvalidDataException("Unknown EntityType2: $value")
}
diff --git a/lithic-java-core/src/main/kotlin/com/lithic/api/models/FinancialAccount.kt b/lithic-java-core/src/main/kotlin/com/lithic/api/models/FinancialAccount.kt
index 74626780e..adde279ae 100644
--- a/lithic-java-core/src/main/kotlin/com/lithic/api/models/FinancialAccount.kt
+++ b/lithic-java-core/src/main/kotlin/com/lithic/api/models/FinancialAccount.kt
@@ -12,6 +12,7 @@ import com.lithic.api.core.JsonField
import com.lithic.api.core.JsonMissing
import com.lithic.api.core.JsonValue
import com.lithic.api.core.checkRequired
+import com.lithic.api.core.toImmutable
import com.lithic.api.errors.LithicInvalidDataException
import java.time.OffsetDateTime
import java.util.Collections
@@ -34,6 +35,7 @@ private constructor(
private val updated: JsonField,
private val userDefinedStatus: JsonField,
private val accountNumber: JsonField,
+ private val blockchainAddresses: JsonField,
private val routingNumber: JsonField,
private val additionalProperties: MutableMap,
) {
@@ -70,6 +72,9 @@ private constructor(
@JsonProperty("account_number")
@ExcludeMissing
accountNumber: JsonField = JsonMissing.of(),
+ @JsonProperty("blockchain_addresses")
+ @ExcludeMissing
+ blockchainAddresses: JsonField = JsonMissing.of(),
@JsonProperty("routing_number")
@ExcludeMissing
routingNumber: JsonField = JsonMissing.of(),
@@ -86,6 +91,7 @@ private constructor(
updated,
userDefinedStatus,
accountNumber,
+ blockchainAddresses,
routingNumber,
mutableMapOf(),
)
@@ -173,6 +179,16 @@ private constructor(
*/
fun accountNumber(): Optional = accountNumber.getOptional("account_number")
+ /**
+ * Provisioned blockchain deposit addresses for this financial account, keyed by the full name
+ * of the blockchain network that each address belongs to (e.g. `ETHEREUM`)
+ *
+ * @throws LithicInvalidDataException if the JSON field has an unexpected type (e.g. if the
+ * server responded with an unexpected value).
+ */
+ fun blockchainAddresses(): Optional =
+ blockchainAddresses.getOptional("blockchain_addresses")
+
/**
* @throws LithicInvalidDataException if the JSON field has an unexpected type (e.g. if the
* server responded with an unexpected value).
@@ -279,6 +295,16 @@ private constructor(
@ExcludeMissing
fun _accountNumber(): JsonField = accountNumber
+ /**
+ * Returns the raw JSON value of [blockchainAddresses].
+ *
+ * Unlike [blockchainAddresses], this method doesn't throw if the JSON field has an unexpected
+ * type.
+ */
+ @JsonProperty("blockchain_addresses")
+ @ExcludeMissing
+ fun _blockchainAddresses(): JsonField = blockchainAddresses
+
/**
* Returns the raw JSON value of [routingNumber].
*
@@ -338,6 +364,7 @@ private constructor(
private var updated: JsonField? = null
private var userDefinedStatus: JsonField? = null
private var accountNumber: JsonField = JsonMissing.of()
+ private var blockchainAddresses: JsonField = JsonMissing.of()
private var routingNumber: JsonField = JsonMissing.of()
private var additionalProperties: MutableMap = mutableMapOf()
@@ -355,6 +382,7 @@ private constructor(
updated = financialAccount.updated
userDefinedStatus = financialAccount.userDefinedStatus
accountNumber = financialAccount.accountNumber
+ blockchainAddresses = financialAccount.blockchainAddresses
routingNumber = financialAccount.routingNumber
additionalProperties = financialAccount.additionalProperties.toMutableMap()
}
@@ -534,6 +562,30 @@ private constructor(
this.accountNumber = accountNumber
}
+ /**
+ * Provisioned blockchain deposit addresses for this financial account, keyed by the full
+ * name of the blockchain network that each address belongs to (e.g. `ETHEREUM`)
+ */
+ fun blockchainAddresses(blockchainAddresses: BlockchainAddresses?) =
+ blockchainAddresses(JsonField.ofNullable(blockchainAddresses))
+
+ /**
+ * Alias for calling [Builder.blockchainAddresses] with `blockchainAddresses.orElse(null)`.
+ */
+ fun blockchainAddresses(blockchainAddresses: Optional) =
+ blockchainAddresses(blockchainAddresses.getOrNull())
+
+ /**
+ * Sets [Builder.blockchainAddresses] to an arbitrary JSON value.
+ *
+ * You should usually call [Builder.blockchainAddresses] with a well-typed
+ * [BlockchainAddresses] value instead. This method is primarily for setting the field to an
+ * undocumented or not yet supported value.
+ */
+ fun blockchainAddresses(blockchainAddresses: JsonField) = apply {
+ this.blockchainAddresses = blockchainAddresses
+ }
+
fun routingNumber(routingNumber: String?) =
routingNumber(JsonField.ofNullable(routingNumber))
@@ -607,6 +659,7 @@ private constructor(
checkRequired("updated", updated),
checkRequired("userDefinedStatus", userDefinedStatus),
accountNumber,
+ blockchainAddresses,
routingNumber,
additionalProperties.toMutableMap(),
)
@@ -639,6 +692,7 @@ private constructor(
updated()
userDefinedStatus()
accountNumber()
+ blockchainAddresses().ifPresent { it.validate() }
routingNumber()
validated = true
}
@@ -670,6 +724,7 @@ private constructor(
(if (updated.asKnown().isPresent) 1 else 0) +
(if (userDefinedStatus.asKnown().isPresent) 1 else 0) +
(if (accountNumber.asKnown().isPresent) 1 else 0) +
+ (blockchainAddresses.asKnown().getOrNull()?.validity() ?: 0) +
(if (routingNumber.asKnown().isPresent) 1 else 0)
class FinancialAccountCreditConfig
@@ -1776,6 +1831,120 @@ private constructor(
override fun toString() = value.toString()
}
+ /**
+ * Provisioned blockchain deposit addresses for this financial account, keyed by the full name
+ * of the blockchain network that each address belongs to (e.g. `ETHEREUM`)
+ */
+ class BlockchainAddresses
+ @JsonCreator
+ private constructor(
+ @com.fasterxml.jackson.annotation.JsonValue
+ private val additionalProperties: Map
+ ) {
+
+ @JsonAnyGetter
+ @ExcludeMissing
+ fun _additionalProperties(): Map = additionalProperties
+
+ fun toBuilder() = Builder().from(this)
+
+ companion object {
+
+ /** Returns a mutable builder for constructing an instance of [BlockchainAddresses]. */
+ @JvmStatic fun builder() = Builder()
+ }
+
+ /** A builder for [BlockchainAddresses]. */
+ class Builder internal constructor() {
+
+ private var additionalProperties: MutableMap = mutableMapOf()
+
+ @JvmSynthetic
+ internal fun from(blockchainAddresses: BlockchainAddresses) = apply {
+ additionalProperties = blockchainAddresses.additionalProperties.toMutableMap()
+ }
+
+ 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 [BlockchainAddresses].
+ *
+ * Further updates to this [Builder] will not mutate the returned instance.
+ */
+ fun build(): BlockchainAddresses =
+ BlockchainAddresses(additionalProperties.toImmutable())
+ }
+
+ private var validated: Boolean = false
+
+ /**
+ * Validates that the types of all values in this object match their expected types
+ * recursively.
+ *
+ * This method is _not_ forwards compatible with new types from the API for existing fields.
+ *
+ * @throws LithicInvalidDataException if any value type in this object doesn't match its
+ * expected type.
+ */
+ fun validate(): BlockchainAddresses = apply {
+ if (validated) {
+ return@apply
+ }
+
+ validated = true
+ }
+
+ fun isValid(): Boolean =
+ try {
+ validate()
+ true
+ } catch (e: LithicInvalidDataException) {
+ 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 =
+ additionalProperties.count { (_, value) -> !value.isNull() && !value.isMissing() }
+
+ override fun equals(other: Any?): Boolean {
+ if (this === other) {
+ return true
+ }
+
+ return other is BlockchainAddresses &&
+ additionalProperties == other.additionalProperties
+ }
+
+ private val hashCode: Int by lazy { Objects.hash(additionalProperties) }
+
+ override fun hashCode(): Int = hashCode
+
+ override fun toString() = "BlockchainAddresses{additionalProperties=$additionalProperties}"
+ }
+
override fun equals(other: Any?): Boolean {
if (this === other) {
return true
@@ -1794,6 +1963,7 @@ private constructor(
updated == other.updated &&
userDefinedStatus == other.userDefinedStatus &&
accountNumber == other.accountNumber &&
+ blockchainAddresses == other.blockchainAddresses &&
routingNumber == other.routingNumber &&
additionalProperties == other.additionalProperties
}
@@ -1812,6 +1982,7 @@ private constructor(
updated,
userDefinedStatus,
accountNumber,
+ blockchainAddresses,
routingNumber,
additionalProperties,
)
@@ -1820,5 +1991,5 @@ private constructor(
override fun hashCode(): Int = hashCode
override fun toString() =
- "FinancialAccount{token=$token, accountToken=$accountToken, created=$created, creditConfiguration=$creditConfiguration, isForBenefitOf=$isForBenefitOf, nickname=$nickname, status=$status, substatus=$substatus, type=$type, updated=$updated, userDefinedStatus=$userDefinedStatus, accountNumber=$accountNumber, routingNumber=$routingNumber, additionalProperties=$additionalProperties}"
+ "FinancialAccount{token=$token, accountToken=$accountToken, created=$created, creditConfiguration=$creditConfiguration, isForBenefitOf=$isForBenefitOf, nickname=$nickname, status=$status, substatus=$substatus, type=$type, updated=$updated, userDefinedStatus=$userDefinedStatus, accountNumber=$accountNumber, blockchainAddresses=$blockchainAddresses, routingNumber=$routingNumber, additionalProperties=$additionalProperties}"
}
diff --git a/lithic-java-core/src/main/kotlin/com/lithic/api/models/FinancialAccountCreatedWebhookEvent.kt b/lithic-java-core/src/main/kotlin/com/lithic/api/models/FinancialAccountCreatedWebhookEvent.kt
index 1e252bc70..d6d9b5a6f 100644
--- a/lithic-java-core/src/main/kotlin/com/lithic/api/models/FinancialAccountCreatedWebhookEvent.kt
+++ b/lithic-java-core/src/main/kotlin/com/lithic/api/models/FinancialAccountCreatedWebhookEvent.kt
@@ -34,6 +34,7 @@ private constructor(
private val updated: JsonField,
private val userDefinedStatus: JsonField,
private val accountNumber: JsonField,
+ private val blockchainAddresses: JsonField,
private val routingNumber: JsonField,
private val eventType: JsonField,
private val additionalProperties: MutableMap,
@@ -74,6 +75,9 @@ private constructor(
@JsonProperty("account_number")
@ExcludeMissing
accountNumber: JsonField = JsonMissing.of(),
+ @JsonProperty("blockchain_addresses")
+ @ExcludeMissing
+ blockchainAddresses: JsonField = JsonMissing.of(),
@JsonProperty("routing_number")
@ExcludeMissing
routingNumber: JsonField = JsonMissing.of(),
@@ -93,6 +97,7 @@ private constructor(
updated,
userDefinedStatus,
accountNumber,
+ blockchainAddresses,
routingNumber,
eventType,
mutableMapOf(),
@@ -112,6 +117,7 @@ private constructor(
.updated(updated)
.userDefinedStatus(userDefinedStatus)
.accountNumber(accountNumber)
+ .blockchainAddresses(blockchainAddresses)
.routingNumber(routingNumber)
.build()
@@ -199,6 +205,16 @@ private constructor(
*/
fun accountNumber(): Optional = accountNumber.getOptional("account_number")
+ /**
+ * Provisioned blockchain deposit addresses for this financial account, keyed by the full name
+ * of the blockchain network that each address belongs to (e.g. `ETHEREUM`)
+ *
+ * @throws LithicInvalidDataException if the JSON field has an unexpected type (e.g. if the
+ * server responded with an unexpected value).
+ */
+ fun blockchainAddresses(): Optional =
+ blockchainAddresses.getOptional("blockchain_addresses")
+
/**
* @throws LithicInvalidDataException if the JSON field has an unexpected type (e.g. if the
* server responded with an unexpected value).
@@ -314,6 +330,17 @@ private constructor(
@ExcludeMissing
fun _accountNumber(): JsonField = accountNumber
+ /**
+ * Returns the raw JSON value of [blockchainAddresses].
+ *
+ * Unlike [blockchainAddresses], this method doesn't throw if the JSON field has an unexpected
+ * type.
+ */
+ @JsonProperty("blockchain_addresses")
+ @ExcludeMissing
+ fun _blockchainAddresses(): JsonField =
+ blockchainAddresses
+
/**
* Returns the raw JSON value of [routingNumber].
*
@@ -383,6 +410,8 @@ private constructor(
private var updated: JsonField? = null
private var userDefinedStatus: JsonField? = null
private var accountNumber: JsonField = JsonMissing.of()
+ private var blockchainAddresses: JsonField =
+ JsonMissing.of()
private var routingNumber: JsonField = JsonMissing.of()
private var eventType: JsonField? = null
private var additionalProperties: MutableMap = mutableMapOf()
@@ -403,6 +432,7 @@ private constructor(
updated = financialAccountCreatedWebhookEvent.updated
userDefinedStatus = financialAccountCreatedWebhookEvent.userDefinedStatus
accountNumber = financialAccountCreatedWebhookEvent.accountNumber
+ blockchainAddresses = financialAccountCreatedWebhookEvent.blockchainAddresses
routingNumber = financialAccountCreatedWebhookEvent.routingNumber
eventType = financialAccountCreatedWebhookEvent.eventType
additionalProperties =
@@ -588,6 +618,31 @@ private constructor(
this.accountNumber = accountNumber
}
+ /**
+ * Provisioned blockchain deposit addresses for this financial account, keyed by the full
+ * name of the blockchain network that each address belongs to (e.g. `ETHEREUM`)
+ */
+ fun blockchainAddresses(blockchainAddresses: FinancialAccount.BlockchainAddresses?) =
+ blockchainAddresses(JsonField.ofNullable(blockchainAddresses))
+
+ /**
+ * Alias for calling [Builder.blockchainAddresses] with `blockchainAddresses.orElse(null)`.
+ */
+ fun blockchainAddresses(
+ blockchainAddresses: Optional
+ ) = blockchainAddresses(blockchainAddresses.getOrNull())
+
+ /**
+ * Sets [Builder.blockchainAddresses] to an arbitrary JSON value.
+ *
+ * You should usually call [Builder.blockchainAddresses] with a well-typed
+ * [FinancialAccount.BlockchainAddresses] value instead. This method is primarily for
+ * setting the field to an undocumented or not yet supported value.
+ */
+ fun blockchainAddresses(
+ blockchainAddresses: JsonField
+ ) = apply { this.blockchainAddresses = blockchainAddresses }
+
fun routingNumber(routingNumber: String?) =
routingNumber(JsonField.ofNullable(routingNumber))
@@ -674,6 +729,7 @@ private constructor(
checkRequired("updated", updated),
checkRequired("userDefinedStatus", userDefinedStatus),
accountNumber,
+ blockchainAddresses,
routingNumber,
checkRequired("eventType", eventType),
additionalProperties.toMutableMap(),
@@ -707,6 +763,7 @@ private constructor(
updated()
userDefinedStatus()
accountNumber()
+ blockchainAddresses().ifPresent { it.validate() }
routingNumber()
eventType().validate()
validated = true
@@ -739,6 +796,7 @@ private constructor(
(if (updated.asKnown().isPresent) 1 else 0) +
(if (userDefinedStatus.asKnown().isPresent) 1 else 0) +
(if (accountNumber.asKnown().isPresent) 1 else 0) +
+ (blockchainAddresses.asKnown().getOrNull()?.validity() ?: 0) +
(if (routingNumber.asKnown().isPresent) 1 else 0) +
(eventType.asKnown().getOrNull()?.validity() ?: 0)
@@ -891,6 +949,7 @@ private constructor(
updated == other.updated &&
userDefinedStatus == other.userDefinedStatus &&
accountNumber == other.accountNumber &&
+ blockchainAddresses == other.blockchainAddresses &&
routingNumber == other.routingNumber &&
eventType == other.eventType &&
additionalProperties == other.additionalProperties
@@ -910,6 +969,7 @@ private constructor(
updated,
userDefinedStatus,
accountNumber,
+ blockchainAddresses,
routingNumber,
eventType,
additionalProperties,
@@ -919,5 +979,5 @@ private constructor(
override fun hashCode(): Int = hashCode
override fun toString() =
- "FinancialAccountCreatedWebhookEvent{token=$token, accountToken=$accountToken, created=$created, creditConfiguration=$creditConfiguration, isForBenefitOf=$isForBenefitOf, nickname=$nickname, status=$status, substatus=$substatus, type=$type, updated=$updated, userDefinedStatus=$userDefinedStatus, accountNumber=$accountNumber, routingNumber=$routingNumber, eventType=$eventType, additionalProperties=$additionalProperties}"
+ "FinancialAccountCreatedWebhookEvent{token=$token, accountToken=$accountToken, created=$created, creditConfiguration=$creditConfiguration, isForBenefitOf=$isForBenefitOf, nickname=$nickname, status=$status, substatus=$substatus, type=$type, updated=$updated, userDefinedStatus=$userDefinedStatus, accountNumber=$accountNumber, blockchainAddresses=$blockchainAddresses, routingNumber=$routingNumber, eventType=$eventType, additionalProperties=$additionalProperties}"
}
diff --git a/lithic-java-core/src/main/kotlin/com/lithic/api/models/FinancialAccountUpdatedWebhookEvent.kt b/lithic-java-core/src/main/kotlin/com/lithic/api/models/FinancialAccountUpdatedWebhookEvent.kt
index 48d29c4ca..7c46e82a3 100644
--- a/lithic-java-core/src/main/kotlin/com/lithic/api/models/FinancialAccountUpdatedWebhookEvent.kt
+++ b/lithic-java-core/src/main/kotlin/com/lithic/api/models/FinancialAccountUpdatedWebhookEvent.kt
@@ -34,6 +34,7 @@ private constructor(
private val updated: JsonField,
private val userDefinedStatus: JsonField,
private val accountNumber: JsonField,
+ private val blockchainAddresses: JsonField,
private val routingNumber: JsonField,
private val eventType: JsonField,
private val additionalProperties: MutableMap,
@@ -74,6 +75,9 @@ private constructor(
@JsonProperty("account_number")
@ExcludeMissing
accountNumber: JsonField = JsonMissing.of(),
+ @JsonProperty("blockchain_addresses")
+ @ExcludeMissing
+ blockchainAddresses: JsonField = JsonMissing.of(),
@JsonProperty("routing_number")
@ExcludeMissing
routingNumber: JsonField = JsonMissing.of(),
@@ -93,6 +97,7 @@ private constructor(
updated,
userDefinedStatus,
accountNumber,
+ blockchainAddresses,
routingNumber,
eventType,
mutableMapOf(),
@@ -112,6 +117,7 @@ private constructor(
.updated(updated)
.userDefinedStatus(userDefinedStatus)
.accountNumber(accountNumber)
+ .blockchainAddresses(blockchainAddresses)
.routingNumber(routingNumber)
.build()
@@ -199,6 +205,16 @@ private constructor(
*/
fun accountNumber(): Optional = accountNumber.getOptional("account_number")
+ /**
+ * Provisioned blockchain deposit addresses for this financial account, keyed by the full name
+ * of the blockchain network that each address belongs to (e.g. `ETHEREUM`)
+ *
+ * @throws LithicInvalidDataException if the JSON field has an unexpected type (e.g. if the
+ * server responded with an unexpected value).
+ */
+ fun blockchainAddresses(): Optional =
+ blockchainAddresses.getOptional("blockchain_addresses")
+
/**
* @throws LithicInvalidDataException if the JSON field has an unexpected type (e.g. if the
* server responded with an unexpected value).
@@ -314,6 +330,17 @@ private constructor(
@ExcludeMissing
fun _accountNumber(): JsonField = accountNumber
+ /**
+ * Returns the raw JSON value of [blockchainAddresses].
+ *
+ * Unlike [blockchainAddresses], this method doesn't throw if the JSON field has an unexpected
+ * type.
+ */
+ @JsonProperty("blockchain_addresses")
+ @ExcludeMissing
+ fun _blockchainAddresses(): JsonField =
+ blockchainAddresses
+
/**
* Returns the raw JSON value of [routingNumber].
*
@@ -383,6 +410,8 @@ private constructor(
private var updated: JsonField? = null
private var userDefinedStatus: JsonField? = null
private var accountNumber: JsonField = JsonMissing.of()
+ private var blockchainAddresses: JsonField =
+ JsonMissing.of()
private var routingNumber: JsonField = JsonMissing.of()
private var eventType: JsonField? = null
private var additionalProperties: MutableMap = mutableMapOf()
@@ -403,6 +432,7 @@ private constructor(
updated = financialAccountUpdatedWebhookEvent.updated
userDefinedStatus = financialAccountUpdatedWebhookEvent.userDefinedStatus
accountNumber = financialAccountUpdatedWebhookEvent.accountNumber
+ blockchainAddresses = financialAccountUpdatedWebhookEvent.blockchainAddresses
routingNumber = financialAccountUpdatedWebhookEvent.routingNumber
eventType = financialAccountUpdatedWebhookEvent.eventType
additionalProperties =
@@ -588,6 +618,31 @@ private constructor(
this.accountNumber = accountNumber
}
+ /**
+ * Provisioned blockchain deposit addresses for this financial account, keyed by the full
+ * name of the blockchain network that each address belongs to (e.g. `ETHEREUM`)
+ */
+ fun blockchainAddresses(blockchainAddresses: FinancialAccount.BlockchainAddresses?) =
+ blockchainAddresses(JsonField.ofNullable(blockchainAddresses))
+
+ /**
+ * Alias for calling [Builder.blockchainAddresses] with `blockchainAddresses.orElse(null)`.
+ */
+ fun blockchainAddresses(
+ blockchainAddresses: Optional
+ ) = blockchainAddresses(blockchainAddresses.getOrNull())
+
+ /**
+ * Sets [Builder.blockchainAddresses] to an arbitrary JSON value.
+ *
+ * You should usually call [Builder.blockchainAddresses] with a well-typed
+ * [FinancialAccount.BlockchainAddresses] value instead. This method is primarily for
+ * setting the field to an undocumented or not yet supported value.
+ */
+ fun blockchainAddresses(
+ blockchainAddresses: JsonField
+ ) = apply { this.blockchainAddresses = blockchainAddresses }
+
fun routingNumber(routingNumber: String?) =
routingNumber(JsonField.ofNullable(routingNumber))
@@ -674,6 +729,7 @@ private constructor(
checkRequired("updated", updated),
checkRequired("userDefinedStatus", userDefinedStatus),
accountNumber,
+ blockchainAddresses,
routingNumber,
checkRequired("eventType", eventType),
additionalProperties.toMutableMap(),
@@ -707,6 +763,7 @@ private constructor(
updated()
userDefinedStatus()
accountNumber()
+ blockchainAddresses().ifPresent { it.validate() }
routingNumber()
eventType().validate()
validated = true
@@ -739,6 +796,7 @@ private constructor(
(if (updated.asKnown().isPresent) 1 else 0) +
(if (userDefinedStatus.asKnown().isPresent) 1 else 0) +
(if (accountNumber.asKnown().isPresent) 1 else 0) +
+ (blockchainAddresses.asKnown().getOrNull()?.validity() ?: 0) +
(if (routingNumber.asKnown().isPresent) 1 else 0) +
(eventType.asKnown().getOrNull()?.validity() ?: 0)
@@ -891,6 +949,7 @@ private constructor(
updated == other.updated &&
userDefinedStatus == other.userDefinedStatus &&
accountNumber == other.accountNumber &&
+ blockchainAddresses == other.blockchainAddresses &&
routingNumber == other.routingNumber &&
eventType == other.eventType &&
additionalProperties == other.additionalProperties
@@ -910,6 +969,7 @@ private constructor(
updated,
userDefinedStatus,
accountNumber,
+ blockchainAddresses,
routingNumber,
eventType,
additionalProperties,
@@ -919,5 +979,5 @@ private constructor(
override fun hashCode(): Int = hashCode
override fun toString() =
- "FinancialAccountUpdatedWebhookEvent{token=$token, accountToken=$accountToken, created=$created, creditConfiguration=$creditConfiguration, isForBenefitOf=$isForBenefitOf, nickname=$nickname, status=$status, substatus=$substatus, type=$type, updated=$updated, userDefinedStatus=$userDefinedStatus, accountNumber=$accountNumber, routingNumber=$routingNumber, eventType=$eventType, additionalProperties=$additionalProperties}"
+ "FinancialAccountUpdatedWebhookEvent{token=$token, accountToken=$accountToken, created=$created, creditConfiguration=$creditConfiguration, isForBenefitOf=$isForBenefitOf, nickname=$nickname, status=$status, substatus=$substatus, type=$type, updated=$updated, userDefinedStatus=$userDefinedStatus, accountNumber=$accountNumber, blockchainAddresses=$blockchainAddresses, routingNumber=$routingNumber, eventType=$eventType, additionalProperties=$additionalProperties}"
}
diff --git a/lithic-java-core/src/main/kotlin/com/lithic/api/models/FinancialEvent.kt b/lithic-java-core/src/main/kotlin/com/lithic/api/models/FinancialEvent.kt
index 02efa0c00..d7f28b871 100644
--- a/lithic-java-core/src/main/kotlin/com/lithic/api/models/FinancialEvent.kt
+++ b/lithic-java-core/src/main/kotlin/com/lithic/api/models/FinancialEvent.kt
@@ -631,10 +631,16 @@ private constructor(
@JvmField val STABLECOIN_RECEIVED = of("STABLECOIN_RECEIVED")
+ @JvmField val STABLECOIN_INITIATED = of("STABLECOIN_INITIATED")
+
@JvmField val STABLECOIN_REVIEWED = of("STABLECOIN_REVIEWED")
+ @JvmField val STABLECOIN_SENT = of("STABLECOIN_SENT")
+
@JvmField val STABLECOIN_SETTLED = of("STABLECOIN_SETTLED")
+ @JvmField val STABLECOIN_REJECTED = of("STABLECOIN_REJECTED")
+
@JvmStatic fun of(value: String) = FinancialEventType(JsonField.of(value))
}
@@ -731,8 +737,11 @@ private constructor(
MONTHLY_REVERSAL,
ACCOUNT_TO_ACCOUNT,
STABLECOIN_RECEIVED,
+ STABLECOIN_INITIATED,
STABLECOIN_REVIEWED,
+ STABLECOIN_SENT,
STABLECOIN_SETTLED,
+ STABLECOIN_REJECTED,
}
/**
@@ -836,8 +845,11 @@ private constructor(
MONTHLY_REVERSAL,
ACCOUNT_TO_ACCOUNT,
STABLECOIN_RECEIVED,
+ STABLECOIN_INITIATED,
STABLECOIN_REVIEWED,
+ STABLECOIN_SENT,
STABLECOIN_SETTLED,
+ STABLECOIN_REJECTED,
/**
* An enum member indicating that [FinancialEventType] was instantiated with an unknown
* value.
@@ -945,8 +957,11 @@ private constructor(
MONTHLY_REVERSAL -> Value.MONTHLY_REVERSAL
ACCOUNT_TO_ACCOUNT -> Value.ACCOUNT_TO_ACCOUNT
STABLECOIN_RECEIVED -> Value.STABLECOIN_RECEIVED
+ STABLECOIN_INITIATED -> Value.STABLECOIN_INITIATED
STABLECOIN_REVIEWED -> Value.STABLECOIN_REVIEWED
+ STABLECOIN_SENT -> Value.STABLECOIN_SENT
STABLECOIN_SETTLED -> Value.STABLECOIN_SETTLED
+ STABLECOIN_REJECTED -> Value.STABLECOIN_REJECTED
else -> Value._UNKNOWN
}
@@ -1052,8 +1067,11 @@ private constructor(
MONTHLY_REVERSAL -> Known.MONTHLY_REVERSAL
ACCOUNT_TO_ACCOUNT -> Known.ACCOUNT_TO_ACCOUNT
STABLECOIN_RECEIVED -> Known.STABLECOIN_RECEIVED
+ STABLECOIN_INITIATED -> Known.STABLECOIN_INITIATED
STABLECOIN_REVIEWED -> Known.STABLECOIN_REVIEWED
+ STABLECOIN_SENT -> Known.STABLECOIN_SENT
STABLECOIN_SETTLED -> Known.STABLECOIN_SETTLED
+ STABLECOIN_REJECTED -> Known.STABLECOIN_REJECTED
else -> throw LithicInvalidDataException("Unknown FinancialEventType: $value")
}
diff --git a/lithic-java-core/src/main/kotlin/com/lithic/api/models/Payment.kt b/lithic-java-core/src/main/kotlin/com/lithic/api/models/Payment.kt
index 78771264d..ece4def66 100644
--- a/lithic-java-core/src/main/kotlin/com/lithic/api/models/Payment.kt
+++ b/lithic-java-core/src/main/kotlin/com/lithic/api/models/Payment.kt
@@ -1645,8 +1645,16 @@ private constructor(
* Stablecoin events:
* * `STABLECOIN_RECEIVED` - Stablecoin pay-in received on-chain and pending release to
* available balance.
- * * `STABLECOIN_REVIEWED` - Stablecoin pay-in has completed the review process.
- * * `STABLECOIN_SETTLED` - Stablecoin pay-in funds released to available balance.
+ * * `STABLECOIN_INITIATED` - Stablecoin withdrawal initiated, with the funds placed on
+ * hold.
+ * * `STABLECOIN_REVIEWED` - Stablecoin pay-in or withdrawal has completed the review
+ * process.
+ * * `STABLECOIN_SENT` - Stablecoin withdrawal accepted for on-chain submission to the
+ * destination address, and pending confirmation.
+ * * `STABLECOIN_SETTLED` - Stablecoin pay-in funds released to available balance, or
+ * stablecoin withdrawal confirmed on-chain.
+ * * `STABLECOIN_REJECTED` - Stablecoin withdrawal failed and the hold placed at initiation
+ * has been reversed.
*
* @throws LithicInvalidDataException if the JSON field has an unexpected type or is
* unexpectedly missing or null (e.g. if the server responded with an unexpected value).
@@ -1664,7 +1672,9 @@ private constructor(
/**
* Payment event external ID. For ACH transactions, this is the ACH trace number. For
- * inbound wire transfers, this is the IMAD (Input Message Accountability Data).
+ * inbound wire transfers, this is the IMAD (Input Message Accountability Data). For
+ * stablecoin payments, this is the on-chain transaction hash of the transfer; it is present
+ * on events that reflect on-chain activity and null on internal lifecycle events.
*
* @throws LithicInvalidDataException if the JSON field has an unexpected type (e.g. if the
* server responded with an unexpected value).
@@ -1885,8 +1895,16 @@ private constructor(
* Stablecoin events:
* * `STABLECOIN_RECEIVED` - Stablecoin pay-in received on-chain and pending release to
* available balance.
- * * `STABLECOIN_REVIEWED` - Stablecoin pay-in has completed the review process.
- * * `STABLECOIN_SETTLED` - Stablecoin pay-in funds released to available balance.
+ * * `STABLECOIN_INITIATED` - Stablecoin withdrawal initiated, with the funds placed on
+ * hold.
+ * * `STABLECOIN_REVIEWED` - Stablecoin pay-in or withdrawal has completed the review
+ * process.
+ * * `STABLECOIN_SENT` - Stablecoin withdrawal accepted for on-chain submission to the
+ * destination address, and pending confirmation.
+ * * `STABLECOIN_SETTLED` - Stablecoin pay-in funds released to available balance, or
+ * stablecoin withdrawal confirmed on-chain.
+ * * `STABLECOIN_REJECTED` - Stablecoin withdrawal failed and the hold placed at
+ * initiation has been reversed.
*/
fun type(type: PaymentEventType) = type(JsonField.of(type))
@@ -1928,7 +1946,10 @@ private constructor(
/**
* Payment event external ID. For ACH transactions, this is the ACH trace number. For
- * inbound wire transfers, this is the IMAD (Input Message Accountability Data).
+ * inbound wire transfers, this is the IMAD (Input Message Accountability Data). For
+ * stablecoin payments, this is the on-chain transaction hash of the transfer; it is
+ * present on events that reflect on-chain activity and null on internal lifecycle
+ * events.
*/
fun externalId(externalId: String?) = externalId(JsonField.ofNullable(externalId))
@@ -2237,8 +2258,16 @@ private constructor(
* Stablecoin events:
* * `STABLECOIN_RECEIVED` - Stablecoin pay-in received on-chain and pending release to
* available balance.
- * * `STABLECOIN_REVIEWED` - Stablecoin pay-in has completed the review process.
- * * `STABLECOIN_SETTLED` - Stablecoin pay-in funds released to available balance.
+ * * `STABLECOIN_INITIATED` - Stablecoin withdrawal initiated, with the funds placed on
+ * hold.
+ * * `STABLECOIN_REVIEWED` - Stablecoin pay-in or withdrawal has completed the review
+ * process.
+ * * `STABLECOIN_SENT` - Stablecoin withdrawal accepted for on-chain submission to the
+ * destination address, and pending confirmation.
+ * * `STABLECOIN_SETTLED` - Stablecoin pay-in funds released to available balance, or
+ * stablecoin withdrawal confirmed on-chain.
+ * * `STABLECOIN_REJECTED` - Stablecoin withdrawal failed and the hold placed at initiation
+ * has been reversed.
*/
class PaymentEventType
@JsonCreator
@@ -2302,10 +2331,16 @@ private constructor(
@JvmField val STABLECOIN_RECEIVED = of("STABLECOIN_RECEIVED")
+ @JvmField val STABLECOIN_INITIATED = of("STABLECOIN_INITIATED")
+
@JvmField val STABLECOIN_REVIEWED = of("STABLECOIN_REVIEWED")
+ @JvmField val STABLECOIN_SENT = of("STABLECOIN_SENT")
+
@JvmField val STABLECOIN_SETTLED = of("STABLECOIN_SETTLED")
+ @JvmField val STABLECOIN_REJECTED = of("STABLECOIN_REJECTED")
+
@JvmStatic fun of(value: String) = PaymentEventType(JsonField.of(value))
}
@@ -2334,8 +2369,11 @@ private constructor(
WIRE_RETURN_OUTBOUND_SETTLED,
WIRE_RETURN_OUTBOUND_REJECTED,
STABLECOIN_RECEIVED,
+ STABLECOIN_INITIATED,
STABLECOIN_REVIEWED,
+ STABLECOIN_SENT,
STABLECOIN_SETTLED,
+ STABLECOIN_REJECTED,
}
/**
@@ -2372,8 +2410,11 @@ private constructor(
WIRE_RETURN_OUTBOUND_SETTLED,
WIRE_RETURN_OUTBOUND_REJECTED,
STABLECOIN_RECEIVED,
+ STABLECOIN_INITIATED,
STABLECOIN_REVIEWED,
+ STABLECOIN_SENT,
STABLECOIN_SETTLED,
+ STABLECOIN_REJECTED,
/**
* An enum member indicating that [PaymentEventType] was instantiated with an
* unknown value.
@@ -2413,8 +2454,11 @@ private constructor(
WIRE_RETURN_OUTBOUND_SETTLED -> Value.WIRE_RETURN_OUTBOUND_SETTLED
WIRE_RETURN_OUTBOUND_REJECTED -> Value.WIRE_RETURN_OUTBOUND_REJECTED
STABLECOIN_RECEIVED -> Value.STABLECOIN_RECEIVED
+ STABLECOIN_INITIATED -> Value.STABLECOIN_INITIATED
STABLECOIN_REVIEWED -> Value.STABLECOIN_REVIEWED
+ STABLECOIN_SENT -> Value.STABLECOIN_SENT
STABLECOIN_SETTLED -> Value.STABLECOIN_SETTLED
+ STABLECOIN_REJECTED -> Value.STABLECOIN_REJECTED
else -> Value._UNKNOWN
}
@@ -2452,8 +2496,11 @@ private constructor(
WIRE_RETURN_OUTBOUND_SETTLED -> Known.WIRE_RETURN_OUTBOUND_SETTLED
WIRE_RETURN_OUTBOUND_REJECTED -> Known.WIRE_RETURN_OUTBOUND_REJECTED
STABLECOIN_RECEIVED -> Known.STABLECOIN_RECEIVED
+ STABLECOIN_INITIATED -> Known.STABLECOIN_INITIATED
STABLECOIN_REVIEWED -> Known.STABLECOIN_REVIEWED
+ STABLECOIN_SENT -> Known.STABLECOIN_SENT
STABLECOIN_SETTLED -> Known.STABLECOIN_SETTLED
+ STABLECOIN_REJECTED -> Known.STABLECOIN_REJECTED
else -> throw LithicInvalidDataException("Unknown PaymentEventType: $value")
}
@@ -5418,6 +5465,8 @@ private constructor(
@JvmField val WIRE_INBOUND_DRAWDOWN_REQUEST = of("WIRE_INBOUND_DRAWDOWN_REQUEST")
+ @JvmField val STABLECOIN = of("STABLECOIN")
+
@JvmStatic fun of(value: String) = TransferType(JsonField.of(value))
}
@@ -5432,6 +5481,7 @@ private constructor(
WIRE_OUTBOUND_PAYMENT,
WIRE_OUTBOUND_ADMIN,
WIRE_INBOUND_DRAWDOWN_REQUEST,
+ STABLECOIN,
}
/**
@@ -5453,6 +5503,7 @@ private constructor(
WIRE_OUTBOUND_PAYMENT,
WIRE_OUTBOUND_ADMIN,
WIRE_INBOUND_DRAWDOWN_REQUEST,
+ STABLECOIN,
/**
* An enum member indicating that [TransferType] was instantiated with an unknown value.
*/
@@ -5477,6 +5528,7 @@ private constructor(
WIRE_OUTBOUND_PAYMENT -> Value.WIRE_OUTBOUND_PAYMENT
WIRE_OUTBOUND_ADMIN -> Value.WIRE_OUTBOUND_ADMIN
WIRE_INBOUND_DRAWDOWN_REQUEST -> Value.WIRE_INBOUND_DRAWDOWN_REQUEST
+ STABLECOIN -> Value.STABLECOIN
else -> Value._UNKNOWN
}
@@ -5500,6 +5552,7 @@ private constructor(
WIRE_OUTBOUND_PAYMENT -> Known.WIRE_OUTBOUND_PAYMENT
WIRE_OUTBOUND_ADMIN -> Known.WIRE_OUTBOUND_ADMIN
WIRE_INBOUND_DRAWDOWN_REQUEST -> Known.WIRE_INBOUND_DRAWDOWN_REQUEST
+ STABLECOIN -> Known.STABLECOIN
else -> throw LithicInvalidDataException("Unknown TransferType: $value")
}
diff --git a/lithic-java-core/src/main/kotlin/com/lithic/api/models/StatementLineItems.kt b/lithic-java-core/src/main/kotlin/com/lithic/api/models/StatementLineItems.kt
index 4bce77220..7fc41b0d8 100644
--- a/lithic-java-core/src/main/kotlin/com/lithic/api/models/StatementLineItems.kt
+++ b/lithic-java-core/src/main/kotlin/com/lithic/api/models/StatementLineItems.kt
@@ -1409,10 +1409,16 @@ private constructor(
@JvmField val STABLECOIN_RECEIVED = of("STABLECOIN_RECEIVED")
+ @JvmField val STABLECOIN_INITIATED = of("STABLECOIN_INITIATED")
+
@JvmField val STABLECOIN_REVIEWED = of("STABLECOIN_REVIEWED")
+ @JvmField val STABLECOIN_SENT = of("STABLECOIN_SENT")
+
@JvmField val STABLECOIN_SETTLED = of("STABLECOIN_SETTLED")
+ @JvmField val STABLECOIN_REJECTED = of("STABLECOIN_REJECTED")
+
@JvmStatic fun of(value: String) = FinancialEventType(JsonField.of(value))
}
@@ -1509,8 +1515,11 @@ private constructor(
MONTHLY_REVERSAL,
ACCOUNT_TO_ACCOUNT,
STABLECOIN_RECEIVED,
+ STABLECOIN_INITIATED,
STABLECOIN_REVIEWED,
+ STABLECOIN_SENT,
STABLECOIN_SETTLED,
+ STABLECOIN_REJECTED,
}
/**
@@ -1616,8 +1625,11 @@ private constructor(
MONTHLY_REVERSAL,
ACCOUNT_TO_ACCOUNT,
STABLECOIN_RECEIVED,
+ STABLECOIN_INITIATED,
STABLECOIN_REVIEWED,
+ STABLECOIN_SENT,
STABLECOIN_SETTLED,
+ STABLECOIN_REJECTED,
/**
* An enum member indicating that [FinancialEventType] was instantiated with an
* unknown value.
@@ -1725,8 +1737,11 @@ private constructor(
MONTHLY_REVERSAL -> Value.MONTHLY_REVERSAL
ACCOUNT_TO_ACCOUNT -> Value.ACCOUNT_TO_ACCOUNT
STABLECOIN_RECEIVED -> Value.STABLECOIN_RECEIVED
+ STABLECOIN_INITIATED -> Value.STABLECOIN_INITIATED
STABLECOIN_REVIEWED -> Value.STABLECOIN_REVIEWED
+ STABLECOIN_SENT -> Value.STABLECOIN_SENT
STABLECOIN_SETTLED -> Value.STABLECOIN_SETTLED
+ STABLECOIN_REJECTED -> Value.STABLECOIN_REJECTED
else -> Value._UNKNOWN
}
@@ -1832,8 +1847,11 @@ private constructor(
MONTHLY_REVERSAL -> Known.MONTHLY_REVERSAL
ACCOUNT_TO_ACCOUNT -> Known.ACCOUNT_TO_ACCOUNT
STABLECOIN_RECEIVED -> Known.STABLECOIN_RECEIVED
+ STABLECOIN_INITIATED -> Known.STABLECOIN_INITIATED
STABLECOIN_REVIEWED -> Known.STABLECOIN_REVIEWED
+ STABLECOIN_SENT -> Known.STABLECOIN_SENT
STABLECOIN_SETTLED -> Known.STABLECOIN_SETTLED
+ STABLECOIN_REJECTED -> Known.STABLECOIN_REJECTED
else -> throw LithicInvalidDataException("Unknown FinancialEventType: $value")
}
diff --git a/lithic-java-core/src/main/kotlin/com/lithic/api/models/TokenizationSimulateParams.kt b/lithic-java-core/src/main/kotlin/com/lithic/api/models/TokenizationSimulateParams.kt
index 5602cccc7..86b6c8987 100644
--- a/lithic-java-core/src/main/kotlin/com/lithic/api/models/TokenizationSimulateParams.kt
+++ b/lithic-java-core/src/main/kotlin/com/lithic/api/models/TokenizationSimulateParams.kt
@@ -33,7 +33,7 @@ private constructor(
) : Params {
/**
- * The three digit cvv for the card.
+ * The three or four digit CVV for the card. AMEX cards use four digit CVVs.
*
* @throws LithicInvalidDataException if the JSON field has an unexpected type or is
* unexpectedly missing or null (e.g. if the server responded with an unexpected value).
@@ -213,7 +213,7 @@ private constructor(
*/
fun body(body: Body) = apply { this.body = body.toBuilder() }
- /** The three digit cvv for the card. */
+ /** The three or four digit CVV for the card. AMEX cards use four digit CVVs. */
fun cvv(cvv: String) = apply { body.cvv(cvv) }
/**
@@ -519,7 +519,7 @@ private constructor(
)
/**
- * The three digit cvv for the card.
+ * The three or four digit CVV for the card. AMEX cards use four digit CVVs.
*
* @throws LithicInvalidDataException if the JSON field has an unexpected type or is
* unexpectedly missing or null (e.g. if the server responded with an unexpected value).
@@ -713,7 +713,7 @@ private constructor(
additionalProperties = body.additionalProperties.toMutableMap()
}
- /** The three digit cvv for the card. */
+ /** The three or four digit CVV for the card. AMEX cards use four digit CVVs. */
fun cvv(cvv: String) = cvv(JsonField.of(cvv))
/**
diff --git a/lithic-java-core/src/main/kotlin/com/lithic/api/models/TransactionMonitoringCaseListParams.kt b/lithic-java-core/src/main/kotlin/com/lithic/api/models/TransactionMonitoringCaseListParams.kt
index 8c5b0ca7e..b8d07a346 100644
--- a/lithic-java-core/src/main/kotlin/com/lithic/api/models/TransactionMonitoringCaseListParams.kt
+++ b/lithic-java-core/src/main/kotlin/com/lithic/api/models/TransactionMonitoringCaseListParams.kt
@@ -62,7 +62,11 @@ private constructor(
*/
fun endingBefore(): Optional = Optional.ofNullable(endingBefore)
- /** Only return cases associated with the provided entity. */
+ /**
+ * Only return cases associated with the provided entity. Accepts a card, account, or financial
+ * account token. Cases with a `PROGRAM` entity have no entity token and are never returned by
+ * this filter.
+ */
fun entityToken(): Optional = Optional.ofNullable(entityToken)
/** Page size (for pagination). */
@@ -199,7 +203,11 @@ private constructor(
/** Alias for calling [Builder.endingBefore] with `endingBefore.orElse(null)`. */
fun endingBefore(endingBefore: Optional) = endingBefore(endingBefore.getOrNull())
- /** Only return cases associated with the provided entity. */
+ /**
+ * Only return cases associated with the provided entity. Accepts a card, account, or
+ * financial account token. Cases with a `PROGRAM` entity have no entity token and are never
+ * returned by this filter.
+ */
fun entityToken(entityToken: String?) = apply { this.entityToken = entityToken }
/** Alias for calling [Builder.entityToken] with `entityToken.orElse(null)`. */
diff --git a/lithic-java-core/src/main/kotlin/com/lithic/api/models/V2ListResultsResponse.kt b/lithic-java-core/src/main/kotlin/com/lithic/api/models/V2ListResultsResponse.kt
index 538d9d889..e45b8e0fc 100644
--- a/lithic-java-core/src/main/kotlin/com/lithic/api/models/V2ListResultsResponse.kt
+++ b/lithic-java-core/src/main/kotlin/com/lithic/api/models/V2ListResultsResponse.kt
@@ -10109,6 +10109,8 @@ private constructor(
@JvmField val ACCOUNT = of("ACCOUNT")
+ @JvmField val PROGRAM = of("PROGRAM")
+
@JvmStatic fun of(value: String) = Scope(JsonField.of(value))
}
@@ -10116,6 +10118,7 @@ private constructor(
enum class Known {
CARD,
ACCOUNT,
+ PROGRAM,
}
/**
@@ -10130,6 +10133,7 @@ private constructor(
enum class Value {
CARD,
ACCOUNT,
+ PROGRAM,
/**
* An enum member indicating that [Scope] was instantiated with an unknown
* value.
@@ -10148,6 +10152,7 @@ private constructor(
when (this) {
CARD -> Value.CARD
ACCOUNT -> Value.ACCOUNT
+ PROGRAM -> Value.PROGRAM
else -> Value._UNKNOWN
}
@@ -10164,6 +10169,7 @@ private constructor(
when (this) {
CARD -> Known.CARD
ACCOUNT -> Known.ACCOUNT
+ PROGRAM -> Known.PROGRAM
else -> throw LithicInvalidDataException("Unknown Scope: $value")
}
@@ -12181,12 +12187,15 @@ private constructor(
@JvmField val FINANCIAL_ACCOUNT = of("FINANCIAL_ACCOUNT")
+ @JvmField val PROGRAM = of("PROGRAM")
+
@JvmStatic fun of(value: String) = Scope(JsonField.of(value))
}
/** An enum containing [Scope]'s known values. */
enum class Known {
- FINANCIAL_ACCOUNT
+ FINANCIAL_ACCOUNT,
+ PROGRAM,
}
/**
@@ -12200,6 +12209,7 @@ private constructor(
*/
enum class Value {
FINANCIAL_ACCOUNT,
+ PROGRAM,
/**
* An enum member indicating that [Scope] was instantiated with an unknown
* value.
@@ -12217,6 +12227,7 @@ private constructor(
fun value(): Value =
when (this) {
FINANCIAL_ACCOUNT -> Value.FINANCIAL_ACCOUNT
+ PROGRAM -> Value.PROGRAM
else -> Value._UNKNOWN
}
@@ -12232,6 +12243,7 @@ private constructor(
fun known(): Known =
when (this) {
FINANCIAL_ACCOUNT -> Known.FINANCIAL_ACCOUNT
+ PROGRAM -> Known.PROGRAM
else -> throw LithicInvalidDataException("Unknown Scope: $value")
}
diff --git a/lithic-java-core/src/main/kotlin/com/lithic/api/models/VelocityLimitParams.kt b/lithic-java-core/src/main/kotlin/com/lithic/api/models/VelocityLimitParams.kt
index 58113d288..b5c0d3e10 100644
--- a/lithic-java-core/src/main/kotlin/com/lithic/api/models/VelocityLimitParams.kt
+++ b/lithic-java-core/src/main/kotlin/com/lithic/api/models/VelocityLimitParams.kt
@@ -25,6 +25,8 @@ private constructor(
private val scope: JsonField,
private val filters: JsonField,
private val limitAmount: JsonField,
+ private val limitCashAmount: JsonField,
+ private val limitCashCount: JsonField,
private val limitCount: JsonField,
private val additionalProperties: MutableMap,
) {
@@ -41,8 +43,23 @@ private constructor(
@JsonProperty("limit_amount")
@ExcludeMissing
limitAmount: JsonField = JsonMissing.of(),
+ @JsonProperty("limit_cash_amount")
+ @ExcludeMissing
+ limitCashAmount: JsonField = JsonMissing.of(),
+ @JsonProperty("limit_cash_count")
+ @ExcludeMissing
+ limitCashCount: JsonField = JsonMissing.of(),
@JsonProperty("limit_count") @ExcludeMissing limitCount: JsonField = JsonMissing.of(),
- ) : this(period, scope, filters, limitAmount, limitCount, mutableMapOf())
+ ) : this(
+ period,
+ scope,
+ filters,
+ limitAmount,
+ limitCashAmount,
+ limitCashCount,
+ limitCount,
+ mutableMapOf(),
+ )
/**
* Velocity over the current day since 00:00 / 12 AM in Eastern Time
@@ -75,6 +92,29 @@ private constructor(
*/
fun limitAmount(): Optional = limitAmount.getOptional("limit_amount")
+ /**
+ * The maximum amount of cash spend velocity allowed in the period in minor units (the smallest
+ * unit of a currency, e.g. cents for USD). Cash spend covers ATM withdrawals, cash
+ * disbursements, and purchases with cashback. Transactions exceeding this limit will be
+ * declined.
+ *
+ * @throws LithicInvalidDataException if the JSON field has an unexpected type (e.g. if the
+ * server responded with an unexpected value).
+ */
+ fun limitCashAmount(): Optional = limitCashAmount.getOptional("limit_cash_amount")
+
+ /**
+ * The number of cash spend velocity impacting transactions may not exceed this limit in the
+ * period. Transactions exceeding this limit will be declined. A cash velocity impacting
+ * transaction is an ATM withdrawal, cash disbursement, or purchase with cashback that has been
+ * authorized, and optionally settled, or a force post (a transaction that settled without prior
+ * authorization).
+ *
+ * @throws LithicInvalidDataException if the JSON field has an unexpected type (e.g. if the
+ * server responded with an unexpected value).
+ */
+ fun limitCashCount(): Optional = limitCashCount.getOptional("limit_cash_count")
+
/**
* The number of spend velocity impacting transactions may not exceed this limit in the period.
* Transactions exceeding this limit will be declined. A spend velocity impacting transaction is
@@ -116,6 +156,24 @@ private constructor(
*/
@JsonProperty("limit_amount") @ExcludeMissing fun _limitAmount(): JsonField = limitAmount
+ /**
+ * Returns the raw JSON value of [limitCashAmount].
+ *
+ * Unlike [limitCashAmount], this method doesn't throw if the JSON field has an unexpected type.
+ */
+ @JsonProperty("limit_cash_amount")
+ @ExcludeMissing
+ fun _limitCashAmount(): JsonField = limitCashAmount
+
+ /**
+ * Returns the raw JSON value of [limitCashCount].
+ *
+ * Unlike [limitCashCount], this method doesn't throw if the JSON field has an unexpected type.
+ */
+ @JsonProperty("limit_cash_count")
+ @ExcludeMissing
+ fun _limitCashCount(): JsonField = limitCashCount
+
/**
* Returns the raw JSON value of [limitCount].
*
@@ -156,6 +214,8 @@ private constructor(
private var scope: JsonField? = null
private var filters: JsonField = JsonMissing.of()
private var limitAmount: JsonField = JsonMissing.of()
+ private var limitCashAmount: JsonField = JsonMissing.of()
+ private var limitCashCount: JsonField = JsonMissing.of()
private var limitCount: JsonField = JsonMissing.of()
private var additionalProperties: MutableMap = mutableMapOf()
@@ -165,6 +225,8 @@ private constructor(
scope = velocityLimitParams.scope
filters = velocityLimitParams.filters
limitAmount = velocityLimitParams.limitAmount
+ limitCashAmount = velocityLimitParams.limitCashAmount
+ limitCashCount = velocityLimitParams.limitCashCount
limitCount = velocityLimitParams.limitCount
additionalProperties = velocityLimitParams.additionalProperties.toMutableMap()
}
@@ -262,6 +324,69 @@ private constructor(
*/
fun limitAmount(limitAmount: JsonField) = apply { this.limitAmount = limitAmount }
+ /**
+ * The maximum amount of cash spend velocity allowed in the period in minor units (the
+ * smallest unit of a currency, e.g. cents for USD). Cash spend covers ATM withdrawals, cash
+ * disbursements, and purchases with cashback. Transactions exceeding this limit will be
+ * declined.
+ */
+ fun limitCashAmount(limitCashAmount: Long?) =
+ limitCashAmount(JsonField.ofNullable(limitCashAmount))
+
+ /**
+ * Alias for [Builder.limitCashAmount].
+ *
+ * This unboxed primitive overload exists for backwards compatibility.
+ */
+ fun limitCashAmount(limitCashAmount: Long) = limitCashAmount(limitCashAmount as Long?)
+
+ /** Alias for calling [Builder.limitCashAmount] with `limitCashAmount.orElse(null)`. */
+ fun limitCashAmount(limitCashAmount: Optional) =
+ limitCashAmount(limitCashAmount.getOrNull())
+
+ /**
+ * Sets [Builder.limitCashAmount] to an arbitrary JSON value.
+ *
+ * You should usually call [Builder.limitCashAmount] with a well-typed [Long] value instead.
+ * This method is primarily for setting the field to an undocumented or not yet supported
+ * value.
+ */
+ fun limitCashAmount(limitCashAmount: JsonField) = apply {
+ this.limitCashAmount = limitCashAmount
+ }
+
+ /**
+ * The number of cash spend velocity impacting transactions may not exceed this limit in the
+ * period. Transactions exceeding this limit will be declined. A cash velocity impacting
+ * transaction is an ATM withdrawal, cash disbursement, or purchase with cashback that has
+ * been authorized, and optionally settled, or a force post (a transaction that settled
+ * without prior authorization).
+ */
+ fun limitCashCount(limitCashCount: Long?) =
+ limitCashCount(JsonField.ofNullable(limitCashCount))
+
+ /**
+ * Alias for [Builder.limitCashCount].
+ *
+ * This unboxed primitive overload exists for backwards compatibility.
+ */
+ fun limitCashCount(limitCashCount: Long) = limitCashCount(limitCashCount as Long?)
+
+ /** Alias for calling [Builder.limitCashCount] with `limitCashCount.orElse(null)`. */
+ fun limitCashCount(limitCashCount: Optional) =
+ limitCashCount(limitCashCount.getOrNull())
+
+ /**
+ * Sets [Builder.limitCashCount] to an arbitrary JSON value.
+ *
+ * You should usually call [Builder.limitCashCount] with a well-typed [Long] value instead.
+ * This method is primarily for setting the field to an undocumented or not yet supported
+ * value.
+ */
+ fun limitCashCount(limitCashCount: JsonField) = apply {
+ this.limitCashCount = limitCashCount
+ }
+
/**
* The number of spend velocity impacting transactions may not exceed this limit in the
* period. Transactions exceeding this limit will be declined. A spend velocity impacting
@@ -326,6 +451,8 @@ private constructor(
checkRequired("scope", scope),
filters,
limitAmount,
+ limitCashAmount,
+ limitCashCount,
limitCount,
additionalProperties.toMutableMap(),
)
@@ -350,6 +477,8 @@ private constructor(
scope().validate()
filters().ifPresent { it.validate() }
limitAmount()
+ limitCashAmount()
+ limitCashCount()
limitCount()
validated = true
}
@@ -373,6 +502,8 @@ private constructor(
(scope.asKnown().getOrNull()?.validity() ?: 0) +
(filters.asKnown().getOrNull()?.validity() ?: 0) +
(if (limitAmount.asKnown().isPresent) 1 else 0) +
+ (if (limitCashAmount.asKnown().isPresent) 1 else 0) +
+ (if (limitCashCount.asKnown().isPresent) 1 else 0) +
(if (limitCount.asKnown().isPresent) 1 else 0)
/** The scope the velocity is calculated for */
@@ -524,16 +655,27 @@ private constructor(
scope == other.scope &&
filters == other.filters &&
limitAmount == other.limitAmount &&
+ limitCashAmount == other.limitCashAmount &&
+ limitCashCount == other.limitCashCount &&
limitCount == other.limitCount &&
additionalProperties == other.additionalProperties
}
private val hashCode: Int by lazy {
- Objects.hash(period, scope, filters, limitAmount, limitCount, additionalProperties)
+ Objects.hash(
+ period,
+ scope,
+ filters,
+ limitAmount,
+ limitCashAmount,
+ limitCashCount,
+ limitCount,
+ additionalProperties,
+ )
}
override fun hashCode(): Int = hashCode
override fun toString() =
- "VelocityLimitParams{period=$period, scope=$scope, filters=$filters, limitAmount=$limitAmount, limitCount=$limitCount, additionalProperties=$additionalProperties}"
+ "VelocityLimitParams{period=$period, scope=$scope, filters=$filters, limitAmount=$limitAmount, limitCashAmount=$limitCashAmount, limitCashCount=$limitCashCount, limitCount=$limitCount, additionalProperties=$additionalProperties}"
}
diff --git a/lithic-java-core/src/test/kotlin/com/lithic/api/models/CaseEntityTest.kt b/lithic-java-core/src/test/kotlin/com/lithic/api/models/CaseEntityTest.kt
index 23eb4902e..36cd66150 100644
--- a/lithic-java-core/src/test/kotlin/com/lithic/api/models/CaseEntityTest.kt
+++ b/lithic-java-core/src/test/kotlin/com/lithic/api/models/CaseEntityTest.kt
@@ -17,7 +17,7 @@ internal class CaseEntityTest {
.entityType(CaseEntity.EntityType2.CARD)
.build()
- assertThat(caseEntity.entityToken()).isEqualTo("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
+ assertThat(caseEntity.entityToken()).contains("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
assertThat(caseEntity.entityType()).isEqualTo(CaseEntity.EntityType2.CARD)
}
diff --git a/lithic-java-core/src/test/kotlin/com/lithic/api/models/FinancialAccountCreatedWebhookEventTest.kt b/lithic-java-core/src/test/kotlin/com/lithic/api/models/FinancialAccountCreatedWebhookEventTest.kt
index 4b0ee89a9..1a5983280 100644
--- a/lithic-java-core/src/test/kotlin/com/lithic/api/models/FinancialAccountCreatedWebhookEventTest.kt
+++ b/lithic-java-core/src/test/kotlin/com/lithic/api/models/FinancialAccountCreatedWebhookEventTest.kt
@@ -3,6 +3,7 @@
package com.lithic.api.models
import com.fasterxml.jackson.module.kotlin.jacksonTypeRef
+import com.lithic.api.core.JsonValue
import com.lithic.api.core.jsonMapper
import java.time.OffsetDateTime
import org.assertj.core.api.Assertions.assertThat
@@ -40,6 +41,14 @@ internal class FinancialAccountCreatedWebhookEventTest {
.updated(OffsetDateTime.parse("2019-12-27T18:11:19.117Z"))
.userDefinedStatus("user_defined_status")
.accountNumber("account_number")
+ .blockchainAddresses(
+ FinancialAccount.BlockchainAddresses.builder()
+ .putAdditionalProperty(
+ "ETHEREUM",
+ JsonValue.from("0x5f2b9e8a1c4d7f0e3a6b9c2d5e8f1a4b7c0d3e6f"),
+ )
+ .build()
+ )
.routingNumber("routing_number")
.eventType(FinancialAccountCreatedWebhookEvent.EventType.FINANCIAL_ACCOUNT_CREATED)
.build()
@@ -79,6 +88,15 @@ internal class FinancialAccountCreatedWebhookEventTest {
assertThat(financialAccountCreatedWebhookEvent.userDefinedStatus())
.contains("user_defined_status")
assertThat(financialAccountCreatedWebhookEvent.accountNumber()).contains("account_number")
+ assertThat(financialAccountCreatedWebhookEvent.blockchainAddresses())
+ .contains(
+ FinancialAccount.BlockchainAddresses.builder()
+ .putAdditionalProperty(
+ "ETHEREUM",
+ JsonValue.from("0x5f2b9e8a1c4d7f0e3a6b9c2d5e8f1a4b7c0d3e6f"),
+ )
+ .build()
+ )
assertThat(financialAccountCreatedWebhookEvent.routingNumber()).contains("routing_number")
assertThat(financialAccountCreatedWebhookEvent.eventType())
.isEqualTo(FinancialAccountCreatedWebhookEvent.EventType.FINANCIAL_ACCOUNT_CREATED)
@@ -115,6 +133,14 @@ internal class FinancialAccountCreatedWebhookEventTest {
.updated(OffsetDateTime.parse("2019-12-27T18:11:19.117Z"))
.userDefinedStatus("user_defined_status")
.accountNumber("account_number")
+ .blockchainAddresses(
+ FinancialAccount.BlockchainAddresses.builder()
+ .putAdditionalProperty(
+ "ETHEREUM",
+ JsonValue.from("0x5f2b9e8a1c4d7f0e3a6b9c2d5e8f1a4b7c0d3e6f"),
+ )
+ .build()
+ )
.routingNumber("routing_number")
.eventType(FinancialAccountCreatedWebhookEvent.EventType.FINANCIAL_ACCOUNT_CREATED)
.build()
diff --git a/lithic-java-core/src/test/kotlin/com/lithic/api/models/FinancialAccountListPageResponseTest.kt b/lithic-java-core/src/test/kotlin/com/lithic/api/models/FinancialAccountListPageResponseTest.kt
index d145b6c5c..4fcad53e2 100644
--- a/lithic-java-core/src/test/kotlin/com/lithic/api/models/FinancialAccountListPageResponseTest.kt
+++ b/lithic-java-core/src/test/kotlin/com/lithic/api/models/FinancialAccountListPageResponseTest.kt
@@ -3,6 +3,7 @@
package com.lithic.api.models
import com.fasterxml.jackson.module.kotlin.jacksonTypeRef
+import com.lithic.api.core.JsonValue
import com.lithic.api.core.jsonMapper
import java.time.OffsetDateTime
import org.assertj.core.api.Assertions.assertThat
@@ -44,6 +45,14 @@ internal class FinancialAccountListPageResponseTest {
.updated(OffsetDateTime.parse("2019-12-27T18:11:19.117Z"))
.userDefinedStatus("user_defined_status")
.accountNumber("account_number")
+ .blockchainAddresses(
+ FinancialAccount.BlockchainAddresses.builder()
+ .putAdditionalProperty(
+ "ETHEREUM",
+ JsonValue.from("0x5f2b9e8a1c4d7f0e3a6b9c2d5e8f1a4b7c0d3e6f"),
+ )
+ .build()
+ )
.routingNumber("routing_number")
.build()
)
@@ -79,6 +88,14 @@ internal class FinancialAccountListPageResponseTest {
.updated(OffsetDateTime.parse("2019-12-27T18:11:19.117Z"))
.userDefinedStatus("user_defined_status")
.accountNumber("account_number")
+ .blockchainAddresses(
+ FinancialAccount.BlockchainAddresses.builder()
+ .putAdditionalProperty(
+ "ETHEREUM",
+ JsonValue.from("0x5f2b9e8a1c4d7f0e3a6b9c2d5e8f1a4b7c0d3e6f"),
+ )
+ .build()
+ )
.routingNumber("routing_number")
.build()
)
@@ -120,6 +137,14 @@ internal class FinancialAccountListPageResponseTest {
.updated(OffsetDateTime.parse("2019-12-27T18:11:19.117Z"))
.userDefinedStatus("user_defined_status")
.accountNumber("account_number")
+ .blockchainAddresses(
+ FinancialAccount.BlockchainAddresses.builder()
+ .putAdditionalProperty(
+ "ETHEREUM",
+ JsonValue.from("0x5f2b9e8a1c4d7f0e3a6b9c2d5e8f1a4b7c0d3e6f"),
+ )
+ .build()
+ )
.routingNumber("routing_number")
.build()
)
diff --git a/lithic-java-core/src/test/kotlin/com/lithic/api/models/FinancialAccountTest.kt b/lithic-java-core/src/test/kotlin/com/lithic/api/models/FinancialAccountTest.kt
index 98eb1f5ac..08f37d8d0 100644
--- a/lithic-java-core/src/test/kotlin/com/lithic/api/models/FinancialAccountTest.kt
+++ b/lithic-java-core/src/test/kotlin/com/lithic/api/models/FinancialAccountTest.kt
@@ -3,6 +3,7 @@
package com.lithic.api.models
import com.fasterxml.jackson.module.kotlin.jacksonTypeRef
+import com.lithic.api.core.JsonValue
import com.lithic.api.core.jsonMapper
import java.time.OffsetDateTime
import org.assertj.core.api.Assertions.assertThat
@@ -40,6 +41,14 @@ internal class FinancialAccountTest {
.updated(OffsetDateTime.parse("2019-12-27T18:11:19.117Z"))
.userDefinedStatus("user_defined_status")
.accountNumber("account_number")
+ .blockchainAddresses(
+ FinancialAccount.BlockchainAddresses.builder()
+ .putAdditionalProperty(
+ "ETHEREUM",
+ JsonValue.from("0x5f2b9e8a1c4d7f0e3a6b9c2d5e8f1a4b7c0d3e6f"),
+ )
+ .build()
+ )
.routingNumber("routing_number")
.build()
@@ -74,6 +83,15 @@ internal class FinancialAccountTest {
.isEqualTo(OffsetDateTime.parse("2019-12-27T18:11:19.117Z"))
assertThat(financialAccount.userDefinedStatus()).contains("user_defined_status")
assertThat(financialAccount.accountNumber()).contains("account_number")
+ assertThat(financialAccount.blockchainAddresses())
+ .contains(
+ FinancialAccount.BlockchainAddresses.builder()
+ .putAdditionalProperty(
+ "ETHEREUM",
+ JsonValue.from("0x5f2b9e8a1c4d7f0e3a6b9c2d5e8f1a4b7c0d3e6f"),
+ )
+ .build()
+ )
assertThat(financialAccount.routingNumber()).contains("routing_number")
}
@@ -108,6 +126,14 @@ internal class FinancialAccountTest {
.updated(OffsetDateTime.parse("2019-12-27T18:11:19.117Z"))
.userDefinedStatus("user_defined_status")
.accountNumber("account_number")
+ .blockchainAddresses(
+ FinancialAccount.BlockchainAddresses.builder()
+ .putAdditionalProperty(
+ "ETHEREUM",
+ JsonValue.from("0x5f2b9e8a1c4d7f0e3a6b9c2d5e8f1a4b7c0d3e6f"),
+ )
+ .build()
+ )
.routingNumber("routing_number")
.build()
diff --git a/lithic-java-core/src/test/kotlin/com/lithic/api/models/FinancialAccountUpdatedWebhookEventTest.kt b/lithic-java-core/src/test/kotlin/com/lithic/api/models/FinancialAccountUpdatedWebhookEventTest.kt
index 79e2cac6d..b15b6d8dd 100644
--- a/lithic-java-core/src/test/kotlin/com/lithic/api/models/FinancialAccountUpdatedWebhookEventTest.kt
+++ b/lithic-java-core/src/test/kotlin/com/lithic/api/models/FinancialAccountUpdatedWebhookEventTest.kt
@@ -3,6 +3,7 @@
package com.lithic.api.models
import com.fasterxml.jackson.module.kotlin.jacksonTypeRef
+import com.lithic.api.core.JsonValue
import com.lithic.api.core.jsonMapper
import java.time.OffsetDateTime
import org.assertj.core.api.Assertions.assertThat
@@ -40,6 +41,14 @@ internal class FinancialAccountUpdatedWebhookEventTest {
.updated(OffsetDateTime.parse("2019-12-27T18:11:19.117Z"))
.userDefinedStatus("user_defined_status")
.accountNumber("account_number")
+ .blockchainAddresses(
+ FinancialAccount.BlockchainAddresses.builder()
+ .putAdditionalProperty(
+ "ETHEREUM",
+ JsonValue.from("0x5f2b9e8a1c4d7f0e3a6b9c2d5e8f1a4b7c0d3e6f"),
+ )
+ .build()
+ )
.routingNumber("routing_number")
.eventType(FinancialAccountUpdatedWebhookEvent.EventType.FINANCIAL_ACCOUNT_UPDATED)
.build()
@@ -79,6 +88,15 @@ internal class FinancialAccountUpdatedWebhookEventTest {
assertThat(financialAccountUpdatedWebhookEvent.userDefinedStatus())
.contains("user_defined_status")
assertThat(financialAccountUpdatedWebhookEvent.accountNumber()).contains("account_number")
+ assertThat(financialAccountUpdatedWebhookEvent.blockchainAddresses())
+ .contains(
+ FinancialAccount.BlockchainAddresses.builder()
+ .putAdditionalProperty(
+ "ETHEREUM",
+ JsonValue.from("0x5f2b9e8a1c4d7f0e3a6b9c2d5e8f1a4b7c0d3e6f"),
+ )
+ .build()
+ )
assertThat(financialAccountUpdatedWebhookEvent.routingNumber()).contains("routing_number")
assertThat(financialAccountUpdatedWebhookEvent.eventType())
.isEqualTo(FinancialAccountUpdatedWebhookEvent.EventType.FINANCIAL_ACCOUNT_UPDATED)
@@ -115,6 +133,14 @@ internal class FinancialAccountUpdatedWebhookEventTest {
.updated(OffsetDateTime.parse("2019-12-27T18:11:19.117Z"))
.userDefinedStatus("user_defined_status")
.accountNumber("account_number")
+ .blockchainAddresses(
+ FinancialAccount.BlockchainAddresses.builder()
+ .putAdditionalProperty(
+ "ETHEREUM",
+ JsonValue.from("0x5f2b9e8a1c4d7f0e3a6b9c2d5e8f1a4b7c0d3e6f"),
+ )
+ .build()
+ )
.routingNumber("routing_number")
.eventType(FinancialAccountUpdatedWebhookEvent.EventType.FINANCIAL_ACCOUNT_UPDATED)
.build()
diff --git a/lithic-java-core/src/test/kotlin/com/lithic/api/models/ParsedWebhookEventTest.kt b/lithic-java-core/src/test/kotlin/com/lithic/api/models/ParsedWebhookEventTest.kt
index de53b7467..cc450b476 100644
--- a/lithic-java-core/src/test/kotlin/com/lithic/api/models/ParsedWebhookEventTest.kt
+++ b/lithic-java-core/src/test/kotlin/com/lithic/api/models/ParsedWebhookEventTest.kt
@@ -7239,6 +7239,14 @@ internal class ParsedWebhookEventTest {
.updated(OffsetDateTime.parse("2019-12-27T18:11:19.117Z"))
.userDefinedStatus("user_defined_status")
.accountNumber("account_number")
+ .blockchainAddresses(
+ FinancialAccount.BlockchainAddresses.builder()
+ .putAdditionalProperty(
+ "ETHEREUM",
+ JsonValue.from("0x5f2b9e8a1c4d7f0e3a6b9c2d5e8f1a4b7c0d3e6f"),
+ )
+ .build()
+ )
.routingNumber("routing_number")
.eventType(FinancialAccountCreatedWebhookEvent.EventType.FINANCIAL_ACCOUNT_CREATED)
.build()
@@ -7348,6 +7356,14 @@ internal class ParsedWebhookEventTest {
.updated(OffsetDateTime.parse("2019-12-27T18:11:19.117Z"))
.userDefinedStatus("user_defined_status")
.accountNumber("account_number")
+ .blockchainAddresses(
+ FinancialAccount.BlockchainAddresses.builder()
+ .putAdditionalProperty(
+ "ETHEREUM",
+ JsonValue.from("0x5f2b9e8a1c4d7f0e3a6b9c2d5e8f1a4b7c0d3e6f"),
+ )
+ .build()
+ )
.routingNumber("routing_number")
.eventType(
FinancialAccountCreatedWebhookEvent.EventType.FINANCIAL_ACCOUNT_CREATED
@@ -7394,6 +7410,14 @@ internal class ParsedWebhookEventTest {
.updated(OffsetDateTime.parse("2019-12-27T18:11:19.117Z"))
.userDefinedStatus("user_defined_status")
.accountNumber("account_number")
+ .blockchainAddresses(
+ FinancialAccount.BlockchainAddresses.builder()
+ .putAdditionalProperty(
+ "ETHEREUM",
+ JsonValue.from("0x5f2b9e8a1c4d7f0e3a6b9c2d5e8f1a4b7c0d3e6f"),
+ )
+ .build()
+ )
.routingNumber("routing_number")
.eventType(FinancialAccountUpdatedWebhookEvent.EventType.FINANCIAL_ACCOUNT_UPDATED)
.build()
@@ -7503,6 +7527,14 @@ internal class ParsedWebhookEventTest {
.updated(OffsetDateTime.parse("2019-12-27T18:11:19.117Z"))
.userDefinedStatus("user_defined_status")
.accountNumber("account_number")
+ .blockchainAddresses(
+ FinancialAccount.BlockchainAddresses.builder()
+ .putAdditionalProperty(
+ "ETHEREUM",
+ JsonValue.from("0x5f2b9e8a1c4d7f0e3a6b9c2d5e8f1a4b7c0d3e6f"),
+ )
+ .build()
+ )
.routingNumber("routing_number")
.eventType(
FinancialAccountUpdatedWebhookEvent.EventType.FINANCIAL_ACCOUNT_UPDATED
diff --git a/lithic-java-core/src/test/kotlin/com/lithic/api/models/VelocityLimitParamsTest.kt b/lithic-java-core/src/test/kotlin/com/lithic/api/models/VelocityLimitParamsTest.kt
index 91d3b1462..41610a04a 100644
--- a/lithic-java-core/src/test/kotlin/com/lithic/api/models/VelocityLimitParamsTest.kt
+++ b/lithic-java-core/src/test/kotlin/com/lithic/api/models/VelocityLimitParamsTest.kt
@@ -30,6 +30,8 @@ internal class VelocityLimitParamsTest {
.build()
)
.limitAmount(10000L)
+ .limitCashAmount(5000L)
+ .limitCashCount(0L)
.limitCount(0L)
.build()
@@ -54,6 +56,8 @@ internal class VelocityLimitParamsTest {
.build()
)
assertThat(velocityLimitParams.limitAmount()).contains(10000L)
+ assertThat(velocityLimitParams.limitCashAmount()).contains(5000L)
+ assertThat(velocityLimitParams.limitCashCount()).contains(0L)
assertThat(velocityLimitParams.limitCount()).contains(0L)
}
@@ -79,6 +83,8 @@ internal class VelocityLimitParamsTest {
.build()
)
.limitAmount(10000L)
+ .limitCashAmount(5000L)
+ .limitCashCount(0L)
.limitCount(0L)
.build()
diff --git a/scripts/upload-artifacts b/scripts/upload-artifacts
index 10f3c7055..5c1fbefc4 100755
--- a/scripts/upload-artifacts
+++ b/scripts/upload-artifacts
@@ -91,6 +91,7 @@ generate_instructions() {
Maven Repo
+
Stainless SDK Maven Repository