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

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

`payment.succeeded` fires when a payment request your agent created is paid. For a subscription, the first period is paid and the subscription is active; renewals are events on your own Stripe account.

## 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` | `succeeded` |
| `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

Fulfill the order or turn on the subscription for `data.id`. Relay also adds the payer's receipt to the chat, which reaches your agent as `message.received`.

## Next steps

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