openapi: 3.0.0 info: title: Fireblocks API version: "1.7.3" contact: email: support@fireblocks.com servers: - url: "https://api.fireblocks.io/v1" x-readme: explorer-enabled: false samples-languages: - javascript - python - curl security: - bearerTokenAuth: [] - ApiKeyAuth: [] paths: # VAULT "/vault/accounts": get: summary: List vault accounts description: Gets all vault accounts in your workspace. tags: - Vaults x-readme: code-samples: - language: python code: vault_accounts = fireblocks.get_vault_accounts() name: Fireblocks SDK Python example - language: javascript code: const vaultAccounts = await fireblocks.getVaultAccounts(); name: Fireblocks SDK Javascript example parameters: - in: query name: namePrefix required: false schema: type: string - in: query name: nameSuffix required: false schema: type: string - in: query name: minAmountThreshold required: false schema: type: number - in: query name: assetId required: false schema: type: string x-fb-entity: asset responses: "200": description: A list of vault accounts headers: &req-id-header X-Request-ID: $ref: "#/components/headers/X-Request-ID" content: "*/*": schema: type: array items: $ref: "#/components/schemas/VaultAccount" default: $ref: "#/components/responses/Error" post: summary: Create a new vault account description: Creates a new vault account with the requested name. tags: - Vaults x-readme: code-samples: - language: python code: vaultAccount = fireblocks.create_vault_account(name, hiddenOnUI, customer_ref_id, auto_fueling) name: Fireblocks SDK Python example - language: javascript code: const vaultAccount = await fireblocks.createVaultAccount(name, hiddenOnUI, customerRefId, autoFueling); name: Fireblocks SDK Javascript example requestBody: required: true content: application/json: schema: properties: name: description: Account Name type: string hiddenOnUI: description: >- Optional - if true, the created account and all related transactions will not be shown on Fireblocks console type: boolean customerRefId: description: >- Optional - Sets a customer reference ID type: string autoFuel: description: Optional - Sets the autoFuel property of the vault account type: boolean responses: "200": description: A Vault Account object headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/VaultAccount" default: $ref: "#/components/responses/Error" "/vault/accounts_paged": get: summary: List vault accounts (Paginated) description: Gets all vault accounts in your workspace. This endpoint returns a limited amount of results with a quick response time. tags: - Vaults x-readme: code-samples: - language: python code: vault_accounts = fireblocks.get_vault_accounts_with_page_info(filters) name: Fireblocks SDK Python example - language: javascript code: const vaultAccounts = await fireblocks.getVaultAccountsWithPageInfo(filters); name: Fireblocks SDK Javascript example parameters: - in: query name: namePrefix required: false schema: type: string - in: query name: nameSuffix required: false schema: type: string - in: query name: minAmountThreshold required: false description: Specifying minAmountThreshold will filter accounts with balances greater than this value, otherwise, it will return all accounts. schema: type: number - in: query name: assetId required: false schema: type: string x-fb-entity: asset - in: query name: orderBy required: false schema: type: string enum: ["ASC", "DESC"] default: "DESC" - in: query name: before required: false schema: type: string - in: query name: after required: false schema: type: string - in: query name: limit required: false schema: type: number minimum: 1 maximum: 500 default: 200 responses: "200": description: A VaultAccountsPagedResponse object headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/VaultAccountsPagedResponse" "/vault/accounts/{vaultAccountId}": get: summary: Find a vault account by ID description: Returns the requested vault account. tags: - Vaults x-readme: code-samples: - language: python code: vault_account = fireblocks.get_vault_account(vault_account_id) name: Fireblocks SDK Python example - language: javascript code: const vaultAccount = await fireblocks.getVaultAccount(vault_account_id); name: Fireblocks SDK Javascript example parameters: - in: path name: vaultAccountId required: true description: >- The ID of the vault account to return type: string schema: type: string format: numeric x-fb-entity: vault_account responses: "200": description: A Vault Account object headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/VaultAccount" default: $ref: "#/components/responses/Error" put: summary: Rename a vault account description: Renames the requested vault account. tags: - Vaults x-readme: code-samples: - language: python code: vaultAccount = fireblocks.update_vault_account(vault_account_id, name) name: Fireblocks SDK Python example - language: javascript code: const vaultAccount = await fireblocks.updateVaultAccount(vautlAccountId, name); name: Fireblocks SDK Javascript example parameters: - in: path name: vaultAccountId required: true description: >- The ID of the vault account to edit schema: type: string format: numeric x-fb-entity: vault_account requestBody: required: true content: application/json: schema: properties: name: description: Account Name type: string responses: "201": description: OK headers: *req-id-header default: $ref: "#/components/responses/Error" "/vault/asset_wallets": get: summary: List asset wallets (Paginated) description: | Gets all asset wallets at all of the vault accounts in your workspace. An asset wallet is an asset at a vault account. This method allows fast traversal of all account balances. **Note:** - This API call is subject to [rate limits](https://developers.fireblocks.com/reference/rate-limiting). tags: - Vaults x-readme: code-samples: - language: python code: vault_accounts = fireblocks.get_asset_wallets(filters) name: Fireblocks SDK Python example - language: javascript code: const vaultAccounts = await fireblocks.getAssetWallets(filters); name: Fireblocks SDK Javascript example parameters: - in: query name: totalAmountLargerThan description: When specified, only asset wallets with total balance larger than this amount are returned. required: false schema: type: number - in: query name: assetId required: false description: When specified, only asset wallets cross vault accounts that have this asset ID are returned. schema: type: string x-fb-entity: asset - in: query name: orderBy required: false schema: type: string enum: ["ASC", "DESC"] default: "DESC" - in: query name: before required: false description: Fetches the next paginated response before this element. This element is a cursor and is returned at the response of the previous page. schema: type: string - in: query name: after required: false description: Fetches the next paginated response after this element. This element is a cursor and is returned at the response of the previous page. schema: type: string - in: query name: limit required: false description: The maximum number of asset wallets in a single response. The default is 200 and the maximum is 1000. schema: type: number minimum: 1 maximum: 1000 default: 200 responses: "200": description: A PaginatedAssetWalletResponse object headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/PaginatedAssetWalletResponse" "/vault/accounts/{vaultAccountId}/hide": post: summary: Hide a vault account in the console description: Hides the requested vault account from the web console view. tags: - Vaults x-readme: code-samples: - language: python code: vaultAsset = fireblocks.hide_vault_account(vault_account_id) name: Fireblocks SDK Python example - language: javascript code: const vaultAsset = await fireblocks.hideVaultAccount(vaultAccountId); name: Fireblocks SDK Javascript example parameters: - in: path name: vaultAccountId required: true description: The vault account to hide schema: type: string minimum: 1 format: numeric x-fb-entity: vault_account responses: "201": description: OK headers: *req-id-header default: $ref: "#/components/responses/Error" "/vault/accounts/{vaultAccountId}/unhide": post: summary: Unhide a vault account in the console description: Makes a hidden vault account visible in web console view. tags: - Vaults x-readme: code-samples: - language: python code: vaultAsset = fireblocks.unhide_vault_account(vault_account_id) name: Fireblocks SDK Python example - language: javascript code: const vaultAsset = await fireblocks.unhideVaultAccount(vaultAccountId); name: Fireblocks SDK Javascript example parameters: - in: path name: vaultAccountId required: true description: The vault account to unhide schema: type: string minimum: 1 format: numeric x-fb-entity: vault_account responses: "201": description: OK headers: *req-id-header default: $ref: "#/components/responses/Error" "/vault/accounts/{vaultAccountId}/{assetId}/activate": post: summary: Activate a wallet in a vault account. description: Initiates activation for a wallet in a vault account. Activation is required for tokens that need an on-chain transaction for creation (XLM tokens, SOL tokens etc). tags: - Vaults x-readme: code-samples: - language: python code: vaultAsset = fireblocks.activate_vault_asset(vault_account_id, asset_id) name: Fireblocks SDK Python example - language: javascript code: const vaultAsset = await fireblocks.activateVaultAsset(vautlAccountId, assetId); name: Fireblocks SDK Javascript example parameters: - in: path name: vaultAccountId required: true description: >- The ID of the vault account to return, or 'default' for the default vault account schema: type: string format: numeric x-fb-entity: vault_account - in: path name: assetId required: true description: The ID of the asset schema: type: string x-fb-entity: asset responses: "200": description: OK headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/CreateVaultAssetResponse" default: $ref: "#/components/responses/Error" "/vault/accounts/{vaultAccountId}/set_customer_ref_id": post: summary: Set an AML/KYT customer reference ID for a vault account description: Assigns an AML/KYT customer reference ID for the vault account. tags: - Vaults x-readme: code-samples: - language: python code: vaultAsset = fireblocks.set_vault_account_customer_ref_id(vault_account_id, customer_ref_id) name: Fireblocks SDK Python example - language: javascript code: const vaultAsset = await fireblocks.setCustomerRefIdForVaultAccount(vaultAccountId, customerRefId); name: Fireblocks SDK Javascript example parameters: - in: path name: vaultAccountId required: true description: The vault account ID schema: type: string minimum: 1 format: numeric x-fb-entity: vault_account requestBody: required: true content: application/json: schema: properties: customerRefId: description: Customer reference ID type: string responses: "201": description: OK headers: *req-id-header default: $ref: "#/components/responses/Error" "/vault/accounts/{vaultAccountId}/set_auto_fuel": post: summary: Turn autofueling on or off description: Sets the autofueling property of the vault account to enabled or disabled. tags: - Vaults x-readme: code-samples: - language: python code: result = fireblocks.set_auto_feul(vault_account_id, auto_fuel) name: Fireblocks SDK Python example - language: javascript code: const result = await fireblocks.setAutoFuel(vaultAccountId, autoFuel; name: Fireblocks SDK Javascript example parameters: - in: path name: vaultAccountId required: true description: The vault account ID schema: type: string minimum: 1 format: numeric x-fb-entity: vault_account requestBody: required: true content: application/json: schema: properties: autoFuel: description: Auto Fuel type: boolean responses: "201": description: OK headers: *req-id-header default: $ref: "#/components/responses/Error" "/vault/accounts/{vaultAccountId}/{assetId}": get: summary: Get the asset balance for a vault account description: Returns a wallet for a specific asset of a vault account. tags: - Vaults x-readme: code-samples: - language: python code: vaultAsset = fireblocks.get_vault_account_asset(vault_account_id, asset_id) name: Fireblocks SDK Python example - language: javascript code: const vaultAsset = await fireblocks.getVaultAccountAsset(vaultAccountId, assetId); name: Fireblocks SDK Javascript example parameters: - in: path name: vaultAccountId required: true description: >- The ID of the vault account to return schema: type: string format: numeric x-fb-entity: vault_account - in: path name: assetId required: true description: The ID of the asset schema: type: string x-fb-entity: asset responses: "200": description: A VaultAsset object content: "*/*": schema: $ref: "#/components/schemas/VaultAsset" default: $ref: "#/components/responses/Error" post: summary: Create a new wallet description: Creates a wallet for a specific asset in a vault account. tags: - Vaults x-readme: code-samples: - language: python code: vaultAsset = fireblocks.create_vault_asset(vault_account_id, asset_id) name: Fireblocks SDK Python example - language: javascript code: const vaultAsset = await fireblocks.createVaultAsset(vaultAccountId, assetId); name: Fireblocks SDK Javascript example parameters: - in: path name: vaultAccountId required: true description: >- The ID of the vault account to return, or 'default' for the default vault account schema: type: string format: numeric x-fb-entity: vault_account - in: path name: assetId required: true description: The ID of the asset schema: type: string x-fb-entity: asset requestBody: required: false content: application/json: schema: properties: eosAccountName: description: Optional - when creating an EOS wallet, the account name. If not provided, a random name will be generated type: string responses: "200": description: OK headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/CreateVaultAssetResponse" default: $ref: "#/components/responses/Error" "/vault/accounts/{vaultAccountId}/{assetId}/balance": post: summary: Refresh asset balance data description: Updates the balance of a specific asset in a vault account. tags: - Vaults x-readme: code-samples: - language: python code: vaultAsset = fireblocks.refresh_vault_asset_balance(vault_account_id, asset_id) name: Fireblocks SDK Python example - language: javascript code: const vaultAsset = await fireblocks.refreshVaultAssetBalance(vaultAccountId, assetId); name: Fireblocks SDK Javascript example parameters: - in: path name: vaultAccountId required: true description: >- The ID of the vault account to return schema: type: string format: numeric x-fb-entity: vault_account - in: path name: assetId required: true description: The ID of the asset schema: type: string x-fb-entity: asset requestBody: required: false content: "*/*": schema: type: object responses: "200": description: A VaultAsset object headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/VaultAsset" default: $ref: "#/components/responses/Error" "/vault/accounts/{vaultAccountId}/{assetId}/addresses": get: summary: Get asset addresses description: |- Lists all addresses for specific asset of vault account.
- **This endpoint will be deprecated on Mar 31, 2024.** - If your application logic or scripts rely on the deprecated endpoint, you should update to account for `GET/V1/vault/accounts/{vaultAccountId}/{assetId}/addresses_paginated` before Mar 31, 2024. - All workspaces created after Mar 31, 2024. will have it disabled. If it is disabled for your workspace and you attempt to use it, you will receive the following error message: 'This endpoint is unavailable.' - Please use the `GET/V1/vault/accounts/{vaultAccountId}/{assetId}/addresses_paginated endpoint` to return all the wallet addresses associated with the specified vault account and asset in a paginated list. - This API call is subject to rate limits. tags: - Vaults x-readme: code-samples: - language: python code: depositAddresses = fireblocks.get_deposit_addresses(vault_account_id, asset_id) name: Fireblocks SDK Python example - language: javascript code: const depositAddresses = await fireblocks.getDepositAddresses(vaultAccountId, assetId); name: Fireblocks SDK Javascript example parameters: - in: path name: vaultAccountId required: true description: >- The ID of the vault account to return schema: type: string format: numeric x-fb-entity: vault_account - in: path name: assetId required: true description: The ID of the asset schema: type: string x-fb-entity: asset responses: "200": description: A list of deposit addresses headers: *req-id-header content: "*/*": schema: type: array items: $ref: "#/components/schemas/VaultWalletAddress" default: $ref: "#/components/responses/Error" post: summary: Create new asset deposit address description: Creates a new deposit address for an asset of a vault account. tags: - Vaults x-readme: code-samples: - language: python code: address = fireblocks.generate_new_address(vault_account_id, asset_id, description, customer_ref_id) name: Fireblocks SDK Python example - language: javascript code: const address = await fireblocks.generateNewAddress(vaultAccountId, assetId, description, customerRefId); name: Fireblocks SDK Javascript example requestBody: required: false content: application/json: schema: properties: description: description: (Optional) Attach a description to the new address type: string customerRefId: description: >- Optional - Sets a customer reference ID type: string parameters: - in: path name: vaultAccountId required: true description: >- The ID of the vault account to return schema: type: string format: numeric x-fb-entity: vault_account - in: path name: assetId required: true description: The ID of the asset schema: type: string x-fb-entity: asset responses: "200": description: The created address headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/CreateAddressResponse" default: $ref: "#/components/responses/Error" operationId: createVaultAccountAssetAddress "/vault/accounts/{vaultAccountId}/{assetId}/addresses_paginated": get: summary: List addresses (Paginated) description: |- Returns a paginated response of the addresses for a given vault account and asset. tags: - Vaults x-readme: code-samples: - language: python code: addresses = vault_accounts = fireblocks.get_paginated_addresses("0","ETH_TEST3") name: Fireblocks SDK Python example - language: javascript code: const addresses = await fireblocks.getPaginatedAddresses("0","ETH_TEST3"); name: Fireblocks SDK Javascript example parameters: - in: path name: vaultAccountId required: true schema: type: string - in: path name: assetId required: true schema: type: string - in: query name: limit required: false schema: type: number - in: query name: before required: false schema: type: string - in: query name: after required: false schema: type: string responses: "200": description: A list of wallet's addresses headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" content: application/json: schema: $ref: '#/components/schemas/AddressesResponse' default: $ref: "#/components/responses/Error" "/vault/accounts/{vaultAccountId}/{assetId}/max_spendable_amount": get: summary: Get the maximum spendable amount in a single transaction. description: Get the maximum amount of a particular asset that can be spent in a single transaction from a specified vault account (UTXO assets only, with a limitation on number of inputs embedded). Send several transactions if you want to spend more than the maximum spendable amount. tags: - Vaults x-readme: code-samples: - language: python code: address = fireblocks.set_address_description(vault_account_id, asset_id, address, tag, description) name: Fireblocks SDK Python example - language: javascript code: const address = await fireblocks.setAddressDescription(vaultAccountId, assetId, address, tag, description); name: Fireblocks SDK Javascript example parameters: - in: path name: vaultAccountId required: true description: >- The ID of the vault account, or 'default' for the default vault account schema: type: string format: numeric x-fb-entity: vault_account - in: path name: assetId required: true description: The ID of the asset schema: type: string x-fb-entity: asset - in: query name: manualSignging required: false description: False by default. The maximum number of inputs depends if the transaction will be signed by an automated co-signer server or on a mobile device. schema: type: boolean responses: "200": description: OK headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" "/vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}": put: summary: Update address description description: Updates the description of an existing address of an asset in a vault account. tags: - Vaults x-readme: code-samples: - language: python code: address = fireblocks.set_address_description(vault_account_id, asset_id, address, tag, description) name: Fireblocks SDK Python example - language: javascript code: const address = await fireblocks.setAddressDescription(vaultAccountId, assetId, address, tag, description); name: Fireblocks SDK Javascript example requestBody: required: false content: application/json: schema: properties: description: description: The address description type: string parameters: - in: path name: vaultAccountId required: true description: >- The ID of the vault account schema: type: string format: numeric x-fb-entity: vault_account - in: path name: assetId required: true description: The ID of the asset schema: type: string x-fb-entity: asset - in: path name: addressId required: true description: >- The address for which to add a description. For XRP, use
:, for all other assets, use only the address schema: type: string responses: "201": description: OK headers: *req-id-header default: $ref: "#/components/responses/Error" ? "/vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}/set_customer_ref_id" : post: summary: Assign AML customer reference ID description: Sets an AML/KYT customer reference ID for a specific address. tags: - Vaults x-readme: code-samples: - language: python code: vaultAsset = fireblocks.set_customer_ref_id_for_address(vault_account_id, asset_id, address_id, customer_ref_id) name: Fireblocks SDK Python example - language: javascript code: const vaultAsset = await fireblocks.setCustomerRefIdForAddress(vaultAccountId, assetId, addressId, customerRefId); name: Fireblocks SDK Javascript example parameters: - in: path name: vaultAccountId required: true description: >- The ID of the vault account schema: type: string format: numeric x-fb-entity: vault_account - in: path name: assetId required: true description: The ID of the asset schema: type: string x-fb-entity: asset - in: path name: addressId required: true description: >- The address for which to add a description. For XRP, use
:, for all other assets, use only the address schema: type: string requestBody: required: true content: application/json: schema: properties: customerRefId: description: Customer reference ID type: string responses: "201": description: OK headers: *req-id-header default: $ref: "#/components/responses/Error" ? "/vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}/create_legacy" : post: summary: Convert a segwit address to legacy format description: Converts an existing segwit address to the legacy format. tags: - Vaults parameters: - in: path name: vaultAccountId required: true description: >- The ID of the vault account schema: type: string format: numeric x-fb-entity: vault_account - in: path name: assetId required: true description: The ID of the asset schema: type: string x-fb-entity: asset - in: path name: addressId required: true description: >- The segwit address to translate schema: type: string responses: "200": description: The created address headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/CreateAddressResponse" default: $ref: "#/components/responses/Error" "/vault/accounts/{vaultAccountId}/{assetId}/unspent_inputs": get: summary: Get UTXO unspent inputs information description: Returns unspent inputs information of an asset in a vault account. tags: - Vaults x-readme: code-samples: - language: python code: vaultAsset = fireblocks.get_unspent_inputs(vault_account_id, asset_id) name: Fireblocks SDK Python example - language: javascript code: const vaultAsset = await fireblocks.getUnspentInputs(vaultAccountId, assetId); name: Fireblocks SDK Javascript example parameters: - in: path name: vaultAccountId required: true description: >- The ID of the vault account schema: type: string format: numeric x-fb-entity: vault_account - in: path name: assetId required: true description: The ID of the asset schema: type: string x-fb-entity: asset responses: "200": description: List of Unspent information per input headers: *req-id-header content: "*/*": schema: type: array items: $ref: "#/components/schemas/UnspentInputsResponse" default: $ref: "#/components/responses/Error" "/vault/public_key_info/": get: summary: Get the public key information description: Gets the public key information based on derivation path and signing algorithm. tags: - Vaults x-readme: code-samples: - language: python code: pubKey = fireblocks.get_public_key_info(algorithm, derivation_path, compressed) name: Fireblocks SDK Python example - language: javascript code: | const PublicKeyInfoArgs = { algorithm: 'MPC_ECDSA_SECP256K1', derivationPath: [44,0,0,0,0] } const pubKey = await fireblocks.getPublicKeyInfo(PublicKeyInfoArgs); name: Fireblocks SDK Javascript example parameters: - in: query name: derivationPath description: | An array of integers representing the full BIP44 derivation path of the requested public key. The first element must always be 44. required: true example: [44, 60, 0, 0, 0] schema: type: array maxItems: 5 minItems: 5 items: type: integer - in: query name: algorithm required: true schema: type: string enum: - MPC_ECDSA_SECP256K1 - MPC_ECDSA_SECP256R1 - MPC_EDDSA_ED25519 - in: query name: compressed schema: type: boolean responses: "200": description: Public key information headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/PublicKeyInformation" default: $ref: "#/components/responses/Error" ? "/vault/accounts/{vaultAccountId}/{assetId}/{change}/{addressIndex}/public_key_info" : get: summary: Get the public key for a vault account description: Gets the public key information for the vault account. tags: - Vaults x-readme: code-samples: - language: python code: pubKey = fireblocks.get_public_key_info_for_vault_account(asset_id, vault_account_id, change, address_index, compressed) name: Fireblocks SDK Python example - language: javascript code: | const PublicKeyInfoArgs = { assetId: 'ETH', vaultAccountId: 0, change: 0, addressIndex: 0, compressed: true } const pubKey = await fireblocks.getPublicKeyInfoForVaultAccount(PublicKeyInfoArgs); name: Fireblocks SDK Javascript example parameters: - in: path name: vaultAccountId required: true description: >- The ID of the vault account schema: type: string format: numeric x-fb-entity: vault_account - in: path name: assetId required: true description: >- The ID of the asset. schema: type: string x-fb-entity: asset - in: path name: change required: true description: >- Whether the address should be derived internal (change) or not. schema: type: number - in: path name: addressIndex required: true description: >- The index of the address for the derivation path. schema: type: number - in: query name: compressed required: false schema: type: boolean responses: "200": description: Public Key Information headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/PublicKeyInformation" default: $ref: "#/components/responses/Error" "/vault/assets": get: summary: Get asset balance for chosen assets description: Gets the assets amount summary for all accounts or filtered accounts. tags: - Vaults x-readme: code-samples: - language: python code: assets_balance = fireblocks.get_vault_assets_balance(accout_name_prefix, account_name_suffix) name: Fireblocks SDK Python example - language: javascript code: const assetsBalance = await fireblocks.getVaultAssetsBalance(accountNamePrefix, accountNameSuffix); name: Fireblocks SDK Javascript example parameters: - in: query name: accountNamePrefix required: false schema: type: string - in: query name: accountNameSuffix required: false schema: type: string responses: "200": description: Amount by asset headers: *req-id-header content: "*/*": schema: type: array items: $ref: "#/components/schemas/VaultAsset" default: $ref: "#/components/responses/Error" "/vault/assets/{assetId}": get: summary: Get vault balance by asset description: Gets the vault balance summary for an asset. tags: - Vaults x-readme: code-samples: - language: python code: assets_balance = fireblocks.get_vault_balance_by_asset(asset_id) name: Fireblocks SDK Python example - language: javascript code: const assetsBalance = await fireblocks.getVaultBalanceByAsset(assetId); name: Fireblocks SDK Javascript example parameters: - in: path name: assetId required: true schema: type: string x-fb-entity: asset responses: "200": description: Vault amount by asset headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/VaultAsset" default: $ref: "#/components/responses/Error" # STAKING /staking/chains: get: operationId: getChains summary: List staking supported chains description: |- Return an alphabetical list of supported chains. x-readme: code-samples: - language: python code: chains = fireblocks.get_staking_chains() name: Fireblocks SDK Python example - language: javascript code: const chains = await fireblocks.getStakingChains(); name: Fireblocks SDK Javascript example responses: "200": content: application/json: schema: type: array items: type: string example: - ETH - SOL - MATIC description: "" tags: - Staking /staking/chains/{chainDescriptor}/chainInfo: get: operationId: getChainInfo summary: Get chain-specific staking summary description: |- Return chain-specific, staking-related information summary (e.g. epoch details, lockup durations, estimated rewards, etc.). x-readme: code-samples: - language: python code: chain_info = fireblocks.get_staking_chain_info(chain_descriptor) name: Fireblocks SDK Python example - language: javascript code: const chainInfo = await fireblocks.getStakingChainInfo(StakingChain.ETHEREUM); name: Fireblocks SDK Javascript example parameters: - name: chainDescriptor required: true in: path description: The protocol identifier (e.g. "ETH"/"SOL"/"MATIC") to use schema: type: string enum: - ETH - SOL - ETH_TEST3 - SOL_TEST - ETH_TEST6 - MATIC responses: "200": description: Chain specific info summary was returned successfully content: application/json: schema: $ref: "#/components/schemas/ChainInfoResponseDto" tags: - Staking /staking/chains/{chainDescriptor}/stake: post: operationId: stake summary: Initiate Stake Operation description: Perform a chain-specific Stake. x-readme: code-samples: - language: python code: stake_request = fireblocks.execute_staking_stake(chain_descriptor, request_body) name: Fireblocks SDK Python example - language: javascript code: const stakeRequest = await fireblocks.executeStakingStake(chainDescriptor, requestBody); name: Fireblocks SDK Javascript example parameters: - name: chainDescriptor required: true in: path description: The protocol identifier (e.g. "ETH"/"SOL"/"MATIC") to use schema: type: string enum: - ETH - SOL - ETH_TEST3 - SOL_TEST - ETH_TEST6 - MATIC requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/StakeRequestDto" example: vaultAccountId: "22" providerId: kiln stakeAmount: "32" chainDescriptor: ETH txNote: stake request id CcaHc2L43ZWjwCHART3oZoJvHLAe9hzT2DJNUpBzoTN1 of 32ETH created on 02.04.23 feeLevel: MEDIUM responses: "201": description: Stake action has been executed successfully on vault and is associated with 201 status code. content: application/json: schema: $ref: "#/components/schemas/StakeResponseDto" example: id: afedfd2e4-e3c9-4b70-90d6-eb0f74bfd4sd8 tags: - Staking /staking/chains/{chainDescriptor}/unstake: post: operationId: unstake summary: Execute an Unstake operation description: Perform a chain-specific Unstake. x-readme: code-samples: - language: python code: unstake_request = fireblocks.execute_staking_unstake(chain_descriptor, request_body) name: Fireblocks SDK Python example - language: javascript code: const unstakeRequest = await fireblocks.executeStakingUnstake(chainDescriptor, requestBody); name: Fireblocks SDK Javascript example parameters: - name: chainDescriptor required: true in: path description: The protocol identifier (e.g. "SOL"/"MATIC") to use schema: type: string enum: - SOL - SOL_TEST - MATIC requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/UnstakeRequestDto" example: id: b70701f4-d7b1-4795-a8ee-b09cdb5b850d txNote: "unstake request id b70701f4-d7b1-4795-a8ee-b09cdb5b850d #SOL" feeLevel: MEDIUM responses: "201": description: Unstake action has been executed successfully on vault and is associated with 201 status code. content: application/json: schema: $ref: "#/components/schemas/UnstakeResponseDto" example: {} tags: - Staking /staking/chains/{chainDescriptor}/withdraw: post: operationId: withdraw summary: Execute a Withdraw operation description: Perform a chain-specific Withdraw. x-readme: code-samples: - language: python code: withdraw_request = fireblocks.execute_staking_withdraw(chain_descriptor, request_body) name: Fireblocks SDK Python example - language: javascript code: const withdrawRequest = await fireblocks.executeStakingWithdraw(chainDescriptor, requestBody); name: Fireblocks SDK Javascript example parameters: - name: chainDescriptor required: true in: path description: The protocol identifier (e.g. "ETH"/"SOL"/"MATIC") to use schema: type: string enum: - ETH - SOL - ETH_TEST3 - SOL_TEST - ETH_TEST6 - MATIC requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/WithdrawRequestDto" example: id: b70701f4-d7b1-4795-a8ee-b09cdb5b850d txNote: "withdraw request id b70701f4-d7b1-4795-a8ee-b09cdb5b850d #ETH" feeLevel: MEDIUM responses: "201": description: Withdraw action has been executed successfully on vault and is associated with 201 status code. content: application/json: schema: $ref: "#/components/schemas/WithdrawResponseDto" example: {} tags: - Staking /staking/chains/{chainDescriptor}/claimRewards: post: operationId: claimRewards summary: Execute a Claim Rewards operation description: Perform a chain-specific Claim Rewards. x-readme: code-samples: - language: python code: claim_rewards_request = fireblocks.execute_staking_claim_rewards(chain_descriptor, request_body) name: Fireblocks SDK Python example - language: javascript code: const claimRewardsRequest = await fireblocks.executeStakingClaimRewards(chainDescriptor, requestBody); name: Fireblocks SDK Javascript example parameters: - name: chainDescriptor required: true in: path description: The protocol identifier (e.g. "MATIC") to use schema: type: string enum: - MATIC requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/ClaimRewardsRequestDto" example: id: b70701f4-d7b1-4795-a8ee-b09cdb5b850d txNote: claim rewards request id b70701f4-d7b1-4795-a8ee-b09cdb5b850d feeLevel: MEDIUM responses: "201": description: Claim Rewards action has been executed successfully on vault and is associated with 201 status code. content: application/json: schema: $ref: "#/components/schemas/ClaimRewardsResponseDto" example: {} tags: - Staking /staking/positions: get: operationId: getAllDelegations summary: List staking positions details description: |- Return detailed information on all staking positions, including the staked amount, rewards, status and more. x-readme: code-samples: - language: python code: | positions = fireblocks.get_staking_positions() eth_positions = fireblocks.get_staking_positions(chainDescriptor="ETH") name: Fireblocks SDK Python example - language: javascript code: | const positions = await fireblocks.getStakingPositions(); const ethPositions = await fireblocks.getStakingPositions(StakingChain.ETHEREUM); name: Fireblocks SDK Javascript example parameters: - name: chainDescriptor required: false in: query description: Use "ETH" / "SOL"/ "MATIC" in order to obtain information related to the specific blockchain network or retrieve information about all chains that have data available by providing no argument. schema: type: string responses: "200": description: An array of position data was returned successfully content: application/json: schema: type: array items: $ref: "#/components/schemas/DelegationDto" tags: - Staking /staking/positions/summary: get: operationId: getSummary summary: Get staking summary details description: |- Return a summary of all vaults, categorized by their status (active, inactive), the total amounts staked and total rewards per-chain. x-readme: code-samples: - language: python code: | positions_summary = fireblocks.get_staking_positions_summary() name: Fireblocks SDK Python example - language: javascript code: | const positionsSummary = await fireblocks.getPositionsSummary(); name: Fireblocks SDK Javascript example responses: "200": description: A summary for all vaults were returned successfully content: application/json: schema: $ref: "#/components/schemas/DelegationSummaryDto" example: active: - chainDescriptor: ETH amount: "64.036604667" - chainDescriptor: SOL amount: "0.077345939" inactive: - chainDescriptor: ETH amount: "0" - chainDescriptor: SOL amount: "0" rewardsAmount: - chainDescriptor: ETH amount: "0.036604667" - chainDescriptor: SOL amount: "0.001345939" totalStaked: - chainDescriptor: ETH amount: "64.036604667" - chainDescriptor: SOL amount: "0.077345939" tags: - Staking /staking/positions/summary/vaults: get: operationId: getSummaryByVault summary: Get staking summary details by vault description: |- Return a summary for each vault, categorized by their status (active, inactive), the total amounts staked and total rewards per-chain. x-readme: code-samples: - language: python code: | positions_summary_by_vault = fireblocks.get_staking_positions_summary_by_vault() name: Fireblocks SDK Python example - language: javascript code: | const positionsSummary = await fireblocks.getPositionsSummaryByVault(); name: Fireblocks SDK Javascript example parameters: [] responses: "200": description: A summary for each vault were returned successfully content: application/json: schema: type: object additionalProperties: $ref: "#/components/schemas/DelegationSummaryDto" example: "0": active: - chainDescriptor: SOL amount: "0.015202376" inactive: - chainDescriptor: SOL amount: "0" rewardsAmount: - chainDescriptor: SOL amount: "0.000202376" totalStaked: - chainDescriptor: SOL amount: "0.015202376" "1": active: - chainDescriptor: ETH amount: "64.036604667" - chainDescriptor: SOL amount: "0.011191566" inactive: - chainDescriptor: ETH amount: "0" - chainDescriptor: SOL amount: "0" rewardsAmount: - chainDescriptor: ETH amount: "0.036604667" - chainDescriptor: SOL amount: "0.000191566" totalStaked: - chainDescriptor: ETH amount: "64.036604667" - chainDescriptor: SOL amount: "0.011191566" tags: - Staking /staking/positions/{id}: get: operationId: getDelegationById summary: Get staking position details description: |- Return detailed information on a staking position, including the staked amount, rewards, status and more. x-readme: code-samples: - language: python code: position = fireblocks.get_staking_position(position_id) name: Fireblocks SDK Python example - language: javascript code: const position = await fireblocks.getPosition(positionId); name: Fireblocks SDK Javascript example parameters: - name: id required: true in: path description: The unique identifier of the staking position schema: type: string responses: "200": description: Position data was returned successfully content: application/json: schema: $ref: "#/components/schemas/DelegationDto" tags: - Staking /staking/providers: get: operationId: getProviders summary: List staking providers details description: |- Return information on all the available staking providers. x-readme: code-samples: - language: python code: providers = fireblocks.get_staking_providers() name: Fireblocks SDK Python example - language: javascript code: const providers = await fireblocks.getStakingProviders() name: Fireblocks SDK Javascript example parameters: [] responses: "200": description: An array of supported providers was returned successfully content: application/json: schema: type: array items: $ref: "#/components/schemas/ProviderDto" tags: - Staking /staking/providers/{providerId}/approveTermsOfService: post: operationId: approveTermsOfServiceByProviderId summary: Approve staking terms of service description: |- Approve the terms of service of the staking provider. This must be called before performing a staking action for the first time with this provider. x-readme: code-samples: - language: python code: approve_request = fireblocks.approve_staking_provider_terms_of_service(provider_id) name: Fireblocks SDK Python example - language: javascript code: const approveRequest = await fireblocks.approveStakingProviderTermsOfService(providerId); name: Fireblocks SDK Javascript example parameters: - name: providerId required: true in: path description: The unique identifier of the staking provider schema: type: string enum: - kiln - figment responses: "201": description: The terms of service have been successfully approved and is associated with 201 status code. content: application/json: schema: $ref: "#/components/schemas/ProvidersResponseDto" tags: - Staking # EXCHANGE ACCOUNTS /exchange_accounts: get: summary: List exchange accounts description: > Returns all exchange accounts.
**Note:** This endpoint will be deprecated soon. Please use the `/exchange_accounts/paged` endpoint instead. tags: - Exchange accounts x-readme: code-samples: - language: python code: exchangeAccounts = fireblocks.get_exchange_accounts() name: Fireblocks SDK Python example - language: javascript code: const exchangeAccounts = await fireblocks.getExchangeAccounts(); name: Fireblocks SDK Javascript example responses: "200": description: An ExchangeAccount object headers: *req-id-header content: "*/*": schema: type: array items: $ref: "#/components/schemas/ExchangeAccount" default: $ref: "#/components/responses/Error" /exchange_accounts/paged: get: summary: List exchange accounts (paged) description: Returns a paginated list of exchange accounts. tags: - Exchange accounts x-readme: code-samples: - language: javascript code: const exchangeAccounts = await fireblocks.getExchangeAccounts(); name: Fireblocks SDK Javascript example parameters: - in: query name: before required: false schema: type: string - in: query name: after required: false schema: type: string - in: query name: limit description: >- number of exchanges per page required: true schema: type: number minimum: 1 maximum: 5 default: 3 responses: "200": description: An ExchangeAccount object headers: *req-id-header content: "*/*": schema: type: array items: $ref: "#/components/schemas/ExchangeAccountsPaged" default: $ref: "#/components/responses/Error" "/exchange_accounts/{exchangeAccountId}": get: summary: Find a specific exchange account description: Returns an exchange account by ID. tags: - Exchange accounts x-readme: code-samples: - language: python code: exchangeAccount = fireblocks.get_exchange_account(exchangeAccountId) name: Fireblocks SDK Python example - language: javascript code: const exchnageAccount = await fireblocks.get_exchange_account(exchangeAccountId); name: Fireblocks SDK Javascript example parameters: - in: path name: exchangeAccountId required: true description: The ID of the exchange account to return schema: type: string minimum: 1 responses: "200": description: An ExchangeAccount object headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/ExchangeAccount" default: $ref: "#/components/responses/Error" "/exchange_accounts/{exchangeAccountId}/internal_transfer": post: summary: Internal tranfer for exchange accounts description: Transfers funds between trading accounts under the same exchange account. tags: - Exchange accounts parameters: - in: path name: exchangeAccountId required: true description: The ID of the exchange account to return schema: type: string minimum: 1 responses: "201": description: Transfer succeeded headers: *req-id-header default: $ref: "#/components/responses/Error" requestBody: content: application/json: schema: properties: asset: type: string amount: type: string sourceType: $ref: "#/components/schemas/TradingAccountType" destType: $ref: "#/components/schemas/TradingAccountType" "/exchange_accounts/{exchangeAccountId}/convert": post: summary: Convert exchange account funds from the source asset to the destination asset. Coinbase (USD to USDC, USDC to USD) and Bitso (MXN to USD) are supported conversions. tags: - Exchange accounts x-readme: code-samples: - language: python code: exchangeAccount = fireblocks.convert_exchange_asset(exchange_account_id, src_asset, dest_asset, amount) name: Fireblocks SDK Python example - language: javascript code: const exchnageAccount = await fireblocks.convertExchangeAsset(exchangeAccountId, srcAsset, destAsset, amount); name: Fireblocks SDK Javascript example parameters: - in: path name: exchangeAccountId required: true description: The ID of the exchange account. Please make sure the exchange supports conversions. To find the ID of your exchange account, use GET/exchange_accounts. schema: type: string minimum: 1 responses: "200": description: Conversion successful headers: *req-id-header default: $ref: "#/components/responses/Error" requestBody: content: application/json: schema: properties: srcAsset: type: string description: Name of the source asset (must be in a currency that is supported for conversions in the selected exchange type that corresponds to your exchange ID) destAsset: type: string description: Name of the destination asset (must be in a currency that is supported for conversions in the selected exchange type that corresponds to your exchange ID) amount: type: number description: The amount to transfer (in the currency of the source asset) required: - srcAsset - destAsset - amount "/exchange_accounts/{exchangeAccountId}/{assetId}": get: summary: Find an asset for an exchange account description: Returns an asset for an exchange account. tags: - Exchange accounts x-readme: code-samples: - language: python code: exchangeAsset = fireblocks.get_exchange_account_asset(exchangeAccountId, assetId) name: Fireblocks SDK Python example - language: javascript code: const exchangeAsset = await fireblocks.getExchangeAsset(exchangeAccountId, assetId); name: Fireblocks SDK Javascript example parameters: - in: path name: exchangeAccountId required: true description: The ID of the exchange account to return schema: type: string minimum: 1 - in: path name: assetId required: true description: The ID of the asset to return schema: type: string minimum: 1 responses: "200": description: An ExchangeAccountAsset object headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/ExchangeAsset" default: $ref: "#/components/responses/Error" # FIAT ACCOUNTS /fiat_accounts: get: summary: List fiat accounts description: Returns all fiat accounts. tags: - Fiat accounts x-readme: code-samples: - language: python code: transactions = fireblocks.get_fiat_accounts() name: Fireblocks SDK Python example - language: javascript code: const transactions = await fireblocks.getFiatAccounts(); name: Fireblocks SDK Javascript example responses: "200": description: A fiat account object headers: *req-id-header content: "*/*": schema: type: array items: $ref: "#/components/schemas/FiatAccount" default: $ref: "#/components/responses/Error" "/fiat_accounts/{accountId}": get: summary: Find a specific fiat account description: Returns a fiat account by ID. tags: - Fiat accounts x-readme: code-samples: - language: python code: transactions = fireblocks.get_fiat_account_by_id(account_id) name: Fireblocks SDK Python example - language: javascript code: const transactions = await fireblocks.getFiatAccountById(accountId); name: Fireblocks SDK Javascript example parameters: - in: path name: accountId required: true description: The ID of the fiat account to return schema: type: string minimum: 1 responses: "200": description: A fiat account object headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/FiatAccount" default: $ref: "#/components/responses/Error" "/fiat_accounts/{accountId}/redeem_to_linked_dda": post: summary: Redeem funds to DDA description: Redeems funds to the linked DDA. tags: - Fiat accounts x-readme: code-samples: - language: python code: transactions = fireblocks.redeem_to_linked_dda(account_id, amount) name: Fireblocks SDK Python example - language: javascript code: const transactions = await fireblocks.redeemToLinkedDDA(accountId, amount); name: Fireblocks SDK Javascript example parameters: - in: path name: accountId required: true description: The ID of the fiat account to use schema: type: string minimum: 1 responses: "201": description: Transfer succeeded headers: *req-id-header default: $ref: "#/components/responses/Error" requestBody: content: application/json: schema: properties: amount: type: number "/fiat_accounts/{accountId}/deposit_from_linked_dda": post: summary: Deposit funds from DDA description: Deposits funds from the linked DDA. tags: - Fiat accounts x-readme: code-samples: - language: python code: transactions = fireblocks.deposit_from_linked_dda(account_id, amount) name: Fireblocks SDK Python example - language: javascript code: const transactions = await fireblocks.depositFromLinkedDDA(accountId, amount); name: Fireblocks SDK Javascript example parameters: - in: path name: accountId required: true description: The ID of the fiat account to use schema: type: string minimum: 1 responses: "201": description: Transfer succeeded headers: *req-id-header default: $ref: "#/components/responses/Error" requestBody: content: application/json: schema: properties: amount: type: number # NETWORK CONNECTIONS "/network_connections": get: summary: List network connections description: | Returns all network connections. **Note:** This API call is subject to Flexible Routing Schemes. Your routing policy defines how your transactions are routed. You can choose 1 of the 3 different schemes mentioned below for each asset type: - **None**; Defines the profile routing to no destination for that asset type. Incoming transactions to asset types routed to `None` will fail. - **Custom**; Route to an account that you choose. If you remove the account, incoming transactions will fail until you choose another one. - **Default**; Use the routing specified by the network profile the connection is connected to. This scheme is also referred to as "Profile Routing" Default Workspace Presets: - Network Profile Crypto → **Custom** - Network Profile FIAT → **None** - Network Connection Crypto → **Default** - Network Connection FIAT → **Default** - **Note**: By default, Custom routing scheme uses (`dstId` = `0`, `dstType` = `VAULT`). tags: - Network connections x-readme: code-samples: - language: python code: network_connections = fireblocks.get_network_connections() name: Fireblocks SDK Python example - language: javascript code: const networkConnections = await fireblocks.getNetworkConnections(); name: Fireblocks SDK Javascript example responses: "200": description: A list of network connections headers: *req-id-header content: "*/*": schema: type: array items: $ref: "#/components/schemas/NetworkConnectionResponse" default: $ref: "#/components/responses/Error" post: summary: Creates a new network connection description: | Initiates a new network connection. **Note:** This API call is subject to Flexible Routing Schemes. Your routing policy defines how your transactions are routed. You can choose 1 of the 3 different schemes mentioned below for each asset type: - **None**; Defines the profile routing to no destination for that asset type. Incoming transactions to asset types routed to `None` will fail. - **Custom**; Route to an account that you choose. If you remove the account, incoming transactions will fail until you choose another one. - **Default**; Use the routing specified by the network profile the connection is connected to. This scheme is also referred to as "Profile Routing" Default Workspace Presets: - Network Profile Crypto → **Custom** - Network Profile FIAT → **None** - Network Connection Crypto → **Default** - Network Connection FIAT → **Default** - **Note**: By default, Custom routing scheme uses (`dstId` = `0`, `dstType` = `VAULT`). tags: - Network connections x-readme: code-samples: - language: python code: network_connections = fireblocks.create_network_connection(local_network_id, remote_network_id, routing_policy) name: Fireblocks SDK Python example - language: javascript code: const networkConnections = await fireblocks.createNetworkConnection(localNetworkId, remoteNetworkId, routingPolicy); name: Fireblocks SDK Javascript example requestBody: content: application/json: schema: $ref: "#/components/schemas/NetworkConnection" responses: "201": description: A Network Connection object headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/NetworkConnectionResponse" default: $ref: "#/components/responses/Error" "/network_connections/{connectionId}/set_routing_policy": patch: summary: Update network connection routing policy. description: | Updates an existing network connection's routing policy. **Note:** This API call is subject to Flexible Routing Schemes. Your routing policy defines how your transactions are routed. You can choose 1 of the 3 different schemes mentioned below for each asset type: - **None**; Defines the profile routing to no destination for that asset type. Incoming transactions to asset types routed to `None` will fail. - **Custom**; Route to an account that you choose. If you remove the account, incoming transactions will fail until you choose another one. - **Default**; Use the routing specified by the network profile the connection is connected to. This scheme is also referred to as "Profile Routing" Default Workspace Presets: - Network Profile Crypto → **Custom** - Network Profile FIAT → **None** - Network Connection Crypto → **Default** - Network Connection FIAT → **Default** - **Note**: By default, Custom routing scheme uses (`dstId` = `0`, `dstType` = `VAULT`). tags: - Network connections parameters: - in: path name: connectionId required: true description: The ID of the network connection schema: type: string minimum: 1 requestBody: content: application/json: schema: properties: routingPolicy: $ref: "#/components/schemas/NetworkConnectionRoutingPolicy" required: - routingPolicy responses: "200": description: Network ID headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" content: "*/*": schema: properties: success: type: boolean required: - success default: $ref: "#/components/responses/Error" "/network_connections/{connectionId}/is_third_party_routing/{assetType}": get: summary: Retrieve third-party network routing validation by asset type. description: The Fireblocks Network allows for flexibility around incoming deposits. A receiver can receive network deposits to locations other than Fireblocks. This endpoint validates whether future transactions are routed to the displayed recipient or to a 3rd party. tags: - Network connections parameters: - in: path name: connectionId required: true description: The ID of the network connection schema: type: string minimum: 1 - in: path name: assetType required: true description: The destination asset type schema: type: string enum: - CRYPTO - SIGNET - SEN - SIGNET_TEST - SEN_TEST responses: "200": description: result for the validation headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" content: "*/*": schema: properties: isThirdPartyRouting: type: boolean description: type: string default: $ref: "#/components/responses/Error" "/network_connections/{connectionId}": get: summary: Get a network connection description: | Gets a network connection by ID. **Note:** This API call is subject to Flexible Routing Schemes. Your routing policy defines how your transactions are routed. You can choose 1 of the 3 different schemes mentioned below for each asset type: - **None**; Defines the profile routing to no destination for that asset type. Incoming transactions to asset types routed to `None` will fail. - **Custom**; Route to an account that you choose. If you remove the account, incoming transactions will fail until you choose another one. - **Default**; Use the routing specified by the network profile the connection is connected to. This scheme is also referred to as "Profile Routing" Default Workspace Presets: - Network Profile Crypto → **Custom** - Network Profile FIAT → **None** - Network Connection Crypto → **Default** - Network Connection FIAT → **Default** - **Note**: By default, Custom routing scheme uses (`dstId` = `0`, `dstType` = `VAULT`). tags: - Network connections x-readme: code-samples: - language: python code: network_connection = fireblocks.get_network_connection_by_id(connectionId) name: Fireblocks SDK Python example - language: javascript code: const network_connection = await fireblocks.getNetworkConnection(connectionId); name: Fireblocks SDK Javascript example parameters: - in: path name: connectionId required: true description: The ID of the connection schema: type: string minimum: 1 responses: "200": description: A network connection headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/NetworkConnectionResponse" default: $ref: "#/components/responses/Error" delete: summary: Deletes a network connection by ID description: | Deletes an existing network connection specified by its connection ID. **Note:** This API call is subject to Flexible Routing Schemes. Your routing policy defines how your transactions are routed. You can choose 1 of the 3 different schemes mentioned below for each asset type: - **None**; Defines the profile routing to no destination for that asset type. Incoming transactions to asset types routed to `None` will fail. - **Custom**; Route to an account that you choose. If you remove the account, incoming transactions will fail until you choose another one. - **Default**; Use the routing specified by the network profile the connection is connected to. This scheme is also referred to as "Profile Routing" Default Workspace Presets: - Network Profile Crypto → **Custom** - Network Profile FIAT → **None** - Network Connection Crypto → **Default** - Network Connection FIAT → **Default** - **Note**: By default, Custom routing scheme uses (`dstId` = `0`, `dstType` = `VAULT`). tags: - Network connections parameters: - in: path name: connectionId required: true description: The ID of the network connection to delete schema: type: string minimum: 1 responses: "200": description: Network ID headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" content: "*/*": schema: properties: success: type: boolean required: - success default: $ref: "#/components/responses/Error" "/network_ids": get: summary: Returns all network IDs, both local IDs and discoverable remote IDs description: | Retrieves a list of all local and discoverable remote network IDs. **Note:** This API call is subject to Flexible Routing Schemes. Your routing policy defines how your transactions are routed. You can choose 1 of the 3 different schemes mentioned below for each asset type: - **None**; Defines the profile routing to no destination for that asset type. Incoming transactions to asset types routed to `None` will fail. - **Custom**; Route to an account that you choose. If you remove the account, incoming transactions will fail until you choose another one. - **Default**; Use the routing specified by the network profile the connection is connected to. This scheme is also referred to as "Profile Routing" Default Workspace Presets: - Network Profile Crypto → **Custom** - Network Profile FIAT → **None** - Network Connection Crypto → **Default** - Network Connection FIAT → **Default** - **Note**: By default, Custom routing scheme uses (`dstId` = `0`, `dstType` = `VAULT`). tags: - Network connections responses: "200": description: A list of network IDs headers: *req-id-header content: "*/*": schema: type: array items: allOf: - $ref: "#/components/schemas/NetworkIdResponse" default: $ref: "#/components/responses/Error" post: summary: Creates a new Network ID description: | Creates a new Network ID. **Note:** This API call is subject to Flexible Routing Schemes. Your routing policy defines how your transactions are routed. You can choose 1 of the 3 different schemes mentioned below for each asset type: - **None**; Defines the profile routing to no destination for that asset type. Incoming transactions to asset types routed to `None` will fail. - **Custom**; Route to an account that you choose. If you remove the account, incoming transactions will fail until you choose another one. - **Default**; Use the routing specified by the network profile the connection is connected to. This scheme is also referred to as "Profile Routing" Default Workspace Presets: - Network Profile Crypto → **Custom** - Network Profile FIAT → **None** - Network Connection Crypto → **Default** - Network Connection FIAT → **Default** - **Note**: By default, Custom routing scheme uses (`dstId` = `0`, `dstType` = `VAULT`). tags: - Network connections requestBody: content: application/json: schema: properties: name: type: string routingPolicy: $ref: "#/components/schemas/NetworkIdRoutingPolicy" required: - name responses: "201": description: Returns the new network ID in your workspace headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/NetworkIdResponse" default: $ref: "#/components/responses/Error" "/network_ids/{networkId}": get: summary: Returns specific network ID. description: | Retrieves a network by its ID. **Note:** This API call is subject to Flexible Routing Schemes. Your routing policy defines how your transactions are routed. You can choose 1 of the 3 different schemes mentioned below for each asset type: - **None**; Defines the profile routing to no destination for that asset type. Incoming transactions to asset types routed to `None` will fail. - **Custom**; Route to an account that you choose. If you remove the account, incoming transactions will fail until you choose another one. - **Default**; Use the routing specified by the network profile the connection is connected to. This scheme is also referred to as "Profile Routing" Default Workspace Presets: - Network Profile Crypto → **Custom** - Network Profile FIAT → **None** - Network Connection Crypto → **Default** - Network Connection FIAT → **Default** - **Note**: By default, Custom routing scheme uses (`dstId` = `0`, `dstType` = `VAULT`). tags: - Network connections parameters: - in: path name: networkId required: true description: The ID of the network schema: type: string minimum: 1 responses: "200": description: Network ID headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/NetworkIdResponse" default: $ref: "#/components/responses/Error" delete: summary: Deletes specific network ID. description: | Deletes a network by its ID. **Note:** This API call is subject to Flexible Routing Schemes. Your routing policy defines how your transactions are routed. You can choose 1 of the 3 different schemes mentioned below for each asset type: - **None**; Defines the profile routing to no destination for that asset type. Incoming transactions to asset types routed to `None` will fail. - **Custom**; Route to an account that you choose. If you remove the account, incoming transactions will fail until you choose another one. - **Default**; Use the routing specified by the network profile the connection is connected to. This scheme is also referred to as "Profile Routing" Default Workspace Presets: - Network Profile Crypto → **Custom** - Network Profile FIAT → **None** - Network Connection Crypto → **Default** - Network Connection FIAT → **Default** - **Note**: By default, Custom routing scheme uses (`dstId` = `0`, `dstType` = `VAULT`). tags: - Network connections parameters: - in: path name: networkId required: true description: The ID of the network schema: type: string minimum: 1 responses: "200": description: Network ID content: "*/*": schema: properties: success: type: boolean required: - success default: $ref: "#/components/responses/Error" "/network_ids/{networkId}/set_routing_policy": patch: summary: Update network id routing policy. description: | Updates the routing policy of a specified network ID. **Note:** This API call is subject to Flexible Routing Schemes. Your routing policy defines how your transactions are routed. You can choose 1 of the 3 different schemes mentioned below for each asset type: - **None**; Defines the profile routing to no destination for that asset type. Incoming transactions to asset types routed to `None` will fail. - **Custom**; Route to an account that you choose. If you remove the account, incoming transactions will fail until you choose another one. - **Default**; Use the routing specified by the network profile the connection is connected to. This scheme is also referred to as "Profile Routing" Default Workspace Presets: - Network Profile Crypto → **Custom** - Network Profile FIAT → **None** - Network Connection Crypto → **Default** - Network Connection FIAT → **Default** - **Note**: By default, Custom routing scheme uses (`dstId` = `0`, `dstType` = `VAULT`). tags: - Network connections parameters: - in: path name: networkId required: true description: The ID of the network schema: type: string minimum: 1 requestBody: content: application/json: schema: properties: routingPolicy: $ref: "#/components/schemas/NetworkIdRoutingPolicy" required: - routingPolicy responses: "200": description: Network ID headers: *req-id-header content: "*/*": schema: properties: success: type: boolean required: - success default: $ref: "#/components/responses/Error" "/network_ids/{networkId}/set_discoverability": patch: summary: Update network ID's discoverability. description: | Update whether or not the network ID is discoverable by others. **Note:** This API call is subject to Flexible Routing Schemes. Your routing policy defines how your transactions are routed. You can choose 1 of the 3 different schemes mentioned below for each asset type: - **None**; Defines the profile routing to no destination for that asset type. Incoming transactions to asset types routed to `None` will fail. - **Custom**; Route to an account that you choose. If you remove the account, incoming transactions will fail until you choose another one. - **Default**; Use the routing specified by the network profile the connection is connected to. This scheme is also referred to as "Profile Routing" Default Workspace Presets: - Network Profile Crypto → **Custom** - Network Profile FIAT → **None** - Network Connection Crypto → **Default** - Network Connection FIAT → **Default** - **Note**: By default, Custom routing scheme uses (`dstId` = `0`, `dstType` = `VAULT`). tags: - Network connections parameters: - in: path name: networkId required: true description: The ID of the network schema: type: string minimum: 1 requestBody: required: true content: application/json: schema: properties: isDiscoverable: type: boolean required: - isDiscoverable responses: "200": description: Network ID headers: *req-id-header content: "*/*": schema: properties: success: type: boolean required: - success default: $ref: "#/components/responses/Error" "/network_ids/{networkId}/set_name": patch: summary: Update network ID's name. description: | Updates name of a specified network ID. **Note:** This API call is subject to Flexible Routing Schemes. Your routing policy defines how your transactions are routed. You can choose 1 of the 3 different schemes mentioned below for each asset type: - **None**; Defines the profile routing to no destination for that asset type. Incoming transactions to asset types routed to `None` will fail. - **Custom**; Route to an account that you choose. If you remove the account, incoming transactions will fail until you choose another one. - **Default**; Use the routing specified by the network profile the connection is connected to. This scheme is also referred to as "Profile Routing" Default Workspace Presets: - Network Profile Crypto → **Custom** - Network Profile FIAT → **None** - Network Connection Crypto → **Default** - Network Connection FIAT → **Default** - **Note**: By default, Custom routing scheme uses (`dstId` = `0`, `dstType` = `VAULT`). tags: - Network connections parameters: - in: path name: networkId required: true description: The ID of the network schema: type: string minimum: 1 requestBody: required: true content: application/json: schema: properties: name: type: string required: - name responses: "200": description: Network ID headers: *req-id-header content: "*/*": schema: properties: success: type: boolean required: - success default: $ref: "#/components/responses/Error" # INTERNAL WALLETS /internal_wallets: get: summary: List internal wallets tags: - Internal wallets description: | Gets a list of internal wallets. **Note**: BTC-based assets belonging to whitelisted addresses cannot be retrieved between 00:00 UTC and 00:01 UTC daily due to third-party provider, Blockchair, being unavailable for this 60 second period. Please wait until the next minute to retrieve BTC-based assets. responses: "200": description: A list of internal wallets headers: *req-id-header content: "*/*": schema: type: array items: $ref: "#/components/schemas/UnmanagedWallet" default: $ref: "#/components/responses/Error" post: summary: Create an internal wallet tags: - Internal wallets x-readme: code-samples: - language: python code: internalWallet = fireblocks.create_internal_wallet(name, customer_ref_id) name: Fireblocks SDK Python example - language: javascript code: const internalWallet = await fireblocks.createInternalWallet(name, customerRefId); name: Fireblocks SDK Javascript example description: Creates a new internal wallet with the requested name. responses: "200": description: A new wallet object headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/UnmanagedWallet" default: $ref: "#/components/responses/Error" requestBody: content: application/json: schema: properties: name: type: string description: the wallet's display name customerRefId: description: >- Optional - Sets a customer reference ID type: string "/internal_wallets/{walletId}": get: summary: Get assets for internal wallet tags: - Internal wallets x-readme: code-samples: - language: python code: internalWallet = fireblocks.get_internal_wallet(walletId) name: Fireblocks SDK Python example - language: javascript code: const result = await fireblocks.getInternalWallet(walletId); name: Fireblocks SDK Javascript example description: Returns all assets in an internal wallet by ID. parameters: - in: path name: walletId required: true description: The ID of the wallet to return schema: type: string minimum: 1 responses: "200": description: A Wallet object headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/UnmanagedWallet" default: $ref: "#/components/responses/Error" delete: summary: Delete an internal wallet tags: - Internal wallets x-readme: code-samples: - language: python code: result = firebocks.delete_internal_wallet(walletId) name: Fireblocks SDK Python example - language: javascript code: const result = await fireblocks.deleteInternalWallet(walletId); name: Fireblocks SDK Javascript example description: Deletes an internal wallet by ID. parameters: - in: path name: walletId required: true description: The ID of the wallet to delete schema: type: string minimum: 1 responses: "201": description: OK headers: *req-id-header default: $ref: "#/components/responses/Error" "/internal_wallets/{walletId}/set_customer_ref_id": post: summary: Set an AML/KYT customer reference ID for an internal wallet tags: - Internal wallets x-readme: code-samples: - language: python code: result = firebocks.set_customer_ref_id_for_internal_wallet(wallet_id, customer_ref_id) name: Fireblocks SDK Python example - language: javascript code: const result = await fireblocks.setCustomerRefIdForInternalWallet(walletId, customerRefId); name: Fireblocks SDK Javascript example description: Sets an AML/KYT customer reference ID for the specific internal wallet. parameters: - in: path name: walletId required: true description: The wallet ID schema: type: string minimum: 1 requestBody: required: true content: application/json: schema: properties: customerRefId: description: Customer reference ID type: string responses: "201": description: OK headers: *req-id-header default: $ref: "#/components/responses/Error" "/internal_wallets/{walletId}/{assetId}": get: summary: Get an asset from an internal wallet tags: - Internal wallets x-readme: code-samples: - language: python code: internalWalletAsset = fireblocks.get_internal_wallet_asset(walletId, assetId) name: Fireblocks SDK Python example - language: javascript code: const internalWalletAsset = fireblocks.getInternalWalletAsset(walletId, assetId); name: Fireblocks SDK Javascript example description: Returns information for an asset in an internal wallet. parameters: - in: path name: walletId required: true description: The ID of the wallet schema: type: string minimum: 1 - in: path name: assetId required: true description: The ID of the asset to return schema: type: string minimum: 1 x-fb-entity: asset responses: "200": description: A Wallet Asset object headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/WalletAsset" default: $ref: "#/components/responses/Error" post: summary: Add an asset to an internal wallet tags: - Internal wallets x-readme: code-samples: - language: python code: internalWalletAsset = fireblocks.create_internal_wallet_asset(walletId, assetId, address, tag) name: Fireblocks SDK Python example - language: javascript code: const internalWalletAsset = await fireblocks.createInternalWalletAsset(walletContainerId, assetId, address, tag); name: Fireblocks SDK Javascript example description: Adds an asset to an existing internal wallet. parameters: - in: path name: walletId required: true description: The ID of the wallet schema: type: string - in: path name: assetId required: true description: The ID of the asset to add schema: type: string x-fb-entity: asset responses: "200": description: A Wallet Asset object headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/WalletAsset" default: $ref: "#/components/responses/Error" requestBody: content: application/json: schema: properties: address: type: string description: The wallet's address or, for EOS wallets, the account name tag: type: string description: for XRP wallets, the destination tag; for EOS, the memo; for the fiat providers (BLINC by BCB Group), the Bank Transfer Description required: - address delete: summary: Delete a whitelisted address from an internal wallet tags: - Internal wallets x-readme: code-samples: - language: python code: result = fireblocks.delete_internal_wallet_asset(walletId, assetId) name: Fireblocks SDK Python example - language: javascript code: const result = await fireblocks.deleteInternalWalletAsset(walletId, assetId); name: Fireblocks SDK Javascript example description: Deletes a whitelisted address (for an asset) from an internal wallet. parameters: - in: path name: walletId required: true description: The ID of the wallet schema: type: string minimum: 1 - in: path name: assetId required: true description: The ID of the asset to delete schema: type: string minimum: 1 x-fb-entity: asset responses: "201": description: OK headers: *req-id-header default: $ref: "#/components/responses/Error" # EXTERNAL WALLETS /external_wallets: get: summary: List external wallets description: Gets a list of external wallets under the workspace. tags: - External wallets x-readme: code-samples: - language: python code: externalWallets = fireblocks.get_external_wallets() name: Fireblocks SDK Python example - language: javascript code: const externalWallets = await fireblocks.getExternalWallets(); name: Fireblocks SDK Javascript example responses: "200": description: A list of external wallets headers: *req-id-header content: "*/*": schema: type: array items: $ref: "#/components/schemas/UnmanagedWallet" default: $ref: "#/components/responses/Error" post: summary: Create an external wallet description: Creates a new external wallet with the requested name. tags: - External wallets x-readme: code-samples: - language: python code: externalWallet = fireblocks.create_external_wallet(name, customer_ref_id) name: Fireblocks SDK Python example - language: javascript code: const externalWallet = await fireblocks.createExternalWallet(name, customerRefId); name: Fireblocks SDK Javascript example responses: "200": description: A Wallet object headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/UnmanagedWallet" default: $ref: "#/components/responses/Error" requestBody: content: application/json: schema: properties: name: type: string description: the wallet's display name customerRefId: description: >- Optional - Sets a customer reference ID type: string "/external_wallets/{walletId}": get: summary: Find an external wallet description: Returns an external wallet by ID. tags: - External wallets x-readme: code-samples: - language: python code: externalWallet = fireblocks.get_external_wallet(walletId) name: Fireblocks SDK Python example - language: javascript code: const externalWallet = await fireblocks.getExternalWallet(walletId); name: Fireblocks SDK Javascript example parameters: - in: path name: walletId required: true description: The ID of the wallet to return schema: type: string minimum: 1 responses: "200": description: A Wallet object headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/UnmanagedWallet" default: $ref: "#/components/responses/Error" delete: summary: Delete an external wallet description: Deletes an external wallet by ID. tags: - External wallets x-readme: code-samples: - language: python code: result = firebocks.delete_external_wallet(walletId) name: Fireblocks SDK Python example - language: javascript code: const result = await fireblocks.deleteExternalWallet(walletId); name: Fireblocks SDK Javascript example parameters: - in: path name: walletId required: true description: The ID of the wallet to delete schema: type: string minimum: 1 responses: "201": description: OK headers: *req-id-header default: $ref: "#/components/responses/Error" "/external_wallets/{walletId}/set_customer_ref_id": post: summary: Set an AML customer reference ID for an external wallet description: Sets an AML/KYT customer reference ID for the specific external wallet. tags: - External wallets x-readme: code-samples: - language: python code: result = firebocks.set_customer_ref_id_for_external_wallet(wallet_id, customer_ref_id) name: Fireblocks SDK Python example - language: javascript code: const result = await fireblocks.setCustomerRefIdForExternalWallet(walletId, customerRefId); name: Fireblocks SDK Javascript example parameters: - in: path name: walletId required: true description: The wallet ID schema: type: string minimum: 1 requestBody: required: true content: application/json: schema: properties: customerRefId: description: Customer reference ID type: string responses: "201": description: OK headers: *req-id-header default: $ref: "#/components/responses/Error" "/external_wallets/{walletId}/{assetId}": get: summary: Get an asset from an external wallet description: Returns an external wallet by wallet ID and asset ID. tags: - External wallets x-readme: code-samples: - language: python code: externalWalletAsset = fireblocks.get_external_wallet_asset(walletId, assetId) name: Fireblocks SDK Python example - language: javascript code: const externalWalletAsset = fireblocks.getExternalWalletAsset(walletId, assetId) name: Fireblocks SDK Javascript example parameters: - in: path name: walletId required: true description: The ID of the wallet schema: type: string minimum: 1 - in: path name: assetId required: true description: The ID of the asset to return schema: type: string minimum: 1 x-fb-entity: asset responses: "200": description: A Wallet Asset object headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/ExternalWalletAsset" default: $ref: "#/components/responses/Error" post: summary: Add an asset to an external wallet. description: Adds an asset to an existing external wallet. tags: - External wallets x-readme: code-samples: - language: python code: externalWalletAsset = fireblocks.create_external_wallet_asset(walletId, assetId, address, tag) name: Fireblocks SDK Python example - language: javascript code: const externalWalletAsset = await fireblocks.createExternalWalletAsset(walletContainerId, assetId, address, tag); name: Fireblocks SDK Javascript example parameters: - in: path name: walletId required: true description: The ID of the wallet schema: type: string - in: path name: assetId required: true description: The ID of the asset to add schema: type: string x-fb-entity: asset responses: "200": description: A Wallet Asset object headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/ExternalWalletAsset" default: $ref: "#/components/responses/Error" requestBody: content: application/json: schema: oneOf: - properties: address: type: string description: The wallet's address (or xpub) of the wallet tag: type: string description: For XRP wallets, the destination tag; for EOS/XLM, the memo; for the fiat providers (BLINC by BCB Group), the Bank Transfer Description required: - address - properties: additionalInfo: type: object oneOf: - properties: accountHolderGivenName: type: string accountHolderSurname: type: string accountHolderCity: type: string accountHolderCountry: type: string accountHolderAddress1: type: string accountHolderAddress2: type: string accountHolderDistrict: type: string accountHolderPostalCode: type: string iban: type: string ibanCity: type: string ibanCountry: type: string required: - accountHolderGivenName - accountHolderCity - accountHolderCountry - accountHolderAddress1 - accountHolderPostalCode - iban - ibanCity - ibanCountry - properties: accountHolderGivenName: type: string accountHolderSurname: type: string accountHolderCity: type: string accountHolderCountry: type: string accountHolderAddress1: type: string accountHolderAddress2: type: string accountHolderDistrict: type: string accountHolderPostalCode: type: string abaRoutingNumber: type: string abaAccountNumber: type: string abaCountry: type: string required: - accountHolderGivenName - accountHolderCity - accountHolderCountry - accountHolderAddress1 - accountHolderPostalCode - abaRoutingNumber - abaAccountNumber - abaCountry - properties: speiClabe: type: string speiName: type: string required: - speiClabe required: - additionalInfo delete: summary: Delete an asset from an external wallet description: Deletes an external wallet asset by ID. tags: - External wallets x-readme: code-samples: - language: python code: result = fireblocks.delete_external_wallet_asset(walletId, assetId) name: Fireblocks SDK Python example - language: javascript code: const result = await fireblocks.deleteExternalWalletAsset(walletId, assetId); name: Fireblocks SDK Javascript example parameters: - in: path name: walletId required: true description: The ID of the wallet schema: type: string minimum: 1 - in: path name: assetId required: true description: The ID of the asset to delete schema: type: string minimum: 1 x-fb-entity: asset responses: "201": description: OK headers: *req-id-header default: $ref: "#/components/responses/Error" # CONTRACTS /contracts: get: summary: List contracts description: Gets a list of contracts. tags: - Contracts responses: "200": description: A list of contracts headers: *req-id-header content: "*/*": schema: type: array items: $ref: "#/components/schemas/UnmanagedWallet" default: $ref: "#/components/responses/Error" post: summary: Create a contract description: Creates a new contract. tags: - Contracts responses: "200": description: A Wallet object headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/UnmanagedWallet" default: $ref: "#/components/responses/Error" requestBody: content: application/json: schema: properties: name: type: string description: the contract's display name "/contracts/{contractId}": get: summary: Find a specific contract description: Returns a contract by ID. tags: - Contracts parameters: - in: path name: contractId required: true description: The ID of the contract to return schema: type: string minimum: 1 responses: "200": description: A Wallet object headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/UnmanagedWallet" default: $ref: "#/components/responses/Error" delete: summary: Delete a contract description: Deletes a contract by ID. tags: - Contracts parameters: - in: path name: contractId required: true description: The ID of the contract to delete schema: type: string minimum: 1 responses: "201": description: OK headers: *req-id-header default: $ref: "#/components/responses/Error" "/contracts/{contractId}/{assetId}": get: summary: Find a contract asset description: Returns a contract asset by ID. tags: - Contracts parameters: - in: path name: contractId required: true description: The ID of the contract schema: type: string minimum: 1 - in: path name: assetId required: true description: The ID of the asset to return schema: type: string minimum: 1 x-fb-entity: asset responses: "200": description: A Wallet Asset object headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/ExternalWalletAsset" default: $ref: "#/components/responses/Error" post: summary: Add an asset to a contract description: Adds an asset to an existing contract. tags: - Contracts parameters: - in: path name: contractId required: true description: The ID of the contract schema: type: string - in: path name: assetId required: true description: The ID of the asset to add schema: type: string x-fb-entity: asset responses: "200": description: A Wallet Asset object headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/ExternalWalletAsset" default: $ref: "#/components/responses/Error" requestBody: content: application/json: schema: properties: address: type: string description: The contract's address (or xpub) of the wallet tag: type: string description: The destination tag, for XRP wallets required: - address delete: summary: Delete a contract asset description: Deletes a contract asset by ID. tags: - Contracts parameters: - in: path name: contractId required: true description: The ID of the contract schema: type: string minimum: 1 - in: path name: assetId required: true description: The ID of the asset to delete schema: type: string minimum: 1 x-fb-entity: asset responses: "201": description: OK headers: *req-id-header default: $ref: "#/components/responses/Error" # SUPPORTED ASSETS "/supported_assets": get: summary: List all assets and assets types supported by Fireblocks description: Returns all assets and assets types supported by Fireblocks. tags: - Blockchains & assets x-readme: code-samples: - language: python code: supportedAssets = fireblocks.get_supported_assets() name: Fireblocks SDK Python example - language: javascript code: const supportedAssets = await fireblocks.getSupportedAssets(); name: Fireblocks SDK Javascript example responses: "200": description: Supported Assets headers: *req-id-header content: "*/*": schema: type: array items: $ref: "#/components/schemas/AssetTypeResponse" default: $ref: "#/components/responses/Error" "/assets": post: operationId: registerNewAsset summary: Register an asset description: Register a new asset to a workspace and return the newly created asset's details. Currently supported for EVM based chains only. tags: - Blockchains & assets x-readme: code-samples: - language: python code: supportedAssets = fireblocks.register_new_asset(blockchainId, address, symbol) name: Fireblocks SDK Python example - language: javascript code: const supportedAssets = await fireblocks.registerNewAsset(blockchainId, address, symbol); name: Fireblocks SDK Javascript example responses: "200": description: A new asset has been created successfully content: application/json: schema: $ref: "#/components/schemas/AssetResponse" "400": description: | - Listing an asset on the requested blockchain is not supported. Error code: 1004 - The asset address is invalid. Error code: 1003 content: application/json: schema: $ref: "#/components/schemas/AssetBadRequestErrorResponse" "403": description: | - The asset creation quota reached. Error code: 1005 content: application/json: schema: $ref: "#/components/schemas/AssetForbiddenErrorResponse" "404": description: | - Invalid address, could not get asset information. Error code 1003 content: application/json: schema: $ref: "#/components/schemas/AssetNotFoundErrorResponse" "409": description: | - The asset is already supported globally. Error code: 1002 - The asset has already been added to this workspace. Error code: 1001 content: application/json: schema: $ref: "#/components/schemas/AssetConflictErrorResponse" "500": description: Failed to create asset content: application/json: schema: $ref: "#/components/schemas/AssetInternalServerErrorResponse" requestBody: content: application/json: schema: $ref: "#/components/schemas/RegisterNewAssetRequest" "/estimate_network_fee": get: summary: Estimate the required fee for an asset description: Gets the estimated required fee for an asset. For UTXO based assets, the response will contain the suggested fee per byte, for ETH/ETC based assets, the suggested gas price, and for XRP/XLM, the transaction fee. tags: - Blockchains & assets x-readme: code-samples: - language: python code: fee_result = fireblocks.get_fee_for_asset(asset_id) name: Fireblocks SDK Python example - language: javascript code: const feeResult = await fireblocks.getFeeForAsset(assetId); name: Fireblocks SDK Javascript example parameters: - in: query name: assetId description: >- The asset for which to estimate the fee required: true schema: type: string x-fb-entity: asset responses: "200": description: Estimated fees response headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/EstimatedNetworkFeeResponse" default: $ref: "#/components/responses/Error" "/transactions/validate_address/{assetId}/{address}": get: summary: Validate destination address description: Checks if an address is valid (for XRP, DOT, XLM, and EOS). tags: - Blockchains & assets x-readme: code-samples: - language: python code: const result = await fireblocks.validate_address(assetID, address) name: Fireblocks SDK Python example - language: javascript code: const result = await fireblocks.validateAddress(assetID, address) name: Fireblocks SDK Javascript example parameters: - in: path name: assetId required: true description: The asset of the address schema: type: string x-fb-entity: asset - in: path name: address required: true description: The address to validate schema: type: string responses: "200": description: An Transaction object headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/ValidateAddressResponse" default: $ref: "#/components/responses/Error" # TRANSACTIONS /transactions: get: summary: List transaction history description: Lists the transaction history for your workspace. tags: - Transactions x-readme: code-samples: - language: python code: transactions = fireblocks.get_transactions(status, after) name: Fireblocks SDK Python example - language: javascript code: > const transactions = await fireblocks.getTransactions({ status: args.status, after: from }); name: Fireblocks SDK Javascript example parameters: - in: query name: before description: >- Unix timestamp in milliseconds. Returns only transactions created before the specified date required: false schema: type: string - in: query name: after description: >- Unix timestamp in milliseconds. Returns only transactions created after the specified date required: false schema: type: string - in: query name: status description: >- You can filter by one of the statuses. required: false schema: type: string - in: query name: orderBy description: >- The field to order the results by **Note**: Ordering by a field that is not createdAt may result with transactions that receive updates as you request the next or previous pages of results, resulting with missing those transactions. required: false schema: type: string enum: - createdAt - lastUpdated - in: query name: sort description: The direction to order the results by required: false schema: type: string enum: - ASC - DESC - in: query name: limit description: >- Limits the number of results. If not provided, a limit of 200 will be used. The maximum allowed limit is 500 required: false schema: type: integer minimum: 1 default: 200 - in: query name: sourceType description: The source type of the transaction required: false schema: type: string enum: - VAULT_ACCOUNT - EXCHANGE_ACCOUNT - INTERNAL_WALLET - EXTERNAL_WALLET - FIAT_ACCOUNT - NETWORK_CONNECTION - COMPOUND - UNKNOWN - GAS_STATION - END_USER_WALLET - in: query name: sourceId description: The source ID of the transaction required: false schema: type: string - in: query name: destType description: The destination type of the transaction required: false schema: type: string enum: - VAULT_ACCOUNT - EXCHANGE_ACCOUNT - INTERNAL_WALLET - EXTERNAL_WALLET - FIAT_ACCOUNT - NETWORK_CONNECTION - COMPOUND - ONE_TIME_ADDRESS - END_USER_WALLET - in: query name: destId description: The destination ID of the transaction required: false schema: type: string - in: query name: assets description: A list of assets to filter by, seperated by commas required: false schema: type: string - in: query name: txHash description: Returns only results with a specified txHash required: false schema: type: string - in: query name: sourceWalletId description: Returns only results where the source is a specific end user wallet required: false schema: type: string - in: query name: destWalletId description: Returns only results where the destination is a specific end user wallet required: false schema: type: string responses: "200": description: A list of transactions headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" next-page: $ref: "#/components/headers/next-page" prev-page: $ref: "#/components/headers/prev-page" content: "*/*": schema: type: array items: $ref: "#/components/schemas/TransactionResponse" default: $ref: "#/components/responses/Error" post: summary: Create a new transaction description: | Creates a new transaction. This endpoint can be used for regular Transfers, Contract Calls, Raw & Typed message signing. - For Transfers, the required parameters are: `assetId`, `source`, `destination` and `amount`. - For Contract Calls, the required parameters are: `operation.CONTRACT_CALL`, `assetId` (Base Asset), `source`, `destination`, `amount` (usually 0) and `extraParameters` object with `contractCallData` string. - For RAW and Typed messages signing, the required parameters are: `operation.RAW/TYPED_MESSAGE`, `assetId` or `derivationPath`, `source` or `derivationPath`, `extraParameters` with [rawMessageData object](https://developers.fireblocks.com/reference/raw-signing-objects). - Typed Message Signing is supported for the following asset IDs: 'ETH', 'BTC' and 'TRX'. [Typed Message Signing Guide](https://developers.fireblocks.com/docs/typed-message-signing-overview). tags: - Transactions parameters: - in: header $ref: "#/components/parameters/X-End-User-Wallet-Id" x-readme: code-samples: - language: python code: > tx_result = fireblocks.create_transaction( asset_id="BTC", amount="50", source=TransferPeerPath(VAULT_ACCOUNT, from_vault_account_id), destination=DestinationTransferPeerPath(VAULT_ACCOUNT, to_vault_account_id) ) name: Fireblocks SDK Python example - language: javascript code: > const payload: TransactionArguments = { assetId: asset, source: { type: sourceType, id: sourceId || 0 }, destination: { type: destinationType, id: String(destinationId) }, amount: String(amount), fee: String(fee), note: "Created by fireblocks SDK" }; const result = await fireblocks.createTransaction(payload); name: Fireblocks SDK Javascript example responses: "200": description: A transaction object headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/CreateTransactionResponse" default: $ref: "#/components/responses/Error" requestBody: content: application/json: schema: $ref: "#/components/schemas/TransactionRequest" "/transactions/estimate_fee": post: summary: Estimate transaction fee description: | Estimates the transaction fee for a transaction request. ***Note:*** -Supports all Fireblocks assets except ZCash (ZEC). -For XEM and Chiliz assets, 0 will be returned for all three fee levels, as there is no gas or tip price on these blockchains. You can use the POST /v1/transactions/estimate_fee to see what the exact fee will be for a transaction on this network. tags: - Transactions x-readme: code-samples: - language: python code: > estimated_fee = fireblocks.estimate_fee_for_transaction( asset_id="BTC", amount="50", source=TransferPeerPath(VAULT_ACCOUNT, from_vault_account_id), destination=DestinationTransferPeerPath(VAULT_ACCOUNT, to_vault_account_id) ) name: Fireblocks SDK Python example - language: javascript code: > const payload = { assetId: asset, source: { type: sourceType, id: sourceId || 0 }, destination: { type: destinationType, id: destinationId }, amount }; const estimatedFee = await fireblocks.estimateFeeForTransaction(payload); name: Fireblocks SDK Javascript example requestBody: content: application/json: schema: $ref: "#/components/schemas/EstimatedFeeRequest" responses: "200": description: Estimated fees response headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/EstimatedTransactionFeeResponse" default: $ref: "#/components/responses/Error" "/transactions/{txId}": get: summary: Find a specific transaction by Fireblocks transaction ID description: Returns a transaction by ID. tags: - Transactions x-readme: code-samples: - language: python code: tx = fireblocks.get_transaction_by_id(txId) name: Fireblocks SDK Python example - language: javascript code: const tx = await fireblocks.getTransactionById(txId); name: Fireblocks SDK Javascript example parameters: - in: path name: txId required: true example: 00000000-0000-0000-0000-000000000000 description: The ID of the transaction to return schema: type: string minimum: 1 responses: "200": description: An Transaction object headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/TransactionResponse" "400": $ref: "#/components/responses/Error" default: $ref: "#/components/responses/Error" "/transactions/external_tx_id/{externalTxId}/": get: summary: Find a specific transaction by external transaction ID description: Returns transaction by external transaction ID. tags: - Transactions x-readme: code-samples: - language: python code: tx = fireblocks.get_transaction_by_external_tx_id(externalTxId) name: Fireblocks SDK Python example - language: javascript code: const tx = await fireblocks.getTransactionByExternalTxId(externalTxId); name: Fireblocks SDK Javascript example parameters: - in: path name: externalTxId example: 00000000-0000-0000-0000-000000000000 required: true description: The external ID of the transaction to return schema: type: string minimum: 1 responses: "200": description: An Transaction object headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/TransactionResponse" default: $ref: "#/components/responses/Error" "/transactions/{txId}/set_confirmation_threshold": post: summary: Set confirmation threshold by transaction ID description: Overrides the required number of confirmations for transaction completion by transaction ID. tags: - Transactions x-readme: code-samples: - language: python code: set_conf_threshold = fireblocks.set_confirmation_threshold_for_tx_id(body) name: Fireblocks SDK Python example - language: javascript code: const setConfThreshold = await fireblocks.setConfirmationThresholdForTxId(body); name: Fireblocks SDK Javascript example requestBody: content: application/json: schema: $ref: "#/components/schemas/SetConfirmationsThresholdRequest" parameters: - in: path name: txId required: true description: The ID of the transaction schema: type: string minimum: 1 responses: "200": description: Set successfully headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/SetConfirmationsThresholdResponse" default: $ref: "#/components/responses/Error" "/transactions/{txId}/drop": post: summary: Drop ETH transaction by ID description: Drops a stuck ETH transaction and creates a replacement transaction. tags: - Transactions x-readme: code-samples: - language: python code: result = fireblocks.drop_transaction(txId, fee_level) name: Fireblocks SDK Python example - language: javascript code: const result = await fireblocks.dropTransaction(txId, feeLevel); name: Fireblocks SDK Javascript example requestBody: content: application/json: schema: $ref: "#/components/schemas/DropTransactionRequest" parameters: - in: header $ref: "#/components/parameters/X-End-User-Wallet-Id" - in: path name: txId required: true description: The ID of the transaction schema: type: string minimum: 1 responses: "200": description: Created successfully headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/DropTransactionResponse" default: $ref: "#/components/responses/Error" "/transactions/{txId}/cancel": post: summary: Cancel a transaction description: Cancels a transaction by ID. tags: - Transactions x-readme: code-samples: - language: python code: result = fireblocks.cancel_transaction_by_id(txId) name: Fireblocks SDK Python example - language: javascript code: const result = await fireblocks.cancelTransactionById(txId); name: Fireblocks SDK Javascript example parameters: - in: header $ref: "#/components/parameters/X-End-User-Wallet-Id" - in: path name: txId required: true description: The ID of the transaction to cancel schema: type: string minimum: 1 responses: "200": description: An Transaction object headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/CancelTransactionResponse" default: $ref: "#/components/responses/Error" "/transactions/{txId}/freeze": post: summary: Freeze a transaction description: Freezes a transaction by ID. tags: - Transactions x-readme: code-samples: - language: python code: result = fireblocks.freeze_transaction_by_id(txId) name: Fireblocks SDK Python example - language: javascript code: const result = await fireblocks.freezeTransactionById(txId); name: Fireblocks SDK Javascript example parameters: - in: header $ref: "#/components/parameters/X-End-User-Wallet-Id" - in: path name: txId required: true description: The ID of the transaction to freeze schema: type: string minimum: 1 responses: "200": description: freeze response headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/FreezeTransactionResponse" "/transactions/{txId}/unfreeze": post: summary: Unfreeze a transaction description: Unfreezes a transaction by ID and makes the transaction available again. tags: - Transactions x-readme: code-samples: - language: python code: result = fireblocks.unfreeze_transaction_by_id(txId) name: Fireblocks SDK Python example - language: javascript code: const result = await fireblocks.unfreezeTransactionById(txId); name: Fireblocks SDK Javascript example parameters: - in: header $ref: "#/components/parameters/X-End-User-Wallet-Id" - in: path name: txId required: true description: The ID of the transaction to unfreeze schema: type: string minimum: 1 responses: "200": description: Unfreeze response headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/UnfreezeTransactionResponse" # TXHASH "/txHash/{txHash}/set_confirmation_threshold": post: summary: Set confirmation threshold by transaction hash description: Overrides the required number of confirmations for transaction completion by transaction hash. tags: - Transactions x-readme: code-samples: - language: python code: set_conf_threshold = fireblocks.set_confirmation_threshold_for_txhash(body) name: Fireblocks SDK Python example - language: javascript code: const setConfThreshold = await fireblocks.setConfirmationThresholdForTxHash(body); name: Fireblocks SDK Javascript example requestBody: content: application/json: schema: $ref: "#/components/schemas/SetConfirmationsThresholdRequest" parameters: - in: path name: txHash required: true description: The TxHash schema: type: string minimum: 1 responses: "200": description: A list of transactions affected by the change headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/SetConfirmationsThresholdResponse" default: $ref: "#/components/responses/Error" # Payments #cross-border "/payments/xb-settlements/configs": post: tags: - Payments - cross-border settlement summary: Create a new cross-border settlement configuration description: | Create a new cross-border settlement configuration.
Configurations define the default assets, on-ramps, and off-ramps to use for the cross-border settlement.
A configuration must contain at least two steps - `ON_RAMP` and `VAULT_ACCOUNT`.
All other steps (e.g., `OFF_RAMP`, `FIAT_DESTINATION`, etc.) are optional.
Every step must include the `accountId` to be used, while `inputAssetId` and `outputAssetId` are optional. If those are not provided, a default value will be used from the Corridor Settings.
If the inputAssetId or the outputAssetId is provided for one of the objects, all assets in the objects must be consistent. For example, if the output asset of ON_RAMP is XLM_USDC_5F3T, then the input asset of the VAULT_ACCOUNT must also be XLM_USDC_5F3T..
You can set a slippage amount for your configuration. Slippage is defined by basis points (bps). This value can be overloaded on execution. If you do not configure a slippage amount, the default slippage of 10000 bps (10%) is used.
**Note:** The reference content in this section documents the Payments Engine endpoint. The Payments Engine endpoint includes APIs available only for customers with the Payments Engine enabled on their accounts. These endpoints are currently in beta and might be subject to changes. If you want to learn more about the Fireblocks Payments Engine, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. requestBody: content: application/json: schema: $ref: "#/components/schemas/XBSettlementConfigCreationRequestBody" example: name: Flow Config Example corridorId: CO_US steps: ON_RAMP: accountId: 3b7a1451-3453-4c96-a6a5-683cc8971d04 VAULT_ACCOUNT: accountId: "2" OFF_RAMP: accountId: f2f74204-93ec-4614-870a-4ea2ad13aa0b conversionSlippageBasisPoints: 75 responses: "200": description: Cross-border settlement configuration created successfully content: application/json: schema: $ref: "#/components/schemas/XBSettlementConfigCreationResponse" example: configId: 074791cc-ef32-4920-8373-95efbeea66c5 corridorId: CO_US name: Flow Config Example steps: ON_RAMP: accountId: 3b7a1451-3453-4c96-a6a5-683cc8971d04 inputAssetId: "COP" outputAssetId: "USD" VAULT_ACCOUNT: accountId: "2" inputAssetId: XLM_USDC_5F3T outputAssetId: XLM_USDC_5F3T OFF_RAMP: accountId: f2f74204-93ec-4614-870a-4ea2ad13aa0b inputAssetId: XLM_USDC_5F3T outputAssetId: XLM_USDC_5F3T conversionSlippageBasisPoints: 75 createdAt: 1680625226267 "400": description: Error creating cross-border request content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "401": description: Unauthorized. Missing / invalid JWT token in Authorization header. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" 5XX: description: Internal error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" get: tags: - Payments - cross-border settlement summary: Get all the cross-border settlement configurations description: | Get all the cross-border settlement configurations.
**Note:** The reference content in this section documents the Payments Engine endpoint. The Payments Engine endpoint includes APIs available only for customers with the Payments Engine enabled on their accounts. These endpoints are currently in beta and might be subject to changes. If you want to learn more about the Fireblocks Payments Engine, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. responses: "200": description: Returns all the cross-border settlement configurations content: application/json: schema: $ref: "#/components/schemas/XBSettlementGetAllConfigsResponse" example: configurations: - configId: 074791cc-ef32-4920-8373-95efbeea66c5 corridorId: CO_US name: Flow Config Example steps: ON_RAMP: accountId: 3b7a1451-3453-4c96-a6a5-683cc8971d04 inputAssetId: COP outputAssetId: USD VAULT_ACCOUNT: accountId: "2" inputAssetId: XLM_USDC_5F3T outputAssetId: XLM_USDC_5F3T OFF_RAMP: accountId: f2f74204-93ec-4614-870a-4ea2ad13aa0b inputAssetId: XLM_USDC_5F3T outputAssetId: XLM_USDC_5F3T conversionSlippageBasisPoints: 75 createdAt: 1680625226267 - configId: a4b0a706-4578-4467-bd5b-a852761dd2aa corridorId: MX_US name: MX to US flow steps: ON_RAMP: accountId: 3d6241ad-879b-4a11-842f-4cee9cd7fbba inputAssetId: MXN outputAssetId: USD VAULT_ACCOUNT: accountId: "1" inputAssetId: XLM_USDC_5F3T outputAssetId: XLM_USDC_5F3T OFF_RAMP: accountId: 1cf7f750-117f-4c36-b4ef-14c420d118ce inputAssetId: XLM_USDC_5F3T outputAssetId: XLM_USDC_5F3T conversionSlippageBasisPoints: 10 createdAt: 1665166171134 "401": description: Unauthorized. Missing / invalid JWT token in Authorization header. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" 5XX: description: Internal error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "/payments/xb-settlements/configs/{configId}": get: tags: - Payments - cross-border settlement summary: Get a specific cross-border settlement configuration description: | Get a specific cross-border settlement configuration.
**Note:** The reference content in this section documents the Payments Engine endpoint. The Payments Engine endpoint includes APIs available only for customers with the Payments Engine enabled on their accounts. These endpoints are currently in beta and might be subject to changes. If you want to learn more about the Fireblocks Payments Engine, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. parameters: - in: path name: configId required: true description: The cross-border settlement configuration ID. schema: type: string example: 074791cc-ef32-4920-8373-95efbeea66c5 responses: "200": description: Returns the requested cross-border settlement configuration content: application/json: schema: $ref: "#/components/schemas/XBSettlementGetConfigResponse" example: configId: 074791cc-ef32-4920-8373-95efbeea66c5 corridorId: CO_US name: Flow Config Example steps: ON_RAMP: accountId: 3b7a1451-3453-4c96-a6a5-683cc8971d04 inputAssetId: COP outputAssetId: USD VAULT_ACCOUNT: accountId: "2" inputAssetId: XLM_USDC_5F3T outputAssetId: XLM_USDC_5F3T OFF_RAMP: accountId: f2f74204-93ec-4614-870a-4ea2ad13aa0b inputAssetId: XLM_USDC_5F3T outputAssetId: XLM_USDC_5F3T conversionSlippageBasisPoints: 75 createdAt: 1680625226267 "404": description: No cross-border settlement configuration exists with the provided ID. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "401": description: Unauthorized. Missing / invalid JWT token in Authorization header. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" 5XX: description: Internal error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" put: tags: - Payments - cross-border settlement summary: Edit a cross-border settlement configuration description: | Edit a cross-border settlement configuration. Editing a configuration does not affect previously executed flows that used the configuration. **Note:** The reference content in this section documents the Payments Engine endpoint. The Payments Engine endpoint includes APIs available only for customers with the Payments Engine enabled on their accounts. These endpoints are currently in beta and might be subject to changes. If you want to learn more about the Fireblocks Payments Engine, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. parameters: - in: path name: configId required: true description: The cross-border settlement configuration ID. schema: type: string example: 074791cc-ef32-4920-8373-95efbeea66c5 requestBody: content: application/json: schema: $ref: "#/components/schemas/XBSettlementConfigEditRequestBody" example: name: Flow Config Example - Edited steps: ON_RAMP: accountId: e9dec04a-3c57-4052-a89a-288c545f6430 VAULT_ACCOUNT: accountId: "2" OFF_RAMP: accountId: f2f74204-93ec-4614-870a-4ea2ad13aa0b corridorId: CO_US conversionSlippageBasisPoints: 30 responses: "200": description: Cross-border settlement configuration edited successfully content: application/json: schema: $ref: "#/components/schemas/XBSettlementConfigEditResponse" example: configId: 074791cc-ef32-4920-8373-95efbeea66c5 corridorId: CO_US name: Flow Config Example - Edited steps: ON_RAMP: accountId: e9dec04a-3c57-4052-a89a-288c545f6430 inputAssetId: COP outputAssetId: USD VAULT_ACCOUNT: accountId: "2" inputAssetId: XLM_USDC_5F3T outputAssetId: XLM_USDC_5F3T OFF_RAMP: accountId: f2f74204-93ec-4614-870a-4ea2ad13aa0b inputAssetId: XLM_USDC_5F3T outputAssetId: XLM_USDC_5F3T conversionSlippageBasisPoints: 30 createdAt: 1680625226267 "404": description: No cross-border settlement configuration exists with the provided ID. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "400": description: Error creating the cross-border request. Configuration not modified. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "401": description: Unauthorized. Missing / invalid JWT token in Authorization header. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" 5XX: description: Internal error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" delete: tags: - Payments - cross-border settlement parameters: - in: path name: configId required: true description: The cross-border settlement configuration ID. schema: type: string example: 074791cc-ef32-4920-8373-95efbeea66c5 summary: Delete a cross-border settlement configuration description: | Delete a cross-border settlement configuration. This does not delete or remove previously executed flows that used this configuration. **Note:** The reference content in this section documents the Payments Engine endpoint. The Payments Engine endpoint includes APIs available only for customers with the Payments Engine enabled on their accounts. These endpoints are currently in beta and might be subject to changes. If you want to learn more about the Fireblocks Payments Engine, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. responses: "200": description: Cross-border settlement configuration deleted successfully. Returns the deleted configuration. content: application/json: schema: $ref: "#/components/schemas/XBSettlementConfigDeletionResponse" example: configId: 074791cc-ef32-4920-8373-95efbeea66c5 corridorId: CO_US name: Flow Config Example - Edited steps: ON_RAMP: accountId: e9dec04a-3c57-4052-a89a-288c545f6430 inputAssetId: COP outputAssetId: USD VAULT_ACCOUNT: accountId: "2" inputAssetId: XLM_USDC_5F3T outputAssetId: XLM_USDC_5F3T OFF_RAMP: accountId: f2f74204-93ec-4614-870a-4ea2ad13aa0b inputAssetId: XLM_USDC_5F3T outputAssetId: XLM_USDC_5F3T conversionSlippageBasisPoints: 30 createdAt: 1680625226267 "404": description: No cross-border settlement configuration exists with the provided ID. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "401": description: Unauthorized. Missing / invalid JWT token in Authorization header. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" 5XX: description: Internal error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "/payments/xb-settlements/flows": post: tags: - Payments - cross-border settlement summary: Create a new cross-border settlement flow description: | Create a cross-border flow (based on a cross-border configuration) with an amount to transfer. The assetId is defined by the cross-border configuration. Creating a flow triggers a calculation of the flow estimations, including FX rates, times, and fees based on the amount provided. Creating a cross-border flow will not execute the flow. **Note:** The reference content in this section documents the Payments Engine endpoint. The Payments Engine endpoint includes APIs available only for customers with the Payments Engine enabled on their accounts. These endpoints are currently in beta and might be subject to changes. If you want to learn more about the Fireblocks Payments Engine, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. requestBody: content: application/json: schema: $ref: "#/components/schemas/XBSettlementCreateFlowRequestBody" example: configId: a4b0a706-4578-4467-bd5b-a852761dd2aa amount: "100" responses: "200": description: Cross-border settlement flow created successfully content: application/json: schema: $ref: "#/components/schemas/XBSettlementCreateFlowResponse" example: flowId: 98fb5a8b-65ff-4f15-b89c-80910aedbfb3 configId: a4b0a706-4578-4467-bd5b-a852761dd2aa conversionRate: "0.05481268" inputAmount: amount: "100" assetId: MXN estimatedOutputAmount: amount: "5.461268" assetId: XLM_USDC_5F3T totalEstimatedFee: amount: "0.063503" assetId: XLM_USDC_5F3T steps: ON_RAMP: accountId: 3d6241ad-879b-4a11-842f-4cee9cd7fbba inputAmount: amount: "100" assetId: MXN outputAmount: amount: "5.48126865" assetId: USD estimatedFeeAmount: amount: "0.043503" assetId: USD estimatedTime: 10 isSignRequired: false VAULT_ACCOUNT: accountId: "1" inputAmount: amount: "5.48126865" assetId: USD outputAmount: amount: "5.471268" assetId: XLM_USDC_5F3T estimatedFeeAmount: amount: "0.01" assetId: XLM_USDC_5F3T estimatedTime: 63 isSignRequired: true OFF_RAMP: accountId: 1cf7f750-117f-4c36-b4ef-14c420d118ce inputAmount: amount: "5.471268" assetId: XLM_USDC_5F3T outputAmount: amount: "5.461268" assetId: XLM_USDC_5F3T estimatedFeeAmount: amount: "0.01" assetId: XLM_USDC_5F3T estimatedTime: 95 isSignRequired: true totalEstimatedTime: 696 "400": description: Unable to create cross-border flow, invalid configuration ID. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "401": description: Unauthorized. Missing / invalid JWT token in Authorization header. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" 5XX: description: Internal error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "/payments/xb-settlements/flows/{flowId}": get: tags: - Payments - cross-border settlement parameters: - in: path name: flowId required: true description: The cross-border settlement flow ID. schema: type: string example: 98fb5a8b-65ff-4f15-b89c-80910aedbfb3 summary: Get specific cross-border settlement flow details description: | Gets details for a specific cross-border settlement flow **Note:** The reference content in this section documents the Payments Engine endpoint. The Payments Engine endpoint includes APIs available only for customers with the Payments Engine enabled on their accounts. These endpoints are currently in beta and might be subject to changes. If you want to learn more about the Fireblocks Payments Engine, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. responses: "200": description: | Returns cross-border settlement flow details. For unexecuted flows, a preview object will return, showing the estimated time, amounts, and fees. Note that this data structure updates as the flow progresses, including the total fees (accumulated), state, and steps. content: application/json: schema: $ref: "#/components/schemas/XBSettlementGetFlowResponse" examples: not executed: value: preview: flowId: 98fb5a8b-65ff-4f15-b89c-80910aedbfb3 configId: a4b0a706-4578-4467-bd5b-a852761dd2aa conversionRate: "0.055369" inputAmount: amount: "32" assetId: MXN estimatedOutputAmount: amount: "1.741824" assetId: XLM_USDC_5F3T totalEstimatedFee: amount: "0.044063" assetId: XLM_USDC_5F3T totalEstimatedTime: 831 steps: ON_RAMP: accountId: 3d6241ad-879b-4a11-842f-4cee9cd7fbba inputAmount: amount: "32" assetId: MXN outputAmount: amount: "1.77182407" assetId: USD estimatedFeeAmount: amount: "0.014063" assetId: USD estimatedTime: 10 isSignRequired: false VAULT_ACCOUNT: accountId: "1" inputAmount: amount: "1.77182407" assetId: XLM_USDC_5F3T outputAmount: amount: "1.761824" assetId: XLM_USDC_5F3T estimatedFeeAmount: amount: "0.01" assetId: XLM_USDC_5F3T estimatedTime: 111 isSignRequired: true OFF_RAMP: accountId: 1cf7f750-117f-4c36-b4ef-14c420d118ce inputAmount: amount: "1.761824" assetId: XLM_USDC_5F3T outputAmount: amount: "1.751824" assetId: XLM_USDC_5F3T estimatedFeeAmount: amount: "0.01" assetId: XLM_USDC_5F3T estimatedTime: 293 isSignRequired: true in progress: value: execution: flowId: 98fb5a8b-65ff-4f15-b89c-80910aedbfb3 configId: a4b0a706-4578-4467-bd5b-a852761dd2aa inputAmount: amount: "32" assetId: MXN outputAmount: amount: "1.471824" assetId: XLM_USDC_5F3T totalFee: amount: "0.004415" assetId: XLM_USDC_5F3T initiatedAt: 1684919822759 initiatedBy: a92e87a0-5231-531e-a624-fb29c1283764 state: PROCESSING selectedConversionSlippage: basisPoints: 10 reason: FLOW steps: ON_RAMP: id: c1863abf-e7fa-4f3a-908a-bcd6381f7eb4 accountId: 3d6241ad-879b-4a11-842f-4cee9cd7fbba status: COMPLETED inputAmount: amount: "32" assetId: MXN outputAmount: amount: "1.77182407" assetId: USD fee: amount: "0.014063" assetId: USD startedAt: 1684919823052 completedAt: 1684919830456 isSignRequired: false VAULT_ACCOUNT: id: 2aa2634d-2bab-44ac-9b4e-36e2e4db5d49 accountId: "1" status: COMPLETED inputAmount: amount: "1.77182407" assetId: XLM_USDC_5F3T outputAmount: amount: "1.761824" assetId: XLM_USDC_5F3T fee: amount: "0.01" assetId: XLM startedAt: 1684919831385 completedAt: 1684920680227 isSignRequired: true OFF_RAMP: id: b221ed63-a05c-4e78-b2f2-205dcffeabda accountId: 1cf7f750-117f-4c36-b4ef-14c420d118ce status: PROCESSING inputAmount: amount: "1.761824" assetId: XLM_USDC_5F3T startedAt: 1684920681088 isSignRequired: true completed: value: execution: flowId: 98fb5a8b-65ff-4f15-b89c-80910aedbfb3 configId: a4b0a706-4578-4467-bd5b-a852761dd2aa inputAmount: amount: "32" assetId: MXN outputAmount: amount: "1.471824" assetId: XLM_USDC_5F3T totalFee: amount: "0.004415" assetId: XLM_USDC_5F3T initiatedAt: 1684919822759 initiatedBy: a92e87a0-5231-531e-a624-fb29c1283764 state: COMPLETED selectedConversionSlippage: basisPoints: 10 reason: FLOW steps: ON_RAMP: id: b1bec144-c4dd-4ff8-80ed-4204c83dd422 accountId: 3d6241ad-879b-4a11-842f-4cee9cd7fbba status: COMPLETED inputAmount: amount: "32" assetId: MXN outputAmount: amount: "1.77182407" assetId: USD fee: amount: "0.014063" assetId: USD startedAt: 1684919823052 completedAt: 1684919830456 isSignRequired: false VAULT_ACCOUNT: id: df7e0103-04cf-4508-9654-aa5e4b90dd50 accountId: "1" status: COMPLETED inputAmount: amount: "1.77182407" assetId: XLM_USDC_5F3T outputAmount: amount: "1.761824" assetId: XLM_USDC_5F3T fee: amount: "0.01" assetId: XLM startedAt: 1684919831385 completedAt: 1684920680227 isSignRequired: true OFF_RAMP: id: 34c2d597-271a-4c11-937a-3c246f5d39c2 accountId: 1cf7f750-117f-4c36-b4ef-14c420d118ce status: COMPLETED inputAmount: amount: "1.761824" assetId: XLM_USDC_5F3T outputAmount: amount: "1.761823" assetId: XLM_USDC_5F3T fee: amount: "0.00001" assetId: XLM startedAt: 1684920681088 completedAt: 1684921261453 isSignRequired: true "404": description: Invalid flowId. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "401": description: Unauthorized. Missing / invalid JWT token in Authorization header. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" 5XX: description: Internal error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "/payments/xb-settlements/flows/{flowId}/actions/execute": post: tags: - Payments - cross-border settlement parameters: - in: path name: flowId required: true description: The cross-border settlement flow ID. schema: type: string example: 98fb5a8b-65ff-4f15-b89c-80910aedbfb3 summary: Execute cross-border settlement flow description: | Send a payment flow with 'flowId' for execution. If a differet slippage configuraion is needed for this execution than configured in the flow configuration, the request body must define the desired slippage configuration for this execution. **Note:** The reference content in this section documents the Payments Engine endpoint. The Payments Engine endpoint includes APIs available only for customers with the Payments Engine enabled on their accounts. These endpoints are currently in beta and might be subject to changes. If you want to learn more about the Fireblocks Payments Engine, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. requestBody: content: application/json: schema: $ref: "#/components/schemas/XBSettlementFlowExecutionRequestBody" example: conversionSlippageBasisPoints: 10 responses: "200": description: Cross-border settlement flow started to execute successfully content: application/json: schema: $ref: "#/components/schemas/XBSettlementFlowExecutionResponse" example: flowId: 98fb5a8b-65ff-4f15-b89c-80910aedbfb3 configId: a4b0a706-4578-4467-bd5b-a852761dd2aa inputAmount: amount: "32" assetId: MXN outputAmount: amount: "1.471824" assetId: XLM_USDC_5F3T totalFee: amount: "0.004415" assetId: XLM_USDC_5F3T initiatedAt: 1684919822759 initiatedBy: a92e87a0-5231-531e-a624-fb29c1283764 state: PROCESSING selectedConversionSlippage: basisPoints: 10 reason: FLOW steps: ON_RAMP: id: c1863abf-e7fa-4f3a-908a-bcd6381f7eb4 accountId: 3d6241ad-879b-4a11-842f-4cee9cd7fbba status: COMPLETED inputAmount: amount: "32" assetId: MXN outputAmount: amount: "1.77182407" assetId: USD fee: amount: "0.014063" assetId: USD startedAt: 1684919823052 completedAt: 1684919830456 isSignRequired: false VAULT_ACCOUNT: id: 2aa2634d-2bab-44ac-9b4e-36e2e4db5d49 accountId: "1" status: PROCESSING inputAmount: amount: "1.77182407" assetId: XLM_USDC_5F3T outputAmount: amount: "1.761824" assetId: XLM_USDC_5F3T fee: amount: "0.01" assetId: XLM startedAt: 1684919831385 isSignRequired: true OFF_RAMP: id: b221ed63-a05c-4e78-b2f2-205dcffeabda accountId: 1cf7f750-117f-4c36-b4ef-14c420d118ce status: NOT_STARTED inputAmount: amount: "1.761824" assetId: XLM_USDC_5F3T isSignRequired: true "400": description: Error while trying to execute the cross-border flow content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "404": description: Invalid flowId. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "401": description: Unauthorized. Missing / invalid JWT token in Authorization header. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" 5XX: description: Internal error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" #Payout "/payments/payout": post: tags: - Payments - Payout description: | **Note:** The reference content in this section documents the Payments Engine endpoint. The Payments Engine endpoints include APIs available only for customers with Payments Engine enabled on their accounts.

These endpoints are currently in beta and might be subject to changes.

If you want to learn more about Fireblocks Payments Engine, please contact your Fireblocks Customer Success Manager or email CSM@fireblocks.com.

Create a payout instruction set.
A payout instruction set is a set of instructions for distributing payments from a single payment account to a list of payee accounts.
The instruction set defines:
  • the payment account and its account type (vault, exchange, or fiat).
  • the account type (vault account, exchange account, whitelisted address, network connection, fiat account, or merchant account), the amount, and the asset of payment for each payee account.
summary: Create a payout instruction set requestBody: content: application/json: schema: $ref: "#/components/schemas/CreatePayoutRequest" example: paymentAccount: id: EX_SUB3 type: EXCHANGE_ACCOUNT instructionSet: - payeeAccount: id: bef85a1c-b605-4b2e-bdb5-2d400f4d0bf3 type: EXTERNAL_WALLET amount: amount: "43" assetId: USDC - payeeAccount: id: 3adc1f92-e791-44a8-9aee-7f31c2108b78 type: NETWORK_CONNECTION amount: amount: "4423" assetId: USDC responses: "200": description: The payout instruction set creation succeeded and returns the generated instruction set with a unique payout IDThe payout ID will be used for executing the payout and checking the payout status. content: application/json: schema: $ref: "#/components/schemas/PayoutResponse" example: payoutId: 1fe3b61f-7e1f-4a19-aff0-4f0a524d44d7 paymentAccount: id: EX_SUB3 type: EXCHANGE_ACCOUNT createdAt: 1645365800 state: REQUESTED status: REGISTERED initMethod: API instructionSet: - id: 6ea4a016-536b-49af-b1a0-40b343ccf879 name: payee-wallet-name payeeAccount: id: bef85a1c-b605-4b2e-bdb5-2d400f4d0bf3 type: EXTERNAL_WALLET amount: amount: "43" assetId: USDC state: NOT_STARTED transactions: [] - id: e783a79b-6acc-4d18-885d-ed533cad8eeb name: payee-by-network payeeAccount: id: 3adc1f92-e791-44a8-9aee-7f31c2108b78 type: NETWORK_CONNECTION amount: amount: "4423.23" assetId: USDC state: NOT_STARTED transactions: [] "400": description: Bad request content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "401": description: Unauthorized. Missing / invalid JWT token in Authorization header. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" 5XX: description: Internal error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "/payments/payout/{payoutId}/actions/execute": post: tags: - Payments - Payout summary: Execute a payout instruction set description: | **Note:** The reference content in this section documents the Payments Engine endpoint. The Payments Engine endpoints include APIs available only for customers with Payments Engine enabled on their accounts.

These endpoints are currently in beta and might be subject to changes.

If you want to learn more about Fireblocks Payments Engine, please contact your Fireblocks Customer Success Manager or email CSM@fireblocks.com.

Execute a payout instruction set.

The instruction set will be verified and executed.
Source locking
If you are executing a payout instruction set from a payment account with an already active payout the active payout will complete before the new payout instruction set can be executed.
You cannot execute the same payout instruction set more than once. parameters: - name: payoutId description: the payout id received from the creation of the payout instruction set in: path schema: type: string required: true example: 1fe3b61f-7e1f-4a19-aff0-4f0a524d44d7 responses: "200": description: Executed the payout instruction set content: application/json: schema: $ref: "#/components/schemas/DispatchPayoutResponse" example: payoutId: 1fe3b61f-7e1f-4a19-aff0-4f0a524d44d7 "400": description: Bad request content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" 401: description: Unauthorized. Missing / invalid JWT token in Authorization header. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" 5XX: description: Internal error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "/payments/payout/{payoutId}": get: tags: - Payments - Payout summary: Get the status of a payout instruction set description: | **Note:** The reference content in this section documents the Payments Engine endpoint. The Payments Engine endpoints include APIs available only for customers with Payments Engine enabled on their accounts.

These endpoints are currently in beta and might be subject to changes.

If you want to learn more about Fireblocks Payments Engine, please contact your Fireblocks Customer Success Manager or email CSM@fireblocks.com.
parameters: - name: payoutId description: the payout id received from the creation of the payout instruction set in: path schema: type: string required: true example: 1fe3b61f-7e1f-4a19-aff0-4f0a524d44d7 responses: 200: description: Returns the current status of the payout instruction set, including the status of each payout instruction and the transactions created in the process. content: application/json: schema: $ref: "#/components/schemas/PayoutResponse" example: payoutId: 1fe3b61f-7e1f-4a19-aff0-4f0a524d44d7 paymentAccount: id: EX_SUB3 type: EXCHANGE_ACCOUNT createdAt: 1645365800 state: FINALIZED status: "DONE" initMethod: API instructionSet: - id: 6ea4a016-536b-49af-b1a0-40b343ccf879 name: payee-wallet-name payeeAccount: id: bef85a1c-b605-4b2e-bdb5-2d400f4d0bf3 type: EXTERNAL_WALLET amount: amount: "4312" assetId: USDC state: COMPLETED transactions: - id: 35a4b10c-1f83-4f0b-ba2a-da0e73be2d6e state: COMPLETED timestamp: 1645367429 - id: e783a79b-6acc-4d18-885d-ed533cad8eeb name: payee-by-network payeeAccount: id: 3adc1f92-e791-44a8-9aee-7f31c2108b78 type: NETWORK_CONNECTION amount: amount: "4423.23" assetId: USDC state: COMPLETED transactions: - id: 4505e7d9-bfc7-41bc-9750-54311fcbbf26 state: COMPLETED timestamp: 1645367449 reportUrl: https://some-url.com/reports/cc5777c1-75a9-4337-aebd-f1f5a40a9391 404: description: No payout with the given payout ID exists. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" 401: description: Unauthorized. Missing / invalid JWT token in Authorization header. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" 5XX: description: Internal error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /payments/workflow_config: post: x-internal: true tags: - Payments - Flows description: >- Generate a new configuration ID to be used for initiating executions in subsequent phases. This configuration should include the operations you intend to incorporate into the workflow, such as TRANSFER, CONVERT, and DISBURSE, in addition to your pre-screening preferences, which are disabled by default. summary: Create payment flow configuration parameters: - $ref: "#/components/parameters/X-Idempotency-Key" requestBody: content: application/json: schema: $ref: "#/components/schemas/CreateWorkflowConfigurationRequest" responses: "202": description: Configuration is being generated content: application/json: schema: $ref: "#/components/schemas/WorkflowConfiguration" "401": description: Unauthorized. Missing / invalid JWT token in Authorization header. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "404": description: Not found content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" operationId: createFlowConfiguration /payments/workflow_config/{configId}: get: x-internal: true tags: - Payments - Flows description: >- Retrieve a previously created workflow configuration using the specified "configId". summary: Retrieve workflow configuration parameters: - name: configId in: path schema: type: string required: true responses: "200": description: Returns a workflow configuration content: application/json: schema: $ref: "#/components/schemas/WorkflowConfiguration" "401": description: Unauthorized. Missing / invalid JWT token in Authorization header. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "404": description: Not found content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" operationId: getFlowConfiguration delete: x-internal: true tags: - Payments - Flows description: Delete a configuration using the specified "configId". summary: Delete workflow configuration parameters: - name: configId in: path schema: type: string required: true responses: "200": description: The specified configuration has been deleted successfully. content: application/json: schema: $ref: "#/components/schemas/WorkflowConfigurationId" "401": description: Unauthorized. Missing / invalid JWT token in Authorization header. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "404": description: Not found content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" operationId: deleteFlowConfiguration /payments/workflow_execution: post: x-internal: true tags: - Payments - Flows description: >- Validate the "workflow-config" previously created by utilizing the unique "configId". This step requires the mandatory field amount, and allows for modifications to other fields defined via the "workflow-config" endpoint, including pre-screening preferences. A response containing the "workflowExecutionId" and detailing the validation status will be provided. Execution is ready when the "workflow-execution" status is READY_FOR_LAUNCH, at which point it can be initiated with "POST /workflow-execution/{workflowExecutionId}/actions/execute". summary: Create workflow execution parameters: - $ref: "#/components/parameters/X-Idempotency-Key" requestBody: content: application/json: schema: $ref: "#/components/schemas/CreateWorkflowExecutionRequest" responses: "200": description: Workflow execution entity has been created successfully. content: application/json: schema: $ref: "#/components/schemas/WorkflowExecution" "401": description: Unauthorized. Missing / invalid JWT token in Authorization header. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "404": description: Not found content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" operationId: createFlowExecution /payments/workflow_execution/{workflowExecutionId}: get: x-internal: true tags: - Payments - Flows description: >- Retrieve details of a previously initiated workflow execution by specifying the "workflowExecutionId" summary: Get workflow execution details parameters: - name: workflowExecutionId in: path schema: type: string required: true responses: "200": description: Returns workflow execution by id with preview info content: application/json: schema: $ref: "#/components/schemas/WorkflowExecution" "401": description: Unauthorized. Missing / invalid JWT token in Authorization header. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "404": description: Not found content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" operationId: getFlowExecution /payments/workflow_execution/{workflowExecutionId}/actions/execute: post: x-internal: true tags: - Payments - Flows description: >- Launch the execution of a pre-configured workflow, identified by "workflowExecutionId", once it reaches the READY_FOR_LAUNCH state. The workflow undergoes several phases during execution - EXECUTION_IN_PROGRESS - Marks the start of the workflow execution. EXECUTION_COMPLETED or EXECUTION_FAILED - Indicates the execution has reached a final state. summary: Execute the payments workflow parameters: - name: workflowExecutionId in: path schema: type: string required: true - $ref: "#/components/parameters/X-Idempotency-Key" responses: "200": description: Workflow execution has been executed content: application/json: schema: $ref: "#/components/schemas/WorkflowExecution" "401": description: Unauthorized. Missing / invalid JWT token in Authorization header. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "404": description: Not found content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" operationId: launchFlowExecution # Gas Station "/gas_station": get: summary: Get gas station settings description: Returns gas station settings and ETH balance. tags: - Gas stations x-readme: code-samples: - language: python code: gas_station_info = fireblocks.get_gas_station_info() name: Fireblocks SDK Python example - language: javascript code: const gasStationInfo = await fireblocks.gasStationInfo(); name: Fireblocks SDK Javascript example responses: "200": description: Gas Station properties headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/GasStationPropertiesResponse" default: $ref: "#/components/responses/Error" "/gas_station/{assetId}": get: summary: Get gas station settings by asset description: Returns gas station settings and balances for a requested asset. tags: - Gas stations x-readme: code-samples: - language: python code: gas_station_info = fireblocks.get_gas_station_info(asset_id) name: Fireblocks SDK Python example - language: javascript code: const gasStationInfo = await fireblocks.gasStationInfo(assetId); name: Fireblocks SDK Javascript example parameters: - in: path required: true name: assetId description: The ID of the asset schema: type: string x-fb-entity: asset responses: "200": description: Gas Station properties headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/GasStationPropertiesResponse" default: $ref: "#/components/responses/Error" "/gas_station/configuration": put: summary: Edit gas station settings description: Configures gas station settings for ETH. tags: - Gas stations x-readme: code-samples: - language: python code: gas_station = fireblocks.set_gas_station_configuration(gas_threshold, gas_cap, max_gas_price, asset_id) name: Fireblocks SDK Python example - language: javascript code: const gasStation = await fireblocks.setGasStationConfiguration(gasThreshold, gasCap, maxGasPrice) name: Fireblocks SDK Javascript example requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/GasStationConfiguration" responses: "201": description: OK headers: *req-id-header default: $ref: "#/components/responses/Error" "/gas_station/configuration/{assetId}": put: summary: Edit gas station settings for an asset description: Configures gas station settings for a requested asset. tags: - Gas stations x-readme: code-samples: - language: python code: gas_station = fireblocks.set_gas_station_configuration(gas_threshold, gas_cap, max_gas_price, asset_id) name: Fireblocks SDK Python example - language: javascript code: const gasStation = await fireblocks.setGasStationConfiguration(gasThreshold, gasCap, maxGasPrice, assetId) name: Fireblocks SDK Javascript example parameters: - in: path required: true name: assetId description: The ID of the asset schema: type: string x-fb-entity: asset requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/GasStationConfiguration" responses: "201": description: OK headers: *req-id-header default: $ref: "#/components/responses/Error" # USER GROUPS "/management/user_groups": get: operationId: getUserGroups summary: List user groups description: | Get all user groups in the current workspace. tags: - Workspace Management responses: "200": description: List of the users groups in the workspace headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/UserGroupsResponse" default: $ref: "#/components/responses/Error" post: operationId: createUserGroup summary: Create a user group description: | Create a new user group.
tags: - Workspace Management requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/UserGroupCreateRequest" responses: "201": description: User group created and pending approval headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/CreateUserGroupResponse" default: $ref: "#/components/responses/Error" "/management/user_groups/{groupId}": get: operationId: getUserGroup summary: Get a user group by ID description: | Get a user group by ID.
tags: - Workspace Management parameters: - in: path required: true name: groupId description: The ID of the users group schema: type: string responses: "200": description: Users group headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/UserGroupResponse" default: $ref: "#/components/responses/Error" put: operationId: updateUserGroup summary: Update user group description: | Update a users group by ID.
**Note**: - Please note that this endpoint is available only for API keys with Admin permissions. tags: - Workspace Management parameters: - in: path required: true name: groupId description: The ID of the users group schema: type: string requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/UserGroupUpdateRequest" responses: "200": description: Users group updated and the changes are pending approval headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/UserGroupCreateResponse" default: $ref: "#/components/responses/Error" delete: operationId: deleteUserGroup summary: Delete user group description: | Delete a user group by ID.
**Note**: - Please note that this endpoint is available only for API keys with Admin permissions. tags: - Workspace Management parameters: - in: path required: true name: groupId description: The ID of the users group schema: type: string responses: "204": description: Request to delete users group submitted for approval headers: *req-id-header default: $ref: "#/components/responses/Error" # USERS "/users": get: summary: List users description: | List all users for the workspace. Please note that this endpoint is available only for API keys with Admin permissions. tags: - Users x-readme: code-samples: - language: python code: users = fireblocks.get_users() name: Fireblocks SDK Python example - language: javascript code: const users = await fireblocks.getUsers(); name: Fireblocks SDK Javascript example responses: "200": description: List of users headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/GetUsersResponse" default: $ref: "#/components/responses/Error" "/audits": get: summary: Get audit logs tags: - Audit Logs x-readme: code-samples: - language: python code: audits = fireblocks.get_audit_logs(TimePeriod.DAY) name: Fireblocks SDK Python example - language: javascript code: const audits = await fireblocks.getAuditsLogs(TimePeriod.DAY); name: Fireblocks SDK Javascript example parameters: - in: query name: timePeriod required: true description: The last time period to fetch audit logs schema: type: string enum: - DAY - WEEK responses: "200": description: Audit logs from requested time period headers: *req-id-header default: $ref: "#/components/responses/Error" /management/audit_logs: get: summary: Get audit logs description: Get audit logs operationId: getAudits tags: - Workspace Management parameters: - in: query name: timePeriod required: false description: The final time period to fetch audit logs (day/week) schema: type: string enum: - DAY - WEEK - in: query name: cursor required: false description: The next ID to start fetching audit logs from schema: type: string responses: "200": description: Audit logs from the requested time period onward headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" default: $ref: "#/components/responses/Error" # OFF EXCHANGE V2(collateral) "/off_exchange/add": post: summary: add collateral description: add collateral, create deposit request tags: - Off exchanges requestBody: content: application/json: schema: $ref: "#/components/schemas/AddCollateralRequestBody" responses: "200": description: A transaction object content: "*/*": schema: $ref: "#/components/schemas/CreateTransactionResponse" default: $ref: "#/components/responses/Error" "/off_exchange/remove": post: summary: remove collateral description: remove collateral, create withdraw request tags: - Off exchanges requestBody: content: application/json: schema: $ref: "#/components/schemas/RemoveCollateralRequestBody" responses: "200": description: A transaction object content: "*/*": schema: $ref: "#/components/schemas/CreateTransactionResponse" default: $ref: "#/components/responses/Error" "/off_exchange/settlements/trader": post: summary: create settlement for a trader description: create settlement for a trader tags: - Off exchanges requestBody: content: application/json: schema: $ref: "#/components/schemas/SettlementRequestBody" responses: "201": description: A settlement object content: "*/*": schema: $ref: "#/components/schemas/SettlementResponse" default: $ref: "#/components/responses/Error" "/off_exchange/settlements/transactions": get: summary: get settlements transactions from exchange description: get settlements transactions from exchange tags: - Off exchanges parameters: - in: query name: mainExchangeAccountId required: true schema: type: string responses: "200": description: A settlement transactions content: "*/*": schema: $ref: "#/components/schemas/GetSettlementResponse" default: $ref: "#/components/responses/Error" "/off_exchange/collateral_accounts/{mainExchangeAccountId}": get: summary: Find a specific collateral exchange account description: Returns a collateral account by mainExchangeAccountId. tags: - Off exchanges parameters: - in: path name: mainExchangeAccountId required: true description: The id of the main exchange account for which the requested collateral account is associated with schema: type: string minimum: 1 responses: "200": description: An ExchangeAccount object headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/ExchangeAccount" default: $ref: "#/components/responses/Error" # WEBHOOKS "/webhooks/resend": post: summary: Resend failed webhooks description: Resends all failed webhook notifications. tags: - Webhooks x-readme: code-samples: - language: python code: result = fireblocks.resend_webhooks() name: Fireblocks SDK Python example - language: javascript code: const result = await fireblocks.resendWebhooks(); name: Fireblocks SDK Javascript example responses: "200": description: OK headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/ResendWebhooksResponse" default: $ref: "#/components/responses/Error" "/webhooks/resend/{txId}": post: summary: Resend failed webhooks for a transaction by ID description: Resends failed webhook notifications for a transaction by ID. tags: - Webhooks x-readme: code-samples: - language: python code: result = fireblocks.resend_transaction_webhooks_by_id(txId, resend_created, resend_status_updated) name: Fireblocks SDK Python example - language: javascript code: const result = await fireblocks.resendTransactionWebhooksById(txId, resendCreated, resendStatusUpdated); name: Fireblocks SDK Javascript example parameters: - in: path name: txId required: true description: The ID of the transaction for webhooks schema: type: string minimum: 1 requestBody: required: true content: application/json: schema: properties: resendCreated: type: boolean resendStatusUpdated: type: boolean responses: "200": description: OK headers: *req-id-header default: $ref: "#/components/responses/Error" # NFTs /nfts/ownership/tokens: put: operationId: refreshNFTOwnershipByVault summary: Refresh vault account tokens description: | Updates all tokens and balances per blockchain and vault account. parameters: - name: blockchainDescriptor required: true in: query description: Blockchain descriptor filter schema: enum: - ETH - ETH_TEST3 - ETH_TEST5 - ETH_TEST6 - POLYGON - POLYGON_TEST_MUMBAI - BASECHAIN_ETH type: string - name: vaultAccountId required: true in: query description: Vault account filter schema: type: string responses: "202": description: "" headers: *req-id-header tags: - NFTs get: operationId: getOwnedNFTs summary: List all owned tokens (paginated) description: | Returns all tokens and their data in your workspace. parameters: - name: blockchainDescriptor required: false in: query description: Blockchain descriptor filter schema: enum: - ETH - ETH_TEST3 - ETH_TEST5 - ETH_TEST6 - POLYGON - POLYGON_TEST_MUMBAI - XTZ - XTZ_TEST - BASECHAIN_ETH type: string - name: vaultAccountIds required: false in: query description: >- 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. schema: type: string - name: ncwId required: false in: query description: >- Tenant's Non-Custodial Wallet ID schema: type: string - name: ncwAccountIds required: false in: query description: >- 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. schema: type: string - name: walletType required: false in: query description: Wallet type, it can be `VAULT_ACCOUNT` or `END_USER_WALLET`. schema: default: VAULT_ACCOUNT enum: - VAULT_ACCOUNT - END_USER_WALLET type: string - name: ids required: false in: query description: >- A comma separated list of NFT IDs. Up to 100 are allowed in a single request. schema: type: string - name: collectionIds required: false in: query description: >- A comma separated list of collection IDs. Up to 100 are allowed in a single request. schema: type: string - name: pageCursor required: false in: query description: Page cursor to fetch schema: type: string - name: pageSize required: false in: query description: Items per page (max 100) schema: minimum: 1 maximum: 100 type: number - name: sort required: false in: query description: >- Sort by param, it can be one param or a list of params separated by comma schema: type: array items: type: string enum: - ownershipLastUpdateTime - name - collection.name - blockchainDescriptor - name: order required: false in: query description: >- Order direction, it can be `ASC` for ascending or `DESC` for descending schema: default: ASC enum: - DESC - ASC type: string - name: status required: false in: query description: Token ownership status schema: default: LISTED enum: - LISTED - ARCHIVED type: string - name: search required: false in: query description: >- Search owned tokens and their collections. Possible criteria for search: token name and id within the contract/collection, collection name, blockchain descriptor and name. schema: maximum: 100 type: string - name: spam required: false in: query description: Token ownership spam status. schema: enum: - "true" - "false" - all type: string responses: "200": description: "" headers: *req-id-header content: application/json: schema: properties: paging: $ref: "#/components/schemas/Paging" data: type: array items: $ref: "#/components/schemas/TokenOwnershipResponse" tags: - NFTs /nfts/ownership/assets: get: operationId: listOwnedTokens summary: List all distinct owned tokens (paginated) description: | Returns all owned distinct tokens (for your tenant) and their data in your workspace. parameters: - name: ncwId required: false in: query description: >- Tenant's Non-Custodial Wallet ID schema: type: string - name: walletType required: false in: query description: >- Wallet type, it can be `VAULT_ACCOUNT` or `END_USER_WALLET` schema: default: VAULT_ACCOUNT enum: - VAULT_ACCOUNT - END_USER_WALLET type: string - name: pageCursor required: false in: query description: Page cursor to fetch schema: type: string - name: pageSize required: false in: query description: Items per page (max 100) schema: minimum: 1 maximum: 100 type: number - name: sort required: false in: query description: >- Sort by param, it can be one param or a list of params separated by comma schema: type: array items: type: string enum: - name - name: order required: false in: query description: >- Order direction, it can be `ASC` for ascending or `DESC` for descending schema: default: ASC enum: - DESC - ASC type: string - name: status required: false in: query description: Token ownership status schema: default: LISTED enum: - LISTED - ARCHIVED type: string - name: search required: false in: query description: >- Search owned tokens by token name schema: maximum: 100 type: string - name: spam required: false in: query description: Token ownership spam status. schema: enum: - "true" - "false" - all type: string responses: "200": description: "" headers: *req-id-header content: application/json: schema: properties: paging: $ref: "#/components/schemas/Paging" data: type: array items: $ref: "#/components/schemas/TokenResponse" tags: - NFTs /nfts/ownership/collections: get: operationId: listOwnedCollections summary: List owned collections (paginated) description: | Returns all collections in your workspace parameters: - name: ncwId required: false in: query description: Tenant's Non-Custodial Wallet ID schema: type: string - name: walletType required: false in: query description: Wallet type, it can be `VAULT_ACCOUNT` or `END_USER_WALLET` schema: default: VAULT_ACCOUNT enum: - VAULT_ACCOUNT - END_USER_WALLET type: string - name: search required: false in: query description: >- Search owned collections. Possible criteria for search: collection name, collection contract address. schema: maximum: 100 type: string - name: pageCursor required: false in: query description: Page cursor to fetch schema: type: string - name: pageSize required: false in: query description: Items per page (max 100) schema: minimum: 1 maximum: 100 type: number - name: sort required: false in: query description: >- Sort by param, it can be one param or a list of params separated by comma schema: type: array items: type: string enum: - name - name: order required: false in: query description: >- Order direction, it can be `ASC` for ascending or `DESC` for descending schema: default: ASC enum: - DESC - ASC type: string - name: status required: false in: query description: Token ownership status schema: default: LISTED enum: - LISTED - ARCHIVED type: string responses: "200": description: "" headers: *req-id-header content: application/json: schema: properties: paging: $ref: "#/components/schemas/Paging" data: type: array items: $ref: "#/components/schemas/CollectionOwnershipResponse" tags: - NFTs /nfts/tokens/{id}: put: operationId: refreshNFTMetadata summary: Refresh token metadata description: | Updates the latest token metadata. parameters: - name: id required: true in: path description: NFT ID example: NFT-abcdefabcdefabcdefabcdefabcdefabcdefabcd schema: type: string responses: "202": description: "" headers: *req-id-header tags: - NFTs get: operationId: getNFT summary: List token data by ID description: | Returns the requested token data. parameters: - name: id required: true in: path description: NFT ID example: NFT-abcdefabcdefabcdefabcdefabcdefabcdefabcd schema: type: string responses: "200": description: "" headers: *req-id-header content: application/json: schema: $ref: "#/components/schemas/TokenResponse" tags: - NFTs /nfts/tokens: get: operationId: getNFTs summary: List tokens by IDs description: | Returns the requested tokens data. parameters: - name: ids required: true in: query description: >- A comma separated list of NFT IDs. Up to 100 are allowed in a single request. schema: type: string - name: pageCursor required: false in: query description: Page cursor to fetch schema: type: string - name: pageSize required: false in: query description: Items per page (max 100) schema: minimum: 1 maximum: 100 type: number - name: sort required: false in: query description: >- Sort by param, it can be one param or a list of params separated by comma schema: type: array items: type: string enum: - collection.name - name - blockchainDescriptor - name: order required: false in: query description: >- Order direction, it can be `ASC` for ascending or `DESC` for descending schema: default: ASC enum: - DESC - ASC type: string responses: "200": description: "" headers: *req-id-header content: application/json: schema: properties: paging: $ref: "#/components/schemas/Paging" data: type: array items: $ref: "#/components/schemas/TokenResponse" tags: - NFTs /nfts/ownership/tokens/{id}/status: put: operationId: updateTokenOwnershipStatus summary: Update token ownership status description: | Updates token status for a tenant, in all tenant vaults. parameters: - name: id required: true in: path description: NFT ID example: NFT-abcdefabcdefabcdefabcdefabcdefabcdefabcd schema: type: string requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/UpdateTokenOwnershipStatusDto" responses: "200": description: "" headers: *req-id-header tags: - NFTs /nfts/ownership/tokens/status: put: operationId: updateTokensOwnershipStatus summary: Update tokens ownership status description: Updates tokens status for a tenant, in all tenant vaults. requestBody: required: true content: application/json: schema: type: array items: $ref: "#/components/schemas/TokenOwnershipStatusUpdatePayload" responses: "200": description: All token statuses have been updated headers: *req-id-header "400": description: Invalid data sent headers: *req-id-header "404": description: When ownership for token ID is not found headers: *req-id-header tags: - NFTs /api/v1/nfts/ownership/tokens/spam: put: operationId: updateTokensOwnershipSpam summary: Update tokens ownership spam statuses description: Updates tokens spam value for a tenant, in all tenant vaults. parameters: [] requestBody: required: true content: application/json: schema: type: array items: $ref: "#/components/schemas/TokenOwnershipSpamUpdatePayload" responses: "200": description: All token spam values have been updated headers: *req-id-header "400": description: "Invalid data sent" headers: *req-id-header "401": description: "" headers: *req-id-header "404": description: When ownership for token ID is not found headers: *req-id-header tags: - NFTs x-readme: code-samples: - language: python code: > fireblocks.update_nft_token_ownerships_spam_status([{ assetId: "NFT-abcdefabcdefabcdefabcdefabcdefabcdefabcd", spam: true }]); name: Fireblocks SDK Python example - language: javascript code: > await fireblocks.updateNFTTokenOwnershipSpamStatus([{ assetId: "NFT-abcdefabcdefabcdefabcdefabcdefabcdefabcd", spam: true }]); name: Fireblocks SDK Javascript example # WalletLink /connections: get: operationId: get summary: List all open dApp connections description: List all open dApp connections. parameters: - name: order required: false in: query description: List order; ascending or descending. schema: type: string enum: - ASC - DESC default: ASC - name: filter required: false in: query description: Parsed filter object examples: object: summary: The filter object description: "" value: id: string userId: string vaultAccountId: number connectionMethod: string feeLevel: string appUrl: string appName: string stringified: summary: The stringified parsed object description: >- About stringified parsed objects: * Each key-value pair is separated by '=', and each pair is separated by ',' (you can use [`qs`](https://www.npmjs.com/package/qs) package for this) value: >- id=string,userId=string,vaultAccountId=number,connectionMethod=string,feeLevel=string,appUrl=string,appName=string schema: type: object properties: id: type: string userId: type: string vaultAccountId: type: number connectionMethod: type: string feeLevel: type: string appUrl: type: string appName: type: string - name: sort required: false in: query description: Property to sort dApp connections by. schema: type: string enum: - id - userId - vaultAccountId - createdAt - feeLevel - appUrl - appName default: createdAt - name: pageSize required: false in: query description: Amount of results to return in the next page. schema: type: number default: 10 maximum: 50 - name: next required: false in: query description: Cursor to the next page schema: type: string responses: "200": description: "" headers: *req-id-header content: application/json: schema: $ref: "#/components/schemas/GetConnectionsResponse" "400": description: Query parameters were invalid headers: *req-id-header "500": description: Something went wrong headers: *req-id-header tags: - WalletLink /connections/wc: post: operationId: create summary: Create a new dApp connection description: |- Create a new dApp connection. * Note: After this succeeds, make a request to `PUT /v1/connections/wc/{id}` (below) to approve or reject the new dApp connection. parameters: [] requestBody: required: true content: application/json: schema: oneOf: - $ref: "#/components/schemas/CreateConnectionRequest" - $ref: "#/components/schemas/CreateNcwConnectionRequest" responses: "201": description: dApp connection initiated successfully headers: *req-id-header content: application/json: schema: $ref: "#/components/schemas/CreateConnectionResponse" "400": description: Invalid data sent headers: *req-id-header "500": &ref_0 description: Something went wrong headers: *req-id-header tags: &ref_1 - WalletLink /connections/wc/{id}: put: operationId: submit summary: Respond to a pending dApp connection request description: >- Submit a response to *approve* or *reject* an initiated dApp connection. * Note: This call is used to complete your `POST /v1/connections/wc/` request. After this succeeds, your new dApp connection is created and functioning. parameters: - name: id description: The ID of the initiated dApp connection to approve. required: true in: path schema: type: string requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/RespondToConnectionRequest" responses: "200": description: Connection submitted successfully headers: *req-id-header "400": description: Invalid data sent headers: *req-id-header "404": description: Connection not found headers: *req-id-header "500": *ref_0 tags: *ref_1 delete: operationId: remove summary: Remove an existing dApp connection description: Remove an existing dApp connection parameters: - name: id description: The ID of the existing dApp connection to remove. required: true in: path schema: type: string responses: "200": description: Connection removed successfully headers: *req-id-header "404": description: Connection not found headers: *req-id-header "500": *ref_0 tags: *ref_1 # Travel Rule /screening/travel_rule/transaction/validate: post: operationId: TravelRuleApiController_validate summary: Validate Travel Rule Transaction description: |- Validate Travel Rule transactions. Checks what beneficiary VASP details are required by your jurisdiction and the beneficiary's jurisdiction. **Note:** The reference content in this section documents the Travel Rule beta endpoint. The beta endpoint includes APIs that are currently in preview and aren't yet generally available. To enroll in the beta and enable this endpoint, contact your Fireblocks Customer Success Manager or send an email to [CSM@fireblocks.com](mailto:CSM@fireblocks.com). parameters: [] requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/TravelRuleValidateTransactionRequest" responses: "200": description: Transaction validated successfully content: application/json: schema: $ref: "#/components/schemas/TravelRuleValidateTransactionResponse" "400": description: Invalid request body "500": description: Internal server error tags: &ref_3 - Travel Rule (Beta) /screening/travel_rule/transaction/validate/full: post: operationId: TravelRuleApiController_validateFull summary: Validate Full Travel Rule Transaction description: |- Validate Full Travel Rule transactions. Checks for all required information on the originator and beneficiary VASPs. **Note:** The reference content in this section documents the Travel Rule beta endpoint. The beta endpoint includes APIs that are currently in preview and aren't yet generally available. To enroll in the beta and enable this endpoint, contact your Fireblocks Customer Success Manager or send an email to [CSM@fireblocks.com](mailto:CSM@fireblocks.com). parameters: [] requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/TravelRuleValidateFullTransactionRequest" responses: "200": description: Transaction validated successfully content: application/json: schema: $ref: "#/components/schemas/TravelRuleValidateTransactionResponse" "400": description: Invalid request body "500": description: Internal server error tags: *ref_3 /screening/travel_rule/vasp/{did}: get: operationId: TravelRuleApiController_findVasp summary: Get VASP details description: |- Get VASP Details. Returns information about a VASP that has the specified DID. **Note:** The reference content in this section documents the Travel Rule beta endpoint. The beta endpoint includes APIs that are currently in preview and aren't yet generally available. To enroll in the beta and enable this endpoint, contact your Fireblocks Customer Success Manager or send an email to [CSM@fireblocks.com](mailto:CSM@fireblocks.com). parameters: - name: did required: true in: path schema: type: string - name: fields required: false in: query description: CSV of fields to return (all, "blank" or see list of all field names below) schema: type: string responses: "200": description: Transaction validated successfully content: application/json: schema: $ref: "#/components/schemas/TravelRuleVASP" "400": description: Invalid request body "500": description: Internal server error tags: *ref_3 /screening/travel_rule/vasp: get: operationId: TravelRuleApiController_findAllVasp summary: Get All VASPs description: |- Get All VASPs. Returns a list of VASPs. VASPs can be searched and sorted and results are paginated. **Note:** The reference content in this section documents the Travel Rule beta endpoint. The beta endpoint includes APIs that are currently in preview and aren't yet generally available. To enroll in the beta and enable this endpoint, contact your Fireblocks Customer Success Manager or send an email to [CSM@fireblocks.com](mailto:CSM@fireblocks.com). parameters: - name: order required: false in: query description: Field to order by schema: type: string - name: per_page required: false in: query description: Records per page schema: type: number - name: page required: false in: query description: Page number schema: type: number - name: fields required: false in: query description: CSV of fields to return (all, "blank" or see list of all field names below) schema: type: string responses: "200": description: Get all VASPs content: application/json: schema: $ref: "#/components/schemas/TravelRuleGetAllVASPsResponse" tags: *ref_3 /screeening/travel_rule/vasp/update: put: operationId: TravelRuleApiController_updateVasp summary: Add jsonDidKey to VASP details description: |- Update VASP Details. Updates a VASP with the provided parameters. Use this endpoint to add your public jsonDIDkey generated by Notabene. **Note:** The reference content in this section documents the Travel Rule beta endpoint. The beta endpoint includes APIs that are currently in preview and aren't yet generally available. To enroll in the beta and enable this endpoint, contact your Fireblocks Customer Success Manager or send an email to [CSM@fireblocks.com](mailto:CSM@fireblocks.com). parameters: [] requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/TravelRuleUpdateVASPDetails" responses: "200": description: VASP updated successfully content: application/json: schema: $ref: "#/components/schemas/TravelRuleUpdateVASPDetails" "400": description: Invalid request body "500": description: Internal server error tags: *ref_3 # LICENSE SERVICE /management/ota: post: operationId: setOtaStatus summary: Enable or disable transactions to One Time Address (OTA) description: Enable or disable transactions to One Time Address (OTA) requestBody: required: true content: application/json: schema: properties: enable: type: boolean description: Set true or false to enable or disable One Time Address (OTA) responses: "202": description: Successfully updated One Time Address (OTA) status "400": description: Bad request "409": description: Similar request already pending "500": description: Internal server error tags: - Workspace Management get: operationId: getOtaStatus summary: Return status of One Time Address (OTA) enabled description: Returns current One Time Address (OTA) status responses: "200": content: application/json: schema: properties: enabled: type: boolean description: Current One Time Address (OTA) status description: Current One Time Address (OTA) status "404": description: Configuration not found for tenant tags: - Workspace Management /management/workspace_status: get: operationId: getWorkspaceStatus summary: Return current workspace status description: | Returns the status of the current workspace. responses: "200": content: application/json: schema: properties: status: type: string description: Current workspace status description: Current workspace status "404": description: Workspace not found tags: - Workspace Management # POLICY EDITOR /tap/active_policy: get: summary: Get the active policy and its validation description: | Returns the active policy and its validation.
**Note:** These endpoints are currently in beta and might be subject to changes. If you want to participate and learn more about the Fireblocks TAP, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. tags: - Policy Editor (Beta) x-readme: code-samples: - language: python code: policy = fireblocks.get_active_policy() name: Fireblocks SDK Python example - language: javascript code: const policy = await fireblocks.getActivePolicy(); name: Fireblocks SDK Javascript example responses: "200": description: A policy object headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/PolicyAndValidationResponse" default: $ref: "#/components/responses/Error" /tap/draft: get: summary: Get the active draft description: | Returns the active draft and its validation.
**Note:** These endpoints are currently in beta and might be subject to changes. If you want to participate and learn more about the Fireblocks TAP, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. tags: - Policy Editor (Beta) x-readme: code-samples: - language: python code: policy = fireblocks.get_draft() name: Fireblocks SDK Python example - language: javascript code: const policy = await fireblocks.getDraft(); name: Fireblocks SDK Javascript example responses: "200": description: A draft validation response object headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/DraftReviewAndValidationResponse" default: $ref: "#/components/responses/Error" put: summary: Update the draft with a new set of rules description: | Update the draft and return its validation.
**Note:** These endpoints are currently in beta and might be subject to changes. If you want to participate and learn more about the Fireblocks TAP, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. tags: - Policy Editor (Beta) x-readme: code-samples: - language: python code: policy = fireblocks.update_draft() name: Fireblocks SDK Python example - language: javascript code: const policy = await fireblocks.updateDraft(); name: Fireblocks SDK Javascript example requestBody: required: true content: application/json: schema: properties: rules: description: rules to update the draft with type: array items: $ref: "#/components/schemas/PolicyRule" responses: "200": description: A draft validation response object headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/DraftReviewAndValidationResponse" default: $ref: "#/components/responses/Error" post: summary: Send publish request for a certain draft id description: | Send publish request of certain draft id and returns the response.
**Note:** These endpoints are currently in beta and might be subject to changes. If you want to participate and learn more about the Fireblocks TAP, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. tags: - Policy Editor (Beta) x-readme: code-samples: - language: python code: policy = fireblocks.publish_draft() name: Fireblocks SDK Python example - language: javascript code: const policy = await fireblocks.publishDraft(); name: Fireblocks SDK Javascript example requestBody: required: true content: application/json: schema: properties: draftId: description: draft unique identifier type: string responses: "201": description: A policy publish result object headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/PublishResult" default: $ref: "#/components/responses/Error" /tap/publish: post: summary: Send publish request for a set of policy rules description: | Send publish request of set of policy rules and returns the response.
**Note:** These endpoints are currently in beta and might be subject to changes. If you want to participate and learn more about the Fireblocks TAP, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com. tags: - Policy Editor (Beta) x-readme: code-samples: - language: python code: policy = fireblocks.publish_rules() name: Fireblocks SDK Python example - language: javascript code: const policy = await fireblocks.publishRules(); name: Fireblocks SDK Javascript example requestBody: required: true content: application/json: schema: properties: rules: description: Policy rules to publish type: array items: $ref: "#/components/schemas/PolicyRule" responses: "201": description: A policy publish result object headers: *req-id-header content: "*/*": schema: $ref: "#/components/schemas/PublishResult" default: $ref: "#/components/responses/Error" # Workspace Management /management/users: get: summary: Get Console users description: Gets a list of Console users from the current tenant. tags: - Workspace Management responses: "200": description: Get Console users headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" "401": description: Unauthorized. Missing or invalid JWT token in Authorization header headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "403": description: Lacking permissions headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" 5XX: description: Internal error headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" default: $ref: "#/components/responses/Error" post: summary: Create Console user description: Creates a Fireblocks Console user tags: - Workspace Management requestBody: content: application/json: schema: $ref: "#/components/schemas/CreateConsoleUser" responses: "204": description: Users sent for creation headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" "400": description: Bad request headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" "401": description: Unauthorized. Missing or invalid JWT token in Authorization header headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "403": description: Lacking permissions. headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" 5XX: description: Internal error headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" default: $ref: "#/components/responses/Error" /management/api_users: get: summary: Get API users (Beta) description: | Get API users from the current tenant.
- **Note: This endpoint is in beta and subject to change** tags: - Workspace Management responses: "200": description: Get API users headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" "401": description: Unauthorized. Missing or invalid JWT token in Authorization header. headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "403": description: Lacking permissions headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" 5XX: description: Internal error headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" default: $ref: "#/components/responses/Error" post: summary: Creates an API user (Beta) description: | Creates an API user. - **Note: This endpoint is in beta and subject to change** tags: - Workspace Management requestBody: content: application/json: schema: $ref: "#/components/schemas/CreateAPIUser" responses: "204": description: User sent for creation headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" "401": description: Unauthorized. Missing or invalid JWT token in Authorization header. headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "403": description: Lacking permissions headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" 5XX: description: Internal error headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" default: $ref: "#/components/responses/Error" /management/users/{id}/reset_device: post: summary: Reset device description: Re-links a mobile device to the workspace tags: - Workspace Management parameters: - in: path name: id required: true description: The user’s ID schema: type: string responses: "204": description: User sent for creation headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" "401": description: Unauthorized. Missing or invalid JWT token in Authorization header. headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "403": description: Lacking permissions headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" 5XX: description: Internal error headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" default: $ref: "#/components/responses/Error" /management/api_users/{userId}/whitelist_ip_addresses: get: summary: Get list of whitelisted IP addresses description: Gets a list of whitelisted IP addresses, which make it possible to get API calls only from these IP addresses. tags: - Workspace Management parameters: - in: path name: userId required: true description: The ID of the user schema: type: string responses: "200": description: successfully whitelisted headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" "401": description: Unauthorized. Missing or invalid JWT token in Authorization header. headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "403": description: Lacking permissions headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" 5XX: description: Internal error headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" default: $ref: "#/components/responses/Error" /smart-transfers: post: operationId: createTicket summary: "Create Ticket" description: Creates new Smart Transfer ticket parameters: [] requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/SmartTransferCreateTicketDto" responses: "201": description: Smart Transfer ticket was created successfully content: application/json: schema: allOf: - $ref: "#/components/schemas/SmartTransferTicketResponseDto" - properties: message: type: string description: Success message example: Successfully created nullable: true data: $ref: "#/components/schemas/SmartTransferTicketDto" "403": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/SmartTransferForbiddenResponse" "422": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/SmartTransferBadRequestResponse" tags: - Smart Transfer get: operationId: searchTickets summary: "Find Ticket" description: Finds Smart Transfer tickets that match the submitted criteria parameters: - name: q required: false in: query description: Search string - counterparty name or asset or ticketId. Optional schema: minLength: 1 type: string - name: statuses required: false in: query description: Ticket statuses for Smart Transfer tickets. Optional example: - DRAFT - OPEN schema: default: [] type: array items: type: string enum: - DRAFT - PENDING_APPROVAL - OPEN - IN_SETTLEMENT - FULFILLED - EXPIRED - CANCELED - name: networkId required: false in: query description: "NetworkId that is used in the ticket\t. Optional" schema: type: string - name: createdByMe required: false in: query description: Filter created tickets by created by self or by others. Optional schema: type: boolean - name: expiresAfter required: false in: query description: Lower bound of search range. Optional schema: format: date-time type: string - name: expiresBefore required: false in: query description: Upper bound of search range. Optional schema: format: date-time type: string - name: type required: false in: query description: >- Type of transfer. ASYNC executes transfers as they are funded, ATOMIC executes all terms (legs) as one atomic transfer schema: enum: - ASYNC type: string - name: externalRefId required: false in: query description: >- External ref. ID that workspace can use to identify ticket outside of Fireblocks system. schema: minLength: 1 maxLength: 64 type: string - name: after required: false in: query description: ID of the record after which to fetch $limit records schema: type: string - name: limit required: false in: query description: Number of records to fetch. By default, it is 100 schema: minimum: 1 type: number responses: "200": description: Smart Transfer tickets were returned successfully content: application/json: schema: allOf: - $ref: "#/components/schemas/SmartTransferTicketFilteredResponseDto" - properties: after: type: string description: Unique id of next filtered result example: 006dc012-7ba7-474b-ada0-c12c24bf059e data: type: array items: $ref: "#/components/schemas/SmartTransferTicketDto" "403": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/SmartTransferForbiddenResponse" tags: - Smart Transfer /smart-transfers/{ticketId}: get: operationId: findTicketById summary: "Search Tickets by ID" description: Find Smart Transfer ticket by id parameters: - name: ticketId required: true in: path schema: type: string responses: "200": description: Smart Transfer ticket returned successfully content: application/json: schema: allOf: - $ref: "#/components/schemas/SmartTransferTicketResponseDto" - properties: message: type: string description: Success message example: Success nullable: true data: $ref: "#/components/schemas/SmartTransferTicketDto" "403": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/SmartTransferForbiddenResponse" "404": description: Not found content: application/json: schema: $ref: "#/components/schemas/SmartTransferNotFoundResponse" tags: - Smart Transfer /smart-transfers/{ticketId}/expires-in: put: operationId: setTicketExpiration summary: "Set expiration" description: Set expiration date on Smart Transfer ticket parameters: - name: ticketId required: true in: path schema: type: string requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/SmartTransferSetTicketExpirationDto" responses: "200": description: Successfully set expiration date on Smart Transfer ticket content: application/json: schema: allOf: - $ref: "#/components/schemas/SmartTransferTicketResponseDto" - properties: message: type: string description: Success message example: Success nullable: true data: $ref: "#/components/schemas/SmartTransferTicketDto" "403": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/SmartTransferForbiddenResponse" "404": description: Not found content: application/json: schema: $ref: "#/components/schemas/SmartTransferNotFoundResponse" "422": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/SmartTransferBadRequestResponse" tags: - Smart Transfer /smart-transfers/{ticketId}/external-id: put: operationId: setExternalRefId summary: "Add external ref. ID" description: Set external id Smart Transfer ticket parameters: - name: ticketId required: true in: path schema: type: string requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/SmartTransferSetTicketExternalIdDto" responses: "200": description: Successfully set external id on Smart Transfer ticket content: application/json: schema: allOf: - $ref: "#/components/schemas/SmartTransferTicketResponseDto" - properties: message: type: string description: Success message example: Success nullable: true data: $ref: "#/components/schemas/SmartTransferTicketDto" "403": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/SmartTransferForbiddenResponse" "404": description: Not found content: application/json: schema: $ref: "#/components/schemas/SmartTransferNotFoundResponse" "422": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/SmartTransferBadRequestResponse" tags: - Smart Transfer /smart-transfers/{ticketId}/submit: put: operationId: submitTicket summary: "Submit ticket" description: >- Submit Smart Transfer ticket - change status into ready for approval if auto approval is not turned on, or OPEN if auto approval is on parameters: - name: ticketId required: true in: path schema: type: string requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/SmartTransferSubmitTicketDto" responses: "200": description: Successfully submitted Smart Transfer ticket content: application/json: schema: allOf: - $ref: "#/components/schemas/SmartTransferTicketResponseDto" - properties: message: type: string description: Success message example: Success nullable: true data: $ref: "#/components/schemas/SmartTransferTicketDto" "403": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/SmartTransferForbiddenResponse" "404": description: Not found content: application/json: schema: $ref: "#/components/schemas/SmartTransferNotFoundResponse" "422": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/SmartTransferBadRequestResponse" tags: - Smart Transfer /smart-transfers/{ticketId}/fulfill: put: operationId: fulfillTicket summary: "Fund ticket manually" description: >- Manually fulfill ticket, in case when all terms (legs) are funded manually parameters: - name: ticketId required: true in: path schema: type: string responses: "200": description: Successfully fulfilled on Smart Transfer ticket content: application/json: schema: allOf: - $ref: "#/components/schemas/SmartTransferTicketResponseDto" - properties: message: type: string description: Success message example: Success nullable: true data: $ref: "#/components/schemas/SmartTransferTicketDto" "403": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/SmartTransferForbiddenResponse" "404": description: Not found content: application/json: schema: $ref: "#/components/schemas/SmartTransferNotFoundResponse" "422": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/SmartTransferBadRequestResponse" tags: - Smart Transfer /smart-transfers/{ticketId}/cancel: put: operationId: cancelTicket summary: "Cancel Ticket" description: Cancel Smart Transfer ticket parameters: - name: ticketId required: true in: path schema: type: string responses: "200": description: Smart Transfer ticket successfully canceled content: application/json: schema: allOf: - $ref: "#/components/schemas/SmartTransferTicketResponseDto" - properties: message: type: string description: Success message example: Success nullable: true data: $ref: "#/components/schemas/SmartTransferTicketDto" "403": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/SmartTransferForbiddenResponse" "404": description: Not found content: application/json: schema: $ref: "#/components/schemas/SmartTransferNotFoundResponse" "422": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/SmartTransferBadRequestResponse" tags: - Smart Transfer /smart-transfers/{ticketId}/terms: post: operationId: createTicketTerm summary: "Search ticket by leg (term) ID" description: Creates new smart transfer ticket term (when the ticket status is DRAFT) parameters: - name: ticketId required: true in: path schema: type: string requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/SmartTransferCreateTicketTermDto" responses: "201": description: Smart Transfer ticket term was created successfully content: application/json: schema: allOf: - $ref: "#/components/schemas/SmartTransferTicketTermResponseDto" - properties: message: type: string description: Success message example: Successfully created nullable: true data: $ref: "#/components/schemas/SmartTransferTicketTermDto" "403": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/SmartTransferForbiddenResponse" "422": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/SmartTransferBadRequestResponse" tags: - Smart Transfer /smart-transfers/{ticketId}/terms/{termId}: get: operationId: findTicketTermById summary: "" description: Find Smart Transfer ticket term by id parameters: - name: ticketId required: true in: path schema: type: string - name: termId required: true in: path schema: type: string responses: "200": description: Smart Transfer ticket term returned successfully content: application/json: schema: allOf: - $ref: "#/components/schemas/SmartTransferTicketTermResponseDto" - properties: message: type: string description: Success message example: Success nullable: true data: $ref: "#/components/schemas/SmartTransferTicketTermDto" "403": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/SmartTransferForbiddenResponse" "404": description: Not found content: application/json: schema: $ref: "#/components/schemas/SmartTransferNotFoundResponse" tags: - Smart Transfer put: operationId: updateTicketTerm summary: "Update ticket leg (term)" description: Update ticket term (when ticket status is DRAFT) parameters: - name: ticketId required: true in: path schema: type: string - name: termId required: true in: path schema: type: string requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/SmartTransferUpdateTicketTermDto" responses: "200": description: Smart Transfer ticket term updated successfully content: application/json: schema: allOf: - $ref: "#/components/schemas/SmartTransferTicketTermResponseDto" - properties: message: type: string description: Success message example: Success nullable: true data: $ref: "#/components/schemas/SmartTransferTicketTermDto" "403": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/SmartTransferForbiddenResponse" "404": description: Not found content: application/json: schema: $ref: "#/components/schemas/SmartTransferNotFoundResponse" tags: - Smart Transfer delete: operationId: removeTicketTerm summary: "Delete ticket leg (term)" description: Delete ticket term when ticket is in DRAFT status parameters: - name: ticketId required: true in: path schema: type: string - name: termId required: true in: path schema: type: string responses: "204": description: Smart Transfer ticket term successfully removed "403": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/SmartTransferForbiddenResponse" "404": description: Not found content: application/json: schema: $ref: "#/components/schemas/SmartTransferNotFoundResponse" tags: - Smart Transfer /smart-transfers/{ticketId}/terms/{termId}/fund: put: operationId: fundTicketTerm summary: "Define funding source" description: >- Set funding source for ticket term (in case of ASYNC tickets, this will execute transfer immediately) parameters: - name: ticketId required: true in: path schema: type: string - name: termId required: true in: path schema: type: string requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/SmartTransferFundTermDto" responses: "200": description: "" "201": description: Funding source for ticket term successfully done content: application/json: schema: allOf: - $ref: "#/components/schemas/SmartTransferTicketTermResponseDto" - properties: message: type: string description: Success message example: Successfully created nullable: true data: $ref: "#/components/schemas/SmartTransferTicketTermDto" "403": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/SmartTransferForbiddenResponse" "404": description: Not found content: application/json: schema: $ref: "#/components/schemas/SmartTransferNotFoundResponse" "422": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/SmartTransferBadRequestResponse" tags: - Smart Transfer /smart-transfers/{ticketId}/terms/{termId}/manually-fund: put: operationId: manuallyFundTicketTerm summary: "Manually add term transaction" description: Manually set ticket term transaction parameters: - name: ticketId required: true in: path schema: type: string - name: termId required: true in: path schema: type: string requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/SmartTransferManuallyFundTermDto" responses: "200": description: "" "201": description: Successfully manually set ticket term transaction content: application/json: schema: allOf: - $ref: "#/components/schemas/SmartTransferTicketTermResponseDto" - properties: message: type: string description: Success message example: Successfully created nullable: true data: $ref: "#/components/schemas/SmartTransferTicketTermDto" "403": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/SmartTransferForbiddenResponse" "404": description: Not found content: application/json: schema: $ref: "#/components/schemas/SmartTransferNotFoundResponse" "422": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/SmartTransferBadRequestResponse" tags: - Smart Transfer /smart-transfers/settings/user-groups: post: operationId: setUserGroups summary: "Set user group" description: Set Smart Transfer user group parameters: [] requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/SmartTransferSetUserGroupsDto" responses: "201": description: User group settings were set successfully content: application/json: schema: allOf: - $ref: "#/components/schemas/SmartTransferUserGroupsResponseDto" - properties: message: type: string description: Success message example: Successfully created nullable: true data: $ref: "#/components/schemas/SmartTransferUserGroupsDto" "403": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/SmartTransferForbiddenResponse" "422": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/SmartTransferBadRequestResponse" tags: - Smart Transfer get: operationId: getSmartTransferUserGroups summary: "Get user group" description: Get Smart Transfer user groups parameters: [] responses: "200": description: User group settings were returned successfully content: application/json: schema: allOf: - $ref: "#/components/schemas/SmartTransferUserGroupsResponseDto" - properties: message: type: string description: Success message example: Success nullable: true data: $ref: "#/components/schemas/SmartTransferUserGroupsDto" "403": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/SmartTransferForbiddenResponse" "422": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/SmartTransferBadRequestResponse" tags: - Smart Transfer components: responses: Error: description: Error Response headers: X-Request-ID: $ref: "#/components/headers/X-Request-ID" content: application/json: schema: $ref: "#/components/schemas/Error" headers: X-Request-ID: schema: type: string description: Unique ID correlated to the API request. Please provide it in any support ticket you create or on Github issues related to Fireblocks SDKs next-page: schema: type: string description: URL representing a new request to this API endpoint to receive the next page of results. prev-page: schema: type: string description: URL representing a new request to this API endpoint to receive the previous page of results. requestBodies: NewWallet: content: application/json: schema: properties: name: type: string description: the wallet's display name WalletAddressProperties: content: application/json: schema: properties: address: type: string description: The wallet's address (or xpub) of the wallet securitySchemes: bearerTokenAuth: type: http scheme: bearer bearerFormat: JWT ApiKeyAuth: type: apiKey in: header name: X-API-Key schemas: MediaEntityResponse: type: object properties: url: type: string description: Cached accessible URL contentType: type: string enum: - IMAGE - VIDEO - ANIMATION - THREE_D - TEXT - GIF - UNKNOWN_TYPE - SVG - AUDIO description: Media type required: - url - contentType SpamOwnershipResponse: type: object properties: result: type: boolean description: Token spam result source: type: string description: Source of Token's Spam status value enum: - OWNER - SYSTEM required: - result - source TokenCollectionResponse: type: object properties: id: type: string name: type: string symbol: type: string required: - id SpamTokenResponse: type: object properties: result: type: boolean description: Token spam result required: - result TokenResponse: type: object properties: id: type: string description: The Fireblocks NFT asset id tokenId: type: string description: Token id within the contract/collection standard: type: string description: ERC721 / ERC1155 metadataURI: type: string description: URL of the original token JSON metadata cachedMetadataURI: type: string description: URL of the cached token JSON metadata media: description: Media items extracted from metadata JSON type: array items: $ref: "#/components/schemas/MediaEntityResponse" spam: description: Token spam status allOf: - $ref: "#/components/schemas/SpamTokenResponse" collection: description: Parent collection information allOf: - $ref: "#/components/schemas/TokenCollectionResponse" blockchainDescriptor: type: string enum: - ETH - ETH_TEST3 - ETH_TEST5 - ETH_TEST6 - POLYGON - POLYGON_TEST_MUMBAI - XTZ - XTZ_TEST - BASECHAIN_ETH description: type: string name: type: string required: - id - tokenId - standard - blockchainDescriptor UpdateTokenOwnershipStatusDto: type: object properties: status: type: string enum: - LISTED - ARCHIVED required: - status TokenOwnershipStatusUpdatePayload: type: object properties: assetId: type: string description: Token's asset id example: NFT-abcdefabcdefabcdefabcdefabcdefabcdefabcd x-fb-entity: asset status: type: string description: Token's ownership new status enum: - LISTED - ARCHIVED example: ARCHIVED required: - assetId - status TokenOwnershipSpamUpdatePayload: type: object properties: assetId: type: string description: Token's asset id example: NFT-abcdefabcdefabcdefabcdefabcdefabcdefabcd spam: type: boolean description: Token's ownership new spam value required: - assetId - spam Paging: type: object properties: next: type: string description: Cursor to the next page required: - next TokenOwnershipResponse: type: object properties: id: type: string description: The Fireblocks NFT asset id tokenId: type: string description: Token id within the contract/collection standard: type: string description: ERC721 / ERC1155 metadataURI: type: string description: URL of the original token JSON metadata cachedMetadataURI: type: string description: URL of the cached token JSON metadata media: description: Media items extracted from metadata JSON type: array items: $ref: "#/components/schemas/MediaEntityResponse" spam: description: Owned Token's Spam status allOf: - $ref: "#/components/schemas/SpamOwnershipResponse" collection: description: Parent collection information allOf: - $ref: "#/components/schemas/TokenCollectionResponse" balance: type: string vaultAccountId: type: string ownershipStartTime: type: number ownershipLastUpdateTime: type: number blockchainDescriptor: enum: - ETH - ETH_TEST3 - ETH_TEST5 - ETH_TEST6 - POLYGON - POLYGON_TEST_MUMBAI - XTZ - XTZ_TEST - BASECHAIN_ETH type: string description: type: string name: type: string ncwId: type: string ncwAccountId: type: string status: type: string description: Owned Token's status enum: - LISTED - ARCHIVED required: - id - tokenId - standard - media - balance - vaultAccountId - ownershipStartTime - ownershipLastUpdateTime - blockchainDescriptor - description - name - status CollectionOwnershipResponse: type: object properties: id: type: string description: Fireblocks collection id name: type: string description: Collection name symbol: type: string description: Collection symbol standard: type: string description: Collection contract standard blockchainDescriptor: enum: - ETH - ETH_TEST3 - ETH_TEST5 - ETH_TEST6 - POLYGON - POLYGON_TEST_MUMBAI - XTZ - XTZ_TEST - BASECHAIN_ETH type: string description: Collection's blockchain contractAddress: type: string description: Collection contract standard required: - id - blockchainDescriptor WalletAsset: type: object properties: id: type: string balance: type: string lockedAmount: type: string status: $ref: "#/components/schemas/ConfigChangeRequestStatus" address: type: string tag: type: string activationTime: type: string ExternalWalletAsset: type: object properties: id: type: string status: $ref: "#/components/schemas/ConfigChangeRequestStatus" address: type: string tag: type: string activationTime: type: string additionalInfo: type: array items: $ref: "#/components/schemas/WalletAssetAdditionalInfo" WalletAssetAdditionalInfo: type: object properties: accountHolderGivenName: type: string accountHolderSurname: type: string accountHolderCity: type: string accountHolderCountry: type: string accountHolderAddress1: type: string accountHolderAddress2: type: string accountHolderDistrict: type: string accountHolderPostalCode: type: string abaRoutingNumber: type: string abaAccountNumber: type: string abaCountry: type: string iban: type: string ibanCity: type: string ibanCountry: type: string speiClabe: type: string speiName: type: string ExchangeAsset: type: object properties: id: type: string balance: type: string lockedAmount: type: string total: type: string available: type: string ExchangeTradingAccount: type: object properties: type: type: string name: type: string assets: type: array items: $ref: "#/components/schemas/ExchangeAsset" FiatAsset: type: object properties: id: type: string balance: type: string CreateVaultAssetResponse: type: object properties: id: type: string address: type: string legacyAddress: type: string enterpriseAddress: type: string tag: type: string eosAccountName: type: string status: type: string activationTxId: type: string RewardsInfo: type: object properties: pendingRewards: description: Amount that is pending for rewards type: string VaultAsset: type: object properties: id: type: string total: description: The total wallet balance. In EOS this value includes the network balance, self staking and pending refund. For all other coins it is the balance as it appears on the blockchain. type: string balance: deprecated: true description: Deprecated - replaced by "total" type: string available: description: Funds available for transfer. Equals the blockchain balance minus any locked amounts type: string pending: description: The cumulative balance of all transactions pending to be cleared type: string frozen: description: The cumulative frozen balance type: string lockedAmount: description: Funds in outgoing transactions that are not yet published to the network type: string staked: description: Staked balance type: string totalStakedCPU: type: number description: Deprecated totalStakedNetwork: type: string description: Deprecated selfStakedCPU: type: string description: Deprecated selfStakedNetwork: type: string description: Deprecated pendingRefundCPU: type: string description: Deprecated pendingRefundNetwork: type: string description: Deprecated blockHeight: type: string blockHash: type: string rewardsInfo: $ref: "#/components/schemas/RewardsInfo" AddressesResponse: type: object properties: addresses: type: array items: $ref: '#/components/schemas/VaultWalletAddress' VaultWalletAddress: type: object properties: assetId: type: string x-fb-entity: asset address: type: string description: type: string tag: type: string type: type: string customerRefId: type: string addressFormat: type: string enum: - SEGWIT - LEGACY - BASE - PAYMENT legacyAddress: type: string enterpriseAddress: type: string bip44AddressIndex: type: integer userDefined: type: boolean CreateAddressResponse: type: object properties: address: type: string legacyAddress: type: string enterpriseAddress: type: string tag: type: string bip44AddressIndex: type: integer VaultAccountsPagedResponse: type: object properties: accounts: type: array items: $ref: "#/components/schemas/VaultAccount" paging: type: object properties: before: type: string after: type: string previousUrl: type: string nextUrl: type: string PaginatedAssetWalletResponse: type: object properties: assetWallets: type: array items: $ref: "#/components/schemas/AssetWallet" paging: type: object properties: before: description: A string representing a cursor. Users can use this with a new request to this API endpoint as the “before” request parameter to fetch the previous page of results. type: string after: description: A string representing a cursor. Users can use this with a new request to this API endpoint as the “before” request parameter to fetch the next page of results. type: string RegisterNewAssetRequest: type: object properties: blockchainId: type: string description: Native asset of blockchain example: (ETH, ETH_TEST5, MATIC_POLYGON) address: type: string description: Asset address example: 0xe7A9as1oa38bc4da0248s179E30aa94CcF453991 symbol: type: string description: Asset symbol example: TST3 required: - blockchainId - address AssetResponse: type: object properties: legacyId: type: string example: TST3_ETH assetClass: type: string example: FT enum: - NATIVE - FT - NFT - SFT onchain: type: object properties: symbol: type: string description: The asset symbol example: TST3 name: type: string description: The asset name example: Test 3 address: type: string description: The asset address example: 0xe7A9as1oa38bc4da0248s179E30aa94CcF453991 decimals: type: number description: Number of decimals example: 18 standard: type: string description: The asset standard example: ERC20 required: - symbol - name - decimals - standard metadata: type: object properties: scope: type: string description: The scope of the asset example: Global enum: - Global - Local deprecated: type: boolean description: Is asset deprecated example: false required: - scope - deprecated required: - legacyId - assetClass - onchain - metadata AssetBadRequestErrorResponse: type: object properties: message: type: string description: Bad request error code example: Listing an asset on the requested blockchain is not supported code: type: string description: Error code example: 3001 required: - message - code AssetForbiddenErrorResponse: type: object properties: message: type: string description: Forbidden error code example: Asset creation quota reached code: type: string description: Error code example: 3006 required: - message - code AssetNotFoundErrorResponse: type: object properties: message: type: string description: Not found error code example: Invalid address, could not get asset information code: type: string description: Error code example: 3009 required: - message - code AssetConflictErrorResponse: type: object properties: message: type: string description: Conflict error code example: Asset already listed code: type: string description: Error code example: 3002 required: - message - code AssetInternalServerErrorResponse: type: object properties: message: type: string description: Internal server error code example: Internal server error code: type: string description: Error code example: 3005 required: - message - code AssetWallet: type: object properties: vaultId: description: ID of the vault account. You can [get the vault account by this ID](https://developers.fireblocks.com/reference/get_vault-accounts-vaultaccountid) to retrieve vault properties such as its name, auto fueling, hidden on UI or customer reference ID. type: string assetId: description: ID of the asset. You can get more information about this asset by using the [supported assets API](https://developers.fireblocks.com/reference/get_supported-assets) type: string available: description: Available balance, available to use in a transaction. type: string total: description: Total balance at the asset wallet, as seen at the blockchain explorers. This includes balance available, and any kind of unavailable balance such as locked, frozen, or others. type: string pending: description: Pending balance. type: string staked: description: Staked balance. type: string frozen: description: Funds frozen due to the anti-money laundering policy at this workspace. type: string lockedAmount: description: Locked balance. type: string blockHeight: description: The height (number) of the block of the balance. Can by empty. type: string blockHash: description: The hash of the block of the balance. Can by empty. type: string creationTimestamp: description: Unix timestamp of the time the asset wallet was created. type: string VaultAccount: type: object properties: id: type: string name: type: string assets: type: array items: $ref: "#/components/schemas/VaultAsset" hiddenOnUI: type: boolean customerRefId: type: string autoFuel: type: boolean UnmanagedWallet: type: object properties: id: type: string name: type: string customerRefId: type: string assets: type: array items: $ref: "#/components/schemas/WalletAsset" required: - id - name - status ExchangeAccount: type: object properties: id: type: string type: $ref: "#/components/schemas/ExchangeType" name: type: string description: Display name of the exchange account status: type: string assets: type: array items: $ref: "#/components/schemas/ExchangeAsset" tradingAccounts: type: array items: $ref: "#/components/schemas/ExchangeTradingAccount" isSubaccount: description: True if the account is a subaccount in an exchange type: boolean mainAccountId: description: if the account is a sub-account, the ID of the main account type: string ExchangeAccountsPaged: type: object properties: ExchangeAccount: type: array items: $ref: "#/components/schemas/ExchangeAccount" paging: type: object properties: after: type: string description: Query value to the after page before: type: string description: Query value to the before page prevUrl: type: string nextUrl: type: string FiatAccount: type: object properties: id: type: string type: $ref: "#/components/schemas/FiatAccountType" name: type: string description: Display name of the fiat account address: type: string assets: type: array items: $ref: "#/components/schemas/FiatAsset" OneTimeAddress: type: object properties: address: type: string tag: type: string required: - address TransferPeerPath: type: object properties: type: type: string enum: - VAULT_ACCOUNT - EXCHANGE_ACCOUNT - INTERNAL_WALLET - EXTERNAL_WALLET - NETWORK_CONNECTION - FIAT_ACCOUNT - COMPOUND - GAS_STATION - ONE_TIME_ADDRESS - UNKNOWN - END_USER_WALLET subType: type: string enum: - BINANCE - BINANCEUS - BITFINEX - BITHUMB - BITMEX - BITSO - BITSTAMP - BITTREX - BLINC - BYBIT - CIRCLE - COINBASEEXCHANGE - COINBASEPRO - COINMETRO - COINSPRO - CRYPTOCOM - DERIBIT - GEMINI - HITBTC - HUOBI - INDEPENDENTRESERVE - KORBIT - KRAKEN - KRAKENINTL - KUCOIN - LIQUID - OKCOIN - OKEX - PAXOS - POLONIEX - External - Internal id: type: string name: type: string walletId: type: string format: uuid required: - type DestinationTransferPeerPath: allOf: - $ref: "#/components/schemas/TransferPeerPath" - type: object - description: The destination of the transaction. properties: oneTimeAddress: $ref: "#/components/schemas/OneTimeAddress" CreateTransactionResponse: type: object properties: id: type: string description: The ID of the transaction. status: type: string description: The primary status of the transaction. For details, see [Primary transaction statuses.] (https://developers.fireblocks.com/reference/primary-transaction-statuses) systemMessages: $ref: "#/components/schemas/SystemMessageInfo" SystemMessageInfo: type: object properties: type: type: string enum: - WARN - BLOCK message: type: string description: A response from Fireblocks that communicates a message about the health of the process being performed. If this object is returned with data, you should expect potential delays or incomplete transaction statuses. example: Slow transaction processing. Outgoing transactions might be stuck. CancelTransactionResponse: type: object properties: success: type: boolean UnfreezeTransactionResponse: type: object properties: success: type: boolean FreezeTransactionResponse: type: object properties: success: type: boolean AmlScreeningResult: type: object description: The result of the AML screening. properties: provider: type: string payload: type: object FeeInfo: type: object description: Details of the transaction's fee. properties: networkFee: description: The fee paid to the network type: string serviceFee: description: The total fee deducted by the exchange from the actual requested amount (serviceFee = amount - netAmount) type: string gasPrice: type: string BlockInfo: type: object description: >- The block hash and height of the block that this transaction was mined in. **Note**: If an outgoing transaction uses the destinations object with more than one value in the array, blockHash is set to null. properties: blockHeight: type: string blockHash: type: string nullable: true AuthorizationInfo: type: object description: The information about your [Transaction Authorization Policy (TAP).](https://developers.fireblocks.com/docs/capabilities#transaction-authorization-policy-tap) properties: allowOperatorAsAuthorizer: type: boolean logic: type: string enum: - AND - OR groups: type: array items: $ref: "#/components/schemas/AuthorizationGroups" AuthorizationGroups: type: object properties: th: type: number users: type: object additionalProperties: type: string enum: - PENDING_AUTHORIZATION - APPROVED - REJECTED - NA AmountInfo: type: object description: The details of the requested amount to transfer. properties: amount: description: If the transfer is a withdrawal from an exchange, the actual amount that was requested to be transferred. Otherwise, the requested amount. type: string requestedAmount: description: The amount requested by the user. type: string netAmount: description: The net amount of the transaction, after fee deduction. type: string amountUSD: description: The USD value of the requested amount. type: string RewardInfo: type: object description: This field is relevant only for Algorand transactions. Both `srcRewards` and `destRewards` will appear only for Vault to Vault transactions, otherwise you will receive only the Fireblocks’ side of the transaction. properties: srcRewards: type: string destRewards: type: string SourceTransferPeerPathResponse: allOf: - $ref: "#/components/schemas/TransferPeerPath" - type: object description: The transaction’s source. properties: type: type: string subType: type: string description: In case the type is set to `EXCHANGE_ACCOUNT` or `FIAT_ACCOUNT`, the specific exchange vendor name or fiat vendor name. In case the type is set to `INTERNAL_WALLET` or `EXTERNAL_WALLET`, the subType is set to `Internal` or `External`. id: type: string description: The ID of the peer. You can retrieve the ID of each venue object using the endpoints for [listing vault accounts](https://developers.fireblocks.com/reference/get_vault-accounts-paged), [listing exchange account](https://developers.fireblocks.com/reference/get_exchange-accounts), [listing fiat accounts](https://developers.fireblocks.com/reference/get_fiat-accounts), [listing internal wallets](https://developers.fireblocks.com/reference/get_internal-wallets), [listing external wallets](https://developers.fireblocks.com/reference/get_external-wallets), [listing network connections](https://developers.fireblocks.com/reference/get_network-connections). For the other types, this parameter is not needed. name: type: string description: The name of the peer. DestinationTransferPeerPathResponse: allOf: - $ref: "#/components/schemas/TransferPeerPath" - type: object description: >- Destination of the transaction. **Note:** In case the transaction is sent to multiple destinations, the `destinations` parameter is be used instead of this. properties: type: type: string subType: type: string description: In case the type is set to `EXCHANGE_ACCOUNT` or `FIAT_ACCOUNT`, the specific exchange vendor name or fiat vendor name.In case the type is set to `INTERNAL_WALLET` or `EXTERNAL_WALLET`, the subType is set to `Internal` or `External`. id: type: string description: The ID of the peer. You can retrieve the ID of each venue object using the endpoints for [listing vault accounts](https://developers.fireblocks.com/reference/get_vault-accounts-paged), [listing exchange account](https://developers.fireblocks.com/reference/get_exchange-accounts), [listing fiat accounts](https://developers.fireblocks.com/reference/get_fiat-accounts), [listing internal wallets](https://developers.fireblocks.com/reference/get_internal-wallets), [listing external wallets](https://developers.fireblocks.com/reference/get_external-wallets), [listing network connections](https://developers.fireblocks.com/reference/get_network-connections). For the other types, this parameter is not needed. name: type: string description: The name of the peer. TransactionResponse: type: object properties: id: type: string description: ID of the transaction. externalTxId: type: string description: "Unique transaction ID provided by the user. Fireblocks highly recommends setting an `externalTxId` for every transaction created, to avoid submitting the same transaction twice." status: type: string description: "The primary status of the transaction. For details, see [Primary transaction statuses](https://developers.fireblocks.com/reference/primary-transaction-statuses)." subStatus: type: string description: "See [Transaction substatuses](https://developers.fireblocks.com/reference/transaction-substatuses) for the list of transaction sub statuses." txHash: type: string description: >- 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`. operation: $ref: "#/components/schemas/GetTransactionOperation" note: type: string description: Custom note, not sent to the blockchain, that describes the transaction at your Fireblocks workspace. assetId: type: string 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) x-fb-entity: asset source: $ref: "#/components/schemas/SourceTransferPeerPathResponse" sourceAddress: type: string description: >- 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. tag: type: string description: Source address tag for XRP, used as memo for EOS/XLM, or Bank Transfer Description for the fiat provider BLINC (by BCB Group). destination: $ref: "#/components/schemas/DestinationTransferPeerPathResponse" destinations: type: array description: >- The transaction’s destinations. **Note:** In case the transaction is sent to a single destination, the `destination` parameter is used instead of this. items: $ref: "#/components/schemas/TransactionResponseDestination" destinationAddress: type: string description: >- Address where the asset were transferred. Notes: - For [Multi destination transactions](https://support.fireblocks.io/hc/en-us/articles/360018447980-Multi-destination-transactions), this parameter will be empty. In this case, you should refer to the destinations field. - If the status is `CONFIRMING`, `COMPLETED`, or has been `CONFIRMING`; then moved forward to `FAILED` or `REJECTED`, then this parameter will contain the destination address. In any other case, this parameter will be empty. destinationAddressDescription: type: string description: Description of the address. destinationTag: type: string description: >- Destination address tag for XRP, used as memo for EOS/XLM, or Bank Transfer Description for the fiat provider BLINC (by BCB Group). contractCallDecodedData: description: Decoded data for `CONTRACT_CALL` operations. The Fireblocks [development libraries](https://developers.fireblocks.com/docs/ethereum-development#convenience-libraries) are recommended for setting this parameter's value. type: object properties: contractName: type: string functionCalls: type: array items: type: object amountInfo: $ref: "#/components/schemas/AmountInfo" treatAsGrossAmount: type: boolean description: >- For transactions initiated via this Fireblocks workspace, when set to `true`, the fee is deducted from the requested amount. **Note**: This parameter can only be considered if a transaction's asset is a base asset, such as ETH or MATIC. If the asset can't be used for transaction fees, like USDC, this parameter is ignored and the fee is deducted from the relevant base asset wallet in the source account. feeInfo: $ref: "#/components/schemas/FeeInfo" feeCurrency: type: string description: The asset which was withdrawn to pay the transaction fee, for example ETH for EVM-based blockchains, BTC for Tether Omni. networkRecords: type: array description: In case a single transaction resulted with multiple transfers, for example a result of a contract call, then this parameter specifies each transfer that took place on the blockchain. In case of a single transfer transaction, this parameter is empty. items: $ref: "#/components/schemas/NetworkRecord" createdAt: type: number description: The transaction’s creation date and time, in unix timestamp. lastUpdated: type: number description: The transaction’s last update date and time, in unix timestamp. createdBy: type: string description: User ID of the initiator of the transaction. signedBy: type: array description: User ID’s of the signers of the transaction. items: type: string rejectedBy: type: string description: User ID of the user that rejected the transaction (in case it was rejected). authorizationInfo: $ref: "#/components/schemas/AuthorizationInfo" exchangeTxId: type: string description: If the transaction originated from an exchange, this is the ID of this transaction at the exchange. customerRefId: type: string description: The ID for AML providers to associate the owner of funds with transactions. amlScreeningResult: $ref: "#/components/schemas/AmlScreeningResult" extraParameters: $ref: "#/components/schemas/ExtraParameters" signedMessages: type: array items: $ref: "#/components/schemas/SignedMessage" numOfConfirmations: type: number description: The number of confirmations of the transaction. The number will increase until the transaction will be considered completed according to the confirmation policy. blockInfo: $ref: "#/components/schemas/BlockInfo" index: type: number description: >- For UTXO based assets this is the vOut, for Ethereum based, this is the index of the event of the contract call. **Note:** This field is not returned if a transaction uses the `destinations` object with more than one value. rewardInfo: $ref: "#/components/schemas/RewardInfo" systemMessages: $ref: "#/components/schemas/SystemMessageInfo" addressType: type: string enum: - WHITELISTED - ONE_TIME requestedAmount: description: The amount requested by the user. Deprecated - please use the `amountInfo` field for accuracy. type: number deprecated: true amount: description: If the transfer is a withdrawal from an exchange, the actual amount that was requested to be transferred. Otherwise, the requested amount. Deprecated - please use the `amountInfo` field for accuracy. type: number deprecated: true netAmount: description: The net amount of the transaction, after fee deduction. Deprecated - please use the `amountInfo` field for accuracy. type: number deprecated: true amountUSD: description: The USD value of the requested amount. Deprecated - please use the `amountInfo` field for accuracy. type: number nullable: true deprecated: true serviceFee: description: The total fee deducted by the exchange from the actual requested amount (`serviceFee` = `amount` - `netAmount`). Deprecated - please use the `feeInfo` field for accuracy. type: number deprecated: true fee: description: Deprecated - please use the `feeInfo` field for accuracy. type: number deprecated: true networkFee: description: The fee paid to the network. Deprecated - please use the `feeInfo` field for accuracy. type: number deprecated: true TransactionResponseDestination: type: object properties: destination: $ref: "#/components/schemas/DestinationTransferPeerPathResponse" destinationAddress: description: Address where the asset was transferred. destinationAddressDescription: description: Description of the address. amount: type: string description: The amount to be sent to this destination. amountUSD: type: string description: The USD value of the requested amount. amlScreeningResult: $ref: "#/components/schemas/AmlScreeningResult" customerRefId: description: The ID for AML providers to associate the owner of funds with transactions. authorizationInfo: $ref: "#/components/schemas/AuthorizationInfo" NetworkRecord: type: object properties: source: $ref: "#/components/schemas/SourceTransferPeerPathResponse" destination: $ref: "#/components/schemas/DestinationTransferPeerPathResponse" txHash: type: string networkFee: type: string assetId: type: string x-fb-entity: asset netAmount: description: The net amount of the transaction, after fee deduction type: string isDropped: type: boolean type: type: string destinationAddress: type: string sourceAddress: type: string amountUSD: type: string index: type: number rewardInfo: $ref: "#/components/schemas/RewardInfo" AssetTypeResponse: type: object properties: id: type: string name: type: string type: type: string enum: - ALGO_ASSET - BASE_ASSET - BEP20 - COMPOUND - ERC20 - FIAT - SOL_ASSET - TRON_TRC20 - XLM_ASSET - XDB_ASSET contractAddress: type: string nativeAsset: type: string decimals: type: number required: - id - name - type NetworkConnection: type: object properties: localNetworkId: type: string description: The network ID of the profile trying to create the connection. remoteNetworkId: type: string description: The network ID the profile is attempting to connect to. routingPolicy: $ref: "#/components/schemas/NetworkConnectionRoutingPolicy" required: - localNetworkId - remoteNetworkId NetworkConnectionResponse: type: object properties: id: type: string localChannel: allOf: - $ref: "#/components/schemas/NetworkChannel" deprecated: true description: "Deprecated - Replaced by `localNetworkId`" remoteChannel: allOf: - $ref: "#/components/schemas/NetworkChannel" deprecated: true description: "Deprecated - Replaced by `remoteNetworkId`" status: $ref: "#/components/schemas/ConfigChangeRequestStatus" localNetworkId: $ref: "#/components/schemas/NetworkId" remoteNetworkId: $ref: "#/components/schemas/NetworkId" routingPolicy: $ref: "#/components/schemas/NetworkConnectionRoutingPolicy" required: - id - localNetworkId - remoteNetworkId - routingPolicy - status EstimatedTransactionFeeResponse: type: object properties: low: $ref: "#/components/schemas/TransactionFee" medium: $ref: "#/components/schemas/TransactionFee" high: $ref: "#/components/schemas/TransactionFee" required: - low - medium - high EstimatedNetworkFeeResponse: type: object properties: low: $ref: "#/components/schemas/NetworkFee" medium: $ref: "#/components/schemas/NetworkFee" high: $ref: "#/components/schemas/NetworkFee" required: - low - medium - high GasStationPropertiesResponse: type: object properties: balance: type: object configuration: $ref: "#/components/schemas/GasStationConfiguration" required: - low - medium - high TransactionFee: type: object properties: feePerByte: type: string gasPrice: type: string gasLimit: type: string networkFee: type: string baseFee: description: (optional) Base Fee according to EIP-1559 (ETH assets) type: string priorityFee: description: (optional) Priority Fee according to EIP-1559 (ETH assets) type: string maxFeePerGasDelta: description: (optional) Max Fee Per Gas Delta added only for EIP-1559 (ETH assets) type: string l1Fee: description: (optional) Layer 1 fee for Layer 2 chains type: string NetworkFee: type: object properties: feePerByte: type: string gasPrice: type: string networkFee: type: string baseFee: description: (optional) Base Fee according to EIP-1559 (ETH assets) type: string priorityFee: description: (optional) Priority Fee according to EIP-1559 (ETH assets) type: string GasStationConfiguration: type: object properties: gasThreshold: type: string gasCap: type: string maxGasPrice: type: string NetworkChannel: deprecated: true description: "Deprecated in the only used reference - NetworkConnectionResponse" type: object properties: networkId: type: string name: type: string NetworkId: type: object properties: id: type: string name: type: string required: - id - name NetworkIdResponse: allOf: - $ref: "#/components/schemas/NetworkId" - type: object properties: routingPolicy: $ref: "#/components/schemas/NetworkIdRoutingPolicy" isDiscoverable: type: boolean description: The specific network is discoverable. TransactionRequest: type: object properties: operation: $ref: "#/components/schemas/TransactionOperation" note: type: string description: Custom note, not sent to the blockchain, to describe the transaction at your Fireblocks workspace. example: "Ticket 123" externalTxId: type: string description: >- An optional but highly recommended parameter. Fireblocks will reject future transactions with same ID. You should set this to a unique ID representing the transaction, to avoid submitting the same transaction twice. This helps with cases where submitting the transaction responds with an error code due to Internet interruptions, but the transaction was actually sent and processed. To validate whether a transaction has been processed, [Find a specific transaction by external transaction ID](https://developers.fireblocks.com/reference/get_transactions-external-tx-id-externaltxid). There is no specific format required for this parameter. example: "00000000-0000-0000-0000-000000000000" assetId: type: string description: The ID of the asset to transfer, for `TRANSFER`, `MINT` or `BURN` operations. [See the list of supported assets and their IDs on Fireblocks.](https://developers.fireblocks.com/reference/get_supported-assets) x-fb-entity: asset example: ETH source: $ref: "#/components/schemas/TransferPeerPath" destination: $ref: "#/components/schemas/DestinationTransferPeerPath" destinations: type: array description: "For UTXO based blockchains, you can send a single transaction to multiple destinations." items: $ref: "#/components/schemas/TransactionRequestDestination" amount: description: >- For `TRANSFER` operations, the requested amount to transfer, in the asset’s unit. Fireblocks recommends using a numeric string for accurate precision. Although a number input exists, it is deprecated. oneOf: - type: string description: Numeric string (recommended) example: "0.02" - type: number description: Number (deprecated) example: 0.02 treatAsGrossAmount: type: boolean description: >- "When set to `true`, the fee will be deducted from the requested amount." **Note**: This parameter can only be considered if a transaction’s asset is a base asset, such as ETH or MATIC. If the asset can’t be used for transaction fees, like USDC, this parameter is ignored and the fee is deducted from the relevant base asset wallet in the source account. example: false extraParameters: $ref: "#/components/schemas/ExtraParameters" forceSweep: type: boolean description: >- For Polkadot, Kusama and Westend transactions only. When set to true, Fireblocks will empty the asset wallet. **Note:** If set to true when the source account is exactly 1 DOT, the transaction will fail. Any amount more or less than 1 DOT succeeds. This is a Polkadot blockchain limitation. example: false feeLevel: type: string description: For UTXO or EVM-based blockchains only. Defines the blockchain fee level which will be payed for the transaction. Alternatively, specific fee estimation parameters exist below. enum: - LOW - MEDIUM - HIGH example: MEDIUM fee: description: >- For UTXO-based blockchains, the fee per bytes in the asset’s smallest unit (Satoshi, Latoshi, etc.). For Ripple, the fee for the transaction. Fireblocks recommends using a numeric string for accurate precision. Although a number input exists, it is deprecated. oneOf: - type: string description: Numeric string (recommended) - type: number description: Number (deprecated) priorityFee: description: >- For Ethereum-based blockchains only, the fee for EIP-1559 transaction pricing mechanism. Value is in Gwei. Fireblocks recommends using a numeric string for accurate precision. Although a number input exists, it is deprecated. oneOf: - type: string description: Numeric string (recommended) example: "2" - type: number description: Number (deprecated) example: 2 failOnLowFee: type: boolean description: When set to `true`, in case the current `MEDIUM` fee level is higher than the one specified in the transaction, the transaction will fail to avoid getting stuck with no confirmations. maxFee: description: >- The maximum fee (gas price or fee per byte) that should be payed for the transaction. In case the current value of the requested `feeLevel` is higher than this requested maximum fee. Represented by a numeric string for accurate precision. type: string example: "120" gasLimit: description: >- For EVM-based blockchains only. Units of gas required to process the transaction. Note: Only two of the three arguments can be specified in a single transaction: `gasLimit`, `gasPrice` and `networkFee`. Fireblocks recommends using a numeric string for accurate precision. Although a number input exists, it is deprecated. oneOf: - type: string description: Numeric string (recommended) example: "21000" - type: number description: Number (deprecated) example: 21000 gasPrice: description: >- For non-EIP-1559, EVM-based transactions. Price per gas unit (in Ethereum this is specified in Gwei). Note: Only two of the three arguments can be specified in a single transaction: `gasLimit`, `gasPrice` and `networkFee`. Fireblocks recommends using a numeric string for accurate precision. Although a number input exists, it is deprecated. oneOf: - type: string description: Numeric string (recommended) - type: number description: Number (deprecated) networkFee: description: >- For EVM-based blockchains only. The total transaction fee in the blockchain’s largest unit. Note: Only two of the three arguments can be specified in a single transaction: `gasLimit`, `gasPrice` and `networkFee`. Fireblocks recommends using a numeric string for accurate precision. Although a number input exists, it is deprecated. - The transaction blockchain fee. - For Ethereum, you can't pass gasPrice, gasLimit and networkFee all together. - A numeric value representation is required. oneOf: - type: string description: Numeric string (recommended) - type: number description: Number (deprecated) replaceTxByHash: type: string description: For EVM-based blockchains only. In case a transaction is stuck, specify the hash of the stuck transaction to replace it by this transaction with a higher fee, or to replace it with this transaction with a zero fee and drop it from the blockchain. example: "00000000-0000-0000-0000-000000000000" customerRefId: type: string description: The ID for AML providers to associate the owner of funds with transactions. example: "abcdef" autoStaking: type: boolean description: This feature is no longer supported. deprecated: true networkStaking: deprecated: true description: This feature is no longer supported. oneOf: - type: string description: Numeric string (recommended) - type: number description: Number (deprecated) cpuStaking: deprecated: true description: This feature is no longer supported. oneOf: - type: string description: Numeric string (recommended) - type: number description: Number (deprecated) EstimatedFeeRequest: type: object properties: operation: $ref: "#/components/schemas/TransactionOperation" assetId: type: string description: The ID of the asset to transfer, for `TRANSFER`, `MINT` or `BURN` operations. [See the list of supported assets and their IDs on Fireblocks.](https://developers.fireblocks.com/reference/get_supported-assets) x-fb-entity: asset example: ETH source: $ref: "#/components/schemas/TransferPeerPath" destination: $ref: "#/components/schemas/DestinationTransferPeerPath" destinations: type: array description: "For UTXO based blockchains, you can send a single transaction to multiple destinations." items: $ref: "#/components/schemas/TransactionRequestDestination" amount: description: >- For `TRANSFER` operations, the requested amount to transfer, in the asset’s unit. Fireblocks recommends using a numeric string for accurate precision. Although a number input exists, it is deprecated. oneOf: - type: string description: Numeric string (recommended) example: "0.02" - type: number description: Number (deprecated) example: 0.02 treatAsGrossAmount: type: boolean description: >- "When set to `true`, the fee will be deducted from the requested amount." **Note**: This parameter can only be considered if a transaction’s asset is a base asset, such as ETH or MATIC. If the asset can’t be used for transaction fees, like USDC, this parameter is ignored and the fee is deducted from the relevant base asset wallet in the source account. example: false extraParameters: $ref: "#/components/schemas/ExtraParameters" TransactionRequestDestination: type: object properties: amount: type: string destination: $ref: "#/components/schemas/DestinationTransferPeerPath" ExchangeType: type: string enum: - BINANCE - BINANCEUS - BITFINEX - BITHUMB - BITMEX - BITSO - BITSTAMP - BITTREX - CIRCLE - COINBASEPRO - COINMETRO - COINSPRO - CRYPTOCOM - DERIBIT - FTX - FIXUS - GEMINI - HITBTC - HUOBI - KORBIT - KRAKEN - LIQUID - POLONIEX - OKCOIN - OKEX - SEEDCX FiatAccountType: type: string enum: - BLINC ConfigChangeRequestStatus: type: string enum: - WAITING_FOR_APPROVAL - APPROVED - CANCELLED - REJECTED - FAILED TransactionOperation: type: string default: TRANSFER enum: - TRANSFER - BURN - CONTRACT_CALL - MINT - RAW - TYPED_MESSAGE description: > * `TRANSFER` - The default value for an operation. Transfers funds from one account to another. UTXO blockchains allow multi-input and multi-output transfers. All other blockchains allow transfers with one source address and one destination address. * `MINT` - Mints new tokens. Supported for Stellar, Ripple and EVM-based blockchains. * `BURN` - Burns tokens. Supported for Stellar, Ripple and EVM-based blockchains. * `CONTRACT_CALL` - Calls a smart contract method for web3 operations on any EVM blockchain. The Fireblocks [development libraries](https://developers.fireblocks.com/docs/ethereum-development#convenience-libraries) are recommended for building contract call transactions. * `TYPED_MESSAGE` - An off-chain message in either Ethereum Personal Message or EIP712 format. Use it to sign specific readable messages that are not actual transactions. [Learn more about typed messages](https://developers.fireblocks.com/docs/typed-message-signing). * `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) GetTransactionOperation: type: string enum: - TRANSFER - BURN - CONTRACT_CALL - MINT - RAW - TYPED_MESSAGE - ENABLE_ASSET - STAKE - UNSTAKE - WITHDRAW - REDEEM_FROM_COMPOUND - SUPPLY_TO_COMPOUND description: > * `TRANSFER` - Transfers funds from one account to another. UTXO blockchains allow multi-input and multi-output transfers. All other blockchains allow transfers with one source address and one destination address. * `MINT` - Mints new tokens. Supported for Stellar, Ripple and EVM-based blockchains. * `BURN` - Burns tokens. Supported for Stellar, Ripple and EVM-based blockchains. * `CONTRACT_CALL` - Calls a smart contract method for web3 operations on any EVM blockchain. The Fireblocks [development libraries](https://developers.fireblocks.com/docs/ethereum-development#convenience-libraries) are recommended for building contract call transactions. * `TYPED_MESSAGE` - An off-chain message in either Ethereum Personal Message or EIP712 format. Use it to sign specific readable messages that are not actual transactions. [Learn more about typed messages](https://developers.fireblocks.com/docs/typed-message-signing). * `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. Error: type: object properties: message: type: string code: type: number Term: type: object properties: networkConnectionId: type: string outgoing: type: boolean asset: type: string amount: type: string note: type: string operation: type: string SetConfirmationsThresholdRequest: type: object properties: numOfConfirmations: type: number SetConfirmationsThresholdResponse: type: object properties: success: type: boolean transactions: type: array items: type: string DropTransactionRequest: type: object properties: txId: type: string feeLevel: type: string gasPrice: type: string DropTransactionResponse: type: object properties: txStatus: type: string txId: type: string replacedTxHash: type: string UnsignedMessage: type: object properties: content: type: string bip44addressIndex: type: integer bip44change: type: number derivationPath: type: array items: type: number type: type: string enum: - EIP191 - EIP712 - TIP191 - BTC_MESSAGE required: - content SignedMessage: type: object description: A list of signed messages returned for raw signing. properties: content: type: string algorithm: type: string enum: - MPC_ECDSA_SECP256K1 - MPC_EDDSA_ED25519 derivationPath: type: array items: type: number signature: type: object properties: fullSig: type: string r: type: string s: type: string v: type: number publicKey: type: string PublicKeyInformation: type: object properties: algorithm: type: string derivationPath: type: array items: type: number publicKey: type: string TradingAccountType: type: string enum: - COIN_FUTURES - COIN_MARGINED_SWAP - EXCHANGE - FUNDING - FUNDABLE - FUTURES - FUTURES_CROSS - MARGIN - MARGIN_CROSS - OPTIONS - SPOT - USDT_MARGINED_SWAP_CROSS - USDT_FUTURES - UNIFIED ValidateAddressResponse: type: object properties: isValid: type: boolean isActive: type: boolean requiresTag: type: boolean ResendWebhooksResponse: type: object properties: messagesCount: type: number UnspentInputsResponse: type: object properties: input: $ref: "#/components/schemas/UnspentInput" address: type: string amount: type: string confirmations: type: number status: type: string UnspentInput: type: object properties: txHash: type: string index: type: number GetUsersResponse: type: object properties: users: type: array items: $ref: "#/components/schemas/UserResponse" ExtraParameters: type: object description: "Use for protocol / operation specific parameters. For raw signing, pass `rawMessageData` object. For contract calls, pass `contractCallData` string. For UTXO based blockchains inputs selection, pass `inputsSelection` object. Note: `rawMessageData`, `contractCallData`, and `inputsSelection` cannot be used together in the same call." properties: rawMessageData: type: object properties: messages: type: array items: $ref: "#/components/schemas/UnsignedMessage" algorithm: type: string enum: - MPC_ECDSA_SECP256K1 - MPC_ECDSA_SECP256R1 - MPC_EDDSA_ED25519 description: "Object containing messages for raw signing and the algorithm to be used." contractCallData: type: string description: "Hex encoded contract call data as a string." inputsSelection: type: object properties: inputsToSpend: type: array items: $ref: "#/components/schemas/UnspentInput" description: "Inputs that should be used in the transaction." inputsToExclude: type: array items: $ref: "#/components/schemas/UnspentInput" description: "Inputs that shouldn't be used in the transaction." description: "For UTXO based blockchains, selections of inputs for the transaction." NetworkIdRoutingPolicy: type: object properties: crypto: oneOf: - $ref: "#/components/schemas/CustomCryptoRoutingDest" - $ref: "#/components/schemas/NoneNetworkRoutingDest" sen: oneOf: - $ref: "#/components/schemas/CustomFiatRoutingDest" - $ref: "#/components/schemas/NoneNetworkRoutingDest" signet: oneOf: - $ref: "#/components/schemas/CustomFiatRoutingDest" - $ref: "#/components/schemas/NoneNetworkRoutingDest" sen_test: oneOf: - $ref: "#/components/schemas/NoneNetworkRoutingDest" - $ref: "#/components/schemas/CustomFiatRoutingDest" signet_test: oneOf: - $ref: "#/components/schemas/NoneNetworkRoutingDest" - $ref: "#/components/schemas/CustomFiatRoutingDest" NetworkConnectionRoutingPolicy: type: object properties: crypto: oneOf: - $ref: "#/components/schemas/CustomCryptoRoutingDest" - $ref: "#/components/schemas/DefaultNetworkRoutingDest" - $ref: "#/components/schemas/NoneNetworkRoutingDest" sen: oneOf: - $ref: "#/components/schemas/CustomFiatRoutingDest" - $ref: "#/components/schemas/DefaultNetworkRoutingDest" - $ref: "#/components/schemas/NoneNetworkRoutingDest" signet: oneOf: - $ref: "#/components/schemas/DefaultNetworkRoutingDest" - $ref: "#/components/schemas/CustomFiatRoutingDest" - $ref: "#/components/schemas/NoneNetworkRoutingDest" sen_test: oneOf: - $ref: "#/components/schemas/DefaultNetworkRoutingDest" - $ref: "#/components/schemas/NoneNetworkRoutingDest" - $ref: "#/components/schemas/CustomFiatRoutingDest" signet_test: oneOf: - $ref: "#/components/schemas/NoneNetworkRoutingDest" - $ref: "#/components/schemas/CustomFiatRoutingDest" - $ref: "#/components/schemas/DefaultNetworkRoutingDest" CustomFiatRoutingDest: type: object properties: scheme: description: The network routing logic. type: string enum: - CUSTOM dstType: type: string description: The fiat account the funds are being sent to. enum: - FIAT_ACCOUNT dstId: type: string description: The ID of the fiat account the funds are being sent to. required: - scheme - dstType - dstId CustomCryptoRoutingDest: type: object properties: scheme: type: string description: The network routing logic. enum: - CUSTOM dstType: type: string description: The type of destination account the funds are being sent to. enum: - VAULT - EXCHANGE dstId: type: string description: The ID of the destination account the funds are being sent to. required: - scheme - dstType - dstId DefaultNetworkRoutingDest: type: object properties: scheme: type: string description: The network routing logic. enum: - DEFAULT required: - scheme NoneNetworkRoutingDest: type: object properties: scheme: type: string description: No network routing logic. enum: - NONE required: - scheme UserResponse: type: object properties: id: type: string firstName: type: string lastName: type: string role: type: string email: type: string enabled: type: boolean CreateUserGroupResponse: type: object properties: id: type: string name: type: string memberIds: type: array items: type: string status: type: string UserGroupResponse: type: object properties: id: type: string name: type: string status: type: string memberIds: type: array items: type: string UserGroupsResponse: type: array items: $ref: "#/components/schemas/UserGroupResponse" UserGroupCreateResponse: type: object properties: name: type: string id: type: string memberIds: type: array items: type: string status: type: string UserGroupCreateRequest: type: object properties: groupName: type: string memberIds: type: array items: type: string UserGroupUpdateRequest: type: object properties: groupName: type: string memberIds: type: array items: type: string SessionMetadata: type: object properties: appUrl: type: string appName: type: string appDescription: type: string appIcon: type: string required: - appUrl SessionDTO: type: object properties: id: type: string description: Id of the connection example: "4e9e7051-f3b2-48e9-8ee6-b12492552657" userId: type: string description: Id of the user that created the connection sessionMetadata: description: Metadata of the connection (provided by the dApp) allOf: - $ref: "#/components/schemas/SessionMetadata" vaultAccountId: type: number description: The vault to connect example: 1 feeLevel: type: string description: The default fee level example: MEDIUM enum: - MEDIUM - HIGH chainIds: description: The chains approved for the connection example: [ETH, ETH_TEST, SOL] type: array items: type: string connectionType: type: string description: The connection's type example: "WalletConnect" enum: - WalletConnect connectionMethod: type: string description: The method through which the connection was established example: API enum: - DESKTOP - MOBILE - API creationDate: format: date-time type: string description: Timestamp of the session's creation required: - id - userId - sessionMetadata - vaultAccountId - feeLevel - chainIds - connectionType - connectionMethod - creationDate GetConnectionsResponse: type: object properties: data: description: Array with the requested dApp connection's data type: array items: $ref: "#/components/schemas/SessionDTO" paging: $ref: "#/components/schemas/Paging" required: - data CreateConnectionRequest: type: object properties: vaultAccountId: type: number description: The ID of the vault to create a dApp. example: 1 feeLevel: type: string description: The default fee level. Valid values are `MEDIUM` and `HIGH`. example: MEDIUM enum: - MEDIUM - HIGH uri: type: string description: The WalletConnect uri provided by the dApp. example: >- wc:77752975-906f-48f5-b59f-047826ee947e@1?bridge=https%3A%2F%2F0.bridge.walletconnect.org&key=64be99adc6086b7a729b0ec8c7e1f174927ab92e84f5c6f9527050225344a637 chainIds: description: The IDs of the blockchain networks used in the dApp connection. example: - ETH - ETH_TEST type: array items: type: string required: - vaultAccountId - feeLevel - uri Account: type: object properties: accountId: type: string accountType: $ref: "#/components/schemas/AccountType" AccountType: type: string enum: - EXCHANGE_ACCOUNT - UNMANAGED_WALLET - VAULT_ACCOUNT - NETWORK_CONNECTION - FIAT_ACCOUNT required: - accountId - accountType CreateNcwConnectionRequest: type: object properties: ncwId: type: string description: The ID of the Non-Custodial Wallet to connect to the dApp. example: "b8337f1d-bd61-4d6c-afc1-4c9d60aa2132" ncwAccountId: type: number description: The NCW account ID to connect to the dApp. example: 1 feeLevel: type: string description: The default fee level. Valid values are `MEDIUM` and `HIGH`. example: MEDIUM enum: - MEDIUM - HIGH uri: type: string description: The WalletConnect uri provided by the dApp. example: >- wc:77752975-906f-48f5-b59f-047826ee947e@1?bridge=https%3A%2F%2F0.bridge.walletconnect.org&key=64be99adc6086b7a729b0ec8c7e1f174927ab92e84f5c6f9527050225344a637 chainIds: description: The IDs of the blockchain networks used in the dApp connection. example: - ETH type: array items: type: string required: - ncwId - ncwAccountId - feeLevel - uri CreateConnectionResponse: type: object properties: id: type: string description: The ID of the dApp connection initiated. example: 4e9e7051-f3b2-48e9-8ee6-b12492552657 sessionMetadata: description: Metadata of the dApp connection (provided by the dApp). allOf: - $ref: "#/components/schemas/SessionMetadata" required: - id - sessionMetadata RespondToConnectionRequest: type: object properties: approve: type: boolean description: Approval of the initiated dApp connection. example: true required: - approve AddCollateralRequestBody: type: object properties: transactionRequest: $ref: "#/components/schemas/TransactionRequest" isSrcCollateral: type: boolean description: optional RemoveCollateralRequestBody: type: object properties: transactionRequest: $ref: "#/components/schemas/TransactionRequest" isDstCollateral: type: boolean description: optional SettlementRequestBody: type: object properties: mainExchangeAccountId: type: string SettlementResponse: type: object properties: id: type: string initiator: type: string exchangeReply: type: string fireblocksInitiatedTransactions: type: object exchangeRequestedTransactions: $ref: "#/components/schemas/SettlementResponse" GetSettlementResponse: $ref: "#/components/schemas/SettlementResponse" ToExchangeTransaction: type: object properties: assetId: type: string amount: type: string dstAddress: type: string dstTag: type: string description: optional ToCollateralTransaction: type: object properties: asset: type: string amount: type: string srcAddress: type: string srcTag: type: string description: optional fee: type: string description: optional #Paymetns - cross-border XBSettlementConfigCreationRequestBody: type: object properties: name: type: string description: The name for the cross-border settlement configuration corridorId: $ref: "#/components/schemas/XBSettlementCorridorId" steps: $ref: "#/components/schemas/XBSettlementConfigStepsRecord" conversionSlippageBasisPoints: $ref: "#/components/schemas/XBSettlementConversionSlippageBasisPoints" required: - name - corridorId - steps XBSettlementConfigCreationResponse: $ref: "#/components/schemas/XBSettlementConfigModel" XBSettlementConfigEditRequestBody: type: object properties: name: type: string description: The name for the cross-border settlement configuration steps: $ref: "#/components/schemas/XBSettlementConfigStepsRecord" conversionSlippageBasisPoints: $ref: "#/components/schemas/XBSettlementConversionSlippageBasisPoints" required: - name - steps XBSettlementConfigEditResponse: $ref: "#/components/schemas/XBSettlementConfigModel" XBSettlementConfigDeletionResponse: $ref: "#/components/schemas/XBSettlementConfigModel" XBSettlementGetConfigResponse: $ref: "#/components/schemas/XBSettlementConfigModel" XBSettlementGetAllConfigsResponse: type: object properties: configurations: type: array items: $ref: "#/components/schemas/XBSettlementConfigModel" required: - configurations XBSettlementFlowExecutionRequestBody: type: object properties: conversionSlippageBasisPoints: $ref: "#/components/schemas/XBSettlementConversionSlippageBasisPoints" XBSettlementFlowExecutionResponse: $ref: "#/components/schemas/XBSettlementFlowExecutionModel" XBSettlementFlowExecutionStep: type: object properties: id: type: string description: A unique id for the step execution accountId: type: string status: $ref: "#/components/schemas/XBSettlementFlowExecutionStepStatus" inputAmount: $ref: "#/components/schemas/XBSettlementAsset" outputAmount: $ref: "#/components/schemas/XBSettlementAsset" fee: $ref: "#/components/schemas/XBSettlementAsset" startedAt: type: number description: The step execution start time in epoch format. completedAt: type: number description: The step execution end time in epoch format. isSignRequired: type: boolean description: Whether or not signing is required for executing the step. required: - id - accountId - status - inputAmount #- startedAt - isSignRequired XBSettlementFlowExecutionStepStatus: type: string enum: - NOT_STARTED - PROCESSING - COMPLETED - FAILED XBSettlementFlowExecutionStatus: type: string enum: - NOT_LAUNCHED - PROCESSING - COMPLETED - FAILED XBSettlementConfigId: type: string format: uuid description: Cross Bodrder configuraion unique id XBSettlementConfigModel: type: object properties: configId: $ref: "#/components/schemas/XBSettlementConfigId" corridorId: $ref: "#/components/schemas/XBSettlementCorridorId" name: type: string description: The name for the cross-border ettlement configuration steps: $ref: "#/components/schemas/XBSettlementConfigStepsRecord" conversionSlippageBasisPoints: $ref: "#/components/schemas/XBSettlementConversionSlippageBasisPoints" createdAt: type: number description: The creation time in epoch format. required: - configId - name - corridorId - steps - conversionSlippageBasisPoints - createdAt XBSettlementCorridorId: type: string enum: - MX_US - CO_US - US_MX - US_EU - US_UK description: | - MX_US : Mexico (MXN) to USA (USD) - CO_US : Colombia (COP) to USA (USD) - US_MX : USA (USD) to Mexico (MXN) - US_EU : USA (USD) to Europe Union (EUR) - US_UK : USA (USD) to United Kingdon (GBP) XBSettlementConfigStep: type: object properties: stepType: $ref: "#/components/schemas/XBSettlementStepType" accountId: type: string required: - stepType - accountId XBSettlementStepType: type: string enum: - ON_RAMP - VAULT_ACCOUNT - OFF_RAMP - FIAT_DESTINATION description: | - ON_RAMP : A service that allows for the exchange of fiat currencies for cryptocurrencies. An OnRamp input value will always be fiat and output value crypto asset. - VAULT_ACCOUNT : Fireblocks Vault account - OFF_RAMP : A service that allows for the exchange of cryptocurrencies for fiat. An OffRamp input value will always be a crypto asset and output value be fiat. - FIAT_DESTINATION : Fiat account XBSettlementFlowSetupStep: type: object properties: accountId: type: string inputAmount: $ref: "#/components/schemas/XBSettlementAsset" outputAmount: $ref: "#/components/schemas/XBSettlementAsset" estimatedFeeAmount: $ref: "#/components/schemas/XBSettlementAsset" estimatedTime: type: number description: The estimated time for executing the step. isSignRequired: type: boolean description: Whether or not signing is required for executing the step. required: - accountId - inputAmount - outputAmount - estimatedFeeAmount - estimatedTime - isSignRequired XBSettlementGetFlowResponse: type: object properties: preview: $ref: "#/components/schemas/XBSettlementFlowPreviewModel" execution: $ref: "#/components/schemas/XBSettlementFlowExecutionModel" XBSettlementFlowPreviewModel: type: object properties: flowId: type: string description: The unique id for the cross-border flow. configId: $ref: "#/components/schemas/XBSettlementConfigId" conversionRate: type: string description: The conversion rate received from the on-ramp or off-ramp. inputAmount: $ref: "#/components/schemas/XBSettlementAsset" estimatedOutputAmount: $ref: "#/components/schemas/XBSettlementAsset" #description: The *estimated* amount at the end of the cross-border flow execution after all the *estimated* fees totalEstimatedFee: $ref: "#/components/schemas/XBSettlementAsset" #description: Total *estimated* fees for the executing the cross-border flow. totalEstimatedTime: type: number description: The total *estimated* time for executing the cross-border flow. steps: $ref: "#/components/schemas/XBSettlementFlowStepsRecord" required: - flowId - configId - steps - inputAmount - estimatedOutputAmount - totalEstimatedFee - totalEstimatedTime - conversionRate XBSettlementCreateFlowRequestBody: type: object properties: configId: $ref: "#/components/schemas/XBSettlementConfigId" amount: type: string description: The amount to transfer in this cross-border flow. The type of asset is defined by the cross-border settlement configuration. required: - configId - amount XBSettlementCreateFlowResponse: $ref: "#/components/schemas/XBSettlementFlowPreviewModel" XBSettlementFlowExecutionModel: type: object properties: flowId: type: string description: The unique id for the cross-border flow. configId: $ref: "#/components/schemas/XBSettlementConfigId" inputAmount: $ref: "#/components/schemas/XBSettlementAsset" outputAmount: $ref: "#/components/schemas/XBSettlementAsset" totalFee: $ref: "#/components/schemas/XBSettlementAsset" initiatedAt: type: number description: The time the cross-border flow executed in epoch format. initiatedBy: description: The id of the user which launched the flow type: string state: $ref: "#/components/schemas/XBSettlementFlowExecutionStatus" steps: $ref: "#/components/schemas/XBSettlementFlowStepsExecutionRecord" selectedConversionSlippage: type: object description: Indicates the selected slippage used during the flow since override logic may have taken place. properties: basisPoints: type: number reason: $ref: "#/components/schemas/XBSettlementFlowSelectedConversionSlippageReason" required: - basisPoints - reason required: - flowId - configId - steps - inputAmount - outputAmount - totalFee - initiatedAt - initiatedBy - state - selectedConversionSlippage XBSettlementFlowSelectedConversionSlippageReason: type: string enum: - DEFAULT - CONFIG - FLOW XBSettlementFlowStepsExecutionRecord: type: object properties: stepType: $ref: "#/components/schemas/XBSettlementStepType" additionalProperties: $ref: "#/components/schemas/XBSettlementFlowExecutionStep" XBSettlementConfigStepsRecord: type: object properties: stepType: $ref: "#/components/schemas/XBSettlementStepType" additionalProperties: type: object properties: accountId: type: string inputAssetId: $ref: "#/components/schemas/XBSettlementAssetID" outputAssetId: $ref: "#/components/schemas/XBSettlementAssetID" required: - accountId XBSettlementConversionSlippageBasisPoints: type: integer minimum: 0 maximum: 10000 default: 10000 description: | Slippage configuarion in basis points, the default value is 10% XBSettlementFlowStepsRecord: type: object properties: stepType: $ref: "#/components/schemas/XBSettlementStepType" additionalProperties: $ref: "#/components/schemas/XBSettlementFlowSetupStep" XBSettlementAsset: type: object properties: amount: type: string assetId: $ref: "#/components/schemas/XBSettlementAssetID" required: - amount XBSettlementAssetID: oneOf: - $ref: "#/components/schemas/XBSettlementFiatAsset" - $ref: "#/components/schemas/XBSettlementCryptoAsset" XBSettlementFiatAsset: type: string enum: - USD - MXN - COP - EUR - GBP XBSettlementCryptoAsset: type: string enum: - XLM_USDC_5F3T - XLM description: | - XLM_USDC_5F3T : USDC over Stellar network #/Paymetns - cross-border #Payment - Payout CreatePayoutRequest: type: object properties: paymentAccount: $ref: "#/components/schemas/PaymentAccount" instructionSet: type: array items: $ref: "#/components/schemas/PayoutInstruction" required: - paymentAccount - instructionSet PaymentAccount: type: object properties: id: type: string type: $ref: "#/components/schemas/PaymentAccountType" required: - id - type PayoutInstruction: type: object properties: id: type: string payeeAccount: $ref: "#/components/schemas/PayeeAccount" amount: $ref: "#/components/schemas/InstructionAmount" required: - amount - payeeAccount PaymentAccountType: type: string enum: - VAULT_ACCOUNT - EXCHANGE_ACCOUNT PayeeAccount: type: object properties: id: type: string type: $ref: "#/components/schemas/PayeeAccountType" required: - id - type InstructionAmount: type: object properties: amount: type: string assetId: type: string required: - amount - assetId PayeeAccountType: type: string enum: - VAULT_ACCOUNT - EXCHANGE_ACCOUNT - INTERNAL_WALLET - EXTERNAL_WALLET - NETWORK_CONNECTION - FIAT_ACCOUNT description: | - VAULT_ACCOUNT a native Fireblocks vault account - EXCHANGE_ACCOUNT a third-party exchange account - INTERNAL_WALLET a whitelisted address marked as internal to the workspace/organization - EXTERNAL_WALLET a whitelisted address marked as external - NETWORK_CONNECTION a member of the Fireblocks network - FIAT_ACCOUNT a third-party account of a fiat bank (Signature, BCB, etc) PayoutResponse: type: object properties: payoutId: type: string paymentAccount: $ref: "#/components/schemas/PaymentAccountResponse" createdAt: type: number state: $ref: "#/components/schemas/PayoutState" status: $ref: "#/components/schemas/PayoutStatus" reasonOfFailure: type: string description: |
  • INSUFFICIENT_BALANCE
  • SOURCE_TRANSLATION
  • SOURCE_NOT_UNIQUE
  • SOURCE_NOT_FOUND
  • SOURCE_TYPE_NOT_SUPPORTED
  • EMPTY_SOURCE
  • DESTINATION_TRANSLATION
  • DESTINATION_NOT_UNIQUE
  • DESTINATION_NOT_FOUND
  • EMPTY_DESTINATION
  • PARSING
  • UNKNOWN
  • FIREBLOCKS_CLIENT
  • TRANSACTION_SUBMISSION
initMethod: $ref: "#/components/schemas/PayoutInitMethod" instructionSet: type: array items: $ref: "#/components/schemas/PayoutInstructionResponse" reportUrl: type: string required: - payoutId - createdAt - state - status - paymentAccount - instructionSet CreateConfigOperationRequest: oneOf: - $ref: "#/components/schemas/CreateConversionConfigOperationRequest" - $ref: "#/components/schemas/CreateTransferConfigOperationRequest" - $ref: "#/components/schemas/CreateDisbursementConfigOperationRequest" CreateDisbursementConfigOperationRequest: type: object properties: type: $ref: "#/components/schemas/DisbursementOperationType" params: $ref: "#/components/schemas/DisbursementOperationConfigParams" required: - type - params DisbursementOperationConfigParams: type: object properties: paymentAccount: $ref: "#/components/schemas/Account" instructionSet: type: array items: $ref: "#/components/schemas/DisbursementInstruction" required: - instructionSet DisbursementInstruction: oneOf: - $ref: "#/components/schemas/DisbursementAmountInstruction" - $ref: "#/components/schemas/DisbursementPercentageInstruction" DisbursementPercentageInstruction: type: object properties: payeeAccount: $ref: "#/components/schemas/Destination" assetId: type: string percentage: type: string required: - payeeAccount - assetId - percentage Destination: oneOf: - $ref: "#/components/schemas/Account" - $ref: "#/components/schemas/OneTimeAddressAccount" OneTimeAddressAccount: type: object properties: oneTimeAddress: type: string tag: type: string required: - oneTimeAddress DisbursementAmountInstruction: type: object properties: payeeAccount: $ref: "#/components/schemas/Destination" assetId: type: string amount: type: string required: - payeeAccount - assetId - amount DisbursementOperationType: type: string enum: - DISBURSEMENT CreateConversionConfigOperationRequest: type: object properties: type: $ref: "#/components/schemas/ConversionOperationType" params: $ref: "#/components/schemas/ConversionOperationConfigParams" required: - type - params ConversionOperationConfigParams: type: object properties: amount: type: string accountId: type: string srcAssetId: type: string destAssetId: type: string slippageBasisPoints: type: integer minimum: 0 maximum: 10000 required: - destAssetId ConversionOperationType: type: string enum: - CONVERSION CreateTransferConfigOperationRequest: type: object properties: type: $ref: "#/components/schemas/TransferOperationType" params: $ref: "#/components/schemas/TransferOperationConfigParams" required: - type - params TransferOperationConfigParams: type: object properties: amount: type: string assetId: type: string source: $ref: "#/components/schemas/Account" destination: $ref: "#/components/schemas/Destination" required: - destination TransferOperationType: type: string enum: - TRANSFER CorrelationData: x-internal: true oneOf: - type: object additionalProperties: type: string - type: string PreScreening: type: object properties: enabled: type: boolean required: - enabled CreateWorkflowConfigurationRequest: type: object x-internal: true properties: configName: type: string preScreening: $ref: "#/components/schemas/PreScreening" configOperations: type: array items: $ref: "#/components/schemas/CreateConfigOperationRequest" externalCorrelationData: $ref: "#/components/schemas/CorrelationData" required: - configName - configOperations ConfigOperation: oneOf: - $ref: "#/components/schemas/ConversionConfigOperation" - $ref: "#/components/schemas/TransferConfigOperation" - $ref: "#/components/schemas/DisbursementConfigOperation" DisbursementConfigOperation: type: object properties: operationId: type: string type: $ref: "#/components/schemas/DisbursementOperationType" params: $ref: "#/components/schemas/DisbursementOperationConfigParams" status: $ref: "#/components/schemas/ConfigOperationStatus" validationFailure: $ref: "#/components/schemas/DisbursementValidationFailure" required: - operationId - type - params - status DisbursementValidationFailure: type: object properties: reason: type: string enum: - ACCOUNT_NOT_FOUND - ACCOUNT_TYPE_NOT_SUPPORTED - INSUFFICIENT_BALANCE - ASSET_NOT_FOUND - ASSETS_CONTINUITY_MISMATCH - EXCHANGE_BASKETS_MISMATCH - ACCOUNTS_CONTINUITY_MISMATCH - ONE_TIME_ADDRESS_CONTINUITY_NOT_ALLOWED - EQUAL_ACCOUNTS_NOT_ALLOWED - EQUAL_ASSETS_NOT_ALLOWED - INVALID_AMOUNT - UNMANAGED_WALLET_AS_SOURCE_NOT_ALLOWED - MANAGED_OPERATION_PARAMS_INVALID_SCHEMA - INSTRUCTIONS_EXCEED_HUNDRED_PERCENT - INSTRUCTIONS_ARRAY_EMPTY data: type: object additionalProperties: {} required: - reason ConfigOperationStatus: type: string enum: - PENDING - VALIDATION_IN_PROGRESS - READY_FOR_EXECUTION - VALIDATION_FAILED TransferConfigOperation: type: object properties: operationId: type: string type: $ref: "#/components/schemas/TransferOperationType" params: $ref: "#/components/schemas/TransferOperationConfigParams" status: $ref: "#/components/schemas/ConfigOperationStatus" validationFailure: $ref: "#/components/schemas/TransferValidationFailure" required: - operationId - type - params - status TransferValidationFailure: type: object properties: reason: type: string enum: - ACCOUNT_NOT_FOUND - ACCOUNT_TYPE_NOT_SUPPORTED - INSUFFICIENT_BALANCE - ASSET_NOT_FOUND - ASSETS_CONTINUITY_MISMATCH - EXCHANGE_BASKETS_MISMATCH - ACCOUNTS_CONTINUITY_MISMATCH - ONE_TIME_ADDRESS_CONTINUITY_NOT_ALLOWED - EQUAL_ACCOUNTS_NOT_ALLOWED - EQUAL_ASSETS_NOT_ALLOWED - INVALID_AMOUNT - UNMANAGED_WALLET_AS_SOURCE_NOT_ALLOWED - MANAGED_OPERATION_PARAMS_INVALID_SCHEMA data: type: object additionalProperties: true required: - reason ConversionConfigOperation: type: object properties: operationId: type: string type: $ref: "#/components/schemas/ConversionOperationType" params: $ref: "#/components/schemas/ConversionOperationConfigParams" status: $ref: "#/components/schemas/ConfigOperationStatus" validationFailure: $ref: "#/components/schemas/ConversionValidationFailure" required: - operationId - type - params - status ConversionValidationFailure: type: object properties: reason: type: string enum: - ACCOUNT_NOT_FOUND - ACCOUNT_TYPE_NOT_SUPPORTED - INSUFFICIENT_BALANCE - ASSET_NOT_FOUND - ASSETS_CONTINUITY_MISMATCH - EXCHANGE_BASKETS_MISMATCH - ACCOUNTS_CONTINUITY_MISMATCH - ONE_TIME_ADDRESS_CONTINUITY_NOT_ALLOWED - EQUAL_ACCOUNTS_NOT_ALLOWED - EQUAL_ASSETS_NOT_ALLOWED - INVALID_AMOUNT - UNMANAGED_WALLET_AS_SOURCE_NOT_ALLOWED - MANAGED_OPERATION_PARAMS_INVALID_SCHEMA - ACCOUNT_IS_NOT_EXCHANGE - UNSUPPORTED_TRADING_METHOD - ASSETS_CAN_NOT_CONVERTED data: type: object additionalProperties: {} required: - reason TransferOperationExecutionParams: type: object properties: configOperationId: type: string executionParams: type: object properties: amount: type: string assetId: type: string source: $ref: "#/components/schemas/Account" destination: $ref: "#/components/schemas/Destination" required: - configOperationId ConversionOperationExecutionParams: type: object properties: configOperationId: type: string executionParams: type: object properties: amount: type: string accountId: type: string srcAssetId: type: string destAssetId: type: string slippageBasisPoints: type: integer minimum: 0 maximum: 10000 required: - configOperationId WorkflowConfiguration: type: object x-internal: true properties: configId: type: string configName: type: string preScreening: $ref: "#/components/schemas/PreScreening" status: $ref: "#/components/schemas/WorkflowConfigStatus" createdAt: type: number configOperations: type: array items: $ref: "#/components/schemas/ConfigOperation" externalCorrelationData: $ref: "#/components/schemas/CorrelationData" required: - configId - configName - configOperations - createdAt - status WorkflowConfigurationId: type: object properties: configId: type: string required: - configId DisbursementOperationExecutionParams: type: object properties: configOperationId: type: string executionParams: type: object properties: amount: type: string paymentAccount: $ref: "#/components/schemas/Account" instructionSet: type: array items: $ref: "#/components/schemas/DisbursementInstruction" required: - configOperationId WorkflowConfigStatus: type: string enum: - PENDING - VALIDATION_IN_PROGRESS - VALIDATION_FAILED - READY_FOR_EXECUTION ExecutionScreeningOperation: type: object properties: operationId: type: string status: $ref: "#/components/schemas/ExecutionOperationStatus" operationType: $ref: "#/components/schemas/ScreeningOperationType" validationFailure: $ref: "#/components/schemas/ScreeningValidationFailure" execution: $ref: "#/components/schemas/ScreeningOperationExecution" required: - operationId - status - operationType ScreeningOperationExecution: type: object properties: output: $ref: "#/components/schemas/ScreeningOperationExecutionOutput" startedAt: type: number finishedAt: type: number failure: $ref: "#/components/schemas/ScreeningOperationFailure" required: - startedAt ScreeningOperationExecutionOutput: type: object properties: verdicts: type: array items: $ref: "#/components/schemas/ScreeningVerdict" required: - verdicts ScreeningVerdict: type: object properties: verdict: type: string enum: - PASSED - PASSED_WITH_ALERT - REJECTED - FAILED - BYPASSED executionOperationId: type: string account: $ref: "#/components/schemas/Destination" assetId: type: string amount: type: string matchedRule: type: object properties: action: type: string category: type: array items: type: string required: - executionOperationId - account - verdict - assetId - amount ScreeningOperationFailure: type: object properties: reason: type: string enum: - AML_PROCESS_FAILED - SCREENING_REJECTED data: $ref: "#/components/schemas/ScreeningOperationExecutionOutput" required: - reason ExecutionOperationStatus: type: string enum: - PENDING - VALIDATION_IN_PROGRESS - VALIDATION_FAILED - VALIDATION_COMPLETED - PREVIEW_REQUESTED - PREVIEW_IN_PROGRESS - PREVIEW_FAILED - READY_FOR_LAUNCH - EXECUTION_REQUESTED - EXECUTION_IN_PROGRESS - EXECUTION_COMPLETED - EXECUTION_FAILED ScreeningOperationType: type: string enum: - SCREENING ScreeningValidationFailure: type: object properties: reason: type: string enum: - SCREENING_DISABLED_IN_TENANT data: type: object additionalProperties: {} required: - reason ExecutionConversionOperation: type: object properties: operationId: type: string status: $ref: "#/components/schemas/ExecutionOperationStatus" validationFailure: $ref: "#/components/schemas/ConversionValidationFailure" operationType: $ref: "#/components/schemas/ConversionOperationType" preview: $ref: "#/components/schemas/ConversionOperationPreview" execution: $ref: "#/components/schemas/ConversionOperationExecution" required: - operationId - status - operationType ConversionOperationExecution: type: object properties: input: $ref: "#/components/schemas/ConversionOperationConfigParams" output: $ref: "#/components/schemas/ConversionOperationExecutionOutput" startedAt: type: number finishedAt: type: number failure: $ref: "#/components/schemas/ConversionOperationFailure" required: - input - startedAt ConversionOperationFailure: type: object properties: reason: type: string enum: - INVALID_AMOUNT - SLIPPAGE_EXCEEDED - AMOUNT_TOO_SMALL - INSUFFICIENT_FUNDS data: type: object additionalProperties: {} required: - reason ConversionOperationExecutionOutput: type: object properties: amount: $ref: "#/components/schemas/AssetAmount" fee: $ref: "#/components/schemas/AssetAmount" conversionRate: type: string required: - amount - fee - conversionRate AssetAmount: type: object properties: amount: type: string assetId: type: string required: - amount - assetId ConversionOperationPreview: type: object properties: input: $ref: "#/components/schemas/ConversionOperationConfigParams" output: $ref: "#/components/schemas/ConversionOperationPreviewOutput" failure: $ref: "#/components/schemas/ConversionOperationFailure" required: - input ConversionOperationPreviewOutput: type: object properties: amount: $ref: "#/components/schemas/AssetAmount" fee: $ref: "#/components/schemas/AssetAmount" conversionRate: type: string timeSeconds: type: number required: - amount - fee - conversionRate - timeSeconds ExecutionTransferOperation: type: object properties: operationId: type: string status: $ref: "#/components/schemas/ExecutionOperationStatus" validationFailure: $ref: "#/components/schemas/TransferValidationFailure" operationType: $ref: "#/components/schemas/TransferOperationType" preview: $ref: "#/components/schemas/TransferOperationPreview" execution: $ref: "#/components/schemas/TransferOperationExecution" required: - operationId - status - operationType TransferOperationExecution: type: object properties: input: $ref: "#/components/schemas/TransferOperationConfigParams" output: $ref: "#/components/schemas/TransferOperationExecutionOutput" txId: type: string startedAt: type: number finishedAt: type: number failure: $ref: "#/components/schemas/TransferOperationFailure" required: - input - startedAt TransferOperationFailure: type: object properties: reason: type: string enum: - INVALID_AMOUNT - SUBMISSION_FAILED - TRANSACTION_FAILED data: type: object properties: txId: type: string txStatus: type: string txSubStatus: type: string required: - txId - txStatus required: - reason TransferOperationExecutionOutput: type: object properties: amount: $ref: "#/components/schemas/AssetAmount" fee: $ref: "#/components/schemas/AssetAmount" required: - amount - fee TransferOperationPreview: type: object properties: input: $ref: "#/components/schemas/TransferOperationConfigParams" output: $ref: "#/components/schemas/TransferOperationPreviewOutput" failure: $ref: "#/components/schemas/TransferOperationFailure" required: - input TransferOperationPreviewOutput: type: object properties: amount: $ref: "#/components/schemas/AssetAmount" fee: $ref: "#/components/schemas/AssetAmount" isSignRequired: type: boolean timeSeconds: type: number required: - amount - fee - isSignRequired - timeSeconds ConfigOperationSnapshot: oneOf: - $ref: "#/components/schemas/ConfigConversionOperationSnapshot" - $ref: "#/components/schemas/ConfigTransferOperationSnapshot" - $ref: "#/components/schemas/ConfigDisbursementOperationSnapshot" ConfigDisbursementOperationSnapshot: type: object properties: operationId: type: string type: $ref: "#/components/schemas/DisbursementOperationType" params: $ref: "#/components/schemas/DisbursementOperationConfigParams" required: - operationId - type - params ConfigTransferOperationSnapshot: type: object properties: operationId: type: string type: $ref: "#/components/schemas/TransferOperationType" params: $ref: "#/components/schemas/TransferOperationConfigParams" required: - operationId - type - params ConfigConversionOperationSnapshot: type: object properties: operationId: type: string type: $ref: "#/components/schemas/ConversionOperationType" params: $ref: "#/components/schemas/ConversionOperationConfigParams" required: - operationId - type - params ExecutionDisbursementOperation: type: object properties: operationId: type: string status: $ref: "#/components/schemas/ExecutionOperationStatus" validationFailure: $ref: "#/components/schemas/DisbursementValidationFailure" operationType: $ref: "#/components/schemas/DisbursementOperationType" preview: $ref: "#/components/schemas/DisbursementOperationPreview" execution: $ref: "#/components/schemas/DisbursementOperationExecution" required: - operationId - status - operationType DisbursementOperationExecution: type: object properties: input: $ref: "#/components/schemas/DisbursementOperationInput" output: $ref: "#/components/schemas/DisbursementOperationExecutionOutput" payoutId: type: string startedAt: type: number finishedAt: type: number failure: $ref: "#/components/schemas/OperationExecutionFailure" required: - input - startedAt OperationExecutionFailure: type: object properties: reason: type: string data: type: object additionalProperties: {} required: - reason DisbursementOperationExecutionOutput: type: object properties: instructionSet: type: array items: $ref: "#/components/schemas/DisbursementInstructionOutput" required: - instructionSet DisbursementInstructionOutput: type: object properties: amount: $ref: "#/components/schemas/AssetAmount" fee: $ref: "#/components/schemas/AssetAmount" payeeAccount: $ref: "#/components/schemas/Destination" required: - amount - fee - payeeAccount DisbursementOperationInput: type: object properties: amount: type: string paymentAccount: $ref: "#/components/schemas/Account" instructionSet: type: array items: $ref: "#/components/schemas/DisbursementInstruction" required: - paymentAccount - instructionSet DisbursementOperationPreview: type: object properties: input: $ref: "#/components/schemas/DisbursementOperationInput" output: $ref: "#/components/schemas/DisbursementOperationPreviewOutput" failure: $ref: "#/components/schemas/OperationExecutionFailure" required: - input DisbursementOperationPreviewOutput: type: object properties: instructionSet: type: array items: allOf: - $ref: "#/components/schemas/DisbursementInstructionOutput" - type: object properties: timeSeconds: type: number required: - timeSeconds required: - instructionSet WorkflowConfigurationSnapshot: type: object x-internal: true properties: configId: type: string configName: type: string createdAt: type: number configOperations: type: array items: $ref: "#/components/schemas/ConfigOperationSnapshot" externalCorrelationData: $ref: "#/components/schemas/CorrelationData" required: - configId - configName - configOperations - createdAt WorkflowExecutionOperation: oneOf: - $ref: "#/components/schemas/ExecutionScreeningOperation" - $ref: "#/components/schemas/ExecutionConversionOperation" - $ref: "#/components/schemas/ExecutionTransferOperation" - $ref: "#/components/schemas/ExecutionDisbursementOperation" CreateWorkflowExecutionRequest: type: object x-internal: true properties: configId: type: string preScreening: $ref: "#/components/schemas/PreScreening" params: type: array items: anyOf: - $ref: "#/components/schemas/ConversionOperationExecutionParams" - $ref: "#/components/schemas/TransferOperationExecutionParams" - $ref: "#/components/schemas/DisbursementOperationExecutionParams" externalCorrelationData: $ref: "#/components/schemas/CorrelationData" required: - configId - params WorkflowExecution: type: object x-internal: true properties: executionId: type: string preScreening: $ref: "#/components/schemas/PreScreening" configSnapshot: $ref: "#/components/schemas/WorkflowConfigurationSnapshot" executionOperations: type: array items: $ref: "#/components/schemas/WorkflowExecutionOperation" status: type: string enum: - PENDING - VALIDATION_IN_PROGRESS - VALIDATION_FAILED - VALIDATION_COMPLETED - PREVIEW_IN_PROGRESS - PREVIEW_FAILED - READY_FOR_LAUNCH - EXECUTION_IN_PROGRESS - EXECUTION_COMPLETED - EXECUTION_FAILED triggeredBy: type: string triggeredAt: type: number finishedAt: type: number externalCorrelationData: $ref: "#/components/schemas/CorrelationData" required: - executionId - status - executionOperations - configSnapshot PaymentAccountResponse: type: object properties: id: type: string type: $ref: "#/components/schemas/PaymentAccountType" PayoutState: type: string enum: - CREATED - FILE_FOUND - REQUESTED - TRANSLATED - PROCESSING - SUBMITTED - FINALIZED - INSUFFICIENT_BALANCE - FAILED description: | - CREATED - payout instruction set created with all its details - FILE_FOUND - new file found in the FTP - REQUESTED - payout requested with all its details - TRANSLATED - payout instruction account IDs identified and translated - PROCESSING - payout instruction set executed and is processing - SUBMITTED - transactions submitted for payout instructions - FINALIZED - payout finished processing, all transactions processed successfully - INSUFFICIENT_BALANCE - insufficient balance in the payment account (can be a temporary state) - FAILED - one or more of the payout instructions failed PayoutStatus: type: string enum: - REGISTERED - VERIFYING - IN_PROGRESS - DONE - INSUFFICIENT_BALANCE - FAILED description: | - REQUESTED payout requested with all its details - VERIFIED payout instruction set details were verified - PROCESSING payout instruction set executed and is processing - FINALIZED payout done (all payout instructions completed successfully) - INSUFFICIENT_BALANCE insufficient balance in the payment account (can be a temporary state) - FAILED one or more of the payout instructions failed PayoutInitMethod: type: string enum: - FILE - API PayoutInstructionResponse: type: object properties: id: type: string payeeAccount: $ref: "#/components/schemas/PayeeAccountResponse" amount: $ref: "#/components/schemas/InstructionAmount" state: $ref: "#/components/schemas/PayoutInstructionState" transactions: type: array items: $ref: "#/components/schemas/Transaction" required: - amount - payeeAccount - state - transactions PayeeAccountResponse: type: object properties: id: type: string type: $ref: "#/components/schemas/PayeeAccountType" PayoutInstructionState: type: string enum: - NOT_STARTED - TRANSACTION_SENT - COMPLETED - FAILED - TRANSLATION_ERROR - SKIPPED description: | - NOT_STARTED - waiting to start - TRANSACTION_SENT - an underlying transaction was sent - COMPLETED - completed successfully - FAILED - failed - TRANSLATION_ERROR -lookup of the destination failed (due to changes in the underlying whitelisted external wallet or similar) - SKIPPED- no transaction(s) created for this instruction Transaction: type: object properties: id: type: string state: type: string enum: - SUBMITTED - QUEUED - PENDING_AUTHORIZATION - PENDING_SIGNATURE - BROADCASTING - PENDING_3RD_PARTY_MANUAL_APPROVAL - PENDING_3RD_PARTY - PENDING - CONFIRMING - CONFIRMED - COMPLETED - PARTIALLY_COMPLETED - PENDING_AML_SCREENING - CANCELLING - CANCELLED - REJECTED - BLOCKED - FAILED - TIMEOUT timestamp: type: number format: date-time instructionId: type: string required: - id - state DispatchPayoutResponse: type: object properties: payoutId: type: string required: - payoutId #/Payments - Payout TravelRuleAddress: type: object properties: street: type: string example: 1234 Example St description: Street address city: type: string example: New York description: City state: type: string example: NY description: State or province postalCode: type: string example: "10001" description: Postal or ZIP code required: - street - city - state - postalCode TravelRuleValidateTransactionRequest: type: object properties: transactionAsset: type: string example: BTC description: Transaction asset symbol BTC,ETH) destination: type: string example: bc1qxy2kgdygjrsqtzq2n0yrf1234p83kkfjhx0wlh description: Transaction destination address transactionAmount: type: string example: "10" description: Transaction amount in the transaction asset originatorVASPdid: type: string example: did:ethr:0x44957e75d6ce4a5bf37aae117da86422c848f7c2 description: This is the identifier assigned to your VASP originatorEqualsBeneficiary: type: boolean example: false description: '"True" if the originator and beneficiary is the same person and you therefore do not need to collect any information. "False" if it is a third-party transfer.' travelRuleBehavior: type: boolean example: true description: This will also check if the transaction is a TRAVEL_RULE in the beneficiary VASP's jurisdiction beneficiaryVASPdid: type: string example: did:ethr:0x46a7ed5813ce735387df2bfb245bd7722e0de992 description: This is the identifier assigned to the VASP the funds are being sent to beneficiaryVASPname: type: string example: HelloCrypto description: Beneficiary VASP name beneficiaryName: type: string example: John Doe description: Beneficiary name beneficiaryAccountNumber: type: string example: 1234-1234-1234-12234 description: Beneficiary name beneficiaryAddress: example: '{"addressLine: [Wayne Manor, Gotham City, New York, USA]"}' description: Beneficiary name allOf: - $ref: "#/components/schemas/TravelRuleAddress" required: - transactionAsset - destination - transactionAmount - originatorVASPdid - originatorEqualsBeneficiary - travelRuleBehavior - beneficiaryVASPdid - beneficiaryVASPname - beneficiaryName - beneficiaryAccountNumber - beneficiaryAddress TravelRuleValidateTransactionResponse: type: object properties: isValid: type: boolean description: '"isValid" will tell you if you have collected all the information needed for the travel rule data transfer. Once this field = "true", you can move on to the next step which is to transfer the front-end information to your back-end and perform Travel Rule Transaction create' example: true type: type: string description: '"type" will tell you if the virtual asset value converted to FIAT value of the withdrawal request is above (=TRAVELRULE) or below (=BELOW_THRESHOLD) the threshold in your jurisdiction. If it is to an unhosted wallet which does not require travel rule information to be sent and only collected, it will say NON_CUSTODIAL.' example: TRAVELRULE beneficiaryAddressType: type: string description: '"beneficiaryAddressType" will tell you if your blockchain analytics provider or internal address book has been able to identify the wallet address.' example: UNKNOWN addressSource: type: string description: '"addressSource" will tell you if the address was found in your internal address book or identified by the blockchain analytics provider.' example: UNKNOWN beneficiaryVASPdid: type: string description: The VASP DID of the beneficiary VASP example: did:ethr:0x46a7ed5813ce735387df2bfb245bd7722e0de992 beneficiaryVASPname: type: string description: '"beneficiaryVASPname" will tell you the name of the VASP that has been identified as the owner of the wallet address. This name is used in a subsequent call to get its DID.' example: Fireblocks warnings: description: '"errors/warnings" will tell you what information about the beneficiary you need to collect from the sender.' example: - optional-beneficiaryAccountNumber type: array items: type: string required: - isValid - type - beneficiaryAddressType - addressSource - beneficiaryVASPdid - beneficiaryVASPname - warnings TravelRuleTransactionBlockchainInfo: type: object properties: txHash: type: string origin: type: string destination: type: string required: - txHash - origin - destination TravelRulePiiIVMS: type: object properties: fullName: type: string dateOfBirth: type: string placeOfBirth: type: string address: type: string identificationNumber: type: string nationality: type: string countryOfResidence: type: string taxIdentificationNumber: type: string customerNumber: type: string required: - fullName - dateOfBirth - placeOfBirth - address - identificationNumber - nationality - countryOfResidence - taxIdentificationNumber - customerNumber TravelRuleOwnershipProof: type: object properties: type: type: string example: passport description: Type of ownership proof id: type: string example: "123456789" description: Identification number name: type: string example: Alice description: Name of owner country: type: string example: US description: Country of issuance issueDate: type: string example: "2022-01-01" description: Date of issuance issuer: type: string example: US Government description: Name of issuing entity required: - type - id - name - country - issueDate - issuer TravelRuleValidateFullTransactionRequest: type: object properties: transactionAsset: type: string description: The asset involved in the transaction transactionAmount: type: string description: The amount of the transaction originatorDid: type: string description: The DID of the transaction originator beneficiaryDid: type: string description: The DID of the transaction beneficiary originatorVASPdid: type: string description: The VASP ID of the transaction originator beneficiaryVASPdid: type: string description: The VASP ID of the transaction beneficiary beneficiaryVASPname: type: string description: The name of the VASP acting as the beneficiary transactionBlockchainInfo: description: Information about the blockchain transaction allOf: - $ref: "#/components/schemas/TravelRuleTransactionBlockchainInfo" originator: description: Information about the originator of the transaction allOf: - $ref: "#/components/schemas/TravelRulePiiIVMS" beneficiary: description: Information about the beneficiary of the transaction allOf: - $ref: "#/components/schemas/TravelRulePiiIVMS" encrypted: type: string description: Encrypted data related to the transaction protocol: type: string description: The protocol used to perform the travel rule notificationEmail: type: string description: The email address where a notification should be sent upon completion of the travel rule skipBeneficiaryDataValidation: type: boolean description: Whether to skip validation of beneficiary data travelRuleBehavior: type: boolean description: Whether to check if the transaction is a TRAVEL_RULE in the beneficiary VASP's jurisdiction originatorProof: description: Ownership proof related to the originator of the transaction allOf: - $ref: "#/components/schemas/TravelRuleOwnershipProof" beneficiaryProof: description: Ownership proof related to the beneficiary of the transaction allOf: - $ref: "#/components/schemas/TravelRuleOwnershipProof" pii: description: Personal identifiable information related to the transaction allOf: - $ref: "#/components/schemas/TravelRulePiiIVMS" required: - transactionAsset - transactionAmount - originatorDid - beneficiaryDid - originatorVASPdid - beneficiaryVASPdid - beneficiaryVASPname - transactionBlockchainInfo - originator - beneficiary - encrypted - protocol - notificationEmail - skipBeneficiaryDataValidation - travelRuleBehavior - originatorProof - beneficiaryProof - pii TravelRuleIssuer: type: object properties: issuerDid: type: string required: - issuerDid TravelRuleIssuers: type: object properties: yearFounded: $ref: "#/components/schemas/TravelRuleIssuer" isRegulated: $ref: "#/components/schemas/TravelRuleIssuer" regulatoryAuthorities: $ref: "#/components/schemas/TravelRuleIssuer" name: $ref: "#/components/schemas/TravelRuleIssuer" logo: $ref: "#/components/schemas/TravelRuleIssuer" website: $ref: "#/components/schemas/TravelRuleIssuer" legalName: $ref: "#/components/schemas/TravelRuleIssuer" legalStructure: $ref: "#/components/schemas/TravelRuleIssuer" incorporationCountry: $ref: "#/components/schemas/TravelRuleIssuer" businessNumber: $ref: "#/components/schemas/TravelRuleIssuer" addressLine1: $ref: "#/components/schemas/TravelRuleIssuer" city: $ref: "#/components/schemas/TravelRuleIssuer" country: $ref: "#/components/schemas/TravelRuleIssuer" description: $ref: "#/components/schemas/TravelRuleIssuer" required: - yearFounded - isRegulated - regulatoryAuthorities - name - logo - website - legalName - legalStructure - incorporationCountry - businessNumber - addressLine1 - city - country - description TravelRuleVASP: type: object properties: did: type: string name: type: string verificationStatus: type: string addressLine1: type: string addressLine2: type: string city: type: string country: type: string emailDomains: type: string website: type: string logo: type: string legalStructure: type: string legalName: type: string yearFounded: type: string incorporationCountry: type: string isRegulated: type: string otherNames: type: string identificationType: type: string identificationCountry: type: string businessNumber: type: string regulatoryAuthorities: type: string jurisdictions: type: string street: type: string number: type: string unit: type: string postCode: type: string state: type: string certificates: type: string description: type: string travelRule_OPENVASP: type: string travelRule_SYGNA: type: string travelRule_TRISA: type: string travelRule_TRLIGHT: type: string travelRule_EMAIL: type: string travelRule_TRP: type: string travelRule_SHYFT: type: string travelRule_USTRAVELRULEWG: type: string createdAt: type: string createdBy: type: string updatedAt: type: string updatedBy: type: string lastSentDate: type: string lastReceivedDate: type: string documents: type: string hasAdmin: type: boolean isNotifiable: type: boolean issuers: $ref: "#/components/schemas/TravelRuleIssuers" required: - did - name - verificationStatus - addressLine1 - addressLine2 - city - country - emailDomains - website - logo - legalStructure - legalName - yearFounded - incorporationCountry - isRegulated - otherNames - identificationType - identificationCountry - businessNumber - regulatoryAuthorities - jurisdictions - street - number - unit - postCode - state - certificates - description - travelRule_OPENVASP - travelRule_SYGNA - travelRule_TRISA - travelRule_TRLIGHT - travelRule_EMAIL - travelRule_TRP - travelRule_SHYFT - travelRule_USTRAVELRULEWG - createdAt - createdBy - updatedAt - updatedBy - lastSentDate - lastReceivedDate - documents - hasAdmin - isNotifiable - issuers TravelRuleGetAllVASPsResponse: type: object properties: vasps: type: array items: $ref: "#/components/schemas/TravelRuleVASP" required: - vasps TravelRuleUpdateVASPDetails: type: object properties: did: type: string example: did:ethr:0x44957e75d6ce4a5bf37aae117da86422c848f7c2 description: The decentralized identifier of the VASP pii_didkey: type: string example: did:key:z6Mks5CZRaiooKYhq5TwtXQC1gWhwiZnmiKfFrMnYY62MhYf description: The PII DID key of the VASP required: - did - pii_didkey PolicySrcOrDestType: type: string enum: - EXCHANGE - UNMANAGED - VAULT - NETWORK_CONNECTION - COMPOUND - FIAT_ACCOUNT - ONE_TIME_ADDRESS - "*" description: | * EXCHANGE - A third-party exchange account connected to your workspace * UNMANAGED - A unmanaged wallet outside of Fireblocks workspace * VAULT - An account in your Fireblocks Vault * NETWORK_CONNECTION - A connection in your Fireblocks network * COMPOUND - (deprecated) An asset retrieved by using the Compound DeFI protocol * FIAT_ACCOUNT - A third-party fiat account connected to your workspace * ONE_TIME_ADDRESS - A non-whitelisted asset from your Fireblocks Workspace * "*" - All types PolicySrcOrDestSubType: type: string enum: - EXTERNAL - INTERNAL - CONTRACT - EXCHANGETEST - "*" description: | * EXTERNAL - A whitelisted wallet assigned as external is typically used for addresses managed by your clients and counterparties * INTERNAL - A whitelisted wallet assigned as internal, is typically used for addresses that you control outside of your Fireblocks workspace * CONTRACT - A whitelisted wallet assigned as contract is for identifying and managing external smart contracts * EXCHANGETEST - Exchanges which operate only on testnet assets * "*" - All subtypes PolicySrcOrDestId: type: string description: | Defines the account id, options are * "*" - All accounts * Specific account id AmountAggregationTimePeriodMethod: type: string enum: - PER_SINGLE_MATCH - ACROSS_ALL_MATCHES description: | * PER_SINGLE_MATCH - Apply the limit to each listed entity * ACROSS_ALL_MATCHES - Apply the limit to the sum of all listed entities srcOrDestWithIdOnly: type: array description: Defines source or destination component with id attribute only items: type: string minItems: 1 maxItems: 1 srcOrDestWithIdAndType: type: array description: Defines source or destination component with id and type attributes items: type: string enum: - EXCHANGE - UNMANAGED - VAULT - NETWORK_CONNECTION - COMPOUND - FIAT_ACCOUNT - ONE_TIME_ADDRESS - "*" minItems: 2 maxItems: 2 srcOrDestWithAllAttributes: type: array description: Defines source or destination component with id, type and subtype attributes items: type: string enum: - EXCHANGE - UNMANAGED - VAULT - NETWORK_CONNECTION - COMPOUND - FIAT_ACCOUNT - ONE_TIME_ADDRESS - "*" - $ref: "#/components/schemas/PolicySrcOrDestId" - $ref: "#/components/schemas/PolicySrcOrDestType" - $ref: "#/components/schemas/PolicySrcOrDestSubType" minItems: 3 maxItems: 3 PolicyRule: type: object description: Policy rule which is enforced on transactions properties: operator: type: string description: (deprecated - replaced by "operators") | Defines users who can initiate the type of transaction to which the rule applies. options are * "*" - All users are allowed * Specific User id deprecated: true operators: type: object description: Defines users/groups who can initiate the type of transaction to which the rule applies. properties: wildcard: type: string enum: - "*" description: | If used then this property should appear as the only child property * "*" - All users are allowed users: type: array description: Set of users ids items: type: string usersGroups: type: array description: Set of group ids items: type: string services: type: array description: set of services to initiate transactions items: type: string transactionType: type: string enum: - TRANSFER - CONTRACT_CALL - APPROVE - MINT - BURN - SUPPLY - REDEEM - STAKE - RAW - TYPED_MESSAGE description: | Defines the type of transaction to which the rule applies. * TRANSFER - Default. Transfers funds from one account to another * CONTRACT_CALL - Calls a smart contract, mainly for DeFi operations. * APPROVE - Allows a smart contract to withdraw from a designated wallet. * MINT - Perform a mint operation (increase supply) on a supported token * BURN - Perform a burn operation (reduce supply) on a supported token * SUPPLY - Use for DeFi to lend assets * REDEEM - Use for DeFi to get lending back * STAKE - Allows you to allocate and lock certain assets for earning staking rewards. * RAW - An off-chain message with no predefined format, use it to sign any message with your private key. * TYPED_MESSAGE - An off-chain message type that follows a predefined format, used to sign specific messages that are not actual transactions. designatedSigner: type: string description: (deprecated - replaced by "designatedSigners") Id representing the user who signs transactions that match a specific rule deprecated: true designatedSigners: type: object description: Set of ids representing the users who signs transactions that match a specific rule properties: users: type: array description: Set of users ids items: type: string usersGroups: type: array description: Set of group ids items: type: string type: type: string description: Policy rule type enum: - TRANSFER action: type: string enum: - ALLOW - BLOCK - 2-TIER description: | Defines what occurs when a transaction meets the rule's criteria * ALLOW - The transaction goes through and can be signed without requiring additional approvals * BLOCK - The transaction is automatically blocked * 2-TIER - Only these users or user groups can approve If any of them reject the transaction before the required approval threshold is met, the transaction doesn't go through The list of entities are set is "authorizationGroups" field asset: type: string description: | Defines the type of asset being transacted, options are * "*" - All assets * Specific asset srcType: description: (deprecated - replaced by "src") source account type deprecated: true allOf: - $ref: "#/components/schemas/PolicySrcOrDestType" srcSubType: description: (deprecated - replaced by "src") source sub account type deprecated: true allOf: - $ref: "#/components/schemas/PolicySrcOrDestSubType" srcId: description: (deprecated - replaced by "src") source account id deprecated: true allOf: - $ref: "#/components/schemas/PolicySrcOrDestId" src: type: object description: Defines source accounts the rule allows transfers to originate from properties: ids: type: array description: A set of ids in a tuple format items: oneOf: - $ref: "#/components/schemas/srcOrDestWithIdOnly" - $ref: "#/components/schemas/srcOrDestWithIdAndType" - $ref: "#/components/schemas/srcOrDestWithAllAttributes" dstType: description: (deprecated - replaced by "dst") destination account type deprecated: true allOf: - $ref: "#/components/schemas/PolicySrcOrDestType" dstSubType: description: (deprecated - replaced by "dst") destination sub account type deprecated: true allOf: - $ref: "#/components/schemas/PolicySrcOrDestSubType" dstId: description: (deprecated - replaced by "dst") destination account id deprecated: true allOf: - $ref: "#/components/schemas/PolicySrcOrDestId" dst: type: object description: Defines the destination accounts the rule allows transfers to properties: ids: type: array description: A set of ids in a tuple format items: oneOf: - $ref: "#/components/schemas/srcOrDestWithIdOnly" - $ref: "#/components/schemas/srcOrDestWithIdAndType" - $ref: "#/components/schemas/srcOrDestWithAllAttributes" dstAddressType: type: string enum: - WHITELISTED - ONE_TIME - "*" description: | Defines whether the destination to which you are sending funds must be whitelisted, to allow one-time transfers to non-whitelisted external addresses, or both. By default, you can only transfer to an external address after it’s whitelisted. * WHITELISTED - Can only be sent to whitelisted addresses. * ONE_TIME - Can only be sent to non-whitelisted external addresses. * "*" - can be sent to whitelisted addresses or non-whitelisted external amountCurrency: type: string enum: - USD - EUR - NATIVE description: | * USD - Limits the amount of any asset users can transfer based on the USD equivalent of the asset. * EUR - Limits the amount of any asset users can transfer based on the EURO equivalent of the asset. * NATIVE - Limits the amount of an asset a user can transfer when using a specific asset. amountScope: type: string enum: - SINGLE_TX - TIMEFRAME description: | * SINGLE_TX - limit applies to a single transaction * TIMEFRAME - limit applies to all transactions within the defined time period amount: description: Defines the value a transaction must exceed for the rule to apply to it (according to the amountCurrency field) oneOf: - type: string description: Numeric string (recommended) - type: number description: Number (deprecated) periodSec: type: number description: | Time period in seconds applied by the amountScope field to accumulate transferred amounts in transactions that match the rule, until the total exceeds the value you specify under Minimum. When the specified amount is reached within that period, whether by one or many transactions, further transactions in that period either fail or require more approvals. authorizers: type: array description: (deprecated - replaced by "authorizationGroups") Allowed entities which can approves a transaction deprecated: true items: type: string authorizersCount: type: number description: (deprecated - replaced by "authorizationGroups") Min amount of entities which are needed to approve a transaction deprecated: true authorizationGroups: type: object description: Defines the transaction approval terms properties: logic: type: string enum: - AND - OR description: | * AND - requires approval of all authorization groups * OR - requires approval of at least one of the authorization groups allowOperatorAsAuthorizer: type: boolean description: Defines whether the user who initiates a transaction can approve their own transaction and count toward the approval threshold for their transaction groups: type: array description: Groups of entities which can approve the transaction items: type: object properties: users: type: array description: User ids items: type: string usersGroups: type: array description: Group ids items: type: string th: type: number description: Represents the min amount of entities which are required to approve the transaction, default is 1. amountAggregation: type: object description: | Defines the method by which the Policy Engine calculates accumulation. It uses the Initiator, Source, and Destination to calculate accumulation toward the value under Minimum, for the time under Time Period. properties: operators: $ref: "#/components/schemas/AmountAggregationTimePeriodMethod" srcTransferPeers: $ref: "#/components/schemas/AmountAggregationTimePeriodMethod" dstTransferPeers: $ref: "#/components/schemas/AmountAggregationTimePeriodMethod" rawMessageSigning: type: object description: Raw message signing configuration properties: algorithm: type: string derivationPath: type: object properties: path: type: array items: type: number applyForApprove: type: boolean description: Applying this rule over APPROVE type transactions (can only be enabled when rule's transaction type is TRANSFER) applyForTypedMessage: type: boolean description: Applying this rule over TYPED_MESSAGE type transactions (can only be enabled when rule's transaction type is CONTRACT_CALL) externalDescriptor: type: string description: A unique id identifying the rule required: - type - action - asset - amountCurrency - amountScope - amount - periodSec - externalDescriptor PublishResult: type: object description: Response object of the publish policy operation properties: status: $ref: "#/components/schemas/PolicyStatus" rules: type: array items: $ref: "#/components/schemas/PolicyRule" checkResult: $ref: "#/components/schemas/PolicyCheckResult" metadata: $ref: "#/components/schemas/PolicyMetadata" required: - status - rules - checkResult - metadata CreateConsoleUser: type: object properties: firstName: type: string lastName: type: string role: type: string email: type: string required: - firstName - lastName - role - email CreateAPIUser: type: object properties: role: type: string description: User role name: type: string description: users name csrPem: type: string description: only for user with signing capabilities coSignerSetupType: type: string description: cosigner setup type coSignerSetupIsFirstUser: type: boolean description: is first? required: - role - name PolicyStatus: type: string enum: - SUCCESS - UNVALIDATED - INVALID_CONFIGURATION - PENDING - PENDING_CONSOLE_APPROVAL - AWAITING_QUORUM - UNHANDLED_ERROR description: | * SUCCESS - success * UNVALIDATED - not validated yet * INVALID_CONFIGURATION - at least one rule is invalid * PENDING - pending approval * PENDING_CONSOLE_APPROVAL - pending approval from the console app * AWAITING_QUORUM - pending quorum approval * UNHANDLED_ERROR - unhandled error PolicyMetadata: type: object description: Policy related metadata properties: editedBy: type: string description: The user id of the user who last edited the policy editedAt: type: string description: The timestamp of the last edit of the policy publishedBy: type: string description: The user id of the user who last published the policy publishedAt: type: string description: The timestamp of the last publish of the policy PolicyCheckResult: type: object description: Policy rules validation result properties: errors: type: number description: Number of errors result: type: array description: A set of validation results items: $ref: "#/components/schemas/PolicyRuleCheckResult" required: - errors - result PolicyRuleCheckResult: type: object description: The rule validation result properties: index: type: number description: Rule index number in the policy status: type: string description: Validation status enum: - ok - failure errors: type: array description: A set of rule validation error objects items: $ref: "#/components/schemas/PolicyRuleError" required: - index - status - errors PolicyRuleError: type: object description: Rule validation result error properties: errorMessage: type: string description: Error message errorCode: type: number description: error code errorCodeName: type: string description: error code name errorField: type: string enum: - operator - operators - authorizationGroups - designatedSigner - designatedSigners - contractMethods - amountAggregation - src - dst description: | The field which the error relates to * operator - transaction initiator * operators - transaction initiators * authorizationGroups - transaction authorizer groups * designatedSigner - transaction signer * designatedSigners - transaction signers * contractMethods - contract methods * amountAggregation - transaction amount aggregation configuration * src - transaction source asset configuration * dst - transaction destination asset configuration required: - errorMessage - errorCode - errorCodeName - errorField DraftReviewAndValidationResponse: type: object description: Draft validation properties: draftResponse: $ref: "#/components/schemas/DraftResponse" validation: $ref: "#/components/schemas/PolicyValidation" required: - draftResponse - validation PolicyAndValidationResponse: type: object description: Policy validation properties: policy: $ref: "#/components/schemas/PolicyResponse" validation: $ref: "#/components/schemas/PolicyValidation" required: - policy - validation DraftResponse: type: object description: Response object for draft operations properties: status: type: string description: Operation status rules: type: array description: Draft rules items: $ref: "#/components/schemas/PolicyRule" draftId: type: string description: Draft unique id metadata: $ref: "#/components/schemas/PolicyMetadata" required: - draftId - status - rules - metadata PolicyResponse: type: object description: Response object for policy operations properties: rules: type: array description: A set of policy rules items: $ref: "#/components/schemas/PolicyRule" metadata: $ref: "#/components/schemas/PolicyMetadata" required: - rules - metadata PolicyValidation: type: object description: Policy validation object properties: status: type: string description: Validation status checkResult: $ref: "#/components/schemas/PolicyCheckResult" required: - status - checkResult ErrorResponse: type: object properties: error: type: object properties: type: type: string enum: - INTERNAL - AUTHENTICATION - AUTHORIZATION - VALIDATION - NOT_FOUND - UNPROCESSABLE_ENTITY - FORBIDDEN message: type: string required: - type - message required: - error SmartTransferForbiddenResponse: type: object properties: message: type: string description: Forbidden error code example: You do not have permission to execute this action code: type: string description: Error code example: 3002 required: - message - code SmartTransferBadRequestResponse: type: object properties: message: type: string description: Bad request error message example: Your request contains invalid data code: type: string description: Bad request error code example: 2e7a7a5d-c85c-4ea5-9adf-668cba8b4eb4 required: - message - code SmartTransferTicketResponseDto: type: object properties: message: type: string description: Result message example: Success nullable: true data: description: Data object with result data nullable: true allOf: - $ref: "#/components/schemas/SmartTransferTicketDto" required: - message SmartTransferTicketTermResponseDto: type: object properties: message: type: string description: Result message example: Success nullable: true data: description: Data object with result data nullable: true allOf: - $ref: "#/components/schemas/SmartTransferTicketTermDto" required: - message SmartTransferCreateTicketTermDto: type: object properties: asset: type: string description: Asset name example: BTC x-fb-entity: asset amount: type: number description: Amount example: "133.789161216184" fromNetworkId: type: string description: Identifier of the origination Network Profile example: 947c6115-1f5f-4fb4-9fd6-a1f9dee14670 toNetworkId: type: string description: Identifier of the destination Network Profile example: 5d009697-c29b-48e0-aff8-1f4305d19dc2 required: - asset - amount - fromNetworkId - toNetworkId SmartTransferTicketTermDto: type: object properties: id: type: string description: Unique id of Smart Transfer ticket term example: 84601ee2-b10f-4aa8-be9c-dba259a3533a ticketId: type: string description: Unique id of Smart Transfer ticket example: 900f04c3-83bc-428d-b681-aef682059637 asset: type: string description: Asset name example: BTC x-fb-entity: asset amount: type: number description: Amount example: "133.789161216184" fromNetworkId: type: string description: Identifier of the origination Network Profile example: 947c6115-1f5f-4fb4-9fd6-a1f9dee14670 fromNetworkIdName: type: string description: Source network name example: Source network profile name toNetworkId: type: string description: Identifier of the destination Network Profile example: 5d009697-c29b-48e0-aff8-1f4305d19dc2 toNetworkIdName: type: string description: Destination network name example: Destination network profile name txHash: type: string description: Blockchain TX hash example: "0x2446f1fd773fbb9f080e674b60c6a033c7ed7427b8b9413cf28a2a4a6da9b56c" nullable: true fbTxId: type: string description: >- Fireblocks transaction ID. It is set when the funding transaction is created. example: 79075e8c-1fd9-4c97-9575-3bd9229e5c0d nullable: true txStatus: type: string description: Ticket term transaction status example: COMPLETED nullable: true enum: - queued - submitted - pendingSignature - pendingAuthorization - broadcasting - confirming - pendingAmlScreening - completed - cancelled - failed - rejected - blocked - thirdPartyPendingManualApproval - thirdPartyPending - partiallyCompleted - cancelling status: type: string description: Ticket term status example: CREATED nullable: false enum: - CREATED - FUNDING - FUNDING_FAILED - FUNDED - REJECTED createdAt: format: date-time type: string description: Date and time when the term is created. example: "2023-03-01T11:23:00Z" updatedAt: format: date-time type: string description: Date and time of last term update. example: "2023-03-01T11:23:00Z" required: - id - ticketId - asset - amount - fromNetworkId - fromNetworkIdName - toNetworkId - toNetworkIdName - txHash - fbTxId - txStatus - status - createdAt - updatedAt SmartTransferCreateTicketDto: type: object properties: createdByNetworkId: type: string type: type: string enum: - ASYNC expiresIn: type: number minimum: 1 maximum: 48 description: >- Number of hours after which an OPEN ticket will expire if no term is funded. terms: type: array items: $ref: "#/components/schemas/SmartTransferCreateTicketTermDto" externalRefId: type: string maxLength: 64 note: type: string maxLength: 1024 submit: type: boolean required: - createdByNetworkId - type SmartTransferTicketFilteredResponseDto: type: object properties: message: type: string description: Result message example: Success nullable: true after: type: string description: >- Returns last skipped id if any preceding elements are skipped in result. example: 118320d2-761f-46c7-96cf-65e71a370b36 data: description: Result that match given query criteria type: array items: $ref: "#/components/schemas/SmartTransferTicketDto" required: - message - after - data SmartTransferTicketDto: type: object properties: id: type: string description: Unique id of Smart Transfer ticket example: 118320d2-761f-46c7-96cf-65e71a370b36 type: type: string enum: - ASYNC description: Kind of Smart Transfer. Can be either `ASYNC` or `ATOMIC` example: ASYNC direction: enum: - EXCHANGE - SEND - RECEIVE - INTERMEDIATE type: string description: Direction of Smart Transfer. example: EXCHANGE status: enum: - DRAFT - PENDING_APPROVAL - OPEN - IN_SETTLEMENT - FULFILLED - EXPIRED - CANCELED type: string description: Current status of Smart Transfer ticket example: DRAFT terms: description: Ticket terms (legs) example: - id: 84601ee2-b10f-4aa8-be9c-dba259a3533a ticketId: 118320d2-761f-46c7-96cf-65e71a370b36 amount: "10.00" asset: ETH fromNetworkId: 947c6115-1f5f-4fb4-9fd6-a1f9dee14670 toNetworkId: 5d009697-c29b-48e0-aff8-1f4305d19dc2 status: CREATED - id: 84601ee2-b10f-4aa8-be9c-dba259a3533a ticketId: 118320d2-761f-46c7-96cf-65e71a370b36 amount: "10.00" asset: ETH fromNetworkId: 947c6115-1f5f-4fb4-9fd6-a1f9dee14670 fromNetworkIdName: Source network profile 1 toNetworkId: 5d009697-c29b-48e0-aff8-1f4305d19dc2 toNetworkIdName: Destination network profile 1 status: FUNDING connectionId: 14817440-d5c8-4dbd-a754-ad415683610c fbTxId: 79075e8c-1fd9-4c97-9575-3bd9229e5c0d createdAt: 2023-03-01T11:23:00.000Z updatedAt: 2023-03-01T11:23:00.000Z - id: 84601ee2-b10f-4aa8-be9c-dba259a3533a ticketId: 118320d2-761f-46c7-96cf-65e71a370b36 amount: "10.00" asset: ETH fromNetworkId: 947c6115-1f5f-4fb4-9fd6-a1f9dee14670 fromNetworkIdName: Source network profile 2 toNetworkId: 5d009697-c29b-48e0-aff8-1f4305d19dc2 toNetworkIdName: Destination network profile 2 status: FUNDED connectionId: 14817440-d5c8-4dbd-a754-ad415683610c fbTxId: 79075e8c-1fd9-4c97-9575-3bd9229e5c0d txHash: >- 0xb5c8bd9430b6cc87a0e2fe110ece6bf527fa4f170a4bc8cd032f768fc5219838 createdAt: 2023-03-01T11:23:00.000Z updatedAt: 2023-03-01T11:23:00.000Z type: array items: $ref: "#/components/schemas/SmartTransferTicketTermDto" expiresIn: type: number description: >- Number of hours for expiration.This data is valid only it ticket not in DRAFT state and it will be used to calculate expiresAt value example: "13" expiresAt: format: date-time type: string description: >- Date and time at which the ticket will expire if no funding is performed. example: "2023-03-01T11:23:00Z" submittedAt: format: date-time type: string description: Date and time when ticket is submitted. example: "2023-03-01T11:23:00Z" expiredAt: format: date-time type: string description: Date and time when ticket is expired. example: "2023-03-01T11:23:00Z" canceledAt: format: date-time type: string description: Date and time when ticket is canceled. example: "2023-03-01T11:23:00Z" fulfilledAt: format: date-time type: string description: Date and time when ticket is fulfilled. example: "2023-03-01T11:23:00Z" externalRefId: type: string description: External Ref ID for Smart Transfer ticket. example: 2631ffb9d8fe47c6b0825b5be28297da note: type: string description: Note example: Random note createdByNetworkId: type: string description: ID of network profile that created ticket example: 3eaa94c5-128b-4835-bb08-3111bb6564c7 createdByNetworkIdName: type: string description: Name of network profile that created ticket example: Network id name canceledByNetworkIdName: type: string description: Name of network profile that canceled ticket example: Network id name createdAt: format: date-time type: string description: Date and time at which the ticket is created. example: "2023-03-01T11:23:00Z" updatedAt: format: date-time type: string description: Date and time of last ticket update. example: "2023-03-01T11:23:00Z" canceledByMe: type: boolean createdByMe: type: boolean required: - id - type - status - createdByNetworkId - createdByNetworkIdName - createdAt - updatedAt SmartTransferNotFoundResponse: type: object properties: message: type: string description: Not found error message example: Requested entity not found code: type: string description: Error code example: c943bdb8-ada0-4ba6-8645-74fcf188a10f required: - message - code SmartTransferSetTicketExpirationDto: type: object properties: expiresIn: type: number description: >- Sets ticket expiration time (in hours) after a ticket is submitted. If no funding source is set to any term, the ticket will automatically expire after given time. minimum: 1 maximum: 48 required: - expiresIn SmartTransferSetTicketExternalIdDto: type: object properties: externalRefId: type: string minLength: 5 maxLength: 64 description: >- Each workspace can set their own external id they want to refer to this Ticket required: - externalRefId SmartTransferSubmitTicketDto: type: object properties: expiresIn: type: number description: >- Sets the ticket expiration time (in hours) after the ticket is submitted. If no funding source is set for any term, the ticket will automatically expire after given time. minimum: 1 maximum: 48 required: - expiresIn SmartTransferUpdateTicketTermDto: type: object properties: asset: type: string description: Asset name example: BTC x-fb-entity: asset amount: type: number description: Amount example: "133.789161216184" fromNetworkId: type: string description: Identifier of the origination Network Profile example: 947c6115-1f5f-4fb4-9fd6-a1f9dee14670 toNetworkId: type: string description: Identifier of the destination Network Profile example: 5d009697-c29b-48e0-aff8-1f4305d19dc2 required: - asset - amount - fromNetworkId - toNetworkId SmartTransferFundTermDto: type: object properties: asset: type: string description: Asset name example: BTC x-fb-entity: asset amount: type: string description: Amount example: "133.789161216184" networkConnectionId: type: string description: Id of the network connection used. example: 0805153d-e77d-4f9b-8818-e507eeb2d122 srcId: type: string description: Id of the vault that is used as the source of the asset. example: "2" srcType: type: string description: Source of the asset. example: VAULT_ACCOUNT fee: type: string description: Transaction fee example: "0.001" feeLevel: type: string description: Transaction fee level. example: MEDIUM required: - asset - amount - networkConnectionId - srcId - srcType SmartTransferManuallyFundTermDto: type: object properties: txHash: type: string maxLength: 64 required: - txHash SmartTransferUserGroupsResponseDto: type: object properties: message: type: string description: Result message example: Success nullable: true data: description: Data object with result data nullable: true allOf: - $ref: "#/components/schemas/SmartTransferUserGroupsDto" required: - message SmartTransferUserGroupsDto: type: object properties: userGroupIds: description: Data object with result data nullable: true type: array items: type: string required: - userGroupIds SmartTransferSetUserGroupsDto: type: object properties: userGroupIds: type: array items: type: string required: - userGroupIds #/staking AdditionalInfoDto: type: object properties: estimatedAnnualReward: type: number example: 6.48 description: The estimated annual reward rate for the blockchain, represented as a decimal percentage value. lockupPeriod: type: number example: 172800000 description: The duration of the lockup period for certain actions on the blockchain, measured in milliseconds. activationPeriod: type: number example: 172800000 description: The duration of the activation period for certain actions on the blockchain, measured in milliseconds. required: - estimatedAnnualReward - lockupPeriod - activationPeriod ChainInfoResponseDto: type: object properties: chainDescriptor: type: string example: SOL description: The protocol identifier (e.g. "ETH"/"SOL"). currentEpoch: type: number example: 483 description: The current epoch number of the blockchain network. epochElapsed: type: number example: 0.31 description: The percentage of time that has elapsed within the current epoch, represented as a decimal value between 0 and 1. epochDuration: type: number example: 172800000 description: The total duration in milliseconds of a single epoch. additionalInfo: description: Additional information related to the blockchain. This may include extra details about the blockchain network. allOf: - $ref: "#/components/schemas/AdditionalInfoDto" required: - chainDescriptor - currentEpoch - epochElapsed - epochDuration - additionalInfo StakeRequestDto: type: object properties: vaultAccountId: type: string example: "22" description: The source vault account to stake from providerId: type: string example: kiln description: The ID of the provider stakeAmount: type: string example: "32" description: Amount of tokens to stake txNote: type: string example: stake request id CcaHc2L43ZWjwCHART3oZoJvHLAe9hzT2DJNUpBzoTN1 of 32ETH created on 02.04.23 description: The note to associate with the stake transactions. fee: type: string example: "7" description: Represents the fee for a transaction, which can be specified as a percentage value. Only one of fee/feeLevel is required. feeLevel: type: string example: MEDIUM description: Represents the fee level for a transaction, which can be set as slow, medium, or fast. Only one of fee/feeLevel is required. required: - vaultAccountId - providerId - stakeAmount StakeResponseDto: type: object properties: id: type: string example: b70701f4-d7b1-4795-a8ee-b09cdb5b850d description: The unique identifier of the staking position required: - id UnstakeRequestDto: type: object properties: id: type: string example: b70701f4-d7b1-4795-a8ee-b09cdb5b850d description: id of position to unstake fee: type: string example: "7" description: Represents the fee for a transaction, which can be specified as a percentage value. Only one of fee/feeLevel is required. feeLevel: type: string example: MEDIUM description: Represents the fee level for a transaction, which can be set as slow, medium, or fast. Only one of fee/feeLevel is required. txNote: type: string example: "unstake request id b70701f4-d7b1-4795-a8ee-b09cdb5b850d #SOL" description: The note to associate with the transactions. required: - id UnstakeResponseDto: type: object properties: {} WithdrawRequestDto: type: object properties: id: type: string example: b70701f4-d7b1-4795-a8ee-b09cdb5b850d description: id of position to withdraw fee: type: string example: "7" description: Represents the fee for a transaction, which can be specified as a percentage value. Only one of fee/feeLevel is required. feeLevel: type: string example: MEDIUM description: Represents the fee level for a transaction, which can be set as slow, medium, or fast. Only one of fee/feeLevel is required. txNote: type: string example: "withdraw request id b70701f4-d7b1-4795-a8ee-b09cdb5b850d #ETH" description: The note to associate with the transactions. required: - id WithdrawResponseDto: type: object properties: {} ClaimRewardsRequestDto: type: object properties: id: type: string example: b70701f4-d7b1-4795-a8ee-b09cdb5b850d description: id of position to withdraw rewards from fee: type: string example: "7" description: Represents the fee for a transaction, which can be specified as a percentage value. Only one of fee/feeLevel is required. feeLevel: type: string example: MEDIUM description: Represents the fee level for a transaction, which can be set as slow, medium, or fast. Only one of fee/feeLevel is required. txNote: type: string example: claim rewards request id b70701f4-d7b1-4795-a8ee-b09cdb5b850d description: The note to associate with the transactions. required: - id ClaimRewardsResponseDto: type: object properties: {} RelatedTransactionDto: type: object properties: txId: type: string example: b70601f4-d7b1-4795-a8ee-b09cdb4r850d description: The transaction ID completed: type: boolean example: true description: Is the transaction completed or not required: - txId - completed SolanaBlockchainDataDto: type: object properties: stakeAccountAddress: type: string example: 3Ru67FyzMTcdENmmRL4Eve4dtPd6AdpuypR21q5EQCdq description: The stake account address matching the stakeAccountId. required: - stakeAccountAddress DelegationDto: type: object properties: id: type: string example: b70701f4-d7b1-4795-a8ee-b09cdb5b850d description: The unique identifier of the staking position vaultAccountId: type: string example: "2" description: The source vault account to stake from validatorName: type: string example: FwR3P......tT59f description: The destination validator address name providerName: type: string example: Kiln description: The destination validator provider name chainDescriptor: type: string example: SOL description: The protocol identifier (e.g. "ETH"/ "SOL") to use amount: type: string example: "0.05" description: Amount of tokens to stake, measured in the staked asset unit. rewardsAmount: type: string example: "0.000856038" description: The amount staked in the position, measured in the staked asset unit. dateCreated: type: string example: "2023-07-13T15:55:34.256Z" description: When was the request made (ISO Date). status: enum: - error - failed - creating - canceled - pending - activating - active - deactivating - deactivated - withdrawing - withdrawn type: string example: active description: The current status. relatedTransactions: example: - txId: b70601f4-d7b1-4795-a8ee-b09cdb4r850d completed: true - txId: c80601f4-d7b1-4795-a8ee-b09cdb5b450c completed: false description: An array of transaction objects related to this position. Each object includes a 'txId' representing the transaction ID and a 'completed' boolean indicating if the transaction was completed. type: array items: $ref: "#/components/schemas/RelatedTransactionDto" validatorAddress: type: string example: FwR3PbjS5iyqzLiLugrBqKSa5EKZ4vK9SKs7eQXtT59f description: The destination address of the staking transaction. providerId: type: string example: kiln description: The unique identifier of the staking provider availableActions: example: - unstake description: An array of available actions that can be performed. for example, actions like "unstake" or "withdraw". type: array items: type: string inProgress: type: boolean example: true description: Indicates whether there is an ongoing action for this position (true if ongoing, false if not). inProgressTxId: type: string example: c80601f4-d7b1-4795-a8ee-b09cdb5b450c description: The transaction ID of the ongoing request blockchainPositionInfo: example: stakeAccountAddress: 3Ru67FyzMTcdENmmRL4Eve4dtPd6AdpuypR21q5EQCdq description: Additional fields per blockchain - can be empty or missing if not initialized or no additional info exists. The type depends on the chainDescriptor value. For Solana (SOL), stake account address. For Ethereum (ETH), an empty object is returned as no specific data is available. allOf: - $ref: "#/components/schemas/SolanaBlockchainDataDto" required: - id - vaultAccountId - validatorName - providerName - chainDescriptor - amount - rewardsAmount - dateCreated - status - relatedTransactions - validatorAddress - providerId - availableActions - inProgress - blockchainPositionInfo amountAndChainDescriptor: type: object properties: chainDescriptor: type: string example: ETH description: The protocol identifier (e.g. "ETH"/"SOL") for summary amount: type: string example: "32.007149606" description: Cryptocurrency quantity required: - chainDescriptor - amount DelegationSummaryDto: type: object properties: active: description: An array of objects containing chain descriptors and associated amounts, representing active positions. type: array items: $ref: "#/components/schemas/amountAndChainDescriptor" inactive: description: An array of objects containing chain descriptors and associated amounts, representing inactive positions. type: array items: $ref: "#/components/schemas/amountAndChainDescriptor" rewardsAmount: description: An array of objects containing chain descriptors and associated amounts, representing rewards positions. type: array items: $ref: "#/components/schemas/amountAndChainDescriptor" totalStaked: description: An array of objects with chain descriptors and total staked amounts, representing the combined staked totals of active and inactive positions. type: array items: $ref: "#/components/schemas/amountAndChainDescriptor" required: - active - inactive - rewardsAmount - totalStaked ValidatorDto: type: object properties: chainDescriptor: type: string example: SOL description: The protocol identifier (e.g. "ETH"/"SOL") of the validator feePercent: type: number example: 5 description: The service fee as a percentage out of the earned rewards required: - chainDescriptor - feePercent ProviderDto: type: object properties: id: type: string example: kiln description: The ID of the provider providerName: type: string example: Kiln description: Name of the provider validators: example: - chainDescriptor: SOL feePercent: 5 - chainDescriptor: ETH feePercent: 7 description: An array of objects that includes chain descriptors and the corresponding fee percentages for validators supported by the provider type: array items: $ref: "#/components/schemas/ValidatorDto" iconUrl: type: string example: https://static.fireblocks.io/staking/validators/kiln_console.png description: URL to the validator's icon termsOfServiceUrl: type: string example: https://www.kiln.fi/terms-and-conditions-for-fireblocks-customers description: URL to the terms of service isTermsOfServiceApproved: type: boolean example: true description: Indicates whether the terms of service are approved required: - id - providerName - validators - iconUrl - termsOfServiceUrl - isTermsOfServiceApproved ProvidersResponseDto: type: object properties: {} parameters: X-Idempotency-Key: name: Idempotency-Key in: header 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. required: false schema: type: string X-End-User-Wallet-Id: name: X-End-User-Wallet-Id in: header description: >- Unique ID of the End-User wallet to the API request. Required for end-user wallet operations. required: false schema: type: string format: uuid