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

# Retain Push Event Classes and Events

Retain has a single event class that includes several different events. You can subscribe to some of the events or choose to subscribe to the entire event class to receive all the included event notifications.

The Retain Push Notifications are all part of Push 2.0 and they provide the Retain REST API objects.

**Tip:** If you subscribe to an entire Event Class, you will potentially see messages for new events (event types) as new events are added to that class over time. Ensure that your listener and parsing logic can ignore event types you don't want to receive, or consider excluding individual new events as they're released (and published in Vindicia Release Notes), or consider subscribing to individual events rather than an entire class.

* **[Event Class: Retain](../topics/Push_Event_Classes_and_E1#)**

**Parent topic:**[Push Notifications](../topics/ProgGuide_PushNotifications)

## Event Class: Retain

Retain Push Notifications proactively inform you about key processing events occurring to failed transactions submitted to Retain for recovery.

The Retain Class currently includes the following events:

| Event | Trigger |
| - | - |
| Validation Failed (Push 2.0) | A submitted Transaction fails asynchronous post-submission system data validation. Message Content: **Retain REST transaction object**. See [Retain Transactions Callbacks](/portal/apis/retain-api#tag/Retain-Transactions) for details. **Note:** For more details and troubleshooting recommendations, see [Retain Transaction Submission Troubleshooting](/portal/retainPortalUserGuide/topics/retainErrorList) |
| Retry Succeeded (Push 2.0) | A submitted Transaction was captured by Retain in a consecutive attempt. Message Content: **Retain REST transaction object**. See [Retain Transactions Callbacks](/portal/apis/retain-api#tag/Retain-Transactions) for details. |
| Retry Failed (Push 2.0) | A submitted Transaction was not captured during Retain attempts (the last retry attempt for the submitted Transaction is "canceled"). Message Content: **Retain REST transaction object**. See [Retain Transactions Callbacks](/portal/apis/retain-api#tag/Retain-Transactions) for details. |
| Refund Succeeded (Push 2.0) | A refund for a specific submitted Transaction has been successfully processed. Message Content: **Retain REST transaction object**. See [Retain Refund Callbacks](/portal/apis/retain-api#tag/Retain-Refunds) for details. |
| Refund Failed (Push 2.0) | A refund request to the Payment Provider was declined or not approved. Message Content: **RetainREST transaction object**. See [Retain Refund Callbacks](/portal/apis/retain-api#tag/Retain-Refunds) for details. |
| **Parent topic:**[Retain Push Event Classes and Events](../topics/Push_Event_Classes_and_E1#) | |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.