# List wallets

Returns a paginated list of the wallets registered for your tenant. This is the `ripId`
lookup: use it to resolve the `walletRipId` you quote on a fiat buy instruction or a bridge
approval, and to map a `walletRipId` on a transaction leg back to an address and chain.
A `ripId` that matches nothing returns an empty page with `200`, never a `404`.

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

## Security:

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

## Query parameters:

  - `ripId` (string)
    Narrow the response to this single wallet.

  - `page` (integer)

  - `size` (integer)

  - `sort` (string)
    Sort as `property,direction`. Supported properties: `createdAt`, `nickname`, `chain`,
`ripId`. An unsupported property is ignored rather than rejected.

## Response 200:

  - `200` (unknown)
    Paginated list of wallets

## Response 200 fields (application/json):

  - `content` (array)

  - `content.ripId` (string, required)
    The wallet ripId as you know it in Ripple Home, e.g. `RIP0000001`. This is the value you
quote as `walletRipId` elsewhere in this API.
    Example: RIP0000001

  - `content.nickname` (string)
    Customer-supplied nickname. Omitted when the wallet has none.
    Example: Treasury XRPL

  - `content.address` (string, required)
    On-chain address. EVM addresses carry the `0x` prefix; XRPL addresses do not.
    Example: rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH

  - `content.destinationTag` (integer)
    XRPL destination tag. Omitted when the wallet has none.
    Example: 1234567

  - `content.chain` (string, required)
    Network the wallet lives on. These are the fuller mainnet identifiers - e.g.
`XRPL_MAINNET`, `ETH_MAINNET` - rather than the shorter `XRPL` / `ETH` values the
Transaction API returns, so join wallets to transactions on `ripId` / `walletRipId`,
never on `chain`.
    Example: XRPL_MAINNET

  - `content.status` (string, required)
    Approval status. Only an `APPROVED` wallet can receive minted RLUSD.
    Enum: "PENDING_APPROVAL", "APPROVED", "DENIED"

  - `content.createdAt` (string, required)

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

  - `totalPages` (integer)

  - `size` (integer)

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

## Response 400:

  - `400` (unknown)
    The `ripId` is not a valid wallet ripId (`INVALID_REQUEST_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"

## Response 502:

  - `502` (unknown)
    An upstream system Ripple depends on could not be reached (`UPSTREAM_UNAVAILABLE`). Safe to
retry: these are reads with no side effects, and the one write that returns it —
`createFiatInstruction` — is idempotent on `id`.

## Response 502 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"

