Reward Notification
Abstract
This document outlines the integration process and data flows for Cardlytics’ reward redemption reporting, focusing on two main delivery mechanisms: S3 File Transfer and Real-Time Messaging (RTM) Webhooks. The S3 integration ensures that publishers receive daily flat files containing comprehensive redemption data, which is essential for reconciliation. The RTM Webhook provides immediate notification of redemption events as they occur. The document includes sample data structures for reward redemptions and details the API endpoint /v2/customerProfile/getCustomerRewardSummary
, which aggregates and returns a customer’s reward activity across various time periods. This guide is intended to help publishers implement robust and real-time reward tracking and reporting using Cardlytics' platform.
How It Works
Prerequisites
- To begin, you need to set up S3 File Transfer as detailed here: https://platform.cardlytics.com/publisher-integrations/docs/s3-publisher-file-transfer.
S3 - Flat File
- Cardlytics will produce a daily Redemption Feed and transfer it to your S3. This is a mandatory step regardless of Webhook implementation due to reconciliation.
Webhook
- Cardlytics will also provide a Real-Time Messaging (RTM) Webhook to immediately relay Redemption events as they occur. For more details, visit https://platform.cardlytics.com/publisher-integrations/docs/real-time-messaging.
Example Reward File
{
"redemptionId": "517713527",
"sourceOrganizationId": "CRP",
"sourcePortfolioId": "CRP-Standard",
"redemptionDate": "2025-03-08T00:00:00.000Z",
"sourceAccountId": "c5f0be70-bb01-4da1-a01c-8d63b1425633",
"sourceCustomerId": "7554b88f-167d-4aed-aaff-8bd01ba8fdcb",
"sourceTransactionIds": [
"b59977fa-7b66-4fde-88c6-89acec5d57cf"
],
"adId": "1000080445",
"rewardId": "84359",
"rewardAmount": "359",
"rewardCurrencyType": "USD",
"isOfferFullyRedeemed": true,
"isReversal": false,
"rewardSettlementProcessDate": "2025-03-11T16:48:52.261Z"
}
Get Customer Reward Summary
GET /v2/customerProfile/getCustomerRewardSummary
Use this call to retrieve a customer's total and time-based reward summaries.
Request Headers:
- Content-Type: application/json
- *x-source-customer-id: string
Request Payload:
- clientId: Your unique clientId provided by Cardlytics.
secret: A secure secret key shared with you by Cardlytics.
Response
Returns a rewardsSummary object that contains aggregated reward data.
Time Period | Fields |
---|---|
allTime, yearToDate, previousCalendarYear, previousMonth, previousTwelveMonths, currentMonth | redemptionCount, redeemedOfferCount, totalRedeemingTransactionAmount, totalRewardAmount |
Response
{
"requestId": "380052b4-3a64-4952-b640-ba696eb9f44b",
"rewardsSummary": {
"allTime": {
"redemptionCount": 35,
"redeemedOfferCount": 10,
"totalRedeemingTransactionAmount": 350.55,
"totalRewardAmount": 35.05
},
"yearToDate": {
"redemptionCount": 15,
"redeemedOfferCount": 5,
"totalRedeemingTransactionAmount": 150.55,
"totalRewardAmount": 15.05
},
"previousCalendarYear": {
"redemptionCount": 25,
"redeemedOfferCount": 10,
"totalRedeemingTransactionAmount": 250.80,
"totalRewardAmount": 25.08
},
"previousMonth": {
"redemptionCount": 7,
"redeemedOfferCount": 3,
"totalRedeemingTransactionAmount": 45.67,
"totalRewardAmount": 4.06
},
"previousTwelveMonths": {
"redemptionCount": 19,
"redeemedOfferCount": 9,
"totalRedeemingTransactionAmount": 200.34,
"totalRewardAmount": 20.03
},
"currentMonth": {
"redemptionCount": 5,
"redeemedOfferCount": 3,
"totalRedeemingTransactionAmount": 19.17,
"totalRewardAmount": 1.91
}
}
}
Updated about 12 hours ago