Skip to Content
RewardsPayload and signing

Reward connection payload and signing

Audience: Developers who build the endpoint behind a reward connection

When a reward with delivery set to Reward connection is issued, HighAdvocacy sends a request with the reward’s data to the connection’s URL. This page describes that data as the in-app Data preview shows it.

See the exact data for your reward

  1. Open Rewards, then the Catalog tab, and open (or create) a reward.
  2. Under Delivery, choose Reward connection.
  3. In the Data preview section, click Show preview. The preview updates as you type. Click the copy icon to copy it.

The Data preview section expanded, showing the JSON sent to a reward connection

Example

This is the Data preview for a Credits reward worth 100 credits. Values in angle brackets are placeholders; real requests carry real IDs, names, and dates.

{ "type": "review.verified", "timestamp": "2026-06-03T10:00:00.000Z", "data": { "campaignId": "cmp_<id>", "campaignName": "Example campaign", "submissionId": "sub_<id>", "user": { "userId": "usr_<id>", "email": "advocate@example.com", "name": "Sample Advocate" }, "platform": "G2", "section": "review", "requiredActions": [], "proofUrls": {}, "proofUrl": "https://www.g2.com/...", "rewardCategory": "webhook", "rewardType": "credits", "rewardAmount": 100, "rewardName": "100 product credits", "rewardDescription": "Get 100 product credits when we approve your submission.", "rewardId": "rwd_<id>", "issuedRewardId": "rws_<id>", "name": "100 product credits", "delivery": { "type": "connection", "connection": "Gift card sender" }, "extras": {}, "status": "verified", "isTest": false } }

Fields

FieldMeaning
typeThe event. review.verified in the preview.
timestampThe time of the event.
data.campaignId, data.campaignNameThe campaign the submission came from.
data.submissionIdThe submission that earned the reward.
data.userThe customer: userId, email, and name. Use these to find the account to credit.
data.platform, data.sectionWhere the proof was posted (for example G2) and what kind it is (for example review).
data.proofUrl, data.proofUrls, data.requiredActionsLinks to the proof and any required actions for the ask.
data.rewardTypecredits, giftcard, or custom.
data.rewardAmountThe number: credits to send, gift card value, or the custom reward value. It is a plain number, not a formatted label.
data.rewardName, data.nameThe reward name from the catalog.
data.rewardDescriptionThe reward’s Description for customers.
data.rewardIdThe catalog reward.
data.issuedRewardIdThis issued reward. Use it to avoid processing the same reward twice.
data.deliverytype and the connection name.
data.extrasThe key and value pairs you added under Extras on the reward, for example { "cost_center": "marketing" }.
data.statusverified in the preview.
data.isTestfalse for real rewards.

data.rewardCategory is always webhook for rewards sent through a connection.

Custom headers

Any Custom headers you add on the connection (for example an API key) are sent with every request. See Send rewards automatically.

Check the signature

Each request is signed with your workspace signing secret. The signature is in the X-HighAdvocacy-Signature header. Find the secret under Settings › Security › Signing secret, and use it on your server to confirm a request came from HighAdvocacy. Reject requests whose signature doesn’t match.

The Signing secret section in Security settings with the X-HighAdvocacy-Signature header explained

Create new secret replaces the secret. The current secret stops working right away, so update your server at the same time.

Respond quickly

Answer within 30 seconds. A request with no answer in time is marked Failed with “Your reward connection didn’t answer in time.” A response with an error status (for example 401, 404, or 500) is also marked Failed, and your team can retry it from Activity. See Reward activity.

Last updated on