[{"data":1,"prerenderedAt":2963},["ShallowReactive",2],{"navigation":3,"\u002Fdocs\u002Fapi-reference\u002Fbraze\u002Frewardstar":260,"\u002Fdocs\u002Fapi-reference\u002Fbraze\u002Frewardstar-surround":2958},[4,18,232],{"title":5,"path":6,"stem":7,"children":8,"icon":17},"Getting Started","\u002Fdocs\u002Fgetting-started","1.docs\u002F1.getting-started\u002F1.index",[9,12],{"title":10,"path":6,"stem":7,"icon":11},"Introduction","i-lucide-home",{"title":13,"path":14,"stem":15,"icon":16},"Quick Start","\u002Fdocs\u002Fgetting-started\u002Finstallation","1.docs\u002F1.getting-started\u002F2.installation","i-lucide-rocket",false,{"title":19,"icon":17,"path":20,"stem":21,"children":22},"Admin Guides","\u002Fdocs\u002Fadmin-guides","1.docs\u002F2.admin-guides\u002F1.index",[23,25,34,43,62,92,116,150,175],{"title":19,"path":20,"stem":21,"icon":24},"i-lucide-book-open",{"title":26,"icon":17,"path":27,"stem":28,"children":29,"page":17},"Programs","\u002Fdocs\u002Fadmin-guides\u002Fprograms","1.docs\u002F2.admin-guides\u002F0.programs",[30],{"title":26,"path":31,"stem":32,"icon":33},"\u002Fdocs\u002Fadmin-guides\u002Fprograms\u002Fprograms","1.docs\u002F2.admin-guides\u002F0.programs\u002F1.programs","i-lucide-layout-grid",{"title":35,"icon":17,"path":36,"stem":37,"children":38,"page":17},"Dashboard","\u002Fdocs\u002Fadmin-guides\u002Fdashboard","1.docs\u002F2.admin-guides\u002F1.dashboard",[39],{"title":35,"path":40,"stem":41,"icon":42},"\u002Fdocs\u002Fadmin-guides\u002Fdashboard\u002Fdashboard","1.docs\u002F2.admin-guides\u002F1.dashboard\u002F1.dashboard","i-lucide-layout-dashboard",{"title":44,"icon":17,"path":45,"stem":46,"children":47,"page":17},"Members","\u002Fdocs\u002Fadmin-guides\u002Fmembers","1.docs\u002F2.admin-guides\u002F2.members",[48,52,57],{"title":44,"path":49,"stem":50,"icon":51},"\u002Fdocs\u002Fadmin-guides\u002Fmembers\u002Fmembers","1.docs\u002F2.admin-guides\u002F2.members\u002F1.members","i-lucide-users",{"title":53,"path":54,"stem":55,"icon":56},"Companies","\u002Fdocs\u002Fadmin-guides\u002Fmembers\u002Fcompanies","1.docs\u002F2.admin-guides\u002F2.members\u002F2.companies","i-lucide-building-2",{"title":58,"path":59,"stem":60,"icon":61},"Communicate","\u002Fdocs\u002Fadmin-guides\u002Fmembers\u002Fcommunicate","1.docs\u002F2.admin-guides\u002F2.members\u002F3.communicate","i-lucide-mail",{"title":63,"icon":17,"path":64,"stem":65,"children":66,"page":17},"Rewards","\u002Fdocs\u002Fadmin-guides\u002Frewards","1.docs\u002F2.admin-guides\u002F3.rewards",[67,72,77,82,87],{"title":68,"path":69,"stem":70,"icon":71},"Rewards Catalog","\u002Fdocs\u002Fadmin-guides\u002Frewards\u002Frewards-catalog","1.docs\u002F2.admin-guides\u002F3.rewards\u002F1.rewards-catalog","i-lucide-gift",{"title":73,"path":74,"stem":75,"icon":76},"Orders","\u002Fdocs\u002Fadmin-guides\u002Frewards\u002Forders","1.docs\u002F2.admin-guides\u002F3.rewards\u002F2.orders","i-lucide-shopping-cart",{"title":78,"path":79,"stem":80,"icon":81},"Points Import","\u002Fdocs\u002Fadmin-guides\u002Frewards\u002Fpoints-import","1.docs\u002F2.admin-guides\u002F3.rewards\u002F3.points-import","i-lucide-upload",{"title":83,"path":84,"stem":85,"icon":86},"Fund","\u002Fdocs\u002Fadmin-guides\u002Frewards\u002Ffund","1.docs\u002F2.admin-guides\u002F3.rewards\u002F4.fund","i-lucide-wallet",{"title":88,"path":89,"stem":90,"icon":91},"RewardStar Card","\u002Fdocs\u002Fadmin-guides\u002Frewards\u002Frewardstar-card","1.docs\u002F2.admin-guides\u002F3.rewards\u002F5.rewardstar-card","i-lucide-credit-card",{"title":93,"icon":17,"path":94,"stem":95,"children":96,"page":17},"Data","\u002Fdocs\u002Fadmin-guides\u002Fdata","1.docs\u002F2.admin-guides\u002F4.data",[97,102,107,111],{"title":98,"path":99,"stem":100,"icon":101},"Data Buckets","\u002Fdocs\u002Fadmin-guides\u002Fdata\u002Fdata-buckets","1.docs\u002F2.admin-guides\u002F4.data\u002F1.data-buckets","i-lucide-database",{"title":103,"path":104,"stem":105,"icon":106},"Targets","\u002Fdocs\u002Fadmin-guides\u002Fdata\u002Ftargets","1.docs\u002F2.admin-guides\u002F4.data\u002F2.targets","i-lucide-target",{"title":108,"path":109,"stem":110,"icon":81},"Data Imports","\u002Fdocs\u002Fadmin-guides\u002Fdata\u002Fdata-imports","1.docs\u002F2.admin-guides\u002F4.data\u002F3.data-imports",{"title":112,"path":113,"stem":114,"icon":115},"Target Points Rules","\u002Fdocs\u002Fadmin-guides\u002Fdata\u002Ftarget-points-rules","1.docs\u002F2.admin-guides\u002F4.data\u002F4.target-points-rules","i-lucide-calculator",{"title":117,"icon":17,"path":118,"stem":119,"children":120,"page":17},"Apps","\u002Fdocs\u002Fadmin-guides\u002Fapps","1.docs\u002F2.admin-guides\u002F5.apps",[121,126,130,135,140,145],{"title":122,"path":123,"stem":124,"icon":125},"Leaderboards","\u002Fdocs\u002Fadmin-guides\u002Fapps\u002Fleaderboards","1.docs\u002F2.admin-guides\u002F5.apps\u002F1.leaderboards","i-lucide-trophy",{"title":127,"path":128,"stem":129,"icon":106},"Target Trackers","\u002Fdocs\u002Fadmin-guides\u002Fapps\u002Ftarget-trackers","1.docs\u002F2.admin-guides\u002F5.apps\u002F2.target-trackers",{"title":131,"path":132,"stem":133,"icon":134},"Awards","\u002Fdocs\u002Fadmin-guides\u002Fapps\u002Fawards","1.docs\u002F2.admin-guides\u002F5.apps\u002F3.awards","i-lucide-medal",{"title":136,"path":137,"stem":138,"icon":139},"Tiers","\u002Fdocs\u002Fadmin-guides\u002Fapps\u002Ftiers","1.docs\u002F2.admin-guides\u002F5.apps\u002F4.tiers","i-lucide-layers",{"title":141,"path":142,"stem":143,"icon":144},"Claims","\u002Fdocs\u002Fadmin-guides\u002Fapps\u002Fclaims","1.docs\u002F2.admin-guides\u002F5.apps\u002F5.claims","i-lucide-file-check",{"title":146,"path":147,"stem":148,"icon":149},"Quizzes","\u002Fdocs\u002Fadmin-guides\u002Fapps\u002Fquizzes","1.docs\u002F2.admin-guides\u002F5.apps\u002F6.quizzes","i-lucide-help-circle",{"title":151,"icon":17,"path":152,"stem":153,"children":154,"page":17},"Content","\u002Fdocs\u002Fadmin-guides\u002Fcontent","1.docs\u002F2.admin-guides\u002F6.content",[155,160,165,170],{"title":156,"path":157,"stem":158,"icon":159},"Articles","\u002Fdocs\u002Fadmin-guides\u002Fcontent\u002Farticles","1.docs\u002F2.admin-guides\u002F6.content\u002F1.articles","i-lucide-newspaper",{"title":161,"path":162,"stem":163,"icon":164},"Pages","\u002Fdocs\u002Fadmin-guides\u002Fcontent\u002Fpages","1.docs\u002F2.admin-guides\u002F6.content\u002F2.pages","i-lucide-file-text",{"title":166,"path":167,"stem":168,"icon":169},"Menus","\u002Fdocs\u002Fadmin-guides\u002Fcontent\u002Fmenus","1.docs\u002F2.admin-guides\u002F6.content\u002F3.menus","i-lucide-menu",{"title":171,"path":172,"stem":173,"icon":174},"Design Studio","\u002Fdocs\u002Fadmin-guides\u002Fcontent\u002Fdesign-studio","1.docs\u002F2.admin-guides\u002F6.content\u002F4.design-studio","i-lucide-palette",{"title":176,"icon":17,"path":177,"stem":178,"children":179,"page":17},"Settings","\u002Fdocs\u002Fadmin-guides\u002Fsettings","1.docs\u002F2.admin-guides\u002F7.settings",[180,185,227],{"title":181,"path":182,"stem":183,"icon":184},"Overview","\u002Fdocs\u002Fadmin-guides\u002Fsettings\u002Foverview","1.docs\u002F2.admin-guides\u002F7.settings\u002F0.overview","i-lucide-layout-list",{"title":186,"icon":17,"path":187,"stem":188,"children":189,"page":17},"General Settings","\u002Fdocs\u002Fadmin-guides\u002Fsettings\u002Fgeneral-settings","1.docs\u002F2.admin-guides\u002F7.settings\u002F1.general-settings",[190,195,200,205,209,214,219,223],{"title":191,"path":192,"stem":193,"icon":194},"Admins","\u002Fdocs\u002Fadmin-guides\u002Fsettings\u002Fgeneral-settings\u002Fadmins","1.docs\u002F2.admin-guides\u002F7.settings\u002F1.general-settings\u002F2.admins","i-lucide-shield",{"title":196,"path":197,"stem":198,"icon":199},"Titles","\u002Fdocs\u002Fadmin-guides\u002Fsettings\u002Fgeneral-settings\u002Ftitles","1.docs\u002F2.admin-guides\u002F7.settings\u002F1.general-settings\u002F3.titles","i-lucide-type",{"title":201,"path":202,"stem":203,"icon":204},"Website","\u002Fdocs\u002Fadmin-guides\u002Fsettings\u002Fgeneral-settings\u002Fwebsite","1.docs\u002F2.admin-guides\u002F7.settings\u002F1.general-settings\u002F4.website","i-lucide-globe",{"title":206,"path":207,"stem":208,"icon":164},"Terms","\u002Fdocs\u002Fadmin-guides\u002Fsettings\u002Fgeneral-settings\u002Fterms","1.docs\u002F2.admin-guides\u002F7.settings\u002F1.general-settings\u002F5.terms",{"title":210,"path":211,"stem":212,"icon":213},"Privacy","\u002Fdocs\u002Fadmin-guides\u002Fsettings\u002Fgeneral-settings\u002Fprivacy","1.docs\u002F2.admin-guides\u002F7.settings\u002F1.general-settings\u002F6.privacy","i-lucide-shield-check",{"title":215,"path":216,"stem":217,"icon":218},"App","\u002Fdocs\u002Fadmin-guides\u002Fsettings\u002Fgeneral-settings\u002Fapp","1.docs\u002F2.admin-guides\u002F7.settings\u002F1.general-settings\u002F7.app","i-lucide-smartphone",{"title":220,"path":221,"stem":222,"icon":71},"Rewards Settings","\u002Fdocs\u002Fadmin-guides\u002Fsettings\u002Fgeneral-settings\u002Frewards","1.docs\u002F2.admin-guides\u002F7.settings\u002F1.general-settings\u002F8.rewards",{"title":224,"path":225,"stem":226,"icon":91},"Subscription","\u002Fdocs\u002Fadmin-guides\u002Fsettings\u002Fgeneral-settings\u002Fsubscription","1.docs\u002F2.admin-guides\u002F7.settings\u002F1.general-settings\u002F9.subscription",{"title":228,"path":229,"stem":230,"icon":231},"Translations","\u002Fdocs\u002Fadmin-guides\u002Fsettings\u002Ftranslations","1.docs\u002F2.admin-guides\u002F7.settings\u002F3.translations","i-lucide-languages",{"title":233,"path":234,"stem":235,"children":236,"icon":17},"API","\u002Fdocs\u002Fapi-reference","1.docs\u002F3.api-reference\u002F1.index",[237,238,242,247],{"title":181,"path":234,"stem":235,"icon":24},{"title":239,"path":240,"stem":241,"icon":91},"RewardStar API","\u002Fdocs\u002Fapi-reference\u002Frewardstar","1.docs\u002F3.api-reference\u002F6.rewardstar",{"title":243,"path":244,"stem":245,"icon":246},"Prize Draw Entries API","\u002Fdocs\u002Fapi-reference\u002Fprize-draw-entries","1.docs\u002F3.api-reference\u002F7.prize-draw-entries","i-lucide-ticket",{"title":248,"icon":17,"path":249,"stem":250,"children":251,"page":17},"Braze","\u002Fdocs\u002Fapi-reference\u002Fbraze","1.docs\u002F3.api-reference\u002F8.braze",[252,256],{"title":253,"path":254,"stem":255,"icon":91},"RewardStar Cards","\u002Fdocs\u002Fapi-reference\u002Fbraze\u002Frewardstar","1.docs\u002F3.api-reference\u002F8.braze\u002F1.rewardstar",{"title":257,"path":258,"stem":259,"icon":246},"Prize Draws","\u002Fdocs\u002Fapi-reference\u002Fbraze\u002Fprize-draws","1.docs\u002F3.api-reference\u002F8.braze\u002F2.prize-draws",{"id":261,"title":262,"body":263,"description":2952,"extension":2953,"meta":2954,"navigation":2955,"path":254,"seo":2956,"stem":255,"__hash__":2957},"docs\u002F1.docs\u002F3.api-reference\u002F8.braze\u002F1.rewardstar.md","Connect Braze Webhooks to RewardStar",{"type":264,"value":265,"toc":2924},"minimark",[266,271,286,290,293,296,299,311,322,326,330,406,410,489,493,550,558,572,576,579,616,622,632,636,680,690,696,700,765,769,773,780,829,833,956,984,987,990,995,1020,1100,1107,1110,1131,1140,1361,1367,1564,1568,1773,1777,1791,1809,1820,1824,1831,1945,1951,1955,1987,1995,2133,2146,2150,2169,2172,2175,2193,2215,2219,2229,2348,2352,2363,2620,2624,2721,2725,2880,2884,2920],[267,268,270],"h1",{"id":269},"connect-braze-webhooks-to-rewardstar-cards","Connect Braze Webhooks to RewardStar Cards",[272,273,274,278,279,282,285],"p",{},[275,276,277],"strong",{},"Who this is for:"," Marketing ops and Braze admins who want Braze to issue a RewardStar gift card when a campaign or Canvas step fires.",[280,281],"br",{},[275,283,284],{},"Time to complete:"," About 30–60 minutes (plus QA), once Incentable credentials and a RewardStar card template are ready.",[287,288,181],"h2",{"id":289},"overview",[272,291,292],{},"When a Braze campaign or Canvas step runs, Braze sends an automated HTTP webhook to Incentable. Incentable issues a RewardStar gift card, emails the recipient the card (with a redeem link), and the recipient completes redemption in the RewardStar redeem flow.",[272,294,295],{},"If a recipient unsubscribes from the RewardStar email, they confirm on Incentable's unsubscribe page and Incentable then opts them out of email in Braze through the Braze REST API. This keeps Braze as the source of truth for email consent.",[272,297,298],{},"Optionally, in the same Braze multichannel campaign, you can also send a Braze push or email (for example, “Your gift card is on the way”) so the user hears from you in Braze as well as from Incentable\u002FRewardStar.",[300,301,304],"callout",{"color":302,"icon":303},"neutral","i-lucide-info",[272,305,306,307,310],{},"Issuing a card is a ",[275,308,309],{},"custom webhook from Braze → Incentable",". It is not a Braze Alloy partner connector. The only call Incentable makes to Braze is the unsubscribe sync.",[272,312,313,314,321],{},"Braze’s own docs describe a similar pattern: when a user hits a milestone or earns points, use webhooks plus your existing API to credit a reward to their account. See ",[315,316,320],"a",{"href":317,"rel":318},"https:\u002F\u002Fwww.braze.com\u002Fdocs\u002Fuser_guide\u002Fchannels\u002Fwebhooks\u002Fcreate_a_webhook",[319],"nofollow","Create a webhook",".",[287,323,325],{"id":324},"prerequisites","Prerequisites",[327,328,248],"h3",{"id":329},"braze",[331,332,333,346],"table",{},[334,335,336],"thead",{},[337,338,339,343],"tr",{},[340,341,342],"th",{},"Requirement",[340,344,345],{},"Notes",[347,348,349,362,370,378,394],"tbody",{},[337,350,351,355],{},[352,353,354],"td",{},"Webhooks enabled on your Braze package",[352,356,357,358,361],{},"Availability depends on your Braze contract. If ",[275,359,360],{},"Webhooks"," is not visible, ask your Braze account manager or customer success manager.",[337,363,364,367],{},[352,365,366],{},"Permission to create a Webhook Campaign or Canvas webhook step",[352,368,369],{},"Needed to configure the call to Incentable.",[337,371,372,375],{},[352,373,374],{},"A defined trigger",[352,376,377],{},"Custom event (for example, reward earned \u002F points threshold) or Canvas entry \u002F step criteria after the user qualifies.",[337,379,380,388],{},[352,381,382,383,387],{},"A Braze REST API key with the ",[384,385,386],"code",{},"email.status"," permission",[352,389,390,391,321],{},"Used by Incentable only to sync unsubscribes. Created in Braze under ",[275,392,393],{},"Settings → APIs and Identifiers",[337,395,396,399],{},[352,397,398],{},"Your Braze REST endpoint",[352,400,401,402,405],{},"The REST cluster for your workspace, for example ",[384,403,404],{},"https:\u002F\u002Frest.au-01.braze.com",". Shown in Braze next to your API keys.",[327,407,409],{"id":408},"incentable-rewardstar","Incentable \u002F RewardStar",[331,411,412,420],{},[334,413,414],{},[337,415,416,418],{},[340,417,342],{},[340,419,345],{},[347,421,422,434,446,464,477],{},[337,423,424,427],{},[352,425,426],{},"Active RewardStar card template",[352,428,429,430,433],{},"With ",[275,431,432],{},"produced"," denominations (card images produced for the amounts you will issue).",[337,435,436,439],{},[352,437,438],{},"Program fund funded",[352,440,441,442,445],{},"Or use the card in ",[275,443,444],{},"test mode"," for QA (test mode does not draw down the fund).",[337,447,448,454],{},[352,449,450,451,453],{},"A ",[275,452,248],{}," integration in Incentable",[352,455,429,456,459,460,463],{},[275,457,458],{},"RewardStar: Write"," permission. Add ",[275,461,462],{},"Read"," if you will look up cards later.",[337,465,466,469],{},[352,467,468],{},"Braze REST credentials saved on the integration",[352,470,471,472,476],{},"Required. Card issue requests are rejected until they are saved (see ",[315,473,475],{"href":474},"#save-your-braze-rest-credentials","below",").",[337,478,479,482],{},[352,480,481],{},"Optional: Default RewardStar card",[352,483,484,485,488],{},"If set on the integration, Braze does not need to send ",[384,486,487],{},"cardId"," in every payload.",[287,490,492],{"id":491},"get-credentials-from-incentable","Get credentials from Incentable",[494,495,496,505,511,521,535,544,547],"ol",{},[497,498,499,500,321],"li",{},"Log in to the ",[315,501,504],{"href":502,"rel":503},"https:\u002F\u002Fapp.incentable.com",[319],"Incentable Admin Dashboard",[497,506,507,510],{},[275,508,509],{},"Select the program"," you want to issue RewardStar cards for (API keys are scoped to a single program).",[497,512,513,514,517,518,520],{},"Open ",[275,515,516],{},"Integrations"," and add a ",[275,519,248],{}," integration (or open your existing one).",[497,522,523,524,527,528,531,532,534],{},"Under ",[275,525,526],{},"Permissions & Configuration → RewardStar",", confirm ",[275,529,530],{},"Write"," is on. New Braze integration keys have it on by default. ",[275,533,462],{}," is optional, for looking up issued cards. Permission changes are made by Incentable — contact support if you need one changed.",[497,536,537,538,541,542,321],{},"Optionally set ",[275,539,540],{},"Default RewardStar Card"," on the same card so Braze payloads can omit ",[384,543,487],{},[497,545,546],{},"Save your Braze REST credentials (next section).",[497,548,549],{},"Generate the API key and store it in a secure password manager.",[300,551,552],{"color":302,"icon":303},[272,553,554,557],{},[275,555,556],{},"Already using a Custom API integration for Braze?"," It still issues cards, but unsubscribes will not sync back to Braze. Create a Braze integration, point your Braze webhook at its key, then deactivate the Custom API integration.",[300,559,562],{"color":560,"icon":561},"warning","i-lucide-key",[272,563,564,567,568,571],{},[275,565,566],{},"Security:"," Treat the API key as a secret. Put it only in the Braze webhook ",[275,569,570],{},"Authorization"," header. Never put the API key in the webhook URL. Prefer Braze secrets \u002F credential fields if your workspace supports them.",[287,573,575],{"id":574},"save-your-braze-rest-credentials","Save your Braze REST credentials",[272,577,578],{},"Incentable needs a Braze REST API key so it can opt recipients out of email in Braze when they unsubscribe.",[494,580,581,592,599,609],{},[497,582,583,584,586,587,591],{},"In Braze, go to ",[275,585,393],{}," and create a REST API key with only the ",[275,588,589],{},[384,590,386],{}," permission.",[497,593,594,595,598],{},"In Incentable, open the Braze integration and find the ",[275,596,597],{},"Braze REST API"," card.",[497,600,601,602,605,606,476],{},"Choose your ",[275,603,604],{},"REST cluster"," (for example ",[384,607,608],{},"AU-01 — rest.au-01.braze.com",[497,610,611,612,615],{},"Paste the Braze API key and click ",[275,613,614],{},"Save Changes",". Incentable stores it encrypted and shows only a masked prefix afterwards.",[300,617,619],{"color":560,"icon":618},"i-lucide-shield-alert",[272,620,621],{},"Never put the Braze REST key in a Braze campaign, email or webhook body. It belongs only in the Incentable integration settings. Braze does not let you edit permissions on an existing key — create a new key if your requirements change.",[272,623,624,625,628,629,321],{},"If the credentials are missing, card issue requests return ",[384,626,627],{},"400"," with code ",[384,630,631],{},"BRAZE_CREDENTIALS_REQUIRED",[287,633,635],{"id":634},"endpoint-braze-should-call","Endpoint Braze should call",[331,637,638,648],{},[334,639,640],{},[337,641,642,645],{},[340,643,644],{},"Item",[340,646,647],{},"Value",[347,649,650,660,670],{},[337,651,652,655],{},[352,653,654],{},"Method",[352,656,657],{},[384,658,659],{},"POST",[337,661,662,665],{},[352,663,664],{},"Path",[352,666,667],{},[384,668,669],{},"\u002Frewardstar\u002Fcards",[337,671,672,675],{},[352,673,674],{},"Full URL",[352,676,677],{},[384,678,679],{},"https:\u002F\u002Fus-central1-incentable-app-37d9c.cloudfunctions.net\u002FexternalApi\u002Fapi\u002Fv1\u002Fexternal\u002Frewardstar\u002Fcards",[272,681,682,683,686,687,689],{},"The URL is also shown on the Braze integration's settings page under ",[275,684,685],{},"Connection",". See the ",[315,688,239],{"href":240}," reference for full field and response details.",[272,691,692,695],{},[275,693,694],{},"Direction:"," Braze → Incentable (outbound webhook from Braze).",[327,697,699],{"id":698},"headers","Headers",[331,701,702,714],{},[334,703,704],{},[337,705,706,709,712],{},[340,707,708],{},"Header",[340,710,711],{},"Required",[340,713,647],{},[347,715,716,730,744],{},[337,717,718,722,725],{},[352,719,720],{},[384,721,570],{},[352,723,724],{},"Yes",[352,726,727],{},[384,728,729],{},"Bearer \u003CYOUR_API_KEY>",[337,731,732,737,739],{},[352,733,734],{},[384,735,736],{},"Content-Type",[352,738,724],{},[352,740,741],{},[384,742,743],{},"application\u002Fjson",[337,745,746,751,754],{},[352,747,748],{},[384,749,750],{},"Idempotency-Key",[352,752,753],{},"Recommended",[352,755,756,757,760,761,764],{},"Stable unique string for this issue attempt. Body ",[384,758,759],{},"idempotencyKey"," takes precedence over this header; ",[384,762,763],{},"externalRef"," is used if neither is sent.",[287,766,768],{"id":767},"request-body-for-the-braze-webhook-composer","Request body for the Braze webhook composer",[327,770,772],{"id":771},"fields","Fields",[272,774,775,776,779],{},"The body uses the same fields as the ",[315,777,239],{"href":778},"\u002Fdocs\u002Fapi-reference\u002Frewardstar#request-body"," — see that page for every field, type and limit. The ones that matter most in Braze:",[781,782,783,798,809,816],"ul",{},[497,784,785,797],{},[275,786,787,790,791,790,794],{},[384,788,789],{},"member.email",", ",[384,792,793],{},"member.firstname",[384,795,796],{},"member.lastname"," — required; map them from the Braze profile.",[497,799,800,805,806,808],{},[275,801,802],{},[384,803,804],{},"denomination"," — required; must be a ",[275,807,432],{}," denomination on the RewardStar card.",[497,810,811,815],{},[275,812,813],{},[384,814,487],{}," — required unless a Default RewardStar Card is set on the integration.",[497,817,818,822,823,828],{},[275,819,820],{},[384,821,763],{}," — strongly recommended; unique ",[275,824,825,826],{},"per ",[384,827,487],{},". Critical for Braze retries.",[327,830,832],{"id":831},"recommended-braze-payload-mapping","Recommended Braze → payload mapping",[331,834,835,845],{},[334,836,837],{},[337,838,839,842],{},[340,840,841],{},"Incentable field",[340,843,844],{},"Suggested Braze source",[347,846,847,858,869,880,898,911,924,933,942],{},[337,848,849,853],{},[352,850,851],{},[384,852,789],{},[352,854,855],{},[384,856,857],{},"{{${email_address}}}",[337,859,860,864],{},[352,861,862],{},[384,863,793],{},[352,865,866],{},[384,867,868],{},"{{${first_name}}}",[337,870,871,875],{},[352,872,873],{},[384,874,796],{},[352,876,877],{},[384,878,879],{},"{{${last_name}}}",[337,881,882,887],{},[352,883,884],{},[384,885,886],{},"member.accountKey",[352,888,889,890,893,894],{},"Fixed value ",[275,891,892],{},"or"," Liquid — see ",[315,895,897],{"href":896},"#fixed-values-vs-braze-liquid","Fixed values vs Braze Liquid",[337,899,900,905],{},[352,901,902],{},[384,903,904],{},"member.mobile",[352,906,907,910],{},[384,908,909],{},"{{${phone_number}}}"," or a custom attribute",[337,912,913,917],{},[352,914,915],{},[384,916,804],{},[352,918,919,920,893,922],{},"Fixed number ",[275,921,892],{},[315,923,897],{"href":896},[337,925,926,930],{},[352,927,928],{},[384,929,487],{},[352,931,932],{},"Fixed string, or omit if default card is configured",[337,934,935,939],{},[352,936,937],{},[384,938,763],{},[352,940,941],{},"Must be unique per card issue — e.g. Canvas\u002Fcampaign + user id + reward id on the trigger event",[337,943,944,949],{},[352,945,946],{},[384,947,948],{},"expiryDays",[352,950,951,952,893,954],{},"Fixed integer ",[275,953,892],{},[315,955,897],{"href":896},[300,957,958],{"color":560,"icon":618},[272,959,960,965,966,790,969,972,973,976,977,979,980,983],{},[275,961,962,963,321],{},"Always set a stable ",[384,964,763],{}," Braze may retry on ",[384,967,968],{},"408",[384,970,971],{},"429",", and ",[384,974,975],{},"5XX",". Without a stable key, a retry can issue a second card. If you send neither ",[384,978,763],{}," nor an idempotency key, Incentable generates a one-off key for the request — that key is different on every retry, so it does ",[275,981,982],{},"not"," protect against duplicates.",[327,985,897],{"id":986},"fixed-values-vs-braze-liquid",[272,988,989],{},"Some fields can be hard-coded in the webhook body; others should almost always use Braze Liquid personalization.",[272,991,992],{},[275,993,994],{},"Rule of thumb",[781,996,997,1004,1017],{},[497,998,999,1000,1003],{},"Profile fields (",[384,1001,1002],{},"email",", name, phone) → almost always Liquid.",[497,1005,1006,790,1009,972,1011,1013,1014,1016],{},[384,1007,1008],{},"accountKey",[384,1010,804],{},[384,1012,948],{}," → fixed ",[275,1015,892],{}," Liquid.",[497,1018,1019],{},"Start with fixed values where possible. Use Liquid when the value must change per user or per event.",[331,1021,1022,1035],{},[334,1023,1024],{},[337,1025,1026,1029,1032],{},[340,1027,1028],{},"Field",[340,1030,1031],{},"Fixed example",[340,1033,1034],{},"Liquid \u002F variable example",[347,1036,1037,1061,1083],{},[337,1038,1039,1043,1048],{},[352,1040,1041],{},[384,1042,1008],{},[352,1044,1045],{},[384,1046,1047],{},"\"CRM-100245\"",[352,1049,1050,1051,1054,1055,1057,1058],{},"Braze user id ",[384,1052,1053],{},"{{${user_id}}}"," ",[275,1056,892],{}," custom attribute ",[384,1059,1060],{},"{{custom_attribute.${account_key}}}",[337,1062,1063,1067,1072],{},[352,1064,1065],{},[384,1066,804],{},[352,1068,1069],{},[384,1070,1071],{},"50",[352,1073,1074,1075,1054,1078,1057,1080],{},"Event property ",[384,1076,1077],{},"{{event_properties.${gift_card_amount}}}",[275,1079,892],{},[384,1081,1082],{},"{{custom_attribute.${reward_amount}}}",[337,1084,1085,1089,1094],{},[352,1086,1087],{},[384,1088,948],{},[352,1090,1091],{},[384,1092,1093],{},"90",[352,1095,1096,1097],{},"Custom attribute ",[384,1098,1099],{},"{{custom_attribute.${card_expiry_days}}}",[272,1101,1102],{},[275,1103,1104,1105],{},"Choosing ",[384,1106,1008],{},[272,1108,1109],{},"Prefer, in order:",[494,1111,1112,1119,1125],{},[497,1113,1114,1118],{},[275,1115,1116],{},[384,1117,1053],{}," — always present in Braze, stable, no custom attribute setup.",[497,1120,1121,1124],{},[275,1122,1123],{},"Custom attribute"," — when you already sync a CRM\u002Fexternal id into Braze and want Incentable to match on that same key.",[497,1126,1127,1130],{},[275,1128,1129],{},"Omit"," — Incentable matches\u002Fcreates by email only (works, but weaker if emails change).",[272,1132,1133,1136,1137,1139],{},[275,1134,1135],{},"Simple (recommended for most campaigns)"," — Liquid for profile fields, Braze user id for ",[384,1138,1008],{},", fixed amount and expiry:",[1141,1142,1147],"pre",{"className":1143,"code":1144,"language":1145,"meta":1146,"style":1146},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"member\": {\n    \"email\": \"{{${email_address}}}\",\n    \"firstname\": \"{{${first_name}}}\",\n    \"lastname\": \"{{${last_name}}}\",\n    \"accountKey\": \"{{${user_id}}}\"\n  },\n  \"denomination\": 50,\n  \"expiryDays\": 90,\n  \"cardId\": \"YOUR_REWARDSTAR_CARD_ID\",\n  \"externalRef\": \"braze-{{campaign.${api_id}}}-{{${user_id}}}-{{event_properties.${reward_id}}}\",\n  \"idempotencyKey\": \"braze-{{campaign.${api_id}}}-{{${user_id}}}-{{event_properties.${reward_id}}}\"\n}\n","json","",[384,1148,1149,1158,1177,1201,1221,1241,1259,1265,1282,1298,1318,1338,1355],{"__ignoreMap":1146},[1150,1151,1154],"span",{"class":1152,"line":1153},"line",1,[1150,1155,1157],{"class":1156},"sMK4o","{\n",[1150,1159,1161,1164,1168,1171,1174],{"class":1152,"line":1160},2,[1150,1162,1163],{"class":1156},"  \"",[1150,1165,1167],{"class":1166},"spNyl","member",[1150,1169,1170],{"class":1156},"\"",[1150,1172,1173],{"class":1156},":",[1150,1175,1176],{"class":1156}," {\n",[1150,1178,1180,1183,1186,1188,1190,1193,1196,1198],{"class":1152,"line":1179},3,[1150,1181,1182],{"class":1156},"    \"",[1150,1184,1002],{"class":1185},"sBMFI",[1150,1187,1170],{"class":1156},[1150,1189,1173],{"class":1156},[1150,1191,1192],{"class":1156}," \"",[1150,1194,857],{"class":1195},"sfazB",[1150,1197,1170],{"class":1156},[1150,1199,1200],{"class":1156},",\n",[1150,1202,1204,1206,1209,1211,1213,1215,1217,1219],{"class":1152,"line":1203},4,[1150,1205,1182],{"class":1156},[1150,1207,1208],{"class":1185},"firstname",[1150,1210,1170],{"class":1156},[1150,1212,1173],{"class":1156},[1150,1214,1192],{"class":1156},[1150,1216,868],{"class":1195},[1150,1218,1170],{"class":1156},[1150,1220,1200],{"class":1156},[1150,1222,1224,1226,1229,1231,1233,1235,1237,1239],{"class":1152,"line":1223},5,[1150,1225,1182],{"class":1156},[1150,1227,1228],{"class":1185},"lastname",[1150,1230,1170],{"class":1156},[1150,1232,1173],{"class":1156},[1150,1234,1192],{"class":1156},[1150,1236,879],{"class":1195},[1150,1238,1170],{"class":1156},[1150,1240,1200],{"class":1156},[1150,1242,1244,1246,1248,1250,1252,1254,1256],{"class":1152,"line":1243},6,[1150,1245,1182],{"class":1156},[1150,1247,1008],{"class":1185},[1150,1249,1170],{"class":1156},[1150,1251,1173],{"class":1156},[1150,1253,1192],{"class":1156},[1150,1255,1053],{"class":1195},[1150,1257,1258],{"class":1156},"\"\n",[1150,1260,1262],{"class":1152,"line":1261},7,[1150,1263,1264],{"class":1156},"  },\n",[1150,1266,1268,1270,1272,1274,1276,1280],{"class":1152,"line":1267},8,[1150,1269,1163],{"class":1156},[1150,1271,804],{"class":1166},[1150,1273,1170],{"class":1156},[1150,1275,1173],{"class":1156},[1150,1277,1279],{"class":1278},"sbssI"," 50",[1150,1281,1200],{"class":1156},[1150,1283,1285,1287,1289,1291,1293,1296],{"class":1152,"line":1284},9,[1150,1286,1163],{"class":1156},[1150,1288,948],{"class":1166},[1150,1290,1170],{"class":1156},[1150,1292,1173],{"class":1156},[1150,1294,1295],{"class":1278}," 90",[1150,1297,1200],{"class":1156},[1150,1299,1301,1303,1305,1307,1309,1311,1314,1316],{"class":1152,"line":1300},10,[1150,1302,1163],{"class":1156},[1150,1304,487],{"class":1166},[1150,1306,1170],{"class":1156},[1150,1308,1173],{"class":1156},[1150,1310,1192],{"class":1156},[1150,1312,1313],{"class":1195},"YOUR_REWARDSTAR_CARD_ID",[1150,1315,1170],{"class":1156},[1150,1317,1200],{"class":1156},[1150,1319,1321,1323,1325,1327,1329,1331,1334,1336],{"class":1152,"line":1320},11,[1150,1322,1163],{"class":1156},[1150,1324,763],{"class":1166},[1150,1326,1170],{"class":1156},[1150,1328,1173],{"class":1156},[1150,1330,1192],{"class":1156},[1150,1332,1333],{"class":1195},"braze-{{campaign.${api_id}}}-{{${user_id}}}-{{event_properties.${reward_id}}}",[1150,1335,1170],{"class":1156},[1150,1337,1200],{"class":1156},[1150,1339,1341,1343,1345,1347,1349,1351,1353],{"class":1152,"line":1340},12,[1150,1342,1163],{"class":1156},[1150,1344,759],{"class":1166},[1150,1346,1170],{"class":1156},[1150,1348,1173],{"class":1156},[1150,1350,1192],{"class":1156},[1150,1352,1333],{"class":1195},[1150,1354,1258],{"class":1156},[1150,1356,1358],{"class":1152,"line":1357},13,[1150,1359,1360],{"class":1156},"}\n",[272,1362,1363,1366],{},[275,1364,1365],{},"Advanced"," — amount, expiry, and account key from Braze custom attributes \u002F event properties. Adjust attribute names to match your workspace:",[1141,1368,1370],{"className":1143,"code":1369,"language":1145,"meta":1146,"style":1146},"{\n  \"member\": {\n    \"email\": \"{{${email_address}}}\",\n    \"firstname\": \"{{${first_name}}}\",\n    \"lastname\": \"{{${last_name}}}\",\n    \"accountKey\": \"{{custom_attribute.${account_key}}}\"\n  },\n  \"denomination\": {{event_properties.${gift_card_amount}}},\n  \"expiryDays\": {{custom_attribute.${card_expiry_days}}},\n  \"cardId\": \"YOUR_REWARDSTAR_CARD_ID\",\n  \"externalRef\": \"braze-{{campaign.${api_id}}}-{{${user_id}}}-{{event_properties.${reward_id}}}\",\n  \"idempotencyKey\": \"braze-{{campaign.${api_id}}}-{{${user_id}}}-{{event_properties.${reward_id}}}\"\n}\n",[384,1371,1372,1376,1388,1406,1424,1442,1458,1462,1485,1508,1526,1544,1560],{"__ignoreMap":1146},[1150,1373,1374],{"class":1152,"line":1153},[1150,1375,1157],{"class":1156},[1150,1377,1378,1380,1382,1384,1386],{"class":1152,"line":1160},[1150,1379,1163],{"class":1156},[1150,1381,1167],{"class":1166},[1150,1383,1170],{"class":1156},[1150,1385,1173],{"class":1156},[1150,1387,1176],{"class":1156},[1150,1389,1390,1392,1394,1396,1398,1400,1402,1404],{"class":1152,"line":1179},[1150,1391,1182],{"class":1156},[1150,1393,1002],{"class":1185},[1150,1395,1170],{"class":1156},[1150,1397,1173],{"class":1156},[1150,1399,1192],{"class":1156},[1150,1401,857],{"class":1195},[1150,1403,1170],{"class":1156},[1150,1405,1200],{"class":1156},[1150,1407,1408,1410,1412,1414,1416,1418,1420,1422],{"class":1152,"line":1203},[1150,1409,1182],{"class":1156},[1150,1411,1208],{"class":1185},[1150,1413,1170],{"class":1156},[1150,1415,1173],{"class":1156},[1150,1417,1192],{"class":1156},[1150,1419,868],{"class":1195},[1150,1421,1170],{"class":1156},[1150,1423,1200],{"class":1156},[1150,1425,1426,1428,1430,1432,1434,1436,1438,1440],{"class":1152,"line":1223},[1150,1427,1182],{"class":1156},[1150,1429,1228],{"class":1185},[1150,1431,1170],{"class":1156},[1150,1433,1173],{"class":1156},[1150,1435,1192],{"class":1156},[1150,1437,879],{"class":1195},[1150,1439,1170],{"class":1156},[1150,1441,1200],{"class":1156},[1150,1443,1444,1446,1448,1450,1452,1454,1456],{"class":1152,"line":1243},[1150,1445,1182],{"class":1156},[1150,1447,1008],{"class":1185},[1150,1449,1170],{"class":1156},[1150,1451,1173],{"class":1156},[1150,1453,1192],{"class":1156},[1150,1455,1060],{"class":1195},[1150,1457,1258],{"class":1156},[1150,1459,1460],{"class":1152,"line":1261},[1150,1461,1264],{"class":1156},[1150,1463,1464,1466,1468,1470,1472,1475,1479,1482],{"class":1152,"line":1267},[1150,1465,1163],{"class":1156},[1150,1467,804],{"class":1166},[1150,1469,1170],{"class":1156},[1150,1471,1173],{"class":1156},[1150,1473,1474],{"class":1156}," {",[1150,1476,1478],{"class":1477},"sTEyZ","{event_properties.${gift_card_amount",[1150,1480,1481],{"class":1156},"}}",[1150,1483,1484],{"class":1477},"},\n",[1150,1486,1487,1489,1491,1493,1496,1499,1502,1505],{"class":1152,"line":1284},[1150,1488,1163],{"class":1156},[1150,1490,948],{"class":1195},[1150,1492,1170],{"class":1156},[1150,1494,1495],{"class":1477},": ",[1150,1497,1498],{"class":1156},"{",[1150,1500,1501],{"class":1477},"{custom_attribute.${card_expiry_days",[1150,1503,1504],{"class":1156},"}",[1150,1506,1507],{"class":1477},"}},\n",[1150,1509,1510,1512,1514,1516,1518,1520,1522,1524],{"class":1152,"line":1300},[1150,1511,1163],{"class":1156},[1150,1513,487],{"class":1195},[1150,1515,1170],{"class":1156},[1150,1517,1495],{"class":1477},[1150,1519,1170],{"class":1156},[1150,1521,1313],{"class":1195},[1150,1523,1170],{"class":1156},[1150,1525,1200],{"class":1477},[1150,1527,1528,1530,1532,1534,1536,1538,1540,1542],{"class":1152,"line":1320},[1150,1529,1163],{"class":1156},[1150,1531,763],{"class":1195},[1150,1533,1170],{"class":1156},[1150,1535,1495],{"class":1477},[1150,1537,1170],{"class":1156},[1150,1539,1333],{"class":1195},[1150,1541,1170],{"class":1156},[1150,1543,1200],{"class":1477},[1150,1545,1546,1548,1550,1552,1554,1556,1558],{"class":1152,"line":1340},[1150,1547,1163],{"class":1156},[1150,1549,759],{"class":1195},[1150,1551,1170],{"class":1156},[1150,1553,1495],{"class":1477},[1150,1555,1170],{"class":1156},[1150,1557,1333],{"class":1195},[1150,1559,1258],{"class":1156},[1150,1561,1562],{"class":1152,"line":1357},[1150,1563,1360],{"class":1477},[327,1565,1567],{"id":1566},"static-json-sample-for-smoke-tests","Static JSON sample (for smoke tests)",[1141,1569,1571],{"className":1143,"code":1570,"language":1145,"meta":1146,"style":1146},"{\n  \"member\": {\n    \"email\": \"jane.doe@example.com\",\n    \"firstname\": \"Jane\",\n    \"lastname\": \"Doe\",\n    \"accountKey\": \"CRM-100245\",\n    \"mobile\": \"+61400000000\"\n  },\n  \"denomination\": 50,\n  \"expiryDays\": 90,\n  \"cardId\": \"YOUR_REWARDSTAR_CARD_ID\",\n  \"externalRef\": \"braze-qa-2026-07-22-001\",\n  \"idempotencyKey\": \"braze-qa-2026-07-22-001\"\n}\n",[384,1572,1573,1577,1589,1608,1627,1646,1665,1683,1687,1701,1715,1733,1752,1768],{"__ignoreMap":1146},[1150,1574,1575],{"class":1152,"line":1153},[1150,1576,1157],{"class":1156},[1150,1578,1579,1581,1583,1585,1587],{"class":1152,"line":1160},[1150,1580,1163],{"class":1156},[1150,1582,1167],{"class":1166},[1150,1584,1170],{"class":1156},[1150,1586,1173],{"class":1156},[1150,1588,1176],{"class":1156},[1150,1590,1591,1593,1595,1597,1599,1601,1604,1606],{"class":1152,"line":1179},[1150,1592,1182],{"class":1156},[1150,1594,1002],{"class":1185},[1150,1596,1170],{"class":1156},[1150,1598,1173],{"class":1156},[1150,1600,1192],{"class":1156},[1150,1602,1603],{"class":1195},"jane.doe@example.com",[1150,1605,1170],{"class":1156},[1150,1607,1200],{"class":1156},[1150,1609,1610,1612,1614,1616,1618,1620,1623,1625],{"class":1152,"line":1203},[1150,1611,1182],{"class":1156},[1150,1613,1208],{"class":1185},[1150,1615,1170],{"class":1156},[1150,1617,1173],{"class":1156},[1150,1619,1192],{"class":1156},[1150,1621,1622],{"class":1195},"Jane",[1150,1624,1170],{"class":1156},[1150,1626,1200],{"class":1156},[1150,1628,1629,1631,1633,1635,1637,1639,1642,1644],{"class":1152,"line":1223},[1150,1630,1182],{"class":1156},[1150,1632,1228],{"class":1185},[1150,1634,1170],{"class":1156},[1150,1636,1173],{"class":1156},[1150,1638,1192],{"class":1156},[1150,1640,1641],{"class":1195},"Doe",[1150,1643,1170],{"class":1156},[1150,1645,1200],{"class":1156},[1150,1647,1648,1650,1652,1654,1656,1658,1661,1663],{"class":1152,"line":1243},[1150,1649,1182],{"class":1156},[1150,1651,1008],{"class":1185},[1150,1653,1170],{"class":1156},[1150,1655,1173],{"class":1156},[1150,1657,1192],{"class":1156},[1150,1659,1660],{"class":1195},"CRM-100245",[1150,1662,1170],{"class":1156},[1150,1664,1200],{"class":1156},[1150,1666,1667,1669,1672,1674,1676,1678,1681],{"class":1152,"line":1261},[1150,1668,1182],{"class":1156},[1150,1670,1671],{"class":1185},"mobile",[1150,1673,1170],{"class":1156},[1150,1675,1173],{"class":1156},[1150,1677,1192],{"class":1156},[1150,1679,1680],{"class":1195},"+61400000000",[1150,1682,1258],{"class":1156},[1150,1684,1685],{"class":1152,"line":1267},[1150,1686,1264],{"class":1156},[1150,1688,1689,1691,1693,1695,1697,1699],{"class":1152,"line":1284},[1150,1690,1163],{"class":1156},[1150,1692,804],{"class":1166},[1150,1694,1170],{"class":1156},[1150,1696,1173],{"class":1156},[1150,1698,1279],{"class":1278},[1150,1700,1200],{"class":1156},[1150,1702,1703,1705,1707,1709,1711,1713],{"class":1152,"line":1300},[1150,1704,1163],{"class":1156},[1150,1706,948],{"class":1166},[1150,1708,1170],{"class":1156},[1150,1710,1173],{"class":1156},[1150,1712,1295],{"class":1278},[1150,1714,1200],{"class":1156},[1150,1716,1717,1719,1721,1723,1725,1727,1729,1731],{"class":1152,"line":1320},[1150,1718,1163],{"class":1156},[1150,1720,487],{"class":1166},[1150,1722,1170],{"class":1156},[1150,1724,1173],{"class":1156},[1150,1726,1192],{"class":1156},[1150,1728,1313],{"class":1195},[1150,1730,1170],{"class":1156},[1150,1732,1200],{"class":1156},[1150,1734,1735,1737,1739,1741,1743,1745,1748,1750],{"class":1152,"line":1340},[1150,1736,1163],{"class":1156},[1150,1738,763],{"class":1166},[1150,1740,1170],{"class":1156},[1150,1742,1173],{"class":1156},[1150,1744,1192],{"class":1156},[1150,1746,1747],{"class":1195},"braze-qa-2026-07-22-001",[1150,1749,1170],{"class":1156},[1150,1751,1200],{"class":1156},[1150,1753,1754,1756,1758,1760,1762,1764,1766],{"class":1152,"line":1357},[1150,1755,1163],{"class":1156},[1150,1757,759],{"class":1166},[1150,1759,1170],{"class":1156},[1150,1761,1173],{"class":1156},[1150,1763,1192],{"class":1156},[1150,1765,1747],{"class":1195},[1150,1767,1258],{"class":1156},[1150,1769,1771],{"class":1152,"line":1770},14,[1150,1772,1360],{"class":1156},[327,1774,1776],{"id":1775},"liquid-templated-json-sample-paste-into-braze","Liquid-templated JSON sample (paste into Braze)",[272,1778,1779,1780,1783,1784,1786,1787,1790],{},"Use the ",[275,1781,1782],{},"simple"," example above for most setups. Keep ",[384,1785,763],{}," unique for every intended card. Switch to the ",[275,1788,1789],{},"advanced"," example only when denomination, expiry, or account key must vary per user or event.",[300,1792,1794],{"color":302,"icon":1793},"i-lucide-lightbulb",[272,1795,1796,1797,1799,1800,1802,1803,1805,1806,1808],{},"If you configured a default RewardStar card in Incentable, you can omit ",[384,1798,487],{},". Prefer the same string for ",[384,1801,763],{}," and ",[384,1804,759],{}," (or the ",[384,1807,750],{}," header).",[300,1810,1811],{"color":302,"icon":303},[272,1812,1813,1819],{},[275,1814,1815,1818],{},[384,1816,1817],{},"unsubscribeUrl"," is no longer used."," Earlier versions of this guide asked you to send Braze's unsubscribe link in the body. Incentable now ignores it: recipients unsubscribe on Incentable's own page, and with a Braze integration that unsubscribe is synced to Braze. Existing campaigns that still send it keep working — you can remove it at your convenience.",[287,1821,1823],{"id":1822},"braze-setup-steps","Braze setup steps",[272,1825,1826,1827,1830],{},"Aligns with Braze’s ",[315,1828,320],{"href":317,"rel":1829},[319]," flow. Exact UI labels can vary by Braze version.",[494,1832,1833,1843,1852,1859,1886,1898,1907,1926,1932],{},[497,1834,1835,1838,1839,1842],{},[275,1836,1837],{},"Create"," a Webhook Campaign, or add a ",[275,1840,1841],{},"Webhook"," component in a Canvas.",[497,1844,1845,1848,1849,1851],{},[275,1846,1847],{},"Webhook URL:"," paste the Incentable issue endpoint from above (also on the Braze integration's ",[275,1850,685],{}," card).",[497,1853,1854,1054,1857,321],{},[275,1855,1856],{},"HTTP method:",[384,1858,659],{},[497,1860,1861,1864],{},[275,1862,1863],{},"Request headers:",[781,1865,1866,1872,1878],{},[497,1867,1868,1495,1870],{},[384,1869,570],{},[384,1871,729],{},[497,1873,1874,1495,1876],{},[384,1875,736],{},[384,1877,743],{},[497,1879,1880,1881,1883,1884,321],{},"Optional but recommended: ",[384,1882,750],{}," with the same Liquid expression as ",[384,1885,763],{},[497,1887,1888,1891,1892,1894,1895,1897],{},[275,1889,1890],{},"Request body:"," choose JSON \u002F raw body and paste the ",[275,1893,1782],{}," Liquid sample from ",[315,1896,897],{"href":896}," (or the advanced sample if values must vary). Confirm personalization resolves from the user profile and\u002For trigger event properties.",[497,1899,1900,1903,1904,1906],{},[275,1901,1902],{},"Compose \u002F personalization:"," preview with a test user so email, name, denomination, and ",[384,1905,763],{}," look correct.",[497,1908,1909,1912],{},[275,1910,1911],{},"Delivery \u002F trigger:",[781,1913,1914,1920],{},[497,1915,1916,1919],{},[275,1917,1918],{},"Campaign:"," action-based on a custom event (example: reward earned, points threshold reached), or",[497,1921,1922,1925],{},[275,1923,1924],{},"Canvas:"," place the webhook step after the qualification path.",[497,1927,1928,1931],{},[275,1929,1930],{},"Optional multichannel:"," add a Braze email or push in the same campaign\u002FCanvas to tell the user their gift card is on the way (Incentable still sends the RewardStar card email with the redeem link).",[497,1933,1934,1937,1938,1941,1942,321],{},[275,1935,1936],{},"Save",", run a ",[275,1939,1940],{},"test send",", then ",[275,1943,1944],{},"launch",[272,1946,1947,1948],{},"Official Braze guide: ",[315,1949,320],{"href":317,"rel":1950},[319],[287,1952,1954],{"id":1953},"how-braze-retries-interact-with-rewardstar-responses","How Braze retries interact with RewardStar responses",[272,1956,1957,1958,1961,1962,790,1964,790,1966,1968,1969,1972,1973,1976,1977,1979,1980,1802,1983,1986],{},"Braze retries ",[275,1959,1960],{},"only"," for certain HTTP responses (for example ",[384,1963,968],{},[384,1965,971],{},[384,1967,975],{},"). Most other responses — including ",[384,1970,1971],{},"401 Unauthorized"," and other ",[384,1974,1975],{},"4XX"," — are ",[275,1978,982],{}," retried. ",[384,1981,1982],{},"Retry-After",[384,1984,1985],{},"X-Rate-Limit-*"," only affect backoff when the response is already retry-eligible; they do not create retries for non-retriable errors.",[272,1988,1989,1990,321],{},"Full Braze table: ",[315,1991,1994],{"href":1992,"rel":1993},"https:\u002F\u002Fwww.braze.com\u002Fdocs\u002Fuser_guide\u002Fchannels\u002Fwebhooks\u002Fcreate_a_webhook#response-codes-and-retry-logic",[319],"Response codes and retry logic",[331,1996,1997,2010],{},[334,1998,1999],{},[337,2000,2001,2004,2007],{},[340,2002,2003],{},"Incentable response",[340,2005,2006],{},"Braze typically…",[340,2008,2009],{},"What you should do",[347,2011,2012,2025,2038,2055,2090,2105],{},[337,2013,2014,2019,2022],{},[352,2015,2016],{},[384,2017,2018],{},"201 Created",[352,2020,2021],{},"Success, no retry",[352,2023,2024],{},"Done — a new card was issued.",[337,2026,2027,2033,2035],{},[352,2028,2029,2032],{},[384,2030,2031],{},"200 OK"," (idempotent replay)",[352,2034,2021],{},[352,2036,2037],{},"Safe — same prior issuance returned; no second card.",[337,2039,2040,2046,2048],{},[352,2041,2042,2045],{},[384,2043,2044],{},"202 Accepted"," (quarantined)",[352,2047,2021],{},[352,2049,2050,2051,321],{},"The recipient has opted out of email. No card was issued or funded — the request is held for an admin to review. See ",[315,2052,2054],{"href":2053},"#opted-out-recipients","Opted-out recipients",[337,2056,2057,2081,2087],{},[352,2058,2059,2061,2062,2061,2065,2061,2068,2061,2071,2061,2074,2077,2078,2080],{},[384,2060,627],{}," \u002F ",[384,2063,2064],{},"401",[384,2066,2067],{},"403",[384,2069,2070],{},"404",[384,2072,2073],{},"409",[384,2075,2076],{},"422"," (most ",[384,2079,1975],{},")",[352,2082,2083,2084,2086],{},"Usually ",[275,2085,982],{}," retried",[352,2088,2089],{},"Fix config\u002Fpayload; check Braze webhook \u002F Message Activity logs.",[337,2091,2092,2098,2102],{},[352,2093,2094,2097],{},[384,2095,2096],{},"402"," insufficient fund",[352,2099,2083,2100,2086],{},[275,2101,982],{},[352,2103,2104],{},"Top up the program fund, or use test mode for QA.",[337,2106,2107,2115,2120],{},[352,2108,2109,2061,2111,2061,2113],{},[384,2110,968],{},[384,2112,971],{},[384,2114,975],{},[352,2116,2117],{},[275,2118,2119],{},"May retry",[352,2121,2122,2123,2126,2127,2129,2130,2132],{},"You ",[275,2124,2125],{},"must"," use a stable ",[384,2128,763],{}," (and\u002For ",[384,2131,750],{},") so retries do not create duplicate cards.",[300,2134,2136],{"color":560,"icon":2135},"i-lucide-alert-triangle",[272,2137,2138,2141,2142,2145],{},[275,2139,2140],{},"Host-level deferral:"," If most webhook requests to Incentable are failing, Braze may temporarily defer ",[275,2143,2144],{},"all"," sends to that host until a cooldown ends. Fix the root cause (auth, payload, fund, card setup), wait for the cooldown, then retest.",[287,2147,2149],{"id":2148},"success-response","Success response",[272,2151,2152,2153,2156,2157,2160,2161,2164,2165,2168],{},"A successful issue returns ",[384,2154,2155],{},"201"," with the card id, amount, expiry, test flag and ",[384,2158,2159],{},"redeemUrl",". A replay of the same idempotency key returns ",[384,2162,2163],{},"200"," with the original payload. Field-by-field details are on the ",[315,2166,239],{"href":2167},"\u002Fdocs\u002Fapi-reference\u002Frewardstar#success-response-201"," page.",[272,2170,2171],{},"Braze does not need to store anything from the response. Incentable emails the card and redeem link to the recipient.",[287,2173,2054],{"id":2174},"opted-out-recipients",[272,2176,2177,2178,2181,2182,2184,2185,2188,2189,2192],{},"If the member has previously unsubscribed from Incentable emails, Incentable does not issue the card. Instead it holds the request in ",[275,2179,2180],{},"quarantine"," and returns ",[384,2183,2044],{}," with ",[384,2186,2187],{},"\"quarantined\": true"," and a ",[384,2190,2191],{},"quarantineId",". Nothing is drawn from the fund.",[272,2194,2195,2196,2199,2200,2203,2204,2207,2208,2210,2211,2214],{},"Program admins are notified and can review quarantined requests on the RewardStar card's ",[275,2197,2198],{},"Issue Cards"," page, then either ",[275,2201,2202],{},"Release & issue"," (for example, if the recipient has asked to receive it) or ",[275,2205,2206],{},"Discard",". Resending the same ",[384,2209,763],{}," while a request is in quarantine returns the same ",[384,2212,2213],{},"202"," rather than creating a second request.",[287,2216,2218],{"id":2217},"idempotency-duplicates","Idempotency & duplicates",[272,2220,2221,2222,2061,2224,2061,2226,2228],{},"Because Braze may retry on ",[384,2223,968],{},[384,2225,971],{},[384,2227,975],{},", design every webhook body so a retry cannot mint a second card.",[331,2230,2231,2241],{},[334,2232,2233],{},[337,2234,2235,2238],{},[340,2236,2237],{},"Concept",[340,2239,2240],{},"Rule",[347,2242,2243,2261,2273,2300,2317],{},[337,2244,2245,2250],{},[352,2246,2247,2249],{},[384,2248,763],{}," uniqueness",[352,2251,2252,2253,2257,2258,2260],{},"Unique ",[275,2254,825,2255],{},[384,2256,487],{},", not across the whole program. The same ",[384,2259,763],{}," can exist on a different RewardStar card template.",[337,2262,2263,2266],{},[352,2264,2265],{},"Choosing a Braze-side key",[352,2267,2268,2269,2272],{},"Use something that will not change on retry: e.g. ",[384,2270,2271],{},"braze-{campaign_or_canvas_id}-{user_id}-{reward_or_event_id}",". Avoid timestamps or random values that regenerate on each attempt.",[337,2274,2275,2281],{},[352,2276,2277,2061,2279],{},[384,2278,750],{},[384,2280,759],{},[352,2282,2283,2284,2286,2287,2289,2290,2292,2293,2295,2296,2299],{},"Prefer the same stable value as ",[384,2285,763],{},". The API resolves: body ",[384,2288,759],{}," → ",[384,2291,750],{}," header → ",[384,2294,763],{}," → a one-off generated key. A generated key changes on every retry, so it gives ",[275,2297,2298],{},"no"," duplicate protection.",[337,2301,2302,2309],{},[352,2303,2304,2306,2307],{},[384,2305,2155],{}," vs ",[384,2308,2163],{},[352,2310,2311,2313,2314,2316],{},[384,2312,2155],{}," = new card. ",[384,2315,2163],{}," = safe replay of a completed issuance for the same idempotency key.",[337,2318,2319,2323],{},[352,2320,2321],{},[384,2322,2073],{},[352,2324,2325,2326,2328,2329,2331,2332,2335,2336,2339,2340,2342,2343,2345,2346,476],{},"Conflict — either a card with this ",[384,2327,763],{}," already exists for this ",[384,2330,487],{}," (",[384,2333,2334],{},"DUPLICATE_EXTERNAL_REF","), or an issuance is still in progress for the idempotency key (",[384,2337,2338],{},"IDEMPOTENCY_IN_PROGRESS","). Braze typically does ",[275,2341,982],{}," retry ",[384,2344,2073],{},". For an already-issued duplicate, treat as “card already exists” (response may include existing card summary without ",[384,2347,2159],{},[287,2349,2351],{"id":2350},"troubleshooting","Troubleshooting",[272,2353,2354,2355,2358,2359,2362],{},"Start in Braze ",[275,2356,2357],{},"Message Activity"," \u002F webhook error logs for the campaign or Canvas step, then map the HTTP status. The ",[315,2360,239],{"href":2361},"\u002Fdocs\u002Fapi-reference\u002Frewardstar#common-errors"," page lists every error code.",[331,2364,2365,2378],{},[334,2366,2367],{},[337,2368,2369,2372,2375],{},[340,2370,2371],{},"Status \u002F signal",[340,2373,2374],{},"Plain language",[340,2376,2377],{},"What to fix",[347,2379,2380,2405,2421,2443,2461,2476,2491,2506,2528,2549,2564,2579,2594,2609],{},[337,2381,2382,2390,2396],{},[352,2383,2384,2386,2387],{},[384,2385,627],{}," validation \u002F ",[384,2388,2389],{},"NO_CARD_SPECIFIED",[352,2391,2392,2393,2395],{},"Payload missing required fields, bad types, or no ",[384,2394,487],{}," and no default card on the integration.",[352,2397,2398,2399,2401,2402,2404],{},"Check Liquid (empty names\u002Femail), ",[384,2400,804],{}," as a number, and set ",[384,2403,487],{}," or configure a default RewardStar card.",[337,2406,2407,2413,2416],{},[352,2408,2409,1054,2411],{},[384,2410,627],{},[384,2412,631],{},[352,2414,2415],{},"The Braze integration has no Braze REST cluster or API key saved.",[352,2417,2418,2419,598],{},"Save them on the integration's ",[275,2420,597],{},[337,2422,2423,2427,2430],{},[352,2424,2425],{},[384,2426,2064],{},[352,2428,2429],{},"Invalid or missing API key.",[352,2431,2432,2433,2436,2437,2439,2440,2442],{},"Fix ",[384,2434,2435],{},"Authorization: Bearer …",". Braze will ",[275,2438,982],{}," keep retrying most ",[384,2441,2064],{},"s — correct the key and resend.",[337,2444,2445,2449,2455],{},[352,2446,2447],{},[384,2448,2067],{},[352,2450,2451,2452,321],{},"API key lacks ",[384,2453,2454],{},"rewardStar: write",[352,2456,2457,2458,2460],{},"Ask Incentable to enable RewardStar ",[275,2459,530],{}," on the integration.",[337,2462,2463,2470,2473],{},[352,2464,2465,2184,2467],{},[384,2466,2213],{},[384,2468,2469],{},"quarantined: true",[352,2471,2472],{},"Recipient has opted out of email; card held for review.",[352,2474,2475],{},"Expected. An admin releases or discards it in Incentable.",[337,2477,2478,2485,2488],{},[352,2479,2480,2061,2482],{},[384,2481,2096],{},[384,2483,2484],{},"INSUFFICIENT_FUND",[352,2486,2487],{},"Program fund balance too low for face value + fees.",[352,2489,2490],{},"Top up the fund, or use a test-mode card for QA.",[337,2492,2493,2497,2500],{},[352,2494,2495],{},[384,2496,2070],{},[352,2498,2499],{},"RewardStar card template not found.",[352,2501,2502,2503,2505],{},"Confirm ",[384,2504,487],{}," (or default) is correct for this program.",[337,2507,2508,2514,2522],{},[352,2509,2510,2061,2512],{},[384,2511,2073],{},[384,2513,2334],{},[352,2515,2516,2517,2519,2520,321],{},"That ",[384,2518,763],{}," was already used for this ",[384,2521,487],{},[352,2523,2524,2525,2527],{},"Expected on a true duplicate. Use a new ",[384,2526,763],{}," only when you intend a new card.",[337,2529,2530,2536,2539],{},[352,2531,2532,2061,2534],{},[384,2533,2073],{},[384,2535,2338],{},[352,2537,2538],{},"A prior attempt with the same idempotency key is still processing.",[352,2540,2541,2542,2544,2545,2548],{},"Wait briefly; look up by ",[384,2543,763],{}," if needed (",[384,2546,2547],{},"rewardStar: read","). Do not invent a new key for the same reward.",[337,2550,2551,2558,2561],{},[352,2552,2553,1054,2555],{},[384,2554,2076],{},[384,2556,2557],{},"SETUP_INCOMPLETE_CATALOGUE",[352,2559,2560],{},"Card has no gift card catalogue assigned.",[352,2562,2563],{},"Finish RewardStar card setup in Incentable.",[337,2565,2566,2573,2576],{},[352,2567,2568,1054,2570],{},[384,2569,2076],{},[384,2571,2572],{},"SETUP_INCOMPLETE_DENOMINATIONS",[352,2574,2575],{},"No produced denomination images.",[352,2577,2578],{},"Produce card images for the template.",[337,2580,2581,2588,2591],{},[352,2582,2583,1054,2585],{},[384,2584,2076],{},[384,2586,2587],{},"SETUP_INCOMPLETE_CLIENT_NAME",[352,2589,2590],{},"Client name missing in branding.",[352,2592,2593],{},"Complete branding setup.",[337,2595,2596,2603,2606],{},[352,2597,2598,1054,2600],{},[384,2599,2076],{},[384,2601,2602],{},"DENOMINATION_NOT_PRODUCED",[352,2604,2605],{},"Requested amount exists in config but that denomination image was not produced.",[352,2607,2608],{},"Produce that denomination, or send a produced amount.",[337,2610,2611,2614,2617],{},[352,2612,2613],{},"Braze defers the host",[352,2615,2616],{},"Many failures to Incentable caused Braze to pause sends to this host.",[352,2618,2619],{},"Fix the root cause, wait for cooldown, then retest.",[287,2621,2623],{"id":2622},"test-plan","Test plan",[494,2625,2626,2632,2643,2663,2697,2718],{},[497,2627,2628,2629,2631],{},"Prefer a RewardStar card in ",[275,2630,444],{}," so QA does not draw down the fund.",[497,2633,2634,2635,1054,2638,605,2640,476],{},"In Braze, send a test webhook to a known inbox with a ",[275,2636,2637],{},"unique",[384,2639,763],{},[384,2641,2642],{},"braze-qa-\u003Cdate>-001",[497,2644,2645,2646],{},"Confirm:\n",[781,2647,2648,2653,2656],{},[497,2649,2650,2651,476],{},"Braze shows a successful webhook delivery (",[384,2652,2155],{},[497,2654,2655],{},"Recipient receives the Incentable\u002FRewardStar email.",[497,2657,2658,2659,2662],{},"Card appears issued in Incentable (and ",[384,2660,2661],{},"isTest: true"," if using test mode).",[497,2664,2665,2668,2669,1054,2672,2674,2675],{},[275,2666,2667],{},"Replay \u002F retry simulation:"," send again with the ",[275,2670,2671],{},"same",[384,2673,763],{}," and same idempotency key.\n",[781,2676,2677],{},[497,2678,2679,2680,2684,2685,2689,2690,2692,2693,2696],{},"Expect either ",[275,2681,2682],{},[384,2683,2163],{}," (idempotent replay) or ",[275,2686,2687],{},[384,2688,2073],{}," (duplicate ",[384,2691,763],{},") — both mean ",[275,2694,2695],{},"no second card"," was created. Confirm only one card exists.",[497,2698,2699,2700],{},"Intentionally send with a bad API key.\n",[781,2701,2702,2709],{},[497,2703,2704,2705,321],{},"Expect ",[275,2706,2707],{},[384,2708,2064],{},[497,2710,2711,2712,2714,2715,2717],{},"Confirm Braze does ",[275,2713,982],{}," keep retrying that failure (per Braze ",[384,2716,1975],{}," rules).",[497,2719,2720],{},"Optional: trigger a real Canvas\u002Fcampaign path with a QA user before go-live.",[287,2722,2724],{"id":2723},"pre-launch-checklist","Pre-launch checklist",[781,2726,2729,2739,2745,2751,2763,2772,2781,2790,2799,2810,2816,2830,2839,2851,2860,2868,2874],{"className":2727},[2728],"contains-task-list",[497,2730,2733,2738],{"className":2731},[2732],"task-list-item",[2734,2735],"input",{"disabled":2736,"type":2737},true,"checkbox"," Braze package includes Webhooks (confirmed with Braze AM\u002FCSM if needed)",[497,2740,2742,2744],{"className":2741},[2732],[2734,2743],{"disabled":2736,"type":2737}," Webhook Campaign or Canvas webhook step created",[497,2746,2748,2750],{"className":2747},[2732],[2734,2749],{"disabled":2736,"type":2737}," Trigger \u002F Canvas path matches the intended reward moment",[497,2752,2754,2756,2757,2759,2760,2762],{"className":2753},[2732],[2734,2755],{"disabled":2736,"type":2737}," Incentable ",[275,2758,248],{}," integration created; RewardStar ",[275,2761,530],{}," enabled",[497,2764,2766,2768,2769,2771],{"className":2765},[2732],[2734,2767],{"disabled":2736,"type":2737}," Braze REST cluster and ",[384,2770,386],{}," API key saved on the integration",[497,2773,2775,2777,2778,2780],{"className":2774},[2732],[2734,2776],{"disabled":2736,"type":2737}," API key stored securely; used only in ",[384,2779,570],{}," header (not in the URL)",[497,2782,2784,2786,2787,2789],{"className":2783},[2732],[2734,2785],{"disabled":2736,"type":2737}," RewardStar card template active; denominations ",[275,2788,432],{},"; branding complete",[497,2791,2793,2795,2796,2798],{"className":2792},[2732],[2734,2794],{"disabled":2736,"type":2737}," Program fund funded ",[275,2797,892],{}," test mode used for QA then switched for production",[497,2800,2802,2804,2805,1054,2807,2809],{"className":2801},[2732],[2734,2803],{"disabled":2736,"type":2737}," Default RewardStar card set ",[275,2806,892],{},[384,2808,487],{}," included in the Braze body",[497,2811,2813,2815],{"className":2812},[2732],[2734,2814],{"disabled":2736,"type":2737}," Liquid maps email, first name, last name, denomination correctly",[497,2817,2819,2821,2822,2824,2825,2061,2827,2829],{"className":2818},[2732],[2734,2820],{"disabled":2736,"type":2737}," Stable unique ",[384,2823,763],{}," (and matching ",[384,2826,759],{},[384,2828,750],{},") on every send",[497,2831,2833,2835,2836,2838],{"className":2832},[2732],[2734,2834],{"disabled":2736,"type":2737}," Test send: ",[384,2837,2155],{},", email received, one card issued",[497,2840,2842,2844,2845,2847,2848,2850],{"className":2841},[2732],[2734,2843],{"disabled":2736,"type":2737}," Same-key resend: ",[384,2846,2163],{}," or ",[384,2849,2073],{},", still only one card",[497,2852,2854,2856,2857,2859],{"className":2853},[2732],[2734,2855],{"disabled":2736,"type":2737}," Bad-auth test: ",[384,2858,2064],{},", no Braze retry loop",[497,2861,2863,1054,2865,2867],{"className":2862},[2732],[2734,2864],{"disabled":2736,"type":2737},[384,2866,1817],{}," removed from older webhook bodies (optional — it is ignored)",[497,2869,2871,2873],{"className":2870},[2732],[2734,2872],{"disabled":2736,"type":2737}," Optional Braze email\u002Fpush copy reviewed for the multichannel campaign",[497,2875,2877,2879],{"className":2876},[2732],[2734,2878],{"disabled":2736,"type":2737}," Owners know where to check Braze Message Activity and Incentable Integrations activity",[287,2881,2883],{"id":2882},"related","Related",[781,2885,2886,2892,2897,2903,2909,2915],{},[497,2887,2888,2891],{},[315,2889,2890],{"href":89},"RewardStar Card (Admin)"," — set up the card template before Braze issues against it",[497,2893,2894,2896],{},[315,2895,239],{"href":240}," — full issue\u002Flookup reference",[497,2898,2899,2902],{},[315,2900,2901],{"href":258},"Connect Braze Webhooks to Prize Draws"," — enter members into a prize draw from the same Braze integration",[497,2904,2905,2908],{},[315,2906,2907],{"href":234},"API Overview"," — base URL, auth, getting your API key",[497,2910,2911,2912],{},"Braze — ",[315,2913,320],{"href":317,"rel":2914},[319],[497,2916,2911,2917],{},[315,2918,1994],{"href":1992,"rel":2919},[319],[2921,2922,2923],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}",{"title":1146,"searchDepth":1160,"depth":1160,"links":2925},[2926,2927,2931,2932,2933,2936,2943,2944,2945,2946,2947,2948,2949,2950,2951],{"id":289,"depth":1160,"text":181},{"id":324,"depth":1160,"text":325,"children":2928},[2929,2930],{"id":329,"depth":1179,"text":248},{"id":408,"depth":1179,"text":409},{"id":491,"depth":1160,"text":492},{"id":574,"depth":1160,"text":575},{"id":634,"depth":1160,"text":635,"children":2934},[2935],{"id":698,"depth":1179,"text":699},{"id":767,"depth":1160,"text":768,"children":2937},[2938,2939,2940,2941,2942],{"id":771,"depth":1179,"text":772},{"id":831,"depth":1179,"text":832},{"id":986,"depth":1179,"text":897},{"id":1566,"depth":1179,"text":1567},{"id":1775,"depth":1179,"text":1776},{"id":1822,"depth":1160,"text":1823},{"id":1953,"depth":1160,"text":1954},{"id":2148,"depth":1160,"text":2149},{"id":2174,"depth":1160,"text":2054},{"id":2217,"depth":1160,"text":2218},{"id":2350,"depth":1160,"text":2351},{"id":2622,"depth":1160,"text":2623},{"id":2723,"depth":1160,"text":2724},{"id":2882,"depth":1160,"text":2883},"Set up a Braze integration so campaigns and Canvas steps issue RewardStar gift cards, and recipient unsubscribes sync back to Braze.","md",{},{"title":253,"icon":91},{"title":262,"description":2952},"snwpzLny4exCAsqXBM7KW9PDuy0XCGOK-Adtwb0FPws",[2959,2961],{"title":243,"path":244,"stem":245,"description":2960,"icon":246,"children":-1},"Enter members into an Incentable prize draw from your own system via the Custom API, with no entry form.",{"title":257,"path":258,"stem":259,"description":2962,"icon":246,"children":-1},"Set up Braze webhooks so campaigns and Canvas steps enter members into an Incentable prize draw, with no entry form.",1792454585353]