<!--
{
  "availability" : [
    "Retention Messaging API: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "RetentionMessaging",
  "identifier" : "/documentation/RetentionMessaging/DecodedRealtimeRequestBody",
  "metadataVersion" : "0.1.0",
  "role" : "Object",
  "symbol" : {
    "kind" : "Object",
    "modules" : [
      "Retention Messaging API"
    ],
    "preciseIdentifier" : "data:retention_messaging:DecodedRealtimeRequestBody"
  },
  "title" : "DecodedRealtimeRequestBody"
}
-->

# DecodedRealtimeRequestBody

The decoded request body the App Store sends to your server to request a real-time retention message.

```
object DecodedRealtimeRequestBody
```

## Discussion

The App Store server sends a request to your `Get Retention Message` endpoint that includes a [`RealtimeRequestBody`](/documentation/RetentionMessaging/RealtimeRequestBody). The `DecodedRealtimeRequestBody` is the decoded version of that request body.

The `DecodedRealtimeRequestBody` provides information you can use to select a retention message for display. The request includes the customer’s original transaction identifier, the product identifier, and their locale. Consider this information, along with your business logic, to choose the best retention message for the customer.

> Important: Always check that the `appAppleId` in the request matches your app’s `appAppleId`. If it doesn’t match, don’t respond to the request.

For more information, see [Responding to real-time retention messaging requests](/documentation/RetentionMessaging/responding-to-realtime-retention-messaging-requests).

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)