diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES
index 6b99e9b0..20d520d2 100644
--- a/.openapi-generator/FILES
+++ b/.openapi-generator/FILES
@@ -19,7 +19,8 @@ docs/Account.md
docs/AccountAccess.md
docs/AccountBase.md
docs/AccountBasedAccessProvider.md
-docs/AccountBasedAccessProviderDetails.md
+docs/AccountBasedAccessProviderInfo.md
+docs/AccountBasedProviderDetails.md
docs/AccountConfig.md
docs/AccountHolderDetails.md
docs/AccountIdentifier.md
@@ -45,8 +46,20 @@ docs/AdditionalInfoRequestAdditionalInfo.md
docs/AddressBalanceItemDto.md
docs/AddressBalancePagedResponse.md
docs/AddressNotAvailableError.md
+docs/AddressRegistryAddVaultOptOutsRequest.md
+docs/AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner.md
+docs/AddressRegistryAddVaultOptOutsResponse.md
docs/AddressRegistryError.md
+docs/AddressRegistryGetVaultOptOutResponse.md
docs/AddressRegistryLegalEntity.md
+docs/AddressRegistryLegalEntityLegacy.md
+docs/AddressRegistryListVaultOptOutsResponse.md
+docs/AddressRegistryRemoveAllVaultOptOutsResponse.md
+docs/AddressRegistryRemoveVaultOptOutResponse.md
+docs/AddressRegistryTenantRegistryResponse.md
+docs/AddressRegistryTravelRuleProvider.md
+docs/AddressRegistryVaultListOrder.md
+docs/AddressRegistryVaultOptOutItem.md
docs/AlertExposureTypeEnum.md
docs/AlertLevelEnum.md
docs/AmlAlert.md
@@ -98,10 +111,11 @@ docs/AssetPriceNotFoundErrorResponse.md
docs/AssetPriceResponse.md
docs/AssetResponse.md
docs/AssetScope.md
-docs/AssetTypeEnum.md
docs/AssetTypeResponse.md
docs/AssetTypesConfigInner.md
docs/AssetWallet.md
+docs/AssignVaultsToLegalEntityRequest.md
+docs/AssignVaultsToLegalEntityResponse.md
docs/AuditLogData.md
docs/AuditLogsApi.md
docs/AuditorData.md
@@ -129,7 +143,6 @@ docs/BusinessIdentification.md
docs/CallbackHandler.md
docs/CallbackHandlerRequest.md
docs/CancelTransactionResponse.md
-docs/Capability.md
docs/ChainDescriptor.md
docs/ChainInfoResponse.md
docs/ChannelDvnConfigWithConfirmations.md
@@ -288,7 +301,8 @@ docs/DestinationTransferPeerPath.md
docs/DestinationTransferPeerPathResponse.md
docs/DirectAccess.md
docs/DirectAccessProvider.md
-docs/DirectAccessProviderDetails.md
+docs/DirectAccessProviderInfo.md
+docs/DirectProviderDetails.md
docs/DisbursementAmountInstruction.md
docs/DisbursementConfigOperation.md
docs/DisbursementInstruction.md
@@ -356,6 +370,7 @@ docs/ExecutionDisbursementOperation.md
docs/ExecutionOperationStatus.md
docs/ExecutionRequestBaseDetails.md
docs/ExecutionRequestDetails.md
+docs/ExecutionRequestDetailsType.md
docs/ExecutionResponseBaseDetails.md
docs/ExecutionResponseDetails.md
docs/ExecutionScreeningOperation.md
@@ -425,6 +440,7 @@ docs/GetTransactionOperation.md
docs/GetValidationKeyResponseDto.md
docs/GetWhitelistIpAddressesResponse.md
docs/GetWorkspaceStatusResponse.md
+docs/GleifData.md
docs/HttpContractDoesNotExistError.md
docs/IbanAddress.md
docs/IbanDestination.md
@@ -481,14 +497,23 @@ docs/LegacyPolicyValidation.md
docs/LegacyPublishDraftRequest.md
docs/LegacyPublishResult.md
docs/LegacySrcOrDestAttributesInner.md
+docs/LegalEntityRegistration.md
+docs/LeiStatus.md
docs/LinkedTokensCount.md
docs/ListAssetsResponse.md
docs/ListBlockchainsResponse.md
+docs/ListLegalEntitiesResponse.md
docs/ListOwnedCollectionsResponse.md
docs/ListOwnedTokensResponse.md
+docs/ListVaultsForRegistrationResponse.md
docs/LocalBankTransferAfricaAddress.md
docs/LocalBankTransferAfricaDestination.md
docs/Manifest.md
+docs/ManifestBase.md
+docs/ManifestOrder.md
+docs/ManifestOrderInfo.md
+docs/ManifestQuote.md
+docs/ManifestQuoteInfo.md
docs/MarketExecutionRequestDetails.md
docs/MarketExecutionResponseDetails.md
docs/MarketRequoteRequestDetails.md
@@ -603,6 +628,7 @@ docs/PolicyType.md
docs/PolicyValidation.md
docs/PolicyVerdictActionEnum.md
docs/PolicyVerdictActionEnum2.md
+docs/Position.md
docs/PostalAddress.md
docs/PreScreening.md
docs/PrefundedSettlement.md
@@ -630,6 +656,7 @@ docs/ReadCallFunctionDto.md
docs/ReadCallFunctionDtoAbiFunction.md
docs/RecipientHandle.md
docs/RedeemFundsToLinkedDDAResponse.md
+docs/RegisterLegalEntityRequest.md
docs/RegisterNewAssetRequest.md
docs/ReissueMultichainTokenRequest.md
docs/RelatedRequest.md
@@ -676,7 +703,6 @@ docs/ScreeningOperationFailure.md
docs/ScreeningOperationType.md
docs/ScreeningPolicyResponse.md
docs/ScreeningProviderRulesConfigurationResponse.md
-docs/ScreeningRiskLevelEnum.md
docs/ScreeningTRLinkAmount.md
docs/ScreeningTRLinkMissingTrmDecision.md
docs/ScreeningTRLinkMissingTrmRule.md
@@ -720,6 +746,7 @@ docs/Settlement.md
docs/SettlementRequestBody.md
docs/SettlementResponse.md
docs/SettlementSourceAccount.md
+docs/SettlementTypeEnum.md
docs/Side.md
docs/SignedMessage.md
docs/SignedMessageSignature.md
@@ -772,6 +799,7 @@ docs/StEthBlockchainData.md
docs/StakeRequest.md
docs/StakeResponse.md
docs/StakingApi.md
+docs/StakingPositionsPaginatedResponse.md
docs/StakingProvider.md
docs/Status.md
docs/StellarRippleCreateParamsDto.md
@@ -892,6 +920,7 @@ docs/TradingAccountType.md
docs/TradingBetaApi.md
docs/TradingErrorSchema.md
docs/TradingProvider.md
+docs/TradingProviderDetails.md
docs/Transaction.md
docs/TransactionDirection.md
docs/TransactionFee.md
@@ -951,6 +980,7 @@ docs/TravelRulePerson.md
docs/TravelRulePiiIVMS.md
docs/TravelRulePolicyRuleResponse.md
docs/TravelRulePrescreeningRule.md
+docs/TravelRuleProvider.md
docs/TravelRuleResult.md
docs/TravelRuleStatusEnum.md
docs/TravelRuleTransactionBlockchainInfo.md
@@ -987,6 +1017,7 @@ docs/UpdateAssetUserMetadataRequest.md
docs/UpdateCallbackHandlerRequest.md
docs/UpdateCallbackHandlerResponse.md
docs/UpdateDraftRequest.md
+docs/UpdateLegalEntityRequest.md
docs/UpdateTagRequest.md
docs/UpdateTokenOwnershipStatusDto.md
docs/UpdateVaultAccountAssetAddressRequest.md
@@ -1129,7 +1160,8 @@ src/main/java/com/fireblocks/sdk/model/Account.java
src/main/java/com/fireblocks/sdk/model/AccountAccess.java
src/main/java/com/fireblocks/sdk/model/AccountBase.java
src/main/java/com/fireblocks/sdk/model/AccountBasedAccessProvider.java
-src/main/java/com/fireblocks/sdk/model/AccountBasedAccessProviderDetails.java
+src/main/java/com/fireblocks/sdk/model/AccountBasedAccessProviderInfo.java
+src/main/java/com/fireblocks/sdk/model/AccountBasedProviderDetails.java
src/main/java/com/fireblocks/sdk/model/AccountConfig.java
src/main/java/com/fireblocks/sdk/model/AccountHolderDetails.java
src/main/java/com/fireblocks/sdk/model/AccountIdentifier.java
@@ -1155,8 +1187,20 @@ src/main/java/com/fireblocks/sdk/model/AdditionalInfoRequestAdditionalInfo.java
src/main/java/com/fireblocks/sdk/model/AddressBalanceItemDto.java
src/main/java/com/fireblocks/sdk/model/AddressBalancePagedResponse.java
src/main/java/com/fireblocks/sdk/model/AddressNotAvailableError.java
+src/main/java/com/fireblocks/sdk/model/AddressRegistryAddVaultOptOutsRequest.java
+src/main/java/com/fireblocks/sdk/model/AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner.java
+src/main/java/com/fireblocks/sdk/model/AddressRegistryAddVaultOptOutsResponse.java
src/main/java/com/fireblocks/sdk/model/AddressRegistryError.java
+src/main/java/com/fireblocks/sdk/model/AddressRegistryGetVaultOptOutResponse.java
src/main/java/com/fireblocks/sdk/model/AddressRegistryLegalEntity.java
+src/main/java/com/fireblocks/sdk/model/AddressRegistryLegalEntityLegacy.java
+src/main/java/com/fireblocks/sdk/model/AddressRegistryListVaultOptOutsResponse.java
+src/main/java/com/fireblocks/sdk/model/AddressRegistryRemoveAllVaultOptOutsResponse.java
+src/main/java/com/fireblocks/sdk/model/AddressRegistryRemoveVaultOptOutResponse.java
+src/main/java/com/fireblocks/sdk/model/AddressRegistryTenantRegistryResponse.java
+src/main/java/com/fireblocks/sdk/model/AddressRegistryTravelRuleProvider.java
+src/main/java/com/fireblocks/sdk/model/AddressRegistryVaultListOrder.java
+src/main/java/com/fireblocks/sdk/model/AddressRegistryVaultOptOutItem.java
src/main/java/com/fireblocks/sdk/model/AlertExposureTypeEnum.java
src/main/java/com/fireblocks/sdk/model/AlertLevelEnum.java
src/main/java/com/fireblocks/sdk/model/AmlAlert.java
@@ -1207,10 +1251,11 @@ src/main/java/com/fireblocks/sdk/model/AssetPriceNotFoundErrorResponse.java
src/main/java/com/fireblocks/sdk/model/AssetPriceResponse.java
src/main/java/com/fireblocks/sdk/model/AssetResponse.java
src/main/java/com/fireblocks/sdk/model/AssetScope.java
-src/main/java/com/fireblocks/sdk/model/AssetTypeEnum.java
src/main/java/com/fireblocks/sdk/model/AssetTypeResponse.java
src/main/java/com/fireblocks/sdk/model/AssetTypesConfigInner.java
src/main/java/com/fireblocks/sdk/model/AssetWallet.java
+src/main/java/com/fireblocks/sdk/model/AssignVaultsToLegalEntityRequest.java
+src/main/java/com/fireblocks/sdk/model/AssignVaultsToLegalEntityResponse.java
src/main/java/com/fireblocks/sdk/model/AuditLogData.java
src/main/java/com/fireblocks/sdk/model/AuditorData.java
src/main/java/com/fireblocks/sdk/model/AuthorizationGroups.java
@@ -1236,7 +1281,6 @@ src/main/java/com/fireblocks/sdk/model/BusinessIdentification.java
src/main/java/com/fireblocks/sdk/model/CallbackHandler.java
src/main/java/com/fireblocks/sdk/model/CallbackHandlerRequest.java
src/main/java/com/fireblocks/sdk/model/CancelTransactionResponse.java
-src/main/java/com/fireblocks/sdk/model/Capability.java
src/main/java/com/fireblocks/sdk/model/ChainDescriptor.java
src/main/java/com/fireblocks/sdk/model/ChainInfoResponse.java
src/main/java/com/fireblocks/sdk/model/ChannelDvnConfigWithConfirmations.java
@@ -1386,7 +1430,8 @@ src/main/java/com/fireblocks/sdk/model/DestinationTransferPeerPath.java
src/main/java/com/fireblocks/sdk/model/DestinationTransferPeerPathResponse.java
src/main/java/com/fireblocks/sdk/model/DirectAccess.java
src/main/java/com/fireblocks/sdk/model/DirectAccessProvider.java
-src/main/java/com/fireblocks/sdk/model/DirectAccessProviderDetails.java
+src/main/java/com/fireblocks/sdk/model/DirectAccessProviderInfo.java
+src/main/java/com/fireblocks/sdk/model/DirectProviderDetails.java
src/main/java/com/fireblocks/sdk/model/DisbursementAmountInstruction.java
src/main/java/com/fireblocks/sdk/model/DisbursementConfigOperation.java
src/main/java/com/fireblocks/sdk/model/DisbursementInstruction.java
@@ -1452,6 +1497,7 @@ src/main/java/com/fireblocks/sdk/model/ExecutionDisbursementOperation.java
src/main/java/com/fireblocks/sdk/model/ExecutionOperationStatus.java
src/main/java/com/fireblocks/sdk/model/ExecutionRequestBaseDetails.java
src/main/java/com/fireblocks/sdk/model/ExecutionRequestDetails.java
+src/main/java/com/fireblocks/sdk/model/ExecutionRequestDetailsType.java
src/main/java/com/fireblocks/sdk/model/ExecutionResponseBaseDetails.java
src/main/java/com/fireblocks/sdk/model/ExecutionResponseDetails.java
src/main/java/com/fireblocks/sdk/model/ExecutionScreeningOperation.java
@@ -1518,6 +1564,7 @@ src/main/java/com/fireblocks/sdk/model/GetTransactionOperation.java
src/main/java/com/fireblocks/sdk/model/GetValidationKeyResponseDto.java
src/main/java/com/fireblocks/sdk/model/GetWhitelistIpAddressesResponse.java
src/main/java/com/fireblocks/sdk/model/GetWorkspaceStatusResponse.java
+src/main/java/com/fireblocks/sdk/model/GleifData.java
src/main/java/com/fireblocks/sdk/model/HttpContractDoesNotExistError.java
src/main/java/com/fireblocks/sdk/model/IbanAddress.java
src/main/java/com/fireblocks/sdk/model/IbanDestination.java
@@ -1571,14 +1618,23 @@ src/main/java/com/fireblocks/sdk/model/LegacyPolicyValidation.java
src/main/java/com/fireblocks/sdk/model/LegacyPublishDraftRequest.java
src/main/java/com/fireblocks/sdk/model/LegacyPublishResult.java
src/main/java/com/fireblocks/sdk/model/LegacySrcOrDestAttributesInner.java
+src/main/java/com/fireblocks/sdk/model/LegalEntityRegistration.java
+src/main/java/com/fireblocks/sdk/model/LeiStatus.java
src/main/java/com/fireblocks/sdk/model/LinkedTokensCount.java
src/main/java/com/fireblocks/sdk/model/ListAssetsResponse.java
src/main/java/com/fireblocks/sdk/model/ListBlockchainsResponse.java
+src/main/java/com/fireblocks/sdk/model/ListLegalEntitiesResponse.java
src/main/java/com/fireblocks/sdk/model/ListOwnedCollectionsResponse.java
src/main/java/com/fireblocks/sdk/model/ListOwnedTokensResponse.java
+src/main/java/com/fireblocks/sdk/model/ListVaultsForRegistrationResponse.java
src/main/java/com/fireblocks/sdk/model/LocalBankTransferAfricaAddress.java
src/main/java/com/fireblocks/sdk/model/LocalBankTransferAfricaDestination.java
src/main/java/com/fireblocks/sdk/model/Manifest.java
+src/main/java/com/fireblocks/sdk/model/ManifestBase.java
+src/main/java/com/fireblocks/sdk/model/ManifestOrder.java
+src/main/java/com/fireblocks/sdk/model/ManifestOrderInfo.java
+src/main/java/com/fireblocks/sdk/model/ManifestQuote.java
+src/main/java/com/fireblocks/sdk/model/ManifestQuoteInfo.java
src/main/java/com/fireblocks/sdk/model/MarketExecutionRequestDetails.java
src/main/java/com/fireblocks/sdk/model/MarketExecutionResponseDetails.java
src/main/java/com/fireblocks/sdk/model/MarketRequoteRequestDetails.java
@@ -1685,6 +1741,7 @@ src/main/java/com/fireblocks/sdk/model/PolicyType.java
src/main/java/com/fireblocks/sdk/model/PolicyValidation.java
src/main/java/com/fireblocks/sdk/model/PolicyVerdictActionEnum.java
src/main/java/com/fireblocks/sdk/model/PolicyVerdictActionEnum2.java
+src/main/java/com/fireblocks/sdk/model/Position.java
src/main/java/com/fireblocks/sdk/model/PostalAddress.java
src/main/java/com/fireblocks/sdk/model/PreScreening.java
src/main/java/com/fireblocks/sdk/model/PrefundedSettlement.java
@@ -1712,6 +1769,7 @@ src/main/java/com/fireblocks/sdk/model/ReadCallFunctionDto.java
src/main/java/com/fireblocks/sdk/model/ReadCallFunctionDtoAbiFunction.java
src/main/java/com/fireblocks/sdk/model/RecipientHandle.java
src/main/java/com/fireblocks/sdk/model/RedeemFundsToLinkedDDAResponse.java
+src/main/java/com/fireblocks/sdk/model/RegisterLegalEntityRequest.java
src/main/java/com/fireblocks/sdk/model/RegisterNewAssetRequest.java
src/main/java/com/fireblocks/sdk/model/ReissueMultichainTokenRequest.java
src/main/java/com/fireblocks/sdk/model/RelatedRequest.java
@@ -1757,7 +1815,6 @@ src/main/java/com/fireblocks/sdk/model/ScreeningOperationFailure.java
src/main/java/com/fireblocks/sdk/model/ScreeningOperationType.java
src/main/java/com/fireblocks/sdk/model/ScreeningPolicyResponse.java
src/main/java/com/fireblocks/sdk/model/ScreeningProviderRulesConfigurationResponse.java
-src/main/java/com/fireblocks/sdk/model/ScreeningRiskLevelEnum.java
src/main/java/com/fireblocks/sdk/model/ScreeningTRLinkAmount.java
src/main/java/com/fireblocks/sdk/model/ScreeningTRLinkMissingTrmDecision.java
src/main/java/com/fireblocks/sdk/model/ScreeningTRLinkMissingTrmRule.java
@@ -1801,6 +1858,7 @@ src/main/java/com/fireblocks/sdk/model/Settlement.java
src/main/java/com/fireblocks/sdk/model/SettlementRequestBody.java
src/main/java/com/fireblocks/sdk/model/SettlementResponse.java
src/main/java/com/fireblocks/sdk/model/SettlementSourceAccount.java
+src/main/java/com/fireblocks/sdk/model/SettlementTypeEnum.java
src/main/java/com/fireblocks/sdk/model/Side.java
src/main/java/com/fireblocks/sdk/model/SignedMessage.java
src/main/java/com/fireblocks/sdk/model/SignedMessageSignature.java
@@ -1851,6 +1909,7 @@ src/main/java/com/fireblocks/sdk/model/SplitResponse.java
src/main/java/com/fireblocks/sdk/model/StEthBlockchainData.java
src/main/java/com/fireblocks/sdk/model/StakeRequest.java
src/main/java/com/fireblocks/sdk/model/StakeResponse.java
+src/main/java/com/fireblocks/sdk/model/StakingPositionsPaginatedResponse.java
src/main/java/com/fireblocks/sdk/model/StakingProvider.java
src/main/java/com/fireblocks/sdk/model/Status.java
src/main/java/com/fireblocks/sdk/model/StellarRippleCreateParamsDto.java
@@ -1967,6 +2026,7 @@ src/main/java/com/fireblocks/sdk/model/TotalSupplyPagedResponse.java
src/main/java/com/fireblocks/sdk/model/TradingAccountType.java
src/main/java/com/fireblocks/sdk/model/TradingErrorSchema.java
src/main/java/com/fireblocks/sdk/model/TradingProvider.java
+src/main/java/com/fireblocks/sdk/model/TradingProviderDetails.java
src/main/java/com/fireblocks/sdk/model/Transaction.java
src/main/java/com/fireblocks/sdk/model/TransactionDirection.java
src/main/java/com/fireblocks/sdk/model/TransactionFee.java
@@ -2024,6 +2084,7 @@ src/main/java/com/fireblocks/sdk/model/TravelRulePerson.java
src/main/java/com/fireblocks/sdk/model/TravelRulePiiIVMS.java
src/main/java/com/fireblocks/sdk/model/TravelRulePolicyRuleResponse.java
src/main/java/com/fireblocks/sdk/model/TravelRulePrescreeningRule.java
+src/main/java/com/fireblocks/sdk/model/TravelRuleProvider.java
src/main/java/com/fireblocks/sdk/model/TravelRuleResult.java
src/main/java/com/fireblocks/sdk/model/TravelRuleStatusEnum.java
src/main/java/com/fireblocks/sdk/model/TravelRuleTransactionBlockchainInfo.java
@@ -2060,6 +2121,7 @@ src/main/java/com/fireblocks/sdk/model/UpdateAssetUserMetadataRequest.java
src/main/java/com/fireblocks/sdk/model/UpdateCallbackHandlerRequest.java
src/main/java/com/fireblocks/sdk/model/UpdateCallbackHandlerResponse.java
src/main/java/com/fireblocks/sdk/model/UpdateDraftRequest.java
+src/main/java/com/fireblocks/sdk/model/UpdateLegalEntityRequest.java
src/main/java/com/fireblocks/sdk/model/UpdateTagRequest.java
src/main/java/com/fireblocks/sdk/model/UpdateTokenOwnershipStatusDto.java
src/main/java/com/fireblocks/sdk/model/UpdateVaultAccountAssetAddressRequest.java
@@ -2169,8 +2231,9 @@ src/test/java/com/fireblocks/sdk/model/AccessRegistrySummaryResponseTest.java
src/test/java/com/fireblocks/sdk/model/AccessTypeTest.java
src/test/java/com/fireblocks/sdk/model/AccountAccessTest.java
src/test/java/com/fireblocks/sdk/model/AccountBaseTest.java
-src/test/java/com/fireblocks/sdk/model/AccountBasedAccessProviderDetailsTest.java
+src/test/java/com/fireblocks/sdk/model/AccountBasedAccessProviderInfoTest.java
src/test/java/com/fireblocks/sdk/model/AccountBasedAccessProviderTest.java
+src/test/java/com/fireblocks/sdk/model/AccountBasedProviderDetailsTest.java
src/test/java/com/fireblocks/sdk/model/AccountConfigTest.java
src/test/java/com/fireblocks/sdk/model/AccountHolderDetailsTest.java
src/test/java/com/fireblocks/sdk/model/AccountIdentifierTest.java
@@ -2197,8 +2260,20 @@ src/test/java/com/fireblocks/sdk/model/AdditionalInfoTest.java
src/test/java/com/fireblocks/sdk/model/AddressBalanceItemDtoTest.java
src/test/java/com/fireblocks/sdk/model/AddressBalancePagedResponseTest.java
src/test/java/com/fireblocks/sdk/model/AddressNotAvailableErrorTest.java
+src/test/java/com/fireblocks/sdk/model/AddressRegistryAddVaultOptOutsRequestTest.java
+src/test/java/com/fireblocks/sdk/model/AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInnerTest.java
+src/test/java/com/fireblocks/sdk/model/AddressRegistryAddVaultOptOutsResponseTest.java
src/test/java/com/fireblocks/sdk/model/AddressRegistryErrorTest.java
+src/test/java/com/fireblocks/sdk/model/AddressRegistryGetVaultOptOutResponseTest.java
+src/test/java/com/fireblocks/sdk/model/AddressRegistryLegalEntityLegacyTest.java
src/test/java/com/fireblocks/sdk/model/AddressRegistryLegalEntityTest.java
+src/test/java/com/fireblocks/sdk/model/AddressRegistryListVaultOptOutsResponseTest.java
+src/test/java/com/fireblocks/sdk/model/AddressRegistryRemoveAllVaultOptOutsResponseTest.java
+src/test/java/com/fireblocks/sdk/model/AddressRegistryRemoveVaultOptOutResponseTest.java
+src/test/java/com/fireblocks/sdk/model/AddressRegistryTenantRegistryResponseTest.java
+src/test/java/com/fireblocks/sdk/model/AddressRegistryTravelRuleProviderTest.java
+src/test/java/com/fireblocks/sdk/model/AddressRegistryVaultListOrderTest.java
+src/test/java/com/fireblocks/sdk/model/AddressRegistryVaultOptOutItemTest.java
src/test/java/com/fireblocks/sdk/model/AlertExposureTypeEnumTest.java
src/test/java/com/fireblocks/sdk/model/AlertLevelEnumTest.java
src/test/java/com/fireblocks/sdk/model/AmlAlertTest.java
@@ -2249,10 +2324,11 @@ src/test/java/com/fireblocks/sdk/model/AssetPriceResponseTest.java
src/test/java/com/fireblocks/sdk/model/AssetResponseTest.java
src/test/java/com/fireblocks/sdk/model/AssetScopeTest.java
src/test/java/com/fireblocks/sdk/model/AssetTest.java
-src/test/java/com/fireblocks/sdk/model/AssetTypeEnumTest.java
src/test/java/com/fireblocks/sdk/model/AssetTypeResponseTest.java
src/test/java/com/fireblocks/sdk/model/AssetTypesConfigInnerTest.java
src/test/java/com/fireblocks/sdk/model/AssetWalletTest.java
+src/test/java/com/fireblocks/sdk/model/AssignVaultsToLegalEntityRequestTest.java
+src/test/java/com/fireblocks/sdk/model/AssignVaultsToLegalEntityResponseTest.java
src/test/java/com/fireblocks/sdk/model/AuditLogDataTest.java
src/test/java/com/fireblocks/sdk/model/AuditorDataTest.java
src/test/java/com/fireblocks/sdk/model/AuthorizationGroupsTest.java
@@ -2278,7 +2354,6 @@ src/test/java/com/fireblocks/sdk/model/BusinessIdentificationTest.java
src/test/java/com/fireblocks/sdk/model/CallbackHandlerRequestTest.java
src/test/java/com/fireblocks/sdk/model/CallbackHandlerTest.java
src/test/java/com/fireblocks/sdk/model/CancelTransactionResponseTest.java
-src/test/java/com/fireblocks/sdk/model/CapabilityTest.java
src/test/java/com/fireblocks/sdk/model/ChainDescriptorTest.java
src/test/java/com/fireblocks/sdk/model/ChainInfoResponseTest.java
src/test/java/com/fireblocks/sdk/model/ChannelDvnConfigWithConfirmationsTest.java
@@ -2426,9 +2501,10 @@ src/test/java/com/fireblocks/sdk/model/DestinationConfigTest.java
src/test/java/com/fireblocks/sdk/model/DestinationTest.java
src/test/java/com/fireblocks/sdk/model/DestinationTransferPeerPathResponseTest.java
src/test/java/com/fireblocks/sdk/model/DestinationTransferPeerPathTest.java
-src/test/java/com/fireblocks/sdk/model/DirectAccessProviderDetailsTest.java
+src/test/java/com/fireblocks/sdk/model/DirectAccessProviderInfoTest.java
src/test/java/com/fireblocks/sdk/model/DirectAccessProviderTest.java
src/test/java/com/fireblocks/sdk/model/DirectAccessTest.java
+src/test/java/com/fireblocks/sdk/model/DirectProviderDetailsTest.java
src/test/java/com/fireblocks/sdk/model/DisbursementAmountInstructionTest.java
src/test/java/com/fireblocks/sdk/model/DisbursementConfigOperationTest.java
src/test/java/com/fireblocks/sdk/model/DisbursementInstructionOutputTest.java
@@ -2494,6 +2570,7 @@ src/test/java/com/fireblocks/sdk/model/ExecutionDisbursementOperationTest.java
src/test/java/com/fireblocks/sdk/model/ExecutionOperationStatusTest.java
src/test/java/com/fireblocks/sdk/model/ExecutionRequestBaseDetailsTest.java
src/test/java/com/fireblocks/sdk/model/ExecutionRequestDetailsTest.java
+src/test/java/com/fireblocks/sdk/model/ExecutionRequestDetailsTypeTest.java
src/test/java/com/fireblocks/sdk/model/ExecutionResponseBaseDetailsTest.java
src/test/java/com/fireblocks/sdk/model/ExecutionResponseDetailsTest.java
src/test/java/com/fireblocks/sdk/model/ExecutionScreeningOperationTest.java
@@ -2560,6 +2637,7 @@ src/test/java/com/fireblocks/sdk/model/GetTransactionOperationTest.java
src/test/java/com/fireblocks/sdk/model/GetValidationKeyResponseDtoTest.java
src/test/java/com/fireblocks/sdk/model/GetWhitelistIpAddressesResponseTest.java
src/test/java/com/fireblocks/sdk/model/GetWorkspaceStatusResponseTest.java
+src/test/java/com/fireblocks/sdk/model/GleifDataTest.java
src/test/java/com/fireblocks/sdk/model/HttpContractDoesNotExistErrorTest.java
src/test/java/com/fireblocks/sdk/model/IbanAddressTest.java
src/test/java/com/fireblocks/sdk/model/IbanDestinationTest.java
@@ -2613,13 +2691,22 @@ src/test/java/com/fireblocks/sdk/model/LegacyPolicyValidationTest.java
src/test/java/com/fireblocks/sdk/model/LegacyPublishDraftRequestTest.java
src/test/java/com/fireblocks/sdk/model/LegacyPublishResultTest.java
src/test/java/com/fireblocks/sdk/model/LegacySrcOrDestAttributesInnerTest.java
+src/test/java/com/fireblocks/sdk/model/LegalEntityRegistrationTest.java
+src/test/java/com/fireblocks/sdk/model/LeiStatusTest.java
src/test/java/com/fireblocks/sdk/model/LinkedTokensCountTest.java
src/test/java/com/fireblocks/sdk/model/ListAssetsResponseTest.java
src/test/java/com/fireblocks/sdk/model/ListBlockchainsResponseTest.java
+src/test/java/com/fireblocks/sdk/model/ListLegalEntitiesResponseTest.java
src/test/java/com/fireblocks/sdk/model/ListOwnedCollectionsResponseTest.java
src/test/java/com/fireblocks/sdk/model/ListOwnedTokensResponseTest.java
+src/test/java/com/fireblocks/sdk/model/ListVaultsForRegistrationResponseTest.java
src/test/java/com/fireblocks/sdk/model/LocalBankTransferAfricaAddressTest.java
src/test/java/com/fireblocks/sdk/model/LocalBankTransferAfricaDestinationTest.java
+src/test/java/com/fireblocks/sdk/model/ManifestBaseTest.java
+src/test/java/com/fireblocks/sdk/model/ManifestOrderInfoTest.java
+src/test/java/com/fireblocks/sdk/model/ManifestOrderTest.java
+src/test/java/com/fireblocks/sdk/model/ManifestQuoteInfoTest.java
+src/test/java/com/fireblocks/sdk/model/ManifestQuoteTest.java
src/test/java/com/fireblocks/sdk/model/ManifestTest.java
src/test/java/com/fireblocks/sdk/model/MarketExecutionRequestDetailsTest.java
src/test/java/com/fireblocks/sdk/model/MarketExecutionResponseDetailsTest.java
@@ -2727,6 +2814,7 @@ src/test/java/com/fireblocks/sdk/model/PolicyTypeTest.java
src/test/java/com/fireblocks/sdk/model/PolicyValidationTest.java
src/test/java/com/fireblocks/sdk/model/PolicyVerdictActionEnum2Test.java
src/test/java/com/fireblocks/sdk/model/PolicyVerdictActionEnumTest.java
+src/test/java/com/fireblocks/sdk/model/PositionTest.java
src/test/java/com/fireblocks/sdk/model/PostalAddressTest.java
src/test/java/com/fireblocks/sdk/model/PreScreeningTest.java
src/test/java/com/fireblocks/sdk/model/PrefundedSettlementTest.java
@@ -2754,6 +2842,7 @@ src/test/java/com/fireblocks/sdk/model/ReadCallFunctionDtoAbiFunctionTest.java
src/test/java/com/fireblocks/sdk/model/ReadCallFunctionDtoTest.java
src/test/java/com/fireblocks/sdk/model/RecipientHandleTest.java
src/test/java/com/fireblocks/sdk/model/RedeemFundsToLinkedDDAResponseTest.java
+src/test/java/com/fireblocks/sdk/model/RegisterLegalEntityRequestTest.java
src/test/java/com/fireblocks/sdk/model/RegisterNewAssetRequestTest.java
src/test/java/com/fireblocks/sdk/model/ReissueMultichainTokenRequestTest.java
src/test/java/com/fireblocks/sdk/model/RelatedRequestTest.java
@@ -2799,7 +2888,6 @@ src/test/java/com/fireblocks/sdk/model/ScreeningOperationFailureTest.java
src/test/java/com/fireblocks/sdk/model/ScreeningOperationTypeTest.java
src/test/java/com/fireblocks/sdk/model/ScreeningPolicyResponseTest.java
src/test/java/com/fireblocks/sdk/model/ScreeningProviderRulesConfigurationResponseTest.java
-src/test/java/com/fireblocks/sdk/model/ScreeningRiskLevelEnumTest.java
src/test/java/com/fireblocks/sdk/model/ScreeningTRLinkAmountTest.java
src/test/java/com/fireblocks/sdk/model/ScreeningTRLinkMissingTrmDecisionTest.java
src/test/java/com/fireblocks/sdk/model/ScreeningTRLinkMissingTrmRuleTest.java
@@ -2843,6 +2931,7 @@ src/test/java/com/fireblocks/sdk/model/SettlementRequestBodyTest.java
src/test/java/com/fireblocks/sdk/model/SettlementResponseTest.java
src/test/java/com/fireblocks/sdk/model/SettlementSourceAccountTest.java
src/test/java/com/fireblocks/sdk/model/SettlementTest.java
+src/test/java/com/fireblocks/sdk/model/SettlementTypeEnumTest.java
src/test/java/com/fireblocks/sdk/model/SideTest.java
src/test/java/com/fireblocks/sdk/model/SignedMessageSignatureTest.java
src/test/java/com/fireblocks/sdk/model/SignedMessageTest.java
@@ -2893,6 +2982,7 @@ src/test/java/com/fireblocks/sdk/model/SplitResponseTest.java
src/test/java/com/fireblocks/sdk/model/StEthBlockchainDataTest.java
src/test/java/com/fireblocks/sdk/model/StakeRequestTest.java
src/test/java/com/fireblocks/sdk/model/StakeResponseTest.java
+src/test/java/com/fireblocks/sdk/model/StakingPositionsPaginatedResponseTest.java
src/test/java/com/fireblocks/sdk/model/StakingProviderTest.java
src/test/java/com/fireblocks/sdk/model/StatusTest.java
src/test/java/com/fireblocks/sdk/model/StellarRippleCreateParamsDtoTest.java
@@ -3008,6 +3098,7 @@ src/test/java/com/fireblocks/sdk/model/TotalSupplyItemDtoTest.java
src/test/java/com/fireblocks/sdk/model/TotalSupplyPagedResponseTest.java
src/test/java/com/fireblocks/sdk/model/TradingAccountTypeTest.java
src/test/java/com/fireblocks/sdk/model/TradingErrorSchemaTest.java
+src/test/java/com/fireblocks/sdk/model/TradingProviderDetailsTest.java
src/test/java/com/fireblocks/sdk/model/TradingProviderTest.java
src/test/java/com/fireblocks/sdk/model/TransactionDirectionTest.java
src/test/java/com/fireblocks/sdk/model/TransactionFeeTest.java
@@ -3066,6 +3157,7 @@ src/test/java/com/fireblocks/sdk/model/TravelRulePersonTest.java
src/test/java/com/fireblocks/sdk/model/TravelRulePiiIVMSTest.java
src/test/java/com/fireblocks/sdk/model/TravelRulePolicyRuleResponseTest.java
src/test/java/com/fireblocks/sdk/model/TravelRulePrescreeningRuleTest.java
+src/test/java/com/fireblocks/sdk/model/TravelRuleProviderTest.java
src/test/java/com/fireblocks/sdk/model/TravelRuleResultTest.java
src/test/java/com/fireblocks/sdk/model/TravelRuleStatusEnumTest.java
src/test/java/com/fireblocks/sdk/model/TravelRuleTransactionBlockchainInfoTest.java
@@ -3102,6 +3194,7 @@ src/test/java/com/fireblocks/sdk/model/UpdateAssetUserMetadataRequestTest.java
src/test/java/com/fireblocks/sdk/model/UpdateCallbackHandlerRequestTest.java
src/test/java/com/fireblocks/sdk/model/UpdateCallbackHandlerResponseTest.java
src/test/java/com/fireblocks/sdk/model/UpdateDraftRequestTest.java
+src/test/java/com/fireblocks/sdk/model/UpdateLegalEntityRequestTest.java
src/test/java/com/fireblocks/sdk/model/UpdateTagRequestTest.java
src/test/java/com/fireblocks/sdk/model/UpdateTokenOwnershipStatusDtoTest.java
src/test/java/com/fireblocks/sdk/model/UpdateVaultAccountAssetAddressRequestTest.java
diff --git a/CHANGELOG.md b/CHANGELOG.md
deleted file mode 100644
index a91e22cb..00000000
--- a/CHANGELOG.md
+++ /dev/null
@@ -1,227 +0,0 @@
-# Changelog
-
-All notable changes to this project will be documented in this file.
-
-The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
-and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
-
-## [v15.0.0](https://github.com/fireblocks/java-sdk/compare/v14.0.0...v15.0.0) - 2026-03-15
-
-### Commits
-
-- Update publish-maven.yml [`68ddbeb`](https://github.com/fireblocks/java-sdk/commit/68ddbeba4e1034cb7f220dd96665da3d44765ec6)
-
-## [v14.0.0](https://github.com/fireblocks/java-sdk/compare/v13.0.0...v14.0.0) - 2026-02-03
-
-### Merged
-
-- Generated SDK #4746 [`#121`](https://github.com/fireblocks/java-sdk/pull/121)
-
-## [v13.0.0](https://github.com/fireblocks/java-sdk/compare/v12.1.3...v13.0.0) - 2025-11-13
-
-### Merged
-
-- Generated SDK #5834 [`#116`](https://github.com/fireblocks/java-sdk/pull/116)
-
-## [v12.1.3](https://github.com/fireblocks/java-sdk/compare/v12.1.2...v12.1.3) - 2025-10-22
-
-### Merged
-
-- Generated SDK #8293 [`#115`](https://github.com/fireblocks/java-sdk/pull/115)
-
-## [v12.1.2](https://github.com/fireblocks/java-sdk/compare/v12.1.1...v12.1.2) - 2025-09-29
-
-### Merged
-
-- Generated SDK #6061 [`#113`](https://github.com/fireblocks/java-sdk/pull/113)
-
-## [v12.1.1](https://github.com/fireblocks/java-sdk/compare/v12.1.0...v12.1.1) - 2025-09-10
-
-### Merged
-
-- Generated SDK #1410 [`#111`](https://github.com/fireblocks/java-sdk/pull/111)
-
-## [v12.1.0](https://github.com/fireblocks/java-sdk/compare/v12.0.0...v12.1.0) - 2025-09-09
-
-### Merged
-
-- Generated SDK #4521 [`#109`](https://github.com/fireblocks/java-sdk/pull/109)
-
-## [v12.0.0](https://github.com/fireblocks/java-sdk/compare/v11.2.0...v12.0.0) - 2025-09-01
-
-### Merged
-
-- Generated SDK #7741 [`#108`](https://github.com/fireblocks/java-sdk/pull/108)
-
-## [v11.2.0](https://github.com/fireblocks/java-sdk/compare/v11.1.0...v11.2.0) - 2025-08-21
-
-### Merged
-
-- Generated SDK #3302 [`#107`](https://github.com/fireblocks/java-sdk/pull/107)
-
-## [v11.1.0](https://github.com/fireblocks/java-sdk/compare/v11.0.0...v11.1.0) - 2025-08-11
-
-### Merged
-
-- Generated SDK #1782 [`#105`](https://github.com/fireblocks/java-sdk/pull/105)
-
-## [v11.0.0](https://github.com/fireblocks/java-sdk/compare/v10.4.0...v11.0.0) - 2025-07-15
-
-### Merged
-
-- Generated SDK #5610 [`#103`](https://github.com/fireblocks/java-sdk/pull/103)
-
-## [v10.4.0](https://github.com/fireblocks/java-sdk/compare/v10.3.0...v10.4.0) - 2025-06-29
-
-### Merged
-
-- Generated SDK #1492 [`#101`](https://github.com/fireblocks/java-sdk/pull/101)
-
-## [v10.3.0](https://github.com/fireblocks/java-sdk/compare/v10.2.0...v10.3.0) - 2025-06-18
-
-### Merged
-
-- Generated SDK #4009 [`#99`](https://github.com/fireblocks/java-sdk/pull/99)
-
-## [v10.2.0](https://github.com/fireblocks/java-sdk/compare/v10.1.1...v10.2.0) - 2025-06-04
-
-### Merged
-
-- Generated SDK #8912 [`#98`](https://github.com/fireblocks/java-sdk/pull/98)
-
-## [v10.1.1](https://github.com/fireblocks/java-sdk/compare/v10.1.0...v10.1.1) - 2025-05-18
-
-### Merged
-
-- Generated SDK #5019 [`#97`](https://github.com/fireblocks/java-sdk/pull/97)
-
-## [v10.1.0](https://github.com/fireblocks/java-sdk/compare/v10.0.2...v10.1.0) - 2025-05-07
-
-### Merged
-
-- Generated SDK #7076 [`#95`](https://github.com/fireblocks/java-sdk/pull/95)
-
-## [v10.0.2](https://github.com/fireblocks/java-sdk/compare/v10.0.1...v10.0.2) - 2025-04-20
-
-### Merged
-
-- Generated SDK #4794 [`#94`](https://github.com/fireblocks/java-sdk/pull/94)
-
-## [v10.0.1](https://github.com/fireblocks/java-sdk/compare/v10.0.0...v10.0.1) - 2025-04-07
-
-### Merged
-
-- Generated SDK #3065 [`#93`](https://github.com/fireblocks/java-sdk/pull/93)
-
-## [v10.0.0](https://github.com/fireblocks/java-sdk/compare/v9.0.0...v10.0.0) - 2025-03-30
-
-### Merged
-
-- Generated SDK #619 [`#90`](https://github.com/fireblocks/java-sdk/pull/90)
-
-## [v9.0.0](https://github.com/fireblocks/java-sdk/compare/v8.1.0...v9.0.0) - 2025-03-17
-
-### Merged
-
-- Generated SDK #645 [`#89`](https://github.com/fireblocks/java-sdk/pull/89)
-
-## [v8.1.0](https://github.com/fireblocks/java-sdk/compare/v8.0.1...v8.1.0) - 2025-02-24
-
-### Merged
-
-- Generated SDK #9833 [`#84`](https://github.com/fireblocks/java-sdk/pull/84)
-
-## [v8.0.1](https://github.com/fireblocks/java-sdk/compare/v8.0.0...v8.0.1) - 2025-02-12
-
-### Merged
-
-- Generated SDK #4262 [`#82`](https://github.com/fireblocks/java-sdk/pull/82)
-
-## [v8.0.0](https://github.com/fireblocks/java-sdk/compare/v7.0.0...v8.0.0) - 2025-02-02
-
-### Merged
-
-- Generated SDK #538 [`#80`](https://github.com/fireblocks/java-sdk/pull/80)
-
-## [v7.0.0](https://github.com/fireblocks/java-sdk/compare/v6.0.0...v7.0.0) - 2025-01-08
-
-### Merged
-
-- Generated SDK #8699 [`#77`](https://github.com/fireblocks/java-sdk/pull/77)
-
-## [v6.0.0](https://github.com/fireblocks/java-sdk/compare/v5.0.0...v6.0.0) - 2024-12-05
-
-### Merged
-
-- Generated SDK #1430 [`#73`](https://github.com/fireblocks/java-sdk/pull/73)
-
-## [v5.0.0](https://github.com/fireblocks/java-sdk/compare/v4.0.0...v5.0.0) - 2024-10-31
-
-### Merged
-
-- Generated SDK #5184 [`#71`](https://github.com/fireblocks/java-sdk/pull/71)
-
-## [v4.0.0](https://github.com/fireblocks/java-sdk/compare/v3.1.0...v4.0.0) - 2024-09-17
-
-### Merged
-
-- Generated SDK #237 [`#70`](https://github.com/fireblocks/java-sdk/pull/70)
-
-## [v3.1.0](https://github.com/fireblocks/java-sdk/compare/v3.0.0...v3.1.0) - 2024-07-25
-
-### Merged
-
-- Generated SDK #6749 [`#67`](https://github.com/fireblocks/java-sdk/pull/67)
-
-## [v3.0.0](https://github.com/fireblocks/java-sdk/compare/v2.1.0...v3.0.0) - 2024-07-17
-
-### Merged
-
-- Generated SDK #6152 [`#65`](https://github.com/fireblocks/java-sdk/pull/65)
-- Generated SDK #7984 [`#62`](https://github.com/fireblocks/java-sdk/pull/62)
-- Generated SDK #2873 [`#61`](https://github.com/fireblocks/java-sdk/pull/61)
-
-## [v2.1.0](https://github.com/fireblocks/java-sdk/compare/v2.0.1...v2.1.0) - 2024-06-04
-
-### Merged
-
-- Generated SDK for version COR-46191/fix_pipelines [`#24`](https://github.com/fireblocks/java-sdk/pull/24)
-- Generated SDK for version COR-46191/fix_pipelines [`#23`](https://github.com/fireblocks/java-sdk/pull/23)
-- Generated SDK for version COR-46191/fix_pipelines [`#22`](https://github.com/fireblocks/java-sdk/pull/22)
-- Generated SDK for version COR-46191/fix_pipelines [`#21`](https://github.com/fireblocks/java-sdk/pull/21)
-
-## [v2.0.1](https://github.com/fireblocks/java-sdk/compare/v2.0.0...v2.0.1) - 2024-06-04
-
-### Merged
-
-- Generated SDK for version COR-46191/fix_pipelines [`#20`](https://github.com/fireblocks/java-sdk/pull/20)
-
-## [v2.0.0](https://github.com/fireblocks/java-sdk/compare/v1.1.0...v2.0.0) - 2024-05-08
-
-### Merged
-
-- feat: add tokenization api [`#12`](https://github.com/fireblocks/java-sdk/pull/12)
-
-## [v1.1.0](https://github.com/fireblocks/java-sdk/compare/v1.0.1...v1.1.0) - 2024-04-17
-
-### Merged
-
-- feat: add cosigners beta api [`#11`](https://github.com/fireblocks/java-sdk/pull/11)
-- fix: fix readme doc headline [`#10`](https://github.com/fireblocks/java-sdk/pull/10)
-
-## [v1.0.1](https://github.com/fireblocks/java-sdk/compare/v1.0.0...v1.0.1) - 2024-04-07
-
-### Merged
-
-- Generated SDK for version v1.0.1 [`#9`](https://github.com/fireblocks/java-sdk/pull/9)
-
-## v1.0.0 - 2024-04-07
-
-### Merged
-
-- Generated SDK for version v1.0.0 GA [`#8`](https://github.com/fireblocks/java-sdk/pull/8)
-- v0.0.1-beta [`#6`](https://github.com/fireblocks/java-sdk/pull/6)
-- Update GitHub Actions workflows [`#5`](https://github.com/fireblocks/java-sdk/pull/5)
-- Generated #1189972817 [`#3`](https://github.com/fireblocks/java-sdk/pull/3)
-- Add installation instructions [`#2`](https://github.com/fireblocks/java-sdk/pull/2)
-- Added Idempotency & NCW headers support #6 [`#1`](https://github.com/fireblocks/java-sdk/pull/1)
diff --git a/README.md b/README.md
index 7c23f007..9a21d969 100644
--- a/README.md
+++ b/README.md
@@ -32,7 +32,7 @@ Add this dependency to your project's POM:
com.fireblocks.sdk
fireblocks-sdk
- 15.0.0
+ 0.0.0
compile
```
@@ -42,7 +42,7 @@ Add this dependency to your project's POM:
Add this dependency to your project's build file:
```groovy
-compile "com.fireblocks.sdk:fireblocks-sdk:15.0.0"
+compile "com.fireblocks.sdk:fireblocks-sdk:0.0.0"
```
### Others
@@ -55,7 +55,7 @@ mvn clean package
Then manually install the following JARs:
-- `target/fireblocks-sdk-15.0.0.jar`
+- `target/fireblocks-sdk-0.0.0.jar`
- `target/lib/*.jar`
@@ -152,15 +152,30 @@ Class | Method | HTTP request | Description
*BlockchainsAssetsApi* | [**registerNewAsset**](docs/BlockchainsAssetsApi.md#registerNewAsset) | **POST** /assets | Register an asset
*BlockchainsAssetsApi* | [**setAssetPrice**](docs/BlockchainsAssetsApi.md#setAssetPrice) | **POST** /assets/prices/{id} | Set asset price
*BlockchainsAssetsApi* | [**updateAssetUserMetadata**](docs/BlockchainsAssetsApi.md#updateAssetUserMetadata) | **PATCH** /assets/{id} | Update the user’s metadata for an asset
+*ComplianceApi* | [**addAddressRegistryVaultOptOuts**](docs/ComplianceApi.md#addAddressRegistryVaultOptOuts) | **POST** /address_registry/vaults | Add vault accounts to the address registry opt-out list
+*ComplianceApi* | [**assignVaultsToLegalEntity**](docs/ComplianceApi.md#assignVaultsToLegalEntity) | **POST** /legal_entities/{legalEntityId}/vaults | Assign vault accounts to a legal entity
+*ComplianceApi* | [**getAddressRegistryTenantParticipationStatus**](docs/ComplianceApi.md#getAddressRegistryTenantParticipationStatus) | **GET** /address_registry/tenant | Get address registry participation status for the authenticated workspace
+*ComplianceApi* | [**getAddressRegistryVaultOptOut**](docs/ComplianceApi.md#getAddressRegistryVaultOptOut) | **GET** /address_registry/vaults/{vaultAccountId} | Get whether a vault account is opted out of the address registry
*ComplianceApi* | [**getAmlPostScreeningPolicy**](docs/ComplianceApi.md#getAmlPostScreeningPolicy) | **GET** /screening/aml/post_screening_policy | AML - View Post-Screening Policy
*ComplianceApi* | [**getAmlScreeningPolicy**](docs/ComplianceApi.md#getAmlScreeningPolicy) | **GET** /screening/aml/screening_policy | AML - View Screening Policy
-*ComplianceApi* | [**getLegalEntityByAddress**](docs/ComplianceApi.md#getLegalEntityByAddress) | **GET** /address_registry/legal_entity | Look up legal entity by address and asset
+*ComplianceApi* | [**getLegalEntity**](docs/ComplianceApi.md#getLegalEntity) | **GET** /legal_entities/{legalEntityId} | Get a legal entity
+*ComplianceApi* | [**getLegalEntityByAddress**](docs/ComplianceApi.md#getLegalEntityByAddress) | **GET** /address_registry/legal_entity | [Deprecated] Look up legal entity by address (query parameter)
+*ComplianceApi* | [**getLegalEntityForAddress**](docs/ComplianceApi.md#getLegalEntityForAddress) | **GET** /address_registry/legal_entities/{address} | Look up legal entity by blockchain address
*ComplianceApi* | [**getPostScreeningPolicy**](docs/ComplianceApi.md#getPostScreeningPolicy) | **GET** /screening/travel_rule/post_screening_policy | Travel Rule - View Post-Screening Policy
*ComplianceApi* | [**getScreeningFullDetails**](docs/ComplianceApi.md#getScreeningFullDetails) | **GET** /screening/transaction/{txId} | Provides all the compliance details for the given screened transaction.
*ComplianceApi* | [**getScreeningPolicy**](docs/ComplianceApi.md#getScreeningPolicy) | **GET** /screening/travel_rule/screening_policy | Travel Rule - View Screening Policy
+*ComplianceApi* | [**listAddressRegistryVaultOptOuts**](docs/ComplianceApi.md#listAddressRegistryVaultOptOuts) | **GET** /address_registry/vaults | List vault-level address registry opt-outs (paginated)
+*ComplianceApi* | [**listLegalEntities**](docs/ComplianceApi.md#listLegalEntities) | **GET** /legal_entities | List legal entities (Paginated)
+*ComplianceApi* | [**listVaultsForLegalEntity**](docs/ComplianceApi.md#listVaultsForLegalEntity) | **GET** /legal_entities/{legalEntityId}/vaults | List vault accounts for a legal entity (Paginated)
+*ComplianceApi* | [**optInAddressRegistryTenant**](docs/ComplianceApi.md#optInAddressRegistryTenant) | **POST** /address_registry/tenant | Opt the workspace in to the address registry
+*ComplianceApi* | [**optOutAddressRegistryTenant**](docs/ComplianceApi.md#optOutAddressRegistryTenant) | **DELETE** /address_registry/tenant | Opt the workspace out of the address registry
+*ComplianceApi* | [**registerLegalEntity**](docs/ComplianceApi.md#registerLegalEntity) | **POST** /legal_entities | Register a new legal entity
+*ComplianceApi* | [**removeAddressRegistryVaultOptOut**](docs/ComplianceApi.md#removeAddressRegistryVaultOptOut) | **DELETE** /address_registry/vaults/{vaultAccountId} | Remove a single vault account from the address registry opt-out list
+*ComplianceApi* | [**removeAllAddressRegistryVaultOptOuts**](docs/ComplianceApi.md#removeAllAddressRegistryVaultOptOuts) | **DELETE** /address_registry/vaults | Remove all vault-level address registry opt-outs for the workspace
*ComplianceApi* | [**retryRejectedTransactionBypassScreeningChecks**](docs/ComplianceApi.md#retryRejectedTransactionBypassScreeningChecks) | **POST** /screening/transaction/{txId}/bypass_screening_policy | Calling the \"Bypass Screening Policy\" API endpoint triggers a new transaction, with the API user as the initiator, bypassing the screening policy check
*ComplianceApi* | [**setAmlVerdict**](docs/ComplianceApi.md#setAmlVerdict) | **POST** /screening/aml/verdict/manual | Set AML Verdict for Manual Screening Verdict.
*ComplianceApi* | [**updateAmlScreeningConfiguration**](docs/ComplianceApi.md#updateAmlScreeningConfiguration) | **PUT** /screening/aml/policy_configuration | Update AML Configuration
+*ComplianceApi* | [**updateLegalEntity**](docs/ComplianceApi.md#updateLegalEntity) | **PUT** /legal_entities/{legalEntityId} | Update legal entity
*ComplianceApi* | [**updateScreeningConfiguration**](docs/ComplianceApi.md#updateScreeningConfiguration) | **PUT** /screening/configurations | Tenant - Screening Configuration
*ComplianceApi* | [**updateTravelRuleConfig**](docs/ComplianceApi.md#updateTravelRuleConfig) | **PUT** /screening/travel_rule/policy_configuration | Update Travel Rule Configuration
*ComplianceScreeningConfigurationApi* | [**getAmlScreeningConfiguration**](docs/ComplianceScreeningConfigurationApi.md#getAmlScreeningConfiguration) | **GET** /screening/aml/policy_configuration | Get AML Screening Policy Configuration
@@ -354,6 +369,7 @@ Class | Method | HTTP request | Description
*StakingApi* | [**getChainInfo**](docs/StakingApi.md#getChainInfo) | **GET** /staking/chains/{chainDescriptor}/chainInfo | Get chain-level staking parameters
*StakingApi* | [**getChains**](docs/StakingApi.md#getChains) | **GET** /staking/chains | List supported staking chains
*StakingApi* | [**getDelegationById**](docs/StakingApi.md#getDelegationById) | **GET** /staking/positions/{id} | Get position details
+*StakingApi* | [**getPositions**](docs/StakingApi.md#getPositions) | **GET** /staking/positions_paginated | List staking positions (Paginated)
*StakingApi* | [**getProviders**](docs/StakingApi.md#getProviders) | **GET** /staking/providers | List staking providers
*StakingApi* | [**getSummary**](docs/StakingApi.md#getSummary) | **GET** /staking/positions/summary | Get positions summary
*StakingApi* | [**getSummaryByVault**](docs/StakingApi.md#getSummaryByVault) | **GET** /staking/positions/summary/vaults | Get positions summary by vault
@@ -422,6 +438,7 @@ Class | Method | HTTP request | Description
*TradingBetaApi* | [**createQuote**](docs/TradingBetaApi.md#createQuote) | **POST** /trading/quotes | Create a quote
*TradingBetaApi* | [**getOrder**](docs/TradingBetaApi.md#getOrder) | **GET** /trading/orders/{orderId} | Get order details
*TradingBetaApi* | [**getOrders**](docs/TradingBetaApi.md#getOrders) | **GET** /trading/orders | Get orders
+*TradingBetaApi* | [**getTradingProviderById**](docs/TradingBetaApi.md#getTradingProviderById) | **GET** /trading/providers/{providerId} | Get trading provider by ID
*TradingBetaApi* | [**getTradingProviders**](docs/TradingBetaApi.md#getTradingProviders) | **GET** /trading/providers | Get providers
*TransactionsApi* | [**cancelTransaction**](docs/TransactionsApi.md#cancelTransaction) | **POST** /transactions/{txId}/cancel | Cancel a transaction
*TransactionsApi* | [**createTransaction**](docs/TransactionsApi.md#createTransaction) | **POST** /transactions | Create a new transaction
@@ -517,7 +534,8 @@ Class | Method | HTTP request | Description
- [AccountAccess](docs/AccountAccess.md)
- [AccountBase](docs/AccountBase.md)
- [AccountBasedAccessProvider](docs/AccountBasedAccessProvider.md)
- - [AccountBasedAccessProviderDetails](docs/AccountBasedAccessProviderDetails.md)
+ - [AccountBasedAccessProviderInfo](docs/AccountBasedAccessProviderInfo.md)
+ - [AccountBasedProviderDetails](docs/AccountBasedProviderDetails.md)
- [AccountConfig](docs/AccountConfig.md)
- [AccountHolderDetails](docs/AccountHolderDetails.md)
- [AccountIdentifier](docs/AccountIdentifier.md)
@@ -543,8 +561,20 @@ Class | Method | HTTP request | Description
- [AddressBalanceItemDto](docs/AddressBalanceItemDto.md)
- [AddressBalancePagedResponse](docs/AddressBalancePagedResponse.md)
- [AddressNotAvailableError](docs/AddressNotAvailableError.md)
+ - [AddressRegistryAddVaultOptOutsRequest](docs/AddressRegistryAddVaultOptOutsRequest.md)
+ - [AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner](docs/AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner.md)
+ - [AddressRegistryAddVaultOptOutsResponse](docs/AddressRegistryAddVaultOptOutsResponse.md)
- [AddressRegistryError](docs/AddressRegistryError.md)
+ - [AddressRegistryGetVaultOptOutResponse](docs/AddressRegistryGetVaultOptOutResponse.md)
- [AddressRegistryLegalEntity](docs/AddressRegistryLegalEntity.md)
+ - [AddressRegistryLegalEntityLegacy](docs/AddressRegistryLegalEntityLegacy.md)
+ - [AddressRegistryListVaultOptOutsResponse](docs/AddressRegistryListVaultOptOutsResponse.md)
+ - [AddressRegistryRemoveAllVaultOptOutsResponse](docs/AddressRegistryRemoveAllVaultOptOutsResponse.md)
+ - [AddressRegistryRemoveVaultOptOutResponse](docs/AddressRegistryRemoveVaultOptOutResponse.md)
+ - [AddressRegistryTenantRegistryResponse](docs/AddressRegistryTenantRegistryResponse.md)
+ - [AddressRegistryTravelRuleProvider](docs/AddressRegistryTravelRuleProvider.md)
+ - [AddressRegistryVaultListOrder](docs/AddressRegistryVaultListOrder.md)
+ - [AddressRegistryVaultOptOutItem](docs/AddressRegistryVaultOptOutItem.md)
- [AlertExposureTypeEnum](docs/AlertExposureTypeEnum.md)
- [AlertLevelEnum](docs/AlertLevelEnum.md)
- [AmlAlert](docs/AmlAlert.md)
@@ -595,10 +625,11 @@ Class | Method | HTTP request | Description
- [AssetPriceResponse](docs/AssetPriceResponse.md)
- [AssetResponse](docs/AssetResponse.md)
- [AssetScope](docs/AssetScope.md)
- - [AssetTypeEnum](docs/AssetTypeEnum.md)
- [AssetTypeResponse](docs/AssetTypeResponse.md)
- [AssetTypesConfigInner](docs/AssetTypesConfigInner.md)
- [AssetWallet](docs/AssetWallet.md)
+ - [AssignVaultsToLegalEntityRequest](docs/AssignVaultsToLegalEntityRequest.md)
+ - [AssignVaultsToLegalEntityResponse](docs/AssignVaultsToLegalEntityResponse.md)
- [AuditLogData](docs/AuditLogData.md)
- [AuditorData](docs/AuditorData.md)
- [AuthorizationGroups](docs/AuthorizationGroups.md)
@@ -624,7 +655,6 @@ Class | Method | HTTP request | Description
- [CallbackHandler](docs/CallbackHandler.md)
- [CallbackHandlerRequest](docs/CallbackHandlerRequest.md)
- [CancelTransactionResponse](docs/CancelTransactionResponse.md)
- - [Capability](docs/Capability.md)
- [ChainDescriptor](docs/ChainDescriptor.md)
- [ChainInfoResponse](docs/ChainInfoResponse.md)
- [ChannelDvnConfigWithConfirmations](docs/ChannelDvnConfigWithConfirmations.md)
@@ -774,7 +804,8 @@ Class | Method | HTTP request | Description
- [DestinationTransferPeerPathResponse](docs/DestinationTransferPeerPathResponse.md)
- [DirectAccess](docs/DirectAccess.md)
- [DirectAccessProvider](docs/DirectAccessProvider.md)
- - [DirectAccessProviderDetails](docs/DirectAccessProviderDetails.md)
+ - [DirectAccessProviderInfo](docs/DirectAccessProviderInfo.md)
+ - [DirectProviderDetails](docs/DirectProviderDetails.md)
- [DisbursementAmountInstruction](docs/DisbursementAmountInstruction.md)
- [DisbursementConfigOperation](docs/DisbursementConfigOperation.md)
- [DisbursementInstruction](docs/DisbursementInstruction.md)
@@ -840,6 +871,7 @@ Class | Method | HTTP request | Description
- [ExecutionOperationStatus](docs/ExecutionOperationStatus.md)
- [ExecutionRequestBaseDetails](docs/ExecutionRequestBaseDetails.md)
- [ExecutionRequestDetails](docs/ExecutionRequestDetails.md)
+ - [ExecutionRequestDetailsType](docs/ExecutionRequestDetailsType.md)
- [ExecutionResponseBaseDetails](docs/ExecutionResponseBaseDetails.md)
- [ExecutionResponseDetails](docs/ExecutionResponseDetails.md)
- [ExecutionScreeningOperation](docs/ExecutionScreeningOperation.md)
@@ -906,6 +938,7 @@ Class | Method | HTTP request | Description
- [GetValidationKeyResponseDto](docs/GetValidationKeyResponseDto.md)
- [GetWhitelistIpAddressesResponse](docs/GetWhitelistIpAddressesResponse.md)
- [GetWorkspaceStatusResponse](docs/GetWorkspaceStatusResponse.md)
+ - [GleifData](docs/GleifData.md)
- [HttpContractDoesNotExistError](docs/HttpContractDoesNotExistError.md)
- [IbanAddress](docs/IbanAddress.md)
- [IbanDestination](docs/IbanDestination.md)
@@ -959,14 +992,23 @@ Class | Method | HTTP request | Description
- [LegacyPublishDraftRequest](docs/LegacyPublishDraftRequest.md)
- [LegacyPublishResult](docs/LegacyPublishResult.md)
- [LegacySrcOrDestAttributesInner](docs/LegacySrcOrDestAttributesInner.md)
+ - [LegalEntityRegistration](docs/LegalEntityRegistration.md)
+ - [LeiStatus](docs/LeiStatus.md)
- [LinkedTokensCount](docs/LinkedTokensCount.md)
- [ListAssetsResponse](docs/ListAssetsResponse.md)
- [ListBlockchainsResponse](docs/ListBlockchainsResponse.md)
+ - [ListLegalEntitiesResponse](docs/ListLegalEntitiesResponse.md)
- [ListOwnedCollectionsResponse](docs/ListOwnedCollectionsResponse.md)
- [ListOwnedTokensResponse](docs/ListOwnedTokensResponse.md)
+ - [ListVaultsForRegistrationResponse](docs/ListVaultsForRegistrationResponse.md)
- [LocalBankTransferAfricaAddress](docs/LocalBankTransferAfricaAddress.md)
- [LocalBankTransferAfricaDestination](docs/LocalBankTransferAfricaDestination.md)
- [Manifest](docs/Manifest.md)
+ - [ManifestBase](docs/ManifestBase.md)
+ - [ManifestOrder](docs/ManifestOrder.md)
+ - [ManifestOrderInfo](docs/ManifestOrderInfo.md)
+ - [ManifestQuote](docs/ManifestQuote.md)
+ - [ManifestQuoteInfo](docs/ManifestQuoteInfo.md)
- [MarketExecutionRequestDetails](docs/MarketExecutionRequestDetails.md)
- [MarketExecutionResponseDetails](docs/MarketExecutionResponseDetails.md)
- [MarketRequoteRequestDetails](docs/MarketRequoteRequestDetails.md)
@@ -1073,6 +1115,7 @@ Class | Method | HTTP request | Description
- [PolicyValidation](docs/PolicyValidation.md)
- [PolicyVerdictActionEnum](docs/PolicyVerdictActionEnum.md)
- [PolicyVerdictActionEnum2](docs/PolicyVerdictActionEnum2.md)
+ - [Position](docs/Position.md)
- [PostalAddress](docs/PostalAddress.md)
- [PreScreening](docs/PreScreening.md)
- [PrefundedSettlement](docs/PrefundedSettlement.md)
@@ -1100,6 +1143,7 @@ Class | Method | HTTP request | Description
- [ReadCallFunctionDtoAbiFunction](docs/ReadCallFunctionDtoAbiFunction.md)
- [RecipientHandle](docs/RecipientHandle.md)
- [RedeemFundsToLinkedDDAResponse](docs/RedeemFundsToLinkedDDAResponse.md)
+ - [RegisterLegalEntityRequest](docs/RegisterLegalEntityRequest.md)
- [RegisterNewAssetRequest](docs/RegisterNewAssetRequest.md)
- [ReissueMultichainTokenRequest](docs/ReissueMultichainTokenRequest.md)
- [RelatedRequest](docs/RelatedRequest.md)
@@ -1145,7 +1189,6 @@ Class | Method | HTTP request | Description
- [ScreeningOperationType](docs/ScreeningOperationType.md)
- [ScreeningPolicyResponse](docs/ScreeningPolicyResponse.md)
- [ScreeningProviderRulesConfigurationResponse](docs/ScreeningProviderRulesConfigurationResponse.md)
- - [ScreeningRiskLevelEnum](docs/ScreeningRiskLevelEnum.md)
- [ScreeningTRLinkAmount](docs/ScreeningTRLinkAmount.md)
- [ScreeningTRLinkMissingTrmDecision](docs/ScreeningTRLinkMissingTrmDecision.md)
- [ScreeningTRLinkMissingTrmRule](docs/ScreeningTRLinkMissingTrmRule.md)
@@ -1189,6 +1232,7 @@ Class | Method | HTTP request | Description
- [SettlementRequestBody](docs/SettlementRequestBody.md)
- [SettlementResponse](docs/SettlementResponse.md)
- [SettlementSourceAccount](docs/SettlementSourceAccount.md)
+ - [SettlementTypeEnum](docs/SettlementTypeEnum.md)
- [Side](docs/Side.md)
- [SignedMessage](docs/SignedMessage.md)
- [SignedMessageSignature](docs/SignedMessageSignature.md)
@@ -1239,6 +1283,7 @@ Class | Method | HTTP request | Description
- [StEthBlockchainData](docs/StEthBlockchainData.md)
- [StakeRequest](docs/StakeRequest.md)
- [StakeResponse](docs/StakeResponse.md)
+ - [StakingPositionsPaginatedResponse](docs/StakingPositionsPaginatedResponse.md)
- [StakingProvider](docs/StakingProvider.md)
- [Status](docs/Status.md)
- [StellarRippleCreateParamsDto](docs/StellarRippleCreateParamsDto.md)
@@ -1355,6 +1400,7 @@ Class | Method | HTTP request | Description
- [TradingAccountType](docs/TradingAccountType.md)
- [TradingErrorSchema](docs/TradingErrorSchema.md)
- [TradingProvider](docs/TradingProvider.md)
+ - [TradingProviderDetails](docs/TradingProviderDetails.md)
- [Transaction](docs/Transaction.md)
- [TransactionDirection](docs/TransactionDirection.md)
- [TransactionFee](docs/TransactionFee.md)
@@ -1412,6 +1458,7 @@ Class | Method | HTTP request | Description
- [TravelRulePiiIVMS](docs/TravelRulePiiIVMS.md)
- [TravelRulePolicyRuleResponse](docs/TravelRulePolicyRuleResponse.md)
- [TravelRulePrescreeningRule](docs/TravelRulePrescreeningRule.md)
+ - [TravelRuleProvider](docs/TravelRuleProvider.md)
- [TravelRuleResult](docs/TravelRuleResult.md)
- [TravelRuleStatusEnum](docs/TravelRuleStatusEnum.md)
- [TravelRuleTransactionBlockchainInfo](docs/TravelRuleTransactionBlockchainInfo.md)
@@ -1448,6 +1495,7 @@ Class | Method | HTTP request | Description
- [UpdateCallbackHandlerRequest](docs/UpdateCallbackHandlerRequest.md)
- [UpdateCallbackHandlerResponse](docs/UpdateCallbackHandlerResponse.md)
- [UpdateDraftRequest](docs/UpdateDraftRequest.md)
+ - [UpdateLegalEntityRequest](docs/UpdateLegalEntityRequest.md)
- [UpdateTagRequest](docs/UpdateTagRequest.md)
- [UpdateTokenOwnershipStatusDto](docs/UpdateTokenOwnershipStatusDto.md)
- [UpdateVaultAccountAssetAddressRequest](docs/UpdateVaultAccountAssetAddressRequest.md)
diff --git a/api/openapi.yaml b/api/openapi.yaml
index 1d6e3638..50e8db36 100644
--- a/api/openapi.yaml
+++ b/api/openapi.yaml
@@ -18932,8 +18932,9 @@ paths:
/staking/chains/{chainDescriptor}/consolidate:
post:
description: |-
- Consolidates the source staking position into the destination, merging the balance into the destination and closing the source position once complete. Both positions must be from the same validator provider and same vault account. On chain, this translates into a consolidation transaction, where the source validator is consolidated into the destination validator. Supported chains: Ethereum (ETH) only.
+ Consolidates the source staking position into the destination, merging the balance into the destination and closing the source position once complete. Both positions must be from the same funding vaults account (i.e. same withdrawals credentials). On chain, this translates into a consolidation transaction, where the source validator is consolidated into the destination validator. Supported chains: Ethereum (ETH) only.
Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Approver, Editor.
+ **Note:** This endpoint is currently in beta and might be subject to changes.
operationId: consolidate
parameters:
- description: "Protocol identifier for the staking operation (e.g., ETH)."
@@ -19075,6 +19076,17 @@ paths:
schema:
$ref: "#/components/schemas/ChainDescriptor"
style: form
+ - description: Filter positions by vault account ID.
+ explode: true
+ in: query
+ name: vaultAccountId
+ required: false
+ schema:
+ example: "1"
+ format: numeric
+ type: string
+ x-fb-entity: vault_account
+ style: form
responses:
"200":
content:
@@ -19146,19 +19158,181 @@ paths:
\ = fireblocks.staking.getAllDelegations(stakingApiGetAllDelegationsRequest);"
name: Fireblocks SDK TypeScript example
- language: java
- code: CompletableFuture>> response = fireblocks.staking().getAllDelegations(chainDescriptor);
+ code: "CompletableFuture>> response = fireblocks.staking().getAllDelegations(chainDescriptor,\
+ \ vaultAccountId);"
name: Fireblocks SDK Java example
- language: python
- code: response = fireblocks.staking.get_all_delegations(chain_descriptor);
+ code: "response = fireblocks.staking.get_all_delegations(chain_descriptor,\
+ \ vault_account_id);"
name: Fireblocks SDK Python example
x-codeSamples:
- lang: TypeScript
source: "const response: Promise>\
\ = fireblocks.staking.getAllDelegations(stakingApiGetAllDelegationsRequest);"
- lang: Java
- source: CompletableFuture>> response = fireblocks.staking().getAllDelegations(chainDescriptor);
+ source: "CompletableFuture>> response = fireblocks.staking().getAllDelegations(chainDescriptor,\
+ \ vaultAccountId);"
- lang: Python
- source: response = fireblocks.staking.get_all_delegations(chain_descriptor);
+ source: "response = fireblocks.staking.get_all_delegations(chain_descriptor,\
+ \ vault_account_id);"
+ x-accepts:
+ - application/json
+ /staking/positions_paginated:
+ get:
+ description: |-
+ Returns staking positions with core details: amounts, rewards, status, chain, and vault. It supports cursor-based pagination for efficient data retrieval. This endpoint always returns a paginated response with {data, next} structure.
+ Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
+ operationId: getPositions
+ parameters:
+ - description: "Protocol identifier to filter positions (e.g., ATOM_COS/AXL/CELESTIA}).\
+ \ If omitted, positions across all supported chains are returned."
+ explode: true
+ in: query
+ name: chainDescriptor
+ required: false
+ schema:
+ $ref: "#/components/schemas/ChainDescriptor"
+ style: form
+ - description: "Filter positions by Fireblocks vault account ID. If omitted,\
+ \ positions across all vault accounts are returned."
+ example: "10"
+ explode: true
+ in: query
+ name: vaultAccountId
+ required: false
+ schema:
+ format: numeric
+ type: string
+ x-fb-entity: vault_account
+ style: form
+ - description: "Number of results per page. When provided, the response returns\
+ \ a paginated object with {data, next}. If omitted, all results are returned\
+ \ as an array."
+ explode: true
+ in: query
+ name: pageSize
+ required: true
+ schema:
+ default: 10
+ example: 10
+ format: int32
+ maximum: 100
+ minimum: 1
+ type: integer
+ style: form
+ - description: Cursor for the next page of results. Use the value from the 'next'
+ field in the previous response.
+ explode: true
+ in: query
+ name: pageCursor
+ required: false
+ schema:
+ example: eJ0eXAiOiJKV1QiLCJhbGcOiJIUzI1NiJ9
+ type: string
+ style: form
+ - description: ASC / DESC ordering (default DESC)
+ explode: true
+ in: query
+ name: order
+ required: false
+ schema:
+ default: DESC
+ enum:
+ - ASC
+ - DESC
+ example: ASC
+ type: string
+ style: form
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/StakingPositionsPaginatedResponse"
+ description: Positions retrieved successfully with pagination.
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: "Bad request: missing/invalid fields, unsupported amount, or\
+ \ malformed payload."
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: "Forbidden: insufficient permissions, disabled feature, or\
+ \ restricted provider/validator."
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: "Not found: requested resource does not exist (e.g., position,\
+ \ validator, provider, or wallet)."
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "429":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: "Rate limit exceeded: slow down and retry later."
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: Internal error while processing the request.
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ default:
+ $ref: "#/components/responses/Error"
+ summary: List staking positions (Paginated)
+ tags:
+ - Staking
+ x-rate-limit-category: query
+ x-readme:
+ code-samples:
+ - language: typescript
+ code: "const response: Promise>\
+ \ = fireblocks.staking.getPositions(stakingApiGetPositionsRequest);"
+ name: Fireblocks SDK TypeScript example
+ - language: java
+ code: "CompletableFuture>\
+ \ response = fireblocks.staking().getPositions(pageSize, chainDescriptor,\
+ \ vaultAccountId, pageCursor, order);"
+ name: Fireblocks SDK Java example
+ - language: python
+ code: "response = fireblocks.staking.get_positions(page_size, chain_descriptor,\
+ \ vault_account_id, page_cursor, order);"
+ name: Fireblocks SDK Python example
+ x-codeSamples:
+ - lang: TypeScript
+ source: "const response: Promise>\
+ \ = fireblocks.staking.getPositions(stakingApiGetPositionsRequest);"
+ - lang: Java
+ source: "CompletableFuture>\
+ \ response = fireblocks.staking().getPositions(pageSize, chainDescriptor,\
+ \ vaultAccountId, pageCursor, order);"
+ - lang: Python
+ source: "response = fireblocks.staking.get_positions(page_size, chain_descriptor,\
+ \ vault_account_id, page_cursor, order);"
x-accepts:
- application/json
/staking/positions/summary:
@@ -19781,6 +19955,114 @@ paths:
\ page_cursor);"
x-accepts:
- application/json
+ /trading/providers/{providerId}:
+ get:
+ description: |
+ Retrieve detailed information about a specific provider including its full manifest with order/quote requirements.
+
+ **Note:** These endpoints are currently in beta and might be subject to changes. If you want to participate and learn more about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com.
+
+ **Endpoint Permission:** Owner, Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer.
+
+ For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes).
+ operationId: getTradingProviderById
+ parameters:
+ - description: The unique identifier of the provider.
+ explode: false
+ in: path
+ name: providerId
+ required: true
+ schema:
+ minLength: 1
+ type: string
+ style: simple
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/TradingProviderDetails"
+ description: Provider details
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/TradingErrorSchema"
+ description: Unauthorized. Missing / invalid JWT token in Authorization
+ header.
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/TradingErrorSchema"
+ description: "Forbidden - insufficient permissions, disabled feature, or\
+ \ restricted access."
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/TradingErrorSchema"
+ description: Provider not found.
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "429":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/TradingErrorSchema"
+ description: Rate limit exceeded - slow down and retry later.
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "5XX":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/TradingErrorSchema"
+ description: Internal error while processing the request.
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ default:
+ $ref: "#/components/responses/Error"
+ summary: Get trading provider by ID
+ tags:
+ - Trading (Beta)
+ x-rate-limit-category: read
+ x-readme:
+ code-samples:
+ - language: typescript
+ code: "const response: Promise>\
+ \ = fireblocks.tradingBeta.getTradingProviderById(tradingBetaApiGetTradingProviderByIdRequest);"
+ name: Fireblocks SDK TypeScript example
+ - language: java
+ code: CompletableFuture> response =
+ fireblocks.tradingBeta().getTradingProviderById(providerId);
+ name: Fireblocks SDK Java example
+ - language: python
+ code: response = fireblocks.trading_beta.get_trading_provider_by_id(provider_id);
+ name: Fireblocks SDK Python example
+ x-codeSamples:
+ - lang: TypeScript
+ source: "const response: Promise>\
+ \ = fireblocks.tradingBeta.getTradingProviderById(tradingBetaApiGetTradingProviderByIdRequest);"
+ - lang: Java
+ source: CompletableFuture> response =
+ fireblocks.tradingBeta().getTradingProviderById(providerId);
+ - lang: Python
+ source: response = fireblocks.trading_beta.get_trading_provider_by_id(provider_id);
+ x-accepts:
+ - application/json
/trading/quotes:
post:
description: |-
@@ -20399,6 +20681,7 @@ paths:
- APECHAIN_TEST
- CRONOS
- CRONOS_TEST
+ - ROBINHOOD_CHAIN_TESTNET_TEST
type: string
style: form
- description: A comma separated list of Vault Account IDs. Up to 100 are allowed
@@ -20623,6 +20906,7 @@ paths:
- KLAY_KAIA_TEST
- APECHAIN
- APECHAIN_TEST
+ - ROBINHOOD_CHAIN_TESTNET_TEST
type: string
style: form
- description: Vault account filter
@@ -21795,9 +22079,12 @@ paths:
- application/json
/address_registry/legal_entity:
get:
- description: "Returns the legal entity (company name, jurisdiction, companyId)\
- \ for the given blockchain address and optional asset. Both the requester\
- \ and the owner of the address must be opted in to the address registry."
+ deprecated: true
+ description: |-
+ **Deprecated** — use `GET /v1/address_registry/legal_entities/{address}` instead.
+ Here `address` is a **query** parameter; the replacement uses a path segment.
+ The response includes only `companyName`, `countryCode`, and `companyId`. The replacement returns additional fields documented on that operation.
+ Optional **`asset`** is supported here only (not on the replacement path).
operationId: getLegalEntityByAddress
parameters:
- description: Blockchain address to look up
@@ -21809,7 +22096,7 @@ paths:
example: 0x742d35cc6634c0532925a3b844bc9e7595f0beb0
type: string
style: form
- - description: "Asset ID (e.g. ETH, BTC). Optional."
+ - description: Optional asset identifier (this deprecated operation only).
explode: true
in: query
name: asset
@@ -21818,6 +22105,95 @@ paths:
example: ETH
type: string
style: form
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/AddressRegistryLegalEntityLegacy"
+ description: Legal entity found
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/AddressRegistryError"
+ description: Bad request – missing or invalid address
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/AddressRegistryError"
+ description: Forbidden – the authenticated workspace is not opted in to
+ the address registry (error code 2140)
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/AddressRegistryError"
+ description: "Not found (error code 2142) — unresolved address, no legal\
+ \ entity for a resolved address, or the same not-found outcome in other\
+ \ cases."
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ default:
+ $ref: "#/components/responses/Error"
+ summary: "[Deprecated] Look up legal entity by address (query parameter)"
+ tags:
+ - Compliance
+ x-rate-limit-category: high_compute
+ x-readme:
+ code-samples:
+ - language: typescript
+ code: "const response: Promise>\
+ \ = fireblocks.compliance.getLegalEntityByAddress(complianceApiGetLegalEntityByAddressRequest);"
+ name: Fireblocks SDK TypeScript example
+ - language: java
+ code: "CompletableFuture>\
+ \ response = fireblocks.compliance().getLegalEntityByAddress(address,\
+ \ asset);"
+ name: Fireblocks SDK Java example
+ - language: python
+ code: "response = fireblocks.compliance.get_legal_entity_by_address(address,\
+ \ asset);"
+ name: Fireblocks SDK Python example
+ x-codeSamples:
+ - lang: TypeScript
+ source: "const response: Promise>\
+ \ = fireblocks.compliance.getLegalEntityByAddress(complianceApiGetLegalEntityByAddressRequest);"
+ - lang: Java
+ source: "CompletableFuture>\
+ \ response = fireblocks.compliance().getLegalEntityByAddress(address, asset);"
+ - lang: Python
+ source: "response = fireblocks.compliance.get_legal_entity_by_address(address,\
+ \ asset);"
+ x-accepts:
+ - application/json
+ /address_registry/legal_entities/{address}:
+ get:
+ description: |-
+ Returns legal entity information for the given blockchain address. URL-encode `{address}` when required.
+ Prefer this operation over the deprecated `GET /v1/address_registry/legal_entity?address=…`, which returns only `companyName`, `countryCode`, and `companyId`. This operation adds verification status, LEI, Travel Rule providers, and contact email (see response properties).
+ operationId: getLegalEntityForAddress
+ parameters:
+ - description: Blockchain address to look up
+ explode: false
+ in: path
+ name: address
+ required: true
+ schema:
+ example: 0x742d35cc6634c0532925a3b844bc9e7595f0beb0
+ type: string
+ style: simple
responses:
"200":
content:
@@ -21833,7 +22209,7 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/AddressRegistryError"
- description: Bad request – missing or invalid address or asset
+ description: Bad request – missing or invalid address
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
@@ -21842,8 +22218,8 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/AddressRegistryError"
- description: "Forbidden – requester or address owner not opted in to the\
- \ address registry (error codes 2140, 2141)"
+ description: Forbidden – the authenticated workspace is not opted in to
+ the address registry (error code 2140)
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
@@ -21852,40 +22228,534 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/AddressRegistryError"
- description: Address not resolved or entity not found (error code 2142)
+ description: "Not found (error code 2142) — unresolved address, no legal\
+ \ entity for a resolved address, or the same not-found outcome in other\
+ \ cases."
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
default:
$ref: "#/components/responses/Error"
- summary: Look up legal entity by address and asset
+ summary: Look up legal entity by blockchain address
tags:
- Compliance
- x-rate-limit-category: read
+ x-rate-limit-category: high_compute
x-readme:
code-samples:
- language: typescript
code: "const response: Promise>\
- \ = fireblocks.compliance.getLegalEntityByAddress(complianceApiGetLegalEntityByAddressRequest);"
+ \ = fireblocks.compliance.getLegalEntityForAddress(complianceApiGetLegalEntityForAddressRequest);"
name: Fireblocks SDK TypeScript example
- language: java
- code: "CompletableFuture> response\
- \ = fireblocks.compliance().getLegalEntityByAddress(address, asset);"
+ code: CompletableFuture> response
+ = fireblocks.compliance().getLegalEntityForAddress(address);
name: Fireblocks SDK Java example
- language: python
- code: "response = fireblocks.compliance.get_legal_entity_by_address(address,\
- \ asset);"
+ code: response = fireblocks.compliance.get_legal_entity_for_address(address);
name: Fireblocks SDK Python example
x-codeSamples:
- lang: TypeScript
source: "const response: Promise>\
- \ = fireblocks.compliance.getLegalEntityByAddress(complianceApiGetLegalEntityByAddressRequest);"
+ \ = fireblocks.compliance.getLegalEntityForAddress(complianceApiGetLegalEntityForAddressRequest);"
- lang: Java
- source: "CompletableFuture> response\
- \ = fireblocks.compliance().getLegalEntityByAddress(address, asset);"
+ source: CompletableFuture> response
+ = fireblocks.compliance().getLegalEntityForAddress(address);
- lang: Python
- source: "response = fireblocks.compliance.get_legal_entity_by_address(address,\
- \ asset);"
+ source: response = fireblocks.compliance.get_legal_entity_for_address(address);
+ x-accepts:
+ - application/json
+ /address_registry/tenant:
+ delete:
+ description: Opts the workspace out. No request body. Response uses the same
+ JSON shape as GET; status is OPTED_OUT.
+ operationId: optOutAddressRegistryTenant
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/AddressRegistryTenantRegistryResponse"
+ description: Success; response body includes status OPTED_OUT
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ default:
+ $ref: "#/components/responses/Error"
+ summary: Opt the workspace out of the address registry
+ tags:
+ - Compliance
+ x-rate-limit-category: write
+ x-readme:
+ code-samples:
+ - language: typescript
+ code: "const response: Promise>\
+ \ = fireblocks.compliance.optOutAddressRegistryTenant();"
+ name: Fireblocks SDK TypeScript example
+ - language: java
+ code: CompletableFuture>
+ response = fireblocks.compliance().optOutAddressRegistryTenant();
+ name: Fireblocks SDK Java example
+ - language: python
+ code: response = fireblocks.compliance.opt_out_address_registry_tenant();
+ name: Fireblocks SDK Python example
+ x-codeSamples:
+ - lang: TypeScript
+ source: "const response: Promise>\
+ \ = fireblocks.compliance.optOutAddressRegistryTenant();"
+ - lang: Java
+ source: CompletableFuture>
+ response = fireblocks.compliance().optOutAddressRegistryTenant();
+ - lang: Python
+ source: response = fireblocks.compliance.opt_out_address_registry_tenant();
+ x-accepts:
+ - application/json
+ get:
+ description: Returns whether the workspace is `OPTED_IN` or `OPTED_OUT` of the
+ address registry.
+ operationId: getAddressRegistryTenantParticipationStatus
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/AddressRegistryTenantRegistryResponse"
+ description: Participation status in the response body
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ default:
+ $ref: "#/components/responses/Error"
+ summary: Get address registry participation status for the authenticated workspace
+ tags:
+ - Compliance
+ x-rate-limit-category: read
+ x-readme:
+ code-samples:
+ - language: typescript
+ code: "const response: Promise>\
+ \ = fireblocks.compliance.getAddressRegistryTenantParticipationStatus();"
+ name: Fireblocks SDK TypeScript example
+ - language: java
+ code: CompletableFuture>
+ response = fireblocks.compliance().getAddressRegistryTenantParticipationStatus();
+ name: Fireblocks SDK Java example
+ - language: python
+ code: response = fireblocks.compliance.get_address_registry_tenant_participation_status();
+ name: Fireblocks SDK Python example
+ x-codeSamples:
+ - lang: TypeScript
+ source: "const response: Promise>\
+ \ = fireblocks.compliance.getAddressRegistryTenantParticipationStatus();"
+ - lang: Java
+ source: CompletableFuture>
+ response = fireblocks.compliance().getAddressRegistryTenantParticipationStatus();
+ - lang: Python
+ source: response = fireblocks.compliance.get_address_registry_tenant_participation_status();
+ x-accepts:
+ - application/json
+ post:
+ description: Opts the workspace in. No request body. Response uses the same
+ JSON shape as GET; status is OPTED_IN.
+ operationId: optInAddressRegistryTenant
+ parameters:
+ - description: "A unique identifier for the request. If the request is sent\
+ \ multiple times with the same idempotency key, the server will return the\
+ \ same response as the first request. The idempotency key is valid for 24\
+ \ hours."
+ explode: false
+ in: header
+ name: Idempotency-Key
+ required: false
+ schema:
+ type: string
+ style: simple
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/AddressRegistryTenantRegistryResponse"
+ description: Success; response body includes status OPTED_IN
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ default:
+ $ref: "#/components/responses/Error"
+ summary: Opt the workspace in to the address registry
+ tags:
+ - Compliance
+ x-rate-limit-category: write
+ x-readme:
+ code-samples:
+ - language: typescript
+ code: "const response: Promise>\
+ \ = fireblocks.compliance.optInAddressRegistryTenant(complianceApiOptInAddressRegistryTenantRequest);"
+ name: Fireblocks SDK TypeScript example
+ - language: java
+ code: CompletableFuture>
+ response = fireblocks.compliance().optInAddressRegistryTenant(idempotencyKey);
+ name: Fireblocks SDK Java example
+ - language: python
+ code: response = fireblocks.compliance.opt_in_address_registry_tenant(idempotency_key);
+ name: Fireblocks SDK Python example
+ x-codeSamples:
+ - lang: TypeScript
+ source: "const response: Promise>\
+ \ = fireblocks.compliance.optInAddressRegistryTenant(complianceApiOptInAddressRegistryTenantRequest);"
+ - lang: Java
+ source: CompletableFuture>
+ response = fireblocks.compliance().optInAddressRegistryTenant(idempotencyKey);
+ - lang: Python
+ source: response = fireblocks.compliance.opt_in_address_registry_tenant(idempotency_key);
+ x-accepts:
+ - application/json
+ /address_registry/vaults:
+ delete:
+ description: Removes all vault accounts from the workspace opt-out list.
+ operationId: removeAllAddressRegistryVaultOptOuts
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/AddressRegistryRemoveAllVaultOptOutsResponse"
+ description: All opt-outs cleared; response body includes `removedCount`.
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ default:
+ $ref: "#/components/responses/Error"
+ summary: Remove all vault-level address registry opt-outs for the workspace
+ tags:
+ - Compliance
+ x-rate-limit-category: write
+ x-readme:
+ code-samples:
+ - language: typescript
+ code: "const response: Promise>\
+ \ = fireblocks.compliance.removeAllAddressRegistryVaultOptOuts();"
+ name: Fireblocks SDK TypeScript example
+ - language: java
+ code: CompletableFuture>
+ response = fireblocks.compliance().removeAllAddressRegistryVaultOptOuts();
+ name: Fireblocks SDK Java example
+ - language: python
+ code: response = fireblocks.compliance.remove_all_address_registry_vault_opt_outs();
+ name: Fireblocks SDK Python example
+ x-codeSamples:
+ - lang: TypeScript
+ source: "const response: Promise>\
+ \ = fireblocks.compliance.removeAllAddressRegistryVaultOptOuts();"
+ - lang: Java
+ source: CompletableFuture>
+ response = fireblocks.compliance().removeAllAddressRegistryVaultOptOuts();
+ - lang: Python
+ source: response = fireblocks.compliance.remove_all_address_registry_vault_opt_outs();
+ x-accepts:
+ - application/json
+ get:
+ description: "Lists vault accounts that are opted out of the address registry\
+ \ for this workspace. Pagination uses `next` and `prev` cursors from the response.\
+ \ If `pageSize` is omitted, **50** items are returned per page; allowed range\
+ \ is **1–100** per request."
+ operationId: listAddressRegistryVaultOptOuts
+ parameters:
+ - description: Opaque cursor from a previous response (`next` or `prev`). Omit
+ for the first page.
+ explode: true
+ in: query
+ name: pageCursor
+ required: false
+ schema:
+ example: eyJvZmZzZXQiOjAsInBhZ2VTaXplIjoxMH0
+ type: string
+ style: form
+ - description: Page size. Default **50** if omitted; must be between **1** and
+ **100**.
+ explode: true
+ in: query
+ name: pageSize
+ required: false
+ schema:
+ default: 50
+ example: 50
+ format: int32
+ maximum: 100
+ minimum: 1
+ type: integer
+ style: form
+ - description: Sort direction by vault account id. Omit for ascending; use the
+ enum value for descending.
+ explode: true
+ in: query
+ name: order
+ required: false
+ schema:
+ $ref: "#/components/schemas/AddressRegistryVaultListOrder"
+ style: form
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/AddressRegistryListVaultOptOutsResponse"
+ description: Page of vault opt-out rows
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/AddressRegistryError"
+ description: Validation error (e.g. invalid or malformed pageCursor)
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ default:
+ $ref: "#/components/responses/Error"
+ summary: List vault-level address registry opt-outs (paginated)
+ tags:
+ - Compliance
+ x-rate-limit-category: read
+ x-readme:
+ code-samples:
+ - language: typescript
+ code: "const response: Promise>\
+ \ = fireblocks.compliance.listAddressRegistryVaultOptOuts(complianceApiListAddressRegistryVaultOptOutsRequest);"
+ name: Fireblocks SDK TypeScript example
+ - language: java
+ code: "CompletableFuture>\
+ \ response = fireblocks.compliance().listAddressRegistryVaultOptOuts(pageCursor,\
+ \ pageSize, order);"
+ name: Fireblocks SDK Java example
+ - language: python
+ code: "response = fireblocks.compliance.list_address_registry_vault_opt_outs(page_cursor,\
+ \ page_size, order);"
+ name: Fireblocks SDK Python example
+ x-codeSamples:
+ - lang: TypeScript
+ source: "const response: Promise>\
+ \ = fireblocks.compliance.listAddressRegistryVaultOptOuts(complianceApiListAddressRegistryVaultOptOutsRequest);"
+ - lang: Java
+ source: "CompletableFuture>\
+ \ response = fireblocks.compliance().listAddressRegistryVaultOptOuts(pageCursor,\
+ \ pageSize, order);"
+ - lang: Python
+ source: "response = fireblocks.compliance.list_address_registry_vault_opt_outs(page_cursor,\
+ \ page_size, order);"
+ x-accepts:
+ - application/json
+ post:
+ description: Adds one or more vault account ids to the workspace opt-out list
+ for the address registry.
+ operationId: addAddressRegistryVaultOptOuts
+ parameters:
+ - description: "A unique identifier for the request. If the request is sent\
+ \ multiple times with the same idempotency key, the server will return the\
+ \ same response as the first request. The idempotency key is valid for 24\
+ \ hours."
+ explode: false
+ in: header
+ name: Idempotency-Key
+ required: false
+ schema:
+ type: string
+ style: simple
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/AddressRegistryAddVaultOptOutsRequest"
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/AddressRegistryAddVaultOptOutsResponse"
+ description: Opt-outs recorded; response body includes `acceptedCount`.
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/AddressRegistryError"
+ description: Validation error (e.g. empty list or invalid vault ids)
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ default:
+ $ref: "#/components/responses/Error"
+ summary: Add vault accounts to the address registry opt-out list
+ tags:
+ - Compliance
+ x-rate-limit-category: write
+ x-readme:
+ code-samples:
+ - language: typescript
+ code: "const response: Promise>\
+ \ = fireblocks.compliance.addAddressRegistryVaultOptOuts(complianceApiAddAddressRegistryVaultOptOutsRequest);"
+ name: Fireblocks SDK TypeScript example
+ - language: java
+ code: "CompletableFuture>\
+ \ response = fireblocks.compliance().addAddressRegistryVaultOptOuts(addressRegistryAddVaultOptOutsRequest,\
+ \ idempotencyKey);"
+ name: Fireblocks SDK Java example
+ - language: python
+ code: "response = fireblocks.compliance.add_address_registry_vault_opt_outs(address_registry_add_vault_opt_outs_request,\
+ \ idempotency_key);"
+ name: Fireblocks SDK Python example
+ x-codeSamples:
+ - lang: TypeScript
+ source: "const response: Promise>\
+ \ = fireblocks.compliance.addAddressRegistryVaultOptOuts(complianceApiAddAddressRegistryVaultOptOutsRequest);"
+ - lang: Java
+ source: "CompletableFuture>\
+ \ response = fireblocks.compliance().addAddressRegistryVaultOptOuts(addressRegistryAddVaultOptOutsRequest,\
+ \ idempotencyKey);"
+ - lang: Python
+ source: "response = fireblocks.compliance.add_address_registry_vault_opt_outs(address_registry_add_vault_opt_outs_request,\
+ \ idempotency_key);"
+ x-content-type: application/json
+ x-accepts:
+ - application/json
+ /address_registry/vaults/{vaultAccountId}:
+ delete:
+ description: "Removes this vault account id from the workspace opt-out list\
+ \ if it is present; otherwise the call still succeeds. Response body matches\
+ \ GET (`optedOut` is `false` after success). To clear the whole list, use\
+ \ `DELETE /v1/address_registry/vaults`."
+ operationId: removeAddressRegistryVaultOptOut
+ parameters:
+ - description: Vault account id (non-negative integer).
+ explode: false
+ in: path
+ name: vaultAccountId
+ required: true
+ schema:
+ example: 10001
+ format: int32
+ minimum: 0
+ type: integer
+ style: simple
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/AddressRegistryRemoveVaultOptOutResponse"
+ description: Success; `optedOut` is false (list entry removed if it existed)
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/AddressRegistryError"
+ description: Invalid path parameter (e.g. negative or out-of-range vault
+ account id)
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ default:
+ $ref: "#/components/responses/Error"
+ summary: Remove a single vault account from the address registry opt-out list
+ tags:
+ - Compliance
+ x-rate-limit-category: write
+ x-readme:
+ code-samples:
+ - language: typescript
+ code: "const response: Promise>\
+ \ = fireblocks.compliance.removeAddressRegistryVaultOptOut(complianceApiRemoveAddressRegistryVaultOptOutRequest);"
+ name: Fireblocks SDK TypeScript example
+ - language: java
+ code: CompletableFuture>
+ response = fireblocks.compliance().removeAddressRegistryVaultOptOut(vaultAccountId);
+ name: Fireblocks SDK Java example
+ - language: python
+ code: response = fireblocks.compliance.remove_address_registry_vault_opt_out(vault_account_id);
+ name: Fireblocks SDK Python example
+ x-codeSamples:
+ - lang: TypeScript
+ source: "const response: Promise>\
+ \ = fireblocks.compliance.removeAddressRegistryVaultOptOut(complianceApiRemoveAddressRegistryVaultOptOutRequest);"
+ - lang: Java
+ source: CompletableFuture>
+ response = fireblocks.compliance().removeAddressRegistryVaultOptOut(vaultAccountId);
+ - lang: Python
+ source: response = fireblocks.compliance.remove_address_registry_vault_opt_out(vault_account_id);
+ x-accepts:
+ - application/json
+ get:
+ description: "Returns whether this vault account is on the workspace opt-out\
+ \ list (`optedOut` true or false). List, add, and clear-all are available\
+ \ on `/v1/address_registry/vaults`; this path reads or removes one vault."
+ operationId: getAddressRegistryVaultOptOut
+ parameters:
+ - description: Vault account id (non-negative integer).
+ explode: false
+ in: path
+ name: vaultAccountId
+ required: true
+ schema:
+ example: 10001
+ format: int32
+ minimum: 0
+ type: integer
+ style: simple
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/AddressRegistryGetVaultOptOutResponse"
+ description: Current opt-out flag for the vault
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/AddressRegistryError"
+ description: Invalid path parameter (e.g. negative or out-of-range vault
+ account id)
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ default:
+ $ref: "#/components/responses/Error"
+ summary: Get whether a vault account is opted out of the address registry
+ tags:
+ - Compliance
+ x-rate-limit-category: read
+ x-readme:
+ code-samples:
+ - language: typescript
+ code: "const response: Promise>\
+ \ = fireblocks.compliance.getAddressRegistryVaultOptOut(complianceApiGetAddressRegistryVaultOptOutRequest);"
+ name: Fireblocks SDK TypeScript example
+ - language: java
+ code: CompletableFuture>
+ response = fireblocks.compliance().getAddressRegistryVaultOptOut(vaultAccountId);
+ name: Fireblocks SDK Java example
+ - language: python
+ code: response = fireblocks.compliance.get_address_registry_vault_opt_out(vault_account_id);
+ name: Fireblocks SDK Python example
+ x-codeSamples:
+ - lang: TypeScript
+ source: "const response: Promise>\
+ \ = fireblocks.compliance.getAddressRegistryVaultOptOut(complianceApiGetAddressRegistryVaultOptOutRequest);"
+ - lang: Java
+ source: CompletableFuture>
+ response = fireblocks.compliance().getAddressRegistryVaultOptOut(vaultAccountId);
+ - lang: Python
+ source: response = fireblocks.compliance.get_address_registry_vault_opt_out(vault_account_id);
x-accepts:
- application/json
/screening/travel_rule/transaction/validate:
@@ -23163,6 +24033,9 @@ paths:
schema:
$ref: "#/components/schemas/TRLinkPartnersListResponse"
description: List of partners retrieved successfully
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
default:
$ref: "#/components/responses/Error"
summary: List available TRSupport partners
@@ -23205,6 +24078,9 @@ paths:
schema:
$ref: "#/components/schemas/TRLinkCustomersListResponse"
description: Customers retrieved successfully
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
default:
$ref: "#/components/responses/Error"
summary: Get all customers
@@ -23265,6 +24141,9 @@ paths:
schema:
$ref: "#/components/schemas/TRLinkCustomerResponse"
description: Customer created successfully
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
default:
$ref: "#/components/responses/Error"
summary: Create customer
@@ -23319,6 +24198,9 @@ paths:
responses:
"204":
description: Customer deleted successfully
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
default:
$ref: "#/components/responses/Error"
summary: Delete customer
@@ -23367,6 +24249,9 @@ paths:
schema:
$ref: "#/components/schemas/TRLinkCustomerResponse"
description: Customer retrieved successfully
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
default:
$ref: "#/components/responses/Error"
summary: Get customer by ID
@@ -23436,6 +24321,9 @@ paths:
schema:
$ref: "#/components/schemas/TRLinkCustomerResponse"
description: Customer updated successfully
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
default:
$ref: "#/components/responses/Error"
summary: Update customer
@@ -23494,6 +24382,9 @@ paths:
schema:
$ref: "#/components/schemas/TRLinkCustomerIntegrationsListResponse"
description: Customer integrations retrieved successfully
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
default:
$ref: "#/components/responses/Error"
summary: Get customer integrations
@@ -23556,6 +24447,9 @@ paths:
schema:
$ref: "#/components/schemas/TRLinkCustomerIntegrationResponse"
description: Customer integration retrieved successfully
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
default:
$ref: "#/components/responses/Error"
summary: Get customer integration by ID
@@ -23594,7 +24488,9 @@ paths:
post:
description: Creates a new TRSupport integration for a customer. This establishes
a connection placeholder between a customer and a Travel Rule partner. Use
- the connect endpoint to provide credentials after creation.
+ the connect endpoint to provide credentials after creation. You may optionally
+ supply `customerIntegrationId` in the request body when your tenant is enabled
+ for client-provided integration ids.
operationId: createTRLinkIntegration
parameters:
- description: "A unique identifier for the request. If the request is sent\
@@ -23621,6 +24517,9 @@ paths:
schema:
$ref: "#/components/schemas/TRLinkCustomerIntegrationResponse"
description: Customer integration created successfully
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
default:
$ref: "#/components/responses/Error"
summary: Create customer integration
@@ -23658,8 +24557,11 @@ paths:
- application/json
/screening/trlink/customers/integration/{customerIntegrationId}:
delete:
- description: Disconnects a customer integration by removing stored credentials.
- The integration record is deleted and cannot be recovered.
+ description: "Disconnects the integration for the authenticated workspace (tenant):\
+ \ removes stored credentials and deletes this tenant's integration record.\
+ \ The operation is scoped to the caller's tenant; it does not remove partner-side\
+ \ state for other workspaces that reuse the same logical customer integration.\
+ \ The record cannot be recovered after delete."
operationId: disconnectTRLinkIntegration
parameters:
- description: Customer integration unique identifier
@@ -23675,6 +24577,9 @@ paths:
responses:
"204":
description: Customer integration disconnected successfully
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
default:
$ref: "#/components/responses/Error"
summary: Disconnect customer integration
@@ -23740,6 +24645,9 @@ paths:
schema:
$ref: "#/components/schemas/TRLinkCustomerIntegrationResponse"
description: Customer integration connected successfully
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
default:
$ref: "#/components/responses/Error"
summary: Connect customer integration
@@ -23799,6 +24707,9 @@ paths:
schema:
$ref: "#/components/schemas/TRLinkPublicKeyResponse"
description: Public key retrieved successfully
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
default:
$ref: "#/components/responses/Error"
summary: Get public key for PII encryption
@@ -23865,6 +24776,9 @@ paths:
$ref: "#/components/schemas/TRLinkTestConnectionResponse"
description: Connection test completed (success or failure details in response
body)
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
default:
$ref: "#/components/responses/Error"
summary: Test connection
@@ -23940,6 +24854,9 @@ paths:
schema:
$ref: "#/components/schemas/TRLinkAPIPagedResponse"
description: VASPs retrieved successfully
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
default:
$ref: "#/components/responses/Error"
summary: List VASPs
@@ -24003,6 +24920,9 @@ paths:
schema:
$ref: "#/components/schemas/TRLinkVaspDto"
description: VASP retrieved successfully
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
default:
$ref: "#/components/responses/Error"
summary: Get VASP by ID
@@ -24075,6 +24995,9 @@ paths:
schema:
$ref: "#/components/schemas/TRLinkAssetsListPagedResponse"
description: Supported assets retrieved successfully
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
default:
$ref: "#/components/responses/Error"
summary: List supported assets
@@ -24140,6 +25063,9 @@ paths:
schema:
$ref: "#/components/schemas/TRLinkGetSupportedAssetResponse"
description: Asset retrieved successfully
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
default:
$ref: "#/components/responses/Error"
summary: Get supported asset by ID
@@ -24213,6 +25139,9 @@ paths:
schema:
$ref: "#/components/schemas/TRLinkAssessTravelRuleResponse"
description: Travel rule assessment completed
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
default:
$ref: "#/components/responses/Error"
summary: Assess Travel Rule requirement
@@ -24288,6 +25217,9 @@ paths:
schema:
$ref: "#/components/schemas/TRLinkTrmInfoResponse"
description: TRM created successfully
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
default:
$ref: "#/components/responses/Error"
summary: Create Travel Rule Message
@@ -24354,6 +25286,9 @@ paths:
schema:
$ref: "#/components/schemas/TRLinkTrmInfoResponse"
description: TRM retrieved successfully
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
default:
$ref: "#/components/responses/Error"
summary: Get TRM by ID
@@ -24433,6 +25368,9 @@ paths:
schema:
$ref: "#/components/schemas/TRLinkTrmInfoResponse"
description: Transaction cancellation request accepted
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
default:
$ref: "#/components/responses/Error"
summary: Cancel Travel Rule Message
@@ -24515,6 +25453,9 @@ paths:
schema:
$ref: "#/components/schemas/TRLinkTrmInfoResponse"
description: Transaction redirect request accepted
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
default:
$ref: "#/components/responses/Error"
summary: Redirect Travel Rule Message
@@ -24565,6 +25506,9 @@ paths:
schema:
$ref: "#/components/schemas/TRLinkPolicyResponse"
description: Policy retrieved successfully
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
default:
$ref: "#/components/responses/Error"
summary: Get TRLink policy
@@ -24632,6 +25576,9 @@ paths:
schema:
$ref: "#/components/schemas/TRLinkSetTransactionTravelRuleMessageIdResponse"
description: Travel rule message ID set successfully
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
default:
$ref: "#/components/responses/Error"
summary: Set transaction travel rule message ID
@@ -24707,6 +25654,9 @@ paths:
schema:
$ref: "#/components/schemas/TRLinkSetDestinationTravelRuleMessageIdResponse"
description: Destination travel rule message ID set successfully
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
default:
$ref: "#/components/responses/Error"
summary: Set destination travel rule message ID
@@ -28863,6 +29813,554 @@ paths:
\ api_key_id, request_id);"
x-accepts:
- application/json
+ /legal_entities:
+ get:
+ description: |-
+ Returns legal entity registrations for the workspace with cursor-based pagination.
+ If query parameter vaultAccountId is used it returns the legal entity registration associated with a specific vault account. If no explicit mapping exists for the vault, the workspace default legal entity is returned. Returns an empty response if neither a vault mapping nor a default legal entity is configured.
+ Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer.
+ operationId: listLegalEntities
+ parameters:
+ - description: "The ID of the vault account. When provided, returns the legal\
+ \ entity associated with that vault account and pagination parameters are\
+ \ ignored."
+ explode: true
+ in: query
+ name: vaultAccountId
+ required: false
+ schema:
+ format: numeric
+ type: string
+ x-fb-entity: vault_account
+ style: form
+ - description: Cursor string returned in `next` or `prev` of a previous response.
+ Ignored when `vaultAccountId` is provided.
+ explode: true
+ in: query
+ name: pageCursor
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: Maximum number of registrations to return. Ignored when `vaultAccountId`
+ is provided.
+ explode: true
+ in: query
+ name: pageSize
+ required: false
+ schema:
+ default: 50
+ maximum: 100
+ minimum: 1
+ type: integer
+ style: form
+ - description: Field to sort results by. Ignored when `vaultAccountId` is provided.
+ explode: true
+ in: query
+ name: sortBy
+ required: false
+ schema:
+ enum:
+ - createdAt
+ - updatedAt
+ type: string
+ style: form
+ - description: Sort order. Ignored when `vaultAccountId` is provided.
+ explode: true
+ in: query
+ name: order
+ required: false
+ schema:
+ default: DESC
+ enum:
+ - ASC
+ - DESC
+ type: string
+ style: form
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ListLegalEntitiesResponse"
+ description: "A paginated list of legal entity registrations. When `vaultAccountId`\
+ \ is provided, `data` contains at most one item."
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ default:
+ $ref: "#/components/responses/Error"
+ summary: List legal entities (Paginated)
+ tags:
+ - Compliance
+ x-rate-limit-category: query
+ x-readme:
+ code-samples:
+ - language: typescript
+ code: "const response: Promise>\
+ \ = fireblocks.compliance.listLegalEntities(complianceApiListLegalEntitiesRequest);"
+ name: Fireblocks SDK TypeScript example
+ - language: java
+ code: "CompletableFuture> response\
+ \ = fireblocks.compliance().listLegalEntities(vaultAccountId, pageCursor,\
+ \ pageSize, sortBy, order);"
+ name: Fireblocks SDK Java example
+ - language: python
+ code: "response = fireblocks.compliance.list_legal_entities(vault_account_id,\
+ \ page_cursor, page_size, sort_by, order);"
+ name: Fireblocks SDK Python example
+ x-codeSamples:
+ - lang: TypeScript
+ source: "const response: Promise>\
+ \ = fireblocks.compliance.listLegalEntities(complianceApiListLegalEntitiesRequest);"
+ - lang: Java
+ source: "CompletableFuture> response\
+ \ = fireblocks.compliance().listLegalEntities(vaultAccountId, pageCursor,\
+ \ pageSize, sortBy, order);"
+ - lang: Python
+ source: "response = fireblocks.compliance.list_legal_entities(vault_account_id,\
+ \ page_cursor, page_size, sort_by, order);"
+ x-accepts:
+ - application/json
+ post:
+ description: |-
+ Registers a new legal entity for the workspace using its LEI (Legal Entity Identifier) code. The LEI is validated against the GLEIF registry. Each workspace can register multiple legal entities.
+ Endpoint Permission: Admin, Non-Signing Admin.
+ operationId: registerLegalEntity
+ parameters:
+ - description: "A unique identifier for the request. If the request is sent\
+ \ multiple times with the same idempotency key, the server will return the\
+ \ same response as the first request. The idempotency key is valid for 24\
+ \ hours."
+ explode: false
+ in: header
+ name: Idempotency-Key
+ required: false
+ schema:
+ type: string
+ style: simple
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/RegisterLegalEntityRequest"
+ required: true
+ responses:
+ "201":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/LegalEntityRegistration"
+ description: Legal entity registered successfully
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: Invalid LEI or request parameters
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: LEI not found in the GLEIF registry
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "409":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: A legal entity with this LEI is already registered for the
+ workspace
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: Internal Server Error
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ default:
+ $ref: "#/components/responses/Error"
+ summary: Register a new legal entity
+ tags:
+ - Compliance
+ x-rate-limit-category: write
+ x-readme:
+ code-samples:
+ - language: typescript
+ code: "const response: Promise>\
+ \ = fireblocks.compliance.registerLegalEntity(complianceApiRegisterLegalEntityRequest);"
+ name: Fireblocks SDK TypeScript example
+ - language: java
+ code: "CompletableFuture> response\
+ \ = fireblocks.compliance().registerLegalEntity(registerLegalEntityRequest,\
+ \ idempotencyKey);"
+ name: Fireblocks SDK Java example
+ - language: python
+ code: "response = fireblocks.compliance.register_legal_entity(register_legal_entity_request,\
+ \ idempotency_key);"
+ name: Fireblocks SDK Python example
+ x-codeSamples:
+ - lang: TypeScript
+ source: "const response: Promise>\
+ \ = fireblocks.compliance.registerLegalEntity(complianceApiRegisterLegalEntityRequest);"
+ - lang: Java
+ source: "CompletableFuture> response\
+ \ = fireblocks.compliance().registerLegalEntity(registerLegalEntityRequest,\
+ \ idempotencyKey);"
+ - lang: Python
+ source: "response = fireblocks.compliance.register_legal_entity(register_legal_entity_request,\
+ \ idempotency_key);"
+ x-content-type: application/json
+ x-accepts:
+ - application/json
+ /legal_entities/{legalEntityId}:
+ get:
+ description: |-
+ Returns details of a specific legal entity registration, including GLEIF data when available.
+ Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer.
+ operationId: getLegalEntity
+ parameters:
+ - description: The unique ID of the legal entity registration
+ explode: false
+ in: path
+ name: legalEntityId
+ required: true
+ schema:
+ format: uuid
+ type: string
+ style: simple
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/LegalEntityRegistration"
+ description: Legal entity registration details
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: Legal entity registration not found
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ default:
+ $ref: "#/components/responses/Error"
+ summary: Get a legal entity
+ tags:
+ - Compliance
+ x-rate-limit-category: read
+ x-readme:
+ code-samples:
+ - language: typescript
+ code: "const response: Promise>\
+ \ = fireblocks.compliance.getLegalEntity(complianceApiGetLegalEntityRequest);"
+ name: Fireblocks SDK TypeScript example
+ - language: java
+ code: CompletableFuture> response =
+ fireblocks.compliance().getLegalEntity(legalEntityId);
+ name: Fireblocks SDK Java example
+ - language: python
+ code: response = fireblocks.compliance.get_legal_entity(legal_entity_id);
+ name: Fireblocks SDK Python example
+ x-codeSamples:
+ - lang: TypeScript
+ source: "const response: Promise>\
+ \ = fireblocks.compliance.getLegalEntity(complianceApiGetLegalEntityRequest);"
+ - lang: Java
+ source: CompletableFuture> response =
+ fireblocks.compliance().getLegalEntity(legalEntityId);
+ - lang: Python
+ source: response = fireblocks.compliance.get_legal_entity(legal_entity_id);
+ x-accepts:
+ - application/json
+ put:
+ description: |-
+ Updates the status of a legal entity registration. Setting isDefault to true marks the registration as the workspace default, which is applied to vault accounts that have no explicit legal entity mapping.
+ Endpoint Permission: Admin, Non-Signing Admin.
+ operationId: updateLegalEntity
+ parameters:
+ - description: The unique ID of the legal entity registration
+ explode: false
+ in: path
+ name: legalEntityId
+ required: true
+ schema:
+ format: uuid
+ type: string
+ style: simple
+ - description: "A unique identifier for the request. If the request is sent\
+ \ multiple times with the same idempotency key, the server will return the\
+ \ same response as the first request. The idempotency key is valid for 24\
+ \ hours."
+ explode: false
+ in: header
+ name: Idempotency-Key
+ required: false
+ schema:
+ type: string
+ style: simple
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/UpdateLegalEntityRequest"
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/LegalEntityRegistration"
+ description: Updated legal entity registration
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: Registration is not in APPROVED status
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: Legal entity registration not found
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ default:
+ $ref: "#/components/responses/Error"
+ summary: Update legal entity
+ tags:
+ - Compliance
+ x-rate-limit-category: write
+ x-readme:
+ code-samples:
+ - language: typescript
+ code: "const response: Promise>\
+ \ = fireblocks.compliance.updateLegalEntity(complianceApiUpdateLegalEntityRequest);"
+ name: Fireblocks SDK TypeScript example
+ - language: java
+ code: "CompletableFuture> response\
+ \ = fireblocks.compliance().updateLegalEntity(updateLegalEntityRequest,\
+ \ legalEntityId, idempotencyKey);"
+ name: Fireblocks SDK Java example
+ - language: python
+ code: "response = fireblocks.compliance.update_legal_entity(update_legal_entity_request,\
+ \ legal_entity_id, idempotency_key);"
+ name: Fireblocks SDK Python example
+ x-codeSamples:
+ - lang: TypeScript
+ source: "const response: Promise>\
+ \ = fireblocks.compliance.updateLegalEntity(complianceApiUpdateLegalEntityRequest);"
+ - lang: Java
+ source: "CompletableFuture> response\
+ \ = fireblocks.compliance().updateLegalEntity(updateLegalEntityRequest,\
+ \ legalEntityId, idempotencyKey);"
+ - lang: Python
+ source: "response = fireblocks.compliance.update_legal_entity(update_legal_entity_request,\
+ \ legal_entity_id, idempotency_key);"
+ x-content-type: application/json
+ x-accepts:
+ - application/json
+ /legal_entities/{legalEntityId}/vaults:
+ get:
+ description: |-
+ Returns vault account IDs explicitly assigned to a specific legal entity registration, with cursor-based pagination.
+ Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer.
+ operationId: listVaultsForLegalEntity
+ parameters:
+ - description: The unique ID of the legal entity registration
+ explode: false
+ in: path
+ name: legalEntityId
+ required: true
+ schema:
+ format: uuid
+ type: string
+ style: simple
+ - description: Cursor string returned in `next` or `prev` of a previous response
+ explode: true
+ in: query
+ name: pageCursor
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: Maximum number of registrations to return
+ explode: true
+ in: query
+ name: pageSize
+ required: false
+ schema:
+ default: 50
+ maximum: 100
+ minimum: 1
+ type: integer
+ style: form
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ListVaultsForRegistrationResponse"
+ description: Paginated list of vault account IDs assigned to the legal entity
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: Legal entity registration not found
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ default:
+ $ref: "#/components/responses/Error"
+ summary: List vault accounts for a legal entity (Paginated)
+ tags:
+ - Compliance
+ x-rate-limit-category: read
+ x-readme:
+ code-samples:
+ - language: typescript
+ code: "const response: Promise>\
+ \ = fireblocks.compliance.listVaultsForLegalEntity(complianceApiListVaultsForLegalEntityRequest);"
+ name: Fireblocks SDK TypeScript example
+ - language: java
+ code: "CompletableFuture>\
+ \ response = fireblocks.compliance().listVaultsForLegalEntity(legalEntityId,\
+ \ pageCursor, pageSize);"
+ name: Fireblocks SDK Java example
+ - language: python
+ code: "response = fireblocks.compliance.list_vaults_for_legal_entity(legal_entity_id,\
+ \ page_cursor, page_size);"
+ name: Fireblocks SDK Python example
+ x-codeSamples:
+ - lang: TypeScript
+ source: "const response: Promise>\
+ \ = fireblocks.compliance.listVaultsForLegalEntity(complianceApiListVaultsForLegalEntityRequest);"
+ - lang: Java
+ source: "CompletableFuture>\
+ \ response = fireblocks.compliance().listVaultsForLegalEntity(legalEntityId,\
+ \ pageCursor, pageSize);"
+ - lang: Python
+ source: "response = fireblocks.compliance.list_vaults_for_legal_entity(legal_entity_id,\
+ \ page_cursor, page_size);"
+ x-accepts:
+ - application/json
+ post:
+ description: |-
+ Assigns one or more vault accounts to a specific legal entity registration. Explicitly mapped vault accounts take precedence over the workspace default legal entity.
+ Endpoint Permission: Admin, Non-Signing Admin.
+ operationId: assignVaultsToLegalEntity
+ parameters:
+ - description: The unique ID of the legal entity registration
+ explode: false
+ in: path
+ name: legalEntityId
+ required: true
+ schema:
+ format: uuid
+ type: string
+ style: simple
+ - description: "A unique identifier for the request. If the request is sent\
+ \ multiple times with the same idempotency key, the server will return the\
+ \ same response as the first request. The idempotency key is valid for 24\
+ \ hours."
+ explode: false
+ in: header
+ name: Idempotency-Key
+ required: false
+ schema:
+ type: string
+ style: simple
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/AssignVaultsToLegalEntityRequest"
+ required: true
+ responses:
+ "201":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/AssignVaultsToLegalEntityResponse"
+ description: Vault accounts assigned successfully
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorSchema"
+ description: Legal entity registration not found
+ headers:
+ X-Request-ID:
+ $ref: "#/components/headers/X-Request-ID"
+ default:
+ $ref: "#/components/responses/Error"
+ summary: Assign vault accounts to a legal entity
+ tags:
+ - Compliance
+ x-rate-limit-category: write
+ x-readme:
+ code-samples:
+ - language: typescript
+ code: "const response: Promise>\
+ \ = fireblocks.compliance.assignVaultsToLegalEntity(complianceApiAssignVaultsToLegalEntityRequest);"
+ name: Fireblocks SDK TypeScript example
+ - language: java
+ code: "CompletableFuture>\
+ \ response = fireblocks.compliance().assignVaultsToLegalEntity(assignVaultsToLegalEntityRequest,\
+ \ legalEntityId, idempotencyKey);"
+ name: Fireblocks SDK Java example
+ - language: python
+ code: "response = fireblocks.compliance.assign_vaults_to_legal_entity(assign_vaults_to_legal_entity_request,\
+ \ legal_entity_id, idempotency_key);"
+ name: Fireblocks SDK Python example
+ x-codeSamples:
+ - lang: TypeScript
+ source: "const response: Promise>\
+ \ = fireblocks.compliance.assignVaultsToLegalEntity(complianceApiAssignVaultsToLegalEntityRequest);"
+ - lang: Java
+ source: "CompletableFuture>\
+ \ response = fireblocks.compliance().assignVaultsToLegalEntity(assignVaultsToLegalEntityRequest,\
+ \ legalEntityId, idempotencyKey);"
+ - lang: Python
+ source: "response = fireblocks.compliance.assign_vaults_to_legal_entity(assign_vaults_to_legal_entity_request,\
+ \ legal_entity_id, idempotency_key);"
+ x-content-type: application/json
+ x-accepts:
+ - application/json
components:
headers:
X-Request-ID:
@@ -29999,6 +31497,9 @@ components:
- first va
- client 65502e71-ecdf-48da-a074-c1753befc7fb
prefix: "Copied from: "
+ tagIds:
+ - a1b2c3d4-e5f6-7890-abcd-ef1234567890
+ - b2c3d4e5-f6a7-8901-bcde-f12345678901
count: 1000
baseAssetIds:
- BTC
@@ -30038,6 +31539,16 @@ components:
then adding a prefix to the names. If names array is used it'll fail
example: "Copied from: "
type: string
+ tagIds:
+ description: Optional list of tag IDs to attach to all created vault accounts
+ example:
+ - a1b2c3d4-e5f6-7890-abcd-ef1234567890
+ - b2c3d4e5-f6a7-8901-bcde-f12345678901
+ items:
+ format: uuid
+ type: string
+ maxItems: 20
+ type: array
required:
- baseAssetIds
- count
@@ -30045,9 +31556,14 @@ components:
JobCreated:
example:
jobId: jobId
+ approvalRequestId: approvalRequestId
properties:
jobId:
type: string
+ approvalRequestId:
+ description: Approval request ID. Returned when a tag triggers an approval
+ flow.
+ type: string
type: object
CreateMultipleVaultAccountsJobStatus:
example:
@@ -34916,11 +36432,6 @@ components:
* `RAW` - An off-chain message with no predefined format. Use it to sign any message with your private key, including protocols such as blockchains and custom transaction types that are not natively supported by Fireblocks. [Learn more about raw signing transactions.](https://developers.fireblocks.com/docs/raw-message-signing)
* `ENABLE_ASSET` - Algorand, DigitalBits, Solana, and Stellar require an on-chain transaction to create an asset wallet and enable the deposit address. This transaction is automatically created when adding assets on these blockchains at a vault account.
* `STAKE` - Assign assets to a staking pool managed by a staking validator. Supported for Stellar and EVM-based blockchains. This transaction is automatically created when performing staking operations.
- * `UNSTAKE` - Remove assets from a staking pool managed by a staking validator. Supported for Stellar and EVM-based blockchains. This transaction is automatically created when performing staking operations.
- * `WITHDRAW` - Transfer assets from a dedicated staking vault account to another address. Supported for Stellar and EVM-based blockchains. This transaction is automatically created when performing staking operations.
-
- **Note:** Fireblocks will rename this type from `WITHDRAW` to a different type name soon. There will be a 7-day notice regarding the new type name.
-
* `SUPPLY_TO_COMPOUND` - Deprecated since April 1st, 2023. Older transactions may have this as their operation, in case users in the workspace have used the direct integration between Fireblocks and the Compound DeFI protocol.
* `REDEEM_FROM_COMPOUND` - Deprecated since April 1st, 2023. Older transactions may have this as their operation, in case users in the workspace have used the direct integration between Fireblocks and the Compound DeFI protocol.
* `PROGRAM_CALL` - In Solana refers to invoking on-chain programs (smart contracts) to execute transactions and interact with the blockchain.
@@ -34934,8 +36445,6 @@ components:
- TYPED_MESSAGE
- ENABLE_ASSET
- STAKE
- - UNSTAKE
- - WITHDRAW
- REDEEM_FROM_COMPOUND
- SUPPLY_TO_COMPOUND
- PROGRAM_CALL
@@ -35293,7 +36802,10 @@ components:
$ref: "#/components/schemas/RewardInfo"
type: object
AmlStatusEnum:
- description: AML screening status
+ deprecated: true
+ description: |
+ Deprecated: Use screeningStatus instead.
+ AML screening status.
enum:
- COMPLETED
- PENDING
@@ -35320,19 +36832,6 @@ components:
- REVIEW
example: PASS
type: string
- ScreeningRiskLevelEnum:
- description: |
- Risk level assessment for screening results.
- Possible values vary by provider and context.
- enum:
- - VERY_HIGH
- - SEVERE
- - HIGH
- - MEDIUM
- - LOW
- - UNKNOWN
- example: LOW
- type: string
AlertLevelEnum:
description: Alert level severity
enum:
@@ -35434,7 +36933,9 @@ components:
$ref: "#/components/schemas/PolicyVerdictActionEnum"
type: object
AmlResult:
+ deprecated: true
description: |
+ Deprecated: This field is not currently returned in the API response.
Detailed AML screening result information.
Contains alerts, risk scores, and other AML-specific data from provider-specific responses.
example:
@@ -35512,6 +37013,9 @@ components:
- REJECT
- ALERT
- REVIEW
+ - WAIT
+ - FREEZE
+ - CANCEL
example: ACCEPT
type: string
TravelRuleStatusEnum:
@@ -35522,6 +37026,9 @@ components:
- BYPASSED
- FAILED
- FROZEN
+ - REJECTED
+ - CANCELED
+ - BLOCKING_TIME_EXPIRED
example: COMPLETED
type: string
TravelRuleMatchedRule:
@@ -35554,7 +37061,9 @@ components:
$ref: "#/components/schemas/TravelRuleVerdictEnum"
type: object
TravelRuleResult:
+ deprecated: true
description: |
+ Deprecated: This field is not currently returned in the API response.
Detailed Travel Rule screening result containing provider-specific data.
Contains Travel Rule specific information like verified status, rule type, and actions.
example:
@@ -35648,6 +37157,8 @@ components:
- SCREEN
- BYPASS
- BLOCK
+ - PASS
+ - FREEZE
example: SCREEN
type: string
TravelRulePrescreeningRule:
@@ -35727,6 +37238,19 @@ components:
action:
$ref: "#/components/schemas/TravelRuleActionEnum"
type: object
+ ScreeningProviderResponse:
+ additionalProperties: true
+ description: |
+ Complete response from the screening provider. This is a dynamic object that varies
+ significantly between different providers (Chainalysis, Elliptic, NOTABENE, etc.).
+ Each provider has their own proprietary response format and schema.
+
+ For AML providers: Contains risk scores, alerts, entity information
+ For Travel Rule providers: Contains VASP information, PII data, protocol-specific fields
+
+ The structure is provider-dependent and cannot be standardized as each
+ vendor implements their own proprietary data models and response formats.
+ type: object
ComplianceScreeningResult:
description: |
The result of the AML/Travel Rule screening.
@@ -35794,6 +37318,8 @@ components:
providerResponse:
key: ""
matchedAlert: "{}"
+ providerResponse:
+ key: ""
timestamp: 1753459111824
matchedPrescreeningRule:
sourceId: "0"
@@ -35815,12 +37341,12 @@ components:
networkProtocol: ETH
detailsMessage: Travel rule screening completed successfully
externalId: aml_screening_12345
- bypassReason: BELOW_THRESHOLD
- extendedRisk: LOW
+ bypassReason: UNSUPPORTED_ASSET
+ extendedRisk: lowRisk
customerRefId: customer_ref_789
customerShortName: ACME Corp
verdict: PASS
- risk: LOW
+ risk: lowRisk
refId: ref_12345
category: EXCHANGE
screeningStatus: COMPLETED
@@ -35831,8 +37357,8 @@ components:
provider:
description: |
The AML/Travel Rule provider name.
- For AML: ELLIPTIC, CHAINALYSIS, SCORECHAIN, MERKLE_SCIENCE, etc.
- For Travel Rule: NOTABENE, SYGNA, or any TRLink provider name
+ For AML: ELLIPTIC, CHAINALYSIS, etc.
+ For Travel Rule: NOTABENE, SUMSUB, GTR, or any TRLink provider name.
example: NOTABENE
type: string
payload:
@@ -35861,24 +37387,43 @@ components:
bypassReason:
description: |
Reason for bypassing the screening, if applicable.
- For AML: SANCTIONS_SCREENING_BYPASS, SANCTIONS_RECIPIENT_BYPASS, etc.
- For Travel Rule: BELOW_THRESHOLD, NO_TRM_AVAILABLE, etc.
- example: BELOW_THRESHOLD
+ For AML: UNSUPPORTED_ASSET, PASSED_BY_POLICY.
+ For Travel Rule: UNSUPPORTED_ASSET, NO_TRAVEL_RULE_MESSAGE, TRANSACTION_ZERO_AMOUNT.
+ example: UNSUPPORTED_ASSET
type: string
status:
$ref: "#/components/schemas/AmlStatusEnum"
prevStatus:
$ref: "#/components/schemas/AmlStatusEnum"
prevBypassReason:
- description: Previous bypass reason before the current bypass reason change
+ deprecated: true
+ description: |
+ Deprecated: This field is not currently returned in the API response.
+ Previous bypass reason before the current bypass reason change.
example: BELOW_THRESHOLD
type: string
verdict:
$ref: "#/components/schemas/ScreeningVerdictEnum"
risk:
- $ref: "#/components/schemas/ScreeningRiskLevelEnum"
+ description: |
+ Risk level assessment for screening results.
+ Values vary by provider and are not managed by this service.
+
+ Known values by provider:
+ - Chainalysis: severeRisk, highRisk, mediumRisk, lowRisk, noRiskInfo
+ - Elliptic: noRiskDetected
+
+ Legacy values (SCREAMING_SNAKE_CASE, may appear in old transactions):
+ VERY_HIGH, SEVERE, HIGH, MEDIUM, LOW, NO_RISK_INFO, UNKNOWN
+ example: lowRisk
+ type: string
extendedRisk:
- $ref: "#/components/schemas/ScreeningRiskLevelEnum"
+ deprecated: true
+ description: |
+ Deprecated: This field is not currently returned in the API response.
+ Use risk instead.
+ example: lowRisk
+ type: string
externalId:
description: External identifier for the screening (provider-specific)
example: aml_screening_12345
@@ -35888,7 +37433,10 @@ components:
example: customer_ref_789
type: string
refId:
- description: Internal reference identifier
+ deprecated: true
+ description: |
+ Deprecated: This field is not currently returned in the API response.
+ Internal reference identifier.
example: ref_12345
type: string
category:
@@ -35911,11 +37459,17 @@ components:
example: memo_12345
type: string
destRecordId:
- description: The destination record identifier used by the screening provider
+ deprecated: true
+ description: |
+ Deprecated: This field is not currently returned in the API response.
+ The destination record identifier used by the screening provider.
example: record_001
type: string
addressResolutionSignature:
- description: Cryptographic signature for address resolution verification
+ deprecated: true
+ description: |
+ Deprecated: This field is not currently returned in the API response.
+ Cryptographic signature for address resolution verification.
example: 0x1234567890abcdef
type: string
amlResult:
@@ -35957,6 +37511,19 @@ components:
providers
example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
type: string
+ providerResponse:
+ additionalProperties: true
+ description: |
+ Complete response from the screening provider. This is a dynamic object that varies
+ significantly between different providers (Chainalysis, Elliptic, NOTABENE, etc.).
+ Each provider has their own proprietary response format and schema.
+
+ For AML providers: Contains risk scores, alerts, entity information
+ For Travel Rule providers: Contains VASP information, PII data, protocol-specific fields
+
+ The structure is provider-dependent and cannot be standardized as each
+ vendor implements their own proprietary data models and response formats.
+ type: object
type: object
ComplianceResultStatusesEnum:
description: Status of compliance result screening
@@ -36661,6 +38228,8 @@ components:
providerResponse:
key: ""
matchedAlert: "{}"
+ providerResponse:
+ key: ""
timestamp: 1753459111824
matchedPrescreeningRule:
sourceId: "0"
@@ -36682,12 +38251,12 @@ components:
networkProtocol: ETH
detailsMessage: Travel rule screening completed successfully
externalId: aml_screening_12345
- bypassReason: BELOW_THRESHOLD
- extendedRisk: LOW
+ bypassReason: UNSUPPORTED_ASSET
+ extendedRisk: lowRisk
customerRefId: customer_ref_789
customerShortName: ACME Corp
verdict: PASS
- risk: LOW
+ risk: lowRisk
refId: ref_12345
category: EXCHANGE
screeningStatus: COMPLETED
@@ -36977,6 +38546,8 @@ components:
providerResponse:
key: ""
matchedAlert: "{}"
+ providerResponse:
+ key: ""
timestamp: 1753459111824
matchedPrescreeningRule:
sourceId: "0"
@@ -36998,12 +38569,12 @@ components:
networkProtocol: ETH
detailsMessage: Travel rule screening completed successfully
externalId: aml_screening_12345
- bypassReason: BELOW_THRESHOLD
- extendedRisk: LOW
+ bypassReason: UNSUPPORTED_ASSET
+ extendedRisk: lowRisk
customerRefId: customer_ref_789
customerShortName: ACME Corp
verdict: PASS
- risk: LOW
+ risk: lowRisk
refId: ref_12345
category: EXCHANGE
screeningStatus: COMPLETED
@@ -37071,6 +38642,8 @@ components:
providerResponse:
key: ""
matchedAlert: "{}"
+ providerResponse:
+ key: ""
timestamp: 1753459111824
matchedPrescreeningRule:
sourceId: "0"
@@ -37092,12 +38665,12 @@ components:
networkProtocol: ETH
detailsMessage: Travel rule screening completed successfully
externalId: aml_screening_12345
- bypassReason: BELOW_THRESHOLD
- extendedRisk: LOW
+ bypassReason: UNSUPPORTED_ASSET
+ extendedRisk: lowRisk
customerRefId: customer_ref_789
customerShortName: ACME Corp
verdict: PASS
- risk: LOW
+ risk: lowRisk
refId: ref_12345
category: EXCHANGE
screeningStatus: COMPLETED
@@ -37166,6 +38739,8 @@ components:
providerResponse:
key: ""
matchedAlert: "{}"
+ providerResponse:
+ key: ""
timestamp: 1753459111824
matchedPrescreeningRule:
sourceId: "0"
@@ -37187,12 +38762,12 @@ components:
networkProtocol: ETH
detailsMessage: Travel rule screening completed successfully
externalId: aml_screening_12345
- bypassReason: BELOW_THRESHOLD
- extendedRisk: LOW
+ bypassReason: UNSUPPORTED_ASSET
+ extendedRisk: lowRisk
customerRefId: customer_ref_789
customerShortName: ACME Corp
verdict: PASS
- risk: LOW
+ risk: lowRisk
refId: ref_12345
category: EXCHANGE
screeningStatus: COMPLETED
@@ -37227,7 +38802,7 @@ components:
description: |
Additional protocol / operation specific key-value parameters:
- For UTXO-based blockchain input selection, add the key `inputsSelection` with the value set to the [input selection structure.](https://developers.fireblocks.com/reference/transaction-objects#inputsselection) The inputs can be retrieved from the [Retrieve Unspent Inputs endpoint.](https://developers.fireblocks.com/reference/get_vault-accounts-vaultaccountid-assetid-unspent-inputs)
+ For UTXO-based blockchain input selection, add the key `inputsSelection` with the value set to the [input selection structure.](https://developers.fireblocks.com/reference/transaction-objects#inputsselection) The inputs can be retrieved from the [Retrieve Unspent Inputs endpoint.](https://developers.fireblocks.com/reference/getunspentinputs)
For `RAW` operations, add the key `rawMessageData` with the value set to the [raw message data structure.](https://developers.fireblocks.com/reference/raw-signing-objects#rawmessagedata)
@@ -37650,6 +39225,8 @@ components:
providerResponse:
key: ""
matchedAlert: "{}"
+ providerResponse:
+ key: ""
timestamp: 1753459111824
matchedPrescreeningRule:
sourceId: "0"
@@ -37671,12 +39248,12 @@ components:
networkProtocol: ETH
detailsMessage: Travel rule screening completed successfully
externalId: aml_screening_12345
- bypassReason: BELOW_THRESHOLD
- extendedRisk: LOW
+ bypassReason: UNSUPPORTED_ASSET
+ extendedRisk: lowRisk
customerRefId: customer_ref_789
customerShortName: ACME Corp
verdict: PASS
- risk: LOW
+ risk: lowRisk
refId: ref_12345
category: EXCHANGE
screeningStatus: COMPLETED
@@ -37966,6 +39543,8 @@ components:
providerResponse:
key: ""
matchedAlert: "{}"
+ providerResponse:
+ key: ""
timestamp: 1753459111824
matchedPrescreeningRule:
sourceId: "0"
@@ -37987,12 +39566,12 @@ components:
networkProtocol: ETH
detailsMessage: Travel rule screening completed successfully
externalId: aml_screening_12345
- bypassReason: BELOW_THRESHOLD
- extendedRisk: LOW
+ bypassReason: UNSUPPORTED_ASSET
+ extendedRisk: lowRisk
customerRefId: customer_ref_789
customerShortName: ACME Corp
verdict: PASS
- risk: LOW
+ risk: lowRisk
refId: ref_12345
category: EXCHANGE
screeningStatus: COMPLETED
@@ -38060,6 +39639,8 @@ components:
providerResponse:
key: ""
matchedAlert: "{}"
+ providerResponse:
+ key: ""
timestamp: 1753459111824
matchedPrescreeningRule:
sourceId: "0"
@@ -38081,12 +39662,12 @@ components:
networkProtocol: ETH
detailsMessage: Travel rule screening completed successfully
externalId: aml_screening_12345
- bypassReason: BELOW_THRESHOLD
- extendedRisk: LOW
+ bypassReason: UNSUPPORTED_ASSET
+ extendedRisk: lowRisk
customerRefId: customer_ref_789
customerShortName: ACME Corp
verdict: PASS
- risk: LOW
+ risk: lowRisk
refId: ref_12345
category: EXCHANGE
screeningStatus: COMPLETED
@@ -38155,6 +39736,8 @@ components:
providerResponse:
key: ""
matchedAlert: "{}"
+ providerResponse:
+ key: ""
timestamp: 1753459111824
matchedPrescreeningRule:
sourceId: "0"
@@ -38176,12 +39759,12 @@ components:
networkProtocol: ETH
detailsMessage: Travel rule screening completed successfully
externalId: aml_screening_12345
- bypassReason: BELOW_THRESHOLD
- extendedRisk: LOW
+ bypassReason: UNSUPPORTED_ASSET
+ extendedRisk: lowRisk
customerRefId: customer_ref_789
customerShortName: ACME Corp
verdict: PASS
- risk: LOW
+ risk: lowRisk
refId: ref_12345
category: EXCHANGE
screeningStatus: COMPLETED
@@ -38236,9 +39819,9 @@ components:
\ transaction at your Fireblocks workspace."
type: string
assetId:
- description: "The ID of the asset to transfer, for `TRANSFER`, `MINT`, `BURN`,\
- \ `ENABLE_ASSET`,`STAKE` ,`UNSTAKE` or `WITHDRAW` operations. [See the\
- \ list of supported assets and their IDs on Fireblocks.](https://developers.fireblocks.com/reference/get_supported-assets)"
+ description: "The ID of the asset to transfer for `TRANSFER`, `MINT`, `BURN`,\
+ \ `ENABLE_ASSET`, or `STAKE` operations. [See the list of supported assets\
+ \ and their IDs on Fireblocks](https://developers.fireblocks.com/reference/get_supported-assets)."
type: string
x-fb-entity: asset
assetType:
@@ -39787,6 +41370,8 @@ components:
wallet_provider: Metamask
confirmed: true
url: https://example.com/uploaded_image.png
+ did: did:key:z6Mkf12345Zabcdef12345
+ status: verified
properties:
type:
description: "The type of ownership proof. Example values: - `eip-191`:\
@@ -39825,6 +41410,15 @@ components:
\ types only). Example: `https://example.com/uploaded_image.png`"
example: https://example.com/uploaded_image.png
type: string
+ did:
+ description: The Decentralized Identifier (DID) associated with the ownership
+ proof.
+ example: did:key:z6Mkf12345Zabcdef12345
+ type: string
+ status:
+ description: The status of the ownership proof verification.
+ example: verified
+ type: string
confirmed:
description: "Whether the user confirmed ownership of the wallet (for `self-declaration`\
\ proofs). Example: `true`"
@@ -39843,6 +41437,8 @@ components:
wallet_provider: Metamask
confirmed: true
url: https://example.com/uploaded_image.png
+ did: did:key:z6Mkf12345Zabcdef12345
+ status: verified
isNonCustodial: true
beneficiaryRef: BEN654321
originator:
@@ -40974,6 +42570,8 @@ components:
wallet_provider: Metamask
confirmed: true
url: https://example.com/uploaded_image.png
+ did: did:key:z6Mkf12345Zabcdef12345
+ status: verified
originatorVASPdid: did:ethr:0x44957e75d6ce4a5bf37aae117da86422c848f7c2
beneficiaryDid: did:key:z6Mkf67890Zghijkl67890
beneficiaryVASPdid: did:ethr:0x17fe2dd11a2daa7f6c1fdf22532a4763f963aea6
@@ -41165,6 +42763,8 @@ components:
wallet_provider: Metamask
confirmed: true
url: https://example.com/uploaded_image.png
+ did: did:key:z6Mkf12345Zabcdef12345
+ status: verified
isNonCustodial: true
beneficiaryRef: BEN654321
originator:
@@ -42296,6 +43896,8 @@ components:
wallet_provider: Metamask
confirmed: true
url: https://example.com/uploaded_image.png
+ did: did:key:z6Mkf12345Zabcdef12345
+ status: verified
originatorVASPdid: did:ethr:0x44957e75d6ce4a5bf37aae117da86422c848f7c2
beneficiaryDid: did:key:z6Mkf67890Zghijkl67890
beneficiaryVASPdid: did:ethr:0x17fe2dd11a2daa7f6c1fdf22532a4763f963aea6
@@ -44332,6 +45934,8 @@ components:
wallet_provider: Metamask
confirmed: true
url: https://example.com/uploaded_image.png
+ did: did:key:z6Mkf12345Zabcdef12345
+ status: verified
isNonCustodial: true
beneficiaryRef: BEN654321
originator:
@@ -45463,6 +47067,8 @@ components:
wallet_provider: Metamask
confirmed: true
url: https://example.com/uploaded_image.png
+ did: did:key:z6Mkf12345Zabcdef12345
+ status: verified
originatorVASPdid: did:ethr:0x44957e75d6ce4a5bf37aae117da86422c848f7c2
beneficiaryDid: did:key:z6Mkf67890Zghijkl67890
beneficiaryVASPdid: did:ethr:0x17fe2dd11a2daa7f6c1fdf22532a4763f963aea6
@@ -45566,6 +47172,8 @@ components:
wallet_provider: Metamask
confirmed: true
url: https://example.com/uploaded_image.png
+ did: did:key:z6Mkf12345Zabcdef12345
+ status: verified
isNonCustodial: true
beneficiaryRef: BEN654321
originator:
@@ -46697,6 +48305,8 @@ components:
wallet_provider: Metamask
confirmed: true
url: https://example.com/uploaded_image.png
+ did: did:key:z6Mkf12345Zabcdef12345
+ status: verified
originatorVASPdid: did:ethr:0x44957e75d6ce4a5bf37aae117da86422c848f7c2
beneficiaryDid: did:key:z6Mkf67890Zghijkl67890
beneficiaryVASPdid: did:ethr:0x17fe2dd11a2daa7f6c1fdf22532a4763f963aea6
@@ -52430,6 +54040,191 @@ components:
items:
$ref: "#/components/schemas/Delegation"
type: array
+ Position:
+ example:
+ availableActions:
+ - UNSTAKE
+ blockchainPositionInfo:
+ stakeAccountAddress: 3Ru67FyzMTcdENmmRL4Eve4dtPd6AdpuypR21q5EQCdq
+ chainDescriptor: SOL
+ amount: "0.05"
+ inProgress: true
+ inProgressTxId: c80601f4-d7b1-4795-a8ee-b09cdb5b450c
+ validatorAddress: FwR3PbjS5iyqzLiLugrBqKSa5EKZ4vK9SKs7eQXtT59f
+ vaultAccountId: "2"
+ dateUpdated: 2023-07-13T15:55:34.256Z
+ rewardsAmount: "0.000856038"
+ dateCreated: 2023-07-13T15:55:34.256Z
+ providerId: kiln
+ validatorName: FwR3P......tT59f
+ id: b70701f4-d7b1-4795-a8ee-b09cdb5b850a
+ providerName: Kiln
+ status: ACTIVE
+ properties:
+ id:
+ description: The unique identifier of the staking position
+ example: b70701f4-d7b1-4795-a8ee-b09cdb5b850a
+ type: string
+ vaultAccountId:
+ description: The source vault account to stake from
+ example: "2"
+ type: string
+ validatorName:
+ description: The destination validator address name
+ example: FwR3P......tT59f
+ type: string
+ providerName:
+ description: The destination validator provider name
+ example: Kiln
+ type: string
+ chainDescriptor:
+ description: The protocol identifier (e.g. "ETH"/ "SOL") to use
+ example: SOL
+ type: string
+ amount:
+ description: "Total value of the staking position. For Solana, Lido and\
+ \ Ethereum (compounding validator): includes the original stake plus accumulated\
+ \ rewards. For MATIC, Cosmos and Ethereum (legacy validator): refers to\
+ \ the amount currently staked."
+ example: "0.05"
+ type: string
+ rewardsAmount:
+ description: "The amount staked in the position, measured in the staked\
+ \ asset unit."
+ example: "0.000856038"
+ type: string
+ dateCreated:
+ description: When was the request made (ISO Date).
+ example: 2023-07-13T15:55:34.256Z
+ format: date-time
+ type: string
+ dateUpdated:
+ description: When has the position last changed (ISO Date).
+ example: 2023-07-13T15:55:34.256Z
+ format: date-time
+ type: string
+ status:
+ description: The current status.
+ enum:
+ - CREATING
+ - PENDING
+ - ACTIVATING
+ - ACTIVE
+ - DEACTIVATING
+ - DEACTIVATED
+ - WITHDRAWING
+ - WITHDRAWN
+ - MERGED
+ - CONSOLIDATED
+ - CANCELED
+ - FAILED
+ example: ACTIVE
+ type: string
+ validatorAddress:
+ description: The destination address of the staking transaction.
+ example: FwR3PbjS5iyqzLiLugrBqKSa5EKZ4vK9SKs7eQXtT59f
+ type: string
+ providerId:
+ $ref: "#/components/schemas/StakingProvider"
+ availableActions:
+ description: "An array of available actions that can be performed. for example,\
+ \ actions like \"UNSTAKE\" or \"WITHDRAW\"."
+ example:
+ - UNSTAKE
+ items:
+ enum:
+ - UNSTAKE
+ - WITHDRAW
+ - ADD_TO_STAKE
+ - SPLIT
+ - MERGE
+ - CLAIM_REWARDS
+ - CONSOLIDATE
+ type: string
+ type: array
+ inProgress:
+ description: Indicates whether there is an ongoing action for this position
+ related to this request
+ example: true
+ type: boolean
+ inProgressTxId:
+ description: The transaction ID of the initial stake position request only.
+ Only present when there is an active initial stake transaction.
+ example: c80601f4-d7b1-4795-a8ee-b09cdb5b450c
+ type: string
+ blockchainPositionInfo:
+ $ref: "#/components/schemas/Delegation_blockchainPositionInfo"
+ required:
+ - amount
+ - availableActions
+ - blockchainPositionInfo
+ - chainDescriptor
+ - dateCreated
+ - dateUpdated
+ - id
+ - inProgress
+ - providerId
+ - providerName
+ - rewardsAmount
+ - status
+ - validatorAddress
+ - validatorName
+ - vaultAccountId
+ type: object
+ StakingPositionsPaginatedResponse:
+ example:
+ next: eJ0eXAiOiJKV1QiLCJhbGcOiJIUzI1NiJ9
+ data:
+ - availableActions:
+ - UNSTAKE
+ blockchainPositionInfo:
+ stakeAccountAddress: 3Ru67FyzMTcdENmmRL4Eve4dtPd6AdpuypR21q5EQCdq
+ chainDescriptor: SOL
+ amount: "0.05"
+ inProgress: true
+ inProgressTxId: c80601f4-d7b1-4795-a8ee-b09cdb5b450c
+ validatorAddress: FwR3PbjS5iyqzLiLugrBqKSa5EKZ4vK9SKs7eQXtT59f
+ vaultAccountId: "2"
+ dateUpdated: 2023-07-13T15:55:34.256Z
+ rewardsAmount: "0.000856038"
+ dateCreated: 2023-07-13T15:55:34.256Z
+ providerId: kiln
+ validatorName: FwR3P......tT59f
+ id: b70701f4-d7b1-4795-a8ee-b09cdb5b850a
+ providerName: Kiln
+ status: ACTIVE
+ - availableActions:
+ - UNSTAKE
+ blockchainPositionInfo:
+ stakeAccountAddress: 3Ru67FyzMTcdENmmRL4Eve4dtPd6AdpuypR21q5EQCdq
+ chainDescriptor: SOL
+ amount: "0.05"
+ inProgress: true
+ inProgressTxId: c80601f4-d7b1-4795-a8ee-b09cdb5b450c
+ validatorAddress: FwR3PbjS5iyqzLiLugrBqKSa5EKZ4vK9SKs7eQXtT59f
+ vaultAccountId: "2"
+ dateUpdated: 2023-07-13T15:55:34.256Z
+ rewardsAmount: "0.000856038"
+ dateCreated: 2023-07-13T15:55:34.256Z
+ providerId: kiln
+ validatorName: FwR3P......tT59f
+ id: b70701f4-d7b1-4795-a8ee-b09cdb5b850a
+ providerName: Kiln
+ status: ACTIVE
+ properties:
+ data:
+ description: The data of the current page of staking positions
+ items:
+ $ref: "#/components/schemas/Position"
+ type: array
+ next:
+ description: The cursor for the next page
+ example: eJ0eXAiOiJKV1QiLCJhbGcOiJIUzI1NiJ9
+ nullable: true
+ type: string
+ required:
+ - data
+ type: object
AmountAndChainDescriptor:
example:
chainDescriptor: ETH
@@ -52588,12 +54383,98 @@ components:
items:
$ref: "#/components/schemas/Provider"
type: array
- BaseProvider:
+ ManifestBase:
+ description: Base manifest schema with common properties
+ properties:
+ supported:
+ description: Indicates whether the endpoint is supported by the provider
+ type: boolean
+ required:
+ - supported
+ type: object
+ SettlementTypeEnum:
+ description: Settlement type supported by the provider
+ enum:
+ - DVP
+ - PREFUNDED
+ type: string
+ ExecutionRequestDetailsType:
+ description: Execution type supported by the provider
+ enum:
+ - QUOTE
+ - MARKET
+ type: string
+ ManifestOrderInfo:
+ description: Defines requirements for the POST /orders endpoint.
+ properties:
+ settlementTypes:
+ description: |
+ Supported settlement types when creating an order.
+ If present - settlement is required. If absent - no need to provide settlement.
+ items:
+ $ref: "#/components/schemas/SettlementTypeEnum"
+ type: array
+ executionTypes:
+ description: Supported execution types when creating an order.
+ items:
+ $ref: "#/components/schemas/ExecutionRequestDetailsType"
+ type: array
+ required:
+ - executionTypes
+ type: object
+ ManifestOrder:
+ allOf:
+ - $ref: "#/components/schemas/ManifestBase"
+ - $ref: "#/components/schemas/ManifestOrderInfo"
+ DVPSettlementType:
+ enum:
+ - DVP
+ type: string
+ ManifestQuoteInfo:
+ description: Defines requirements for the POST /quotes endpoint.
+ properties:
+ settlementTypes:
+ description: |
+ Supported settlement types when requesting a quote.
+ If present - settlement is required. If absent - no need to provide settlement.
+ items:
+ $ref: "#/components/schemas/DVPSettlementType"
+ type: array
+ type: object
+ ManifestQuote:
+ allOf:
+ - $ref: "#/components/schemas/ManifestBase"
+ - $ref: "#/components/schemas/ManifestQuoteInfo"
+ Manifest:
+ description: "The manifest of the provider, describing its supported order,\
+ \ quote, and rate requirements."
example:
- id: prov_7b4e2d9f1c8a5e3b
- name: Global Exchange Partners
- logo: https://example.com/logos/global-exchange-partners.png
- accountBased: false
+ order:
+ supported: true
+ executionTypes:
+ - MARKET
+ - QUOTE
+ settlementTypes:
+ - DVP
+ quote:
+ supported: true
+ settlementTypes:
+ - DVP
+ rate:
+ supported: true
+ properties:
+ order:
+ $ref: "#/components/schemas/ManifestOrder"
+ quote:
+ $ref: "#/components/schemas/ManifestQuote"
+ rate:
+ $ref: "#/components/schemas/ManifestBase"
+ required:
+ - order
+ - quote
+ - rate
+ type: object
+ BaseProvider:
properties:
id:
description: Unique identifier for the provider
@@ -52608,44 +54489,14 @@ components:
description: Indicates whether the provider access model is through accounts
or directly
type: boolean
+ manifest:
+ $ref: "#/components/schemas/Manifest"
required:
- accountBased
- id
+ - manifest
- name
type: object
- AssetTypeEnum:
- enum:
- - DIGITAL
- - FIAT
- type: string
- Capability:
- enum:
- - WITHDRAWALS
- - DEPOSITS
- - TRADING
- example: TRADING
- type: string
- Manifest:
- example:
- assetTypes:
- - DIGITAL
- - FIAT
- capabilities:
- - SPOT_TRADING
- - LIMIT_ORDERS
- properties:
- assetTypes:
- items:
- $ref: "#/components/schemas/AssetTypeEnum"
- type: array
- capabilities:
- items:
- $ref: "#/components/schemas/Capability"
- type: array
- required:
- - assetTypes
- - capabilities
- type: object
AccountBase:
example:
id: acc_9f4e2d8b1c6a5e73
@@ -52661,10 +54512,8 @@ components:
- id
- name
type: object
- AccountBasedAccessProviderDetails:
+ AccountBasedAccessProviderInfo:
properties:
- manifest:
- $ref: "#/components/schemas/Manifest"
connected:
description: Whether the provider is currently connected
type: boolean
@@ -52673,31 +54522,34 @@ components:
$ref: "#/components/schemas/AccountBase"
type: array
required:
- - accountBased
+ - accounts
- connected
- - manifest
type: object
AccountBasedAccessProvider:
allOf:
- $ref: "#/components/schemas/BaseProvider"
- - $ref: "#/components/schemas/AccountBasedAccessProviderDetails"
+ - $ref: "#/components/schemas/AccountBasedAccessProviderInfo"
example:
- id: prov_9a2c4e8f7b1d3a6e
- name: Premium Trading Co
- logo: https://example.com/logos/premium-trading-co.png
+ id: BRIDGE
+ name: Bridge
+ logo: https://example.com/logos/bridge.png
accountBased: true
manifest:
- assetTypes:
- - DIGITAL
- - FIAT
- capabilities:
- - SPOT_TRADING
+ order:
+ supported: true
+ executionTypes:
+ - MARKET
+ settlementTypes:
+ - DVP
+ quote:
+ supported: false
+ rate:
+ supported: true
connected: true
accounts:
- - id: acc_5f8e2d9c1a7b4e36
- name: Trading Account 1
- description: Primary trading account
- DirectAccessProviderDetails:
+ - id: acc_5e9a2d1c4b7f3e8a
+ name: Main Trading Account
+ DirectAccessProviderInfo:
properties:
approved:
description: Whether the provider was approved for use
@@ -52708,22 +54560,38 @@ components:
termsOfServiceUrl:
description: URL to the terms of service document
type: string
+ privacyPolicyUrl:
+ description: URL to the privacy policy document
+ type: string
required:
- - accountBased
- hasTermsOfService
type: object
DirectAccessProvider:
allOf:
- $ref: "#/components/schemas/BaseProvider"
- - $ref: "#/components/schemas/DirectAccessProviderDetails"
+ - $ref: "#/components/schemas/DirectAccessProviderInfo"
example:
- id: prov_2f8e1d9b4c7a5e3f
- name: DirectTrade Solutions
- logo: https://example.com/logos/directtrade-solutions.png
+ id: UNISWAP_CLASSIC
+ name: Uniswap Classic
+ logo: https://example.com/logos/uniswap.png
accountBased: false
+ manifest:
+ order:
+ supported: true
+ executionTypes:
+ - MARKET
+ - QUOTE
+ settlementTypes:
+ - DVP
+ quote:
+ supported: true
+ settlementTypes:
+ - DVP
+ rate:
+ supported: true
approved: true
hasTermsOfService: true
- termsOfServiceUrl: https://directtrade.example.com/terms
+ termsOfServiceUrl: https://uniswap.org/terms
TradingProvider:
oneOf:
- $ref: "#/components/schemas/AccountBasedAccessProvider"
@@ -52731,25 +54599,40 @@ components:
ProvidersListResponse:
example:
data:
- - id: bridge-provider-001
- name: Bridge Provider
+ - id: BRIDGE
+ name: Bridge
logo: https://example.com/logos/bridge.png
accountBased: true
manifest:
- assetTypes:
- - DIGITAL
- - FIAT
- capabilities:
- - TRADING
- - WITHDRAWALS
+ order:
+ supported: true
+ executionTypes:
+ - MARKET
+ settlementTypes:
+ - DVP
+ quote:
+ supported: false
+ rate:
+ supported: true
connected: true
accounts:
- - id: acc_9f4e2d8b1c6a5e73
+ - id: acc_5e9a2d1c4b7f3e8a
name: Main Trading Account
- - id: uniswap-v3-provider
- name: Uniswap V3
+ - id: UNISWAP_CLASSIC
+ name: Uniswap Classic
logo: https://example.com/logos/uniswap.png
accountBased: false
+ manifest:
+ order:
+ supported: true
+ executionTypes:
+ - MARKET
+ settlementTypes:
+ - PREFUNDED
+ quote:
+ supported: false
+ rate:
+ supported: true
approved: true
hasTermsOfService: true
termsOfServiceUrl: https://uniswap.org/terms
@@ -52786,6 +54669,58 @@ components:
- code
- message
type: object
+ AccountBasedProviderDetails:
+ allOf:
+ - $ref: "#/components/schemas/BaseProvider"
+ - $ref: "#/components/schemas/AccountBasedAccessProviderInfo"
+ example:
+ id: BRIDGE
+ name: Bridge
+ logo: https://example.com/logos/bridge.png
+ accountBased: true
+ manifest:
+ order:
+ supported: true
+ executionTypes:
+ - MARKET
+ settlementTypes:
+ - DVP
+ quote:
+ supported: false
+ rate:
+ supported: true
+ connected: true
+ accounts:
+ - id: acc_5e9a2d1c4b7f3e8a
+ name: Main Trading Account
+ DirectProviderDetails:
+ allOf:
+ - $ref: "#/components/schemas/BaseProvider"
+ - $ref: "#/components/schemas/DirectAccessProviderInfo"
+ example:
+ id: UNISWAP_CLASSIC
+ name: Uniswap Classic
+ logo: https://example.com/logos/uniswap.png
+ accountBased: false
+ manifest:
+ order:
+ supported: true
+ executionTypes:
+ - MARKET
+ settlementTypes:
+ - PREFUNDED
+ quote:
+ supported: false
+ rate:
+ supported: true
+ approved: true
+ hasTermsOfService: true
+ termsOfServiceUrl: https://uniswap.org/terms
+ privacyPolicyUrl: https://uniswap.org/privacy
+ TradingProviderDetails:
+ oneOf:
+ - $ref: "#/components/schemas/AccountBasedProviderDetails"
+ - $ref: "#/components/schemas/DirectProviderDetails"
ScopeItem:
additionalProperties: false
example:
@@ -52836,10 +54771,6 @@ components:
- CHAPS
example: BLOCKCHAIN
type: string
- DVPSettlementType:
- enum:
- - DVP
- type: string
PlatformPeerType:
enum:
- VAULT_ACCOUNT
@@ -54904,6 +56835,9 @@ components:
- value
type: object
InteracAddress:
+ description: |-
+ When true, funds are deposited directly into the recipient's bank account without a security question.
+ When false, a security question and answer are required to complete the transfer
example:
accountHolder:
name: John Smith
@@ -54916,6 +56850,7 @@ components:
type: EMAIL
value: john.smith@email.com
message: Please deposit the funds into the account
+ autoDeposit: true
securityQuestion: What is your mother's maiden name?
securityAnswer: Jane Smith
properties:
@@ -54927,8 +56862,21 @@ components:
description: The message to be sent to the recipient
example: Please deposit the funds into the account
type: string
+ autoDeposit:
+ description: Whether to automatically deposit the funds into the account
+ example: true
+ type: boolean
+ securityQuestion:
+ description: The security question to be used for the security answer
+ example: What is your mother's maiden name?
+ type: string
+ securityAnswer:
+ description: The security answer to be used for the security question
+ example: Jane Smith
+ type: string
required:
- accountHolder
+ - autoDeposit
- recipientHandle
type: object
InteracDestination:
@@ -55379,6 +57327,7 @@ components:
- APECHAIN_TEST
- CRONOS
- CRONOS_TEST
+ - ROBINHOOD_CHAIN_TESTNET_TEST
type: string
description:
type: string
@@ -55546,6 +57495,7 @@ components:
- APECHAIN_TEST
- CRONOS
- CRONOS_TEST
+ - ROBINHOOD_CHAIN_TESTNET_TEST
type: string
description:
type: string
@@ -55651,6 +57601,7 @@ components:
- APECHAIN_TEST
- CRONOS
- CRONOS_TEST
+ - ROBINHOOD_CHAIN_TESTNET_TEST
type: string
contractAddress:
description: Collection contract standard
@@ -56017,8 +57968,10 @@ components:
required:
- approve
type: object
- AddressRegistryLegalEntity:
- description: Legal entity resolved for an address-registry lookup
+ AddressRegistryLegalEntityLegacy:
+ description: "Narrow legacy response for deprecated `GET /v1/address_registry/legal_entity?address=…\
+ `. Use `GET /v1/address_registry/legal_entities/{address}` for the full field\
+ \ set."
example:
companyId: 550e8400-e29b-41d4-a716-446655440000
countryCode: US
@@ -56043,20 +57996,229 @@ components:
- countryCode
type: object
AddressRegistryError:
- description: Error body for address-registry 4xx and 5xx.
+ description: Error body for address registry operations (4xx and 5xx).
example:
- code: 0
- message: message
+ code: 2140
+ message: Address registry opt-in required for this workspace.
properties:
code:
- description: "Numeric error code (2140–2143) for 403, 404 and 5xx responses."
+ description: |
+ Application error code when present. Typical values include **2140** (403 — workspace not opted in to the address registry) and **2142** (404 — not found). Other codes may appear, including on server errors.
+ example: 2140
type: integer
message:
description: Human-readable error message
+ example: Address registry opt-in required for this workspace.
type: string
required:
- message
type: object
+ AddressRegistryTravelRuleProvider:
+ description: Travel Rule provider identifier (string enum value).
+ enum:
+ - TRAVEL_RULE_PROVIDER_NOTABENE
+ - TRAVEL_RULE_PROVIDER_SYGNA
+ - TRAVEL_RULE_PROVIDER_TRISA
+ - TRAVEL_RULE_PROVIDER_OPENVASP
+ example: TRAVEL_RULE_PROVIDER_NOTABENE
+ type: string
+ AddressRegistryLegalEntity:
+ description: Legal entity details for a blockchain address.
+ example:
+ lei: 254900GC33RBE6FQA817
+ entityName: ACME Corporation
+ jurisdiction: US
+ verified: true
+ travelRuleProviders:
+ - TRAVEL_RULE_PROVIDER_NOTABENE
+ - TRAVEL_RULE_PROVIDER_SYGNA
+ email: compliance@example.com
+ properties:
+ verified:
+ description: Whether the entity was resolved from verified public registry
+ data (e.g. LEI sources).
+ example: true
+ type: boolean
+ entityName:
+ description: Legal entity display name.
+ example: ACME Corporation
+ type: string
+ jurisdiction:
+ description: Jurisdiction (e.g. ISO 3166-1 alpha-2 country code).
+ example: US
+ type: string
+ lei:
+ description: Legal Entity Identifier when available; may be empty when unverified.
+ example: 254900GC33RBE6FQA817
+ type: string
+ travelRuleProviders:
+ example:
+ - TRAVEL_RULE_PROVIDER_NOTABENE
+ - TRAVEL_RULE_PROVIDER_SYGNA
+ items:
+ $ref: "#/components/schemas/AddressRegistryTravelRuleProvider"
+ type: array
+ email:
+ description: Travel Rule contact email when available.
+ example: compliance@example.com
+ type: string
+ required:
+ - email
+ - entityName
+ - jurisdiction
+ - lei
+ - travelRuleProviders
+ - verified
+ type: object
+ AddressRegistryTenantRegistryResponse:
+ description: "Workspace participation in the address registry. Same shape for\
+ \ GET, POST (opt in), and DELETE (opt out)."
+ example:
+ status: OPTED_IN
+ properties:
+ status:
+ description: OPTED_IN or OPTED_OUT.
+ enum:
+ - OPTED_IN
+ - OPTED_OUT
+ example: OPTED_IN
+ type: string
+ required:
+ - status
+ type: object
+ AddressRegistryVaultListOrder:
+ default: VAULT_OPT_OUT_LIST_ORDER_ASC
+ description: Sort order for the vault opt-out list by vault account id (ascending
+ is the default when omitted).
+ enum:
+ - VAULT_OPT_OUT_LIST_ORDER_ASC
+ - VAULT_OPT_OUT_LIST_ORDER_DESC
+ example: VAULT_OPT_OUT_LIST_ORDER_ASC
+ type: string
+ AddressRegistryVaultOptOutItem:
+ description: A vault account excluded from the address registry for your workspace.
+ properties:
+ vaultAccountId:
+ description: Vault account ID.
+ example: 10001
+ format: int32
+ type: integer
+ required:
+ - vaultAccountId
+ type: object
+ AddressRegistryListVaultOptOutsResponse:
+ example:
+ next: eyJvZmZzZXQiOjEwLCJwYWdlU2l6ZSI6MTB9
+ total: 2
+ data:
+ - vaultAccountId: 10001
+ - vaultAccountId: 10002
+ prev: ""
+ properties:
+ total:
+ description: Total number of vault accounts excluded from the address registry
+ for your workspace.
+ example: 2
+ format: int32
+ type: integer
+ data:
+ example:
+ - vaultAccountId: 10001
+ - vaultAccountId: 10002
+ items:
+ $ref: "#/components/schemas/AddressRegistryVaultOptOutItem"
+ type: array
+ next:
+ description: Opaque cursor for the next page; empty when there is no next
+ page.
+ example: eyJvZmZzZXQiOjEwLCJwYWdlU2l6ZSI6MTB9
+ type: string
+ prev:
+ description: Opaque cursor for the previous page; empty when there is no
+ previous page.
+ example: ""
+ type: string
+ required:
+ - data
+ - total
+ type: object
+ AddressRegistryAddVaultOptOutsRequest:
+ example:
+ vaultAccountIds:
+ - 10001
+ - "10002"
+ properties:
+ vaultAccountIds:
+ description: |
+ Vault account ids to add to the opt-out list (non-empty). Each element may be a JSON number or a decimal string; both forms are accepted.
+ example:
+ - 10001
+ - "10002"
+ items:
+ $ref: "#/components/schemas/AddressRegistryAddVaultOptOutsRequest_vaultAccountIds_inner"
+ minItems: 1
+ type: array
+ required:
+ - vaultAccountIds
+ type: object
+ AddressRegistryAddVaultOptOutsResponse:
+ description: Result of adding vault account ids to the workspace opt-out list
+ for the address registry.
+ example:
+ acceptedCount: 3
+ properties:
+ acceptedCount:
+ description: "Number of vault ids from the request that were processed.\
+ \ An empty `vaultAccountIds` list is rejected with HTTP 400, not a 200\
+ \ with zero."
+ example: 3
+ format: int32
+ type: integer
+ required:
+ - acceptedCount
+ type: object
+ AddressRegistryRemoveAllVaultOptOutsResponse:
+ description: Result of clearing all vault-level opt-outs for the address registry
+ on this workspace.
+ example:
+ removedCount: 5
+ properties:
+ removedCount:
+ description: Number of opt-out rows deleted (0 if none existed).
+ example: 5
+ format: int32
+ type: integer
+ required:
+ - removedCount
+ type: object
+ AddressRegistryGetVaultOptOutResponse:
+ description: Whether the given vault account is excluded from the address registry
+ for your workspace.
+ example:
+ optedOut: false
+ properties:
+ optedOut:
+ description: |
+ `true` if this vault account is excluded from the address registry; `false` if it is not excluded.
+ example: false
+ type: boolean
+ required:
+ - optedOut
+ type: object
+ AddressRegistryRemoveVaultOptOutResponse:
+ description: Body after removing one vault from the opt-out list; same fields
+ as GET for that vault (`optedOut` is false).
+ example:
+ optedOut: false
+ properties:
+ optedOut:
+ description: Always false after a successful remove — the vault is not on
+ the opt-out list.
+ example: false
+ type: boolean
+ required:
+ - optedOut
+ type: object
TravelRuleNotationEnum:
items:
enum:
@@ -57440,6 +59602,8 @@ components:
wallet_provider: Metamask
confirmed: true
url: https://example.com/uploaded_image.png
+ did: did:key:z6Mkf12345Zabcdef12345
+ status: verified
isNonCustodial: true
transactionAsset: BTC
beneficiaryRef: BEN654321
@@ -59191,6 +61355,8 @@ components:
wallet_provider: Metamask
confirmed: true
url: https://example.com/uploaded_image.png
+ did: did:key:z6Mkf12345Zabcdef12345
+ status: verified
originatorVASPdid: did:ethr:0x44957e75d6ce4a5bf37aae117da86422c848f7c2
beneficiaryDid: did:key:z6Mkf67890Zghijkl67890
beneficiaryVASPdid: did:ethr:0x17fe2dd11a2daa7f6c1fdf22532a4763f963aea6
@@ -60284,7 +62450,9 @@ components:
$ref: "#/components/schemas/PolicyVerdictActionEnum-2"
type: object
ScreeningAmlResult:
+ deprecated: true
description: |
+ Deprecated: This field is not currently returned in the API response.
Detailed AML screening result information.
Contains alerts, risk scores, and other AML-specific data from provider-specific responses.
example:
@@ -60378,7 +62546,9 @@ components:
$ref: "#/components/schemas/TravelRuleVerdictEnum"
type: object
ScreeningTravelRuleResult:
+ deprecated: true
description: |
+ Deprecated: This field is not currently returned in the API response.
Detailed Travel Rule screening result containing provider-specific data.
Contains Travel Rule specific information like verified status, rule type, and actions.
example:
@@ -60563,6 +62733,8 @@ components:
providerResponse:
key: ""
matchedAlert: "{}"
+ providerResponse:
+ key: ""
timestamp: 1753459111824
matchedPrescreeningRule:
sourceId: "0"
@@ -60584,12 +62756,12 @@ components:
networkProtocol: ETH
detailsMessage: Travel rule screening completed successfully
externalId: aml_screening_12345
- bypassReason: BELOW_THRESHOLD
- extendedRisk: LOW
+ bypassReason: UNSUPPORTED_ASSET
+ extendedRisk: lowRisk
customerRefId: customer_ref_789
customerShortName: ACME Corp
verdict: PASS
- risk: LOW
+ risk: lowRisk
refId: ref_12345
category: EXCHANGE
screeningStatus: COMPLETED
@@ -60601,7 +62773,7 @@ components:
description: |
The AML/Travel Rule provider name.
For AML: ELLIPTIC, CHAINALYSIS, etc.
- For Travel Rule: NOTABENE, SUMSUB, or any TRLink provider name
+ For Travel Rule: NOTABENE, SUMSUB, GTR, or any TRLink provider name
example: NOTABENE
type: string
payload:
@@ -60630,24 +62802,43 @@ components:
bypassReason:
description: |
Reason for bypassing the screening, if applicable.
- For AML: SANCTIONS_SCREENING_BYPASS, SANCTIONS_RECIPIENT_BYPASS, etc.
- For Travel Rule: BELOW_THRESHOLD, NO_TRM_AVAILABLE, etc.
- example: BELOW_THRESHOLD
+ For AML: UNSUPPORTED_ASSET, PASSED_BY_POLICY.
+ For Travel Rule: UNSUPPORTED_ASSET, NO_TRAVEL_RULE_MESSAGE, TRANSACTION_ZERO_AMOUNT.
+ example: UNSUPPORTED_ASSET
type: string
status:
$ref: "#/components/schemas/AmlStatusEnum"
prevStatus:
$ref: "#/components/schemas/AmlStatusEnum"
prevBypassReason:
- description: Previous bypass reason before the current bypass reason change
+ deprecated: true
+ description: |
+ Deprecated: This field is not currently returned in the API response.
+ Previous bypass reason before the current bypass reason change.
example: BELOW_THRESHOLD
type: string
verdict:
$ref: "#/components/schemas/ScreeningVerdictEnum"
risk:
- $ref: "#/components/schemas/ScreeningRiskLevelEnum"
+ description: |
+ Risk level assessment for screening results.
+ Values vary by provider and are not managed by this service.
+
+ Known values by provider:
+ - Chainalysis: severeRisk, highRisk, mediumRisk, lowRisk, noRiskInfo
+ - Elliptic: noRiskDetected
+
+ Legacy values (SCREAMING_SNAKE_CASE, may appear in old transactions):
+ VERY_HIGH, SEVERE, HIGH, MEDIUM, LOW, NO_RISK_INFO, UNKNOWN
+ example: lowRisk
+ type: string
extendedRisk:
- $ref: "#/components/schemas/ScreeningRiskLevelEnum"
+ deprecated: true
+ description: |
+ Deprecated: This field is not currently returned in the API response.
+ Use risk instead.
+ example: lowRisk
+ type: string
externalId:
description: External identifier for the screening (provider-specific)
example: aml_screening_12345
@@ -60657,7 +62848,10 @@ components:
example: customer_ref_789
type: string
refId:
- description: Internal reference identifier
+ deprecated: true
+ description: |
+ Deprecated: This field is not currently returned in the API response.
+ Internal reference identifier.
example: ref_12345
type: string
category:
@@ -60680,11 +62874,17 @@ components:
example: memo_12345
type: string
destRecordId:
- description: The destination record identifier used by the screening provider
+ deprecated: true
+ description: |
+ Deprecated: This field is not currently returned in the API response.
+ The destination record identifier used by the screening provider.
example: record_001
type: string
addressResolutionSignature:
- description: Cryptographic signature for address resolution verification
+ deprecated: true
+ description: |
+ Deprecated: This field is not currently returned in the API response.
+ Cryptographic signature for address resolution verification.
example: 0x1234567890abcdef
type: string
amlResult:
@@ -60726,6 +62926,19 @@ components:
providers
example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
type: string
+ providerResponse:
+ additionalProperties: true
+ description: |
+ Complete response from the screening provider. This is a dynamic object that varies
+ significantly between different providers (Chainalysis, Elliptic, NOTABENE, etc.).
+ Each provider has their own proprietary response format and schema.
+
+ For AML providers: Contains risk scores, alerts, entity information
+ For Travel Rule providers: Contains VASP information, PII data, protocol-specific fields
+
+ The structure is provider-dependent and cannot be standardized as each
+ vendor implements their own proprietary data models and response formats.
+ type: object
type: object
AmlRegistrationResultFullPayload:
description: The results of the AML address registration.
@@ -61349,6 +63562,8 @@ components:
providerResponse:
key: ""
matchedAlert: "{}"
+ providerResponse:
+ key: ""
timestamp: 1753459111824
matchedPrescreeningRule:
sourceId: "0"
@@ -61370,12 +63585,12 @@ components:
networkProtocol: ETH
detailsMessage: Travel rule screening completed successfully
externalId: aml_screening_12345
- bypassReason: BELOW_THRESHOLD
- extendedRisk: LOW
+ bypassReason: UNSUPPORTED_ASSET
+ extendedRisk: lowRisk
customerRefId: customer_ref_789
customerShortName: ACME Corp
verdict: PASS
- risk: LOW
+ risk: lowRisk
refId: ref_12345
category: EXCHANGE
screeningStatus: COMPLETED
@@ -61665,6 +63880,8 @@ components:
providerResponse:
key: ""
matchedAlert: "{}"
+ providerResponse:
+ key: ""
timestamp: 1753459111824
matchedPrescreeningRule:
sourceId: "0"
@@ -61686,12 +63903,12 @@ components:
networkProtocol: ETH
detailsMessage: Travel rule screening completed successfully
externalId: aml_screening_12345
- bypassReason: BELOW_THRESHOLD
- extendedRisk: LOW
+ bypassReason: UNSUPPORTED_ASSET
+ extendedRisk: lowRisk
customerRefId: customer_ref_789
customerShortName: ACME Corp
verdict: PASS
- risk: LOW
+ risk: lowRisk
refId: ref_12345
category: EXCHANGE
screeningStatus: COMPLETED
@@ -61759,6 +63976,8 @@ components:
providerResponse:
key: ""
matchedAlert: "{}"
+ providerResponse:
+ key: ""
timestamp: 1753459111824
matchedPrescreeningRule:
sourceId: "0"
@@ -61780,12 +63999,12 @@ components:
networkProtocol: ETH
detailsMessage: Travel rule screening completed successfully
externalId: aml_screening_12345
- bypassReason: BELOW_THRESHOLD
- extendedRisk: LOW
+ bypassReason: UNSUPPORTED_ASSET
+ extendedRisk: lowRisk
customerRefId: customer_ref_789
customerShortName: ACME Corp
verdict: PASS
- risk: LOW
+ risk: lowRisk
refId: ref_12345
category: EXCHANGE
screeningStatus: COMPLETED
@@ -61854,6 +64073,8 @@ components:
providerResponse:
key: ""
matchedAlert: "{}"
+ providerResponse:
+ key: ""
timestamp: 1753459111824
matchedPrescreeningRule:
sourceId: "0"
@@ -61875,12 +64096,12 @@ components:
networkProtocol: ETH
detailsMessage: Travel rule screening completed successfully
externalId: aml_screening_12345
- bypassReason: BELOW_THRESHOLD
- extendedRisk: LOW
+ bypassReason: UNSUPPORTED_ASSET
+ extendedRisk: lowRisk
customerRefId: customer_ref_789
customerShortName: ACME Corp
verdict: PASS
- risk: LOW
+ risk: lowRisk
refId: ref_12345
category: EXCHANGE
screeningStatus: COMPLETED
@@ -62436,6 +64657,7 @@ components:
example:
partnerIdent: sumsub
customerId: 550e8400-e29b-41d4-a716-446655440001
+ customerIntegrationId: 660e8400-e29b-41d4-a716-446655440099
properties:
customerId:
description: Customer unique identifier
@@ -62447,6 +64669,16 @@ components:
)"
example: sumsub
type: string
+ customerIntegrationId:
+ description: "Optional. When supplied and permitted for the tenant (feature\
+ \ flag / CSM arrangement), this value is used as the TRLink integration\
+ \ identifier instead of a server-generated UUID. If omitted, the API generates\
+ \ a UUID. If supplied when the tenant is not permitted to set a custom\
+ \ id, the request fails with 400. Contact your CSM if you need a custom\
+ \ integration id."
+ example: 660e8400-e29b-41d4-a716-446655440099
+ format: uuid
+ type: string
required:
- customerId
- partnerIdent
@@ -69606,6 +71838,8 @@ components:
- AUDITOR
- NCW_ADMIN
- NCW_SIGNER
+ - SECURITY_ADMIN
+ - SECURITY_AUDITOR
type: string
UserEnabled:
description: Whether the user is enabled
@@ -71289,6 +73523,319 @@ components:
- status
- type
type: object
+ LeiStatus:
+ description: Approval status of a legal entity registration
+ enum:
+ - PENDING
+ - APPROVED
+ - DENIED
+ - REVOKED
+ type: string
+ TravelRuleProvider:
+ description: Travel rule compliance provider
+ enum:
+ - CODE
+ - GTR
+ - MY_OWN
+ - NOTABENE
+ - SYGNA
+ - SUMSUB
+ - TRISA
+ - TRUST
+ - TWENTY_ONE_ANALYTICS
+ - VERIFY_VASP
+ type: string
+ GleifData:
+ description: GLEIF (Global Legal Entity Identifier Foundation) data for a legal
+ entity
+ example:
+ legalName: Example Corporation Ltd.
+ lei: 529900HNOAA1KXQJUQ27
+ otherNames:
+ - ExCorp
+ - Example Corp
+ legalAddressRegion: NY
+ nextRenewalDate: 2025-12-31T00:00:00Z
+ legalAddressCountry: US
+ properties:
+ lei:
+ description: Legal Entity Identifier (LEI) code
+ example: 529900HNOAA1KXQJUQ27
+ type: string
+ legalName:
+ description: Official legal name of the entity
+ example: Example Corporation Ltd.
+ type: string
+ otherNames:
+ description: Alternative names for the entity
+ example:
+ - ExCorp
+ - Example Corp
+ items:
+ type: string
+ maxItems: 20
+ minItems: 0
+ type: array
+ legalAddressRegion:
+ description: Region or state of the legal address
+ example: NY
+ type: string
+ legalAddressCountry:
+ description: Country code of the legal address (ISO 3166-1 alpha-2)
+ example: US
+ type: string
+ nextRenewalDate:
+ description: Date when the LEI registration must be renewed
+ example: 2025-12-31T00:00:00Z
+ format: date-time
+ type: string
+ required:
+ - legalAddressCountry
+ - legalName
+ - lei
+ type: object
+ LegalEntityRegistration:
+ description: Legal entity registration record
+ example:
+ gleifData:
+ legalName: Example Corporation Ltd.
+ lei: 529900HNOAA1KXQJUQ27
+ otherNames:
+ - ExCorp
+ - Example Corp
+ legalAddressRegion: NY
+ nextRenewalDate: 2025-12-31T00:00:00Z
+ legalAddressCountry: US
+ lei: 529900HNOAA1KXQJUQ27
+ createdAt: "1700000000000"
+ isDefault: false
+ travelRuleContactEmail: compliance@example.com
+ id: 550e8400-e29b-41d4-a716-446655440000
+ travelRuleProviders:
+ - MY_OWN
+ status: PENDING
+ updatedAt: "1700000000000"
+ properties:
+ id:
+ description: Unique registration identifier
+ example: 550e8400-e29b-41d4-a716-446655440000
+ format: uuid
+ type: string
+ lei:
+ description: Legal Entity Identifier (LEI) code
+ example: 529900HNOAA1KXQJUQ27
+ type: string
+ status:
+ $ref: "#/components/schemas/LeiStatus"
+ isDefault:
+ description: Whether this is the default legal entity for the workspace
+ example: false
+ type: boolean
+ travelRuleProviders:
+ description: Travel rule providers configured for this registration
+ example:
+ - MY_OWN
+ items:
+ $ref: "#/components/schemas/TravelRuleProvider"
+ maxItems: 20
+ minItems: 0
+ type: array
+ travelRuleContactEmail:
+ description: Contact email for travel rule communications
+ example: compliance@example.com
+ format: email
+ type: string
+ gleifData:
+ $ref: "#/components/schemas/GleifData"
+ createdAt:
+ description: Creation timestamp in milliseconds since epoch
+ example: "1700000000000"
+ type: string
+ updatedAt:
+ description: Last update timestamp in milliseconds since epoch
+ example: "1700000000000"
+ type: string
+ required:
+ - createdAt
+ - id
+ - isDefault
+ - lei
+ - status
+ - tenantId
+ - travelRuleProviders
+ - updatedAt
+ type: object
+ ListLegalEntitiesResponse:
+ description: Paginated response containing a list of legal entity registrations
+ example:
+ next: eyJpZCI6IjEyMyJ9
+ total: 5
+ data:
+ - gleifData:
+ legalName: Example Corporation Ltd.
+ lei: 529900HNOAA1KXQJUQ27
+ otherNames:
+ - ExCorp
+ - Example Corp
+ legalAddressRegion: NY
+ nextRenewalDate: 2025-12-31T00:00:00Z
+ legalAddressCountry: US
+ lei: 529900HNOAA1KXQJUQ27
+ createdAt: "1700000000000"
+ isDefault: false
+ travelRuleContactEmail: compliance@example.com
+ id: 550e8400-e29b-41d4-a716-446655440000
+ travelRuleProviders:
+ - MY_OWN
+ status: PENDING
+ updatedAt: "1700000000000"
+ - gleifData:
+ legalName: Example Corporation Ltd.
+ lei: 529900HNOAA1KXQJUQ27
+ otherNames:
+ - ExCorp
+ - Example Corp
+ legalAddressRegion: NY
+ nextRenewalDate: 2025-12-31T00:00:00Z
+ legalAddressCountry: US
+ lei: 529900HNOAA1KXQJUQ27
+ createdAt: "1700000000000"
+ isDefault: false
+ travelRuleContactEmail: compliance@example.com
+ id: 550e8400-e29b-41d4-a716-446655440000
+ travelRuleProviders:
+ - MY_OWN
+ status: PENDING
+ updatedAt: "1700000000000"
+ prev: eyJpZCI6IjEyMCJ9
+ properties:
+ total:
+ description: Total number of legal entity registrations (optional)
+ example: 5
+ type: integer
+ data:
+ description: Legal entity registrations for the current page
+ items:
+ $ref: "#/components/schemas/LegalEntityRegistration"
+ type: array
+ next:
+ description: Cursor to pass as `pageCursor` to retrieve the next page
+ example: eyJpZCI6IjEyMyJ9
+ type: string
+ prev:
+ description: Cursor to pass as `pageCursor` to retrieve the previous page
+ example: eyJpZCI6IjEyMCJ9
+ type: string
+ required:
+ - data
+ type: object
+ RegisterLegalEntityRequest:
+ description: Request body to register a new legal entity
+ example:
+ lei: 529900HNOAA1KXQJUQ27
+ travelRuleContactEmail: compliance@example.com
+ travelRuleProviders:
+ - MY_OWN
+ properties:
+ lei:
+ description: Legal Entity Identifier (LEI) code to register. Must be a valid
+ 20-character LEI present in the GLEIF registry.
+ example: 529900HNOAA1KXQJUQ27
+ type: string
+ travelRuleProviders:
+ description: Travel rule providers to associate with this registration
+ example:
+ - MY_OWN
+ items:
+ $ref: "#/components/schemas/TravelRuleProvider"
+ type: array
+ travelRuleContactEmail:
+ description: Contact email for travel rule communications
+ example: compliance@example.com
+ format: email
+ type: string
+ required:
+ - lei
+ type: object
+ UpdateLegalEntityRequest:
+ example:
+ isDefault: true
+ properties:
+ isDefault:
+ description: Whether to set this registration as the workspace default
+ type: boolean
+ required:
+ - isDefault
+ type: object
+ ListVaultsForRegistrationResponse:
+ description: Response containing vault account IDs assigned to a legal entity
+ registration
+ example:
+ next: eyJpZCI6IjEyMyJ9
+ total: 5
+ data:
+ - "23"
+ - "12"
+ - "1"
+ prev: eyJpZCI6IjEyMCJ9
+ properties:
+ total:
+ description: Total number of legal entity registrations (optional)
+ example: 5
+ type: integer
+ data:
+ description: List of vault account IDs assigned to the legal entity registration
+ example:
+ - "23"
+ - "12"
+ - "1"
+ items:
+ type: string
+ type: array
+ next:
+ description: Cursor to pass as `pageCursor` to retrieve the next page
+ example: eyJpZCI6IjEyMyJ9
+ type: string
+ prev:
+ description: Cursor to pass as `pageCursor` to retrieve the previous page
+ example: eyJpZCI6IjEyMCJ9
+ type: string
+ required:
+ - data
+ type: object
+ AssignVaultsToLegalEntityRequest:
+ description: Request body to assign vault accounts to a legal entity
+ example:
+ vaultAccountIds:
+ - "0"
+ - "1"
+ - "2"
+ properties:
+ vaultAccountIds:
+ description: List of vault account IDs to assign to the legal entity
+ example:
+ - "0"
+ - "1"
+ - "2"
+ items:
+ type: string
+ minItems: 1
+ type: array
+ required:
+ - vaultAccountIds
+ type: object
+ AssignVaultsToLegalEntityResponse:
+ description: Response after assigning vault accounts to a legal entity
+ example:
+ assignedCount: 3
+ properties:
+ assignedCount:
+ description: Number of vault accounts successfully assigned
+ example: 3
+ type: integer
+ required:
+ - assignedCount
+ type: object
get_filter_parameter:
properties:
id:
@@ -71725,6 +74272,13 @@ components:
allOf:
- $ref: "#/components/schemas/FiatDestination"
- $ref: "#/components/schemas/FiatPaymentMetadata"
+ AddressRegistryAddVaultOptOutsRequest_vaultAccountIds_inner:
+ oneOf:
+ - example: 10001
+ format: int32
+ type: integer
+ - example: "10001"
+ type: string
SetOtaStatusResponse_oneOf:
example:
message: No change needed. The current status is false
diff --git a/build.gradle b/build.gradle
index c2543c89..62baedca 100644
--- a/build.gradle
+++ b/build.gradle
@@ -3,7 +3,7 @@ apply plugin: 'eclipse'
apply plugin: 'com.diffplug.spotless'
group = 'com.fireblocks.sdk'
-version = '15.0.0'
+version = '0.0.0'
buildscript {
repositories {
diff --git a/docs/AccountBasedAccessProvider.md b/docs/AccountBasedAccessProvider.md
index 4273f56f..9b20a27b 100644
--- a/docs/AccountBasedAccessProvider.md
+++ b/docs/AccountBasedAccessProvider.md
@@ -13,7 +13,7 @@
|**accountBased** | **Boolean** | Indicates whether the provider access model is through accounts or directly | |
|**manifest** | [**Manifest**](Manifest.md) | | |
|**connected** | **Boolean** | Whether the provider is currently connected | |
-|**accounts** | [**List<AccountBase>**](AccountBase.md) | | [optional] |
+|**accounts** | [**List<AccountBase>**](AccountBase.md) | | |
diff --git a/docs/AccountBasedAccessProviderDetails.md b/docs/AccountBasedAccessProviderInfo.md
similarity index 71%
rename from docs/AccountBasedAccessProviderDetails.md
rename to docs/AccountBasedAccessProviderInfo.md
index 2375ca00..7afe8eb5 100644
--- a/docs/AccountBasedAccessProviderDetails.md
+++ b/docs/AccountBasedAccessProviderInfo.md
@@ -1,15 +1,14 @@
-# AccountBasedAccessProviderDetails
+# AccountBasedAccessProviderInfo
## Properties
| Name | Type | Description | Notes |
|------------ | ------------- | ------------- | -------------|
-|**manifest** | [**Manifest**](Manifest.md) | | |
|**connected** | **Boolean** | Whether the provider is currently connected | |
-|**accounts** | [**List<AccountBase>**](AccountBase.md) | | [optional] |
+|**accounts** | [**List<AccountBase>**](AccountBase.md) | | |
diff --git a/docs/AccountBasedProviderDetails.md b/docs/AccountBasedProviderDetails.md
new file mode 100644
index 00000000..27ee28ca
--- /dev/null
+++ b/docs/AccountBasedProviderDetails.md
@@ -0,0 +1,19 @@
+
+
+# AccountBasedProviderDetails
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**id** | **String** | Unique identifier for the provider | |
+|**name** | **String** | Display name of the provider | |
+|**logo** | **String** | URL to the logo image of the provider | [optional] |
+|**accountBased** | **Boolean** | Indicates whether the provider access model is through accounts or directly | |
+|**manifest** | [**Manifest**](Manifest.md) | | |
+|**connected** | **Boolean** | Whether the provider is currently connected | |
+|**accounts** | [**List<AccountBase>**](AccountBase.md) | | |
+
+
+
diff --git a/docs/AddressRegistryAddVaultOptOutsRequest.md b/docs/AddressRegistryAddVaultOptOutsRequest.md
new file mode 100644
index 00000000..a25c209b
--- /dev/null
+++ b/docs/AddressRegistryAddVaultOptOutsRequest.md
@@ -0,0 +1,13 @@
+
+
+# AddressRegistryAddVaultOptOutsRequest
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**vaultAccountIds** | [**List<AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner>**](AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner.md) | Vault account ids to add to the opt-out list (non-empty). Each element may be a JSON number or a decimal string; both forms are accepted. | |
+
+
+
diff --git a/docs/AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner.md b/docs/AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner.md
new file mode 100644
index 00000000..137380b0
--- /dev/null
+++ b/docs/AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner.md
@@ -0,0 +1,37 @@
+
+
+# AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner
+
+## oneOf schemas
+* [Integer](Integer.md)
+* [String](String.md)
+
+## Example
+```java
+// Import classes:
+import com.fireblocks.sdk.model.AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner;
+import com.fireblocks.sdk.model.Integer;
+import com.fireblocks.sdk.model.String;
+
+public class Example {
+ public static void main(String[] args) {
+ AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner exampleAddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner = new AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner();
+
+ // create a new Integer
+ Integer exampleInteger = new Integer();
+ // set AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner to Integer
+ exampleAddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner.setActualInstance(exampleInteger);
+ // to get back the Integer set earlier
+ Integer testInteger = (Integer) exampleAddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner.getActualInstance();
+
+ // create a new String
+ String exampleString = new String();
+ // set AddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner to String
+ exampleAddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner.setActualInstance(exampleString);
+ // to get back the String set earlier
+ String testString = (String) exampleAddressRegistryAddVaultOptOutsRequestVaultAccountIdsInner.getActualInstance();
+ }
+}
+```
+
+
diff --git a/docs/AddressRegistryAddVaultOptOutsResponse.md b/docs/AddressRegistryAddVaultOptOutsResponse.md
new file mode 100644
index 00000000..195b32b3
--- /dev/null
+++ b/docs/AddressRegistryAddVaultOptOutsResponse.md
@@ -0,0 +1,14 @@
+
+
+# AddressRegistryAddVaultOptOutsResponse
+
+Result of adding vault account ids to the workspace opt-out list for the address registry.
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**acceptedCount** | **Integer** | Number of vault ids from the request that were processed. An empty `vaultAccountIds` list is rejected with HTTP 400, not a 200 with zero. | |
+
+
+
diff --git a/docs/AddressRegistryError.md b/docs/AddressRegistryError.md
index b4237b4d..8779cfeb 100644
--- a/docs/AddressRegistryError.md
+++ b/docs/AddressRegistryError.md
@@ -2,13 +2,13 @@
# AddressRegistryError
-Error body for address-registry 4xx and 5xx.
+Error body for address registry operations (4xx and 5xx).
## Properties
| Name | Type | Description | Notes |
|------------ | ------------- | ------------- | -------------|
-|**code** | **Integer** | Numeric error code (2140–2143) for 403, 404 and 5xx responses. | [optional] |
+|**code** | **Integer** | Application error code when present. Typical values include **2140** (403 — workspace not opted in to the address registry) and **2142** (404 — not found). Other codes may appear, including on server errors. | [optional] |
|**message** | **String** | Human-readable error message | |
diff --git a/docs/AddressRegistryGetVaultOptOutResponse.md b/docs/AddressRegistryGetVaultOptOutResponse.md
new file mode 100644
index 00000000..e088cf66
--- /dev/null
+++ b/docs/AddressRegistryGetVaultOptOutResponse.md
@@ -0,0 +1,14 @@
+
+
+# AddressRegistryGetVaultOptOutResponse
+
+Whether the given vault account is excluded from the address registry for your workspace.
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**optedOut** | **Boolean** | `true` if this vault account is excluded from the address registry; `false` if it is not excluded. | |
+
+
+
diff --git a/docs/AddressRegistryLegalEntity.md b/docs/AddressRegistryLegalEntity.md
index 1be29916..7db67ac7 100644
--- a/docs/AddressRegistryLegalEntity.md
+++ b/docs/AddressRegistryLegalEntity.md
@@ -2,15 +2,18 @@
# AddressRegistryLegalEntity
-Legal entity resolved for an address-registry lookup
+Legal entity details for a blockchain address.
## Properties
| Name | Type | Description | Notes |
|------------ | ------------- | ------------- | -------------|
-|**companyName** | **String** | Legal entity / company display name | |
-|**countryCode** | **String** | Jurisdiction country code (e.g. ISO 3166-1 alpha-2) | |
-|**companyId** | **UUID** | Company identifier for the resolved legal entity (UUID) | |
+|**verified** | **Boolean** | Whether the entity was resolved from verified public registry data (e.g. LEI sources). | |
+|**entityName** | **String** | Legal entity display name. | |
+|**jurisdiction** | **String** | Jurisdiction (e.g. ISO 3166-1 alpha-2 country code). | |
+|**lei** | **String** | Legal Entity Identifier when available; may be empty when unverified. | |
+|**travelRuleProviders** | **List<AddressRegistryTravelRuleProvider>** | | |
+|**email** | **String** | Travel Rule contact email when available. | |
diff --git a/docs/AddressRegistryLegalEntityLegacy.md b/docs/AddressRegistryLegalEntityLegacy.md
new file mode 100644
index 00000000..fc8a3152
--- /dev/null
+++ b/docs/AddressRegistryLegalEntityLegacy.md
@@ -0,0 +1,16 @@
+
+
+# AddressRegistryLegalEntityLegacy
+
+Narrow legacy response for deprecated `GET /v1/address_registry/legal_entity?address=…`. Use `GET /v1/address_registry/legal_entities/{address}` for the full field set.
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**companyName** | **String** | Legal entity / company display name | |
+|**countryCode** | **String** | Jurisdiction country code (e.g. ISO 3166-1 alpha-2) | |
+|**companyId** | **UUID** | Company identifier for the resolved legal entity (UUID) | |
+
+
+
diff --git a/docs/AddressRegistryListVaultOptOutsResponse.md b/docs/AddressRegistryListVaultOptOutsResponse.md
new file mode 100644
index 00000000..77ffb53f
--- /dev/null
+++ b/docs/AddressRegistryListVaultOptOutsResponse.md
@@ -0,0 +1,16 @@
+
+
+# AddressRegistryListVaultOptOutsResponse
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**total** | **Integer** | Total number of vault accounts excluded from the address registry for your workspace. | |
+|**data** | [**List<AddressRegistryVaultOptOutItem>**](AddressRegistryVaultOptOutItem.md) | | |
+|**next** | **String** | Opaque cursor for the next page; empty when there is no next page. | [optional] |
+|**prev** | **String** | Opaque cursor for the previous page; empty when there is no previous page. | [optional] |
+
+
+
diff --git a/docs/AddressRegistryRemoveAllVaultOptOutsResponse.md b/docs/AddressRegistryRemoveAllVaultOptOutsResponse.md
new file mode 100644
index 00000000..3ca9aa3d
--- /dev/null
+++ b/docs/AddressRegistryRemoveAllVaultOptOutsResponse.md
@@ -0,0 +1,14 @@
+
+
+# AddressRegistryRemoveAllVaultOptOutsResponse
+
+Result of clearing all vault-level opt-outs for the address registry on this workspace.
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**removedCount** | **Integer** | Number of opt-out rows deleted (0 if none existed). | |
+
+
+
diff --git a/docs/AddressRegistryRemoveVaultOptOutResponse.md b/docs/AddressRegistryRemoveVaultOptOutResponse.md
new file mode 100644
index 00000000..c34064c2
--- /dev/null
+++ b/docs/AddressRegistryRemoveVaultOptOutResponse.md
@@ -0,0 +1,14 @@
+
+
+# AddressRegistryRemoveVaultOptOutResponse
+
+Body after removing one vault from the opt-out list; same fields as GET for that vault (`optedOut` is false).
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**optedOut** | **Boolean** | Always false after a successful remove — the vault is not on the opt-out list. | |
+
+
+
diff --git a/docs/AddressRegistryTenantRegistryResponse.md b/docs/AddressRegistryTenantRegistryResponse.md
new file mode 100644
index 00000000..2187cf9d
--- /dev/null
+++ b/docs/AddressRegistryTenantRegistryResponse.md
@@ -0,0 +1,23 @@
+
+
+# AddressRegistryTenantRegistryResponse
+
+Workspace participation in the address registry. Same shape for GET, POST (opt in), and DELETE (opt out).
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**status** | [**StatusEnum**](#StatusEnum) | OPTED_IN or OPTED_OUT. | |
+
+
+
+## Enum: StatusEnum
+
+| Name | Value |
+|---- | -----|
+| OPTED_IN | "OPTED_IN" |
+| OPTED_OUT | "OPTED_OUT" |
+
+
+
diff --git a/docs/AddressRegistryTravelRuleProvider.md b/docs/AddressRegistryTravelRuleProvider.md
new file mode 100644
index 00000000..e2a95a96
--- /dev/null
+++ b/docs/AddressRegistryTravelRuleProvider.md
@@ -0,0 +1,17 @@
+
+
+# AddressRegistryTravelRuleProvider
+
+## Enum
+
+
+* `TRAVEL_RULE_PROVIDER_NOTABENE` (value: `"TRAVEL_RULE_PROVIDER_NOTABENE"`)
+
+* `TRAVEL_RULE_PROVIDER_SYGNA` (value: `"TRAVEL_RULE_PROVIDER_SYGNA"`)
+
+* `TRAVEL_RULE_PROVIDER_TRISA` (value: `"TRAVEL_RULE_PROVIDER_TRISA"`)
+
+* `TRAVEL_RULE_PROVIDER_OPENVASP` (value: `"TRAVEL_RULE_PROVIDER_OPENVASP"`)
+
+
+
diff --git a/docs/AddressRegistryVaultListOrder.md b/docs/AddressRegistryVaultListOrder.md
new file mode 100644
index 00000000..5d84cbcf
--- /dev/null
+++ b/docs/AddressRegistryVaultListOrder.md
@@ -0,0 +1,13 @@
+
+
+# AddressRegistryVaultListOrder
+
+## Enum
+
+
+* `VAULT_OPT_OUT_LIST_ORDER_ASC` (value: `"VAULT_OPT_OUT_LIST_ORDER_ASC"`)
+
+* `VAULT_OPT_OUT_LIST_ORDER_DESC` (value: `"VAULT_OPT_OUT_LIST_ORDER_DESC"`)
+
+
+
diff --git a/docs/AddressRegistryVaultOptOutItem.md b/docs/AddressRegistryVaultOptOutItem.md
new file mode 100644
index 00000000..a1c5ca52
--- /dev/null
+++ b/docs/AddressRegistryVaultOptOutItem.md
@@ -0,0 +1,14 @@
+
+
+# AddressRegistryVaultOptOutItem
+
+A vault account excluded from the address registry for your workspace.
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**vaultAccountId** | **Integer** | Vault account ID. | |
+
+
+
diff --git a/docs/AmlResult.md b/docs/AmlResult.md
index a7c31bd8..c075f86e 100644
--- a/docs/AmlResult.md
+++ b/docs/AmlResult.md
@@ -2,7 +2,7 @@
# AmlResult
-Detailed AML screening result information. Contains alerts, risk scores, and other AML-specific data from provider-specific responses.
+Deprecated: This field is not currently returned in the API response. Detailed AML screening result information. Contains alerts, risk scores, and other AML-specific data from provider-specific responses.
## Properties
diff --git a/docs/AssetTypeEnum.md b/docs/AssetTypeEnum.md
deleted file mode 100644
index 8e9f20d1..00000000
--- a/docs/AssetTypeEnum.md
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-# AssetTypeEnum
-
-## Enum
-
-
-* `DIGITAL` (value: `"DIGITAL"`)
-
-* `FIAT` (value: `"FIAT"`)
-
-
-
diff --git a/docs/AssignVaultsToLegalEntityRequest.md b/docs/AssignVaultsToLegalEntityRequest.md
new file mode 100644
index 00000000..b986db73
--- /dev/null
+++ b/docs/AssignVaultsToLegalEntityRequest.md
@@ -0,0 +1,14 @@
+
+
+# AssignVaultsToLegalEntityRequest
+
+Request body to assign vault accounts to a legal entity
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**vaultAccountIds** | **List<String>** | List of vault account IDs to assign to the legal entity | |
+
+
+
diff --git a/docs/AssignVaultsToLegalEntityResponse.md b/docs/AssignVaultsToLegalEntityResponse.md
new file mode 100644
index 00000000..86d25330
--- /dev/null
+++ b/docs/AssignVaultsToLegalEntityResponse.md
@@ -0,0 +1,14 @@
+
+
+# AssignVaultsToLegalEntityResponse
+
+Response after assigning vault accounts to a legal entity
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**assignedCount** | **Integer** | Number of vault accounts successfully assigned | |
+
+
+
diff --git a/docs/BaseProvider.md b/docs/BaseProvider.md
index 50b9722c..64037935 100644
--- a/docs/BaseProvider.md
+++ b/docs/BaseProvider.md
@@ -11,6 +11,7 @@
|**name** | **String** | Display name of the provider | |
|**logo** | **String** | URL to the logo image of the provider | [optional] |
|**accountBased** | **Boolean** | Indicates whether the provider access model is through accounts or directly | |
+|**manifest** | [**Manifest**](Manifest.md) | | |
diff --git a/docs/Capability.md b/docs/Capability.md
deleted file mode 100644
index a567b4b1..00000000
--- a/docs/Capability.md
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-# Capability
-
-## Enum
-
-
-* `WITHDRAWALS` (value: `"WITHDRAWALS"`)
-
-* `DEPOSITS` (value: `"DEPOSITS"`)
-
-* `TRADING` (value: `"TRADING"`)
-
-
-
diff --git a/docs/CollectionOwnershipResponse.md b/docs/CollectionOwnershipResponse.md
index 74a05b84..4ac43cde 100644
--- a/docs/CollectionOwnershipResponse.md
+++ b/docs/CollectionOwnershipResponse.md
@@ -47,6 +47,7 @@
| APECHAIN_TEST | "APECHAIN_TEST" |
| CRONOS | "CRONOS" |
| CRONOS_TEST | "CRONOS_TEST" |
+| ROBINHOOD_CHAIN_TESTNET_TEST | "ROBINHOOD_CHAIN_TESTNET_TEST" |
diff --git a/docs/ComplianceApi.md b/docs/ComplianceApi.md
index 6923a8af..72a85e5f 100644
--- a/docs/ComplianceApi.md
+++ b/docs/ComplianceApi.md
@@ -4,27 +4,1120 @@ All URIs are relative to https://developers.fireblocks.com/reference/
| Method | HTTP request | Description |
|------------- | ------------- | -------------|
+| [**addAddressRegistryVaultOptOuts**](ComplianceApi.md#addAddressRegistryVaultOptOuts) | **POST** /address_registry/vaults | Add vault accounts to the address registry opt-out list |
+| [**assignVaultsToLegalEntity**](ComplianceApi.md#assignVaultsToLegalEntity) | **POST** /legal_entities/{legalEntityId}/vaults | Assign vault accounts to a legal entity |
+| [**getAddressRegistryTenantParticipationStatus**](ComplianceApi.md#getAddressRegistryTenantParticipationStatus) | **GET** /address_registry/tenant | Get address registry participation status for the authenticated workspace |
+| [**getAddressRegistryVaultOptOut**](ComplianceApi.md#getAddressRegistryVaultOptOut) | **GET** /address_registry/vaults/{vaultAccountId} | Get whether a vault account is opted out of the address registry |
| [**getAmlPostScreeningPolicy**](ComplianceApi.md#getAmlPostScreeningPolicy) | **GET** /screening/aml/post_screening_policy | AML - View Post-Screening Policy |
| [**getAmlScreeningPolicy**](ComplianceApi.md#getAmlScreeningPolicy) | **GET** /screening/aml/screening_policy | AML - View Screening Policy |
-| [**getLegalEntityByAddress**](ComplianceApi.md#getLegalEntityByAddress) | **GET** /address_registry/legal_entity | Look up legal entity by address and asset |
+| [**getLegalEntity**](ComplianceApi.md#getLegalEntity) | **GET** /legal_entities/{legalEntityId} | Get a legal entity |
+| [**getLegalEntityByAddress**](ComplianceApi.md#getLegalEntityByAddress) | **GET** /address_registry/legal_entity | [Deprecated] Look up legal entity by address (query parameter) |
+| [**getLegalEntityForAddress**](ComplianceApi.md#getLegalEntityForAddress) | **GET** /address_registry/legal_entities/{address} | Look up legal entity by blockchain address |
| [**getPostScreeningPolicy**](ComplianceApi.md#getPostScreeningPolicy) | **GET** /screening/travel_rule/post_screening_policy | Travel Rule - View Post-Screening Policy |
| [**getScreeningFullDetails**](ComplianceApi.md#getScreeningFullDetails) | **GET** /screening/transaction/{txId} | Provides all the compliance details for the given screened transaction. |
| [**getScreeningPolicy**](ComplianceApi.md#getScreeningPolicy) | **GET** /screening/travel_rule/screening_policy | Travel Rule - View Screening Policy |
+| [**listAddressRegistryVaultOptOuts**](ComplianceApi.md#listAddressRegistryVaultOptOuts) | **GET** /address_registry/vaults | List vault-level address registry opt-outs (paginated) |
+| [**listLegalEntities**](ComplianceApi.md#listLegalEntities) | **GET** /legal_entities | List legal entities (Paginated) |
+| [**listVaultsForLegalEntity**](ComplianceApi.md#listVaultsForLegalEntity) | **GET** /legal_entities/{legalEntityId}/vaults | List vault accounts for a legal entity (Paginated) |
+| [**optInAddressRegistryTenant**](ComplianceApi.md#optInAddressRegistryTenant) | **POST** /address_registry/tenant | Opt the workspace in to the address registry |
+| [**optOutAddressRegistryTenant**](ComplianceApi.md#optOutAddressRegistryTenant) | **DELETE** /address_registry/tenant | Opt the workspace out of the address registry |
+| [**registerLegalEntity**](ComplianceApi.md#registerLegalEntity) | **POST** /legal_entities | Register a new legal entity |
+| [**removeAddressRegistryVaultOptOut**](ComplianceApi.md#removeAddressRegistryVaultOptOut) | **DELETE** /address_registry/vaults/{vaultAccountId} | Remove a single vault account from the address registry opt-out list |
+| [**removeAllAddressRegistryVaultOptOuts**](ComplianceApi.md#removeAllAddressRegistryVaultOptOuts) | **DELETE** /address_registry/vaults | Remove all vault-level address registry opt-outs for the workspace |
| [**retryRejectedTransactionBypassScreeningChecks**](ComplianceApi.md#retryRejectedTransactionBypassScreeningChecks) | **POST** /screening/transaction/{txId}/bypass_screening_policy | Calling the \"Bypass Screening Policy\" API endpoint triggers a new transaction, with the API user as the initiator, bypassing the screening policy check |
| [**setAmlVerdict**](ComplianceApi.md#setAmlVerdict) | **POST** /screening/aml/verdict/manual | Set AML Verdict for Manual Screening Verdict. |
| [**updateAmlScreeningConfiguration**](ComplianceApi.md#updateAmlScreeningConfiguration) | **PUT** /screening/aml/policy_configuration | Update AML Configuration |
+| [**updateLegalEntity**](ComplianceApi.md#updateLegalEntity) | **PUT** /legal_entities/{legalEntityId} | Update legal entity |
| [**updateScreeningConfiguration**](ComplianceApi.md#updateScreeningConfiguration) | **PUT** /screening/configurations | Tenant - Screening Configuration |
| [**updateTravelRuleConfig**](ComplianceApi.md#updateTravelRuleConfig) | **PUT** /screening/travel_rule/policy_configuration | Update Travel Rule Configuration |
+## addAddressRegistryVaultOptOuts
+
+> CompletableFuture> addAddressRegistryVaultOptOuts addAddressRegistryVaultOptOuts(addressRegistryAddVaultOptOutsRequest, idempotencyKey)
+
+Add vault accounts to the address registry opt-out list
+
+Adds one or more vault account ids to the workspace opt-out list for the address registry.
+
+### Example
+
+```java
+// Import classes:
+import com.fireblocks.sdk.ApiClient;
+import com.fireblocks.sdk.ApiException;
+import com.fireblocks.sdk.ApiResponse;
+import com.fireblocks.sdk.BasePath;
+import com.fireblocks.sdk.Fireblocks;
+import com.fireblocks.sdk.ConfigurationOptions;
+import com.fireblocks.sdk.model.*;
+import com.fireblocks.sdk.api.ComplianceApi;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+
+public class Example {
+ public static void main(String[] args) {
+ ConfigurationOptions configurationOptions = new ConfigurationOptions()
+ .basePath(BasePath.Sandbox)
+ .apiKey("my-api-key")
+ .secretKey("my-secret-key");
+ Fireblocks fireblocks = new Fireblocks(configurationOptions);
+
+ AddressRegistryAddVaultOptOutsRequest addressRegistryAddVaultOptOutsRequest = new AddressRegistryAddVaultOptOutsRequest(); // AddressRegistryAddVaultOptOutsRequest |
+ String idempotencyKey = "idempotencyKey_example"; // String | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.
+ try {
+ CompletableFuture> response = fireblocks.compliance().addAddressRegistryVaultOptOuts(addressRegistryAddVaultOptOutsRequest, idempotencyKey);
+ System.out.println("Status code: " + response.get().getStatusCode());
+ System.out.println("Response headers: " + response.get().getHeaders());
+ System.out.println("Response body: " + response.get().getData());
+ } catch (InterruptedException | ExecutionException e) {
+ ApiException apiException = (ApiException)e.getCause();
+ System.err.println("Exception when calling ComplianceApi#addAddressRegistryVaultOptOuts");
+ System.err.println("Status code: " + apiException.getCode());
+ System.err.println("Response headers: " + apiException.getResponseHeaders());
+ System.err.println("Reason: " + apiException.getResponseBody());
+ e.printStackTrace();
+ } catch (ApiException e) {
+ System.err.println("Exception when calling ComplianceApi#addAddressRegistryVaultOptOuts");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ System.err.println("Reason: " + e.getResponseBody());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+
+
+| Name | Type | Description | Notes |
+|------------- | ------------- | ------------- | -------------|
+| **addressRegistryAddVaultOptOutsRequest** | [**AddressRegistryAddVaultOptOutsRequest**](AddressRegistryAddVaultOptOutsRequest.md)| | |
+| **idempotencyKey** | **String**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] |
+
+### Return type
+
+CompletableFuture>
+
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: application/json
+- **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Opt-outs recorded; response body includes `acceptedCount`. | * X-Request-ID -
|
+| **400** | Validation error (e.g. empty list or invalid vault ids) | * X-Request-ID -
|
+| **0** | Error Response | * X-Request-ID -
|
+
+
+## assignVaultsToLegalEntity
+
+> CompletableFuture> assignVaultsToLegalEntity assignVaultsToLegalEntity(assignVaultsToLegalEntityRequest, legalEntityId, idempotencyKey)
+
+Assign vault accounts to a legal entity
+
+Assigns one or more vault accounts to a specific legal entity registration. Explicitly mapped vault accounts take precedence over the workspace default legal entity. </br>Endpoint Permission: Admin, Non-Signing Admin.
+
+### Example
+
+```java
+// Import classes:
+import com.fireblocks.sdk.ApiClient;
+import com.fireblocks.sdk.ApiException;
+import com.fireblocks.sdk.ApiResponse;
+import com.fireblocks.sdk.BasePath;
+import com.fireblocks.sdk.Fireblocks;
+import com.fireblocks.sdk.ConfigurationOptions;
+import com.fireblocks.sdk.model.*;
+import com.fireblocks.sdk.api.ComplianceApi;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+
+public class Example {
+ public static void main(String[] args) {
+ ConfigurationOptions configurationOptions = new ConfigurationOptions()
+ .basePath(BasePath.Sandbox)
+ .apiKey("my-api-key")
+ .secretKey("my-secret-key");
+ Fireblocks fireblocks = new Fireblocks(configurationOptions);
+
+ AssignVaultsToLegalEntityRequest assignVaultsToLegalEntityRequest = new AssignVaultsToLegalEntityRequest(); // AssignVaultsToLegalEntityRequest |
+ UUID legalEntityId = UUID.randomUUID(); // UUID | The unique ID of the legal entity registration
+ String idempotencyKey = "idempotencyKey_example"; // String | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.
+ try {
+ CompletableFuture> response = fireblocks.compliance().assignVaultsToLegalEntity(assignVaultsToLegalEntityRequest, legalEntityId, idempotencyKey);
+ System.out.println("Status code: " + response.get().getStatusCode());
+ System.out.println("Response headers: " + response.get().getHeaders());
+ System.out.println("Response body: " + response.get().getData());
+ } catch (InterruptedException | ExecutionException e) {
+ ApiException apiException = (ApiException)e.getCause();
+ System.err.println("Exception when calling ComplianceApi#assignVaultsToLegalEntity");
+ System.err.println("Status code: " + apiException.getCode());
+ System.err.println("Response headers: " + apiException.getResponseHeaders());
+ System.err.println("Reason: " + apiException.getResponseBody());
+ e.printStackTrace();
+ } catch (ApiException e) {
+ System.err.println("Exception when calling ComplianceApi#assignVaultsToLegalEntity");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ System.err.println("Reason: " + e.getResponseBody());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+
+
+| Name | Type | Description | Notes |
+|------------- | ------------- | ------------- | -------------|
+| **assignVaultsToLegalEntityRequest** | [**AssignVaultsToLegalEntityRequest**](AssignVaultsToLegalEntityRequest.md)| | |
+| **legalEntityId** | **UUID**| The unique ID of the legal entity registration | |
+| **idempotencyKey** | **String**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] |
+
+### Return type
+
+CompletableFuture>
+
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: application/json
+- **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **201** | Vault accounts assigned successfully | * X-Request-ID -
|
+| **404** | Legal entity registration not found | * X-Request-ID -
|
+| **0** | Error Response | * X-Request-ID -
|
+
+
+## getAddressRegistryTenantParticipationStatus
+
+> CompletableFuture> getAddressRegistryTenantParticipationStatus getAddressRegistryTenantParticipationStatus()
+
+Get address registry participation status for the authenticated workspace
+
+Returns whether the workspace is `OPTED_IN` or `OPTED_OUT` of the address registry.
+
+### Example
+
+```java
+// Import classes:
+import com.fireblocks.sdk.ApiClient;
+import com.fireblocks.sdk.ApiException;
+import com.fireblocks.sdk.ApiResponse;
+import com.fireblocks.sdk.BasePath;
+import com.fireblocks.sdk.Fireblocks;
+import com.fireblocks.sdk.ConfigurationOptions;
+import com.fireblocks.sdk.model.*;
+import com.fireblocks.sdk.api.ComplianceApi;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+
+public class Example {
+ public static void main(String[] args) {
+ ConfigurationOptions configurationOptions = new ConfigurationOptions()
+ .basePath(BasePath.Sandbox)
+ .apiKey("my-api-key")
+ .secretKey("my-secret-key");
+ Fireblocks fireblocks = new Fireblocks(configurationOptions);
+
+ try {
+ CompletableFuture> response = fireblocks.compliance().getAddressRegistryTenantParticipationStatus();
+ System.out.println("Status code: " + response.get().getStatusCode());
+ System.out.println("Response headers: " + response.get().getHeaders());
+ System.out.println("Response body: " + response.get().getData());
+ } catch (InterruptedException | ExecutionException e) {
+ ApiException apiException = (ApiException)e.getCause();
+ System.err.println("Exception when calling ComplianceApi#getAddressRegistryTenantParticipationStatus");
+ System.err.println("Status code: " + apiException.getCode());
+ System.err.println("Response headers: " + apiException.getResponseHeaders());
+ System.err.println("Reason: " + apiException.getResponseBody());
+ e.printStackTrace();
+ } catch (ApiException e) {
+ System.err.println("Exception when calling ComplianceApi#getAddressRegistryTenantParticipationStatus");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ System.err.println("Reason: " + e.getResponseBody());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+CompletableFuture>
+
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Participation status in the response body | * X-Request-ID -
|
+| **0** | Error Response | * X-Request-ID -
|
+
+
+## getAddressRegistryVaultOptOut
+
+> CompletableFuture> getAddressRegistryVaultOptOut getAddressRegistryVaultOptOut(vaultAccountId)
+
+Get whether a vault account is opted out of the address registry
+
+Returns whether this vault account is on the workspace opt-out list (`optedOut` true or false). List, add, and clear-all are available on `/v1/address_registry/vaults`; this path reads or removes one vault.
+
+### Example
+
+```java
+// Import classes:
+import com.fireblocks.sdk.ApiClient;
+import com.fireblocks.sdk.ApiException;
+import com.fireblocks.sdk.ApiResponse;
+import com.fireblocks.sdk.BasePath;
+import com.fireblocks.sdk.Fireblocks;
+import com.fireblocks.sdk.ConfigurationOptions;
+import com.fireblocks.sdk.model.*;
+import com.fireblocks.sdk.api.ComplianceApi;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+
+public class Example {
+ public static void main(String[] args) {
+ ConfigurationOptions configurationOptions = new ConfigurationOptions()
+ .basePath(BasePath.Sandbox)
+ .apiKey("my-api-key")
+ .secretKey("my-secret-key");
+ Fireblocks fireblocks = new Fireblocks(configurationOptions);
+
+ Integer vaultAccountId = 10001; // Integer | Vault account id (non-negative integer).
+ try {
+ CompletableFuture> response = fireblocks.compliance().getAddressRegistryVaultOptOut(vaultAccountId);
+ System.out.println("Status code: " + response.get().getStatusCode());
+ System.out.println("Response headers: " + response.get().getHeaders());
+ System.out.println("Response body: " + response.get().getData());
+ } catch (InterruptedException | ExecutionException e) {
+ ApiException apiException = (ApiException)e.getCause();
+ System.err.println("Exception when calling ComplianceApi#getAddressRegistryVaultOptOut");
+ System.err.println("Status code: " + apiException.getCode());
+ System.err.println("Response headers: " + apiException.getResponseHeaders());
+ System.err.println("Reason: " + apiException.getResponseBody());
+ e.printStackTrace();
+ } catch (ApiException e) {
+ System.err.println("Exception when calling ComplianceApi#getAddressRegistryVaultOptOut");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ System.err.println("Reason: " + e.getResponseBody());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+
+
+| Name | Type | Description | Notes |
+|------------- | ------------- | ------------- | -------------|
+| **vaultAccountId** | **Integer**| Vault account id (non-negative integer). | |
+
+### Return type
+
+CompletableFuture>
+
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Current opt-out flag for the vault | * X-Request-ID -
|
+| **400** | Invalid path parameter (e.g. negative or out-of-range vault account id) | * X-Request-ID -
|
+| **0** | Error Response | * X-Request-ID -
|
+
+
## getAmlPostScreeningPolicy
-> CompletableFuture> getAmlPostScreeningPolicy getAmlPostScreeningPolicy()
+> CompletableFuture> getAmlPostScreeningPolicy getAmlPostScreeningPolicy()
+
+AML - View Post-Screening Policy
+
+Get the post-screening policy for AML.
+
+### Example
+
+```java
+// Import classes:
+import com.fireblocks.sdk.ApiClient;
+import com.fireblocks.sdk.ApiException;
+import com.fireblocks.sdk.ApiResponse;
+import com.fireblocks.sdk.BasePath;
+import com.fireblocks.sdk.Fireblocks;
+import com.fireblocks.sdk.ConfigurationOptions;
+import com.fireblocks.sdk.model.*;
+import com.fireblocks.sdk.api.ComplianceApi;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+
+public class Example {
+ public static void main(String[] args) {
+ ConfigurationOptions configurationOptions = new ConfigurationOptions()
+ .basePath(BasePath.Sandbox)
+ .apiKey("my-api-key")
+ .secretKey("my-secret-key");
+ Fireblocks fireblocks = new Fireblocks(configurationOptions);
+
+ try {
+ CompletableFuture> response = fireblocks.compliance().getAmlPostScreeningPolicy();
+ System.out.println("Status code: " + response.get().getStatusCode());
+ System.out.println("Response headers: " + response.get().getHeaders());
+ System.out.println("Response body: " + response.get().getData());
+ } catch (InterruptedException | ExecutionException e) {
+ ApiException apiException = (ApiException)e.getCause();
+ System.err.println("Exception when calling ComplianceApi#getAmlPostScreeningPolicy");
+ System.err.println("Status code: " + apiException.getCode());
+ System.err.println("Response headers: " + apiException.getResponseHeaders());
+ System.err.println("Reason: " + apiException.getResponseBody());
+ e.printStackTrace();
+ } catch (ApiException e) {
+ System.err.println("Exception when calling ComplianceApi#getAmlPostScreeningPolicy");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ System.err.println("Reason: " + e.getResponseBody());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+CompletableFuture>
+
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Post-screening policy retrieved successfully. | - |
+
+
+## getAmlScreeningPolicy
+
+> CompletableFuture> getAmlScreeningPolicy getAmlScreeningPolicy()
+
+AML - View Screening Policy
+
+Get the screening policy for AML.
+
+### Example
+
+```java
+// Import classes:
+import com.fireblocks.sdk.ApiClient;
+import com.fireblocks.sdk.ApiException;
+import com.fireblocks.sdk.ApiResponse;
+import com.fireblocks.sdk.BasePath;
+import com.fireblocks.sdk.Fireblocks;
+import com.fireblocks.sdk.ConfigurationOptions;
+import com.fireblocks.sdk.model.*;
+import com.fireblocks.sdk.api.ComplianceApi;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+
+public class Example {
+ public static void main(String[] args) {
+ ConfigurationOptions configurationOptions = new ConfigurationOptions()
+ .basePath(BasePath.Sandbox)
+ .apiKey("my-api-key")
+ .secretKey("my-secret-key");
+ Fireblocks fireblocks = new Fireblocks(configurationOptions);
+
+ try {
+ CompletableFuture> response = fireblocks.compliance().getAmlScreeningPolicy();
+ System.out.println("Status code: " + response.get().getStatusCode());
+ System.out.println("Response headers: " + response.get().getHeaders());
+ System.out.println("Response body: " + response.get().getData());
+ } catch (InterruptedException | ExecutionException e) {
+ ApiException apiException = (ApiException)e.getCause();
+ System.err.println("Exception when calling ComplianceApi#getAmlScreeningPolicy");
+ System.err.println("Status code: " + apiException.getCode());
+ System.err.println("Response headers: " + apiException.getResponseHeaders());
+ System.err.println("Reason: " + apiException.getResponseBody());
+ e.printStackTrace();
+ } catch (ApiException e) {
+ System.err.println("Exception when calling ComplianceApi#getAmlScreeningPolicy");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ System.err.println("Reason: " + e.getResponseBody());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+CompletableFuture>
+
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Screening policy retrieved successfully. | - |
+
+
+## getLegalEntity
+
+> CompletableFuture> getLegalEntity getLegalEntity(legalEntityId)
+
+Get a legal entity
+
+Returns details of a specific legal entity registration, including GLEIF data when available. </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer.
+
+### Example
+
+```java
+// Import classes:
+import com.fireblocks.sdk.ApiClient;
+import com.fireblocks.sdk.ApiException;
+import com.fireblocks.sdk.ApiResponse;
+import com.fireblocks.sdk.BasePath;
+import com.fireblocks.sdk.Fireblocks;
+import com.fireblocks.sdk.ConfigurationOptions;
+import com.fireblocks.sdk.model.*;
+import com.fireblocks.sdk.api.ComplianceApi;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+
+public class Example {
+ public static void main(String[] args) {
+ ConfigurationOptions configurationOptions = new ConfigurationOptions()
+ .basePath(BasePath.Sandbox)
+ .apiKey("my-api-key")
+ .secretKey("my-secret-key");
+ Fireblocks fireblocks = new Fireblocks(configurationOptions);
+
+ UUID legalEntityId = UUID.randomUUID(); // UUID | The unique ID of the legal entity registration
+ try {
+ CompletableFuture> response = fireblocks.compliance().getLegalEntity(legalEntityId);
+ System.out.println("Status code: " + response.get().getStatusCode());
+ System.out.println("Response headers: " + response.get().getHeaders());
+ System.out.println("Response body: " + response.get().getData());
+ } catch (InterruptedException | ExecutionException e) {
+ ApiException apiException = (ApiException)e.getCause();
+ System.err.println("Exception when calling ComplianceApi#getLegalEntity");
+ System.err.println("Status code: " + apiException.getCode());
+ System.err.println("Response headers: " + apiException.getResponseHeaders());
+ System.err.println("Reason: " + apiException.getResponseBody());
+ e.printStackTrace();
+ } catch (ApiException e) {
+ System.err.println("Exception when calling ComplianceApi#getLegalEntity");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ System.err.println("Reason: " + e.getResponseBody());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+
+
+| Name | Type | Description | Notes |
+|------------- | ------------- | ------------- | -------------|
+| **legalEntityId** | **UUID**| The unique ID of the legal entity registration | |
+
+### Return type
+
+CompletableFuture>
+
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Legal entity registration details | * X-Request-ID -
|
+| **404** | Legal entity registration not found | * X-Request-ID -
|
+| **0** | Error Response | * X-Request-ID -
|
+
+
+## getLegalEntityByAddress
+
+> CompletableFuture> getLegalEntityByAddress getLegalEntityByAddress(address, asset)
+
+[Deprecated] Look up legal entity by address (query parameter)
+
+**Deprecated** — use `GET /v1/address_registry/legal_entities/{address}` instead. Here `address` is a **query** parameter; the replacement uses a path segment. The response includes only `companyName`, `countryCode`, and `companyId`. The replacement returns additional fields documented on that operation. Optional **`asset`** is supported here only (not on the replacement path).
+
+### Example
+
+```java
+// Import classes:
+import com.fireblocks.sdk.ApiClient;
+import com.fireblocks.sdk.ApiException;
+import com.fireblocks.sdk.ApiResponse;
+import com.fireblocks.sdk.BasePath;
+import com.fireblocks.sdk.Fireblocks;
+import com.fireblocks.sdk.ConfigurationOptions;
+import com.fireblocks.sdk.model.*;
+import com.fireblocks.sdk.api.ComplianceApi;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+
+public class Example {
+ public static void main(String[] args) {
+ ConfigurationOptions configurationOptions = new ConfigurationOptions()
+ .basePath(BasePath.Sandbox)
+ .apiKey("my-api-key")
+ .secretKey("my-secret-key");
+ Fireblocks fireblocks = new Fireblocks(configurationOptions);
+
+ String address = "0x742d35cc6634c0532925a3b844bc9e7595f0beb0"; // String | Blockchain address to look up
+ String asset = "ETH"; // String | Optional asset identifier (this deprecated operation only).
+ try {
+ CompletableFuture> response = fireblocks.compliance().getLegalEntityByAddress(address, asset);
+ System.out.println("Status code: " + response.get().getStatusCode());
+ System.out.println("Response headers: " + response.get().getHeaders());
+ System.out.println("Response body: " + response.get().getData());
+ } catch (InterruptedException | ExecutionException e) {
+ ApiException apiException = (ApiException)e.getCause();
+ System.err.println("Exception when calling ComplianceApi#getLegalEntityByAddress");
+ System.err.println("Status code: " + apiException.getCode());
+ System.err.println("Response headers: " + apiException.getResponseHeaders());
+ System.err.println("Reason: " + apiException.getResponseBody());
+ e.printStackTrace();
+ } catch (ApiException e) {
+ System.err.println("Exception when calling ComplianceApi#getLegalEntityByAddress");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ System.err.println("Reason: " + e.getResponseBody());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+
+
+| Name | Type | Description | Notes |
+|------------- | ------------- | ------------- | -------------|
+| **address** | **String**| Blockchain address to look up | |
+| **asset** | **String**| Optional asset identifier (this deprecated operation only). | [optional] |
+
+### Return type
+
+CompletableFuture>
+
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Legal entity found | * X-Request-ID -
|
+| **400** | Bad request – missing or invalid address | * X-Request-ID -
|
+| **403** | Forbidden – the authenticated workspace is not opted in to the address registry (error code 2140) | * X-Request-ID -
|
+| **404** | Not found (error code 2142) — unresolved address, no legal entity for a resolved address, or the same not-found outcome in other cases. | * X-Request-ID -
|
+| **0** | Error Response | * X-Request-ID -
|
+
+
+## getLegalEntityForAddress
+
+> CompletableFuture> getLegalEntityForAddress getLegalEntityForAddress(address)
+
+Look up legal entity by blockchain address
+
+Returns legal entity information for the given blockchain address. URL-encode `{address}` when required. Prefer this operation over the deprecated `GET /v1/address_registry/legal_entity?address=…`, which returns only `companyName`, `countryCode`, and `companyId`. This operation adds verification status, LEI, Travel Rule providers, and contact email (see response properties).
+
+### Example
+
+```java
+// Import classes:
+import com.fireblocks.sdk.ApiClient;
+import com.fireblocks.sdk.ApiException;
+import com.fireblocks.sdk.ApiResponse;
+import com.fireblocks.sdk.BasePath;
+import com.fireblocks.sdk.Fireblocks;
+import com.fireblocks.sdk.ConfigurationOptions;
+import com.fireblocks.sdk.model.*;
+import com.fireblocks.sdk.api.ComplianceApi;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+
+public class Example {
+ public static void main(String[] args) {
+ ConfigurationOptions configurationOptions = new ConfigurationOptions()
+ .basePath(BasePath.Sandbox)
+ .apiKey("my-api-key")
+ .secretKey("my-secret-key");
+ Fireblocks fireblocks = new Fireblocks(configurationOptions);
+
+ String address = "0x742d35cc6634c0532925a3b844bc9e7595f0beb0"; // String | Blockchain address to look up
+ try {
+ CompletableFuture> response = fireblocks.compliance().getLegalEntityForAddress(address);
+ System.out.println("Status code: " + response.get().getStatusCode());
+ System.out.println("Response headers: " + response.get().getHeaders());
+ System.out.println("Response body: " + response.get().getData());
+ } catch (InterruptedException | ExecutionException e) {
+ ApiException apiException = (ApiException)e.getCause();
+ System.err.println("Exception when calling ComplianceApi#getLegalEntityForAddress");
+ System.err.println("Status code: " + apiException.getCode());
+ System.err.println("Response headers: " + apiException.getResponseHeaders());
+ System.err.println("Reason: " + apiException.getResponseBody());
+ e.printStackTrace();
+ } catch (ApiException e) {
+ System.err.println("Exception when calling ComplianceApi#getLegalEntityForAddress");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ System.err.println("Reason: " + e.getResponseBody());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+
+
+| Name | Type | Description | Notes |
+|------------- | ------------- | ------------- | -------------|
+| **address** | **String**| Blockchain address to look up | |
+
+### Return type
+
+CompletableFuture>
+
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Legal entity found | * X-Request-ID -
|
+| **400** | Bad request – missing or invalid address | * X-Request-ID -
|
+| **403** | Forbidden – the authenticated workspace is not opted in to the address registry (error code 2140) | * X-Request-ID -
|
+| **404** | Not found (error code 2142) — unresolved address, no legal entity for a resolved address, or the same not-found outcome in other cases. | * X-Request-ID -
|
+| **0** | Error Response | * X-Request-ID -
|
+
+
+## getPostScreeningPolicy
+
+> CompletableFuture> getPostScreeningPolicy getPostScreeningPolicy()
+
+Travel Rule - View Post-Screening Policy
+
+Get the post-screening policy for Travel Rule.
+
+### Example
+
+```java
+// Import classes:
+import com.fireblocks.sdk.ApiClient;
+import com.fireblocks.sdk.ApiException;
+import com.fireblocks.sdk.ApiResponse;
+import com.fireblocks.sdk.BasePath;
+import com.fireblocks.sdk.Fireblocks;
+import com.fireblocks.sdk.ConfigurationOptions;
+import com.fireblocks.sdk.model.*;
+import com.fireblocks.sdk.api.ComplianceApi;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+
+public class Example {
+ public static void main(String[] args) {
+ ConfigurationOptions configurationOptions = new ConfigurationOptions()
+ .basePath(BasePath.Sandbox)
+ .apiKey("my-api-key")
+ .secretKey("my-secret-key");
+ Fireblocks fireblocks = new Fireblocks(configurationOptions);
+
+ try {
+ CompletableFuture> response = fireblocks.compliance().getPostScreeningPolicy();
+ System.out.println("Status code: " + response.get().getStatusCode());
+ System.out.println("Response headers: " + response.get().getHeaders());
+ System.out.println("Response body: " + response.get().getData());
+ } catch (InterruptedException | ExecutionException e) {
+ ApiException apiException = (ApiException)e.getCause();
+ System.err.println("Exception when calling ComplianceApi#getPostScreeningPolicy");
+ System.err.println("Status code: " + apiException.getCode());
+ System.err.println("Response headers: " + apiException.getResponseHeaders());
+ System.err.println("Reason: " + apiException.getResponseBody());
+ e.printStackTrace();
+ } catch (ApiException e) {
+ System.err.println("Exception when calling ComplianceApi#getPostScreeningPolicy");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ System.err.println("Reason: " + e.getResponseBody());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+CompletableFuture>
+
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Post-screening policy retrieved successfully. | - |
+
+
+## getScreeningFullDetails
+
+> CompletableFuture> getScreeningFullDetails getScreeningFullDetails(txId)
+
+Provides all the compliance details for the given screened transaction.
+
+Provides all the compliance details for the given screened transaction.
+
+### Example
+
+```java
+// Import classes:
+import com.fireblocks.sdk.ApiClient;
+import com.fireblocks.sdk.ApiException;
+import com.fireblocks.sdk.ApiResponse;
+import com.fireblocks.sdk.BasePath;
+import com.fireblocks.sdk.Fireblocks;
+import com.fireblocks.sdk.ConfigurationOptions;
+import com.fireblocks.sdk.model.*;
+import com.fireblocks.sdk.api.ComplianceApi;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+
+public class Example {
+ public static void main(String[] args) {
+ ConfigurationOptions configurationOptions = new ConfigurationOptions()
+ .basePath(BasePath.Sandbox)
+ .apiKey("my-api-key")
+ .secretKey("my-secret-key");
+ Fireblocks fireblocks = new Fireblocks(configurationOptions);
+
+ String txId = "550e8400-e29b-41d4-a716-446655440000"; // String | Fireblocks transaction ID of the screened transaction
+ try {
+ CompletableFuture> response = fireblocks.compliance().getScreeningFullDetails(txId);
+ System.out.println("Status code: " + response.get().getStatusCode());
+ System.out.println("Response headers: " + response.get().getHeaders());
+ System.out.println("Response body: " + response.get().getData());
+ } catch (InterruptedException | ExecutionException e) {
+ ApiException apiException = (ApiException)e.getCause();
+ System.err.println("Exception when calling ComplianceApi#getScreeningFullDetails");
+ System.err.println("Status code: " + apiException.getCode());
+ System.err.println("Response headers: " + apiException.getResponseHeaders());
+ System.err.println("Reason: " + apiException.getResponseBody());
+ e.printStackTrace();
+ } catch (ApiException e) {
+ System.err.println("Exception when calling ComplianceApi#getScreeningFullDetails");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ System.err.println("Reason: " + e.getResponseBody());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+
+
+| Name | Type | Description | Notes |
+|------------- | ------------- | ------------- | -------------|
+| **txId** | **String**| Fireblocks transaction ID of the screened transaction | |
+
+### Return type
+
+CompletableFuture>
+
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | A compliance object | * X-Request-ID -
|
+| **0** | Error Response | * X-Request-ID -
|
+
+
+## getScreeningPolicy
+
+> CompletableFuture> getScreeningPolicy getScreeningPolicy()
+
+Travel Rule - View Screening Policy
+
+Get the screening policy for Travel Rule.
+
+### Example
+
+```java
+// Import classes:
+import com.fireblocks.sdk.ApiClient;
+import com.fireblocks.sdk.ApiException;
+import com.fireblocks.sdk.ApiResponse;
+import com.fireblocks.sdk.BasePath;
+import com.fireblocks.sdk.Fireblocks;
+import com.fireblocks.sdk.ConfigurationOptions;
+import com.fireblocks.sdk.model.*;
+import com.fireblocks.sdk.api.ComplianceApi;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+
+public class Example {
+ public static void main(String[] args) {
+ ConfigurationOptions configurationOptions = new ConfigurationOptions()
+ .basePath(BasePath.Sandbox)
+ .apiKey("my-api-key")
+ .secretKey("my-secret-key");
+ Fireblocks fireblocks = new Fireblocks(configurationOptions);
+
+ try {
+ CompletableFuture> response = fireblocks.compliance().getScreeningPolicy();
+ System.out.println("Status code: " + response.get().getStatusCode());
+ System.out.println("Response headers: " + response.get().getHeaders());
+ System.out.println("Response body: " + response.get().getData());
+ } catch (InterruptedException | ExecutionException e) {
+ ApiException apiException = (ApiException)e.getCause();
+ System.err.println("Exception when calling ComplianceApi#getScreeningPolicy");
+ System.err.println("Status code: " + apiException.getCode());
+ System.err.println("Response headers: " + apiException.getResponseHeaders());
+ System.err.println("Reason: " + apiException.getResponseBody());
+ e.printStackTrace();
+ } catch (ApiException e) {
+ System.err.println("Exception when calling ComplianceApi#getScreeningPolicy");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ System.err.println("Reason: " + e.getResponseBody());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+CompletableFuture>
+
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Screening policy retrieved successfully. | - |
+
+
+## listAddressRegistryVaultOptOuts
+
+> CompletableFuture> listAddressRegistryVaultOptOuts listAddressRegistryVaultOptOuts(pageCursor, pageSize, order)
+
+List vault-level address registry opt-outs (paginated)
+
+Lists vault accounts that are opted out of the address registry for this workspace. Pagination uses `next` and `prev` cursors from the response. If `pageSize` is omitted, **50** items are returned per page; allowed range is **1–100** per request.
+
+### Example
+
+```java
+// Import classes:
+import com.fireblocks.sdk.ApiClient;
+import com.fireblocks.sdk.ApiException;
+import com.fireblocks.sdk.ApiResponse;
+import com.fireblocks.sdk.BasePath;
+import com.fireblocks.sdk.Fireblocks;
+import com.fireblocks.sdk.ConfigurationOptions;
+import com.fireblocks.sdk.model.*;
+import com.fireblocks.sdk.api.ComplianceApi;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+
+public class Example {
+ public static void main(String[] args) {
+ ConfigurationOptions configurationOptions = new ConfigurationOptions()
+ .basePath(BasePath.Sandbox)
+ .apiKey("my-api-key")
+ .secretKey("my-secret-key");
+ Fireblocks fireblocks = new Fireblocks(configurationOptions);
+
+ String pageCursor = "eyJvZmZzZXQiOjAsInBhZ2VTaXplIjoxMH0"; // String | Opaque cursor from a previous response (`next` or `prev`). Omit for the first page.
+ Integer pageSize = 50; // Integer | Page size. Default **50** if omitted; must be between **1** and **100**.
+ AddressRegistryVaultListOrder order = AddressRegistryVaultListOrder.fromValue("VAULT_OPT_OUT_LIST_ORDER_ASC"); // AddressRegistryVaultListOrder | Sort direction by vault account id. Omit for ascending; use the enum value for descending.
+ try {
+ CompletableFuture> response = fireblocks.compliance().listAddressRegistryVaultOptOuts(pageCursor, pageSize, order);
+ System.out.println("Status code: " + response.get().getStatusCode());
+ System.out.println("Response headers: " + response.get().getHeaders());
+ System.out.println("Response body: " + response.get().getData());
+ } catch (InterruptedException | ExecutionException e) {
+ ApiException apiException = (ApiException)e.getCause();
+ System.err.println("Exception when calling ComplianceApi#listAddressRegistryVaultOptOuts");
+ System.err.println("Status code: " + apiException.getCode());
+ System.err.println("Response headers: " + apiException.getResponseHeaders());
+ System.err.println("Reason: " + apiException.getResponseBody());
+ e.printStackTrace();
+ } catch (ApiException e) {
+ System.err.println("Exception when calling ComplianceApi#listAddressRegistryVaultOptOuts");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ System.err.println("Reason: " + e.getResponseBody());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
-AML - View Post-Screening Policy
-Get the post-screening policy for AML.
+| Name | Type | Description | Notes |
+|------------- | ------------- | ------------- | -------------|
+| **pageCursor** | **String**| Opaque cursor from a previous response (`next` or `prev`). Omit for the first page. | [optional] |
+| **pageSize** | **Integer**| Page size. Default **50** if omitted; must be between **1** and **100**. | [optional] [default to 50] |
+| **order** | [**AddressRegistryVaultListOrder**](.md)| Sort direction by vault account id. Omit for ascending; use the enum value for descending. | [optional] [default to VAULT_OPT_OUT_LIST_ORDER_ASC] [enum: VAULT_OPT_OUT_LIST_ORDER_ASC, VAULT_OPT_OUT_LIST_ORDER_DESC] |
+
+### Return type
+
+CompletableFuture>
+
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Page of vault opt-out rows | * X-Request-ID -
|
+| **400** | Validation error (e.g. invalid or malformed pageCursor) | * X-Request-ID -
|
+| **0** | Error Response | * X-Request-ID -
|
+
+
+## listLegalEntities
+
+> CompletableFuture> listLegalEntities listLegalEntities(vaultAccountId, pageCursor, pageSize, sortBy, order)
+
+List legal entities (Paginated)
+
+Returns legal entity registrations for the workspace with cursor-based pagination. If query parameter vaultAccountId is used it returns the legal entity registration associated with a specific vault account. If no explicit mapping exists for the vault, the workspace default legal entity is returned. Returns an empty response if neither a vault mapping nor a default legal entity is configured. </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer.
### Example
@@ -49,20 +1142,25 @@ public class Example {
.secretKey("my-secret-key");
Fireblocks fireblocks = new Fireblocks(configurationOptions);
+ String vaultAccountId = "vaultAccountId_example"; // String | The ID of the vault account. When provided, returns the legal entity associated with that vault account and pagination parameters are ignored.
+ String pageCursor = "pageCursor_example"; // String | Cursor string returned in `next` or `prev` of a previous response. Ignored when `vaultAccountId` is provided.
+ Integer pageSize = 50; // Integer | Maximum number of registrations to return. Ignored when `vaultAccountId` is provided.
+ String sortBy = "createdAt"; // String | Field to sort results by. Ignored when `vaultAccountId` is provided.
+ String order = "ASC"; // String | Sort order. Ignored when `vaultAccountId` is provided.
try {
- CompletableFuture> response = fireblocks.compliance().getAmlPostScreeningPolicy();
+ CompletableFuture> response = fireblocks.compliance().listLegalEntities(vaultAccountId, pageCursor, pageSize, sortBy, order);
System.out.println("Status code: " + response.get().getStatusCode());
System.out.println("Response headers: " + response.get().getHeaders());
System.out.println("Response body: " + response.get().getData());
} catch (InterruptedException | ExecutionException e) {
ApiException apiException = (ApiException)e.getCause();
- System.err.println("Exception when calling ComplianceApi#getAmlPostScreeningPolicy");
+ System.err.println("Exception when calling ComplianceApi#listLegalEntities");
System.err.println("Status code: " + apiException.getCode());
System.err.println("Response headers: " + apiException.getResponseHeaders());
System.err.println("Reason: " + apiException.getResponseBody());
e.printStackTrace();
} catch (ApiException e) {
- System.err.println("Exception when calling ComplianceApi#getAmlPostScreeningPolicy");
+ System.err.println("Exception when calling ComplianceApi#listLegalEntities");
System.err.println("Status code: " + e.getCode());
System.err.println("Response headers: " + e.getResponseHeaders());
System.err.println("Reason: " + e.getResponseBody());
@@ -74,11 +1172,18 @@ public class Example {
### Parameters
-This endpoint does not need any parameter.
+
+| Name | Type | Description | Notes |
+|------------- | ------------- | ------------- | -------------|
+| **vaultAccountId** | **String**| The ID of the vault account. When provided, returns the legal entity associated with that vault account and pagination parameters are ignored. | [optional] |
+| **pageCursor** | **String**| Cursor string returned in `next` or `prev` of a previous response. Ignored when `vaultAccountId` is provided. | [optional] |
+| **pageSize** | **Integer**| Maximum number of registrations to return. Ignored when `vaultAccountId` is provided. | [optional] [default to 50] |
+| **sortBy** | **String**| Field to sort results by. Ignored when `vaultAccountId` is provided. | [optional] [enum: createdAt, updatedAt] |
+| **order** | **String**| Sort order. Ignored when `vaultAccountId` is provided. | [optional] [default to DESC] [enum: ASC, DESC] |
### Return type
-CompletableFuture>
+CompletableFuture>
### Authorization
@@ -93,16 +1198,17 @@ No authorization required
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-| **200** | Post-screening policy retrieved successfully. | - |
+| **200** | A paginated list of legal entity registrations. When `vaultAccountId` is provided, `data` contains at most one item. | * X-Request-ID -
|
+| **0** | Error Response | * X-Request-ID -
|
-## getAmlScreeningPolicy
+## listVaultsForLegalEntity
-> CompletableFuture> getAmlScreeningPolicy getAmlScreeningPolicy()
+> CompletableFuture> listVaultsForLegalEntity listVaultsForLegalEntity(legalEntityId, pageCursor, pageSize)
-AML - View Screening Policy
+List vault accounts for a legal entity (Paginated)
-Get the screening policy for AML.
+Returns vault account IDs explicitly assigned to a specific legal entity registration, with cursor-based pagination. </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer.
### Example
@@ -127,20 +1233,23 @@ public class Example {
.secretKey("my-secret-key");
Fireblocks fireblocks = new Fireblocks(configurationOptions);
+ UUID legalEntityId = UUID.randomUUID(); // UUID | The unique ID of the legal entity registration
+ String pageCursor = "pageCursor_example"; // String | Cursor string returned in `next` or `prev` of a previous response
+ Integer pageSize = 50; // Integer | Maximum number of registrations to return
try {
- CompletableFuture> response = fireblocks.compliance().getAmlScreeningPolicy();
+ CompletableFuture> response = fireblocks.compliance().listVaultsForLegalEntity(legalEntityId, pageCursor, pageSize);
System.out.println("Status code: " + response.get().getStatusCode());
System.out.println("Response headers: " + response.get().getHeaders());
System.out.println("Response body: " + response.get().getData());
} catch (InterruptedException | ExecutionException e) {
ApiException apiException = (ApiException)e.getCause();
- System.err.println("Exception when calling ComplianceApi#getAmlScreeningPolicy");
+ System.err.println("Exception when calling ComplianceApi#listVaultsForLegalEntity");
System.err.println("Status code: " + apiException.getCode());
System.err.println("Response headers: " + apiException.getResponseHeaders());
System.err.println("Reason: " + apiException.getResponseBody());
e.printStackTrace();
} catch (ApiException e) {
- System.err.println("Exception when calling ComplianceApi#getAmlScreeningPolicy");
+ System.err.println("Exception when calling ComplianceApi#listVaultsForLegalEntity");
System.err.println("Status code: " + e.getCode());
System.err.println("Response headers: " + e.getResponseHeaders());
System.err.println("Reason: " + e.getResponseBody());
@@ -152,11 +1261,16 @@ public class Example {
### Parameters
-This endpoint does not need any parameter.
+
+| Name | Type | Description | Notes |
+|------------- | ------------- | ------------- | -------------|
+| **legalEntityId** | **UUID**| The unique ID of the legal entity registration | |
+| **pageCursor** | **String**| Cursor string returned in `next` or `prev` of a previous response | [optional] |
+| **pageSize** | **Integer**| Maximum number of registrations to return | [optional] [default to 50] |
### Return type
-CompletableFuture>
+CompletableFuture>
### Authorization
@@ -171,16 +1285,18 @@ No authorization required
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-| **200** | Screening policy retrieved successfully. | - |
+| **200** | Paginated list of vault account IDs assigned to the legal entity | * X-Request-ID -
|
+| **404** | Legal entity registration not found | * X-Request-ID -
|
+| **0** | Error Response | * X-Request-ID -
|
-## getLegalEntityByAddress
+## optInAddressRegistryTenant
-> CompletableFuture> getLegalEntityByAddress getLegalEntityByAddress(address, asset)
+> CompletableFuture> optInAddressRegistryTenant optInAddressRegistryTenant(idempotencyKey)
-Look up legal entity by address and asset
+Opt the workspace in to the address registry
-Returns the legal entity (company name, jurisdiction, companyId) for the given blockchain address and optional asset. Both the requester and the owner of the address must be opted in to the address registry.
+Opts the workspace in. No request body. Response uses the same JSON shape as GET; status is OPTED_IN.
### Example
@@ -205,22 +1321,21 @@ public class Example {
.secretKey("my-secret-key");
Fireblocks fireblocks = new Fireblocks(configurationOptions);
- String address = "0x742d35cc6634c0532925a3b844bc9e7595f0beb0"; // String | Blockchain address to look up
- String asset = "ETH"; // String | Asset ID (e.g. ETH, BTC). Optional.
+ String idempotencyKey = "idempotencyKey_example"; // String | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.
try {
- CompletableFuture> response = fireblocks.compliance().getLegalEntityByAddress(address, asset);
+ CompletableFuture> response = fireblocks.compliance().optInAddressRegistryTenant(idempotencyKey);
System.out.println("Status code: " + response.get().getStatusCode());
System.out.println("Response headers: " + response.get().getHeaders());
System.out.println("Response body: " + response.get().getData());
} catch (InterruptedException | ExecutionException e) {
ApiException apiException = (ApiException)e.getCause();
- System.err.println("Exception when calling ComplianceApi#getLegalEntityByAddress");
+ System.err.println("Exception when calling ComplianceApi#optInAddressRegistryTenant");
System.err.println("Status code: " + apiException.getCode());
System.err.println("Response headers: " + apiException.getResponseHeaders());
System.err.println("Reason: " + apiException.getResponseBody());
e.printStackTrace();
} catch (ApiException e) {
- System.err.println("Exception when calling ComplianceApi#getLegalEntityByAddress");
+ System.err.println("Exception when calling ComplianceApi#optInAddressRegistryTenant");
System.err.println("Status code: " + e.getCode());
System.err.println("Response headers: " + e.getResponseHeaders());
System.err.println("Reason: " + e.getResponseBody());
@@ -235,12 +1350,11 @@ public class Example {
| Name | Type | Description | Notes |
|------------- | ------------- | ------------- | -------------|
-| **address** | **String**| Blockchain address to look up | |
-| **asset** | **String**| Asset ID (e.g. ETH, BTC). Optional. | [optional] |
+| **idempotencyKey** | **String**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] |
### Return type
-CompletableFuture>
+CompletableFuture>
### Authorization
@@ -255,20 +1369,17 @@ No authorization required
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-| **200** | Legal entity found | * X-Request-ID -
|
-| **400** | Bad request – missing or invalid address or asset | * X-Request-ID -
|
-| **403** | Forbidden – requester or address owner not opted in to the address registry (error codes 2140, 2141) | * X-Request-ID -
|
-| **404** | Address not resolved or entity not found (error code 2142) | * X-Request-ID -
|
+| **200** | Success; response body includes status OPTED_IN | * X-Request-ID -
|
| **0** | Error Response | * X-Request-ID -
|
-## getPostScreeningPolicy
+## optOutAddressRegistryTenant
-> CompletableFuture> getPostScreeningPolicy getPostScreeningPolicy()
+> CompletableFuture> optOutAddressRegistryTenant optOutAddressRegistryTenant()
-Travel Rule - View Post-Screening Policy
+Opt the workspace out of the address registry
-Get the post-screening policy for Travel Rule.
+Opts the workspace out. No request body. Response uses the same JSON shape as GET; status is OPTED_OUT.
### Example
@@ -294,19 +1405,19 @@ public class Example {
Fireblocks fireblocks = new Fireblocks(configurationOptions);
try {
- CompletableFuture> response = fireblocks.compliance().getPostScreeningPolicy();
+ CompletableFuture> response = fireblocks.compliance().optOutAddressRegistryTenant();
System.out.println("Status code: " + response.get().getStatusCode());
System.out.println("Response headers: " + response.get().getHeaders());
System.out.println("Response body: " + response.get().getData());
} catch (InterruptedException | ExecutionException e) {
ApiException apiException = (ApiException)e.getCause();
- System.err.println("Exception when calling ComplianceApi#getPostScreeningPolicy");
+ System.err.println("Exception when calling ComplianceApi#optOutAddressRegistryTenant");
System.err.println("Status code: " + apiException.getCode());
System.err.println("Response headers: " + apiException.getResponseHeaders());
System.err.println("Reason: " + apiException.getResponseBody());
e.printStackTrace();
} catch (ApiException e) {
- System.err.println("Exception when calling ComplianceApi#getPostScreeningPolicy");
+ System.err.println("Exception when calling ComplianceApi#optOutAddressRegistryTenant");
System.err.println("Status code: " + e.getCode());
System.err.println("Response headers: " + e.getResponseHeaders());
System.err.println("Reason: " + e.getResponseBody());
@@ -322,7 +1433,7 @@ This endpoint does not need any parameter.
### Return type
-CompletableFuture>
+CompletableFuture>
### Authorization
@@ -337,16 +1448,17 @@ No authorization required
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-| **200** | Post-screening policy retrieved successfully. | - |
+| **200** | Success; response body includes status OPTED_OUT | * X-Request-ID -
|
+| **0** | Error Response | * X-Request-ID -
|
-## getScreeningFullDetails
+## registerLegalEntity
-> CompletableFuture> getScreeningFullDetails getScreeningFullDetails(txId)
+> CompletableFuture> registerLegalEntity registerLegalEntity(registerLegalEntityRequest, idempotencyKey)
-Provides all the compliance details for the given screened transaction.
+Register a new legal entity
-Provides all the compliance details for the given screened transaction.
+Registers a new legal entity for the workspace using its LEI (Legal Entity Identifier) code. The LEI is validated against the GLEIF registry. Each workspace can register multiple legal entities. </br>Endpoint Permission: Admin, Non-Signing Admin.
### Example
@@ -371,21 +1483,22 @@ public class Example {
.secretKey("my-secret-key");
Fireblocks fireblocks = new Fireblocks(configurationOptions);
- String txId = "550e8400-e29b-41d4-a716-446655440000"; // String | Fireblocks transaction ID of the screened transaction
+ RegisterLegalEntityRequest registerLegalEntityRequest = new RegisterLegalEntityRequest(); // RegisterLegalEntityRequest |
+ String idempotencyKey = "idempotencyKey_example"; // String | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.
try {
- CompletableFuture> response = fireblocks.compliance().getScreeningFullDetails(txId);
+ CompletableFuture> response = fireblocks.compliance().registerLegalEntity(registerLegalEntityRequest, idempotencyKey);
System.out.println("Status code: " + response.get().getStatusCode());
System.out.println("Response headers: " + response.get().getHeaders());
System.out.println("Response body: " + response.get().getData());
} catch (InterruptedException | ExecutionException e) {
ApiException apiException = (ApiException)e.getCause();
- System.err.println("Exception when calling ComplianceApi#getScreeningFullDetails");
+ System.err.println("Exception when calling ComplianceApi#registerLegalEntity");
System.err.println("Status code: " + apiException.getCode());
System.err.println("Response headers: " + apiException.getResponseHeaders());
System.err.println("Reason: " + apiException.getResponseBody());
e.printStackTrace();
} catch (ApiException e) {
- System.err.println("Exception when calling ComplianceApi#getScreeningFullDetails");
+ System.err.println("Exception when calling ComplianceApi#registerLegalEntity");
System.err.println("Status code: " + e.getCode());
System.err.println("Response headers: " + e.getResponseHeaders());
System.err.println("Reason: " + e.getResponseBody());
@@ -400,11 +1513,99 @@ public class Example {
| Name | Type | Description | Notes |
|------------- | ------------- | ------------- | -------------|
-| **txId** | **String**| Fireblocks transaction ID of the screened transaction | |
+| **registerLegalEntityRequest** | [**RegisterLegalEntityRequest**](RegisterLegalEntityRequest.md)| | |
+| **idempotencyKey** | **String**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] |
### Return type
-CompletableFuture>
+CompletableFuture>
+
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: application/json
+- **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **201** | Legal entity registered successfully | * X-Request-ID -
|
+| **400** | Invalid LEI or request parameters | * X-Request-ID -
|
+| **404** | LEI not found in the GLEIF registry | * X-Request-ID -
|
+| **409** | A legal entity with this LEI is already registered for the workspace | * X-Request-ID -
|
+| **500** | Internal Server Error | * X-Request-ID -
|
+| **0** | Error Response | * X-Request-ID -
|
+
+
+## removeAddressRegistryVaultOptOut
+
+> CompletableFuture> removeAddressRegistryVaultOptOut removeAddressRegistryVaultOptOut(vaultAccountId)
+
+Remove a single vault account from the address registry opt-out list
+
+Removes this vault account id from the workspace opt-out list if it is present; otherwise the call still succeeds. Response body matches GET (`optedOut` is `false` after success). To clear the whole list, use `DELETE /v1/address_registry/vaults`.
+
+### Example
+
+```java
+// Import classes:
+import com.fireblocks.sdk.ApiClient;
+import com.fireblocks.sdk.ApiException;
+import com.fireblocks.sdk.ApiResponse;
+import com.fireblocks.sdk.BasePath;
+import com.fireblocks.sdk.Fireblocks;
+import com.fireblocks.sdk.ConfigurationOptions;
+import com.fireblocks.sdk.model.*;
+import com.fireblocks.sdk.api.ComplianceApi;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+
+public class Example {
+ public static void main(String[] args) {
+ ConfigurationOptions configurationOptions = new ConfigurationOptions()
+ .basePath(BasePath.Sandbox)
+ .apiKey("my-api-key")
+ .secretKey("my-secret-key");
+ Fireblocks fireblocks = new Fireblocks(configurationOptions);
+
+ Integer vaultAccountId = 10001; // Integer | Vault account id (non-negative integer).
+ try {
+ CompletableFuture> response = fireblocks.compliance().removeAddressRegistryVaultOptOut(vaultAccountId);
+ System.out.println("Status code: " + response.get().getStatusCode());
+ System.out.println("Response headers: " + response.get().getHeaders());
+ System.out.println("Response body: " + response.get().getData());
+ } catch (InterruptedException | ExecutionException e) {
+ ApiException apiException = (ApiException)e.getCause();
+ System.err.println("Exception when calling ComplianceApi#removeAddressRegistryVaultOptOut");
+ System.err.println("Status code: " + apiException.getCode());
+ System.err.println("Response headers: " + apiException.getResponseHeaders());
+ System.err.println("Reason: " + apiException.getResponseBody());
+ e.printStackTrace();
+ } catch (ApiException e) {
+ System.err.println("Exception when calling ComplianceApi#removeAddressRegistryVaultOptOut");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ System.err.println("Reason: " + e.getResponseBody());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+
+
+| Name | Type | Description | Notes |
+|------------- | ------------- | ------------- | -------------|
+| **vaultAccountId** | **Integer**| Vault account id (non-negative integer). | |
+
+### Return type
+
+CompletableFuture>
### Authorization
@@ -419,17 +1620,18 @@ No authorization required
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-| **200** | A compliance object | * X-Request-ID -
|
+| **200** | Success; `optedOut` is false (list entry removed if it existed) | * X-Request-ID -
|
+| **400** | Invalid path parameter (e.g. negative or out-of-range vault account id) | * X-Request-ID -
|
| **0** | Error Response | * X-Request-ID -
|
-## getScreeningPolicy
+## removeAllAddressRegistryVaultOptOuts
-> CompletableFuture> getScreeningPolicy getScreeningPolicy()
+> CompletableFuture> removeAllAddressRegistryVaultOptOuts removeAllAddressRegistryVaultOptOuts()
-Travel Rule - View Screening Policy
+Remove all vault-level address registry opt-outs for the workspace
-Get the screening policy for Travel Rule.
+Removes all vault accounts from the workspace opt-out list.
### Example
@@ -455,19 +1657,19 @@ public class Example {
Fireblocks fireblocks = new Fireblocks(configurationOptions);
try {
- CompletableFuture> response = fireblocks.compliance().getScreeningPolicy();
+ CompletableFuture> response = fireblocks.compliance().removeAllAddressRegistryVaultOptOuts();
System.out.println("Status code: " + response.get().getStatusCode());
System.out.println("Response headers: " + response.get().getHeaders());
System.out.println("Response body: " + response.get().getData());
} catch (InterruptedException | ExecutionException e) {
ApiException apiException = (ApiException)e.getCause();
- System.err.println("Exception when calling ComplianceApi#getScreeningPolicy");
+ System.err.println("Exception when calling ComplianceApi#removeAllAddressRegistryVaultOptOuts");
System.err.println("Status code: " + apiException.getCode());
System.err.println("Response headers: " + apiException.getResponseHeaders());
System.err.println("Reason: " + apiException.getResponseBody());
e.printStackTrace();
} catch (ApiException e) {
- System.err.println("Exception when calling ComplianceApi#getScreeningPolicy");
+ System.err.println("Exception when calling ComplianceApi#removeAllAddressRegistryVaultOptOuts");
System.err.println("Status code: " + e.getCode());
System.err.println("Response headers: " + e.getResponseHeaders());
System.err.println("Reason: " + e.getResponseBody());
@@ -483,7 +1685,7 @@ This endpoint does not need any parameter.
### Return type
-CompletableFuture>
+CompletableFuture>
### Authorization
@@ -498,7 +1700,8 @@ No authorization required
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-| **200** | Screening policy retrieved successfully. | - |
+| **200** | All opt-outs cleared; response body includes `removedCount`. | * X-Request-ID -
|
+| **0** | Error Response | * X-Request-ID -
|
## retryRejectedTransactionBypassScreeningChecks
@@ -756,6 +1959,95 @@ No authorization required
| **200** | Configuration updated successfully. | - |
+## updateLegalEntity
+
+> CompletableFuture> updateLegalEntity updateLegalEntity(updateLegalEntityRequest, legalEntityId, idempotencyKey)
+
+Update legal entity
+
+Updates the status of a legal entity registration. Setting isDefault to true marks the registration as the workspace default, which is applied to vault accounts that have no explicit legal entity mapping. </br>Endpoint Permission: Admin, Non-Signing Admin.
+
+### Example
+
+```java
+// Import classes:
+import com.fireblocks.sdk.ApiClient;
+import com.fireblocks.sdk.ApiException;
+import com.fireblocks.sdk.ApiResponse;
+import com.fireblocks.sdk.BasePath;
+import com.fireblocks.sdk.Fireblocks;
+import com.fireblocks.sdk.ConfigurationOptions;
+import com.fireblocks.sdk.model.*;
+import com.fireblocks.sdk.api.ComplianceApi;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+
+public class Example {
+ public static void main(String[] args) {
+ ConfigurationOptions configurationOptions = new ConfigurationOptions()
+ .basePath(BasePath.Sandbox)
+ .apiKey("my-api-key")
+ .secretKey("my-secret-key");
+ Fireblocks fireblocks = new Fireblocks(configurationOptions);
+
+ UpdateLegalEntityRequest updateLegalEntityRequest = new UpdateLegalEntityRequest(); // UpdateLegalEntityRequest |
+ UUID legalEntityId = UUID.randomUUID(); // UUID | The unique ID of the legal entity registration
+ String idempotencyKey = "idempotencyKey_example"; // String | A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.
+ try {
+ CompletableFuture> response = fireblocks.compliance().updateLegalEntity(updateLegalEntityRequest, legalEntityId, idempotencyKey);
+ System.out.println("Status code: " + response.get().getStatusCode());
+ System.out.println("Response headers: " + response.get().getHeaders());
+ System.out.println("Response body: " + response.get().getData());
+ } catch (InterruptedException | ExecutionException e) {
+ ApiException apiException = (ApiException)e.getCause();
+ System.err.println("Exception when calling ComplianceApi#updateLegalEntity");
+ System.err.println("Status code: " + apiException.getCode());
+ System.err.println("Response headers: " + apiException.getResponseHeaders());
+ System.err.println("Reason: " + apiException.getResponseBody());
+ e.printStackTrace();
+ } catch (ApiException e) {
+ System.err.println("Exception when calling ComplianceApi#updateLegalEntity");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ System.err.println("Reason: " + e.getResponseBody());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+
+
+| Name | Type | Description | Notes |
+|------------- | ------------- | ------------- | -------------|
+| **updateLegalEntityRequest** | [**UpdateLegalEntityRequest**](UpdateLegalEntityRequest.md)| | |
+| **legalEntityId** | **UUID**| The unique ID of the legal entity registration | |
+| **idempotencyKey** | **String**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] |
+
+### Return type
+
+CompletableFuture>
+
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: application/json
+- **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Updated legal entity registration | * X-Request-ID -
|
+| **400** | Registration is not in APPROVED status | * X-Request-ID -
|
+| **404** | Legal entity registration not found | * X-Request-ID -
|
+| **0** | Error Response | * X-Request-ID -
|
+
+
## updateScreeningConfiguration
> CompletableFuture> updateScreeningConfiguration updateScreeningConfiguration(screeningUpdateConfigurations, idempotencyKey)
diff --git a/docs/ComplianceScreeningResult.md b/docs/ComplianceScreeningResult.md
index 2526518d..1d9696f5 100644
--- a/docs/ComplianceScreeningResult.md
+++ b/docs/ComplianceScreeningResult.md
@@ -8,26 +8,26 @@ The result of the AML/Travel Rule screening. This unified schema contains all fi
| Name | Type | Description | Notes |
|------------ | ------------- | ------------- | -------------|
-|**provider** | **String** | The AML/Travel Rule provider name. For AML: ELLIPTIC, CHAINALYSIS, SCORECHAIN, MERKLE_SCIENCE, etc. For Travel Rule: NOTABENE, SYGNA, or any TRLink provider name | [optional] |
+|**provider** | **String** | The AML/Travel Rule provider name. For AML: ELLIPTIC, CHAINALYSIS, etc. For Travel Rule: NOTABENE, SUMSUB, GTR, or any TRLink provider name. | [optional] |
|**payload** | **Object** | The raw payload of the screening result from the provider. The payload is a JSON object that contains the screening result. The payload structure is different for each screening provider. This field contains the complete, unmodified response from the screening service. | [optional] |
|**timestamp** | **BigDecimal** | Unix timestamp in milliseconds when the screening result was generated | [optional] |
|**screeningStatus** | [**ScreeningStatusEnum**](#ScreeningStatusEnum) | Current status of the screening process | [optional] |
-|**bypassReason** | **String** | Reason for bypassing the screening, if applicable. For AML: SANCTIONS_SCREENING_BYPASS, SANCTIONS_RECIPIENT_BYPASS, etc. For Travel Rule: BELOW_THRESHOLD, NO_TRM_AVAILABLE, etc. | [optional] |
+|**bypassReason** | **String** | Reason for bypassing the screening, if applicable. For AML: UNSUPPORTED_ASSET, PASSED_BY_POLICY. For Travel Rule: UNSUPPORTED_ASSET, NO_TRAVEL_RULE_MESSAGE, TRANSACTION_ZERO_AMOUNT. | [optional] |
|**status** | **AmlStatusEnum** | | [optional] |
|**prevStatus** | **AmlStatusEnum** | | [optional] |
-|**prevBypassReason** | **String** | Previous bypass reason before the current bypass reason change | [optional] |
+|**prevBypassReason** | **String** | Deprecated: This field is not currently returned in the API response. Previous bypass reason before the current bypass reason change. | [optional] |
|**verdict** | **ScreeningVerdictEnum** | | [optional] |
-|**risk** | **ScreeningRiskLevelEnum** | | [optional] |
-|**extendedRisk** | **ScreeningRiskLevelEnum** | | [optional] |
+|**risk** | **String** | Risk level assessment for screening results. Values vary by provider and are not managed by this service. Known values by provider: - Chainalysis: severeRisk, highRisk, mediumRisk, lowRisk, noRiskInfo - Elliptic: noRiskDetected Legacy values (SCREAMING_SNAKE_CASE, may appear in old transactions): VERY_HIGH, SEVERE, HIGH, MEDIUM, LOW, NO_RISK_INFO, UNKNOWN | [optional] |
+|**extendedRisk** | **String** | Deprecated: This field is not currently returned in the API response. Use risk instead. | [optional] |
|**externalId** | **String** | External identifier for the screening (provider-specific) | [optional] |
|**customerRefId** | **String** | Customer-provided reference identifier for tracking | [optional] |
-|**refId** | **String** | Internal reference identifier | [optional] |
+|**refId** | **String** | Deprecated: This field is not currently returned in the API response. Internal reference identifier. | [optional] |
|**category** | **String** | Risk category classification. Examples: EXCHANGE, GAMBLING, MIXER, DARKNET_SERVICE, SANCTIONED_ENTITY | [optional] |
|**categoryId** | **BigDecimal** | Numeric identifier for the risk category | [optional] |
|**destAddress** | **String** | The destination blockchain address associated with the screening | [optional] |
|**destTag** | **String** | Destination tag or memo (for chains that support it like XRP, XLM) | [optional] |
-|**destRecordId** | **String** | The destination record identifier used by the screening provider | [optional] |
-|**addressResolutionSignature** | **String** | Cryptographic signature for address resolution verification | [optional] |
+|**destRecordId** | **String** | Deprecated: This field is not currently returned in the API response. The destination record identifier used by the screening provider. | [optional] |
+|**addressResolutionSignature** | **String** | Deprecated: This field is not currently returned in the API response. Cryptographic signature for address resolution verification. | [optional] |
|**amlResult** | [**AmlResult**](AmlResult.md) | | [optional] |
|**result** | [**TravelRuleResult**](TravelRuleResult.md) | | [optional] |
|**detailsMessage** | **String** | Additional human-readable details or message about the screening result | [optional] |
@@ -38,6 +38,7 @@ The result of the AML/Travel Rule screening. This unified schema contains all fi
|**customerIntegrationId** | **String** | Customer integration identifier used by Travel Rule providers | [optional] |
|**customerShortName** | **String** | Customer short name registered with Travel Rule providers | [optional] |
|**travelRuleMessageId** | **String** | Travel rule message identifier for linking and tracking across providers | [optional] |
+|**providerResponse** | **Map<String, Object>** | Complete response from the screening provider. This is a dynamic object that varies significantly between different providers (Chainalysis, Elliptic, NOTABENE, etc.). Each provider has their own proprietary response format and schema. For AML providers: Contains risk scores, alerts, entity information For Travel Rule providers: Contains VASP information, PII data, protocol-specific fields The structure is provider-dependent and cannot be standardized as each vendor implements their own proprietary data models and response formats. | [optional] |
diff --git a/docs/ComplianceScreeningResultFullPayload.md b/docs/ComplianceScreeningResultFullPayload.md
index a69a44db..04dfeb84 100644
--- a/docs/ComplianceScreeningResultFullPayload.md
+++ b/docs/ComplianceScreeningResultFullPayload.md
@@ -8,26 +8,26 @@ The result of the AML/Travel Rule screening. This unified schema contains all fi
| Name | Type | Description | Notes |
|------------ | ------------- | ------------- | -------------|
-|**provider** | **String** | The AML/Travel Rule provider name. For AML: ELLIPTIC, CHAINALYSIS, etc. For Travel Rule: NOTABENE, SUMSUB, or any TRLink provider name | [optional] |
+|**provider** | **String** | The AML/Travel Rule provider name. For AML: ELLIPTIC, CHAINALYSIS, etc. For Travel Rule: NOTABENE, SUMSUB, GTR, or any TRLink provider name | [optional] |
|**payload** | **Object** | The raw payload of the screening result from the provider. The payload is a JSON object that contains the screening result. The payload structure is different for each screening provider. This field contains the complete, unmodified response from the screening service. | [optional] |
|**timestamp** | **BigDecimal** | Unix timestamp in milliseconds when the screening result was generated | [optional] |
|**screeningStatus** | [**ScreeningStatusEnum**](#ScreeningStatusEnum) | Current status of the screening process | [optional] |
-|**bypassReason** | **String** | Reason for bypassing the screening, if applicable. For AML: SANCTIONS_SCREENING_BYPASS, SANCTIONS_RECIPIENT_BYPASS, etc. For Travel Rule: BELOW_THRESHOLD, NO_TRM_AVAILABLE, etc. | [optional] |
+|**bypassReason** | **String** | Reason for bypassing the screening, if applicable. For AML: UNSUPPORTED_ASSET, PASSED_BY_POLICY. For Travel Rule: UNSUPPORTED_ASSET, NO_TRAVEL_RULE_MESSAGE, TRANSACTION_ZERO_AMOUNT. | [optional] |
|**status** | **AmlStatusEnum** | | [optional] |
|**prevStatus** | **AmlStatusEnum** | | [optional] |
-|**prevBypassReason** | **String** | Previous bypass reason before the current bypass reason change | [optional] |
+|**prevBypassReason** | **String** | Deprecated: This field is not currently returned in the API response. Previous bypass reason before the current bypass reason change. | [optional] |
|**verdict** | **ScreeningVerdictEnum** | | [optional] |
-|**risk** | **ScreeningRiskLevelEnum** | | [optional] |
-|**extendedRisk** | **ScreeningRiskLevelEnum** | | [optional] |
+|**risk** | **String** | Risk level assessment for screening results. Values vary by provider and are not managed by this service. Known values by provider: - Chainalysis: severeRisk, highRisk, mediumRisk, lowRisk, noRiskInfo - Elliptic: noRiskDetected Legacy values (SCREAMING_SNAKE_CASE, may appear in old transactions): VERY_HIGH, SEVERE, HIGH, MEDIUM, LOW, NO_RISK_INFO, UNKNOWN | [optional] |
+|**extendedRisk** | **String** | Deprecated: This field is not currently returned in the API response. Use risk instead. | [optional] |
|**externalId** | **String** | External identifier for the screening (provider-specific) | [optional] |
|**customerRefId** | **String** | Customer-provided reference identifier for tracking | [optional] |
-|**refId** | **String** | Internal reference identifier | [optional] |
+|**refId** | **String** | Deprecated: This field is not currently returned in the API response. Internal reference identifier. | [optional] |
|**category** | **String** | Risk category classification. Examples: EXCHANGE, GAMBLING, MIXER, DARKNET_SERVICE, SANCTIONED_ENTITY | [optional] |
|**categoryId** | **BigDecimal** | Numeric identifier for the risk category | [optional] |
|**destAddress** | **String** | The destination blockchain address associated with the screening | [optional] |
|**destTag** | **String** | Destination tag or memo (for chains that support it like XRP, XLM) | [optional] |
-|**destRecordId** | **String** | The destination record identifier used by the screening provider | [optional] |
-|**addressResolutionSignature** | **String** | Cryptographic signature for address resolution verification | [optional] |
+|**destRecordId** | **String** | Deprecated: This field is not currently returned in the API response. The destination record identifier used by the screening provider. | [optional] |
+|**addressResolutionSignature** | **String** | Deprecated: This field is not currently returned in the API response. Cryptographic signature for address resolution verification. | [optional] |
|**amlResult** | [**ScreeningAmlResult**](ScreeningAmlResult.md) | | [optional] |
|**result** | [**ScreeningTravelRuleResult**](ScreeningTravelRuleResult.md) | | [optional] |
|**detailsMessage** | **String** | Additional human-readable details or message about the screening result | [optional] |
@@ -38,6 +38,7 @@ The result of the AML/Travel Rule screening. This unified schema contains all fi
|**customerIntegrationId** | **String** | Customer integration identifier used by Travel Rule providers | [optional] |
|**customerShortName** | **String** | Customer short name registered with Travel Rule providers | [optional] |
|**travelRuleMessageId** | **String** | Travel rule message identifier for linking and tracking across providers | [optional] |
+|**providerResponse** | **Map<String, Object>** | Complete response from the screening provider. This is a dynamic object that varies significantly between different providers (Chainalysis, Elliptic, NOTABENE, etc.). Each provider has their own proprietary response format and schema. For AML providers: Contains risk scores, alerts, entity information For Travel Rule providers: Contains VASP information, PII data, protocol-specific fields The structure is provider-dependent and cannot be standardized as each vendor implements their own proprietary data models and response formats. | [optional] |
diff --git a/docs/CreateMultipleAccountsRequest.md b/docs/CreateMultipleAccountsRequest.md
index bcb27cfa..31339e80 100644
--- a/docs/CreateMultipleAccountsRequest.md
+++ b/docs/CreateMultipleAccountsRequest.md
@@ -12,6 +12,7 @@
|**names** | **List<String>** | Names to assign to vault accounts. if vaultAccountNamesStartingIndex or prefix is used it'll fail | [optional] |
|**vaultAccountNamesStartingIndex** | **Integer** | Copy vault accounts names starting from this index. If names array is used it'll fail | [optional] |
|**prefix** | **String** | When copying from existing vault accounts (vaultAccountNamesStartingIndex) then adding a prefix to the names. If names array is used it'll fail | [optional] |
+|**tagIds** | **List<UUID>** | Optional list of tag IDs to attach to all created vault accounts | [optional] |
diff --git a/docs/DirectAccessProvider.md b/docs/DirectAccessProvider.md
index 416c2ef2..8bcfbbca 100644
--- a/docs/DirectAccessProvider.md
+++ b/docs/DirectAccessProvider.md
@@ -11,9 +11,11 @@
|**name** | **String** | Display name of the provider | |
|**logo** | **String** | URL to the logo image of the provider | [optional] |
|**accountBased** | **Boolean** | Indicates whether the provider access model is through accounts or directly | |
+|**manifest** | [**Manifest**](Manifest.md) | | |
|**approved** | **Boolean** | Whether the provider was approved for use | [optional] |
|**hasTermsOfService** | **Boolean** | Whether the provider has terms of service | |
|**termsOfServiceUrl** | **String** | URL to the terms of service document | [optional] |
+|**privacyPolicyUrl** | **String** | URL to the privacy policy document | [optional] |
diff --git a/docs/DirectAccessProviderDetails.md b/docs/DirectAccessProviderInfo.md
similarity index 77%
rename from docs/DirectAccessProviderDetails.md
rename to docs/DirectAccessProviderInfo.md
index 1edc3893..5dbfe773 100644
--- a/docs/DirectAccessProviderDetails.md
+++ b/docs/DirectAccessProviderInfo.md
@@ -1,6 +1,6 @@
-# DirectAccessProviderDetails
+# DirectAccessProviderInfo
## Properties
@@ -10,6 +10,7 @@
|**approved** | **Boolean** | Whether the provider was approved for use | [optional] |
|**hasTermsOfService** | **Boolean** | Whether the provider has terms of service | |
|**termsOfServiceUrl** | **String** | URL to the terms of service document | [optional] |
+|**privacyPolicyUrl** | **String** | URL to the privacy policy document | [optional] |
diff --git a/docs/DirectProviderDetails.md b/docs/DirectProviderDetails.md
new file mode 100644
index 00000000..fb668d9f
--- /dev/null
+++ b/docs/DirectProviderDetails.md
@@ -0,0 +1,21 @@
+
+
+# DirectProviderDetails
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**id** | **String** | Unique identifier for the provider | |
+|**name** | **String** | Display name of the provider | |
+|**logo** | **String** | URL to the logo image of the provider | [optional] |
+|**accountBased** | **Boolean** | Indicates whether the provider access model is through accounts or directly | |
+|**manifest** | [**Manifest**](Manifest.md) | | |
+|**approved** | **Boolean** | Whether the provider was approved for use | [optional] |
+|**hasTermsOfService** | **Boolean** | Whether the provider has terms of service | |
+|**termsOfServiceUrl** | **String** | URL to the terms of service document | [optional] |
+|**privacyPolicyUrl** | **String** | URL to the privacy policy document | [optional] |
+
+
+
diff --git a/docs/ExecutionRequestDetailsType.md b/docs/ExecutionRequestDetailsType.md
new file mode 100644
index 00000000..e69dc4d3
--- /dev/null
+++ b/docs/ExecutionRequestDetailsType.md
@@ -0,0 +1,13 @@
+
+
+# ExecutionRequestDetailsType
+
+## Enum
+
+
+* `QUOTE` (value: `"QUOTE"`)
+
+* `MARKET` (value: `"MARKET"`)
+
+
+
diff --git a/docs/ExtraParameters.md b/docs/ExtraParameters.md
index 1cf55364..5ff9d98f 100644
--- a/docs/ExtraParameters.md
+++ b/docs/ExtraParameters.md
@@ -2,7 +2,7 @@
# ExtraParameters
-Additional protocol / operation specific key-value parameters: For UTXO-based blockchain input selection, add the key `inputsSelection` with the value set to the [input selection structure.](https://developers.fireblocks.com/reference/transaction-objects#inputsselection) The inputs can be retrieved from the [Retrieve Unspent Inputs endpoint.](https://developers.fireblocks.com/reference/get_vault-accounts-vaultaccountid-assetid-unspent-inputs) For `RAW` operations, add the key `rawMessageData` with the value set to the [raw message data structure.](https://developers.fireblocks.com/reference/raw-signing-objects#rawmessagedata) For `CONTRACT_CALL` operations, add the key `contractCallData` with the value set to the Ethereum smart contract Application Binary Interface (ABI) payload. The Fireblocks [development libraries](https://developers.fireblocks.com/docs/ethereum-development#convenience-libraries) are recommended for building contract call transactions. For **exchange compliance (e.g., Binance) and Travel Rule purposes**, include the key `piiData` containing a **custom JSON structure** with Personally Identifiable Information (PII) relevant to the transaction. This data must be fully **encrypted by the sender** before being submitted to the Fireblocks API. The recommended encryption method is **hybrid encryption** using AES-256-GCM for the payload and RSA-OAEP for key exchange, with the recipient exchange's public key. [development libraries](https://developers.fireblocks.com/docs/a-developers-guide-to-constructing-encrypted-pii-messages-for-binance-via-fireblocks) **Note:** `rawMessageData`, `contractCallData`, and `inputsSelection` cannot be used together in the same call.
+Additional protocol / operation specific key-value parameters: For UTXO-based blockchain input selection, add the key `inputsSelection` with the value set to the [input selection structure.](https://developers.fireblocks.com/reference/transaction-objects#inputsselection) The inputs can be retrieved from the [Retrieve Unspent Inputs endpoint.](https://developers.fireblocks.com/reference/getunspentinputs) For `RAW` operations, add the key `rawMessageData` with the value set to the [raw message data structure.](https://developers.fireblocks.com/reference/raw-signing-objects#rawmessagedata) For `CONTRACT_CALL` operations, add the key `contractCallData` with the value set to the Ethereum smart contract Application Binary Interface (ABI) payload. The Fireblocks [development libraries](https://developers.fireblocks.com/docs/ethereum-development#convenience-libraries) are recommended for building contract call transactions. For **exchange compliance (e.g., Binance) and Travel Rule purposes**, include the key `piiData` containing a **custom JSON structure** with Personally Identifiable Information (PII) relevant to the transaction. This data must be fully **encrypted by the sender** before being submitted to the Fireblocks API. The recommended encryption method is **hybrid encryption** using AES-256-GCM for the payload and RSA-OAEP for key exchange, with the recipient exchange's public key. [development libraries](https://developers.fireblocks.com/docs/a-developers-guide-to-constructing-encrypted-pii-messages-for-binance-via-fireblocks) **Note:** `rawMessageData`, `contractCallData`, and `inputsSelection` cannot be used together in the same call.
## Properties
diff --git a/docs/GetTransactionOperation.md b/docs/GetTransactionOperation.md
index 77121dfe..b5c2505c 100644
--- a/docs/GetTransactionOperation.md
+++ b/docs/GetTransactionOperation.md
@@ -21,10 +21,6 @@
* `STAKE` (value: `"STAKE"`)
-* `UNSTAKE` (value: `"UNSTAKE"`)
-
-* `WITHDRAW` (value: `"WITHDRAW"`)
-
* `REDEEM_FROM_COMPOUND` (value: `"REDEEM_FROM_COMPOUND"`)
* `SUPPLY_TO_COMPOUND` (value: `"SUPPLY_TO_COMPOUND"`)
diff --git a/docs/GleifData.md b/docs/GleifData.md
new file mode 100644
index 00000000..19127290
--- /dev/null
+++ b/docs/GleifData.md
@@ -0,0 +1,19 @@
+
+
+# GleifData
+
+GLEIF (Global Legal Entity Identifier Foundation) data for a legal entity
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**lei** | **String** | Legal Entity Identifier (LEI) code | |
+|**legalName** | **String** | Official legal name of the entity | |
+|**otherNames** | **List<String>** | Alternative names for the entity | [optional] |
+|**legalAddressRegion** | **String** | Region or state of the legal address | [optional] |
+|**legalAddressCountry** | **String** | Country code of the legal address (ISO 3166-1 alpha-2) | |
+|**nextRenewalDate** | **OffsetDateTime** | Date when the LEI registration must be renewed | [optional] |
+
+
+
diff --git a/docs/InteracAddress.md b/docs/InteracAddress.md
index 24b9abb5..17395e76 100644
--- a/docs/InteracAddress.md
+++ b/docs/InteracAddress.md
@@ -2,6 +2,7 @@
# InteracAddress
+When true, funds are deposited directly into the recipient's bank account without a security question. When false, a security question and answer are required to complete the transfer
## Properties
@@ -10,6 +11,9 @@
|**accountHolder** | [**AccountHolderDetails**](AccountHolderDetails.md) | | |
|**recipientHandle** | [**RecipientHandle**](RecipientHandle.md) | | |
|**message** | **String** | The message to be sent to the recipient | [optional] |
+|**autoDeposit** | **Boolean** | Whether to automatically deposit the funds into the account | |
+|**securityQuestion** | **String** | The security question to be used for the security answer | [optional] |
+|**securityAnswer** | **String** | The security answer to be used for the security question | [optional] |
diff --git a/docs/JobCreated.md b/docs/JobCreated.md
index acbe1693..99cd53eb 100644
--- a/docs/JobCreated.md
+++ b/docs/JobCreated.md
@@ -8,6 +8,7 @@
| Name | Type | Description | Notes |
|------------ | ------------- | ------------- | -------------|
|**jobId** | **String** | | [optional] |
+|**approvalRequestId** | **String** | Approval request ID. Returned when a tag triggers an approval flow. | [optional] |
diff --git a/docs/LegalEntityRegistration.md b/docs/LegalEntityRegistration.md
new file mode 100644
index 00000000..c5b7f3a8
--- /dev/null
+++ b/docs/LegalEntityRegistration.md
@@ -0,0 +1,22 @@
+
+
+# LegalEntityRegistration
+
+Legal entity registration record
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**id** | **UUID** | Unique registration identifier | |
+|**lei** | **String** | Legal Entity Identifier (LEI) code | |
+|**status** | **LeiStatus** | | |
+|**isDefault** | **Boolean** | Whether this is the default legal entity for the workspace | |
+|**travelRuleProviders** | **List<TravelRuleProvider>** | Travel rule providers configured for this registration | |
+|**travelRuleContactEmail** | **String** | Contact email for travel rule communications | [optional] |
+|**gleifData** | [**GleifData**](GleifData.md) | | [optional] |
+|**createdAt** | **String** | Creation timestamp in milliseconds since epoch | |
+|**updatedAt** | **String** | Last update timestamp in milliseconds since epoch | |
+
+
+
diff --git a/docs/LeiStatus.md b/docs/LeiStatus.md
new file mode 100644
index 00000000..efc0b4df
--- /dev/null
+++ b/docs/LeiStatus.md
@@ -0,0 +1,17 @@
+
+
+# LeiStatus
+
+## Enum
+
+
+* `PENDING` (value: `"PENDING"`)
+
+* `APPROVED` (value: `"APPROVED"`)
+
+* `DENIED` (value: `"DENIED"`)
+
+* `REVOKED` (value: `"REVOKED"`)
+
+
+
diff --git a/docs/ListLegalEntitiesResponse.md b/docs/ListLegalEntitiesResponse.md
new file mode 100644
index 00000000..f854c655
--- /dev/null
+++ b/docs/ListLegalEntitiesResponse.md
@@ -0,0 +1,17 @@
+
+
+# ListLegalEntitiesResponse
+
+Paginated response containing a list of legal entity registrations
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**total** | **Integer** | Total number of legal entity registrations (optional) | [optional] |
+|**data** | [**List<LegalEntityRegistration>**](LegalEntityRegistration.md) | Legal entity registrations for the current page | |
+|**next** | **String** | Cursor to pass as `pageCursor` to retrieve the next page | [optional] |
+|**prev** | **String** | Cursor to pass as `pageCursor` to retrieve the previous page | [optional] |
+
+
+
diff --git a/docs/ListVaultsForRegistrationResponse.md b/docs/ListVaultsForRegistrationResponse.md
new file mode 100644
index 00000000..8f1a91d8
--- /dev/null
+++ b/docs/ListVaultsForRegistrationResponse.md
@@ -0,0 +1,17 @@
+
+
+# ListVaultsForRegistrationResponse
+
+Response containing vault account IDs assigned to a legal entity registration
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**total** | **Integer** | Total number of legal entity registrations (optional) | [optional] |
+|**data** | **List<String>** | List of vault account IDs assigned to the legal entity registration | |
+|**next** | **String** | Cursor to pass as `pageCursor` to retrieve the next page | [optional] |
+|**prev** | **String** | Cursor to pass as `pageCursor` to retrieve the previous page | [optional] |
+
+
+
diff --git a/docs/Manifest.md b/docs/Manifest.md
index b1095e49..769ea00c 100644
--- a/docs/Manifest.md
+++ b/docs/Manifest.md
@@ -2,13 +2,15 @@
# Manifest
+The manifest of the provider, describing its supported order, quote, and rate requirements.
## Properties
| Name | Type | Description | Notes |
|------------ | ------------- | ------------- | -------------|
-|**assetTypes** | **List<AssetTypeEnum>** | | |
-|**capabilities** | **List<Capability>** | | |
+|**order** | [**ManifestOrder**](ManifestOrder.md) | | |
+|**quote** | [**ManifestQuote**](ManifestQuote.md) | | |
+|**rate** | [**ManifestBase**](ManifestBase.md) | | |
diff --git a/docs/ManifestBase.md b/docs/ManifestBase.md
new file mode 100644
index 00000000..1efaa4f4
--- /dev/null
+++ b/docs/ManifestBase.md
@@ -0,0 +1,14 @@
+
+
+# ManifestBase
+
+Base manifest schema with common properties
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**supported** | **Boolean** | Indicates whether the endpoint is supported by the provider | |
+
+
+
diff --git a/docs/ManifestOrder.md b/docs/ManifestOrder.md
new file mode 100644
index 00000000..4fd56c5d
--- /dev/null
+++ b/docs/ManifestOrder.md
@@ -0,0 +1,15 @@
+
+
+# ManifestOrder
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**supported** | **Boolean** | Indicates whether the endpoint is supported by the provider | |
+|**settlementTypes** | **List<SettlementTypeEnum>** | Supported settlement types when creating an order. If present - settlement is required. If absent - no need to provide settlement. | [optional] |
+|**executionTypes** | **List<ExecutionRequestDetailsType>** | Supported execution types when creating an order. | |
+
+
+
diff --git a/docs/ManifestOrderInfo.md b/docs/ManifestOrderInfo.md
new file mode 100644
index 00000000..003d8b63
--- /dev/null
+++ b/docs/ManifestOrderInfo.md
@@ -0,0 +1,15 @@
+
+
+# ManifestOrderInfo
+
+Defines requirements for the POST /orders endpoint.
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**settlementTypes** | **List<SettlementTypeEnum>** | Supported settlement types when creating an order. If present - settlement is required. If absent - no need to provide settlement. | [optional] |
+|**executionTypes** | **List<ExecutionRequestDetailsType>** | Supported execution types when creating an order. | |
+
+
+
diff --git a/docs/ManifestQuote.md b/docs/ManifestQuote.md
new file mode 100644
index 00000000..18306b0b
--- /dev/null
+++ b/docs/ManifestQuote.md
@@ -0,0 +1,14 @@
+
+
+# ManifestQuote
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**supported** | **Boolean** | Indicates whether the endpoint is supported by the provider | |
+|**settlementTypes** | **List<DVPSettlementType>** | Supported settlement types when requesting a quote. If present - settlement is required. If absent - no need to provide settlement. | [optional] |
+
+
+
diff --git a/docs/ManifestQuoteInfo.md b/docs/ManifestQuoteInfo.md
new file mode 100644
index 00000000..ed6d24fc
--- /dev/null
+++ b/docs/ManifestQuoteInfo.md
@@ -0,0 +1,14 @@
+
+
+# ManifestQuoteInfo
+
+Defines requirements for the POST /quotes endpoint.
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**settlementTypes** | **List<DVPSettlementType>** | Supported settlement types when requesting a quote. If present - settlement is required. If absent - no need to provide settlement. | [optional] |
+
+
+
diff --git a/docs/NftsApi.md b/docs/NftsApi.md
index 33c17dd4..890f09af 100644
--- a/docs/NftsApi.md
+++ b/docs/NftsApi.md
@@ -262,7 +262,7 @@ public class Example {
| Name | Type | Description | Notes |
|------------- | ------------- | ------------- | -------------|
-| **blockchainDescriptor** | **String**| Blockchain descriptor filter | [optional] [enum: ETH, ETH_TEST3, ETH_TEST5, ETH_TEST6, POLYGON, POLYGON_TEST_MUMBAI, AMOY_POLYGON_TEST, XTZ, XTZ_TEST, BASECHAIN_ETH, BASECHAIN_ETH_TEST3, BASECHAIN_ETH_TEST5, ETHERLINK, ETHERLINK_TEST, MANTLE, MANTLE_TEST, GUN_GUNZILLA, GUN_GUNZILLA_TEST, ETH_SONEIUM, SONEIUM_MINATO_TEST, IOTX_IOTEX, KLAY_KAIA, KLAY_KAIA_TEST, APECHAIN, APECHAIN_TEST, CRONOS, CRONOS_TEST] |
+| **blockchainDescriptor** | **String**| Blockchain descriptor filter | [optional] [enum: ETH, ETH_TEST3, ETH_TEST5, ETH_TEST6, POLYGON, POLYGON_TEST_MUMBAI, AMOY_POLYGON_TEST, XTZ, XTZ_TEST, BASECHAIN_ETH, BASECHAIN_ETH_TEST3, BASECHAIN_ETH_TEST5, ETHERLINK, ETHERLINK_TEST, MANTLE, MANTLE_TEST, GUN_GUNZILLA, GUN_GUNZILLA_TEST, ETH_SONEIUM, SONEIUM_MINATO_TEST, IOTX_IOTEX, KLAY_KAIA, KLAY_KAIA_TEST, APECHAIN, APECHAIN_TEST, CRONOS, CRONOS_TEST, ROBINHOOD_CHAIN_TESTNET_TEST] |
| **vaultAccountIds** | **String**| A comma separated list of Vault Account IDs. Up to 100 are allowed in a single request. This field will be ignored when walletType=END_USER_WALLET or ncwId is provided. | [optional] |
| **ncwId** | **String**| Tenant's Non-Custodial Wallet ID | [optional] |
| **ncwAccountIds** | **String**| A comma separated list of Non-Custodial account IDs. Up to 100 are allowed in a single request. This field will be ignored when walletType=VAULT_ACCOUNT or ncwId is not provided. | [optional] |
@@ -637,7 +637,7 @@ public class Example {
| Name | Type | Description | Notes |
|------------- | ------------- | ------------- | -------------|
-| **blockchainDescriptor** | **String**| Blockchain descriptor filter | [enum: ETH, ETH_TEST5, ETH_TEST6, POLYGON, POLYGON_TEST_MUMBAI, AMOY_POLYGON_TEST, BASECHAIN_ETH, BASECHAIN_ETH_TEST5, ETHERLINK, ETHERLINK_TEST, MANTLE, MANTLE_TEST, GUN_GUNZILLA, GUN_GUNZILLA_TEST, ETH_SONEIUM, SONEIUM_MINATO_TEST, IOTX_IOTEX, KLAY_KAIA, KLAY_KAIA_TEST, APECHAIN, APECHAIN_TEST] |
+| **blockchainDescriptor** | **String**| Blockchain descriptor filter | [enum: ETH, ETH_TEST5, ETH_TEST6, POLYGON, POLYGON_TEST_MUMBAI, AMOY_POLYGON_TEST, BASECHAIN_ETH, BASECHAIN_ETH_TEST5, ETHERLINK, ETHERLINK_TEST, MANTLE, MANTLE_TEST, GUN_GUNZILLA, GUN_GUNZILLA_TEST, ETH_SONEIUM, SONEIUM_MINATO_TEST, IOTX_IOTEX, KLAY_KAIA, KLAY_KAIA_TEST, APECHAIN, APECHAIN_TEST, ROBINHOOD_CHAIN_TESTNET_TEST] |
| **vaultAccountId** | **String**| Vault account filter | |
| **idempotencyKey** | **String**| A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours. | [optional] |
diff --git a/docs/Position.md b/docs/Position.md
new file mode 100644
index 00000000..75d1423f
--- /dev/null
+++ b/docs/Position.md
@@ -0,0 +1,61 @@
+
+
+# Position
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**id** | **String** | The unique identifier of the staking position | |
+|**vaultAccountId** | **String** | The source vault account to stake from | |
+|**validatorName** | **String** | The destination validator address name | |
+|**providerName** | **String** | The destination validator provider name | |
+|**chainDescriptor** | **String** | The protocol identifier (e.g. \"ETH\"/ \"SOL\") to use | |
+|**amount** | **String** | Total value of the staking position. For Solana, Lido and Ethereum (compounding validator): includes the original stake plus accumulated rewards. For MATIC, Cosmos and Ethereum (legacy validator): refers to the amount currently staked. | |
+|**rewardsAmount** | **String** | The amount staked in the position, measured in the staked asset unit. | |
+|**dateCreated** | **OffsetDateTime** | When was the request made (ISO Date). | |
+|**dateUpdated** | **OffsetDateTime** | When has the position last changed (ISO Date). | |
+|**status** | [**StatusEnum**](#StatusEnum) | The current status. | |
+|**validatorAddress** | **String** | The destination address of the staking transaction. | |
+|**providerId** | **StakingProvider** | | |
+|**availableActions** | [**List<AvailableActionsEnum>**](#List<AvailableActionsEnum>) | An array of available actions that can be performed. for example, actions like \"UNSTAKE\" or \"WITHDRAW\". | |
+|**inProgress** | **Boolean** | Indicates whether there is an ongoing action for this position related to this request | |
+|**inProgressTxId** | **String** | The transaction ID of the initial stake position request only. Only present when there is an active initial stake transaction. | [optional] |
+|**blockchainPositionInfo** | [**DelegationBlockchainPositionInfo**](DelegationBlockchainPositionInfo.md) | | |
+
+
+
+## Enum: StatusEnum
+
+| Name | Value |
+|---- | -----|
+| CREATING | "CREATING" |
+| PENDING | "PENDING" |
+| ACTIVATING | "ACTIVATING" |
+| ACTIVE | "ACTIVE" |
+| DEACTIVATING | "DEACTIVATING" |
+| DEACTIVATED | "DEACTIVATED" |
+| WITHDRAWING | "WITHDRAWING" |
+| WITHDRAWN | "WITHDRAWN" |
+| MERGED | "MERGED" |
+| CONSOLIDATED | "CONSOLIDATED" |
+| CANCELED | "CANCELED" |
+| FAILED | "FAILED" |
+
+
+
+## Enum: List<AvailableActionsEnum>
+
+| Name | Value |
+|---- | -----|
+| UNSTAKE | "UNSTAKE" |
+| WITHDRAW | "WITHDRAW" |
+| ADD_TO_STAKE | "ADD_TO_STAKE" |
+| SPLIT | "SPLIT" |
+| MERGE | "MERGE" |
+| CLAIM_REWARDS | "CLAIM_REWARDS" |
+| CONSOLIDATE | "CONSOLIDATE" |
+
+
+
diff --git a/docs/RegisterLegalEntityRequest.md b/docs/RegisterLegalEntityRequest.md
new file mode 100644
index 00000000..7912747e
--- /dev/null
+++ b/docs/RegisterLegalEntityRequest.md
@@ -0,0 +1,16 @@
+
+
+# RegisterLegalEntityRequest
+
+Request body to register a new legal entity
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**lei** | **String** | Legal Entity Identifier (LEI) code to register. Must be a valid 20-character LEI present in the GLEIF registry. | |
+|**travelRuleProviders** | **List<TravelRuleProvider>** | Travel rule providers to associate with this registration | [optional] |
+|**travelRuleContactEmail** | **String** | Contact email for travel rule communications | [optional] |
+
+
+
diff --git a/docs/ScreeningAmlResult.md b/docs/ScreeningAmlResult.md
index ae17f445..3366ba26 100644
--- a/docs/ScreeningAmlResult.md
+++ b/docs/ScreeningAmlResult.md
@@ -2,7 +2,7 @@
# ScreeningAmlResult
-Detailed AML screening result information. Contains alerts, risk scores, and other AML-specific data from provider-specific responses.
+Deprecated: This field is not currently returned in the API response. Detailed AML screening result information. Contains alerts, risk scores, and other AML-specific data from provider-specific responses.
## Properties
diff --git a/docs/ScreeningRiskLevelEnum.md b/docs/ScreeningRiskLevelEnum.md
deleted file mode 100644
index 06f4624a..00000000
--- a/docs/ScreeningRiskLevelEnum.md
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-# ScreeningRiskLevelEnum
-
-## Enum
-
-
-* `VERY_HIGH` (value: `"VERY_HIGH"`)
-
-* `SEVERE` (value: `"SEVERE"`)
-
-* `HIGH` (value: `"HIGH"`)
-
-* `MEDIUM` (value: `"MEDIUM"`)
-
-* `LOW` (value: `"LOW"`)
-
-* `UNKNOWN` (value: `"UNKNOWN"`)
-
-
-
diff --git a/docs/ScreeningTravelRuleResult.md b/docs/ScreeningTravelRuleResult.md
index decc6b25..feb81ef0 100644
--- a/docs/ScreeningTravelRuleResult.md
+++ b/docs/ScreeningTravelRuleResult.md
@@ -2,7 +2,7 @@
# ScreeningTravelRuleResult
-Detailed Travel Rule screening result containing provider-specific data. Contains Travel Rule specific information like verified status, rule type, and actions.
+Deprecated: This field is not currently returned in the API response. Detailed Travel Rule screening result containing provider-specific data. Contains Travel Rule specific information like verified status, rule type, and actions.
## Properties
diff --git a/docs/SettlementTypeEnum.md b/docs/SettlementTypeEnum.md
new file mode 100644
index 00000000..43c9a1f6
--- /dev/null
+++ b/docs/SettlementTypeEnum.md
@@ -0,0 +1,13 @@
+
+
+# SettlementTypeEnum
+
+## Enum
+
+
+* `DVP` (value: `"DVP"`)
+
+* `PREFUNDED` (value: `"PREFUNDED"`)
+
+
+
diff --git a/docs/StakingApi.md b/docs/StakingApi.md
index eec08493..9a922f36 100644
--- a/docs/StakingApi.md
+++ b/docs/StakingApi.md
@@ -11,6 +11,7 @@ All URIs are relative to https://developers.fireblocks.com/reference/
| [**getChainInfo**](StakingApi.md#getChainInfo) | **GET** /staking/chains/{chainDescriptor}/chainInfo | Get chain-level staking parameters |
| [**getChains**](StakingApi.md#getChains) | **GET** /staking/chains | List supported staking chains |
| [**getDelegationById**](StakingApi.md#getDelegationById) | **GET** /staking/positions/{id} | Get position details |
+| [**getPositions**](StakingApi.md#getPositions) | **GET** /staking/positions_paginated | List staking positions (Paginated) |
| [**getProviders**](StakingApi.md#getProviders) | **GET** /staking/providers | List staking providers |
| [**getSummary**](StakingApi.md#getSummary) | **GET** /staking/positions/summary | Get positions summary |
| [**getSummaryByVault**](StakingApi.md#getSummaryByVault) | **GET** /staking/positions/summary/vaults | Get positions summary by vault |
@@ -208,7 +209,7 @@ No authorization required
Consolidate staking positions (ETH validator consolidation)
-Consolidates the source staking position into the destination, merging the balance into the destination and closing the source position once complete. Both positions must be from the same validator provider and same vault account. On chain, this translates into a consolidation transaction, where the source validator is consolidated into the destination validator. Supported chains: Ethereum (ETH) only. </br>Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Approver, Editor.
+Consolidates the source staking position into the destination, merging the balance into the destination and closing the source position once complete. Both positions must be from the same funding vaults account (i.e. same withdrawals credentials). On chain, this translates into a consolidation transaction, where the source validator is consolidated into the destination validator. Supported chains: Ethereum (ETH) only. </br>Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Approver, Editor. **Note:** This endpoint is currently in beta and might be subject to changes.
### Example
@@ -296,7 +297,7 @@ No authorization required
## getAllDelegations
-> CompletableFuture>> getAllDelegations getAllDelegations(chainDescriptor)
+> CompletableFuture>> getAllDelegations getAllDelegations(chainDescriptor, vaultAccountId)
List staking positions
@@ -326,8 +327,9 @@ public class Example {
Fireblocks fireblocks = new Fireblocks(configurationOptions);
ChainDescriptor chainDescriptor = ChainDescriptor.fromValue("ATOM_COS"); // ChainDescriptor | Protocol identifier to filter positions (e.g., ATOM_COS/AXL/CELESTIA}). If omitted, positions across all supported chains are returned.
+ String vaultAccountId = "1"; // String | Filter positions by vault account ID.
try {
- CompletableFuture>> response = fireblocks.staking().getAllDelegations(chainDescriptor);
+ CompletableFuture>> response = fireblocks.staking().getAllDelegations(chainDescriptor, vaultAccountId);
System.out.println("Status code: " + response.get().getStatusCode());
System.out.println("Response headers: " + response.get().getHeaders());
System.out.println("Response body: " + response.get().getData());
@@ -355,6 +357,7 @@ public class Example {
| Name | Type | Description | Notes |
|------------- | ------------- | ------------- | -------------|
| **chainDescriptor** | [**ChainDescriptor**](.md)| Protocol identifier to filter positions (e.g., ATOM_COS/AXL/CELESTIA}). If omitted, positions across all supported chains are returned. | [optional] [enum: ATOM_COS, AXL, AXL_TEST, CELESTIA, DYDX_DYDX, ETH, ETH_TEST6, ETH_TEST_HOODI, INJ_INJ, MANTRA, MATIC, OSMO, SOL, SOL_TEST, STETH_ETH, STETH_ETH_TEST6_DZFA, STETH_ETH_TEST_HOODI] |
+| **vaultAccountId** | **String**| Filter positions by vault account ID. | [optional] |
### Return type
@@ -641,6 +644,102 @@ No authorization required
| **0** | Error Response | * X-Request-ID -
|
+## getPositions
+
+> CompletableFuture> getPositions getPositions(pageSize, chainDescriptor, vaultAccountId, pageCursor, order)
+
+List staking positions (Paginated)
+
+Returns staking positions with core details: amounts, rewards, status, chain, and vault. It supports cursor-based pagination for efficient data retrieval. This endpoint always returns a paginated response with {data, next} structure. </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
+
+### Example
+
+```java
+// Import classes:
+import com.fireblocks.sdk.ApiClient;
+import com.fireblocks.sdk.ApiException;
+import com.fireblocks.sdk.ApiResponse;
+import com.fireblocks.sdk.BasePath;
+import com.fireblocks.sdk.Fireblocks;
+import com.fireblocks.sdk.ConfigurationOptions;
+import com.fireblocks.sdk.model.*;
+import com.fireblocks.sdk.api.StakingApi;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+
+public class Example {
+ public static void main(String[] args) {
+ ConfigurationOptions configurationOptions = new ConfigurationOptions()
+ .basePath(BasePath.Sandbox)
+ .apiKey("my-api-key")
+ .secretKey("my-secret-key");
+ Fireblocks fireblocks = new Fireblocks(configurationOptions);
+
+ Integer pageSize = 10; // Integer | Number of results per page. When provided, the response returns a paginated object with {data, next}. If omitted, all results are returned as an array.
+ ChainDescriptor chainDescriptor = ChainDescriptor.fromValue("ATOM_COS"); // ChainDescriptor | Protocol identifier to filter positions (e.g., ATOM_COS/AXL/CELESTIA}). If omitted, positions across all supported chains are returned.
+ String vaultAccountId = "10"; // String | Filter positions by Fireblocks vault account ID. If omitted, positions across all vault accounts are returned.
+ String pageCursor = "eJ0eXAiOiJKV1QiLCJhbGcOiJIUzI1NiJ9"; // String | Cursor for the next page of results. Use the value from the 'next' field in the previous response.
+ String order = "ASC"; // String | ASC / DESC ordering (default DESC)
+ try {
+ CompletableFuture> response = fireblocks.staking().getPositions(pageSize, chainDescriptor, vaultAccountId, pageCursor, order);
+ System.out.println("Status code: " + response.get().getStatusCode());
+ System.out.println("Response headers: " + response.get().getHeaders());
+ System.out.println("Response body: " + response.get().getData());
+ } catch (InterruptedException | ExecutionException e) {
+ ApiException apiException = (ApiException)e.getCause();
+ System.err.println("Exception when calling StakingApi#getPositions");
+ System.err.println("Status code: " + apiException.getCode());
+ System.err.println("Response headers: " + apiException.getResponseHeaders());
+ System.err.println("Reason: " + apiException.getResponseBody());
+ e.printStackTrace();
+ } catch (ApiException e) {
+ System.err.println("Exception when calling StakingApi#getPositions");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ System.err.println("Reason: " + e.getResponseBody());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+
+
+| Name | Type | Description | Notes |
+|------------- | ------------- | ------------- | -------------|
+| **pageSize** | **Integer**| Number of results per page. When provided, the response returns a paginated object with {data, next}. If omitted, all results are returned as an array. | [default to 10] |
+| **chainDescriptor** | [**ChainDescriptor**](.md)| Protocol identifier to filter positions (e.g., ATOM_COS/AXL/CELESTIA}). If omitted, positions across all supported chains are returned. | [optional] [enum: ATOM_COS, AXL, AXL_TEST, CELESTIA, DYDX_DYDX, ETH, ETH_TEST6, ETH_TEST_HOODI, INJ_INJ, MANTRA, MATIC, OSMO, SOL, SOL_TEST, STETH_ETH, STETH_ETH_TEST6_DZFA, STETH_ETH_TEST_HOODI] |
+| **vaultAccountId** | **String**| Filter positions by Fireblocks vault account ID. If omitted, positions across all vault accounts are returned. | [optional] |
+| **pageCursor** | **String**| Cursor for the next page of results. Use the value from the 'next' field in the previous response. | [optional] |
+| **order** | **String**| ASC / DESC ordering (default DESC) | [optional] [default to DESC] [enum: ASC, DESC] |
+
+### Return type
+
+CompletableFuture>
+
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Positions retrieved successfully with pagination. | * X-Request-ID -
|
+| **400** | Bad request: missing/invalid fields, unsupported amount, or malformed payload. | * X-Request-ID -
|
+| **403** | Forbidden: insufficient permissions, disabled feature, or restricted provider/validator. | * X-Request-ID -
|
+| **404** | Not found: requested resource does not exist (e.g., position, validator, provider, or wallet). | * X-Request-ID -
|
+| **429** | Rate limit exceeded: slow down and retry later. | * X-Request-ID -
|
+| **500** | Internal error while processing the request. | * X-Request-ID -
|
+| **0** | Error Response | * X-Request-ID -
|
+
+
## getProviders
> CompletableFuture>> getProviders getProviders()
diff --git a/docs/StakingPositionsPaginatedResponse.md b/docs/StakingPositionsPaginatedResponse.md
new file mode 100644
index 00000000..1640b91f
--- /dev/null
+++ b/docs/StakingPositionsPaginatedResponse.md
@@ -0,0 +1,14 @@
+
+
+# StakingPositionsPaginatedResponse
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**data** | [**List<Position>**](Position.md) | The data of the current page of staking positions | |
+|**next** | **String** | The cursor for the next page | [optional] |
+
+
+
diff --git a/docs/TRLinkCreateIntegrationRequest.md b/docs/TRLinkCreateIntegrationRequest.md
index adbcddb9..0211a871 100644
--- a/docs/TRLinkCreateIntegrationRequest.md
+++ b/docs/TRLinkCreateIntegrationRequest.md
@@ -9,6 +9,7 @@
|------------ | ------------- | ------------- | -------------|
|**customerId** | **UUID** | Customer unique identifier | |
|**partnerIdent** | **String** | Partner identification code (e.g., \"sumsub\", \"notabene\") | |
+|**customerIntegrationId** | **UUID** | Optional. When supplied and permitted for the tenant (feature flag / CSM arrangement), this value is used as the TRLink integration identifier instead of a server-generated UUID. If omitted, the API generates a UUID. If supplied when the tenant is not permitted to set a custom id, the request fails with 400. Contact your CSM if you need a custom integration id. | [optional] |
diff --git a/docs/TokenOwnershipResponse.md b/docs/TokenOwnershipResponse.md
index b38e4229..e6317e85 100644
--- a/docs/TokenOwnershipResponse.md
+++ b/docs/TokenOwnershipResponse.md
@@ -59,6 +59,7 @@
| APECHAIN_TEST | "APECHAIN_TEST" |
| CRONOS | "CRONOS" |
| CRONOS_TEST | "CRONOS_TEST" |
+| ROBINHOOD_CHAIN_TESTNET_TEST | "ROBINHOOD_CHAIN_TESTNET_TEST" |
diff --git a/docs/TokenResponse.md b/docs/TokenResponse.md
index 38bc49b2..fab02ae1 100644
--- a/docs/TokenResponse.md
+++ b/docs/TokenResponse.md
@@ -52,6 +52,7 @@
| APECHAIN_TEST | "APECHAIN_TEST" |
| CRONOS | "CRONOS" |
| CRONOS_TEST | "CRONOS_TEST" |
+| ROBINHOOD_CHAIN_TESTNET_TEST | "ROBINHOOD_CHAIN_TESTNET_TEST" |
diff --git a/docs/TrLinkApi.md b/docs/TrLinkApi.md
index e5b79e32..11699623 100644
--- a/docs/TrLinkApi.md
+++ b/docs/TrLinkApi.md
@@ -115,7 +115,7 @@ No authorization required
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-| **200** | Travel rule assessment completed | - |
+| **200** | Travel rule assessment completed | * X-Request-ID -
|
| **0** | Error Response | * X-Request-ID -
|
@@ -204,7 +204,7 @@ No authorization required
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-| **202** | Transaction cancellation request accepted | - |
+| **202** | Transaction cancellation request accepted | * X-Request-ID -
|
| **0** | Error Response | * X-Request-ID -
|
@@ -291,7 +291,7 @@ No authorization required
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-| **200** | Customer integration connected successfully | - |
+| **200** | Customer integration connected successfully | * X-Request-ID -
|
| **0** | Error Response | * X-Request-ID -
|
@@ -376,7 +376,7 @@ No authorization required
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-| **201** | Customer created successfully | - |
+| **201** | Customer created successfully | * X-Request-ID -
|
| **0** | Error Response | * X-Request-ID -
|
@@ -386,7 +386,7 @@ No authorization required
Create customer integration
-Creates a new TRSupport integration for a customer. This establishes a connection placeholder between a customer and a Travel Rule partner. Use the connect endpoint to provide credentials after creation.
+Creates a new TRSupport integration for a customer. This establishes a connection placeholder between a customer and a Travel Rule partner. Use the connect endpoint to provide credentials after creation. You may optionally supply `customerIntegrationId` in the request body when your tenant is enabled for client-provided integration ids.
### Example
@@ -461,7 +461,7 @@ No authorization required
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-| **201** | Customer integration created successfully | - |
+| **201** | Customer integration created successfully | * X-Request-ID -
|
| **0** | Error Response | * X-Request-ID -
|
@@ -548,7 +548,7 @@ No authorization required
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-| **201** | TRM created successfully | - |
+| **201** | TRM created successfully | * X-Request-ID -
|
| **0** | Error Response | * X-Request-ID -
|
@@ -630,7 +630,7 @@ No authorization required
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-| **204** | Customer deleted successfully | - |
+| **204** | Customer deleted successfully | * X-Request-ID -
|
| **0** | Error Response | * X-Request-ID -
|
@@ -640,7 +640,7 @@ No authorization required
Disconnect customer integration
-Disconnects a customer integration by removing stored credentials. The integration record is deleted and cannot be recovered.
+Disconnects the integration for the authenticated workspace (tenant): removes stored credentials and deletes this tenant's integration record. The operation is scoped to the caller's tenant; it does not remove partner-side state for other workspaces that reuse the same logical customer integration. The record cannot be recovered after delete.
### Example
@@ -712,7 +712,7 @@ No authorization required
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-| **204** | Customer integration disconnected successfully | - |
+| **204** | Customer integration disconnected successfully | * X-Request-ID -
|
| **0** | Error Response | * X-Request-ID -
|
@@ -795,7 +795,7 @@ No authorization required
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-| **200** | Customer retrieved successfully | - |
+| **200** | Customer retrieved successfully | * X-Request-ID -
|
| **0** | Error Response | * X-Request-ID -
|
@@ -880,7 +880,7 @@ No authorization required
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-| **200** | Customer integration retrieved successfully | - |
+| **200** | Customer integration retrieved successfully | * X-Request-ID -
|
| **0** | Error Response | * X-Request-ID -
|
@@ -963,7 +963,7 @@ No authorization required
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-| **200** | Customer integrations retrieved successfully | - |
+| **200** | Customer integrations retrieved successfully | * X-Request-ID -
|
| **0** | Error Response | * X-Request-ID -
|
@@ -1042,7 +1042,7 @@ No authorization required
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-| **200** | Customers retrieved successfully | - |
+| **200** | Customers retrieved successfully | * X-Request-ID -
|
| **0** | Error Response | * X-Request-ID -
|
@@ -1125,7 +1125,7 @@ No authorization required
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-| **200** | Public key retrieved successfully | - |
+| **200** | Public key retrieved successfully | * X-Request-ID -
|
| **0** | Error Response | * X-Request-ID -
|
@@ -1204,7 +1204,7 @@ No authorization required
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-| **200** | List of partners retrieved successfully | - |
+| **200** | List of partners retrieved successfully | * X-Request-ID -
|
| **0** | Error Response | * X-Request-ID -
|
@@ -1283,7 +1283,7 @@ No authorization required
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-| **200** | Policy retrieved successfully | - |
+| **200** | Policy retrieved successfully | * X-Request-ID -
|
| **0** | Error Response | * X-Request-ID -
|
@@ -1368,7 +1368,7 @@ No authorization required
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-| **200** | Asset retrieved successfully | - |
+| **200** | Asset retrieved successfully | * X-Request-ID -
|
| **0** | Error Response | * X-Request-ID -
|
@@ -1453,7 +1453,7 @@ No authorization required
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-| **200** | TRM retrieved successfully | - |
+| **200** | TRM retrieved successfully | * X-Request-ID -
|
| **0** | Error Response | * X-Request-ID -
|
@@ -1538,7 +1538,7 @@ No authorization required
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-| **200** | VASP retrieved successfully | - |
+| **200** | VASP retrieved successfully | * X-Request-ID -
|
| **0** | Error Response | * X-Request-ID -
|
@@ -1625,7 +1625,7 @@ No authorization required
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-| **200** | Supported assets retrieved successfully | - |
+| **200** | Supported assets retrieved successfully | * X-Request-ID -
|
| **0** | Error Response | * X-Request-ID -
|
@@ -1712,7 +1712,7 @@ No authorization required
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-| **200** | VASPs retrieved successfully | - |
+| **200** | VASPs retrieved successfully | * X-Request-ID -
|
| **0** | Error Response | * X-Request-ID -
|
@@ -1801,7 +1801,7 @@ No authorization required
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-| **202** | Transaction redirect request accepted | - |
+| **202** | Transaction redirect request accepted | * X-Request-ID -
|
| **0** | Error Response | * X-Request-ID -
|
@@ -1888,7 +1888,7 @@ No authorization required
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-| **200** | Destination travel rule message ID set successfully | - |
+| **200** | Destination travel rule message ID set successfully | * X-Request-ID -
|
| **0** | Error Response | * X-Request-ID -
|
@@ -1975,7 +1975,7 @@ No authorization required
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-| **200** | Travel rule message ID set successfully | - |
+| **200** | Travel rule message ID set successfully | * X-Request-ID -
|
| **0** | Error Response | * X-Request-ID -
|
@@ -2060,7 +2060,7 @@ No authorization required
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-| **200** | Connection test completed (success or failure details in response body) | - |
+| **200** | Connection test completed (success or failure details in response body) | * X-Request-ID -
|
| **0** | Error Response | * X-Request-ID -
|
@@ -2147,6 +2147,6 @@ No authorization required
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-| **200** | Customer updated successfully | - |
+| **200** | Customer updated successfully | * X-Request-ID -
|
| **0** | Error Response | * X-Request-ID -
|
diff --git a/docs/TradingBetaApi.md b/docs/TradingBetaApi.md
index 0c204c85..0a7a4f8b 100644
--- a/docs/TradingBetaApi.md
+++ b/docs/TradingBetaApi.md
@@ -8,6 +8,7 @@ All URIs are relative to https://developers.fireblocks.com/reference/
| [**createQuote**](TradingBetaApi.md#createQuote) | **POST** /trading/quotes | Create a quote |
| [**getOrder**](TradingBetaApi.md#getOrder) | **GET** /trading/orders/{orderId} | Get order details |
| [**getOrders**](TradingBetaApi.md#getOrders) | **GET** /trading/orders | Get orders |
+| [**getTradingProviderById**](TradingBetaApi.md#getTradingProviderById) | **GET** /trading/providers/{providerId} | Get trading provider by ID |
| [**getTradingProviders**](TradingBetaApi.md#getTradingProviders) | **GET** /trading/providers | Get providers |
@@ -383,6 +384,94 @@ No authorization required
| **0** | Error Response | * X-Request-ID -
|
+## getTradingProviderById
+
+> CompletableFuture> getTradingProviderById getTradingProviderById(providerId)
+
+Get trading provider by ID
+
+Retrieve detailed information about a specific provider including its full manifest with order/quote requirements. **Note:** These endpoints are currently in beta and might be subject to changes. If you want to participate and learn more about the Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. **Endpoint Permission:** Owner, Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer. For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes).
+
+### Example
+
+```java
+// Import classes:
+import com.fireblocks.sdk.ApiClient;
+import com.fireblocks.sdk.ApiException;
+import com.fireblocks.sdk.ApiResponse;
+import com.fireblocks.sdk.BasePath;
+import com.fireblocks.sdk.Fireblocks;
+import com.fireblocks.sdk.ConfigurationOptions;
+import com.fireblocks.sdk.model.*;
+import com.fireblocks.sdk.api.TradingBetaApi;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+
+public class Example {
+ public static void main(String[] args) {
+ ConfigurationOptions configurationOptions = new ConfigurationOptions()
+ .basePath(BasePath.Sandbox)
+ .apiKey("my-api-key")
+ .secretKey("my-secret-key");
+ Fireblocks fireblocks = new Fireblocks(configurationOptions);
+
+ String providerId = "providerId_example"; // String | The unique identifier of the provider.
+ try {
+ CompletableFuture> response = fireblocks.tradingBeta().getTradingProviderById(providerId);
+ System.out.println("Status code: " + response.get().getStatusCode());
+ System.out.println("Response headers: " + response.get().getHeaders());
+ System.out.println("Response body: " + response.get().getData());
+ } catch (InterruptedException | ExecutionException e) {
+ ApiException apiException = (ApiException)e.getCause();
+ System.err.println("Exception when calling TradingBetaApi#getTradingProviderById");
+ System.err.println("Status code: " + apiException.getCode());
+ System.err.println("Response headers: " + apiException.getResponseHeaders());
+ System.err.println("Reason: " + apiException.getResponseBody());
+ e.printStackTrace();
+ } catch (ApiException e) {
+ System.err.println("Exception when calling TradingBetaApi#getTradingProviderById");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ System.err.println("Reason: " + e.getResponseBody());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+
+
+| Name | Type | Description | Notes |
+|------------- | ------------- | ------------- | -------------|
+| **providerId** | **String**| The unique identifier of the provider. | |
+
+### Return type
+
+CompletableFuture>
+
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Provider details | * X-Request-ID -
|
+| **401** | Unauthorized. Missing / invalid JWT token in Authorization header. | * X-Request-ID -
|
+| **403** | Forbidden - insufficient permissions, disabled feature, or restricted access. | * X-Request-ID -
|
+| **404** | Provider not found. | * X-Request-ID -
|
+| **429** | Rate limit exceeded - slow down and retry later. | * X-Request-ID -
|
+| **5XX** | Internal error while processing the request. | * X-Request-ID -
|
+| **0** | Error Response | * X-Request-ID -
|
+
+
## getTradingProviders
> CompletableFuture> getTradingProviders getTradingProviders(pageSize, pageCursor)
diff --git a/docs/TradingProviderDetails.md b/docs/TradingProviderDetails.md
new file mode 100644
index 00000000..e58ec265
--- /dev/null
+++ b/docs/TradingProviderDetails.md
@@ -0,0 +1,37 @@
+
+
+# TradingProviderDetails
+
+## oneOf schemas
+* [AccountBasedProviderDetails](AccountBasedProviderDetails.md)
+* [DirectProviderDetails](DirectProviderDetails.md)
+
+## Example
+```java
+// Import classes:
+import com.fireblocks.sdk.model.TradingProviderDetails;
+import com.fireblocks.sdk.model.AccountBasedProviderDetails;
+import com.fireblocks.sdk.model.DirectProviderDetails;
+
+public class Example {
+ public static void main(String[] args) {
+ TradingProviderDetails exampleTradingProviderDetails = new TradingProviderDetails();
+
+ // create a new AccountBasedProviderDetails
+ AccountBasedProviderDetails exampleAccountBasedProviderDetails = new AccountBasedProviderDetails();
+ // set TradingProviderDetails to AccountBasedProviderDetails
+ exampleTradingProviderDetails.setActualInstance(exampleAccountBasedProviderDetails);
+ // to get back the AccountBasedProviderDetails set earlier
+ AccountBasedProviderDetails testAccountBasedProviderDetails = (AccountBasedProviderDetails) exampleTradingProviderDetails.getActualInstance();
+
+ // create a new DirectProviderDetails
+ DirectProviderDetails exampleDirectProviderDetails = new DirectProviderDetails();
+ // set TradingProviderDetails to DirectProviderDetails
+ exampleTradingProviderDetails.setActualInstance(exampleDirectProviderDetails);
+ // to get back the DirectProviderDetails set earlier
+ DirectProviderDetails testDirectProviderDetails = (DirectProviderDetails) exampleTradingProviderDetails.getActualInstance();
+ }
+}
+```
+
+
diff --git a/docs/TransactionResponse.md b/docs/TransactionResponse.md
index e974a909..a9cca01c 100644
--- a/docs/TransactionResponse.md
+++ b/docs/TransactionResponse.md
@@ -14,7 +14,7 @@
|**txHash** | **String** | The hash of the transaction on the blockchain. * This parameter exists if at least one of the following conditions is met: 1. The transaction’s source type is `UNKNOWN`, `WHITELISTED_ADDRESS`, `NETWORK_CONNECTION`, `ONE_TIME_ADDRESS`, `FIAT_ACCOUNT` or `GAS_STATION`. 2. The transaction’s source type is `VAULT` and the status is either: `CONFIRMING`, `COMPLETED`, or was in any of these statuses prior to changing to `FAILED` or `REJECTED`. In some instances, transactions in status `BROADCASTING` will include the txHash as well. 3. The transaction’s source type is `EXCHANGE_ACCOUNT` and the transaction’s destination type is `VAULT`, and the status is either: `CONFIRMING`, `COMPLETED`, or was in any of these status prior to changing to `FAILED`. * In addition, the following conditions must be met: 1. The asset is a crypto asset (not fiat). 2. The transaction operation is not RAW or `TYPED_MESSAGE`. | [optional] |
|**operation** | **GetTransactionOperation** | | [optional] |
|**note** | **String** | Custom note, not sent to the blockchain, that describes the transaction at your Fireblocks workspace. | [optional] |
-|**assetId** | **String** | The ID of the asset to transfer, for `TRANSFER`, `MINT`, `BURN`, `ENABLE_ASSET`,`STAKE` ,`UNSTAKE` or `WITHDRAW` operations. [See the list of supported assets and their IDs on Fireblocks.](https://developers.fireblocks.com/reference/get_supported-assets) | [optional] |
+|**assetId** | **String** | The ID of the asset to transfer for `TRANSFER`, `MINT`, `BURN`, `ENABLE_ASSET`, or `STAKE` operations. [See the list of supported assets and their IDs on Fireblocks](https://developers.fireblocks.com/reference/get_supported-assets). | [optional] |
|**assetType** | **String** | Type classification of the asset | [optional] |
|**source** | [**SourceTransferPeerPathResponse**](SourceTransferPeerPathResponse.md) | | [optional] |
|**sourceAddress** | **String** | For account based assets only, the source address of the transaction. **Note:** If the status is `CONFIRMING`, `COMPLETED`, or has been `CONFIRMING`; then moved forward to `FAILED` or `REJECTED`, then this parameter will contain the source address. In any other case, this parameter will be empty. | [optional] |
diff --git a/docs/TravelRuleActionEnum.md b/docs/TravelRuleActionEnum.md
index 89a4ff7a..25ba7640 100644
--- a/docs/TravelRuleActionEnum.md
+++ b/docs/TravelRuleActionEnum.md
@@ -11,5 +11,9 @@
* `BLOCK` (value: `"BLOCK"`)
+* `PASS` (value: `"PASS"`)
+
+* `FREEZE` (value: `"FREEZE"`)
+
diff --git a/docs/TravelRuleOwnershipProof.md b/docs/TravelRuleOwnershipProof.md
index 129c6f4c..65d86a21 100644
--- a/docs/TravelRuleOwnershipProof.md
+++ b/docs/TravelRuleOwnershipProof.md
@@ -14,6 +14,8 @@ Ownership proof related to the originator of the transaction.
|**address** | **String** | The wallet address being verified. Examples: - For Ethereum: `0x896B...0b9b` - For Bitcoin: `1442...dxhsQ` | [optional] |
|**walletProvider** | **String** | The wallet provider or method used for verification. Examples: - For Metamask: `Metamask` - For manual signature: `manual` | [optional] |
|**url** | **String** | The URL for the uploaded screenshot (for `screenshot` proof types only). Example: `https://example.com/uploaded_image.png` | [optional] |
+|**did** | **String** | The Decentralized Identifier (DID) associated with the ownership proof. | [optional] |
+|**status** | **String** | The status of the ownership proof verification. | [optional] |
|**confirmed** | **Boolean** | Whether the user confirmed ownership of the wallet (for `self-declaration` proofs). Example: `true` | [optional] |
diff --git a/docs/TravelRuleProvider.md b/docs/TravelRuleProvider.md
new file mode 100644
index 00000000..ae4661cd
--- /dev/null
+++ b/docs/TravelRuleProvider.md
@@ -0,0 +1,29 @@
+
+
+# TravelRuleProvider
+
+## Enum
+
+
+* `CODE` (value: `"CODE"`)
+
+* `GTR` (value: `"GTR"`)
+
+* `MY_OWN` (value: `"MY_OWN"`)
+
+* `NOTABENE` (value: `"NOTABENE"`)
+
+* `SYGNA` (value: `"SYGNA"`)
+
+* `SUMSUB` (value: `"SUMSUB"`)
+
+* `TRISA` (value: `"TRISA"`)
+
+* `TRUST` (value: `"TRUST"`)
+
+* `TWENTY_ONE_ANALYTICS` (value: `"TWENTY_ONE_ANALYTICS"`)
+
+* `VERIFY_VASP` (value: `"VERIFY_VASP"`)
+
+
+
diff --git a/docs/TravelRuleResult.md b/docs/TravelRuleResult.md
index 57ce8168..9274e9d6 100644
--- a/docs/TravelRuleResult.md
+++ b/docs/TravelRuleResult.md
@@ -2,7 +2,7 @@
# TravelRuleResult
-Detailed Travel Rule screening result containing provider-specific data. Contains Travel Rule specific information like verified status, rule type, and actions.
+Deprecated: This field is not currently returned in the API response. Detailed Travel Rule screening result containing provider-specific data. Contains Travel Rule specific information like verified status, rule type, and actions.
## Properties
diff --git a/docs/TravelRuleStatusEnum.md b/docs/TravelRuleStatusEnum.md
index fad0c492..7514dacc 100644
--- a/docs/TravelRuleStatusEnum.md
+++ b/docs/TravelRuleStatusEnum.md
@@ -15,5 +15,11 @@
* `FROZEN` (value: `"FROZEN"`)
+* `REJECTED` (value: `"REJECTED"`)
+
+* `CANCELED` (value: `"CANCELED"`)
+
+* `BLOCKING_TIME_EXPIRED` (value: `"BLOCKING_TIME_EXPIRED"`)
+
diff --git a/docs/TravelRuleVerdictEnum.md b/docs/TravelRuleVerdictEnum.md
index 347f4b74..5dc2a4c6 100644
--- a/docs/TravelRuleVerdictEnum.md
+++ b/docs/TravelRuleVerdictEnum.md
@@ -13,5 +13,11 @@
* `REVIEW` (value: `"REVIEW"`)
+* `WAIT` (value: `"WAIT"`)
+
+* `FREEZE` (value: `"FREEZE"`)
+
+* `CANCEL` (value: `"CANCEL"`)
+
diff --git a/docs/UpdateLegalEntityRequest.md b/docs/UpdateLegalEntityRequest.md
new file mode 100644
index 00000000..95629513
--- /dev/null
+++ b/docs/UpdateLegalEntityRequest.md
@@ -0,0 +1,13 @@
+
+
+# UpdateLegalEntityRequest
+
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**isDefault** | **Boolean** | Whether to set this registration as the workspace default | |
+
+
+
diff --git a/docs/UserRole.md b/docs/UserRole.md
index b3298574..add71e57 100644
--- a/docs/UserRole.md
+++ b/docs/UserRole.md
@@ -27,5 +27,9 @@
* `NCW_SIGNER` (value: `"NCW_SIGNER"`)
+* `SECURITY_ADMIN` (value: `"SECURITY_ADMIN"`)
+
+* `SECURITY_AUDITOR` (value: `"SECURITY_AUDITOR"`)
+
diff --git a/pom.xml b/pom.xml
index c28ad97a..89176ce6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
fireblocks-sdk
jar
fireblocks-sdk
- 15.0.0
+ 0.0.0
https://github.com/fireblocks/java-sdk
The Fireblocks Official SDK is a comprehensive software development kit that enables seamless integration and interaction with the Fireblocks platform. Fireblocks is a cutting-edge blockchain infrastructure platform that provides secure and scalable solutions for managing digital assets and transactions.
This SDK empowers developers to build robust applications that can interact with the Fireblocks platform's features, including creating and managing vault accounts, initiating secure transactions, managing assets, and more. It abstracts complex interactions with the Fireblocks API, making it easier for developers to leverage the platform's capabilities while adhering to best practices in security and efficiency.
diff --git a/src/main/java/com/fireblocks/sdk/Configuration.java b/src/main/java/com/fireblocks/sdk/Configuration.java
index 9ca46702..aa53bae8 100644
--- a/src/main/java/com/fireblocks/sdk/Configuration.java
+++ b/src/main/java/com/fireblocks/sdk/Configuration.java
@@ -21,7 +21,7 @@
value = "org.openapitools.codegen.languages.JavaClientCodegen",
comments = "Generator version: 7.14.0")
public class Configuration {
- public static final String VERSION = "15.0.0";
+ public static final String VERSION = "0.0.0";
private static final AtomicReference defaultApiClient = new AtomicReference<>();
private static volatile Supplier apiClientFactory = ApiClient::new;
diff --git a/src/main/java/com/fireblocks/sdk/api/ComplianceApi.java b/src/main/java/com/fireblocks/sdk/api/ComplianceApi.java
index 7760ef1b..c2dc9d01 100644
--- a/src/main/java/com/fireblocks/sdk/api/ComplianceApi.java
+++ b/src/main/java/com/fireblocks/sdk/api/ComplianceApi.java
@@ -20,15 +20,31 @@
import com.fireblocks.sdk.ApiResponse;
import com.fireblocks.sdk.Pair;
import com.fireblocks.sdk.ValidationUtils;
+import com.fireblocks.sdk.model.AddressRegistryAddVaultOptOutsRequest;
+import com.fireblocks.sdk.model.AddressRegistryAddVaultOptOutsResponse;
+import com.fireblocks.sdk.model.AddressRegistryGetVaultOptOutResponse;
import com.fireblocks.sdk.model.AddressRegistryLegalEntity;
+import com.fireblocks.sdk.model.AddressRegistryLegalEntityLegacy;
+import com.fireblocks.sdk.model.AddressRegistryListVaultOptOutsResponse;
+import com.fireblocks.sdk.model.AddressRegistryRemoveAllVaultOptOutsResponse;
+import com.fireblocks.sdk.model.AddressRegistryRemoveVaultOptOutResponse;
+import com.fireblocks.sdk.model.AddressRegistryTenantRegistryResponse;
+import com.fireblocks.sdk.model.AddressRegistryVaultListOrder;
import com.fireblocks.sdk.model.AmlVerdictManualRequest;
import com.fireblocks.sdk.model.AmlVerdictManualResponse;
+import com.fireblocks.sdk.model.AssignVaultsToLegalEntityRequest;
+import com.fireblocks.sdk.model.AssignVaultsToLegalEntityResponse;
import com.fireblocks.sdk.model.ComplianceResultFullPayload;
import com.fireblocks.sdk.model.CreateTransactionResponse;
+import com.fireblocks.sdk.model.LegalEntityRegistration;
+import com.fireblocks.sdk.model.ListLegalEntitiesResponse;
+import com.fireblocks.sdk.model.ListVaultsForRegistrationResponse;
+import com.fireblocks.sdk.model.RegisterLegalEntityRequest;
import com.fireblocks.sdk.model.ScreeningConfigurationsRequest;
import com.fireblocks.sdk.model.ScreeningPolicyResponse;
import com.fireblocks.sdk.model.ScreeningProviderRulesConfigurationResponse;
import com.fireblocks.sdk.model.ScreeningUpdateConfigurations;
+import com.fireblocks.sdk.model.UpdateLegalEntityRequest;
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
@@ -39,6 +55,7 @@
import java.util.ArrayList;
import java.util.List;
import java.util.StringJoiner;
+import java.util.UUID;
import java.util.concurrent.CompletableFuture;
import java.util.function.Consumer;
@@ -82,16 +99,1113 @@ private String formatExceptionMessage(String operationId, int statusCode, String
return operationId + " call failed with: " + statusCode + " - " + body;
}
+ /**
+ * Add vault accounts to the address registry opt-out list Adds one or more vault account ids to
+ * the workspace opt-out list for the address registry.
+ *
+ * @param addressRegistryAddVaultOptOutsRequest (required)
+ * @param idempotencyKey A unique identifier for the request. If the request is sent multiple
+ * times with the same idempotency key, the server will return the same response as the
+ * first request. The idempotency key is valid for 24 hours. (optional)
+ * @return CompletableFuture<ApiResponse<AddressRegistryAddVaultOptOutsResponse>>
+ * @throws ApiException if fails to make API call
+ */
+ public CompletableFuture>
+ addAddressRegistryVaultOptOuts(
+ AddressRegistryAddVaultOptOutsRequest addressRegistryAddVaultOptOutsRequest,
+ String idempotencyKey)
+ throws ApiException {
+ try {
+ HttpRequest.Builder localVarRequestBuilder =
+ addAddressRegistryVaultOptOutsRequestBuilder(
+ addressRegistryAddVaultOptOutsRequest, idempotencyKey);
+ return memberVarHttpClient
+ .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
+ .thenComposeAsync(
+ localVarResponse -> {
+ if (memberVarAsyncResponseInterceptor != null) {
+ memberVarAsyncResponseInterceptor.accept(localVarResponse);
+ }
+ if (localVarResponse.statusCode() / 100 != 2) {
+ return CompletableFuture.failedFuture(
+ getApiException(
+ "addAddressRegistryVaultOptOuts",
+ localVarResponse));
+ }
+ try {
+ String responseBody = localVarResponse.body();
+ return CompletableFuture.completedFuture(
+ new ApiResponse(
+ localVarResponse.statusCode(),
+ localVarResponse.headers().map(),
+ responseBody == null || responseBody.isBlank()
+ ? null
+ : memberVarObjectMapper.readValue(
+ responseBody,
+ new TypeReference<
+ AddressRegistryAddVaultOptOutsResponse>() {})));
+ } catch (IOException e) {
+ return CompletableFuture.failedFuture(new ApiException(e));
+ }
+ });
+ } catch (ApiException e) {
+ return CompletableFuture.failedFuture(e);
+ }
+ }
+
+ private HttpRequest.Builder addAddressRegistryVaultOptOutsRequestBuilder(
+ AddressRegistryAddVaultOptOutsRequest addressRegistryAddVaultOptOutsRequest,
+ String idempotencyKey)
+ throws ApiException {
+ ValidationUtils.assertParamExists(
+ "addAddressRegistryVaultOptOuts",
+ "addressRegistryAddVaultOptOutsRequest",
+ addressRegistryAddVaultOptOutsRequest);
+
+ HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
+
+ String localVarPath = "/address_registry/vaults";
+
+ localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
+
+ if (idempotencyKey != null) {
+ localVarRequestBuilder.header("Idempotency-Key", idempotencyKey.toString());
+ }
+ localVarRequestBuilder.header("Content-Type", "application/json");
+ localVarRequestBuilder.header("Accept", "application/json");
+
+ try {
+ byte[] localVarPostBody =
+ memberVarObjectMapper.writeValueAsBytes(addressRegistryAddVaultOptOutsRequest);
+ localVarRequestBuilder.method(
+ "POST", HttpRequest.BodyPublishers.ofByteArray(localVarPostBody));
+ } catch (IOException e) {
+ throw new ApiException(e);
+ }
+ if (memberVarReadTimeout != null) {
+ localVarRequestBuilder.timeout(memberVarReadTimeout);
+ }
+ if (memberVarInterceptor != null) {
+ memberVarInterceptor.accept(localVarRequestBuilder);
+ }
+ return localVarRequestBuilder;
+ }
+ /**
+ * Assign vault accounts to a legal entity Assigns one or more vault accounts to a specific
+ * legal entity registration. Explicitly mapped vault accounts take precedence over the
+ * workspace default legal entity. </br>Endpoint Permission: Admin, Non-Signing Admin.
+ *
+ * @param assignVaultsToLegalEntityRequest (required)
+ * @param legalEntityId The unique ID of the legal entity registration (required)
+ * @param idempotencyKey A unique identifier for the request. If the request is sent multiple
+ * times with the same idempotency key, the server will return the same response as the
+ * first request. The idempotency key is valid for 24 hours. (optional)
+ * @return CompletableFuture<ApiResponse<AssignVaultsToLegalEntityResponse>>
+ * @throws ApiException if fails to make API call
+ */
+ public CompletableFuture>
+ assignVaultsToLegalEntity(
+ AssignVaultsToLegalEntityRequest assignVaultsToLegalEntityRequest,
+ UUID legalEntityId,
+ String idempotencyKey)
+ throws ApiException {
+ try {
+ HttpRequest.Builder localVarRequestBuilder =
+ assignVaultsToLegalEntityRequestBuilder(
+ assignVaultsToLegalEntityRequest, legalEntityId, idempotencyKey);
+ return memberVarHttpClient
+ .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
+ .thenComposeAsync(
+ localVarResponse -> {
+ if (memberVarAsyncResponseInterceptor != null) {
+ memberVarAsyncResponseInterceptor.accept(localVarResponse);
+ }
+ if (localVarResponse.statusCode() / 100 != 2) {
+ return CompletableFuture.failedFuture(
+ getApiException(
+ "assignVaultsToLegalEntity", localVarResponse));
+ }
+ try {
+ String responseBody = localVarResponse.body();
+ return CompletableFuture.completedFuture(
+ new ApiResponse(
+ localVarResponse.statusCode(),
+ localVarResponse.headers().map(),
+ responseBody == null || responseBody.isBlank()
+ ? null
+ : memberVarObjectMapper.readValue(
+ responseBody,
+ new TypeReference<
+ AssignVaultsToLegalEntityResponse>() {})));
+ } catch (IOException e) {
+ return CompletableFuture.failedFuture(new ApiException(e));
+ }
+ });
+ } catch (ApiException e) {
+ return CompletableFuture.failedFuture(e);
+ }
+ }
+
+ private HttpRequest.Builder assignVaultsToLegalEntityRequestBuilder(
+ AssignVaultsToLegalEntityRequest assignVaultsToLegalEntityRequest,
+ UUID legalEntityId,
+ String idempotencyKey)
+ throws ApiException {
+ ValidationUtils.assertParamExists(
+ "assignVaultsToLegalEntity",
+ "assignVaultsToLegalEntityRequest",
+ assignVaultsToLegalEntityRequest);
+ ValidationUtils.assertParamExistsAndNotEmpty(
+ "assignVaultsToLegalEntity", "legalEntityId", legalEntityId.toString());
+
+ HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
+
+ String localVarPath =
+ "/legal_entities/{legalEntityId}/vaults"
+ .replace("{legalEntityId}", ApiClient.urlEncode(legalEntityId.toString()));
+
+ localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
+
+ if (idempotencyKey != null) {
+ localVarRequestBuilder.header("Idempotency-Key", idempotencyKey.toString());
+ }
+ localVarRequestBuilder.header("Content-Type", "application/json");
+ localVarRequestBuilder.header("Accept", "application/json");
+
+ try {
+ byte[] localVarPostBody =
+ memberVarObjectMapper.writeValueAsBytes(assignVaultsToLegalEntityRequest);
+ localVarRequestBuilder.method(
+ "POST", HttpRequest.BodyPublishers.ofByteArray(localVarPostBody));
+ } catch (IOException e) {
+ throw new ApiException(e);
+ }
+ if (memberVarReadTimeout != null) {
+ localVarRequestBuilder.timeout(memberVarReadTimeout);
+ }
+ if (memberVarInterceptor != null) {
+ memberVarInterceptor.accept(localVarRequestBuilder);
+ }
+ return localVarRequestBuilder;
+ }
+ /**
+ * Get address registry participation status for the authenticated workspace Returns whether the
+ * workspace is `OPTED_IN` or `OPTED_OUT` of the address registry.
+ *
+ * @return CompletableFuture<ApiResponse<AddressRegistryTenantRegistryResponse>>
+ * @throws ApiException if fails to make API call
+ */
+ public CompletableFuture>
+ getAddressRegistryTenantParticipationStatus() throws ApiException {
+ try {
+ HttpRequest.Builder localVarRequestBuilder =
+ getAddressRegistryTenantParticipationStatusRequestBuilder();
+ return memberVarHttpClient
+ .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
+ .thenComposeAsync(
+ localVarResponse -> {
+ if (memberVarAsyncResponseInterceptor != null) {
+ memberVarAsyncResponseInterceptor.accept(localVarResponse);
+ }
+ if (localVarResponse.statusCode() / 100 != 2) {
+ return CompletableFuture.failedFuture(
+ getApiException(
+ "getAddressRegistryTenantParticipationStatus",
+ localVarResponse));
+ }
+ try {
+ String responseBody = localVarResponse.body();
+ return CompletableFuture.completedFuture(
+ new ApiResponse(
+ localVarResponse.statusCode(),
+ localVarResponse.headers().map(),
+ responseBody == null || responseBody.isBlank()
+ ? null
+ : memberVarObjectMapper.readValue(
+ responseBody,
+ new TypeReference<
+ AddressRegistryTenantRegistryResponse>() {})));
+ } catch (IOException e) {
+ return CompletableFuture.failedFuture(new ApiException(e));
+ }
+ });
+ } catch (ApiException e) {
+ return CompletableFuture.failedFuture(e);
+ }
+ }
+
+ private HttpRequest.Builder getAddressRegistryTenantParticipationStatusRequestBuilder()
+ throws ApiException {
+
+ HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
+
+ String localVarPath = "/address_registry/tenant";
+
+ localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
+
+ localVarRequestBuilder.header("Accept", "application/json");
+
+ localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody());
+ if (memberVarReadTimeout != null) {
+ localVarRequestBuilder.timeout(memberVarReadTimeout);
+ }
+ if (memberVarInterceptor != null) {
+ memberVarInterceptor.accept(localVarRequestBuilder);
+ }
+ return localVarRequestBuilder;
+ }
+ /**
+ * Get whether a vault account is opted out of the address registry Returns whether this vault
+ * account is on the workspace opt-out list (`optedOut` true or false). List, add, and
+ * clear-all are available on `/v1/address_registry/vaults`; this path reads or
+ * removes one vault.
+ *
+ * @param vaultAccountId Vault account id (non-negative integer). (required)
+ * @return CompletableFuture<ApiResponse<AddressRegistryGetVaultOptOutResponse>>
+ * @throws ApiException if fails to make API call
+ */
+ public CompletableFuture>
+ getAddressRegistryVaultOptOut(Integer vaultAccountId) throws ApiException {
+ try {
+ HttpRequest.Builder localVarRequestBuilder =
+ getAddressRegistryVaultOptOutRequestBuilder(vaultAccountId);
+ return memberVarHttpClient
+ .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
+ .thenComposeAsync(
+ localVarResponse -> {
+ if (memberVarAsyncResponseInterceptor != null) {
+ memberVarAsyncResponseInterceptor.accept(localVarResponse);
+ }
+ if (localVarResponse.statusCode() / 100 != 2) {
+ return CompletableFuture.failedFuture(
+ getApiException(
+ "getAddressRegistryVaultOptOut",
+ localVarResponse));
+ }
+ try {
+ String responseBody = localVarResponse.body();
+ return CompletableFuture.completedFuture(
+ new ApiResponse(
+ localVarResponse.statusCode(),
+ localVarResponse.headers().map(),
+ responseBody == null || responseBody.isBlank()
+ ? null
+ : memberVarObjectMapper.readValue(
+ responseBody,
+ new TypeReference<
+ AddressRegistryGetVaultOptOutResponse>() {})));
+ } catch (IOException e) {
+ return CompletableFuture.failedFuture(new ApiException(e));
+ }
+ });
+ } catch (ApiException e) {
+ return CompletableFuture.failedFuture(e);
+ }
+ }
+
+ private HttpRequest.Builder getAddressRegistryVaultOptOutRequestBuilder(Integer vaultAccountId)
+ throws ApiException {
+ ValidationUtils.assertParamExists(
+ "getAddressRegistryVaultOptOut", "vaultAccountId", vaultAccountId);
+
+ HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
+
+ String localVarPath =
+ "/address_registry/vaults/{vaultAccountId}"
+ .replace(
+ "{vaultAccountId}", ApiClient.urlEncode(vaultAccountId.toString()));
+
+ localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
+
+ localVarRequestBuilder.header("Accept", "application/json");
+
+ localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody());
+ if (memberVarReadTimeout != null) {
+ localVarRequestBuilder.timeout(memberVarReadTimeout);
+ }
+ if (memberVarInterceptor != null) {
+ memberVarInterceptor.accept(localVarRequestBuilder);
+ }
+ return localVarRequestBuilder;
+ }
/**
* AML - View Post-Screening Policy Get the post-screening policy for AML.
*
- * @return CompletableFuture<ApiResponse<ScreeningPolicyResponse>>
+ * @return CompletableFuture<ApiResponse<ScreeningPolicyResponse>>
+ * @throws ApiException if fails to make API call
+ */
+ public CompletableFuture> getAmlPostScreeningPolicy()
+ throws ApiException {
+ try {
+ HttpRequest.Builder localVarRequestBuilder = getAmlPostScreeningPolicyRequestBuilder();
+ return memberVarHttpClient
+ .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
+ .thenComposeAsync(
+ localVarResponse -> {
+ if (memberVarAsyncResponseInterceptor != null) {
+ memberVarAsyncResponseInterceptor.accept(localVarResponse);
+ }
+ if (localVarResponse.statusCode() / 100 != 2) {
+ return CompletableFuture.failedFuture(
+ getApiException(
+ "getAmlPostScreeningPolicy", localVarResponse));
+ }
+ try {
+ String responseBody = localVarResponse.body();
+ return CompletableFuture.completedFuture(
+ new ApiResponse(
+ localVarResponse.statusCode(),
+ localVarResponse.headers().map(),
+ responseBody == null || responseBody.isBlank()
+ ? null
+ : memberVarObjectMapper.readValue(
+ responseBody,
+ new TypeReference<
+ ScreeningPolicyResponse>() {})));
+ } catch (IOException e) {
+ return CompletableFuture.failedFuture(new ApiException(e));
+ }
+ });
+ } catch (ApiException e) {
+ return CompletableFuture.failedFuture(e);
+ }
+ }
+
+ private HttpRequest.Builder getAmlPostScreeningPolicyRequestBuilder() throws ApiException {
+
+ HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
+
+ String localVarPath = "/screening/aml/post_screening_policy";
+
+ localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
+
+ localVarRequestBuilder.header("Accept", "application/json");
+
+ localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody());
+ if (memberVarReadTimeout != null) {
+ localVarRequestBuilder.timeout(memberVarReadTimeout);
+ }
+ if (memberVarInterceptor != null) {
+ memberVarInterceptor.accept(localVarRequestBuilder);
+ }
+ return localVarRequestBuilder;
+ }
+ /**
+ * AML - View Screening Policy Get the screening policy for AML.
+ *
+ * @return
+ * CompletableFuture<ApiResponse<ScreeningProviderRulesConfigurationResponse>>
+ * @throws ApiException if fails to make API call
+ */
+ public CompletableFuture>
+ getAmlScreeningPolicy() throws ApiException {
+ try {
+ HttpRequest.Builder localVarRequestBuilder = getAmlScreeningPolicyRequestBuilder();
+ return memberVarHttpClient
+ .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
+ .thenComposeAsync(
+ localVarResponse -> {
+ if (memberVarAsyncResponseInterceptor != null) {
+ memberVarAsyncResponseInterceptor.accept(localVarResponse);
+ }
+ if (localVarResponse.statusCode() / 100 != 2) {
+ return CompletableFuture.failedFuture(
+ getApiException(
+ "getAmlScreeningPolicy", localVarResponse));
+ }
+ try {
+ String responseBody = localVarResponse.body();
+ return CompletableFuture.completedFuture(
+ new ApiResponse<
+ ScreeningProviderRulesConfigurationResponse>(
+ localVarResponse.statusCode(),
+ localVarResponse.headers().map(),
+ responseBody == null || responseBody.isBlank()
+ ? null
+ : memberVarObjectMapper.readValue(
+ responseBody,
+ new TypeReference<
+ ScreeningProviderRulesConfigurationResponse>() {})));
+ } catch (IOException e) {
+ return CompletableFuture.failedFuture(new ApiException(e));
+ }
+ });
+ } catch (ApiException e) {
+ return CompletableFuture.failedFuture(e);
+ }
+ }
+
+ private HttpRequest.Builder getAmlScreeningPolicyRequestBuilder() throws ApiException {
+
+ HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
+
+ String localVarPath = "/screening/aml/screening_policy";
+
+ localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
+
+ localVarRequestBuilder.header("Accept", "application/json");
+
+ localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody());
+ if (memberVarReadTimeout != null) {
+ localVarRequestBuilder.timeout(memberVarReadTimeout);
+ }
+ if (memberVarInterceptor != null) {
+ memberVarInterceptor.accept(localVarRequestBuilder);
+ }
+ return localVarRequestBuilder;
+ }
+ /**
+ * Get a legal entity Returns details of a specific legal entity registration, including GLEIF
+ * data when available. </br>Endpoint Permission: Admin, Non-Signing Admin, Signer,
+ * Approver, Editor, Viewer.
+ *
+ * @param legalEntityId The unique ID of the legal entity registration (required)
+ * @return CompletableFuture<ApiResponse<LegalEntityRegistration>>
+ * @throws ApiException if fails to make API call
+ */
+ public CompletableFuture> getLegalEntity(
+ UUID legalEntityId) throws ApiException {
+ try {
+ HttpRequest.Builder localVarRequestBuilder =
+ getLegalEntityRequestBuilder(legalEntityId);
+ return memberVarHttpClient
+ .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
+ .thenComposeAsync(
+ localVarResponse -> {
+ if (memberVarAsyncResponseInterceptor != null) {
+ memberVarAsyncResponseInterceptor.accept(localVarResponse);
+ }
+ if (localVarResponse.statusCode() / 100 != 2) {
+ return CompletableFuture.failedFuture(
+ getApiException("getLegalEntity", localVarResponse));
+ }
+ try {
+ String responseBody = localVarResponse.body();
+ return CompletableFuture.completedFuture(
+ new ApiResponse(
+ localVarResponse.statusCode(),
+ localVarResponse.headers().map(),
+ responseBody == null || responseBody.isBlank()
+ ? null
+ : memberVarObjectMapper.readValue(
+ responseBody,
+ new TypeReference<
+ LegalEntityRegistration>() {})));
+ } catch (IOException e) {
+ return CompletableFuture.failedFuture(new ApiException(e));
+ }
+ });
+ } catch (ApiException e) {
+ return CompletableFuture.failedFuture(e);
+ }
+ }
+
+ private HttpRequest.Builder getLegalEntityRequestBuilder(UUID legalEntityId)
+ throws ApiException {
+ ValidationUtils.assertParamExistsAndNotEmpty(
+ "getLegalEntity", "legalEntityId", legalEntityId.toString());
+
+ HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
+
+ String localVarPath =
+ "/legal_entities/{legalEntityId}"
+ .replace("{legalEntityId}", ApiClient.urlEncode(legalEntityId.toString()));
+
+ localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
+
+ localVarRequestBuilder.header("Accept", "application/json");
+
+ localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody());
+ if (memberVarReadTimeout != null) {
+ localVarRequestBuilder.timeout(memberVarReadTimeout);
+ }
+ if (memberVarInterceptor != null) {
+ memberVarInterceptor.accept(localVarRequestBuilder);
+ }
+ return localVarRequestBuilder;
+ }
+ /**
+ * [Deprecated] Look up legal entity by address (query parameter) **Deprecated** — use `GET
+ * /v1/address_registry/legal_entities/{address}` instead. Here `address` is a
+ * **query** parameter; the replacement uses a path segment. The response includes only
+ * `companyName`, `countryCode`, and `companyId`. The replacement
+ * returns additional fields documented on that operation. Optional **`asset`** is
+ * supported here only (not on the replacement path).
+ *
+ * @param address Blockchain address to look up (required)
+ * @param asset Optional asset identifier (this deprecated operation only). (optional)
+ * @return CompletableFuture<ApiResponse<AddressRegistryLegalEntityLegacy>>
+ * @throws ApiException if fails to make API call
+ * @deprecated
+ */
+ @Deprecated
+ public CompletableFuture> getLegalEntityByAddress(
+ String address, String asset) throws ApiException {
+ try {
+ HttpRequest.Builder localVarRequestBuilder =
+ getLegalEntityByAddressRequestBuilder(address, asset);
+ return memberVarHttpClient
+ .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
+ .thenComposeAsync(
+ localVarResponse -> {
+ if (memberVarAsyncResponseInterceptor != null) {
+ memberVarAsyncResponseInterceptor.accept(localVarResponse);
+ }
+ if (localVarResponse.statusCode() / 100 != 2) {
+ return CompletableFuture.failedFuture(
+ getApiException(
+ "getLegalEntityByAddress", localVarResponse));
+ }
+ try {
+ String responseBody = localVarResponse.body();
+ return CompletableFuture.completedFuture(
+ new ApiResponse(
+ localVarResponse.statusCode(),
+ localVarResponse.headers().map(),
+ responseBody == null || responseBody.isBlank()
+ ? null
+ : memberVarObjectMapper.readValue(
+ responseBody,
+ new TypeReference<
+ AddressRegistryLegalEntityLegacy>() {})));
+ } catch (IOException e) {
+ return CompletableFuture.failedFuture(new ApiException(e));
+ }
+ });
+ } catch (ApiException e) {
+ return CompletableFuture.failedFuture(e);
+ }
+ }
+
+ private HttpRequest.Builder getLegalEntityByAddressRequestBuilder(String address, String asset)
+ throws ApiException {
+ ValidationUtils.assertParamExistsAndNotEmpty("getLegalEntityByAddress", "address", address);
+
+ HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
+
+ String localVarPath = "/address_registry/legal_entity";
+
+ List localVarQueryParams = new ArrayList<>();
+ StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
+ String localVarQueryParameterBaseName;
+ localVarQueryParameterBaseName = "address";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("address", address));
+ localVarQueryParameterBaseName = "asset";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("asset", asset));
+
+ if (!localVarQueryParams.isEmpty() || localVarQueryStringJoiner.length() != 0) {
+ StringJoiner queryJoiner = new StringJoiner("&");
+ localVarQueryParams.forEach(p -> queryJoiner.add(p.getName() + '=' + p.getValue()));
+ if (localVarQueryStringJoiner.length() != 0) {
+ queryJoiner.add(localVarQueryStringJoiner.toString());
+ }
+ localVarRequestBuilder.uri(
+ URI.create(memberVarBaseUri + localVarPath + '?' + queryJoiner.toString()));
+ } else {
+ localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
+ }
+
+ localVarRequestBuilder.header("Accept", "application/json");
+
+ localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody());
+ if (memberVarReadTimeout != null) {
+ localVarRequestBuilder.timeout(memberVarReadTimeout);
+ }
+ if (memberVarInterceptor != null) {
+ memberVarInterceptor.accept(localVarRequestBuilder);
+ }
+ return localVarRequestBuilder;
+ }
+ /**
+ * Look up legal entity by blockchain address Returns legal entity information for the given
+ * blockchain address. URL-encode `{address}` when required. Prefer this operation
+ * over the deprecated `GET /v1/address_registry/legal_entity?address=…`, which
+ * returns only `companyName`, `countryCode`, and `companyId`.
+ * This operation adds verification status, LEI, Travel Rule providers, and contact email (see
+ * response properties).
+ *
+ * @param address Blockchain address to look up (required)
+ * @return CompletableFuture<ApiResponse<AddressRegistryLegalEntity>>
+ * @throws ApiException if fails to make API call
+ */
+ public CompletableFuture> getLegalEntityForAddress(
+ String address) throws ApiException {
+ try {
+ HttpRequest.Builder localVarRequestBuilder =
+ getLegalEntityForAddressRequestBuilder(address);
+ return memberVarHttpClient
+ .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
+ .thenComposeAsync(
+ localVarResponse -> {
+ if (memberVarAsyncResponseInterceptor != null) {
+ memberVarAsyncResponseInterceptor.accept(localVarResponse);
+ }
+ if (localVarResponse.statusCode() / 100 != 2) {
+ return CompletableFuture.failedFuture(
+ getApiException(
+ "getLegalEntityForAddress", localVarResponse));
+ }
+ try {
+ String responseBody = localVarResponse.body();
+ return CompletableFuture.completedFuture(
+ new ApiResponse(
+ localVarResponse.statusCode(),
+ localVarResponse.headers().map(),
+ responseBody == null || responseBody.isBlank()
+ ? null
+ : memberVarObjectMapper.readValue(
+ responseBody,
+ new TypeReference<
+ AddressRegistryLegalEntity>() {})));
+ } catch (IOException e) {
+ return CompletableFuture.failedFuture(new ApiException(e));
+ }
+ });
+ } catch (ApiException e) {
+ return CompletableFuture.failedFuture(e);
+ }
+ }
+
+ private HttpRequest.Builder getLegalEntityForAddressRequestBuilder(String address)
+ throws ApiException {
+ ValidationUtils.assertParamExistsAndNotEmpty(
+ "getLegalEntityForAddress", "address", address);
+
+ HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
+
+ String localVarPath =
+ "/address_registry/legal_entities/{address}"
+ .replace("{address}", ApiClient.urlEncode(address.toString()));
+
+ localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
+
+ localVarRequestBuilder.header("Accept", "application/json");
+
+ localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody());
+ if (memberVarReadTimeout != null) {
+ localVarRequestBuilder.timeout(memberVarReadTimeout);
+ }
+ if (memberVarInterceptor != null) {
+ memberVarInterceptor.accept(localVarRequestBuilder);
+ }
+ return localVarRequestBuilder;
+ }
+ /**
+ * Travel Rule - View Post-Screening Policy Get the post-screening policy for Travel Rule.
+ *
+ * @return CompletableFuture<ApiResponse<ScreeningPolicyResponse>>
+ * @throws ApiException if fails to make API call
+ */
+ public CompletableFuture> getPostScreeningPolicy()
+ throws ApiException {
+ try {
+ HttpRequest.Builder localVarRequestBuilder = getPostScreeningPolicyRequestBuilder();
+ return memberVarHttpClient
+ .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
+ .thenComposeAsync(
+ localVarResponse -> {
+ if (memberVarAsyncResponseInterceptor != null) {
+ memberVarAsyncResponseInterceptor.accept(localVarResponse);
+ }
+ if (localVarResponse.statusCode() / 100 != 2) {
+ return CompletableFuture.failedFuture(
+ getApiException(
+ "getPostScreeningPolicy", localVarResponse));
+ }
+ try {
+ String responseBody = localVarResponse.body();
+ return CompletableFuture.completedFuture(
+ new ApiResponse(
+ localVarResponse.statusCode(),
+ localVarResponse.headers().map(),
+ responseBody == null || responseBody.isBlank()
+ ? null
+ : memberVarObjectMapper.readValue(
+ responseBody,
+ new TypeReference<
+ ScreeningPolicyResponse>() {})));
+ } catch (IOException e) {
+ return CompletableFuture.failedFuture(new ApiException(e));
+ }
+ });
+ } catch (ApiException e) {
+ return CompletableFuture.failedFuture(e);
+ }
+ }
+
+ private HttpRequest.Builder getPostScreeningPolicyRequestBuilder() throws ApiException {
+
+ HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
+
+ String localVarPath = "/screening/travel_rule/post_screening_policy";
+
+ localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
+
+ localVarRequestBuilder.header("Accept", "application/json");
+
+ localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody());
+ if (memberVarReadTimeout != null) {
+ localVarRequestBuilder.timeout(memberVarReadTimeout);
+ }
+ if (memberVarInterceptor != null) {
+ memberVarInterceptor.accept(localVarRequestBuilder);
+ }
+ return localVarRequestBuilder;
+ }
+ /**
+ * Provides all the compliance details for the given screened transaction. Provides all the
+ * compliance details for the given screened transaction.
+ *
+ * @param txId Fireblocks transaction ID of the screened transaction (required)
+ * @return CompletableFuture<ApiResponse<ComplianceResultFullPayload>>
+ * @throws ApiException if fails to make API call
+ */
+ public CompletableFuture> getScreeningFullDetails(
+ String txId) throws ApiException {
+ try {
+ HttpRequest.Builder localVarRequestBuilder =
+ getScreeningFullDetailsRequestBuilder(txId);
+ return memberVarHttpClient
+ .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
+ .thenComposeAsync(
+ localVarResponse -> {
+ if (memberVarAsyncResponseInterceptor != null) {
+ memberVarAsyncResponseInterceptor.accept(localVarResponse);
+ }
+ if (localVarResponse.statusCode() / 100 != 2) {
+ return CompletableFuture.failedFuture(
+ getApiException(
+ "getScreeningFullDetails", localVarResponse));
+ }
+ try {
+ String responseBody = localVarResponse.body();
+ return CompletableFuture.completedFuture(
+ new ApiResponse(
+ localVarResponse.statusCode(),
+ localVarResponse.headers().map(),
+ responseBody == null || responseBody.isBlank()
+ ? null
+ : memberVarObjectMapper.readValue(
+ responseBody,
+ new TypeReference<
+ ComplianceResultFullPayload>() {})));
+ } catch (IOException e) {
+ return CompletableFuture.failedFuture(new ApiException(e));
+ }
+ });
+ } catch (ApiException e) {
+ return CompletableFuture.failedFuture(e);
+ }
+ }
+
+ private HttpRequest.Builder getScreeningFullDetailsRequestBuilder(String txId)
+ throws ApiException {
+ ValidationUtils.assertParamExistsAndNotEmpty("getScreeningFullDetails", "txId", txId);
+
+ HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
+
+ String localVarPath =
+ "/screening/transaction/{txId}"
+ .replace("{txId}", ApiClient.urlEncode(txId.toString()));
+
+ localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
+
+ localVarRequestBuilder.header("Accept", "application/json");
+
+ localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody());
+ if (memberVarReadTimeout != null) {
+ localVarRequestBuilder.timeout(memberVarReadTimeout);
+ }
+ if (memberVarInterceptor != null) {
+ memberVarInterceptor.accept(localVarRequestBuilder);
+ }
+ return localVarRequestBuilder;
+ }
+ /**
+ * Travel Rule - View Screening Policy Get the screening policy for Travel Rule.
+ *
+ * @return
+ * CompletableFuture<ApiResponse<ScreeningProviderRulesConfigurationResponse>>
+ * @throws ApiException if fails to make API call
+ */
+ public CompletableFuture>
+ getScreeningPolicy() throws ApiException {
+ try {
+ HttpRequest.Builder localVarRequestBuilder = getScreeningPolicyRequestBuilder();
+ return memberVarHttpClient
+ .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
+ .thenComposeAsync(
+ localVarResponse -> {
+ if (memberVarAsyncResponseInterceptor != null) {
+ memberVarAsyncResponseInterceptor.accept(localVarResponse);
+ }
+ if (localVarResponse.statusCode() / 100 != 2) {
+ return CompletableFuture.failedFuture(
+ getApiException(
+ "getScreeningPolicy", localVarResponse));
+ }
+ try {
+ String responseBody = localVarResponse.body();
+ return CompletableFuture.completedFuture(
+ new ApiResponse<
+ ScreeningProviderRulesConfigurationResponse>(
+ localVarResponse.statusCode(),
+ localVarResponse.headers().map(),
+ responseBody == null || responseBody.isBlank()
+ ? null
+ : memberVarObjectMapper.readValue(
+ responseBody,
+ new TypeReference<
+ ScreeningProviderRulesConfigurationResponse>() {})));
+ } catch (IOException e) {
+ return CompletableFuture.failedFuture(new ApiException(e));
+ }
+ });
+ } catch (ApiException e) {
+ return CompletableFuture.failedFuture(e);
+ }
+ }
+
+ private HttpRequest.Builder getScreeningPolicyRequestBuilder() throws ApiException {
+
+ HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
+
+ String localVarPath = "/screening/travel_rule/screening_policy";
+
+ localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
+
+ localVarRequestBuilder.header("Accept", "application/json");
+
+ localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody());
+ if (memberVarReadTimeout != null) {
+ localVarRequestBuilder.timeout(memberVarReadTimeout);
+ }
+ if (memberVarInterceptor != null) {
+ memberVarInterceptor.accept(localVarRequestBuilder);
+ }
+ return localVarRequestBuilder;
+ }
+ /**
+ * List vault-level address registry opt-outs (paginated) Lists vault accounts that are opted
+ * out of the address registry for this workspace. Pagination uses `next` and
+ * `prev` cursors from the response. If `pageSize` is omitted, **50** items
+ * are returned per page; allowed range is **1–100** per request.
+ *
+ * @param pageCursor Opaque cursor from a previous response (`next` or
+ * `prev`). Omit for the first page. (optional)
+ * @param pageSize Page size. Default **50** if omitted; must be between **1** and **100**.
+ * (optional, default to 50)
+ * @param order Sort direction by vault account id. Omit for ascending; use the enum value for
+ * descending. (optional, default to VAULT_OPT_OUT_LIST_ORDER_ASC)
+ * @return CompletableFuture<ApiResponse<AddressRegistryListVaultOptOutsResponse>>
+ * @throws ApiException if fails to make API call
+ */
+ public CompletableFuture>
+ listAddressRegistryVaultOptOuts(
+ String pageCursor, Integer pageSize, AddressRegistryVaultListOrder order)
+ throws ApiException {
+ try {
+ HttpRequest.Builder localVarRequestBuilder =
+ listAddressRegistryVaultOptOutsRequestBuilder(pageCursor, pageSize, order);
+ return memberVarHttpClient
+ .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
+ .thenComposeAsync(
+ localVarResponse -> {
+ if (memberVarAsyncResponseInterceptor != null) {
+ memberVarAsyncResponseInterceptor.accept(localVarResponse);
+ }
+ if (localVarResponse.statusCode() / 100 != 2) {
+ return CompletableFuture.failedFuture(
+ getApiException(
+ "listAddressRegistryVaultOptOuts",
+ localVarResponse));
+ }
+ try {
+ String responseBody = localVarResponse.body();
+ return CompletableFuture.completedFuture(
+ new ApiResponse<
+ AddressRegistryListVaultOptOutsResponse>(
+ localVarResponse.statusCode(),
+ localVarResponse.headers().map(),
+ responseBody == null || responseBody.isBlank()
+ ? null
+ : memberVarObjectMapper.readValue(
+ responseBody,
+ new TypeReference<
+ AddressRegistryListVaultOptOutsResponse>() {})));
+ } catch (IOException e) {
+ return CompletableFuture.failedFuture(new ApiException(e));
+ }
+ });
+ } catch (ApiException e) {
+ return CompletableFuture.failedFuture(e);
+ }
+ }
+
+ private HttpRequest.Builder listAddressRegistryVaultOptOutsRequestBuilder(
+ String pageCursor, Integer pageSize, AddressRegistryVaultListOrder order)
+ throws ApiException {
+
+ HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
+
+ String localVarPath = "/address_registry/vaults";
+
+ List localVarQueryParams = new ArrayList<>();
+ StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
+ String localVarQueryParameterBaseName;
+ localVarQueryParameterBaseName = "pageCursor";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("pageCursor", pageCursor));
+ localVarQueryParameterBaseName = "pageSize";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("pageSize", pageSize));
+ localVarQueryParameterBaseName = "order";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("order", order));
+
+ if (!localVarQueryParams.isEmpty() || localVarQueryStringJoiner.length() != 0) {
+ StringJoiner queryJoiner = new StringJoiner("&");
+ localVarQueryParams.forEach(p -> queryJoiner.add(p.getName() + '=' + p.getValue()));
+ if (localVarQueryStringJoiner.length() != 0) {
+ queryJoiner.add(localVarQueryStringJoiner.toString());
+ }
+ localVarRequestBuilder.uri(
+ URI.create(memberVarBaseUri + localVarPath + '?' + queryJoiner.toString()));
+ } else {
+ localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
+ }
+
+ localVarRequestBuilder.header("Accept", "application/json");
+
+ localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody());
+ if (memberVarReadTimeout != null) {
+ localVarRequestBuilder.timeout(memberVarReadTimeout);
+ }
+ if (memberVarInterceptor != null) {
+ memberVarInterceptor.accept(localVarRequestBuilder);
+ }
+ return localVarRequestBuilder;
+ }
+ /**
+ * List legal entities (Paginated) Returns legal entity registrations for the workspace with
+ * cursor-based pagination. If query parameter vaultAccountId is used it returns the legal
+ * entity registration associated with a specific vault account. If no explicit mapping exists
+ * for the vault, the workspace default legal entity is returned. Returns an empty response if
+ * neither a vault mapping nor a default legal entity is configured. </br>Endpoint
+ * Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer.
+ *
+ * @param vaultAccountId The ID of the vault account. When provided, returns the legal entity
+ * associated with that vault account and pagination parameters are ignored. (optional)
+ * @param pageCursor Cursor string returned in `next` or `prev` of a
+ * previous response. Ignored when `vaultAccountId` is provided. (optional)
+ * @param pageSize Maximum number of registrations to return. Ignored when
+ * `vaultAccountId` is provided. (optional, default to 50)
+ * @param sortBy Field to sort results by. Ignored when `vaultAccountId` is provided.
+ * (optional)
+ * @param order Sort order. Ignored when `vaultAccountId` is provided. (optional,
+ * default to DESC)
+ * @return CompletableFuture<ApiResponse<ListLegalEntitiesResponse>>
+ * @throws ApiException if fails to make API call
+ */
+ public CompletableFuture> listLegalEntities(
+ String vaultAccountId, String pageCursor, Integer pageSize, String sortBy, String order)
+ throws ApiException {
+ try {
+ HttpRequest.Builder localVarRequestBuilder =
+ listLegalEntitiesRequestBuilder(
+ vaultAccountId, pageCursor, pageSize, sortBy, order);
+ return memberVarHttpClient
+ .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
+ .thenComposeAsync(
+ localVarResponse -> {
+ if (memberVarAsyncResponseInterceptor != null) {
+ memberVarAsyncResponseInterceptor.accept(localVarResponse);
+ }
+ if (localVarResponse.statusCode() / 100 != 2) {
+ return CompletableFuture.failedFuture(
+ getApiException("listLegalEntities", localVarResponse));
+ }
+ try {
+ String responseBody = localVarResponse.body();
+ return CompletableFuture.completedFuture(
+ new ApiResponse(
+ localVarResponse.statusCode(),
+ localVarResponse.headers().map(),
+ responseBody == null || responseBody.isBlank()
+ ? null
+ : memberVarObjectMapper.readValue(
+ responseBody,
+ new TypeReference<
+ ListLegalEntitiesResponse>() {})));
+ } catch (IOException e) {
+ return CompletableFuture.failedFuture(new ApiException(e));
+ }
+ });
+ } catch (ApiException e) {
+ return CompletableFuture.failedFuture(e);
+ }
+ }
+
+ private HttpRequest.Builder listLegalEntitiesRequestBuilder(
+ String vaultAccountId, String pageCursor, Integer pageSize, String sortBy, String order)
+ throws ApiException {
+
+ HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
+
+ String localVarPath = "/legal_entities";
+
+ List localVarQueryParams = new ArrayList<>();
+ StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
+ String localVarQueryParameterBaseName;
+ localVarQueryParameterBaseName = "vaultAccountId";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("vaultAccountId", vaultAccountId));
+ localVarQueryParameterBaseName = "pageCursor";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("pageCursor", pageCursor));
+ localVarQueryParameterBaseName = "pageSize";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("pageSize", pageSize));
+ localVarQueryParameterBaseName = "sortBy";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("sortBy", sortBy));
+ localVarQueryParameterBaseName = "order";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("order", order));
+
+ if (!localVarQueryParams.isEmpty() || localVarQueryStringJoiner.length() != 0) {
+ StringJoiner queryJoiner = new StringJoiner("&");
+ localVarQueryParams.forEach(p -> queryJoiner.add(p.getName() + '=' + p.getValue()));
+ if (localVarQueryStringJoiner.length() != 0) {
+ queryJoiner.add(localVarQueryStringJoiner.toString());
+ }
+ localVarRequestBuilder.uri(
+ URI.create(memberVarBaseUri + localVarPath + '?' + queryJoiner.toString()));
+ } else {
+ localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
+ }
+
+ localVarRequestBuilder.header("Accept", "application/json");
+
+ localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody());
+ if (memberVarReadTimeout != null) {
+ localVarRequestBuilder.timeout(memberVarReadTimeout);
+ }
+ if (memberVarInterceptor != null) {
+ memberVarInterceptor.accept(localVarRequestBuilder);
+ }
+ return localVarRequestBuilder;
+ }
+ /**
+ * List vault accounts for a legal entity (Paginated) Returns vault account IDs explicitly
+ * assigned to a specific legal entity registration, with cursor-based pagination.
+ * </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer.
+ *
+ * @param legalEntityId The unique ID of the legal entity registration (required)
+ * @param pageCursor Cursor string returned in `next` or `prev` of a
+ * previous response (optional)
+ * @param pageSize Maximum number of registrations to return (optional, default to 50)
+ * @return CompletableFuture<ApiResponse<ListVaultsForRegistrationResponse>>
* @throws ApiException if fails to make API call
*/
- public CompletableFuture> getAmlPostScreeningPolicy()
- throws ApiException {
+ public CompletableFuture>
+ listVaultsForLegalEntity(UUID legalEntityId, String pageCursor, Integer pageSize)
+ throws ApiException {
try {
- HttpRequest.Builder localVarRequestBuilder = getAmlPostScreeningPolicyRequestBuilder();
+ HttpRequest.Builder localVarRequestBuilder =
+ listVaultsForLegalEntityRequestBuilder(legalEntityId, pageCursor, pageSize);
return memberVarHttpClient
.sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
.thenComposeAsync(
@@ -102,12 +1216,12 @@ public CompletableFuture> getAmlPostScreeni
if (localVarResponse.statusCode() / 100 != 2) {
return CompletableFuture.failedFuture(
getApiException(
- "getAmlPostScreeningPolicy", localVarResponse));
+ "listVaultsForLegalEntity", localVarResponse));
}
try {
String responseBody = localVarResponse.body();
return CompletableFuture.completedFuture(
- new ApiResponse(
+ new ApiResponse(
localVarResponse.statusCode(),
localVarResponse.headers().map(),
responseBody == null || responseBody.isBlank()
@@ -115,7 +1229,7 @@ public CompletableFuture> getAmlPostScreeni
: memberVarObjectMapper.readValue(
responseBody,
new TypeReference<
- ScreeningPolicyResponse>() {})));
+ ListVaultsForRegistrationResponse>() {})));
} catch (IOException e) {
return CompletableFuture.failedFuture(new ApiException(e));
}
@@ -125,13 +1239,36 @@ public CompletableFuture> getAmlPostScreeni
}
}
- private HttpRequest.Builder getAmlPostScreeningPolicyRequestBuilder() throws ApiException {
+ private HttpRequest.Builder listVaultsForLegalEntityRequestBuilder(
+ UUID legalEntityId, String pageCursor, Integer pageSize) throws ApiException {
+ ValidationUtils.assertParamExistsAndNotEmpty(
+ "listVaultsForLegalEntity", "legalEntityId", legalEntityId.toString());
HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
- String localVarPath = "/screening/aml/post_screening_policy";
+ String localVarPath =
+ "/legal_entities/{legalEntityId}/vaults"
+ .replace("{legalEntityId}", ApiClient.urlEncode(legalEntityId.toString()));
- localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
+ List localVarQueryParams = new ArrayList<>();
+ StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
+ String localVarQueryParameterBaseName;
+ localVarQueryParameterBaseName = "pageCursor";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("pageCursor", pageCursor));
+ localVarQueryParameterBaseName = "pageSize";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("pageSize", pageSize));
+
+ if (!localVarQueryParams.isEmpty() || localVarQueryStringJoiner.length() != 0) {
+ StringJoiner queryJoiner = new StringJoiner("&");
+ localVarQueryParams.forEach(p -> queryJoiner.add(p.getName() + '=' + p.getValue()));
+ if (localVarQueryStringJoiner.length() != 0) {
+ queryJoiner.add(localVarQueryStringJoiner.toString());
+ }
+ localVarRequestBuilder.uri(
+ URI.create(memberVarBaseUri + localVarPath + '?' + queryJoiner.toString()));
+ } else {
+ localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
+ }
localVarRequestBuilder.header("Accept", "application/json");
@@ -145,16 +1282,20 @@ private HttpRequest.Builder getAmlPostScreeningPolicyRequestBuilder() throws Api
return localVarRequestBuilder;
}
/**
- * AML - View Screening Policy Get the screening policy for AML.
+ * Opt the workspace in to the address registry Opts the workspace in. No request body. Response
+ * uses the same JSON shape as GET; status is OPTED_IN.
*
- * @return
- * CompletableFuture<ApiResponse<ScreeningProviderRulesConfigurationResponse>>
+ * @param idempotencyKey A unique identifier for the request. If the request is sent multiple
+ * times with the same idempotency key, the server will return the same response as the
+ * first request. The idempotency key is valid for 24 hours. (optional)
+ * @return CompletableFuture<ApiResponse<AddressRegistryTenantRegistryResponse>>
* @throws ApiException if fails to make API call
*/
- public CompletableFuture>
- getAmlScreeningPolicy() throws ApiException {
+ public CompletableFuture>
+ optInAddressRegistryTenant(String idempotencyKey) throws ApiException {
try {
- HttpRequest.Builder localVarRequestBuilder = getAmlScreeningPolicyRequestBuilder();
+ HttpRequest.Builder localVarRequestBuilder =
+ optInAddressRegistryTenantRequestBuilder(idempotencyKey);
return memberVarHttpClient
.sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
.thenComposeAsync(
@@ -165,13 +1306,13 @@ private HttpRequest.Builder getAmlPostScreeningPolicyRequestBuilder() throws Api
if (localVarResponse.statusCode() / 100 != 2) {
return CompletableFuture.failedFuture(
getApiException(
- "getAmlScreeningPolicy", localVarResponse));
+ "optInAddressRegistryTenant",
+ localVarResponse));
}
try {
String responseBody = localVarResponse.body();
return CompletableFuture.completedFuture(
- new ApiResponse<
- ScreeningProviderRulesConfigurationResponse>(
+ new ApiResponse(
localVarResponse.statusCode(),
localVarResponse.headers().map(),
responseBody == null || responseBody.isBlank()
@@ -179,7 +1320,7 @@ private HttpRequest.Builder getAmlPostScreeningPolicyRequestBuilder() throws Api
: memberVarObjectMapper.readValue(
responseBody,
new TypeReference<
- ScreeningProviderRulesConfigurationResponse>() {})));
+ AddressRegistryTenantRegistryResponse>() {})));
} catch (IOException e) {
return CompletableFuture.failedFuture(new ApiException(e));
}
@@ -189,17 +1330,21 @@ private HttpRequest.Builder getAmlPostScreeningPolicyRequestBuilder() throws Api
}
}
- private HttpRequest.Builder getAmlScreeningPolicyRequestBuilder() throws ApiException {
+ private HttpRequest.Builder optInAddressRegistryTenantRequestBuilder(String idempotencyKey)
+ throws ApiException {
HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
- String localVarPath = "/screening/aml/screening_policy";
+ String localVarPath = "/address_registry/tenant";
localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
+ if (idempotencyKey != null) {
+ localVarRequestBuilder.header("Idempotency-Key", idempotencyKey.toString());
+ }
localVarRequestBuilder.header("Accept", "application/json");
- localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody());
+ localVarRequestBuilder.method("POST", HttpRequest.BodyPublishers.noBody());
if (memberVarReadTimeout != null) {
localVarRequestBuilder.timeout(memberVarReadTimeout);
}
@@ -209,20 +1354,17 @@ private HttpRequest.Builder getAmlScreeningPolicyRequestBuilder() throws ApiExce
return localVarRequestBuilder;
}
/**
- * Look up legal entity by address and asset Returns the legal entity (company name,
- * jurisdiction, companyId) for the given blockchain address and optional asset. Both the
- * requester and the owner of the address must be opted in to the address registry.
+ * Opt the workspace out of the address registry Opts the workspace out. No request body.
+ * Response uses the same JSON shape as GET; status is OPTED_OUT.
*
- * @param address Blockchain address to look up (required)
- * @param asset Asset ID (e.g. ETH, BTC). Optional. (optional)
- * @return CompletableFuture<ApiResponse<AddressRegistryLegalEntity>>
+ * @return CompletableFuture<ApiResponse<AddressRegistryTenantRegistryResponse>>
* @throws ApiException if fails to make API call
*/
- public CompletableFuture> getLegalEntityByAddress(
- String address, String asset) throws ApiException {
+ public CompletableFuture>
+ optOutAddressRegistryTenant() throws ApiException {
try {
HttpRequest.Builder localVarRequestBuilder =
- getLegalEntityByAddressRequestBuilder(address, asset);
+ optOutAddressRegistryTenantRequestBuilder();
return memberVarHttpClient
.sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
.thenComposeAsync(
@@ -233,12 +1375,13 @@ public CompletableFuture> getLegalEntity
if (localVarResponse.statusCode() / 100 != 2) {
return CompletableFuture.failedFuture(
getApiException(
- "getLegalEntityByAddress", localVarResponse));
+ "optOutAddressRegistryTenant",
+ localVarResponse));
}
try {
String responseBody = localVarResponse.body();
return CompletableFuture.completedFuture(
- new ApiResponse(
+ new ApiResponse(
localVarResponse.statusCode(),
localVarResponse.headers().map(),
responseBody == null || responseBody.isBlank()
@@ -246,7 +1389,7 @@ public CompletableFuture> getLegalEntity
: memberVarObjectMapper.readValue(
responseBody,
new TypeReference<
- AddressRegistryLegalEntity>() {})));
+ AddressRegistryTenantRegistryResponse>() {})));
} catch (IOException e) {
return CompletableFuture.failedFuture(new ApiException(e));
}
@@ -256,37 +1399,17 @@ public CompletableFuture> getLegalEntity
}
}
- private HttpRequest.Builder getLegalEntityByAddressRequestBuilder(String address, String asset)
- throws ApiException {
- ValidationUtils.assertParamExistsAndNotEmpty("getLegalEntityByAddress", "address", address);
+ private HttpRequest.Builder optOutAddressRegistryTenantRequestBuilder() throws ApiException {
HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
- String localVarPath = "/address_registry/legal_entity";
-
- List localVarQueryParams = new ArrayList<>();
- StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
- String localVarQueryParameterBaseName;
- localVarQueryParameterBaseName = "address";
- localVarQueryParams.addAll(ApiClient.parameterToPairs("address", address));
- localVarQueryParameterBaseName = "asset";
- localVarQueryParams.addAll(ApiClient.parameterToPairs("asset", asset));
+ String localVarPath = "/address_registry/tenant";
- if (!localVarQueryParams.isEmpty() || localVarQueryStringJoiner.length() != 0) {
- StringJoiner queryJoiner = new StringJoiner("&");
- localVarQueryParams.forEach(p -> queryJoiner.add(p.getName() + '=' + p.getValue()));
- if (localVarQueryStringJoiner.length() != 0) {
- queryJoiner.add(localVarQueryStringJoiner.toString());
- }
- localVarRequestBuilder.uri(
- URI.create(memberVarBaseUri + localVarPath + '?' + queryJoiner.toString()));
- } else {
- localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
- }
+ localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
localVarRequestBuilder.header("Accept", "application/json");
- localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody());
+ localVarRequestBuilder.method("DELETE", HttpRequest.BodyPublishers.noBody());
if (memberVarReadTimeout != null) {
localVarRequestBuilder.timeout(memberVarReadTimeout);
}
@@ -296,15 +1419,24 @@ private HttpRequest.Builder getLegalEntityByAddressRequestBuilder(String address
return localVarRequestBuilder;
}
/**
- * Travel Rule - View Post-Screening Policy Get the post-screening policy for Travel Rule.
+ * Register a new legal entity Registers a new legal entity for the workspace using its LEI
+ * (Legal Entity Identifier) code. The LEI is validated against the GLEIF registry. Each
+ * workspace can register multiple legal entities. </br>Endpoint Permission: Admin,
+ * Non-Signing Admin.
*
- * @return CompletableFuture<ApiResponse<ScreeningPolicyResponse>>
+ * @param registerLegalEntityRequest (required)
+ * @param idempotencyKey A unique identifier for the request. If the request is sent multiple
+ * times with the same idempotency key, the server will return the same response as the
+ * first request. The idempotency key is valid for 24 hours. (optional)
+ * @return CompletableFuture<ApiResponse<LegalEntityRegistration>>
* @throws ApiException if fails to make API call
*/
- public CompletableFuture> getPostScreeningPolicy()
+ public CompletableFuture> registerLegalEntity(
+ RegisterLegalEntityRequest registerLegalEntityRequest, String idempotencyKey)
throws ApiException {
try {
- HttpRequest.Builder localVarRequestBuilder = getPostScreeningPolicyRequestBuilder();
+ HttpRequest.Builder localVarRequestBuilder =
+ registerLegalEntityRequestBuilder(registerLegalEntityRequest, idempotencyKey);
return memberVarHttpClient
.sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
.thenComposeAsync(
@@ -315,12 +1447,12 @@ public CompletableFuture> getPostScreeningP
if (localVarResponse.statusCode() / 100 != 2) {
return CompletableFuture.failedFuture(
getApiException(
- "getPostScreeningPolicy", localVarResponse));
+ "registerLegalEntity", localVarResponse));
}
try {
String responseBody = localVarResponse.body();
return CompletableFuture.completedFuture(
- new ApiResponse(
+ new ApiResponse(
localVarResponse.statusCode(),
localVarResponse.headers().map(),
responseBody == null || responseBody.isBlank()
@@ -328,7 +1460,7 @@ public CompletableFuture> getPostScreeningP
: memberVarObjectMapper.readValue(
responseBody,
new TypeReference<
- ScreeningPolicyResponse>() {})));
+ LegalEntityRegistration>() {})));
} catch (IOException e) {
return CompletableFuture.failedFuture(new ApiException(e));
}
@@ -338,17 +1470,32 @@ public CompletableFuture> getPostScreeningP
}
}
- private HttpRequest.Builder getPostScreeningPolicyRequestBuilder() throws ApiException {
+ private HttpRequest.Builder registerLegalEntityRequestBuilder(
+ RegisterLegalEntityRequest registerLegalEntityRequest, String idempotencyKey)
+ throws ApiException {
+ ValidationUtils.assertParamExists(
+ "registerLegalEntity", "registerLegalEntityRequest", registerLegalEntityRequest);
HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
- String localVarPath = "/screening/travel_rule/post_screening_policy";
+ String localVarPath = "/legal_entities";
localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
+ if (idempotencyKey != null) {
+ localVarRequestBuilder.header("Idempotency-Key", idempotencyKey.toString());
+ }
+ localVarRequestBuilder.header("Content-Type", "application/json");
localVarRequestBuilder.header("Accept", "application/json");
- localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody());
+ try {
+ byte[] localVarPostBody =
+ memberVarObjectMapper.writeValueAsBytes(registerLegalEntityRequest);
+ localVarRequestBuilder.method(
+ "POST", HttpRequest.BodyPublishers.ofByteArray(localVarPostBody));
+ } catch (IOException e) {
+ throw new ApiException(e);
+ }
if (memberVarReadTimeout != null) {
localVarRequestBuilder.timeout(memberVarReadTimeout);
}
@@ -358,18 +1505,20 @@ private HttpRequest.Builder getPostScreeningPolicyRequestBuilder() throws ApiExc
return localVarRequestBuilder;
}
/**
- * Provides all the compliance details for the given screened transaction. Provides all the
- * compliance details for the given screened transaction.
+ * Remove a single vault account from the address registry opt-out list Removes this vault
+ * account id from the workspace opt-out list if it is present; otherwise the call still
+ * succeeds. Response body matches GET (`optedOut` is `false` after
+ * success). To clear the whole list, use `DELETE /v1/address_registry/vaults`.
*
- * @param txId Fireblocks transaction ID of the screened transaction (required)
- * @return CompletableFuture<ApiResponse<ComplianceResultFullPayload>>
+ * @param vaultAccountId Vault account id (non-negative integer). (required)
+ * @return CompletableFuture<ApiResponse<AddressRegistryRemoveVaultOptOutResponse>>
* @throws ApiException if fails to make API call
*/
- public CompletableFuture> getScreeningFullDetails(
- String txId) throws ApiException {
+ public CompletableFuture>
+ removeAddressRegistryVaultOptOut(Integer vaultAccountId) throws ApiException {
try {
HttpRequest.Builder localVarRequestBuilder =
- getScreeningFullDetailsRequestBuilder(txId);
+ removeAddressRegistryVaultOptOutRequestBuilder(vaultAccountId);
return memberVarHttpClient
.sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
.thenComposeAsync(
@@ -380,12 +1529,14 @@ public CompletableFuture> getScreeningF
if (localVarResponse.statusCode() / 100 != 2) {
return CompletableFuture.failedFuture(
getApiException(
- "getScreeningFullDetails", localVarResponse));
+ "removeAddressRegistryVaultOptOut",
+ localVarResponse));
}
try {
String responseBody = localVarResponse.body();
return CompletableFuture.completedFuture(
- new ApiResponse(
+ new ApiResponse<
+ AddressRegistryRemoveVaultOptOutResponse>(
localVarResponse.statusCode(),
localVarResponse.headers().map(),
responseBody == null || responseBody.isBlank()
@@ -393,7 +1544,7 @@ public CompletableFuture> getScreeningF
: memberVarObjectMapper.readValue(
responseBody,
new TypeReference<
- ComplianceResultFullPayload>() {})));
+ AddressRegistryRemoveVaultOptOutResponse>() {})));
} catch (IOException e) {
return CompletableFuture.failedFuture(new ApiException(e));
}
@@ -403,21 +1554,23 @@ public CompletableFuture> getScreeningF
}
}
- private HttpRequest.Builder getScreeningFullDetailsRequestBuilder(String txId)
- throws ApiException {
- ValidationUtils.assertParamExistsAndNotEmpty("getScreeningFullDetails", "txId", txId);
+ private HttpRequest.Builder removeAddressRegistryVaultOptOutRequestBuilder(
+ Integer vaultAccountId) throws ApiException {
+ ValidationUtils.assertParamExists(
+ "removeAddressRegistryVaultOptOut", "vaultAccountId", vaultAccountId);
HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
String localVarPath =
- "/screening/transaction/{txId}"
- .replace("{txId}", ApiClient.urlEncode(txId.toString()));
+ "/address_registry/vaults/{vaultAccountId}"
+ .replace(
+ "{vaultAccountId}", ApiClient.urlEncode(vaultAccountId.toString()));
localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
localVarRequestBuilder.header("Accept", "application/json");
- localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody());
+ localVarRequestBuilder.method("DELETE", HttpRequest.BodyPublishers.noBody());
if (memberVarReadTimeout != null) {
localVarRequestBuilder.timeout(memberVarReadTimeout);
}
@@ -427,16 +1580,18 @@ private HttpRequest.Builder getScreeningFullDetailsRequestBuilder(String txId)
return localVarRequestBuilder;
}
/**
- * Travel Rule - View Screening Policy Get the screening policy for Travel Rule.
+ * Remove all vault-level address registry opt-outs for the workspace Removes all vault accounts
+ * from the workspace opt-out list.
*
* @return
- * CompletableFuture<ApiResponse<ScreeningProviderRulesConfigurationResponse>>
+ * CompletableFuture<ApiResponse<AddressRegistryRemoveAllVaultOptOutsResponse>>
* @throws ApiException if fails to make API call
*/
- public CompletableFuture>
- getScreeningPolicy() throws ApiException {
+ public CompletableFuture>
+ removeAllAddressRegistryVaultOptOuts() throws ApiException {
try {
- HttpRequest.Builder localVarRequestBuilder = getScreeningPolicyRequestBuilder();
+ HttpRequest.Builder localVarRequestBuilder =
+ removeAllAddressRegistryVaultOptOutsRequestBuilder();
return memberVarHttpClient
.sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
.thenComposeAsync(
@@ -447,13 +1602,14 @@ private HttpRequest.Builder getScreeningFullDetailsRequestBuilder(String txId)
if (localVarResponse.statusCode() / 100 != 2) {
return CompletableFuture.failedFuture(
getApiException(
- "getScreeningPolicy", localVarResponse));
+ "removeAllAddressRegistryVaultOptOuts",
+ localVarResponse));
}
try {
String responseBody = localVarResponse.body();
return CompletableFuture.completedFuture(
new ApiResponse<
- ScreeningProviderRulesConfigurationResponse>(
+ AddressRegistryRemoveAllVaultOptOutsResponse>(
localVarResponse.statusCode(),
localVarResponse.headers().map(),
responseBody == null || responseBody.isBlank()
@@ -461,7 +1617,7 @@ private HttpRequest.Builder getScreeningFullDetailsRequestBuilder(String txId)
: memberVarObjectMapper.readValue(
responseBody,
new TypeReference<
- ScreeningProviderRulesConfigurationResponse>() {})));
+ AddressRegistryRemoveAllVaultOptOutsResponse>() {})));
} catch (IOException e) {
return CompletableFuture.failedFuture(new ApiException(e));
}
@@ -471,17 +1627,18 @@ private HttpRequest.Builder getScreeningFullDetailsRequestBuilder(String txId)
}
}
- private HttpRequest.Builder getScreeningPolicyRequestBuilder() throws ApiException {
+ private HttpRequest.Builder removeAllAddressRegistryVaultOptOutsRequestBuilder()
+ throws ApiException {
HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
- String localVarPath = "/screening/travel_rule/screening_policy";
+ String localVarPath = "/address_registry/vaults";
localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
localVarRequestBuilder.header("Accept", "application/json");
- localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody());
+ localVarRequestBuilder.method("DELETE", HttpRequest.BodyPublishers.noBody());
if (memberVarReadTimeout != null) {
localVarRequestBuilder.timeout(memberVarReadTimeout);
}
@@ -725,6 +1882,101 @@ private HttpRequest.Builder updateAmlScreeningConfigurationRequestBuilder(String
}
return localVarRequestBuilder;
}
+ /**
+ * Update legal entity Updates the status of a legal entity registration. Setting isDefault to
+ * true marks the registration as the workspace default, which is applied to vault accounts that
+ * have no explicit legal entity mapping. </br>Endpoint Permission: Admin, Non-Signing
+ * Admin.
+ *
+ * @param updateLegalEntityRequest (required)
+ * @param legalEntityId The unique ID of the legal entity registration (required)
+ * @param idempotencyKey A unique identifier for the request. If the request is sent multiple
+ * times with the same idempotency key, the server will return the same response as the
+ * first request. The idempotency key is valid for 24 hours. (optional)
+ * @return CompletableFuture<ApiResponse<LegalEntityRegistration>>
+ * @throws ApiException if fails to make API call
+ */
+ public CompletableFuture> updateLegalEntity(
+ UpdateLegalEntityRequest updateLegalEntityRequest,
+ UUID legalEntityId,
+ String idempotencyKey)
+ throws ApiException {
+ try {
+ HttpRequest.Builder localVarRequestBuilder =
+ updateLegalEntityRequestBuilder(
+ updateLegalEntityRequest, legalEntityId, idempotencyKey);
+ return memberVarHttpClient
+ .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
+ .thenComposeAsync(
+ localVarResponse -> {
+ if (memberVarAsyncResponseInterceptor != null) {
+ memberVarAsyncResponseInterceptor.accept(localVarResponse);
+ }
+ if (localVarResponse.statusCode() / 100 != 2) {
+ return CompletableFuture.failedFuture(
+ getApiException("updateLegalEntity", localVarResponse));
+ }
+ try {
+ String responseBody = localVarResponse.body();
+ return CompletableFuture.completedFuture(
+ new ApiResponse(
+ localVarResponse.statusCode(),
+ localVarResponse.headers().map(),
+ responseBody == null || responseBody.isBlank()
+ ? null
+ : memberVarObjectMapper.readValue(
+ responseBody,
+ new TypeReference<
+ LegalEntityRegistration>() {})));
+ } catch (IOException e) {
+ return CompletableFuture.failedFuture(new ApiException(e));
+ }
+ });
+ } catch (ApiException e) {
+ return CompletableFuture.failedFuture(e);
+ }
+ }
+
+ private HttpRequest.Builder updateLegalEntityRequestBuilder(
+ UpdateLegalEntityRequest updateLegalEntityRequest,
+ UUID legalEntityId,
+ String idempotencyKey)
+ throws ApiException {
+ ValidationUtils.assertParamExists(
+ "updateLegalEntity", "updateLegalEntityRequest", updateLegalEntityRequest);
+ ValidationUtils.assertParamExistsAndNotEmpty(
+ "updateLegalEntity", "legalEntityId", legalEntityId.toString());
+
+ HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
+
+ String localVarPath =
+ "/legal_entities/{legalEntityId}"
+ .replace("{legalEntityId}", ApiClient.urlEncode(legalEntityId.toString()));
+
+ localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
+
+ if (idempotencyKey != null) {
+ localVarRequestBuilder.header("Idempotency-Key", idempotencyKey.toString());
+ }
+ localVarRequestBuilder.header("Content-Type", "application/json");
+ localVarRequestBuilder.header("Accept", "application/json");
+
+ try {
+ byte[] localVarPostBody =
+ memberVarObjectMapper.writeValueAsBytes(updateLegalEntityRequest);
+ localVarRequestBuilder.method(
+ "PUT", HttpRequest.BodyPublishers.ofByteArray(localVarPostBody));
+ } catch (IOException e) {
+ throw new ApiException(e);
+ }
+ if (memberVarReadTimeout != null) {
+ localVarRequestBuilder.timeout(memberVarReadTimeout);
+ }
+ if (memberVarInterceptor != null) {
+ memberVarInterceptor.accept(localVarRequestBuilder);
+ }
+ return localVarRequestBuilder;
+ }
/**
* Tenant - Screening Configuration Update tenant screening configuration.
*
diff --git a/src/main/java/com/fireblocks/sdk/api/StakingApi.java b/src/main/java/com/fireblocks/sdk/api/StakingApi.java
index 01cf54ce..16f59ae5 100644
--- a/src/main/java/com/fireblocks/sdk/api/StakingApi.java
+++ b/src/main/java/com/fireblocks/sdk/api/StakingApi.java
@@ -32,6 +32,7 @@
import com.fireblocks.sdk.model.SplitResponse;
import com.fireblocks.sdk.model.StakeRequest;
import com.fireblocks.sdk.model.StakeResponse;
+import com.fireblocks.sdk.model.StakingPositionsPaginatedResponse;
import com.fireblocks.sdk.model.StakingProvider;
import com.fireblocks.sdk.model.UnstakeRequest;
import com.fireblocks.sdk.model.WithdrawRequest;
@@ -241,11 +242,12 @@ private HttpRequest.Builder claimRewardsRequestBuilder(
/**
* Consolidate staking positions (ETH validator consolidation) Consolidates the source staking
* position into the destination, merging the balance into the destination and closing the
- * source position once complete. Both positions must be from the same validator provider and
- * same vault account. On chain, this translates into a consolidation transaction, where the
- * source validator is consolidated into the destination validator. Supported chains: Ethereum
- * (ETH) only. </br>Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer,
- * Approver, Editor.
+ * source position once complete. Both positions must be from the same funding vaults account
+ * (i.e. same withdrawals credentials). On chain, this translates into a consolidation
+ * transaction, where the source validator is consolidated into the destination validator.
+ * Supported chains: Ethereum (ETH) only. </br>Endpoint Permission: Owner, Admin,
+ * Non-Signing Admin, Signer, Approver, Editor. **Note:** This endpoint is currently in beta and
+ * might be subject to changes.
*
* @param mergeStakeAccountsRequest (required)
* @param chainDescriptor Protocol identifier for the staking operation (e.g., ETH). (required)
@@ -346,14 +348,15 @@ private HttpRequest.Builder consolidateRequestBuilder(
* @param chainDescriptor Protocol identifier to filter positions (e.g.,
* ATOM_COS/AXL/CELESTIA}). If omitted, positions across all supported chains are returned.
* (optional)
+ * @param vaultAccountId Filter positions by vault account ID. (optional)
* @return CompletableFuture<ApiResponse<List<Delegation>>>
* @throws ApiException if fails to make API call
*/
public CompletableFuture>> getAllDelegations(
- ChainDescriptor chainDescriptor) throws ApiException {
+ ChainDescriptor chainDescriptor, String vaultAccountId) throws ApiException {
try {
HttpRequest.Builder localVarRequestBuilder =
- getAllDelegationsRequestBuilder(chainDescriptor);
+ getAllDelegationsRequestBuilder(chainDescriptor, vaultAccountId);
return memberVarHttpClient
.sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
.thenComposeAsync(
@@ -387,8 +390,8 @@ public CompletableFuture>> getAllDelegations(
}
}
- private HttpRequest.Builder getAllDelegationsRequestBuilder(ChainDescriptor chainDescriptor)
- throws ApiException {
+ private HttpRequest.Builder getAllDelegationsRequestBuilder(
+ ChainDescriptor chainDescriptor, String vaultAccountId) throws ApiException {
HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
@@ -399,6 +402,8 @@ private HttpRequest.Builder getAllDelegationsRequestBuilder(ChainDescriptor chai
String localVarQueryParameterBaseName;
localVarQueryParameterBaseName = "chainDescriptor";
localVarQueryParams.addAll(ApiClient.parameterToPairs("chainDescriptor", chainDescriptor));
+ localVarQueryParameterBaseName = "vaultAccountId";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("vaultAccountId", vaultAccountId));
if (!localVarQueryParams.isEmpty() || localVarQueryStringJoiner.length() != 0) {
StringJoiner queryJoiner = new StringJoiner("&");
@@ -623,6 +628,118 @@ private HttpRequest.Builder getDelegationByIdRequestBuilder(String id) throws Ap
}
return localVarRequestBuilder;
}
+ /**
+ * List staking positions (Paginated) Returns staking positions with core details: amounts,
+ * rewards, status, chain, and vault. It supports cursor-based pagination for efficient data
+ * retrieval. This endpoint always returns a paginated response with {data, next} structure.
+ * </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
+ *
+ * @param pageSize Number of results per page. When provided, the response returns a paginated
+ * object with {data, next}. If omitted, all results are returned as an array. (required)
+ * @param chainDescriptor Protocol identifier to filter positions (e.g.,
+ * ATOM_COS/AXL/CELESTIA}). If omitted, positions across all supported chains are returned.
+ * (optional)
+ * @param vaultAccountId Filter positions by Fireblocks vault account ID. If omitted, positions
+ * across all vault accounts are returned. (optional)
+ * @param pageCursor Cursor for the next page of results. Use the value from the 'next'
+ * field in the previous response. (optional)
+ * @param order ASC / DESC ordering (default DESC) (optional, default to DESC)
+ * @return CompletableFuture<ApiResponse<StakingPositionsPaginatedResponse>>
+ * @throws ApiException if fails to make API call
+ */
+ public CompletableFuture> getPositions(
+ Integer pageSize,
+ ChainDescriptor chainDescriptor,
+ String vaultAccountId,
+ String pageCursor,
+ String order)
+ throws ApiException {
+ try {
+ HttpRequest.Builder localVarRequestBuilder =
+ getPositionsRequestBuilder(
+ pageSize, chainDescriptor, vaultAccountId, pageCursor, order);
+ return memberVarHttpClient
+ .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
+ .thenComposeAsync(
+ localVarResponse -> {
+ if (memberVarAsyncResponseInterceptor != null) {
+ memberVarAsyncResponseInterceptor.accept(localVarResponse);
+ }
+ if (localVarResponse.statusCode() / 100 != 2) {
+ return CompletableFuture.failedFuture(
+ getApiException("getPositions", localVarResponse));
+ }
+ try {
+ String responseBody = localVarResponse.body();
+ return CompletableFuture.completedFuture(
+ new ApiResponse(
+ localVarResponse.statusCode(),
+ localVarResponse.headers().map(),
+ responseBody == null || responseBody.isBlank()
+ ? null
+ : memberVarObjectMapper.readValue(
+ responseBody,
+ new TypeReference<
+ StakingPositionsPaginatedResponse>() {})));
+ } catch (IOException e) {
+ return CompletableFuture.failedFuture(new ApiException(e));
+ }
+ });
+ } catch (ApiException e) {
+ return CompletableFuture.failedFuture(e);
+ }
+ }
+
+ private HttpRequest.Builder getPositionsRequestBuilder(
+ Integer pageSize,
+ ChainDescriptor chainDescriptor,
+ String vaultAccountId,
+ String pageCursor,
+ String order)
+ throws ApiException {
+ ValidationUtils.assertParamExists("getPositions", "pageSize", pageSize);
+
+ HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
+
+ String localVarPath = "/staking/positions_paginated";
+
+ List localVarQueryParams = new ArrayList<>();
+ StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
+ String localVarQueryParameterBaseName;
+ localVarQueryParameterBaseName = "chainDescriptor";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("chainDescriptor", chainDescriptor));
+ localVarQueryParameterBaseName = "vaultAccountId";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("vaultAccountId", vaultAccountId));
+ localVarQueryParameterBaseName = "pageSize";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("pageSize", pageSize));
+ localVarQueryParameterBaseName = "pageCursor";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("pageCursor", pageCursor));
+ localVarQueryParameterBaseName = "order";
+ localVarQueryParams.addAll(ApiClient.parameterToPairs("order", order));
+
+ if (!localVarQueryParams.isEmpty() || localVarQueryStringJoiner.length() != 0) {
+ StringJoiner queryJoiner = new StringJoiner("&");
+ localVarQueryParams.forEach(p -> queryJoiner.add(p.getName() + '=' + p.getValue()));
+ if (localVarQueryStringJoiner.length() != 0) {
+ queryJoiner.add(localVarQueryStringJoiner.toString());
+ }
+ localVarRequestBuilder.uri(
+ URI.create(memberVarBaseUri + localVarPath + '?' + queryJoiner.toString()));
+ } else {
+ localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
+ }
+
+ localVarRequestBuilder.header("Accept", "application/json");
+
+ localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody());
+ if (memberVarReadTimeout != null) {
+ localVarRequestBuilder.timeout(memberVarReadTimeout);
+ }
+ if (memberVarInterceptor != null) {
+ memberVarInterceptor.accept(localVarRequestBuilder);
+ }
+ return localVarRequestBuilder;
+ }
/**
* List staking providers Returns all available staking providers with metadata such as name,
* ID, and supported chains. </br>Endpoint Permission: Admin, Non-Signing Admin, Signer,
diff --git a/src/main/java/com/fireblocks/sdk/api/TrLinkApi.java b/src/main/java/com/fireblocks/sdk/api/TrLinkApi.java
index bab6cd8d..56a04c32 100644
--- a/src/main/java/com/fireblocks/sdk/api/TrLinkApi.java
+++ b/src/main/java/com/fireblocks/sdk/api/TrLinkApi.java
@@ -490,7 +490,9 @@ private HttpRequest.Builder createTRLinkCustomerRequestBuilder(
/**
* Create customer integration Creates a new TRSupport integration for a customer. This
* establishes a connection placeholder between a customer and a Travel Rule partner. Use the
- * connect endpoint to provide credentials after creation.
+ * connect endpoint to provide credentials after creation. You may optionally supply
+ * `customerIntegrationId` in the request body when your tenant is enabled for
+ * client-provided integration ids.
*
* @param trLinkCreateIntegrationRequest (required)
* @param idempotencyKey A unique identifier for the request. If the request is sent multiple
@@ -733,8 +735,11 @@ private HttpRequest.Builder deleteTRLinkCustomerRequestBuilder(UUID customerId)
return localVarRequestBuilder;
}
/**
- * Disconnect customer integration Disconnects a customer integration by removing stored
- * credentials. The integration record is deleted and cannot be recovered.
+ * Disconnect customer integration Disconnects the integration for the authenticated workspace
+ * (tenant): removes stored credentials and deletes this tenant's integration record. The
+ * operation is scoped to the caller's tenant; it does not remove partner-side state for
+ * other workspaces that reuse the same logical customer integration. The record cannot be
+ * recovered after delete.
*
* @param customerIntegrationId Customer integration unique identifier (required)
* @return CompletableFuture<ApiResponse<Void>>
diff --git a/src/main/java/com/fireblocks/sdk/api/TradingBetaApi.java b/src/main/java/com/fireblocks/sdk/api/TradingBetaApi.java
index f69cbdbf..1c29ced6 100644
--- a/src/main/java/com/fireblocks/sdk/api/TradingBetaApi.java
+++ b/src/main/java/com/fireblocks/sdk/api/TradingBetaApi.java
@@ -27,6 +27,7 @@
import com.fireblocks.sdk.model.OrderStatus;
import com.fireblocks.sdk.model.ProvidersListResponse;
import com.fireblocks.sdk.model.QuotesResponse;
+import com.fireblocks.sdk.model.TradingProviderDetails;
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
@@ -458,6 +459,82 @@ private HttpRequest.Builder getOrdersRequestBuilder(
}
return localVarRequestBuilder;
}
+ /**
+ * Get trading provider by ID Retrieve detailed information about a specific provider including
+ * its full manifest with order/quote requirements. **Note:** These endpoints are currently in
+ * beta and might be subject to changes. If you want to participate and learn more about the
+ * Fireblocks Trading, please contact your Fireblocks Customer Success Manager or send an email
+ * to CSM@fireblocks.com. **Endpoint Permission:** Owner, Admin, Non-Signing Admin, Signer,
+ * Approver, Editor, Viewer. For detailed information about error codes and troubleshooting,
+ * please refer to our [API Error Codes
+ * documentation](https://developers.fireblocks.com/reference/api-error-codes).
+ *
+ * @param providerId The unique identifier of the provider. (required)
+ * @return CompletableFuture<ApiResponse<TradingProviderDetails>>
+ * @throws ApiException if fails to make API call
+ */
+ public CompletableFuture> getTradingProviderById(
+ String providerId) throws ApiException {
+ try {
+ HttpRequest.Builder localVarRequestBuilder =
+ getTradingProviderByIdRequestBuilder(providerId);
+ return memberVarHttpClient
+ .sendAsync(localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofString())
+ .thenComposeAsync(
+ localVarResponse -> {
+ if (memberVarAsyncResponseInterceptor != null) {
+ memberVarAsyncResponseInterceptor.accept(localVarResponse);
+ }
+ if (localVarResponse.statusCode() / 100 != 2) {
+ return CompletableFuture.failedFuture(
+ getApiException(
+ "getTradingProviderById", localVarResponse));
+ }
+ try {
+ String responseBody = localVarResponse.body();
+ return CompletableFuture.completedFuture(
+ new ApiResponse(
+ localVarResponse.statusCode(),
+ localVarResponse.headers().map(),
+ responseBody == null || responseBody.isBlank()
+ ? null
+ : memberVarObjectMapper.readValue(
+ responseBody,
+ new TypeReference<
+ TradingProviderDetails>() {})));
+ } catch (IOException e) {
+ return CompletableFuture.failedFuture(new ApiException(e));
+ }
+ });
+ } catch (ApiException e) {
+ return CompletableFuture.failedFuture(e);
+ }
+ }
+
+ private HttpRequest.Builder getTradingProviderByIdRequestBuilder(String providerId)
+ throws ApiException {
+ ValidationUtils.assertParamExistsAndNotEmpty(
+ "getTradingProviderById", "providerId", providerId);
+
+ HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();
+
+ String localVarPath =
+ "/trading/providers/{providerId}"
+ .replace("{providerId}", ApiClient.urlEncode(providerId.toString()));
+
+ localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
+
+ localVarRequestBuilder.header("Accept", "application/json");
+
+ localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody());
+ if (memberVarReadTimeout != null) {
+ localVarRequestBuilder.timeout(memberVarReadTimeout);
+ }
+ if (memberVarInterceptor != null) {
+ memberVarInterceptor.accept(localVarRequestBuilder);
+ }
+ return localVarRequestBuilder;
+ }
/**
* Get providers Retrieve a list of all available external providers supporting trading
* activities through the platform. **Note:** These endpoints are currently in beta and might be
diff --git a/src/main/java/com/fireblocks/sdk/model/AccountBasedAccessProvider.java b/src/main/java/com/fireblocks/sdk/model/AccountBasedAccessProvider.java
index 7ec25548..276b8110 100644
--- a/src/main/java/com/fireblocks/sdk/model/AccountBasedAccessProvider.java
+++ b/src/main/java/com/fireblocks/sdk/model/AccountBasedAccessProvider.java
@@ -56,7 +56,7 @@ public class AccountBasedAccessProvider {
@jakarta.annotation.Nonnull private Boolean connected;
public static final String JSON_PROPERTY_ACCOUNTS = "accounts";
- @jakarta.annotation.Nullable private List accounts;
+ @jakarta.annotation.Nonnull private List accounts;
public AccountBasedAccessProvider() {}
@@ -67,12 +67,15 @@ public AccountBasedAccessProvider(
@JsonProperty(value = JSON_PROPERTY_ACCOUNT_BASED, required = true)
Boolean accountBased,
@JsonProperty(value = JSON_PROPERTY_MANIFEST, required = true) Manifest manifest,
- @JsonProperty(value = JSON_PROPERTY_CONNECTED, required = true) Boolean connected) {
+ @JsonProperty(value = JSON_PROPERTY_CONNECTED, required = true) Boolean connected,
+ @JsonProperty(value = JSON_PROPERTY_ACCOUNTS, required = true)
+ List accounts) {
this.id = id;
this.name = name;
this.accountBased = accountBased;
this.manifest = manifest;
this.connected = connected;
+ this.accounts = accounts;
}
public AccountBasedAccessProvider id(@jakarta.annotation.Nonnull String id) {
@@ -215,7 +218,7 @@ public void setConnected(@jakarta.annotation.Nonnull Boolean connected) {
}
public AccountBasedAccessProvider accounts(
- @jakarta.annotation.Nullable List accounts) {
+ @jakarta.annotation.Nonnull List accounts) {
this.accounts = accounts;
return this;
}
@@ -233,16 +236,16 @@ public AccountBasedAccessProvider addAccountsItem(AccountBase accountsItem) {
*
* @return accounts
*/
- @jakarta.annotation.Nullable
+ @jakarta.annotation.Nonnull
@JsonProperty(JSON_PROPERTY_ACCOUNTS)
- @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
public List getAccounts() {
return accounts;
}
@JsonProperty(JSON_PROPERTY_ACCOUNTS)
- @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
- public void setAccounts(@jakarta.annotation.Nullable List accounts) {
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setAccounts(@jakarta.annotation.Nonnull List