---
title: DecodedRealtimeRequestBody
framework: retentionmessaging
role: symbol
role_heading: Object
path: retentionmessaging/decodedrealtimerequestbody
---

# DecodedRealtimeRequestBody

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

## Declaration

```data
object DecodedRealtimeRequestBody
```

## Properties

originalTransactionId: The original transaction identifier of the customer’s subscription. appAppleId: The unique identifier of the app in the App Store. productId: The unique identifier of the auto-renewable subscription. userLocale: The device’s locale. requestIdentifier: A UUID the App Store server creates to uniquely identify each request. environment: The server environment, either sandbox or production. signedDate: The UNIX time, in milliseconds, that the App Store signed the JSON Web Signature (JWS) data.

## Mentioned in

Responding to real-time retention messaging requests Retention Messaging API changelog Setting up your Get Retention Message endpoint

## Discussion

Discussion The App Store server sends a request to your Get Retention Message endpoint that includes a 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.

## See Also

### Real-time retention messaging responses

- [Responding to real-time retention messaging requests](retentionmessaging/responding-to-realtime-retention-messaging-requests.md)
- [RealtimeResponseBody](retentionmessaging/realtimeresponsebody.md)
