# Transactions

This page describes the use of the Ripple Mint API operations for transactions.

**Base URL:** `https://api.ripple.com`

## API operations

| Method | Path | Scope Required | Description (link to reference) |
|  --- | --- | --- | --- |
| `GET` | `/v1/stablecoin/transactions` | `rlusd_customers:read` | [List transactions](/products/stablecoin/api/reference/rlusd-openapi#operation/listTransactions) (paginated) |
| `GET` | `/v1/stablecoin/transactions/{id}` | `rlusd_customers:read` | [Get a transaction](/products/stablecoin/api/reference/rlusd-openapi#operation/getTransaction) |


## List transactions

To obtain a list of transactions, use the [List transactions](/products/stablecoin/api/reference/rlusd-openapi#operation/listTransactions) API operation as follows:


```
GET /v1/stablecoin/transactions
```

### Query parameters

| Parameter | Type | Required | Description |
|  --- | --- | --- | --- |
| `transactionTypes` | string (repeatable) | No | Filter by type. Values: `ISSUANCE`, `REDEMPTION`, `BRIDGE` |
| `statuses` | string (repeatable) | No | Filter by status. Values: `PROCESSING`, `COMPLETED`, `FAILED` |
| `page` | integer | No | Page number, 0-indexed (default: `0`) |
| `size` | integer | No | Page size (default: `20`) |
| `sort` | string | No | Sort field and direction (default: `updatedAt,desc`) |


### Example request


```http
GET /v1/stablecoin/transactions?transactionTypes=REDEMPTION&statuses=COMPLETED&page=0&size=20
Authorization: Bearer <access_token>
```

### Example response


```json
{
  "content": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "type": "REDEMPTION",
      "status": "COMPLETED",
      "amount": "10000.00",
      "token": "RLUSD",
      "source": {
        "type": "CRYPTO",
        "walletId": "RIP0000001",
        "address": "0x1234abcd5678ef90...",
        "chain": "ETH",
        "transactionHash": "ABC123DEF456..."
      },
      "destination": {
        "type": "FIAT"
      },
      "createdAt": "2026-03-17T10:00:00Z",
      "updatedAt": "2026-03-17T10:05:00Z"
    }
  ],
  "totalElements": 50,
  "totalPages": 3,
  "size": 20,
  "number": 0
}
```

## Get transaction

To get a specific transaction by ID, use the [Get a transaction](/products/stablecoin/api/reference/rlusd-openapi#operation/getTransaction) API operation as follows:


```
GET /v1/stablecoin/transactions/{id}
```

### Path parameters

| Parameter | Type | Description |
|  --- | --- | --- |
| `id` | string (UUID) | Transaction ID |


### Example request


```http
GET /v1/stablecoin/transactions/550e8400-e29b-41d4-a716-446655440000
Authorization: Bearer <access_token>
```

### Response

The response is a transaction object like the following:


```json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "type": "ISSUANCE",
  "status": "COMPLETED",
  "amount": "10000.00",
  "token": "RLUSD",
  "source": {
    "type": "FIAT"
  },
  "destination": {
    "type": "CRYPTO",
    "walletId": "RIP0000001",
    "address": "rN7M2B4y3kuoEaQfYMJDPKgEbVh4K8xm3p",
    "chain": "XRPL",
    "transactionHash": "ABC123DEF456..."
  },
  "createdAt": "2026-03-17T10:00:00Z",
  "updatedAt": "2026-03-17T10:05:00Z"
}
```

| Field | Type | Description |
|  --- | --- | --- |
| `id` | string (UUID) | Unique transaction identifier |
| `type` | string | null | Transaction type: `ISSUANCE`, `REDEMPTION`, or `BRIDGE`. See [Transaction Types](#transaction-types) |
| `status` | string | Current status. See [Transaction Statuses](#transaction-statuses) |
| `amount` | string (decimal) | Transaction amount |
| `token` | string | Always `RLUSD` |
| `source` | object | Source endpoint of the transaction. See [Transaction endpoint](#transaction-endpoint) |
| `destination` | object | null | Destination endpoint. See [Transaction endpoint](#transaction-endpoint) |
| `createdAt` | string (ISO 8601) | Timestamp when the transaction was created |
| `updatedAt` | string (ISO 8601) | Timestamp when the transaction was last updated |


### Transaction endpoint

The `source` and `destination` fields of the response each contain a *transaction endpoint* object, which represents the source or destination of the transaction. This object is defined as follows:

| Field | Type | Description |
|  --- | --- | --- |
| `type` | string | `FIAT` or `CRYPTO` |
| `walletId` | string | null | Wallet identifier in `RIPxxxxxxx` format. Present when `type` is `CRYPTO` |
| `address` | string | null | On-chain address. Present when `type` is `CRYPTO` and the on-chain leg has been initiated |
| `chain` | string | null | Blockchain network name (e.g., `XRPL`, `ETH`). Present when `type` is `CRYPTO` |
| `transactionHash` | string | null | On-chain transaction hash. Present when the on-chain leg has settled |


#### Examples

**Crypto endpoint (settled):**


```json
{
  "type": "CRYPTO",
  "walletId": "RIP0000001",
  "address": "rN7M2B4y3kuoEaQfYMJDPKgEbVh4K8xm3p",
  "chain": "XRPL",
  "transactionHash": "ABC123DEF456..."
}
```

**Fiat endpoint:**


```json
{
  "type": "FIAT"
}
```

## Transaction types

| Type | Source | Destination | Description |
|  --- | --- | --- | --- |
| `ISSUANCE` | `FIAT` | `CRYPTO` | USD-to-RLUSD minting. Fiat is received and RLUSD is minted to your crypto wallet |
| `REDEMPTION` | `CRYPTO` | `FIAT` | RLUSD-to-USD redemption. RLUSD is burned and fiat is settled to your default bank account |
| `BRIDGE` | `CRYPTO` | `CRYPTO` | Cross-chain RLUSD transfer between two crypto wallets |


## Transaction statuses

| Value | Description |
|  --- | --- |
| `PROCESSING` | Transaction is actively being processed |


| `COMPLETED` | Transaction completed successfully |
| `FAILED` | Transaction failed |