> ## 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.canceled

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

`payment.canceled` fires when your agent canceled a payment request before it was paid.

## 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` | `canceled` |
| `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`. Every card that carries the request already reads Canceled.

## Next steps

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