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