# View transactions

You can view different objects to obtain information about a transaction.

For more information about the different object types created in Ripple Custody for transactions, see [Transaction initiation](/products/custody/v1.36/transactions/initiation).

## View transactions for a transaction order

To view the transactions for a transaction order, call the [List transactions](/products/custody/v1.36/reference/api/openapi/transactions/gettransactions) operation, filtered by the `orderReference.id` query parameter.

The response includes information on the transactions from a blockchain perspective, including information on the specific ledger, the transaction hash, and the serialized raw transaction in the specific ledger format.

The section `ledgerTransactionData` contains information on what was executed on the blockchain ledger. You can use the `ledgerTransactionId` in any external blockchain viewer to view details of the transaction on the blockchain.

## View the transfers for a transaction

To view the transfers for a transaction, call the [List transfers](/products/custody/v1.36/reference/api/openapi/transactions/gettransfers) operation, filtered by the `transactionID` query parameter.

## View incoming transactions

Incoming transactions are not associated with a transaction order.

To view incoming transactions, call the [List transactions](/products/custody/v1.36/reference/api/openapi/transactions/gettransactions) operation, filtered with the query parameter `accountId`, if required.

If a transaction has a null `transactionOrderId`, that means this transaction is for an incoming transaction.

## View the status of a transaction order

To view the status of a transaction, call the [Get transaction order details](/products/custody/v1.36/reference/api/openapi/transactions/getorders) operation with the relevant transaction order ID.

The response includes two different statuses:

- `processing.status`: The internal processing status of the transaction in Ripple Custody. It reaches `Completed` status once the transaction is successfully broadcast.
[Learn more about Ripple Custody transaction statuses](/products/custody/v1.36/transactions/processing#ripple-custody-statuses)
- `ledgerTransactionData.ledgerStatus`: The ledger service tracks the transaction on the ledger and detects if it is confirmed in a block. The `Confirmed` status is achieved once the finality value for the ledger is reached.
[Learn more about ledger transaction statuses](/products/custody/v1.36/transactions/processing#ledger-statuses)


If the transaction is not executed or partially executed on chain, the `ledgerTransactionData.failure` field shows a non-null value, for example `PartiallyFailedOnChain`. In a scenario such as this, you need to conduct a thorough investigation to discover the root cause of the failure on chain.

We can conclude that a transaction was both successfully broadcast and executed on chain when:

- `ledgerTransactionData.ledgerStatus` is `Confirmed`.
- `ledgerTransactionData.failure` null.


You can also view other data in the `ledgerData` block of the transaction order, such as:

- `createdContractAddresses`: Addresses of any smart contracts deployed, reported by the `CREATE` and `CREATE2` functions of the smart contract. The value corresponds to an array, as it is possible to deploy multiple contracts using a single transaction.


When the transaction involves the destruction of an existing contract, the transaction includes `ledgerData.deletedContractAddresses`, exposing all the contract addresses reported by the `SUICIDE` functions of the smart contract.