# List transactions

Returns a paginated list of transactions, optionally filtered by types and statuses.

Endpoint: GET /v1/stablecoin/transactions
Version: 1.0.0
Security: oauth2

## Security:

  - `oauth2` (unknown)
    oauth2 scopes: rlusd_customers:read

## Query parameters:

  - `types` (array)
    Filter by transaction type. Repeatable.

  - `transactionTypes` (array)
    Deprecated; use `types`. Ignored when `types` is provided. Repeatable.

  - `statuses` (array)
    Filter by status. Repeatable.

  - `walletRipId` (string)
    Wallet ripId on either endpoint.

  - `address` (string)
    Address on either endpoint.

  - `chain` (string)
    Chain on either endpoint.

  - `transactionHash` (string)
    Transaction hash on either endpoint.

  - `counterpartyAddress` (string)
    Counterparty address on either endpoint.

  - `memo` (string)
    Memo on either endpoint.

  - `fiatInstructionId` (string)
    Fiat instruction id on either endpoint.

  - `sourceType` (string)
    Exact source endpoint type filter.

  - `sourceWalletRipId` (string)

  - `sourceAddress` (string)

  - `sourceChain` (string)

  - `sourceTransactionHash` (string)

  - `sourceCounterpartyAddress` (string)

  - `sourceMemo` (string)

  - `destinationType` (string)
    Exact destination endpoint type filter.

  - `destinationWalletRipId` (string)

  - `destinationAddress` (string)

  - `destinationChain` (string)

  - `destinationTransactionHash` (string)

  - `destinationCounterpartyAddress` (string)

  - `destinationMemo` (string)

  - `page` (integer)
    Page number, 0-indexed (default 0)

  - `size` (integer)
    Page size (default 20)

  - `sort` (string)
    Sort field and direction (default: updatedAt,desc).
Supported fields: updatedAt, createdAt, type, status, amount.

## Response 200:

  - `200` (unknown)
    Paginated list of transactions

## Response 200 fields (application/json):

  - `content` (array)

  - `content.id` (string, required)
    Unique transaction identifier

  - `content.type` (string)
    Transaction type. Null while the transaction is `PENDING` (flexible redemption)
and a destination has not yet been chosen.
    Enum: "ISSUANCE", "REDEMPTION", "BRIDGE"

  - `content.status` (string, required)
    Current transaction status. `COMPLETED`, `FAILED`, and `CANCELED` are terminal.
`CANCELED` currently applies to `ISSUANCE` transactions canceled before settlement.
`PENDING` applies to flexible-redemption transactions awaiting approval via
[Approve a pending redemption](#operation/updateTransactionDestination); `type` and
`destination` are null until approved.
    Enum: "PROCESSING", "PENDING", "COMPLETED", "FAILED", "CANCELED"

  - `content.amount` (string, required)
    Transaction amount as a decimal string (e.g. "10000.00")

  - `content.token` (string, required)
    Always RLUSD
    Enum: "RLUSD"

  - `content.source` (object, required)

  - `content.source.type` (string, required)
    Endpoint type
    Enum: "FIAT", "CRYPTO"

  - `content.source.walletRipId` (string)
    Wallet ripId (e.g. `RIP0000001`). Present when type is `CRYPTO`.

  - `content.source.address` (string)
    The customer's on-chain address on this leg. Present when type is `CRYPTO`
and the on-chain leg has been initiated. EVM addresses include the `0x` prefix.

  - `content.source.chain` (string)
    Blockchain network name (e.g. XRPL, ETH). Present when type is `CRYPTO`.

  - `content.source.transactionHash` (string)
    On-chain transaction hash for this leg. Present when the on-chain leg has settled.
EVM chains (e.g. ETH) return the hash with the `0x` prefix; XRPL hashes are
uppercase hex without a prefix.

  - `content.source.counterpartyAddress` (string)
    The Ripple-side internal account address that participated in this on-chain leg
(the counterparty to your wallet). Present when type is `CRYPTO` and the on-chain leg
has been initiated. EVM addresses include the `0x` prefix.

  - `content.source.fiatInstructionId` (string)
    The [fiat instruction](#tag/Fiat-instructions) this leg was matched to. Only a `FIAT`
leg carries one, and only when the leg referenced an instruction you own.

  - `content.source.memo` (string)
    Routing memo of the matched fiat instruction. Only a `FIAT` leg carries one; always
absent on a `CRYPTO` leg.
    Example: RL7Q3K9ZP2MTX4VB

  - `content.destination` (object)
    Destination endpoint. Null while the transaction is `PENDING` (flexible redemption)
and a destination has not yet been chosen.

  - `content.createdAt` (string, required)
    Timestamp when the transaction was created

  - `content.updatedAt` (string, required)
    Timestamp when the transaction was last updated

  - `totalElements` (integer)
    Total number of matching transactions

  - `totalPages` (integer)
    Total number of pages

  - `size` (integer)
    Page size

  - `number` (integer)
    Current page number (0-indexed)

## Response 400:

  - `400` (unknown)
    Invalid request parameters or body

## Response 400 fields (application/problem+json):

  - `type` (string)
    URI reference identifying the problem type

  - `title` (string)
    Short, human-readable summary of the problem

  - `status` (integer)
    HTTP status code

  - `code` (string)
    Machine-readable error code
    Enum: "TRANSACTION_NOT_FOUND", "TRANSACTION_INVALID_STATUS_TRANSITION", "TRANSACTION_DESTINATION_TYPE_IMMUTABLE", "FIAT_INSTRUCTION_NOT_FOUND", "FIAT_INSTRUCTION_ALREADY_EXISTS", "FIAT_INSTRUCTION_INVALID_STATUS_TRANSITION", "STABLECOIN_BANK_DETAILS_NOT_FOUND", "WALLET_NOT_FOUND", "WALLET_NOT_APPROVED", "FORBIDDEN", "UPSTREAM_UNAVAILABLE", "INVALID_REQUEST_BODY", "UNKNOWN_EXCEPTION"

## Response 401:

  - `401` (unknown)
    Missing or expired access token

## Response 401 fields (application/problem+json):

  - `type` (string)
    URI reference identifying the problem type

  - `title` (string)
    Short, human-readable summary of the problem

  - `status` (integer)
    HTTP status code

  - `code` (string)
    Machine-readable error code
    Enum: "TRANSACTION_NOT_FOUND", "TRANSACTION_INVALID_STATUS_TRANSITION", "TRANSACTION_DESTINATION_TYPE_IMMUTABLE", "FIAT_INSTRUCTION_NOT_FOUND", "FIAT_INSTRUCTION_ALREADY_EXISTS", "FIAT_INSTRUCTION_INVALID_STATUS_TRANSITION", "STABLECOIN_BANK_DETAILS_NOT_FOUND", "WALLET_NOT_FOUND", "WALLET_NOT_APPROVED", "FORBIDDEN", "UPSTREAM_UNAVAILABLE", "INVALID_REQUEST_BODY", "UNKNOWN_EXCEPTION"

## Response 403:

  - `403` (unknown)
    The caller is not entitled to the operation - either the access token lacks the scope
the operation requires, or the tenant is not entitled to the API at all (`FORBIDDEN`).

## Response 403 fields (application/problem+json):

  - `type` (string)
    URI reference identifying the problem type

  - `title` (string)
    Short, human-readable summary of the problem

  - `status` (integer)
    HTTP status code

  - `code` (string)
    Machine-readable error code
    Enum: "TRANSACTION_NOT_FOUND", "TRANSACTION_INVALID_STATUS_TRANSITION", "TRANSACTION_DESTINATION_TYPE_IMMUTABLE", "FIAT_INSTRUCTION_NOT_FOUND", "FIAT_INSTRUCTION_ALREADY_EXISTS", "FIAT_INSTRUCTION_INVALID_STATUS_TRANSITION", "STABLECOIN_BANK_DETAILS_NOT_FOUND", "WALLET_NOT_FOUND", "WALLET_NOT_APPROVED", "FORBIDDEN", "UPSTREAM_UNAVAILABLE", "INVALID_REQUEST_BODY", "UNKNOWN_EXCEPTION"

## Response 500:

  - `500` (unknown)
    Unexpected server error

## Response 500 fields (application/problem+json):

  - `type` (string)
    URI reference identifying the problem type

  - `title` (string)
    Short, human-readable summary of the problem

  - `status` (integer)
    HTTP status code

  - `code` (string)
    Machine-readable error code
    Enum: "TRANSACTION_NOT_FOUND", "TRANSACTION_INVALID_STATUS_TRANSITION", "TRANSACTION_DESTINATION_TYPE_IMMUTABLE", "FIAT_INSTRUCTION_NOT_FOUND", "FIAT_INSTRUCTION_ALREADY_EXISTS", "FIAT_INSTRUCTION_INVALID_STATUS_TRANSITION", "STABLECOIN_BANK_DETAILS_NOT_FOUND", "WALLET_NOT_FOUND", "WALLET_NOT_APPROVED", "FORBIDDEN", "UPSTREAM_UNAVAILABLE", "INVALID_REQUEST_BODY", "UNKNOWN_EXCEPTION"

