[{"data":1,"prerenderedAt":1285},["ShallowReactive",2],{"navigation_docs":3,"-webhooks-qr-code-scans":104,"-webhooks-qr-code-scans-surround":1282},[4,26,32,45,70,87],{"title":5,"path":6,"stem":7,"children":8,"page":25},"Getting Started","\u002Fgetting-started","1.getting-started",[9,13,17,21],{"title":10,"path":11,"stem":12},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction",{"title":14,"path":15,"stem":16},"Authentication","\u002Fgetting-started\u002Fauthentication","1.getting-started\u002F2.authentication",{"title":18,"path":19,"stem":20},"Campaign setup","\u002Fgetting-started\u002Fcampaigns","1.getting-started\u002F3.campaigns",{"title":22,"path":23,"stem":24},"AI agent skills","\u002Fgetting-started\u002Fai-agent-skills","1.getting-started\u002F4.ai-agent-skills",false,{"title":27,"path":28,"stem":29,"children":30},"Templates","\u002Ftemplates","2.templates\u002Findex",[31],{"title":27,"path":28,"stem":29},{"title":33,"path":34,"stem":35,"children":36,"page":25},"Campaigns","\u002Fcampaigns","3.campaigns",[37,41],{"title":38,"path":39,"stem":40},"Create campaign","\u002Fcampaigns\u002Fcreate-campaign","3.campaigns\u002F1.create-campaign",{"title":42,"path":43,"stem":44},"Fetch campaign","\u002Fcampaigns\u002Ffetch-campaign","3.campaigns\u002F2.fetch-campaign",{"title":46,"path":47,"stem":48,"children":49,"page":25},"Recipients","\u002Frecipients","4.recipients",[50,54,58,62,66],{"title":51,"path":52,"stem":53},"Create recipients","\u002Frecipients\u002Fcreate-recipients","4.recipients\u002F1.create-recipients",{"title":55,"path":56,"stem":57},"Fetch recipient","\u002Frecipients\u002Ffetch-recipient","4.recipients\u002F2.fetch-recipient",{"title":59,"path":60,"stem":61},"Fetch recipient preview","\u002Frecipients\u002Ffetch-recipient-preview","4.recipients\u002F3.fetch-recipient-preview",{"title":63,"path":64,"stem":65},"Create HTML recipient","\u002Frecipients\u002Fcreate-html-recipient","4.recipients\u002F4.create-html-recipient",{"title":67,"path":68,"stem":69},"PNG API","\u002Frecipients\u002Fpng-api","4.recipients\u002F5.png-api",{"title":71,"path":72,"stem":73,"children":74,"page":25},"Partner Workflows","\u002Fpartner-workflows","5.partner-workflows",[75,79,83],{"title":76,"path":77,"stem":78},"Create partner team","\u002Fpartner-workflows\u002Fcreate-partner-team","5.partner-workflows\u002F1.create-partner-team",{"title":80,"path":81,"stem":82},"Account status","\u002Fpartner-workflows\u002Faccount-status","5.partner-workflows\u002F2.account-status",{"title":84,"path":85,"stem":86},"Checkout recipients","\u002Fpartner-workflows\u002Fcheckout-recipients","5.partner-workflows\u002F3.checkout-recipients",{"title":88,"path":89,"stem":90,"children":91,"page":25},"Webhooks","\u002Fwebhooks","6.webhooks",[92,96,100],{"title":93,"path":94,"stem":95},"Overview","\u002Fwebhooks\u002Foverview","6.webhooks\u002F0.overview",{"title":97,"path":98,"stem":99},"Manage subscriptions","\u002Fwebhooks\u002Fmanage-subscriptions","6.webhooks\u002F1.manage-subscriptions",{"title":101,"path":102,"stem":103},"QR scan events","\u002Fwebhooks\u002Fqr-code-scans","6.webhooks\u002F2.qr-code-scans",{"id":105,"title":101,"body":106,"description":1276,"extension":1277,"links":1278,"meta":1279,"navigation":959,"path":102,"seo":1280,"stem":103,"__hash__":1281},"docs\u002F6.webhooks\u002F2.qr-code-scans.md",{"type":107,"value":108,"toc":1270},"minimark",[109,118,134,137,148,153,160,196,206,210,882,888,894,898,908,911,920,926,1212,1215,1219,1266],[110,111,112,113,117],"p",{},"Use the ",[114,115,116],"code",{},"qr_code.scanned"," event when your integration needs to react after a recipient scans a Smart QR code generated by Scribeless.",[119,120,125],"pre",{"className":121,"code":122,"language":123,"meta":124,"style":124},"language-txt shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","qr_code.scanned\n","txt","",[114,126,127],{"__ignoreMap":124},[128,129,132],"span",{"class":130,"line":131},"line",1,[128,133,122],{},[110,135,136],{},"The event is emitted after Scribeless records the scan. The person scanning the QR code is still redirected to the QR destination even if webhook delivery fails.",[110,138,139,140,147],{},"Create a subscription first with ",[141,142,144],"a",{"href":143},"\u002Fwebhooks\u002Fmanage-subscriptions#create-a-subscription",[114,145,146],{},"POST \u002Fapi\u002Fwebhooks",".",[149,150,152],"h2",{"id":151},"delivery-request","Delivery request",[110,154,155,156,159],{},"Scribeless sends a ",[114,157,158],{},"POST"," request to your subscription URL.",[119,161,165],{"className":162,"code":163,"language":164,"meta":124,"style":124},"language-http shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","Content-Type: application\u002Fjson\nX-Scribeless-Event: qr_code.scanned\nX-Scribeless-Delivery: DELIVERY_ID\nX-Scribeless-Timestamp: UNIX_TIMESTAMP\nX-Scribeless-Signature: sha256=SIGNATURE\n","http",[114,166,167,172,178,184,190],{"__ignoreMap":124},[128,168,169],{"class":130,"line":131},[128,170,171],{},"Content-Type: application\u002Fjson\n",[128,173,175],{"class":130,"line":174},2,[128,176,177],{},"X-Scribeless-Event: qr_code.scanned\n",[128,179,181],{"class":130,"line":180},3,[128,182,183],{},"X-Scribeless-Delivery: DELIVERY_ID\n",[128,185,187],{"class":130,"line":186},4,[128,188,189],{},"X-Scribeless-Timestamp: UNIX_TIMESTAMP\n",[128,191,193],{"class":130,"line":192},5,[128,194,195],{},"X-Scribeless-Signature: sha256=SIGNATURE\n",[110,197,198,199,202,203,205],{},"Respond with a ",[114,200,201],{},"2xx"," status within 5 seconds after accepting the event. Non-",[114,204,201],{}," responses and timeouts are recorded as failed deliveries.",[149,207,209],{"id":208},"payload","Payload",[119,211,215],{"className":212,"code":213,"language":214,"meta":124,"style":124},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"id\": \"evt_qr_scan_SCAN_ID\",\n  \"type\": \"qr_code.scanned\",\n  \"created_at\": \"2026-01-01T10:00:00.000000+00:00\",\n  \"team_id\": \"TEAM_ID\",\n  \"scan\": {\n    \"id\": \"SCAN_ID\",\n    \"smart_qr_code_id\": \"SMART_QR_CODE_ID\",\n    \"team_id\": \"TEAM_ID\",\n    \"created_at\": \"2026-01-01T10:00:00.000000+00:00\"\n  },\n  \"qr_code\": {\n    \"id\": \"SMART_QR_CODE_ID\",\n    \"key\": \"abc123\",\n    \"destination_url\": \"https:\u002F\u002Fexample.com\u002Foffers\u002FSPRING-25\",\n    \"recipient_id\": \"RECIPIENT_ID\",\n    \"template_id\": \"TEMPLATE_ID\",\n    \"block_id\": \"spring-offer\",\n    \"size\": \"24mm\",\n    \"options\": {\n      \"ecl\": \"Q\",\n      \"dotsType\": \"square\",\n      \"dotsColor\": \"#000000\"\n    },\n    \"team_id\": \"TEAM_ID\",\n    \"created_at\": \"2026-01-01T09:00:00.000000+00:00\",\n    \"updated_at\": \"2026-01-01T09:00:00.000000+00:00\"\n  },\n  \"recipient\": {\n    \"id\": \"RECIPIENT_ID\",\n    \"first_name\": \"Ada\",\n    \"last_name\": \"Lovelace\",\n    \"campaign_id\": \"CAMPAIGN_ID\",\n    \"status\": \"pending\",\n    \"variables\": {\n      \"externalId\": \"order_12345\"\n    }\n  }\n}\n","json",[114,216,217,223,250,269,289,309,324,346,367,386,404,410,424,443,464,485,506,527,548,569,583,606,627,646,652,671,691,709,714,728,747,768,789,810,831,845,864,870,876],{"__ignoreMap":124},[128,218,219],{"class":130,"line":131},[128,220,222],{"class":221},"sMK4o","{\n",[128,224,225,228,232,235,238,241,245,247],{"class":130,"line":174},[128,226,227],{"class":221},"  \"",[128,229,231],{"class":230},"spNyl","id",[128,233,234],{"class":221},"\"",[128,236,237],{"class":221},":",[128,239,240],{"class":221}," \"",[128,242,244],{"class":243},"sfazB","evt_qr_scan_SCAN_ID",[128,246,234],{"class":221},[128,248,249],{"class":221},",\n",[128,251,252,254,257,259,261,263,265,267],{"class":130,"line":180},[128,253,227],{"class":221},[128,255,256],{"class":230},"type",[128,258,234],{"class":221},[128,260,237],{"class":221},[128,262,240],{"class":221},[128,264,116],{"class":243},[128,266,234],{"class":221},[128,268,249],{"class":221},[128,270,271,273,276,278,280,282,285,287],{"class":130,"line":186},[128,272,227],{"class":221},[128,274,275],{"class":230},"created_at",[128,277,234],{"class":221},[128,279,237],{"class":221},[128,281,240],{"class":221},[128,283,284],{"class":243},"2026-01-01T10:00:00.000000+00:00",[128,286,234],{"class":221},[128,288,249],{"class":221},[128,290,291,293,296,298,300,302,305,307],{"class":130,"line":192},[128,292,227],{"class":221},[128,294,295],{"class":230},"team_id",[128,297,234],{"class":221},[128,299,237],{"class":221},[128,301,240],{"class":221},[128,303,304],{"class":243},"TEAM_ID",[128,306,234],{"class":221},[128,308,249],{"class":221},[128,310,312,314,317,319,321],{"class":130,"line":311},6,[128,313,227],{"class":221},[128,315,316],{"class":230},"scan",[128,318,234],{"class":221},[128,320,237],{"class":221},[128,322,323],{"class":221}," {\n",[128,325,327,330,333,335,337,339,342,344],{"class":130,"line":326},7,[128,328,329],{"class":221},"    \"",[128,331,231],{"class":332},"sBMFI",[128,334,234],{"class":221},[128,336,237],{"class":221},[128,338,240],{"class":221},[128,340,341],{"class":243},"SCAN_ID",[128,343,234],{"class":221},[128,345,249],{"class":221},[128,347,349,351,354,356,358,360,363,365],{"class":130,"line":348},8,[128,350,329],{"class":221},[128,352,353],{"class":332},"smart_qr_code_id",[128,355,234],{"class":221},[128,357,237],{"class":221},[128,359,240],{"class":221},[128,361,362],{"class":243},"SMART_QR_CODE_ID",[128,364,234],{"class":221},[128,366,249],{"class":221},[128,368,370,372,374,376,378,380,382,384],{"class":130,"line":369},9,[128,371,329],{"class":221},[128,373,295],{"class":332},[128,375,234],{"class":221},[128,377,237],{"class":221},[128,379,240],{"class":221},[128,381,304],{"class":243},[128,383,234],{"class":221},[128,385,249],{"class":221},[128,387,389,391,393,395,397,399,401],{"class":130,"line":388},10,[128,390,329],{"class":221},[128,392,275],{"class":332},[128,394,234],{"class":221},[128,396,237],{"class":221},[128,398,240],{"class":221},[128,400,284],{"class":243},[128,402,403],{"class":221},"\"\n",[128,405,407],{"class":130,"line":406},11,[128,408,409],{"class":221},"  },\n",[128,411,413,415,418,420,422],{"class":130,"line":412},12,[128,414,227],{"class":221},[128,416,417],{"class":230},"qr_code",[128,419,234],{"class":221},[128,421,237],{"class":221},[128,423,323],{"class":221},[128,425,427,429,431,433,435,437,439,441],{"class":130,"line":426},13,[128,428,329],{"class":221},[128,430,231],{"class":332},[128,432,234],{"class":221},[128,434,237],{"class":221},[128,436,240],{"class":221},[128,438,362],{"class":243},[128,440,234],{"class":221},[128,442,249],{"class":221},[128,444,446,448,451,453,455,457,460,462],{"class":130,"line":445},14,[128,447,329],{"class":221},[128,449,450],{"class":332},"key",[128,452,234],{"class":221},[128,454,237],{"class":221},[128,456,240],{"class":221},[128,458,459],{"class":243},"abc123",[128,461,234],{"class":221},[128,463,249],{"class":221},[128,465,467,469,472,474,476,478,481,483],{"class":130,"line":466},15,[128,468,329],{"class":221},[128,470,471],{"class":332},"destination_url",[128,473,234],{"class":221},[128,475,237],{"class":221},[128,477,240],{"class":221},[128,479,480],{"class":243},"https:\u002F\u002Fexample.com\u002Foffers\u002FSPRING-25",[128,482,234],{"class":221},[128,484,249],{"class":221},[128,486,488,490,493,495,497,499,502,504],{"class":130,"line":487},16,[128,489,329],{"class":221},[128,491,492],{"class":332},"recipient_id",[128,494,234],{"class":221},[128,496,237],{"class":221},[128,498,240],{"class":221},[128,500,501],{"class":243},"RECIPIENT_ID",[128,503,234],{"class":221},[128,505,249],{"class":221},[128,507,509,511,514,516,518,520,523,525],{"class":130,"line":508},17,[128,510,329],{"class":221},[128,512,513],{"class":332},"template_id",[128,515,234],{"class":221},[128,517,237],{"class":221},[128,519,240],{"class":221},[128,521,522],{"class":243},"TEMPLATE_ID",[128,524,234],{"class":221},[128,526,249],{"class":221},[128,528,530,532,535,537,539,541,544,546],{"class":130,"line":529},18,[128,531,329],{"class":221},[128,533,534],{"class":332},"block_id",[128,536,234],{"class":221},[128,538,237],{"class":221},[128,540,240],{"class":221},[128,542,543],{"class":243},"spring-offer",[128,545,234],{"class":221},[128,547,249],{"class":221},[128,549,551,553,556,558,560,562,565,567],{"class":130,"line":550},19,[128,552,329],{"class":221},[128,554,555],{"class":332},"size",[128,557,234],{"class":221},[128,559,237],{"class":221},[128,561,240],{"class":221},[128,563,564],{"class":243},"24mm",[128,566,234],{"class":221},[128,568,249],{"class":221},[128,570,572,574,577,579,581],{"class":130,"line":571},20,[128,573,329],{"class":221},[128,575,576],{"class":332},"options",[128,578,234],{"class":221},[128,580,237],{"class":221},[128,582,323],{"class":221},[128,584,586,589,593,595,597,599,602,604],{"class":130,"line":585},21,[128,587,588],{"class":221},"      \"",[128,590,592],{"class":591},"sbssI","ecl",[128,594,234],{"class":221},[128,596,237],{"class":221},[128,598,240],{"class":221},[128,600,601],{"class":243},"Q",[128,603,234],{"class":221},[128,605,249],{"class":221},[128,607,609,611,614,616,618,620,623,625],{"class":130,"line":608},22,[128,610,588],{"class":221},[128,612,613],{"class":591},"dotsType",[128,615,234],{"class":221},[128,617,237],{"class":221},[128,619,240],{"class":221},[128,621,622],{"class":243},"square",[128,624,234],{"class":221},[128,626,249],{"class":221},[128,628,630,632,635,637,639,641,644],{"class":130,"line":629},23,[128,631,588],{"class":221},[128,633,634],{"class":591},"dotsColor",[128,636,234],{"class":221},[128,638,237],{"class":221},[128,640,240],{"class":221},[128,642,643],{"class":243},"#000000",[128,645,403],{"class":221},[128,647,649],{"class":130,"line":648},24,[128,650,651],{"class":221},"    },\n",[128,653,655,657,659,661,663,665,667,669],{"class":130,"line":654},25,[128,656,329],{"class":221},[128,658,295],{"class":332},[128,660,234],{"class":221},[128,662,237],{"class":221},[128,664,240],{"class":221},[128,666,304],{"class":243},[128,668,234],{"class":221},[128,670,249],{"class":221},[128,672,674,676,678,680,682,684,687,689],{"class":130,"line":673},26,[128,675,329],{"class":221},[128,677,275],{"class":332},[128,679,234],{"class":221},[128,681,237],{"class":221},[128,683,240],{"class":221},[128,685,686],{"class":243},"2026-01-01T09:00:00.000000+00:00",[128,688,234],{"class":221},[128,690,249],{"class":221},[128,692,694,696,699,701,703,705,707],{"class":130,"line":693},27,[128,695,329],{"class":221},[128,697,698],{"class":332},"updated_at",[128,700,234],{"class":221},[128,702,237],{"class":221},[128,704,240],{"class":221},[128,706,686],{"class":243},[128,708,403],{"class":221},[128,710,712],{"class":130,"line":711},28,[128,713,409],{"class":221},[128,715,717,719,722,724,726],{"class":130,"line":716},29,[128,718,227],{"class":221},[128,720,721],{"class":230},"recipient",[128,723,234],{"class":221},[128,725,237],{"class":221},[128,727,323],{"class":221},[128,729,731,733,735,737,739,741,743,745],{"class":130,"line":730},30,[128,732,329],{"class":221},[128,734,231],{"class":332},[128,736,234],{"class":221},[128,738,237],{"class":221},[128,740,240],{"class":221},[128,742,501],{"class":243},[128,744,234],{"class":221},[128,746,249],{"class":221},[128,748,750,752,755,757,759,761,764,766],{"class":130,"line":749},31,[128,751,329],{"class":221},[128,753,754],{"class":332},"first_name",[128,756,234],{"class":221},[128,758,237],{"class":221},[128,760,240],{"class":221},[128,762,763],{"class":243},"Ada",[128,765,234],{"class":221},[128,767,249],{"class":221},[128,769,771,773,776,778,780,782,785,787],{"class":130,"line":770},32,[128,772,329],{"class":221},[128,774,775],{"class":332},"last_name",[128,777,234],{"class":221},[128,779,237],{"class":221},[128,781,240],{"class":221},[128,783,784],{"class":243},"Lovelace",[128,786,234],{"class":221},[128,788,249],{"class":221},[128,790,792,794,797,799,801,803,806,808],{"class":130,"line":791},33,[128,793,329],{"class":221},[128,795,796],{"class":332},"campaign_id",[128,798,234],{"class":221},[128,800,237],{"class":221},[128,802,240],{"class":221},[128,804,805],{"class":243},"CAMPAIGN_ID",[128,807,234],{"class":221},[128,809,249],{"class":221},[128,811,813,815,818,820,822,824,827,829],{"class":130,"line":812},34,[128,814,329],{"class":221},[128,816,817],{"class":332},"status",[128,819,234],{"class":221},[128,821,237],{"class":221},[128,823,240],{"class":221},[128,825,826],{"class":243},"pending",[128,828,234],{"class":221},[128,830,249],{"class":221},[128,832,834,836,839,841,843],{"class":130,"line":833},35,[128,835,329],{"class":221},[128,837,838],{"class":332},"variables",[128,840,234],{"class":221},[128,842,237],{"class":221},[128,844,323],{"class":221},[128,846,848,850,853,855,857,859,862],{"class":130,"line":847},36,[128,849,588],{"class":221},[128,851,852],{"class":591},"externalId",[128,854,234],{"class":221},[128,856,237],{"class":221},[128,858,240],{"class":221},[128,860,861],{"class":243},"order_12345",[128,863,403],{"class":221},[128,865,867],{"class":130,"line":866},37,[128,868,869],{"class":221},"    }\n",[128,871,873],{"class":130,"line":872},38,[128,874,875],{"class":221},"  }\n",[128,877,879],{"class":130,"line":878},39,[128,880,881],{"class":221},"}\n",[110,883,884,885,887],{},"The ",[114,886,721],{}," object contains recipient data available when the scan is recorded. Store only the fields your integration needs.",[110,889,890,891,893],{},"Use ",[114,892,231],{}," as the event idempotency key. A delivery can be attempted more than once, so your receiver should ignore events it has already processed.",[149,895,897],{"id":896},"verify-signatures","Verify signatures",[110,899,900,901,904,905,147],{},"Verify webhook signatures with the raw request body, the ",[114,902,903],{},"X-Scribeless-Timestamp"," header, and the subscription ",[114,906,907],{},"secret",[110,909,910],{},"Scribeless signs:",[119,912,914],{"className":121,"code":913,"language":123,"meta":124,"style":124},"{timestamp}.{rawBody}\n",[114,915,916],{"__ignoreMap":124},[128,917,918],{"class":130,"line":131},[128,919,913],{},[110,921,922,923,147],{},"The signature is HMAC-SHA256 and is sent as ",[114,924,925],{},"sha256=\u003Chex digest>",[119,927,931],{"className":928,"code":929,"language":930,"meta":124,"style":124},"language-js shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import crypto from 'node:crypto'\n\nexport function verifyScribelessWebhook({ rawBody, timestamp, signature, secret }) {\n  const expected = 'sha256=' + crypto\n    .createHmac('sha256', secret)\n    .update(`${timestamp}.${rawBody}`)\n    .digest('hex')\n\n  if (signature.length !== expected.length) {\n    return false\n  }\n\n  return crypto.timingSafeEqual(\n    Buffer.from(signature),\n    Buffer.from(expected),\n  )\n}\n","js",[114,932,933,955,961,1001,1026,1052,1083,1101,1105,1135,1144,1148,1152,1168,1186,1203,1208],{"__ignoreMap":124},[128,934,935,939,943,946,949,952],{"class":130,"line":131},[128,936,938],{"class":937},"s7zQu","import",[128,940,942],{"class":941},"sTEyZ"," crypto ",[128,944,945],{"class":937},"from",[128,947,948],{"class":221}," '",[128,950,951],{"class":243},"node:crypto",[128,953,954],{"class":221},"'\n",[128,956,957],{"class":130,"line":174},[128,958,960],{"emptyLinePlaceholder":959},true,"\n",[128,962,963,966,969,973,976,980,983,986,988,991,993,996,999],{"class":130,"line":180},[128,964,965],{"class":937},"export",[128,967,968],{"class":230}," function",[128,970,972],{"class":971},"s2Zo4"," verifyScribelessWebhook",[128,974,975],{"class":221},"({",[128,977,979],{"class":978},"sHdIc"," rawBody",[128,981,982],{"class":221},",",[128,984,985],{"class":978}," timestamp",[128,987,982],{"class":221},[128,989,990],{"class":978}," signature",[128,992,982],{"class":221},[128,994,995],{"class":978}," secret",[128,997,998],{"class":221}," })",[128,1000,323],{"class":221},[128,1002,1003,1006,1009,1012,1014,1017,1020,1023],{"class":130,"line":186},[128,1004,1005],{"class":230},"  const",[128,1007,1008],{"class":941}," expected",[128,1010,1011],{"class":221}," =",[128,1013,948],{"class":221},[128,1015,1016],{"class":243},"sha256=",[128,1018,1019],{"class":221},"'",[128,1021,1022],{"class":221}," +",[128,1024,1025],{"class":941}," crypto\n",[128,1027,1028,1031,1034,1038,1040,1043,1045,1047,1049],{"class":130,"line":192},[128,1029,1030],{"class":221},"    .",[128,1032,1033],{"class":971},"createHmac",[128,1035,1037],{"class":1036},"swJcz","(",[128,1039,1019],{"class":221},[128,1041,1042],{"class":243},"sha256",[128,1044,1019],{"class":221},[128,1046,982],{"class":221},[128,1048,995],{"class":941},[128,1050,1051],{"class":1036},")\n",[128,1053,1054,1056,1059,1061,1064,1067,1070,1072,1075,1078,1081],{"class":130,"line":311},[128,1055,1030],{"class":221},[128,1057,1058],{"class":971},"update",[128,1060,1037],{"class":1036},[128,1062,1063],{"class":221},"`${",[128,1065,1066],{"class":941},"timestamp",[128,1068,1069],{"class":221},"}",[128,1071,147],{"class":243},[128,1073,1074],{"class":221},"${",[128,1076,1077],{"class":941},"rawBody",[128,1079,1080],{"class":221},"}`",[128,1082,1051],{"class":1036},[128,1084,1085,1087,1090,1092,1094,1097,1099],{"class":130,"line":326},[128,1086,1030],{"class":221},[128,1088,1089],{"class":971},"digest",[128,1091,1037],{"class":1036},[128,1093,1019],{"class":221},[128,1095,1096],{"class":243},"hex",[128,1098,1019],{"class":221},[128,1100,1051],{"class":1036},[128,1102,1103],{"class":130,"line":348},[128,1104,960],{"emptyLinePlaceholder":959},[128,1106,1107,1110,1113,1116,1118,1121,1124,1126,1128,1130,1133],{"class":130,"line":369},[128,1108,1109],{"class":937},"  if",[128,1111,1112],{"class":1036}," (",[128,1114,1115],{"class":941},"signature",[128,1117,147],{"class":221},[128,1119,1120],{"class":941},"length",[128,1122,1123],{"class":221}," !==",[128,1125,1008],{"class":941},[128,1127,147],{"class":221},[128,1129,1120],{"class":941},[128,1131,1132],{"class":1036},") ",[128,1134,222],{"class":221},[128,1136,1137,1140],{"class":130,"line":388},[128,1138,1139],{"class":937},"    return",[128,1141,1143],{"class":1142},"sfNiH"," false\n",[128,1145,1146],{"class":130,"line":406},[128,1147,875],{"class":221},[128,1149,1150],{"class":130,"line":412},[128,1151,960],{"emptyLinePlaceholder":959},[128,1153,1154,1157,1160,1162,1165],{"class":130,"line":426},[128,1155,1156],{"class":937},"  return",[128,1158,1159],{"class":941}," crypto",[128,1161,147],{"class":221},[128,1163,1164],{"class":971},"timingSafeEqual",[128,1166,1167],{"class":1036},"(\n",[128,1169,1170,1173,1175,1177,1179,1181,1184],{"class":130,"line":445},[128,1171,1172],{"class":941},"    Buffer",[128,1174,147],{"class":221},[128,1176,945],{"class":971},[128,1178,1037],{"class":1036},[128,1180,1115],{"class":941},[128,1182,1183],{"class":1036},")",[128,1185,249],{"class":221},[128,1187,1188,1190,1192,1194,1196,1199,1201],{"class":130,"line":466},[128,1189,1172],{"class":941},[128,1191,147],{"class":221},[128,1193,945],{"class":971},[128,1195,1037],{"class":1036},[128,1197,1198],{"class":941},"expected",[128,1200,1183],{"class":1036},[128,1202,249],{"class":221},[128,1204,1205],{"class":130,"line":487},[128,1206,1207],{"class":1036},"  )\n",[128,1209,1210],{"class":130,"line":508},[128,1211,881],{"class":221},[110,1213,1214],{},"Use the raw body exactly as received. Do not stringify a parsed JSON object before verifying.",[149,1216,1218],{"id":1217},"status-codes","Status codes",[1220,1221,1222,1235],"table",{},[1223,1224,1225],"thead",{},[1226,1227,1228,1232],"tr",{},[1229,1230,1231],"th",{},"Status",[1229,1233,1234],{},"Meaning",[1236,1237,1238,1248,1258],"tbody",{},[1226,1239,1240,1245],{},[1241,1242,1243],"td",{},[114,1244,201],{},[1241,1246,1247],{},"Delivery accepted by your endpoint.",[1226,1249,1250,1255],{},[1241,1251,1252,1253],{},"Non-",[114,1254,201],{},[1241,1256,1257],{},"Delivery recorded as failed.",[1226,1259,1260,1263],{},[1241,1261,1262],{},"Timeout",[1241,1264,1265],{},"Delivery recorded as failed if your endpoint does not respond within 5 seconds.",[1267,1268,1269],"style",{},"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 .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 .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}",{"title":124,"searchDepth":174,"depth":174,"links":1271},[1272,1273,1274,1275],{"id":151,"depth":174,"text":152},{"id":208,"depth":174,"text":209},{"id":896,"depth":174,"text":897},{"id":1217,"depth":174,"text":1218},"Receive signed webhook events when Smart QR codes are scanned.","md",null,{},{"title":101,"description":1276},"RWLxJDaaBXvG-0C6PDp4cNa4stbAdHlUcTD8mpJtm3Y",[1283,1278],{"title":97,"path":98,"stem":99,"description":1284,"children":-1},"Create and manage Scribeless webhook subscriptions.",1780671949823]