# Create a new XRP Clawback transaction Create a new XRP Clawback transaction to recover issued tokens Endpoint: POST /v2/vaults/{vaultId}/wallets/{walletId}/transactions/xrp/clawback Version: 2.0 Security: TokenAuth ## Path parameters: - `vaultId` (string, required) The vault ID - `walletId` (string, required) The wallet ID ## Request fields (application/json): - `amount` (object, required) - `amount.value` (string, required) The quantity of the asset Example: "155.672" - `amount.asset` (string, required) The asset symbol Example: "USD" - `amount.issuer` (string) The contract/issuing address. Optional if asset is XRP. Example: "0xdAC17F958D2ee523a2206206994597C13D831ec7" - `holder` (string) Optional holder address for MPTokens Example: "rGgKM3hTn8MBMGgiiPMbz73VEkSBocqab6" - `sequence` (string) The blockchain nonce/sequence to use Example: "2" - `lastLedgerSequence` (string) Highest ledger index this transaction can appear in. Example: "123456" - `sourceTag` (string) Source tag to use for this transaction Example: "123456" ## Response 200 fields (application/json): - `id` (string, required) The transaction ID Example: "ce4918bf-a199-4ce2-85a3-d0d296855384" - `walletId` (string, required) The wallet ID Example: "ce4918bf-a199-4ce2-85a3-d0d296855384" - `vaultId` (string, required) The vault ID Example: "ce4918bf-a199-4ce2-85a3-d0d296855384" - `organizationId` (string, required) The organization ID Example: "ce4918bf-a199-4ce2-85a3-d0d296855384" - `createdBy` (string, required) The ID of the user that created the transaction Example: "ce4918bf-a199-4ce2-85a3-d0d296855384" - `createdAt` (string, required) The date and time the transaction was created Example: "2022-03-29T10:22:22.420Z" - `updatedAt` (string, required) The date and time the transaction was updated Example: "2022-03-29T10:22:22.420Z" - `attributes` (object) - `status` (string, required) Enum: "REQUESTED", "POLICY_CHECK_PENDING", "POLICY_CHECK_PASSED", "APPROVAL_CHECK_PENDING", "APPROVAL_CHECK_PASSED", "COMPILATION_PENDING", "COMPILED", "SIGNATURE_PENDING", "SIGNED", "PUBLISH_PENDING", "PUBLISHED", "CONFIRMATION_PENDING", "CONFIRMED", "REJECTED", "FAILED" - `action` (string, required) Enum: "DEPOSIT", "WITHDRAWAL", "WEB3_RAW", "WEB3_SIGN", "PASSKEY_RAW", "PASSKEY_SIGN", "PALISADE_TRANSFER", "PALISADE_RAW", "PALISADE_MANAGED", "PALISADE_SIGN_PLAINTEXT", "PALISADE_SWEEP" - `externalId` (string) External ID of this transaction, unique to the organization Example: "ce4918bf-a199-4ce2-85a3-d0d296855384" - `correlationId` (string) The correlation ID of the transaction, used to link related transactions Example: "ce4918bf-a199-4ce2-85a3-d0d296855384" - `asset` (object, required) - `asset.id` (string, required) ID is unique across all blockchains and created by combining the blockchain ID, contract address, and symbol Example: "5:0xbehbehfb:USDC" - `asset.standard` (string, required) Enum: "NATIVE", "ERC20", "ISSUED_CURRENCY", "ERC721", "SPL", "CUSTOM" - `asset.symbol` (string, required) The currency symbol of the asset Example: "LINK" - `asset.name` (string) The human readable name of the asset Example: "Chainlink" - `asset.blockchain` (string, required) Enum: "AVALANCHE", "ETHEREUM", "XRP_LEDGER", "POLYGON", "BNBCHAIN", "BASE", "HEDERA", "ARBITRUM", "ONE_MONEY", "SOLANA", "TRON", "BITCOIN" - `asset.decimals` (integer) Count of decimal places for the asset Example: 18 - `asset.vetted` (boolean) Whether the asset is vetted on the regulated platform Example: true - `asset.enabled` (boolean) Whether the asset is currently enabled on the platform Example: true - `asset.contract` (string) The token contract address. This field will be empty if the asset is the native coin of the blockchain Example: "0x0b9d5D9136855f6FEc3c0993feE6E9CE8a297846e" - `asset.createdAt` (string, required) The date and time the asset was created Example: "2022-03-29T10:22:22.420Z" - `asset.updatedAt` (string) The date and time the asset was last updated Example: "2022-03-29T10:22:22.420Z" - `asset.organizationId` (string) Organization ID for custom assets - `asset.coingeckoId` (string) CoinGecko identifier for price data (optional for testnet assets) Example: "ethereum" - `asset.source` (string) Enum: "ASSET_SOURCE_LEGACY", "ASSET_SOURCE_AUTO", "ASSET_SOURCE_COINGECKO", "ASSET_SOURCE_PALISADE", "ASSET_SOURCE_CUSTOMER" - `asset.sourceMetadata` (object) - `asset.sourceMetadata.@type` (string) - `asset.lastSyncedAt` (string) When this asset was last synchronized Example: "2024-08-08T10:22:22.420Z" - `asset.syncVersion` (integer) Version counter for sync updates Example: 1 - `asset.contractAddressChecksummed` (string) Checksummed version of the contract address Example: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48" - `feeAsset` (object, required) - `destinationAddress` (string) The destination address Example: "0x55502b9d5a68b0F8a48384352295BeD968aD8AA4" - `destination` (object) - `destination.id` (string) Either addressID or walletID, or allowAddressID, or not set when the address does not exist within palisade e.g. a deposit from outside of Palisade Example: "ce4918bf-a199-4ce2-85a3-d0d296855384" - `destination.counterpartyId` (string) The counterparty ID Example: "ce4918bf-a199-4ce2-85a3-d0d296855384" - `destination.type` (string, required) Enum: "COUNTERPARTY", "WALLET", "EXTERNAL", "ALLOW_ADDRESS" - `destination.address` (string, required) The address Example: "0x55502b9d5a68b0F8a48384352295BeD968aD8AA4" - `originAddress` (string, required) The origin address Example: "0x55502b9d5a68b0F8a48384352295BeD968aD8AA4" - `origin` (object, required) - `qty` (string, required) The quantity of the asset to transfer Example: "155.672" - `feeQtyLimit` (string) The maximum network fee to pay for this transaction in base asset units (eg ETH for Ethereum) Example: "155.672" - `sequence` (string) The blockchain nonce/sequence to use Example: "2" - `encodedTransaction` (string) The encoded transaction. Maximum size is 200KB. Example: "ed408505d21dba00825208942352d20fc81225c8ecd8f6faa1b37f24fed450c98089736f6d657468696e67808080" - `signOnly` (boolean, required) Whether to only sign the transaction, or also publish it to the blockchain Example: "true" - `config` (object) - `config.sourceTag` (string) The source tag for XRP transactions Example: "123456" - `config.destinationTag` (string) The destination tag for XRP transactions Example: "123456" - `freezeInfo` (object, required) - `freezeInfo.isFrozen` (boolean) Whether the transaction is currently frozen - `freezeInfo.history` (array) History of all freeze/unfreeze actions. Latest entry contains current state details when frozen. - `freezeInfo.history.id` (string) Unique identifier for this history entry Example: "ce4918bf-a199-4ce2-85a3-d0d296855384" - `freezeInfo.history.reason` (string) Reason for the freeze or unfreeze action Example: "Transaction frozen due to suspicious activity pattern" - `freezeInfo.history.userId` (string) User who performed the action (empty for automatic actions) Example: "ce4918bf-a199-4ce2-85a3-d0d296855384" - `freezeInfo.history.organizationId` (string) Organization of the user who performed the action (empty for automatic actions) Example: "ce4918bf-a199-4ce2-85a3-d0d296855384" - `freezeInfo.history.performedAt` (string) Timestamp when the action was performed Example: "2022-03-29T10:22:22.420Z" - `freezeInfo.history.freezeType` (string) Enum: "FREEZE_TYPE_MANUAL", "FREEZE_TYPE_AUTO_RISK", "FREEZE_TYPE_AUTO_AMOUNT", "FREEZE_TYPE_COMPLIANCE", "FREEZE_TYPE_AUTO_WALLET_SETTING" - `freezeInfo.history.riskScore` (number) Risk score that triggered auto-freeze (0-100) Example: 85.5 - `feeQty` (string) The actual network fee for this transaction in base asset units (eg ETH for Ethereum) Example: "155.672" - `hash` (string) The transaction hash Example: "0x30674cddb3025f9681839c63d20357f54e914bd7a9ddfe53a6691f4a530a5671" - `signingHash` (string) The transaction signing hash Example: "30674cddb3025f9681839c63d20357f54e914bd7a9ddfe53a6691f4a530a5671" - `signature` (string) The transaction signature Example: "3046022100c60dc1337d69261e7c7e92e4dac78e0c317d444d4690be2b86cc53b1989d1b0602210090c63e3a5cf692c9387292451fada038a0e4d85a2f5c91ee1e7a635df0440b43" - `transactionType` (string) The transaction type Example: "Payment" - `reasons` (array) The reasons for transaction failure Example: ["unfunded"] - `canonicalSignature` (string) The canonical transaction signature Example: "3045022100C60DC1337D69261E7C7E92E4DAC78E0C317D444D4690BE2B86CC53B1989D1B0602206F39C1C5A3096D36C78D6DBAE0525FC619CA048C7FEC0E4DA157FB2EDFF235FE" - `signedTransaction` (string) The signed transaction (multi-sign is not supported). Maximum size is 200KB. Example: "12000024002A8F37201B002A8F5561400000000098968068400000000000000A732103E0C61B861ADE7AC58D27D65ABCEF4C22FA874DD13D809E02A99609A8CA31892C74473045022100C60DC1337D69261E7C7E92E4DAC78E0C317D444D4690BE2B86CC53B1989D1B0602206F39C1C5A3096D36C78D6DBAE0525FC619CA048C7FEC0E4DA157FB2EDFF235FE8114EC8E7F9FF5C9B157D55890956376D15740FAE943831451FE87A95FA6CAC3EBEF33387DE8225F7D0352CB" - `proposedAssetChanges` (array) Proposed asset changes - `proposedAssetChanges.purpose` (string, required) Enum: "FEE", "TRANSFER" - `confirmedAssetChanges` (array) Confirmed asset changes - `signingPayloads` (array) Multiple signing payloads for UTXO-based transactions, one per input - `signingPayloads.inputIndex` (integer, required) The index of the UTXO input this signing payload corresponds to - `signingPayloads.signingHash` (string, required) The signing hash for this UTXO input Example: "30674cddb3025f9681839c63d20357f54e914bd7a9ddfe53a6691f4a530a5671" - `signingPayloads.signature` (string) The signature for this UTXO input Example: "3046022100c60dc1337d69261e7c7e92e4dac78e0c317d444d4690be2b86cc53b1989d1b0602210090c63e3a5cf692c9387292451fada038a0e4d85a2f5c91ee1e7a635df0440b43" ## Response 400 fields (application/json): - `code` (integer) - `message` (string) - `details` (array) - `details.@type` (string) ## Response 401 fields (application/json): - `code` (integer) - `message` (string) - `details` (array) - `details.@type` (string) ## Response 403 fields (application/json): - `code` (integer) - `message` (string) - `details` (array) - `details.@type` (string) ## Response 404 fields (application/json): - `code` (integer) - `message` (string) - `details` (array) - `details.@type` (string) ## Response default fields (application/json): - `code` (integer) - `message` (string) - `details` (array) - `details.@type` (string)