> ## Documentation Index
> Fetch the complete documentation index at: https://docs.relayapp.im/llms.txt
> Use this file to discover all available pages before exploring further.

# payment.expired

> Read the payment.expired data payload and its fields.

`payment.expired` fires when a payment request reached its `expires_at` without being paid, 23 hours after it was created.

## Read the payload

The `data` object is the full `PaymentRequest` from the API contract, the same object [Retrieve a payment request](/api-reference/payments/retrieve-a-payment-request) returns. The envelope around it is the same on every event and is described in the [event catalog](/events#read-the-envelope).

| Field | Meaning |
| - | - |
| `id` | Payment request ID |
| `status` | `expired` |
| `mode` | `payment` or `subscription` |
| `amount`, `currency` | What the person is charged at checkout, in minor units |
| `category` | `physical_goods`, `digital_goods` or `donation` |
| `metadata` | Your own keys, as you sent them |
| `stripe` | The ids of the Stripe objects on your account |

## Handle the event

Close the order for `data.id`, or create a new request if the person still wants to pay.

## Next steps

* [Payments](/interactions/payments#status)
* [Cancel a payment request](/api-reference/payments/cancel-a-payment-request)
* [Choose an event type](/events)
