> For the complete documentation index, see [llms.txt](https://docs.pay.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.pay.io/transaction-management/user-transactions.md).

# User Transactions

The **User Transactions** page provides a complete, searchable record of every player-initiated transaction that has moved through your platform — deposits *and* payouts, across every asset and network you have configured. Where the **Withdrawal Requests** page is an action queue for items awaiting review, the User Transactions page is the **system of record** for everything that has already been processed.

Use it to investigate player-reported issues, reconcile activity, track failures, and retry transactions that did not complete successfully the first time.

{% hint style="info" %}
**Looking for withdrawals that still need manual approval?** See [Withdrawal Requests](/transaction-management/withdrawal-requests.md).&#x20;

The User Transactions page only lists requests that have already been dispatched to the Payment Gateway.&#x20;
{% endhint %}

### Why Use It?

* **A single source of truth** for every deposit and payout across your operation.
* **Fast triage** of failed transactions — filter, inspect, and retry in seconds.
* **Granular audit trail** — every row links to the on-chain transaction hash and the originating user.
* **Reconciliation ready** — export the full view to CSV for finance or compliance review.

### Accessing the Page

From the left-hand navigation, go to **Transaction Management → User Transactions**.

<div data-with-frame="true"><figure><img src="/files/tN83xAYRZsndksAzcziF" alt=""><figcaption></figcaption></figure></div>

### Understanding the Transaction Table

Each row represents a single player transaction. The table is sortable and filterable, and lists the following columns:

| Column                  | Description                                                                                                                            |
| ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| **Transaction ID**      | Unique identifier for the transaction within Pay.io. Use this when raising support tickets.                                            |
| **User ID**             | The player who initiated the transaction.                                                                                              |
| **Request time**        | Date and time (UTC) the transaction was requested.                                                                                     |
| **Origin address**      | The wallet address the funds were sent *from*. For payouts this is your Hot Wallet; for deposits this is the player's external wallet. |
| **Destination address** | The wallet address the funds were sent *to*. The inverse of Origin.                                                                    |
| **Type**                | **Payout** (withdrawal to a player) or **Deposit** (incoming funds from a player).                                                     |
| **Asset**               | The cryptocurrency or stablecoin involved, with its network.                                                                           |
| **Amount**              | The value transacted, expressed in the selected asset.                                                                                 |
| **USD**                 | The equivalent value in USD at the time of the request.                                                                                |
| **Status**              | **Confirmed**, **Processing**, or **Failed**. Failed rows display an inline retry icon.                                                |
| **Transaction Hash**    | The on-chain transaction hash. Use this to look the transaction up on the relevant block explorer.                                     |
| **Detail**              | Click the eye icon to open the full Transaction Details panel.                                                                         |

### Filtering and Searching

The filter bar at the top of the table lets you narrow the view:

* **Timeframe** — today, yesterday, this week, this month, this year, all time, or a custom date range.
* **Type** — Payout or Deposit.
* **Asset** — a specific cryptocurrency or stablecoin.
* **Status** — Confirmed, Processing, or Failed.
* **Search** — look up by transaction ID, user ID, wallet address, or transaction hash.
* **Clear All** — resets every filter to its default.

{% hint style="info" %}
**Filters combine additively.**&#x20;

Setting **Type: Payout** and **Status: Failed** together will surface every failed payout in the selected timeframe — the fastest way to find transactions that need your attention.&#x20;
{% endhint %}

### Viewing Transaction Details

Click the **eye icon** in the Detail column of any row to open the Transaction Details panel. The panel contains the complete record for the transaction, including fields that are not displayed in the table view.

#### **Confirmed Transaction**

A **Confirmed** transaction has been broadcast to the blockchain and has reached the required number of network confirmations. No further action is required.

<div data-with-frame="true"><figure><img src="/files/ZRdbiqzM3diBGiuffsco" alt=""><figcaption></figcaption></figure></div>

#### **Failed Transaction**

A **Failed** transaction did not complete. The details panel displays the failure reason at the bottom, followed by a **Retry Transaction** button.

Common failure reasons include:

* **Provider failure** — an issue with the underlying Payment Gateway or a downstream liquidity provider.
* **Insufficient funds** — your Hot Wallet did not hold enough balance for the asset and network at the time of dispatch.
* **Network error** — a temporary issue reaching the blockchain.

<figure><img src="/files/rFG1HUJ5GT8eCDMJ0RLF" alt=""><figcaption></figcaption></figure>

#### Retrying a Failed Transaction

When a transaction fails, Pay.io gives you the option to retry it directly from the Transaction Details panel. Retries re-submit the same transaction — same amount, same destination address, same asset — through the Payment Gateway.

**Prerequisites**

* The transaction's status is **Failed**.
* Your Hot Wallet holds sufficient balance for the asset and network in question. See [Float Set-Up and Maintenance](/assets/float-set-up-and-maintenance.md) if you need to top up.
* You understand why the transaction failed — retrying without addressing the underlying cause will typically produce the same result.

**Retrying the Transaction**

{% stepper %}
{% step %}
**Open the Transaction Details Panel**

From the User Transactions table, locate the failed transaction and click the **eye icon** in the **Detail** column. You can also click the small retry icon directly next to the **Failed** status in the table — both routes lead to the same panel.

{% hint style="info" %}
Use the **Status: Failed** filter to find all failed transactions at once, particularly after a bulk approval batch.
{% endhint %}
{% endstep %}

{% step %}
**Review the Failure Reason**

At the bottom of the details panel, Pay.io displays the reason the transaction failed — for example, **Provider failure** or **Insufficient funds**. Read this carefully before proceeding.

{% hint style="warning" %}
Retrying a transaction that failed due to **insufficient funds** will fail again unless you top up your Hot Wallet first. Check your float before clicking Retry.
{% endhint %}
{% endstep %}

{% step %}
**Click Retry Transaction**

Click the green **Retry Transaction** button. Pay.io will re-dispatch the original transaction to the Payment Gateway using the same parameters — amount, asset, network, and destination address.
{% endstep %}

{% step %}
**Monitor the New Status**

The transaction's status will update to **Processing** while it is being re-dispatched. Most retries resolve to **Confirmed** within **5 seconds to 5 minutes**, depending on network conditions.

If the retry also fails, the status will return to **Failed** and the details panel will display the new failure reason. Investigate before retrying a third time.

{% hint style="info" %}
You can monitor the on-chain progress using the **Transaction Hash** on the relevant block explorer once the retry has been broadcast.&#x20;
{% endhint %}
{% endstep %}
{% endstepper %}

### Exporting Transactions

To export the current view to CSV for reconciliation, reporting, or audit purposes:

1. Apply any filters you wish to include in the export.
2. Click **Download CSV** in the top right-hand corner of the table.

The exported file contains every column displayed in the table, plus a **Failure Reason** column populated for any failed rows. Only transactions matching your active filters will be included.

{% hint style="info" %}
CSV exports are generated at the moment you click Download, using the filters currently applied. If you need a consistent, point-in-time export for audit purposes, apply a specific date range before exporting
{% endhint %}

### Things to Bear in Mind

* **The User Transactions page is read-only for everything apart from retries.** You cannot edit, cancel, or delete a transaction from this view.
* **Retries are a re-dispatch, not a new transaction.** The Transaction ID does not change, but a new **Transaction Hash** is generated once the retry is broadcast to the blockchain.
* **Status updates are near real-time**, but may lag slightly behind on-chain state during periods of high network congestion.
* **Bulk retry is not available,** as each failed transaction must be retried individually to ensure deliberate review of the failure reason.
* **Viewers** can read this page and export CSVs but cannot retry transactions. See [Team Management — Roles and Permissions](/account-settings/team-management-roles-and-permissions.md) for the full matrix.

***

#### What's Next?

* [Withdrawal Requests](/transaction-management/withdrawal-requests.md) to manage the queue of withdrawals awaiting manual approval.
* [Float Set-Up and Maintenance](/assets/float-set-up-and-maintenance.md) to keep your Hot Wallet topped up so transactions do not fail for liquidity reasons.
* [Managing Notifications](/account-settings/managing-notifications.md) to enable alerts for failed transactions and low balance events.
* [Webhook Retry Policy](/api-reference/core-concepts/webhook-retry-policy.md) to understand how failed webhook deliveries are handled alongside transaction retries.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.pay.io/transaction-management/user-transactions.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
