# Payment History & Recovery

Cashiers and merchants can view and manage POS payment history.

***

## Cashier Payment History

### Accessing History

While logged into a POS terminal, cashiers can tap the **History** button (clock icon) in the terminal header bar to open the payment history panel.

The history panel shows **only payments made by the current cashier on the current terminal**, ordered newest first (up to 50 payments).

### What Cashiers See

Each payment entry shows:

| Field    | Description                                                         |
| -------- | ------------------------------------------------------------------- |
| Amount   | Payment amount and token symbol (e.g., "10.00 USDT")                |
| Status   | Current status badge (Pending, Completed, Collected, Expired, etc.) |
| Time     | Relative time since creation (e.g., "5m ago", "2h ago")             |
| Order ID | The full POS Order ID (e.g., `POS-R1-JD-1707842400000`)             |
| Received | For partial payments, shows how much was received                   |

### Filter Tabs

The history panel has four filter tabs:

| Tab           | Shows                                                           |
| ------------- | --------------------------------------------------------------- |
| **All**       | Every payment (default)                                         |
| **Pending**   | Payments waiting for customer to pay (no funds received yet)    |
| **Completed** | Payments that are paid, completed, or collected                 |
| **Partial**   | Payments where some funds were received but not the full amount |

### Resuming a Pending Payment

If a payment is still pending (waiting for the customer), the cashier can tap **Resume** to return to that payment's QR code screen. This is useful when:

* The POS terminal was accidentally closed or crashed mid-payment
* The browser refreshed during a payment
* The device ran out of battery and was restarted
* The cashier logged out and back in while a payment was active

The Resume button loads the original payment -- same QR code, same wallet address, same amount. The customer can continue paying without creating a new payment.

> **Note:** Expired payments cannot be resumed. If a payment has expired, create a new one.

***

## Merchant Payment History (Dashboard)

Merchants can view all POS payments from the main dashboard.

### POS Activity Page

Go to **Dashboard > POS > Activity** to see all POS payments across all terminals and cashiers.

### Filtering by Terminal or Cashier

Use the Order ID to identify payments:

| Order ID Part   | Meaning             |
| --------------- | ------------------- |
| `POS-`          | POS payment prefix  |
| `R1`            | Terminal short code |
| `JD`            | Cashier short code  |
| `1707842400000` | Timestamp           |

Example: To find all payments from Register 1, search for `POS-R1-`.

To find all payments by cashier "JD", search for the cashier code in the Order ID.

### Payment Statuses in the Dashboard

| Status                | Meaning                                  |
| --------------------- | ---------------------------------------- |
| Pending               | Waiting for customer payment             |
| Paid                  | Payment received, settlement in progress |
| Completed             | Fully processed and settled              |
| Withdrawn / Collected | Funds sent to merchant wallet            |
| Expired               | Payment timed out before customer paid   |
| Cancelled             | Payment was cancelled by the cashier     |
| Failed                | Payment processing failed                |

***

## Partial Payments

A partial payment occurs when a customer sends less than the requested amount. For example, if the POS requests 100 USDT and the customer sends 60 USDT.

### What Cashiers See

When a partial payment is detected:

1. The terminal shows a **"Partial Payment Received"** banner
2. A **progress bar** shows how much has been received vs. expected
3. Two options are available:
   * **Collect** -- collect whatever was received and close the payment
   * **Wait** -- keep the QR code displayed so the customer can send the remaining amount

### Collecting Partial Payments

Tapping **Collect** submits a withdrawal request:

1. The system queues the funds for collection
2. Status changes to "Collecting Funds"
3. Once processed, funds are sent to the merchant wallet
4. The cashier can then create a new payment for the remaining amount, or accept the partial payment

### Recovery from the History Panel

If the terminal closes while a partial payment is active:

1. Open the POS terminal and log in
2. Tap the **History** button
3. Switch to the **Partial** tab
4. Tap **Resume** on the partial payment
5. The payment screen reloads with the current state -- showing how much was received and the remaining balance

***

## Payment Recovery Scenarios

### Scenario: Browser Crashed Mid-Payment

1. Reopen the browser and navigate to the terminal URL
2. Log in with your PIN
3. Tap the **History** button
4. Find the pending payment and tap **Resume**
5. The QR code and payment details are restored

### Scenario: Device Ran Out of Battery

1. Charge and restart the device
2. Open the terminal URL
3. Log in with your PIN
4. Tap the **History** button
5. If the payment hasn't expired, tap **Resume**
6. If expired, create a new payment

### Scenario: Cashier Shift Change During Active Payment

1. New cashier logs in on the same terminal
2. The new cashier's history only shows **their own** payments
3. The previous cashier's pending payment is **not visible** to the new cashier
4. The merchant can see the orphaned payment in the dashboard and handle it from there

> **Important:** Each cashier's history is scoped to their own payments. A cashier cannot see or resume another cashier's payments.


---

# Agent Instructions: 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:

```
GET https://docs.makapay.io/point-of-sale-pos/payment-history.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
