{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-@l10n/pt-BR/products/wallet/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition"]},"type":"markdown"},"seo":{"title":"View and track transactions","description":"User guides, API reference, and support resources.","siteUrl":"https://docs.ripple.com","lang":"en-US","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"view-and-track-transactions","__idx":0},"children":["View and track transactions"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Every transaction, outgoing or incoming, moves through a series of statuses until it's confirmed on the blockchain, rejected, or failed. The console lists every transaction for a wallet, and for all wallets across your organization, with its current status. Open a transaction to see its full stage timeline and details. You can also follow a transaction's progress through the API, or with webhooks that notify you when a transaction changes status. For what each status means, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/pt-br/products/wallet/transactions#the-complete-stage-breakdown"},"children":["How transactions work"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To get real-time notifications instead of polling, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/pt-br/products/wallet/integrations-and-monitoring/webhooks"},"children":["Webhooks"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"transaction-actions","__idx":1},"children":["Transaction actions"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Action"},"children":["Action"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Console role"},"children":["Console role"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Console procedure"},"children":["Console procedure"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"API procedure"},"children":["API procedure"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["List transactions"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["All roles"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#view-the-transaction-list-via-the-console"},"children":["View the transaction list"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#list-transactions-via-the-api"},"children":["List transactions"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Search and filter transactions"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["All roles"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#search-and-filter-transactions-via-the-console"},"children":["Search and filter transactions"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#list-transactions-via-the-api"},"children":["List transactions"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Filter by origin or destination"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["All roles"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#search-and-filter-transactions-via-the-console"},"children":["Search and filter transactions"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#filter-transactions-by-origin-or-destination-via-the-api"},"children":["Filter transactions by origin or destination"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["View a transaction"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["All roles"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#view-a-transaction-via-the-console"},"children":["View a transaction"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#get-a-transaction-via-the-api"},"children":["Get a transaction"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Read the recipient and quantity of a contract-token transfer"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["-"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["-"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#read-contract-token-transfers-via-the-api"},"children":["Read contract-token transfers"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Track a transaction to confirmation"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["All roles"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#view-a-transaction-via-the-console"},"children":["View a transaction"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#track-the-transaction-lifecycle-via-the-api"},"children":["Track the transaction lifecycle"]}]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Permissions:"]}," In the console, every role can view transactions. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/pt-br/products/wallet/organization-and-access/users-and-roles#transactions"},"children":["User roles and permissions"]},". The API procedures need an API credential of type ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TRANSACTIONS"]},". See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#prerequisites"},"children":["Prerequisites"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"prerequisites","__idx":2},"children":["Prerequisites"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To use the API procedures on this page, you need:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["An API credential of type ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TRANSACTIONS"]},"."]}," It grants access to creating and managing transactions. Create credentials in the console. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/pt-br/products/wallet/organization-and-access/api-credentials/manage-api-credentials"},"children":["Manage API credentials"]}," and ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/pt-br/products/wallet/organization-and-access/api-credentials#credential-types"},"children":["Credential types"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["An access token."]}," Exchange your credential's ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["clientId"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["clientSecret"]}," for an access token. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/pt-br/products/wallet/get-started/use-the-api#step-2-authenticate"},"children":["Authenticate"]},"."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For the base URLs, token lifetime, pagination, filtering, and error format that every endpoint shares, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/pt-br/products/wallet/api-and-developer-experience/api-conventions"},"children":["API conventions"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"view-the-transaction-list-via-the-console","__idx":3},"children":["View the transaction list via the console"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To view transactions in the console:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Open the transaction list:",{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["To view one wallet's transactions, open the wallet and select its ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Transactions"]}," tab."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["To view transactions for all wallets across your organization, select ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Transactions"]}," in the main menu."]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The list shows each transaction's ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Type"]},", ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Details"]},", ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Status"]},", and ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Date"]},". A wallet's list includes deposits into the wallet as well as transactions it sent. To sort the list, click the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Status"]}," or ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Date"]}," column heading. Frozen transactions carry a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Frozen"]}," label in the transaction list."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"../images/get-started-wallet-transactions.png","alt":"A wallet's Transactions tab with a confirmed payment showing the Success status"},"children":[]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"search-and-filter-transactions-via-the-console","__idx":4},"children":["Search and filter transactions via the console"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To find specific transactions in the console:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Open the transaction list. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#view-the-transaction-list-via-the-console"},"children":["View the transaction list"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["To find a transaction by its hash or ID, enter the value in the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Search by hash or ID"]}," box."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["To filter the list, click ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Filters"]}," and choose a category:",{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Amount"]}," — Enter a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["From"]}," and ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["To"]}," range and click ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Apply"]},", or choose one of the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Quick filters"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Asset"]}," — Select one or more assets."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Date"]}," — Choose a preset (",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Today"]},", ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Last 48 hours"]},", ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Last 7 days"]},", ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Last 30 days"]},", or ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["This month"]},") or ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Custom"]}," to set your own range."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Destination"]}," — Select from ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Wallets"]}," or the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Address book"]},", or paste a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Custom address"]}," to include or exclude."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Source"]}," — Select from ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Wallets"]}," or the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Address book"]},", or paste a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Custom address"]}," to include or exclude."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Status"]}," — Select one or more statuses, such as ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Pending"]},", ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Success"]},", or ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Failed"]},"."]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Each active filter appears as a chip, and the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Filters"]}," button shows how many categories are active. A transaction must match every filter you set. To remove all filters, click ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Clear filters"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"view-a-transaction-via-the-console","__idx":5},"children":["View a transaction via the console"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To view a transaction in the console:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["In a wallet's ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Transactions"]}," tab, click a transaction to display a summary of the transaction details and current status."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Click ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["View transaction"]}," to open the full transaction page, which shows the status timeline and the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Details"]},", ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["JSON"]},", ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Encoded"]},", and ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Advanced"]}," tabs."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"../images/view-transaction-details.png","alt":"The transaction page for a confirmed payment, showing the status timeline and the Details tab"},"children":[]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To freeze or unfreeze an incoming transaction from its transaction page, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/pt-br/products/wallet/compliance/freeze-and-unfreeze-transactions#freeze-an-individual-transaction-via-the-console"},"children":["Configure transaction freeze controls"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"get-a-transaction-via-the-api","__idx":6},"children":["Get a transaction via the API"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Retrieve a single transaction with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /v2/vaults/{vaultId}/wallets/{walletId}/transactions/{transactionId}"]}," to check its current state. For the full schema, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/pt-br/products/wallet/api-docs/palisade-api/palisade-api/transactions/transactionsservice_gettransaction"},"children":["Get a transaction"]}," in the API reference."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl \"https://api.sandbox.palisade.co/v2/vaults/$VAULT_ID/wallets/$WALLET_ID/transactions/$TRANSACTION_ID\" \\\n  -H \"Authorization: Bearer $ACCESS_TOKEN\"\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The response is the same transaction object, updated. If the transaction belongs to a different wallet, the request returns HTTP 404 with the message ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transaction not found"]}," and the reason ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PAL010.004"]},". When the transfer completes, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["status"]}," is ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CONFIRMED"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["hash"]}," holds the blockchain transaction hash, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["feeQty"]}," holds the network fee actually paid, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["confirmedAssetChanges"]}," records the balance movements observed on chain, and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["reasons"]}," holds the blockchain result, such as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Blockchain status: tesSUCCESS"]}," on the XRP Ledger."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"read-contract-token-transfers-via-the-api","__idx":7},"children":["Read contract-token transfers via the API"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For an outgoing contract-token transfer, such as an ERC-20 or TRC-20 transfer, the recipient wallet address and token quantity don't appear at the top level of the transaction. Read them from the transaction's asset changes instead."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To read the recipient and quantity of a contract-token transfer:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Get the transaction. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#get-a-transaction-via-the-api"},"children":["Get a transaction"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Iterate the entries in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["proposedAssetChanges"]}," (before confirmation) or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["confirmedAssetChanges"]}," (after confirmation)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Skip entries with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["purpose: FEE"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["For each ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TRANSFER"]}," entry, read ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["destination.address"]}," for the recipient wallet and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["qty"]}," for the token quantity sent to that wallet."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The same lookup works for native transfers: the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TRANSFER"]}," entry mirrors the top-level fields, so a single code path handles both transfer types."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Why the top-level fields differ."]}," Native asset transfers (ETH, BTC, TRX, XRP, SOL) move value directly from the origin wallet to the recipient wallet. The top-level ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["destinationAddress"]}," names the recipient, and the top-level ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["qty"]}," is the amount the recipient receives."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Contract-token transfers (ERC-20, TRC-20, BEP-20, ERC-721, and the other token-standard transfers in ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/pt-br/products/wallet/vaults-and-wallets/supported-blockchains-and-tokens#supported-token-standards"},"children":["Supported token standards"]},") work differently. The blockchain runs a call against the token contract, and the contract's internal ledger credits the recipient wallet."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Outgoing transfers: top-level ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["destination"]}," names the execution target."]}," For an ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["outgoing"]}," transfer — one your organization sends — the top-level ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["destination"]}," (and its deprecated equivalent ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["destinationAddress"]},") is the blockchain execution target: the address Ripple Custody (Wallet) submits to the blockchain after it compiles the transaction. For an outgoing contract-token transfer, compilation also sets the top-level ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["qty"]}," to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"0\""]}," and the top-level ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["asset"]}," to the blockchain's native asset."]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Outgoing transfer type"},"children":["Outgoing transfer type"]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Top-level destination.address"},"children":["Top-level ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["destination.address"]}]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Top-level qty"},"children":["Top-level ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["qty"]}]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Top-level asset"},"children":["Top-level ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["asset"]}]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Native asset (for example, ETH, TRX, SOL, BTC, XRP)"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["The recipient wallet address"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["The amount the recipient receives"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["The transferred asset"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Contract token (for example, ERC-20, TRC-20, BEP-20)"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["The token contract address"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Typically ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"0\""]}," — no native asset moves to the contract"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["The blockchain's native asset (for example, TRX for a TRC-20 transfer)"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Incoming transfers keep the recipient at the top level."]}," This normalization applies only to outgoing transfers. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/pt-br/products/wallet/transactions/receive-assets#contract-token-deposits"},"children":["Contract-token deposits"]},"."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Field naming"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use the structured ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["destination"]}," object instead of the deprecated ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["destinationAddress"]},". ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["destination.address"]}," holds the same address, and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["destination"]}," also carries wallet, vault, and counterparty context when Ripple Custody (Wallet) can resolve them. For new integrations, read ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["destination.address"]},"."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Asset-change arrays."]}," Every transaction exposes two arrays of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["AssetChange"]}," entries that describe how balances move:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["proposedAssetChanges"]}]}," — Asset changes that Ripple Custody (Wallet) predicts ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["before confirmation"]},". Ripple Custody (Wallet) populates this array as soon as it compiles the transaction, so you can read it while the transaction is still pending. These values are indicative and can change if the on-chain execution differs from the prediction."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["confirmedAssetChanges"]}]}," — Asset changes that Ripple Custody (Wallet) records ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["after confirmation"]},", once the transaction reaches ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/pt-br/products/wallet/transactions#the-complete-stage-breakdown"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CONFIRMED"]}]},". These values reflect what happened on chain."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Each entry contains these fields:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["purpose"]}," — either ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TRANSFER"]}," (asset movement) or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["FEE"]}," (network fees)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["asset"]}," — the asset that moves."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["qty"]}," — the amount that moves."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["source"]}," — the wallet the asset moves from. On ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["FEE"]}," entries, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["source"]}," identifies the fee payer, which can differ from the transfer source when a dedicated fee wallet pays the network fee."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["destination"]}," — the wallet the asset moves to. Populated on ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TRANSFER"]}," entries; not populated on ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["FEE"]}," entries."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Both ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["source"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["destination"]}," hold the on-chain address, the wallet ID and vault ID when the wallet belongs to your organization, and any subaccount address the chain requires."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Example: TRC-20 / ERC-20 transfer."]}," The following response shows an outgoing USDT transfer on Tron (TRC-20). USDT on Ethereum, USDC on any EVM chain, and any other ERC-20, TRC-20, or BEP-20 transfer follow the same shape — only the contract, wallet, and asset symbol change."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"id\": \"019c94f1-cc8c-79b4-9c0f-bc7edaabc267\",\n  \"walletId\": \"019c8a3b-5678-7def-1234-567890abcdef\",\n  \"vaultId\": \"019c8a2f-1234-7abc-9def-abcdef123456\",\n  \"status\": \"CONFIRMED\",\n  \"action\": \"PALISADE_TRANSFER\",\n  \"blockchain\": \"TRON\",\n  \"asset\": { \"symbol\": \"TRX\", \"standard\": \"NATIVE\" },\n  \"originAddress\": \"TSourceWallet0000000000000000000000\",\n  \"origin\": {\n    \"address\": \"TSourceWallet0000000000000000000000\",\n    \"walletId\": \"019c8a3b-5678-7def-1234-567890abcdef\"\n  },\n  \"destinationAddress\": \"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t\",\n  \"destination\": {\n    \"address\": \"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t\",\n    \"type\": \"EXTERNAL\"\n  },\n  \"qty\": \"0\",\n  \"proposedAssetChanges\": [\n    {\n      \"purpose\": \"TRANSFER\",\n      \"asset\": {\n        \"symbol\": \"USDT\",\n        \"standard\": \"ERC20\",\n        \"contract\": \"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t\"\n      },\n      \"qty\": \"125.500000\",\n      \"source\": {\n        \"address\": \"TSourceWallet0000000000000000000000\",\n        \"walletId\": \"019c8a3b-5678-7def-1234-567890abcdef\",\n        \"vaultId\": \"019c8a2f-1234-7abc-9def-abcdef123456\"\n      },\n      \"destination\": {\n        \"address\": \"TRecipientWallet00000000000000000000\"\n      }\n    },\n    {\n      \"purpose\": \"FEE\",\n      \"asset\": { \"symbol\": \"TRX\", \"standard\": \"NATIVE\" },\n      \"qty\": \"13.451000\",\n      \"source\": {\n        \"address\": \"TSourceWallet0000000000000000000000\",\n        \"walletId\": \"019c8a3b-5678-7def-1234-567890abcdef\"\n      }\n    }\n  ],\n  \"confirmedAssetChanges\": [\n    {\n      \"purpose\": \"TRANSFER\",\n      \"asset\": {\n        \"symbol\": \"USDT\",\n        \"standard\": \"ERC20\",\n        \"contract\": \"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t\"\n      },\n      \"qty\": \"125.500000\",\n      \"source\": {\n        \"address\": \"TSourceWallet0000000000000000000000\",\n        \"walletId\": \"019c8a3b-5678-7def-1234-567890abcdef\",\n        \"vaultId\": \"019c8a2f-1234-7abc-9def-abcdef123456\"\n      },\n      \"destination\": {\n        \"address\": \"TRecipientWallet00000000000000000000\"\n      }\n    },\n    {\n      \"purpose\": \"FEE\",\n      \"asset\": { \"symbol\": \"TRX\", \"standard\": \"NATIVE\" },\n      \"qty\": \"13.451000\",\n      \"source\": {\n        \"address\": \"TSourceWallet0000000000000000000000\",\n        \"walletId\": \"019c8a3b-5678-7def-1234-567890abcdef\"\n      }\n    }\n  ]\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Read this response as follows:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["destinationAddress"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["destination.address"]}," both hold ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"]}," — the on-chain USDT contract that Tron runs the transfer against, not the recipient."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Top-level ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["qty"]}," is ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"0\""]}," because no native TRX moves to the contract. The TRX in the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["FEE"]}," entry is the network fee."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Top-level ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["asset"]}," is TRX, the blockchain's native asset — compilation normalizes it along with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["destination"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["qty"]},". USDT appears only in the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TRANSFER"]}," asset-change entries."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The recipient wallet ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TRecipientWallet00000000000000000000"]}," and the token quantity ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["125.500000"]}," appear in the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TRANSFER"]}," entry of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["confirmedAssetChanges"]}," (or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["proposedAssetChanges"]}," while the transaction is still pending)."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The same pattern applies to ERC-20 transfers on Ethereum, Arbitrum, Base, Polygon, Avalanche, and BNB Smart Chain: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["destination.address"]}," names the ERC-20 contract (for example, the USDC contract ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"]}," on Ethereum), and the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TRANSFER"]}," asset-change entry holds the recipient wallet."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"list-transactions-via-the-api","__idx":8},"children":["List transactions via the API"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["List a wallet's transactions with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /v2/vaults/{vaultId}/wallets/{walletId}/transactions"]},". To list transactions across your whole organization, use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /v2/transactions"]},". Both endpoints accept the same filter, search, sort, and pagination parameters:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Filters"]}," — ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filter.<field>.<operator>"]}," query parameters. Filterable fields include ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["status"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["type"]}," (the transaction ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["action"]},", such as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PALISADE_TRANSFER"]}," for transfers or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PALISADE_MANAGED"]}," for ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/pt-br/products/wallet/transactions/xrpl/xrpl-via-the-api"},"children":["XRP Ledger transaction types"]},"), ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["blockchain"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["assetSymbol"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["qty"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["createdAt"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["updatedAt"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["origin"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["destination"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionId"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionHash"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["externalId"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["correlationId"]},". Operators depend on the field — for example ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["eq"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["notEq"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["in"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["notIn"]}," for enums; ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["gt"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["gte"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["lt"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["lte"]}," for ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["qty"]},"; and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["before"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["after"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["between.start"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["between.end"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["relativeDays"]}," for timestamps. A transaction must match every filter you set. For ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["origin"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["destination"]}," matching rules, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#filter-transactions-by-origin-or-destination-via-the-api"},"children":["Filter transactions by origin or destination"]},". Use a negative ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["relativeDays"]}," value, such as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["-7"]}," for the last seven days. To find a transaction by its blockchain hash, use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filter.transactionHash.contains"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filter.transactionHash.startsWith"]},", or pass the hash as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["search"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Search"]}," — ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["search"]}," runs a case-insensitive free-text search over transaction ID, transaction hash, external ID, correlation ID, asset symbol, origin address, and destination address."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Sort"]}," — ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pagination.orderBy"]}," accepts ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["created_at"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["updated_at"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["amount"]},", or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["status"]},". Set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pagination.order"]}," to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SORT_ORDER_ASC"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SORT_ORDER_DESC"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Pagination"]}," — ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pagination.pageSize"]}," sets the page size (default 50, maximum 1000; a larger value returns HTTP 400). To get the next page, pass the previous response's ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filter.nextPageToken"]}," as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pagination.pageToken"]},". Use the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pagination.*"]}," form: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /v2/transactions"]}," doesn't accept a top-level ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pageSize"]},"."]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl \"https://api.sandbox.palisade.co/v2/vaults/$VAULT_ID/wallets/$WALLET_ID/transactions?filter.status.eq=CONFIRMED&pagination.pageSize=10\" \\\n  -H \"Authorization: Bearer $ACCESS_TOKEN\"\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl \"https://api.sandbox.palisade.co/v2/transactions?filter.createdAt.relativeDays=-7&pagination.orderBy=created_at&pagination.order=SORT_ORDER_DESC\" \\\n  -H \"Authorization: Bearer $ACCESS_TOKEN\"\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Both endpoints return a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactions"]}," array of transaction objects and a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filter"]}," object with pagination metadata: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["total"]},", plus ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nextPageToken"]}," when there's a next page and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["previousPageToken"]}," when there's a previous one. A wallet's list includes deposits into the wallet as well as transactions it sent."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"transactions\": [\n    { \"id\": \"01a11af7-f22d-7474-ac46-86c7d4680c3d\", \"status\": \"REJECTED\", \"action\": \"PALISADE_TRANSFER\", \"...\": \"...\" }\n  ],\n  \"filter\": {\n    \"previousPageToken\": \"eyJsaW1pdCI6Miwib2Zmc2V0IjowfQ==\",\n    \"nextPageToken\": \"eyJsaW1pdCI6Miwib2Zmc2V0Ijo0fQ==\",\n    \"total\": 87\n  }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For complex filters, send them as a JSON body to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /v2/transactions:list"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /v2/vaults/{vaultId}/wallets/{walletId}/transactions:list"]}," instead. The body takes ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filter"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pagination"]}," objects with the same fields, and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["search"]}," as a string. For the full schemas, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/pt-br/products/wallet/api-docs/palisade-api/palisade-api/transactions/transactionsservice_listwallettransactions"},"children":["List wallet transactions"]}," (",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/pt-br/products/wallet/api-docs/palisade-api/palisade-api/transactions/transactionsservice_listwallettransactions2"},"children":["with a request body"]},") and ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/pt-br/products/wallet/api-docs/palisade-api/palisade-api/transactions/transactionsservice_listtransactions"},"children":["List transactions"]}," (",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/pt-br/products/wallet/api-docs/palisade-api/palisade-api/transactions/transactionsservice_listtransactions2"},"children":["with a request body"]},") in the API reference. For example:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X POST \"https://api.sandbox.palisade.co/v2/transactions:list\" \\\n  -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"filter\": {\n      \"status\": { \"in\": [\"REJECTED\", \"FAILED\"] },\n      \"createdAt\": { \"relativeDays\": -7 }\n    },\n    \"pagination\": { \"pageSize\": 50, \"orderBy\": \"created_at\", \"order\": \"SORT_ORDER_DESC\" }\n  }'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning","name":"Deprecated list parameters"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["On the wallet-level endpoints, the top-level ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pageSize"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pageToken"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["correlationId"]}," parameters still work but are deprecated; use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pagination.pageSize"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pagination.pageToken"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filter.correlationId"]},". The address-only ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filter.originAddress.*"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filter.destinationAddress.*"]}," filters are also deprecated — see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#filter-transactions-by-origin-or-destination-via-the-api"},"children":["Filter transactions by origin or destination"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"filter-transactions-by-origin-or-destination-via-the-api","__idx":9},"children":["Filter transactions by origin or destination via the API"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To list transactions by where they come from or go to, add ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filter.origin.*"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filter.destination.*"]}," query parameters to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /v2/transactions"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /v2/vaults/{vaultId}/wallets/{walletId}/transactions"]},". Each filter matches the origin or destination of a transaction by any of these identifiers:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The blockchain address"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The wallet ID or address book entry ID"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The counterparty ID"]}]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Operator"},"children":["Operator"]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Behavior"},"children":["Behavior"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["eq"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["in"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Matches when any identifier equals a value you supply. Address matching is case-sensitive: supply the address in the form the transaction records, such as the checksummed form of an EVM address."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["notEq"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["notIn"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Matches only when no identifier equals a value you supply."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["contains"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["startsWith"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["endsWith"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Matches the address only. Pattern matching is case-insensitive."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["isNull"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Checks whether the origin or destination is empty."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Example:"]}," List a wallet's transactions sent to a specific counterparty."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X GET \"https://api.sandbox.palisade.co/v2/vaults/$VAULT_ID/wallets/$WALLET_ID/transactions?filter.destination.eq=$COUNTERPARTY_ID\" \\\n  -H \"Authorization: Bearer $ACCESS_TOKEN\"\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Example:"]}," List transactions received from either of two addresses."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X GET \"https://api.sandbox.palisade.co/v2/transactions?filter.origin.in=0x55502b9d5a68b0F8a48384352295BeD968aD8AA4&filter.origin.in=0x8dCd82eC41C41627D987830128198aff4A392D89\" \\\n  -H \"Authorization: Bearer $ACCESS_TOKEN\"\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A transaction must match every filter you set."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning","name":"Deprecated address-only filters"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Ripple Custody (Wallet) deprecates ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filter.originAddress.*"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filter.destinationAddress.*"]},". These filters match the blockchain address only. Their exact and list operators (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["eq"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["notEq"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["in"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["notIn"]},") are case-sensitive, and their pattern operators are case-insensitive. For new integrations, use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filter.origin.*"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filter.destination.*"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"track-the-transaction-lifecycle-via-the-api","__idx":10},"children":["Track the transaction lifecycle via the API"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A transaction moves through a series of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["status"]}," values from creation to completion:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["REQUESTED"]}," — Ripple Custody (Wallet) accepted the transaction."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POLICY_CHECK_PENDING"]}," → ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POLICY_CHECK_PASSED"]}," — Ripple Custody (Wallet) evaluates your policy rules and collects any required approvals. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POLICY_CHECK_PASSED"]}," means the transaction passed both policy checks and approvals."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["COMPILATION_PENDING"]}," → ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["COMPILED"]}," — Ripple Custody (Wallet) builds the transaction for the target blockchain."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SIGNATURE_PENDING"]}," → ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SIGNED"]}," — Ripple Custody (Wallet) signs the transaction."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PUBLISH_PENDING"]}," → ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PUBLISHED"]}," — Ripple Custody (Wallet) submits the transaction to the blockchain."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CONFIRMATION_PENDING"]}," → ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CONFIRMED"]}," — the blockchain confirms the transaction."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Stages can complete faster than you poll, so you won't necessarily see every status. For example, an XRP Ledger transfer that needs no approvals can reach ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POLICY_CHECK_PASSED"]}," in under a second and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CONFIRMED"]}," within about ten seconds, and a poll can go straight from ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POLICY_CHECK_PASSED"]}," to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SIGNED"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PUBLISHED"]},". Don't build logic that waits for a particular intermediate status. Statuses only move forward, so compare a status's position in this list instead."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A transaction can end in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["REJECTED"]}," (a policy or approval check declined it) or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["FAILED"]}," (Ripple Custody (Wallet) couldn't complete it). A policy rejection can happen within moments of creation, so a transaction can go straight from ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["REQUESTED"]}," to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["REJECTED"]},". The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["problems"]}," array contains structured details, including a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["retryability"]}," value of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["RETRYABLE"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["NOT_RETRYABLE"]},". For example, a transfer rejected because the wallet's transaction limits aren't active:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"status\": \"REJECTED\",\n  \"problems\": [\n    {\n      \"code\": 9,\n      \"reason\": \"PAL006.005\",\n      \"domain\": \"policy-service\",\n      \"message\": \"Transaction limits for XRP exist but are not active. Check limit approval status.\",\n      \"retryability\": \"NOT_RETRYABLE\",\n      \"metadata\": {}\n    }\n  ],\n  \"reasons\": [\n    \"Transaction limits for XRP exist but are not active. Check limit approval status.\"\n  ]\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The older ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["reasons"]}," array is deprecated, but check it when ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["problems"]}," is empty: for some blockchain failures, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["problems"]}," is empty and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["reasons"]}," holds the blockchain result, such as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Blockchain status: tecUNFUNDED_PAYMENT"]},". For the format of errors that the API returns directly, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/pt-br/products/wallet/api-and-developer-experience/error-codes"},"children":["Error codes"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Two other fields help you follow a transaction:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["history"]}," — a read-only list of business events for the transaction, such as status changes, policy decisions, approval votes, and freeze actions, each with an ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["stage"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["outcome"]},". It can be empty, even for a confirmed transfer."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["expiresAt"]}," — when set, the time after which Ripple Custody (Wallet) rejects the transaction if it isn't confirmed. It's ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["null"]}," or absent when no expiry applies."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Poll ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /v2/vaults/{vaultId}/wallets/{walletId}/transactions/{transactionId}"]}," until the status reaches ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CONFIRMED"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["REJECTED"]},", or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["FAILED"]},", or subscribe to transaction events instead of polling — see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/pt-br/products/wallet/integrations-and-monitoring/webhooks/manage-webhooks-api"},"children":["Manage webhooks via the API"]},". For a full description of each stage, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/pt-br/products/wallet/transactions#the-complete-stage-breakdown"},"children":["How transactions work"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"related-topics","__idx":11},"children":["Related topics"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/pt-br/products/wallet/transactions/send-assets"},"children":["Send assets"]}," — Send payments in the console, and estimate fees and create transfers via the API"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/pt-br/products/wallet/transactions"},"children":["How transactions work"]}," — Transaction stages, statuses, and console status badges"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/pt-br/products/wallet/transactions/receive-assets"},"children":["Receive assets"]}," — How deposits appear, including deposits from more than one sender"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/pt-br/products/wallet/api-docs/palisade-api/palisade-api"},"children":["Ripple Custody (Wallet) API reference"]}," — Full request and response schemas"]}]}]},"headings":[{"value":"View and track transactions","id":"view-and-track-transactions","depth":1},{"value":"Transaction actions","id":"transaction-actions","depth":2},{"value":"Prerequisites","id":"prerequisites","depth":2},{"value":"View the transaction list via the console","id":"view-the-transaction-list-via-the-console","depth":2},{"value":"Search and filter transactions via the console","id":"search-and-filter-transactions-via-the-console","depth":2},{"value":"View a transaction via the console","id":"view-a-transaction-via-the-console","depth":2},{"value":"Get a transaction via the API","id":"get-a-transaction-via-the-api","depth":2},{"value":"Read contract-token transfers via the API","id":"read-contract-token-transfers-via-the-api","depth":3},{"value":"List transactions via the API","id":"list-transactions-via-the-api","depth":2},{"value":"Filter transactions by origin or destination via the API","id":"filter-transactions-by-origin-or-destination-via-the-api","depth":2},{"value":"Track the transaction lifecycle via the API","id":"track-the-transaction-lifecycle-via-the-api","depth":2},{"value":"Related topics","id":"related-topics","depth":2}],"frontmatter":{"title":"View and track transactions","seo":{"title":"View and track transactions"}},"lastModified":"2026-10-09T11:58:31.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/pt-br/products/wallet/transactions/view-and-track-transactions","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}