[{"data":1,"prerenderedAt":885},["ShallowReactive",2],{"header:help":3,"footer:default":67,"story:navigation\u002Fsearch:help":250,"story:help\u002Fcategories":288,"story:help\u002Farticles\u002Fsign-product-links-with-hmac":314,"no-guide:sign-product-links-with-hmac":59,"article:\u002Fhelp\u002Farticles\u002Fsign-product-links-with-hmac":623,"story:contact":641,"help:tree:5b6a5904-6fa8-4f24-8516-1ac5da980a58":830,"_apollo:default":884},{"name":4,"created_at":5,"published_at":6,"updated_at":7,"id":8,"uuid":9,"content":10,"slug":57,"full_slug":58,"sort_by_date":59,"position":60,"tag_list":61,"is_startpage":24,"parent_id":62,"meta_data":59,"group_id":63,"first_published_at":64,"release_id":59,"lang":65,"path":59,"alternates":66,"default_full_slug":59,"translated_slugs":59},"Help Center Header","2024-08-09T18:06:34.939Z","2024-10-21T21:58:39.217Z","2024-10-21T21:58:39.232Z",10082752,"3e9b88f7-c163-4657-a2f2-62532d600fad",{"_uid":11,"link":12,"badge":16,"items":17,"title":13,"buttons":50,"new_tab":24,"submenu":51,"alignment":13,"component":52,"badge_link":53,"top_menu_items":56},"e5645a1a-f991-40e8-8d67-e40ebc082b5a",{"id":13,"url":13,"linktype":14,"fieldtype":15,"cached_url":13},"","story","multilink","Help Center",[18,27,34,39,44],{"_uid":19,"link":20,"title":23,"new_tab":24,"submenu":25,"component":26},"5cbe2861-1f49-4166-97da-a4dddd8105e3",{"id":21,"url":13,"linktype":14,"fieldtype":15,"cached_url":22},"4c0a2d99-ec30-4579-8ef1-6bf5564d4839","help\u002Fcategories\u002F","Articles",false,[],"header___item",{"_uid":28,"link":29,"title":32,"new_tab":33,"component":26},"1c8edeb5-b9e9-4cb8-b1c6-c1f292f7d7cd",{"id":13,"url":30,"linktype":31,"fieldtype":15,"cached_url":30},"https:\u002F\u002Fwiki.foxycart.com\u002F","url","Documentation",true,{"_uid":35,"link":36,"title":38,"new_tab":33,"component":26},"8d7df70e-f087-4da0-b616-6f0e9a5af35c",{"id":13,"url":37,"linktype":31,"fieldtype":15,"cached_url":37},"https:\u002F\u002Fapi.foxycart.com\u002F","API Documentation",{"_uid":40,"link":41,"title":43,"new_tab":33,"component":26},"f76e7944-23d5-4652-87e4-cdae79272762",{"id":13,"url":42,"linktype":31,"fieldtype":15,"cached_url":42},"https:\u002F\u002Fstatus.foxy.io\u002F","System Status",{"_uid":45,"link":46,"title":49,"new_tab":24,"component":26},"0de16771-4c84-466c-a1da-d8568113c71f",{"id":47,"url":13,"linktype":14,"fieldtype":15,"cached_url":48},"01e4e370-f9b9-45af-8fa9-f15540699b0d","contact","Contact Us",[],[],"header",{"id":54,"url":13,"linktype":14,"fieldtype":15,"cached_url":55},"4a679eb7-662d-4ea4-a976-5a2acbf0b663","help\u002F",[],"help-header","navigation\u002Fhelp-header",null,20,[],10082747,"71b81c2e-5e09-48a1-a397-a3c72fcd344a","2022-09-21T14:50:25.655Z","default",[],{"name":68,"created_at":69,"published_at":70,"updated_at":71,"id":72,"uuid":73,"content":74,"slug":243,"full_slug":244,"sort_by_date":59,"position":245,"tag_list":246,"is_startpage":24,"parent_id":62,"meta_data":59,"group_id":247,"first_published_at":248,"release_id":59,"lang":65,"path":59,"alternates":249,"default_full_slug":59,"translated_slugs":59},"Default Footer","2024-08-09T18:06:59.024Z","2025-09-04T06:24:46.223Z","2025-09-04T06:24:46.241Z",10082753,"e59e67ac-248a-482f-84a1-53d4f318186a",{"_uid":75,"about":76,"logos":77,"socials":82,"sections":108,"component":225,"cta_title":226,"bottom_links":227,"cta_subtitle":241,"cta_button_link":242,"cta_button_text":183},"830983f5-c4c4-43c8-b150-86a5e3fa6dc8","Foxy’s hosted cart & payment page allow you to sell anything, using your existing website or platform.",[78],{"id":79,"alt":13,"name":13,"focus":13,"title":13,"filename":80,"copyright":13,"fieldtype":81},14760,"https:\u002F\u002Fa-us.storyblok.com\u002Ff\u002F1001040\u002Fx\u002F3b030847ec\u002Fb-corp.svg","asset",[83,90,96,102],{"_uid":84,"icon":85,"link":86,"name":88,"component":89},"faf0a618-ea94-42ea-9182-03be18c43216","fa-facebook",{"id":13,"url":87,"linktype":31,"fieldtype":15,"cached_url":87},"https:\u002F\u002Fwww.facebook.com\u002Ffoxycart","Facebook","footer___social",{"_uid":91,"icon":92,"link":93,"name":95,"component":89},"14309c18-7e79-423e-b375-34555bac0811","fa-instagram",{"id":13,"url":94,"linktype":31,"fieldtype":15,"cached_url":94},"https:\u002F\u002Fwww.instagram.com\u002Ffoxy_io","Instagram",{"_uid":97,"icon":98,"link":99,"name":101,"component":89},"8f7fe7cf-0dd3-4596-8334-226ea466716a","fa-linkedin",{"id":13,"url":100,"linktype":31,"fieldtype":15,"cached_url":100},"https:\u002F\u002Fwww.linkedin.com\u002Fcompany\u002Ffoxycart.com","LinkedIn",{"_uid":103,"icon":104,"link":105,"name":107,"component":89},"90a675b4-dd97-40b5-be09-00a87223d4c5","fa-youtube",{"id":13,"url":106,"linktype":31,"fieldtype":15,"cached_url":106},"https:\u002F\u002Fwww.youtube.com\u002Fuser\u002Ffoxycart","Youtube",[109,139,184,206],{"_uid":110,"name":111,"items":112,"component":138},"82849945-282f-488c-b18d-a8d2252f514a","Company",[113,120,126,132],{"_uid":114,"link":115,"title":118,"new_tab":24,"component":119},"1f699ab1-938b-4d9d-9825-aabcbe6f57fe",{"id":116,"url":13,"linktype":14,"fieldtype":15,"cached_url":117},"63634293-a749-4226-9439-9f38ee6dcda0","about-us","About Us","footer___menu_items",{"_uid":121,"link":122,"title":125,"new_tab":24,"component":119},"b26b00f1-a0e7-4be2-8ab3-428b8cc841f8",{"id":123,"url":13,"linktype":14,"fieldtype":15,"cached_url":124},"26cb7c55-faed-4a77-a291-1552d4111b3e","how-foxy-works","How Foxy Works",{"_uid":127,"link":128,"title":131,"new_tab":24,"component":119},"b40c68a0-1ceb-4226-9515-6176534f61fe",{"id":129,"url":13,"linktype":14,"fieldtype":15,"cached_url":130},"dc6657d7-7f4f-4c0d-b781-e971b038ee26","for-good","Foxy For Good",{"_uid":133,"link":134,"title":137,"new_tab":24,"component":119},"3ad0c134-bef9-4fff-b891-e09f16109036",{"id":135,"url":13,"linktype":14,"fieldtype":15,"cached_url":136},"23cae210-baf4-4588-9862-d09f4f52ccd2","brand-assets","Brand Assets","footer___section",{"_uid":140,"name":141,"items":142,"component":138},"a6805fa8-ac60-47f1-b8f0-f27aded0afbe","Product",[143,149,155,161,167,173,179],{"_uid":144,"link":145,"title":148,"new_tab":24,"component":119},"b39c8a4e-2383-486f-b76a-11fbb15d8134",{"id":146,"url":13,"linktype":14,"fieldtype":15,"cached_url":147},"bb04690f-fe98-4ce6-80be-05b950f2364f","features\u002F","Features",{"_uid":150,"link":151,"title":154,"new_tab":24,"component":119},"64f8a41f-c181-433d-bc0a-fc94e71ecbf6",{"id":152,"url":13,"linktype":14,"fieldtype":15,"cached_url":153},"c450c58d-761d-48c0-a9af-0b064611689b","pricing","Pricing",{"_uid":156,"link":157,"title":160,"new_tab":24,"component":119},"6e0b287f-fd8c-4146-9e0e-0ab0b5c9ce3c",{"id":158,"url":13,"linktype":14,"fieldtype":15,"cached_url":159},"fab20ad9-e76a-4947-b709-3a6fdfa88028","blog\u002Fcategories\u002Fproduct-updates","Product Updates",{"_uid":162,"link":163,"title":166,"new_tab":24,"component":119},"47e5a074-a6b5-4f1c-8c2f-89a2ae9f83eb",{"id":164,"url":13,"linktype":14,"fieldtype":15,"cached_url":165},"d2c83612-d611-47f3-a3b4-ca7fe08540b8","changelogs\u002F","Changelogs",{"_uid":168,"link":169,"title":172,"new_tab":24,"component":119},"b5c08774-542f-4ffd-b357-c94d674488b9",{"id":170,"url":13,"linktype":14,"fieldtype":15,"cached_url":171},"08876121-0df3-4ed9-aa11-902b3e41cd02","whats-next","What's Next",{"_uid":174,"link":175,"title":178,"new_tab":24,"component":119},"9c2704ed-6d9f-43e1-9e67-c8d91c083288",{"id":176,"url":13,"linktype":14,"fieldtype":15,"cached_url":177},"056a7857-b18f-4025-8f97-91a38fc19bc8","compare\u002F","Compare",{"_uid":180,"link":181,"title":183,"new_tab":24,"component":119},"5f2db35b-674b-406a-8fa7-d246633af9fe",{"id":13,"url":182,"linktype":31,"fieldtype":15,"cached_url":182},"https:\u002F\u002Fadmin.foxy.io\u002Fsign-up","Try Foxy Free",{"_uid":185,"name":186,"items":187,"component":138},"63fa1f29-4252-4640-9922-fe310e69e54a","Security",[188,194,200],{"_uid":189,"link":190,"title":193,"new_tab":24,"component":119},"1158ddb6-9eb0-466f-8eb6-7ca2ae66c8b8",{"id":191,"url":13,"linktype":14,"fieldtype":15,"cached_url":192},"1f58fb2c-8681-4742-b6e8-09999beae9f6","security-contact","Security Contact",{"_uid":195,"link":196,"title":199,"new_tab":24,"component":119},"9a79c54a-6022-4dfd-854b-766f5e4703ba",{"id":197,"url":13,"linktype":14,"fieldtype":15,"cached_url":198},"55cbfcc3-425a-4261-8037-54e919851d2d","pci","PCI Compliance",{"_uid":201,"link":202,"title":205,"new_tab":24,"component":119},"0b85f5b6-9534-4071-b323-b39d053dd4d7",{"id":203,"url":13,"linktype":14,"fieldtype":15,"cached_url":204},"c3ac0fe3-83e2-4879-afbd-d4c83e1590df","help\u002Farticles\u002Four-official-domains-public-code","Domains & Codebases",{"_uid":207,"name":208,"items":209,"component":138},"998ded67-d107-49f4-8154-ca6be51671ec","Support",[210,213,216,219,222],{"_uid":211,"link":212,"title":16,"new_tab":24,"component":119},"594ffd35-3049-4004-bb08-0db568ebd819",{"id":54,"url":13,"linktype":14,"fieldtype":15,"cached_url":55},{"_uid":214,"link":215,"title":32,"new_tab":33,"component":119},"0a1a55ab-a985-4f9d-8b42-26da714d0c1c",{"id":13,"url":30,"linktype":31,"fieldtype":15,"cached_url":30},{"_uid":217,"link":218,"title":38,"new_tab":33,"component":119},"61e0b7c8-aadf-419b-a339-b3ccabc65bf4",{"id":13,"url":37,"linktype":31,"fieldtype":15,"cached_url":37},{"_uid":220,"link":221,"title":43,"new_tab":33,"component":119},"fd67a89e-1c54-4d31-94b5-64be999062d6",{"id":13,"url":42,"linktype":31,"fieldtype":15,"cached_url":42},{"_uid":223,"link":224,"title":49,"new_tab":24,"component":119},"231a6f71-e996-4ad4-b033-d4d5542f34f0",{"id":47,"url":13,"linktype":14,"fieldtype":15,"cached_url":48},"footer","Get started with our *unlimited free trial*.",[228,235],{"_uid":229,"link":230,"text":233,"component":234},"f0b77210-2632-45a2-8436-e57cad84d01a",{"id":231,"url":13,"linktype":14,"fieldtype":15,"cached_url":232},"60ba16a2-c1f4-485f-b978-8d2eeeafbf5a","terms-of-service","Terms of Service","footer___bottom_links",{"_uid":236,"link":237,"text":240,"component":234},"4bd497b0-993f-4b4d-a5b7-8a49c7c8fec9",{"id":238,"url":13,"linktype":14,"fieldtype":15,"cached_url":239},"332302b9-1d18-4016-b9c8-9b33c72d782b","privacy-policy","Privacy Policy","No credit card required.",{"id":13,"url":182,"linktype":31,"fieldtype":15,"cached_url":182},"default-footer","navigation\u002Fdefault-footer",50,[],"11006268-07f9-41e9-96f3-c51fb723399d","2022-09-21T20:39:02.357Z",[],{"name":251,"created_at":252,"published_at":253,"updated_at":254,"id":255,"uuid":256,"content":257,"slug":279,"full_slug":282,"sort_by_date":59,"position":283,"tag_list":284,"is_startpage":24,"parent_id":62,"meta_data":59,"group_id":285,"first_published_at":286,"release_id":59,"lang":65,"path":59,"alternates":287,"default_full_slug":59,"translated_slugs":59},"Search","2024-10-21T22:08:54.973Z","2025-05-26T09:17:25.790Z","2025-05-26T09:17:25.804Z",13592003,"14cbc359-9ac1-4a7a-a8de-ad4ac8ef26d4",{"_uid":258,"name":251,"indices":259,"summary":13,"component":279,"primary_image":280},"5e4a56e8-76f1-4790-b3a7-70f1be97d042",[260,265,269,274],{"key":261,"_uid":262,"icon":13,"name":263,"component":264},"all","c12a3210-7323-4273-8217-5215e52efe84","All","index",{"key":266,"_uid":267,"icon":268,"name":23,"component":264},"help_center_article","5acff080-95e4-44d3-8dcf-1b19720af382","fa-file-alt",{"key":270,"_uid":271,"icon":272,"name":273,"component":264},"help_center_guide","b8fbc206-c083-471e-a1f0-0ebeb90a669d","fa-book","Guides",{"key":275,"_uid":276,"icon":277,"name":278,"component":264},"blog_post","23419e83-2e56-4c4c-8a05-9fd1b3c9a9bd","fa-file-image","Blog Posts","search",{"id":59,"alt":59,"name":13,"focus":59,"title":59,"source":59,"filename":13,"copyright":59,"fieldtype":81,"meta_data":281},{},"navigation\u002Fsearch",60,[],"11e1fd31-95cd-4fc9-b736-8b8910663e6c","2024-10-21T23:17:05.904Z",[],{"name":23,"created_at":289,"published_at":290,"updated_at":291,"id":292,"uuid":21,"content":293,"slug":307,"full_slug":22,"sort_by_date":59,"position":308,"tag_list":309,"is_startpage":33,"parent_id":310,"meta_data":59,"group_id":311,"first_published_at":312,"release_id":59,"lang":65,"path":59,"alternates":313,"default_full_slug":59,"translated_slugs":59},"2022-09-19T14:42:29.685Z","2024-07-30T18:17:22.506Z","2024-07-30T18:17:22.525Z",2660,{"_uid":294,"icon":13,"name":23,"guides":295,"pinned":24,"summary":296,"category":13,"component":297,"blog_posts":298,"content_hub":24,"icon_custom":299,"case_studies":300,"faq_sections":301,"help_articles":302,"featured_guides":303,"mailbox_category":13,"featured_articles":304,"featured_blog_posts":305,"featured_case_studies":306},"d6dae89a-907a-4bf7-82de-fe2ba875ee6e",[],"Get your questions answered with our browsable knowledge base.","help_center_category",[],{"id":59,"alt":59,"name":13,"focus":59,"title":59,"filename":13,"copyright":59,"fieldtype":81},[],[],[],[],[],[],[],"categories",530,[],2658,"19ebcdd2-027f-47f5-9a5b-a8992c959578","2022-09-19T16:24:39.219Z",[],{"name":315,"created_at":316,"published_at":317,"updated_at":318,"id":319,"uuid":320,"content":321,"slug":616,"full_slug":617,"sort_by_date":59,"position":618,"tag_list":619,"is_startpage":24,"parent_id":620,"meta_data":59,"group_id":621,"first_published_at":317,"release_id":59,"lang":65,"path":59,"alternates":622,"default_full_slug":59,"translated_slugs":59},"Sign product links with HMAC","2026-06-29T20:20:12.658Z","2026-06-29T20:50:24.188Z","2026-06-29T20:50:24.204Z",192818432696164,"5b6a5904-6fa8-4f24-8516-1ac5da980a58",{"_uid":322,"body":323,"name":315,"image":611,"pinned":24,"summary":613,"category":614,"component":266,"related_articles":615},"fa6c8c8d-5847-439c-85c0-494408567ea2",{"type":324,"content":325},"doc",[326,333,340,345,376,387,420,426,431,472,477,482,487,492,497,502,531,536],{"type":327,"attrs":328,"content":329},"paragraph",{"textAlign":59},[330],{"text":331,"type":332},"Signing a product link with HMAC means generating a SHA-256 hash for each parameter and appending it to the parameter name. Foxy checks these hashes when the link is used — any unsigned or modified parameter is rejected.","text",{"type":334,"attrs":335,"content":337},"heading",{"level":336,"textAlign":59},2,[338],{"text":339,"type":332},"How signing works",{"type":327,"attrs":341,"content":342},{"textAlign":59},[343],{"text":344,"type":332},"For each parameter, concatenate three values in this order:",{"type":346,"attrs":347,"content":349},"ordered_list",{"order":348},1,[350,362,369],{"type":351,"content":352},"list_item",[353],{"type":327,"attrs":354,"content":355},{"textAlign":59},[356,358],{"text":357,"type":332},"The product ",{"text":359,"type":332,"marks":360},"code",[361],{"type":359},{"type":351,"content":363},[364],{"type":327,"attrs":365,"content":366},{"textAlign":59},[367],{"text":368,"type":332},"The parameter name",{"type":351,"content":370},[371],{"type":327,"attrs":372,"content":373},{"textAlign":59},[374],{"text":375,"type":332},"The parameter value",{"type":327,"attrs":377,"content":378},{"textAlign":59},[379,381,385],{"text":380,"type":332},"Then HMAC SHA-256 that string using your store’s API key, and append the resulting 64-character hash to the parameter name using double pipes (",{"text":382,"type":332,"marks":383},"||",[384],{"type":359},{"text":386,"type":332},").",{"type":327,"attrs":388,"content":389},{"textAlign":59},[390,392,395,397,401,403,407,408,412,414,418],{"text":391,"type":332},"For example, a product with ",{"text":359,"type":332,"marks":393},[394],{"type":359},{"text":396,"type":332}," of ",{"text":398,"type":332,"marks":399},"abc123",[400],{"type":359},{"text":402,"type":332}," and ",{"text":404,"type":332,"marks":405},"name",[406],{"type":359},{"text":396,"type":332},{"text":409,"type":332,"marks":410},"My Widget",[411],{"type":359},{"text":413,"type":332}," priced at ",{"text":415,"type":332,"marks":416},"1.99",[417],{"type":359},{"text":419,"type":332},":",{"type":421,"attrs":422,"content":423},"code_block",{"class":59},[424],{"text":425,"type":332},"hash_hmac('sha256', 'abc123nameMy Widget', $api_key);\nhash_hmac('sha256', 'abc123codemycode', $api_key);\nhash_hmac('sha256', 'abc123price1.99', $api_key);\n",{"type":334,"attrs":427,"content":428},{"level":336,"textAlign":59},[429],{"text":430,"type":332},"Steps",{"type":346,"attrs":432,"content":433},{"order":348},[434,446,453,465],{"type":351,"content":435},[436],{"type":327,"attrs":437,"content":438},{"textAlign":59},[439,441,444],{"text":440,"type":332},"For each parameter, concatenate the product ",{"text":359,"type":332,"marks":442},[443],{"type":359},{"text":445,"type":332},", parameter name, and parameter value into a single string.",{"type":351,"content":447},[448],{"type":327,"attrs":449,"content":450},{"textAlign":59},[451],{"text":452,"type":332},"Generate an HMAC SHA-256 hash of that string using your store’s API key.",{"type":351,"content":454},[455],{"type":327,"attrs":456,"content":457},{"textAlign":59},[458,460,463],{"text":459,"type":332},"Append ",{"text":382,"type":332,"marks":461},[462],{"type":359},{"text":464,"type":332}," and the hash to the parameter name in the URL.",{"type":351,"content":466},[467],{"type":327,"attrs":468,"content":469},{"textAlign":59},[470],{"text":471,"type":332},"Repeat for every parameter on every add-to-cart link.",{"type":334,"attrs":473,"content":474},{"level":336,"textAlign":59},[475],{"text":476,"type":332},"PHP helper function",{"type":327,"attrs":478,"content":479},{"textAlign":59},[480],{"text":481,"type":332},"If you are using PHP, you can use this helper function to generate signed parameter names:",{"type":421,"attrs":483,"content":484},{"class":59},[485],{"text":486,"type":332},"function get_verification($var_name, $var_value, $var_code, $var_parent_code = \"\", $for_value = false) {\n    $api_key = \"your_api_key_here\";\n    $encodingval = htmlspecialchars($var_code . $var_parent_code . $var_name . $var_value);\n    $label = ($for_value) ? $var_value : $var_name;\n    return $label . '||' . hash_hmac('sha256', $encodingval, $api_key) . ($var_value === \"--OPEN--\" ? \"||open\" : \"\");\n}\n",{"type":327,"attrs":488,"content":489},{"textAlign":59},[490],{"text":491,"type":332},"To build a signed link using the helper:",{"type":421,"attrs":493,"content":494},{"class":59},[495],{"text":496,"type":332},"$atc  = \"?\";\n$atc .= get_verification(\"name\", \"My Widget\", \"mycode\") . \"=\" . urlencode(\"My Widget\");\n$atc .= \"&\" . get_verification(\"code\", \"mycode\", \"mycode\") . \"=\" . urlencode(\"mycode\");\n$atc .= \"&\" . get_verification(\"price\", \"1.99\", \"mycode\") . \"=\" . urlencode(\"1.99\");\n",{"type":334,"attrs":498,"content":499},{"level":336,"textAlign":59},[500],{"text":501,"type":332},"Spaces and special characters",{"type":327,"attrs":503,"content":504},{"textAlign":59},[505,507,511,513,517,519,523,525,529],{"text":506,"type":332},"When a parameter value contains spaces or special characters, pass the raw string to the hashing function but URL-encode the value in the link itself. In PHP, use ",{"text":508,"type":332,"marks":509},"urlencode()",[510],{"type":359},{"text":512,"type":332}," for this. For example, ",{"text":514,"type":332,"marks":515},"\"Black & White T-shirt\"",[516],{"type":359},{"text":518,"type":332}," is passed as-is to ",{"text":520,"type":332,"marks":521},"get_verification()",[522],{"type":359},{"text":524,"type":332},", but written as ",{"text":526,"type":332,"marks":527},"Black+%26+White+T-shirt",[528],{"type":359},{"text":530,"type":332}," in the URL.",{"type":334,"attrs":532,"content":533},{"level":336,"textAlign":59},[534],{"text":535,"type":332},"Notes",{"type":537,"content":538},"bullet_list",[539,546,562,576,590,604],{"type":351,"content":540},[541],{"type":327,"attrs":542,"content":543},{"textAlign":59},[544],{"text":545,"type":332},"Every parameter that relates to a product must be signed. An unsigned parameter with a price modifier could be used to manipulate the price.",{"type":351,"content":547},[548],{"type":327,"attrs":549,"content":550},{"textAlign":59},[551,553,560],{"text":552,"type":332},"For open (user-editable) fields, see ",{"text":554,"type":332,"marks":555},"Sign open fields with HMAC",[556],{"type":557,"attrs":558},"link",{"href":559,"uuid":59,"anchor":59,"target":59,"linktype":31},"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Fsign-open-user-editable-fields-with-hmac",{"text":561,"type":332},".",{"type":351,"content":563},[564],{"type":327,"attrs":565,"content":566},{"textAlign":59},[567,569,575],{"text":568,"type":332},"For bundled products, see ",{"text":570,"type":332,"marks":571},"Sign bundled products with HMAC",[572],{"type":557,"attrs":573},{"href":574,"uuid":59,"anchor":59,"target":59,"linktype":31},"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Fsign-bundled-products-with-hmac",{"text":561,"type":332},{"type":351,"content":577},[578],{"type":327,"attrs":579,"content":580},{"textAlign":59},[581,583,589],{"text":582,"type":332},"For multiple products in one link, see ",{"text":584,"type":332,"marks":585},"Sign multiple products in one form with HMAC",[586],{"type":557,"attrs":587},{"href":588,"uuid":59,"anchor":59,"target":59,"linktype":31},"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Fsign-multiple-products-in-one-form-with-hmac",{"text":561,"type":332},{"type":351,"content":591},[592],{"type":327,"attrs":593,"content":594},{"textAlign":59},[595,597,603],{"text":596,"type":332},"For parameters that do not need to be signed, see ",{"text":598,"type":332,"marks":599},"HMAC excluded parameters reference",[600],{"type":557,"attrs":601},{"href":602,"uuid":59,"anchor":59,"target":59,"linktype":31},"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Fhmac-excluded-parameters-reference",{"text":561,"type":332},{"type":351,"content":605},[606],{"type":327,"attrs":607,"content":608},{"textAlign":59},[609],{"text":610,"type":332},"Forms with many signed parameters may push Internet Explorer (up to IE8) past its 2,083-character URL limit for GET submissions. POST submissions are unaffected.",{"id":59,"alt":59,"name":13,"focus":59,"title":59,"source":59,"filename":13,"copyright":59,"fieldtype":81,"meta_data":612},{},"How to sign your add to cart links with HMAC to prevent parameter tampering.","ff9269e2-2402-422e-aa80-19acc150b78a",[],"sign-product-links-with-hmac","help\u002Farticles\u002Fsign-product-links-with-hmac",-2490,[],2659,"c57cce4d-532c-4ff9-b4bf-1a4f01cfd8a7",[],{"html":624,"sections":625,"segments":637},"\u003Cp>Signing a product link with HMAC means generating a SHA-256 hash for each parameter and appending it to the parameter name. Foxy checks these hashes when the link is used — any unsigned or modified parameter is rejected.\u003C\u002Fp>\u003Csection id=\"how-signing-works\" data-title=\"How signing works\" data-title-node=\"H2\">\u003Chr class=\"my-8\" style=\"margin-left: -48px; margin-right: -40vw\">\u003Ch2 data-anchor-id=\"how-signing-works\">How signing works\u003C\u002Fh2>\u003Cp>For each parameter, concatenate three values in this order:\u003C\u002Fp>\u003Col class=\"step step-icon-sm step-dashed step-border-last-0 mt-3\">\u003Cli class=\"step-item\">\u003Cdiv class=\"step-content-wrapper\">\u003Cspan class=\"step-icon step-icon-soft-primary\">1\u003C\u002Fspan>\u003Cdiv class=\"w-100 overflow-hidden\">\u003Cdiv class=\"step-content mt-2\">\u003Cp>The product \u003Ccode class=\"badge bg-soft-danger text-danger\">code\u003C\u002Fcode>\u003C\u002Fp>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fli>\u003Cli class=\"step-item\">\u003Cdiv class=\"step-content-wrapper\">\u003Cspan class=\"step-icon step-icon-soft-primary\">2\u003C\u002Fspan>\u003Cdiv class=\"w-100 overflow-hidden\">\u003Cdiv class=\"step-content mt-2\">\u003Cp>The parameter name\u003C\u002Fp>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fli>\u003Cli class=\"step-item\">\u003Cdiv class=\"step-content-wrapper\">\u003Cspan class=\"step-icon step-icon-soft-primary\">3\u003C\u002Fspan>\u003Cdiv class=\"w-100 overflow-hidden\">\u003Cdiv class=\"step-content mt-2\">\u003Cp>The parameter value\u003C\u002Fp>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fli>\u003C\u002Fol>\u003Cp>Then HMAC SHA-256 that string using your store’s API key, and append the resulting 64-character hash to the parameter name using double pipes (\u003Ccode class=\"badge bg-soft-danger text-danger\">||\u003C\u002Fcode>).\u003C\u002Fp>\u003Cp>For example, a product with \u003Ccode class=\"badge bg-soft-danger text-danger\">code\u003C\u002Fcode> of \u003Ccode class=\"badge bg-soft-danger text-danger\">abc123\u003C\u002Fcode> and \u003Ccode class=\"badge bg-soft-danger text-danger\">name\u003C\u002Fcode> of \u003Ccode class=\"badge bg-soft-danger text-danger\">My Widget\u003C\u002Fcode> priced at \u003Ccode class=\"badge bg-soft-danger text-danger\">1.99\u003C\u002Fcode>:\u003C\u002Fp>\u003Cdiv class=\"position-relative w-100 overflow-hidden rounded-2\" data-code-block>\u003Cdiv class=\"d-flex justify-content-end border-bottom\" style=\"background:#2b2c3b;\">\u003Cbutton type=\"button\" class=\"btn btn-link btn-sm text-light\" title=\"Copy\" data-code-button>\u003Cspan data-code-default style=\"\">\u003Ci class=\"fal fa-copy me-2\">\u003C\u002Fi> Copy \u003C\u002Fspan>\u003Cspan class=\"text-success\" data-code-success style=\"display:none;\">\u003Ci class=\"fal fa-check ms-2\">\u003C\u002Fi> Copied \u003C\u002Fspan>\u003C\u002Fbutton>\u003C\u002Fdiv>\u003Cdiv class=\"small\">\u003Cpre class=\"hljs p-2\" data-code-content>hash_hmac(&#x27;sha256&#x27;, &#x27;abc123nameMy Widget&#x27;, $api_key);\nhash_hmac(&#x27;sha256&#x27;, &#x27;abc123codemycode&#x27;, $api_key);\nhash_hmac(&#x27;sha256&#x27;, &#x27;abc123price1.99&#x27;, $api_key);\n\u003C\u002Fpre>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fsection>\u003Csection id=\"steps\" data-title=\"Steps\" data-title-node=\"H2\">\u003Chr class=\"my-8\" style=\"margin-left: -48px; margin-right: -40vw\">\u003Ch2 data-anchor-id=\"steps\">Steps\u003C\u002Fh2>\u003Col class=\"step step-icon-sm step-dashed step-border-last-0 mt-3\">\u003Cli class=\"step-item\">\u003Cdiv class=\"step-content-wrapper\">\u003Cspan class=\"step-icon step-icon-soft-primary\">1\u003C\u002Fspan>\u003Cdiv class=\"w-100 overflow-hidden\">\u003Cdiv class=\"step-content mt-2\">\u003Cp>For each parameter, concatenate the product \u003Ccode class=\"badge bg-soft-danger text-danger\">code\u003C\u002Fcode>, parameter name, and parameter value into a single string.\u003C\u002Fp>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fli>\u003Cli class=\"step-item\">\u003Cdiv class=\"step-content-wrapper\">\u003Cspan class=\"step-icon step-icon-soft-primary\">2\u003C\u002Fspan>\u003Cdiv class=\"w-100 overflow-hidden\">\u003Cdiv class=\"step-content mt-2\">\u003Cp>Generate an HMAC SHA-256 hash of that string using your store’s API key.\u003C\u002Fp>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fli>\u003Cli class=\"step-item\">\u003Cdiv class=\"step-content-wrapper\">\u003Cspan class=\"step-icon step-icon-soft-primary\">3\u003C\u002Fspan>\u003Cdiv class=\"w-100 overflow-hidden\">\u003Cdiv class=\"step-content mt-2\">\u003Cp>Append \u003Ccode class=\"badge bg-soft-danger text-danger\">||\u003C\u002Fcode> and the hash to the parameter name in the URL.\u003C\u002Fp>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fli>\u003Cli class=\"step-item\">\u003Cdiv class=\"step-content-wrapper\">\u003Cspan class=\"step-icon step-icon-soft-primary\">4\u003C\u002Fspan>\u003Cdiv class=\"w-100 overflow-hidden\">\u003Cdiv class=\"step-content mt-2\">\u003Cp>Repeat for every parameter on every add-to-cart link.\u003C\u002Fp>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fli>\u003C\u002Fol>\u003C\u002Fsection>\u003Csection id=\"php-helper-function\" data-title=\"PHP helper function\" data-title-node=\"H2\">\u003Chr class=\"my-8\" style=\"margin-left: -48px; margin-right: -40vw\">\u003Ch2 data-anchor-id=\"php-helper-function\">PHP helper function\u003C\u002Fh2>\u003Cp>If you are using PHP, you can use this helper function to generate signed parameter names:\u003C\u002Fp>\u003Cdiv class=\"position-relative w-100 overflow-hidden rounded-2\" data-code-block>\u003Cdiv class=\"d-flex justify-content-end border-bottom\" style=\"background:#2b2c3b;\">\u003Cbutton type=\"button\" class=\"btn btn-link btn-sm text-light\" title=\"Copy\" data-code-button>\u003Cspan data-code-default style=\"\">\u003Ci class=\"fal fa-copy me-2\">\u003C\u002Fi> Copy \u003C\u002Fspan>\u003Cspan class=\"text-success\" data-code-success style=\"display:none;\">\u003Ci class=\"fal fa-check ms-2\">\u003C\u002Fi> Copied \u003C\u002Fspan>\u003C\u002Fbutton>\u003C\u002Fdiv>\u003Cdiv class=\"small\">\u003Cpre class=\"hljs p-2\" data-code-content>function get_verification($var_name, $var_value, $var_code, $var_parent_code = &quot;&quot;, $for_value = false) {\n    $api_key = &quot;your_api_key_here&quot;;\n    $encodingval = htmlspecialchars($var_code . $var_parent_code . $var_name . $var_value);\n    $label = ($for_value) ? $var_value : $var_name;\n    return $label . &#x27;||&#x27; . hash_hmac(&#x27;sha256&#x27;, $encodingval, $api_key) . ($var_value === &quot;--OPEN--&quot; ? &quot;||open&quot; : &quot;&quot;);\n}\n\u003C\u002Fpre>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cp>To build a signed link using the helper:\u003C\u002Fp>\u003Cdiv class=\"position-relative w-100 overflow-hidden rounded-2\" data-code-block>\u003Cdiv class=\"d-flex justify-content-end border-bottom\" style=\"background:#2b2c3b;\">\u003Cbutton type=\"button\" class=\"btn btn-link btn-sm text-light\" title=\"Copy\" data-code-button>\u003Cspan data-code-default style=\"\">\u003Ci class=\"fal fa-copy me-2\">\u003C\u002Fi> Copy \u003C\u002Fspan>\u003Cspan class=\"text-success\" data-code-success style=\"display:none;\">\u003Ci class=\"fal fa-check ms-2\">\u003C\u002Fi> Copied \u003C\u002Fspan>\u003C\u002Fbutton>\u003C\u002Fdiv>\u003Cdiv class=\"small\">\u003Cpre class=\"hljs p-2\" data-code-content>$atc  = &quot;?&quot;;\n$atc .= get_verification(&quot;name&quot;, &quot;My Widget&quot;, &quot;mycode&quot;) . &quot;=&quot; . urlencode(&quot;My Widget&quot;);\n$atc .= &quot;&amp;&quot; . get_verification(&quot;code&quot;, &quot;mycode&quot;, &quot;mycode&quot;) . &quot;=&quot; . urlencode(&quot;mycode&quot;);\n$atc .= &quot;&amp;&quot; . get_verification(&quot;price&quot;, &quot;1.99&quot;, &quot;mycode&quot;) . &quot;=&quot; . urlencode(&quot;1.99&quot;);\n\u003C\u002Fpre>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fsection>\u003Csection id=\"spaces-and-special-characters\" data-title=\"Spaces and special characters\" data-title-node=\"H2\">\u003Chr class=\"my-8\" style=\"margin-left: -48px; margin-right: -40vw\">\u003Ch2 data-anchor-id=\"spaces-and-special-characters\">Spaces and special characters\u003C\u002Fh2>\u003Cp>When a parameter value contains spaces or special characters, pass the raw string to the hashing function but URL-encode the value in the link itself. In PHP, use \u003Ccode class=\"badge bg-soft-danger text-danger\">urlencode()\u003C\u002Fcode> for this. For example, \u003Ccode class=\"badge bg-soft-danger text-danger\">&quot;Black &amp; White T-shirt&quot;\u003C\u002Fcode> is passed as-is to \u003Ccode class=\"badge bg-soft-danger text-danger\">get_verification()\u003C\u002Fcode>, but written as \u003Ccode class=\"badge bg-soft-danger text-danger\">Black+%26+White+T-shirt\u003C\u002Fcode> in the URL.\u003C\u002Fp>\u003C\u002Fsection>\u003Csection id=\"notes\" data-title=\"Notes\" data-title-node=\"H2\">\u003Chr class=\"my-8\" style=\"margin-left: -48px; margin-right: -40vw\">\u003Ch2 data-anchor-id=\"notes\">Notes\u003C\u002Fh2>\u003Cul>\u003Cli>\u003Cp>Every parameter that relates to a product must be signed. An unsigned parameter with a price modifier could be used to manipulate the price.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>For open (user-editable) fields, see \u003Ca href=\"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Fsign-open-user-editable-fields-with-hmac\" class=\"\">Sign open fields with HMAC\u003C\u002Fa>.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>For bundled products, see \u003Ca href=\"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Fsign-bundled-products-with-hmac\" class=\"\">Sign bundled products with HMAC\u003C\u002Fa>.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>For multiple products in one link, see \u003Ca href=\"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Fsign-multiple-products-in-one-form-with-hmac\" class=\"\">Sign multiple products in one form with HMAC\u003C\u002Fa>.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>For parameters that do not need to be signed, see \u003Ca href=\"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Fhmac-excluded-parameters-reference\" class=\"\">HMAC excluded parameters reference\u003C\u002Fa>.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>Forms with many signed parameters may push Internet Explorer (up to IE8) past its 2,083-character URL limit for GET submissions. POST submissions are unaffected.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003C\u002Fsection>",[626,629,631,633,635],{"id":627,"title":339,"level":628},"how-signing-works","H2",{"id":630,"title":430,"level":628},"steps",{"id":632,"title":476,"level":628},"php-helper-function",{"id":634,"title":501,"level":628},"spaces-and-special-characters",{"id":636,"title":535,"level":628},"notes",[638],{"type":639,"content":640},"html","\u003Cp>Signing a product link with HMAC means generating a SHA-256 hash for each parameter and appending it to the parameter name. Foxy checks these hashes when the link is used — any unsigned or modified parameter is rejected.\u003C\u002Fp>\u003Ch2>How signing works\u003C\u002Fh2>\u003Cp>For each parameter, concatenate three values in this order:\u003C\u002Fp>\u003Col order=\"1\">\u003Cli>\u003Cp>The product \u003Ccode class=\"badge bg-soft-danger text-danger\">code\u003C\u002Fcode>\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>The parameter name\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>The parameter value\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Fol>\u003Cp>Then HMAC SHA-256 that string using your store’s API key, and append the resulting 64-character hash to the parameter name using double pipes (\u003Ccode class=\"badge bg-soft-danger text-danger\">||\u003C\u002Fcode>).\u003C\u002Fp>\u003Cp>For example, a product with \u003Ccode class=\"badge bg-soft-danger text-danger\">code\u003C\u002Fcode> of \u003Ccode class=\"badge bg-soft-danger text-danger\">abc123\u003C\u002Fcode> and \u003Ccode class=\"badge bg-soft-danger text-danger\">name\u003C\u002Fcode> of \u003Ccode class=\"badge bg-soft-danger text-danger\">My Widget\u003C\u002Fcode> priced at \u003Ccode class=\"badge bg-soft-danger text-danger\">1.99\u003C\u002Fcode>:\u003C\u002Fp>\u003Cpre>\u003Ccode>hash_hmac(&#039;sha256&#039;, &#039;abc123nameMy Widget&#039;, $api_key);\nhash_hmac(&#039;sha256&#039;, &#039;abc123codemycode&#039;, $api_key);\nhash_hmac(&#039;sha256&#039;, &#039;abc123price1.99&#039;, $api_key);\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch2>Steps\u003C\u002Fh2>\u003Col order=\"1\">\u003Cli>\u003Cp>For each parameter, concatenate the product \u003Ccode class=\"badge bg-soft-danger text-danger\">code\u003C\u002Fcode>, parameter name, and parameter value into a single string.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>Generate an HMAC SHA-256 hash of that string using your store’s API key.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>Append \u003Ccode class=\"badge bg-soft-danger text-danger\">||\u003C\u002Fcode> and the hash to the parameter name in the URL.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>Repeat for every parameter on every add-to-cart link.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Fol>\u003Ch2>PHP helper function\u003C\u002Fh2>\u003Cp>If you are using PHP, you can use this helper function to generate signed parameter names:\u003C\u002Fp>\u003Cpre>\u003Ccode>function get_verification($var_name, $var_value, $var_code, $var_parent_code = &quot;&quot;, $for_value = false) {\n    $api_key = &quot;your_api_key_here&quot;;\n    $encodingval = htmlspecialchars($var_code . $var_parent_code . $var_name . $var_value);\n    $label = ($for_value) ? $var_value : $var_name;\n    return $label . &#039;||&#039; . hash_hmac(&#039;sha256&#039;, $encodingval, $api_key) . ($var_value === &quot;--OPEN--&quot; ? &quot;||open&quot; : &quot;&quot;);\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>To build a signed link using the helper:\u003C\u002Fp>\u003Cpre>\u003Ccode>$atc  = &quot;?&quot;;\n$atc .= get_verification(&quot;name&quot;, &quot;My Widget&quot;, &quot;mycode&quot;) . &quot;=&quot; . urlencode(&quot;My Widget&quot;);\n$atc .= &quot;&amp;&quot; . get_verification(&quot;code&quot;, &quot;mycode&quot;, &quot;mycode&quot;) . &quot;=&quot; . urlencode(&quot;mycode&quot;);\n$atc .= &quot;&amp;&quot; . get_verification(&quot;price&quot;, &quot;1.99&quot;, &quot;mycode&quot;) . &quot;=&quot; . urlencode(&quot;1.99&quot;);\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch2>Spaces and special characters\u003C\u002Fh2>\u003Cp>When a parameter value contains spaces or special characters, pass the raw string to the hashing function but URL-encode the value in the link itself. In PHP, use \u003Ccode class=\"badge bg-soft-danger text-danger\">urlencode()\u003C\u002Fcode> for this. For example, \u003Ccode class=\"badge bg-soft-danger text-danger\">&quot;Black &amp; White T-shirt&quot;\u003C\u002Fcode> is passed as-is to \u003Ccode class=\"badge bg-soft-danger text-danger\">get_verification()\u003C\u002Fcode>, but written as \u003Ccode class=\"badge bg-soft-danger text-danger\">Black+%26+White+T-shirt\u003C\u002Fcode> in the URL.\u003C\u002Fp>\u003Ch2>Notes\u003C\u002Fh2>\u003Cul>\u003Cli>\u003Cp>Every parameter that relates to a product must be signed. An unsigned parameter with a price modifier could be used to manipulate the price.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>For open (user-editable) fields, see \u003Ca href=\"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Fsign-open-user-editable-fields-with-hmac\" class=\"\">Sign open fields with HMAC\u003C\u002Fa>.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>For bundled products, see \u003Ca href=\"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Fsign-bundled-products-with-hmac\" class=\"\">Sign bundled products with HMAC\u003C\u002Fa>.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>For multiple products in one link, see \u003Ca href=\"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Fsign-multiple-products-in-one-form-with-hmac\" class=\"\">Sign multiple products in one form with HMAC\u003C\u002Fa>.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>For parameters that do not need to be signed, see \u003Ca href=\"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Fhmac-excluded-parameters-reference\" class=\"\">HMAC excluded parameters reference\u003C\u002Fa>.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>Forms with many signed parameters may push Internet Explorer (up to IE8) past its 2,083-character URL limit for GET submissions. POST submissions are unaffected.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>",{"name":642,"created_at":643,"published_at":644,"updated_at":645,"id":646,"uuid":47,"content":647,"slug":48,"full_slug":48,"sort_by_date":59,"position":825,"tag_list":826,"is_startpage":24,"parent_id":59,"meta_data":59,"group_id":827,"first_published_at":828,"release_id":59,"lang":65,"path":59,"alternates":829,"default_full_slug":59,"translated_slugs":59},"Contact","2022-09-23T19:56:58.957Z","2025-05-08T18:24:40.382Z","2025-05-08T18:24:40.392Z",3138,{"seo":648,"_uid":651,"title":652,"action":653,"fields":654,"method":801,"columns":802,"subtitle":816,"component":48,"button_text":822,"submit_title":823,"submit_subtitle":824},{"_uid":649,"title":642,"plugin":650,"description":13},"24ff7574-3bcc-48d2-85b5-e529dfea1cc4","meta-fields","8f54f1da-9d8f-49b2-89e7-840e886491cb","We're here to help.","https:\u002F\u002Fusebasin.com\u002Ff\u002F029f48d65402",[655,659,663,772,775,780,795],{"_uid":656,"name":404,"type":332,"label":657,"options":13,"required":33,"component":658,"placeholder":13},"9a70b226-2036-4f90-a052-b3efa61c5896","Name","form___field",{"_uid":660,"name":661,"type":661,"label":662,"options":13,"required":33,"component":658,"placeholder":13},"86ba35be-ff43-4a28-8633-14052a8f6622","email","Email Address",{"_uid":664,"name":665,"type":666,"label":667,"options":668,"required":33,"component":658,"conditions":669,"placeholder":13},"3f827475-492c-4f97-aa1e-2386ac263b6c","topic","select","Topic","Presales, Support, Billing, Partnerships, Order Enquiry, Other",[670,726,736,743,751,759,765],{"_uid":671,"equals":672,"fields":673,"component":725},"e21d97dd-e68e-4fa6-ba97-bc40f3041dde","Order Enquiry",[674],{"_uid":675,"body":676,"type":723,"title":13,"component":724},"b64992bc-6d53-48b8-b7a0-d81e5a062e50",{"type":324,"content":677},[678],{"type":327,"content":679},[680,682,689,691,693,694,699,701,706,714,716,721],{"text":681,"type":332},"We are ",{"text":683,"type":332,"marks":684},"Foxy.io",[685],{"type":557,"attrs":686},{"href":687,"uuid":59,"anchor":59,"custom":688,"target":59,"linktype":31},"http:\u002F\u002FFoxy.io",{},{"text":690,"type":332},", an ecommerce platform powering ecommerce for other merchants. We do not sell products, and are unable to assist with questions about order statuses or refunds for any merchants using our platform. Please contact the merchant you ordered from for assistance. If you’d like to report a store using Foxy for fraudulent practices, please select ‘other’ in the subject.",{"type":692},"hard_break",{"type":692},{"text":695,"type":332,"marks":696},"NOTE:",[697],{"type":698},"bold",{"text":700,"type":332}," We are ",{"text":702,"type":332,"marks":703},"not ",[704],{"type":705},"italic",{"text":707,"type":332,"marks":708},"Foxy.in",[709,713],{"type":557,"attrs":710},{"href":711,"uuid":59,"anchor":59,"custom":712,"target":59,"linktype":31},"http:\u002F\u002FFoxy.in",{},{"type":705},{"text":715,"type":332},". We are not in any way affiliated with ",{"text":707,"type":332,"marks":717},[718],{"type":557,"attrs":719},{"href":711,"uuid":59,"anchor":59,"custom":720,"target":59,"linktype":31},{},{"text":722,"type":332},", and cannot help in any way with your order from that website.","danger","global___alert","form___condition",{"_uid":727,"equals":728,"fields":729,"component":725},"8765c3e1-25cf-44aa-b8ea-fc6094acf9c3","Presales",[730],{"_uid":731,"name":732,"type":733,"label":13,"options":13,"required":24,"component":658,"conditions":734,"placeholder":13,"default_value":735},"cf464f8e-d643-4f6e-af29-d3abffaf7380","department_email_address","hidden",[],"hello@foxy.io",{"_uid":737,"equals":208,"fields":738,"component":725},"4007b6d8-77e5-421d-bd1e-6f336dd853fb",[739],{"_uid":740,"name":732,"type":733,"label":13,"options":13,"required":24,"component":658,"conditions":741,"placeholder":13,"default_value":742},"7b4c6aa5-a68c-45e0-9ce1-0a36af10c0c2",[],"help@foxy.io",{"_uid":744,"equals":745,"fields":746,"component":725},"1dbb8f11-613d-43cd-9e09-1b94f6e19219","Billing",[747],{"_uid":748,"name":732,"type":733,"label":13,"options":13,"required":24,"component":658,"conditions":749,"placeholder":13,"default_value":750},"a0ac0d1b-bc4f-4a6c-a682-581d450b0b73",[],"help+billing@foxy.io",{"_uid":752,"equals":753,"fields":754,"component":725},"a0a53a50-7172-4a29-ba58-181e38874e12","Partnerships",[755],{"_uid":756,"name":732,"type":733,"label":13,"options":13,"required":24,"component":658,"conditions":757,"placeholder":13,"default_value":758},"7aa011d9-f374-4aed-b5a5-929b54aaf152",[],"partners@foxy.io",{"_uid":760,"equals":672,"fields":761,"component":725},"a4cd431f-25d5-41c7-bfdc-02c908c8fb47",[762],{"_uid":763,"name":732,"type":733,"label":13,"options":13,"required":24,"component":658,"conditions":764,"placeholder":13,"default_value":735},"f5d52168-d6ae-451b-94ee-2ced1cbd28ad",[],{"_uid":766,"equals":767,"fields":768,"component":725},"25aba1ed-eb41-4bbc-aa89-f7a7167ea86e","Other",[769],{"_uid":770,"name":732,"type":733,"label":13,"options":13,"required":24,"component":658,"conditions":771,"placeholder":13,"default_value":735},"f40dfaef-c203-4b71-bf4e-e1b43cef192b",[],{"_uid":773,"component":774},"e9c53a05-f40a-4510-aaf8-bc072a235a0c","form___subject",{"_uid":776,"name":777,"type":778,"label":779,"options":13,"required":33,"component":658,"placeholder":13},"a4c4d385-fff4-4978-99fb-b68cfea623d6","message","textarea","Message",{"_uid":781,"name":782,"type":666,"label":783,"options":784,"required":33,"component":658,"conditions":785,"placeholder":13},"8a3c9f85-f438-427d-9c7a-d7b295a14b5b","existing_user","Are you an existing user?","No, Yes",[786],{"_uid":787,"equals":788,"fields":789,"component":725},"115933d6-262a-4b59-8fa8-579c5ad73de1","Yes",[790],{"_uid":791,"name":792,"type":332,"label":793,"options":13,"required":33,"component":658,"conditions":794,"placeholder":13},"44b6ff23-98f0-4e95-b7f5-c23e06415c2d","subdomain","Store Subdomain",[],{"_uid":796,"name":797,"type":666,"label":798,"options":799,"required":33,"component":658,"conditions":800,"placeholder":13},"922a5cef-3af2-4113-8855-36c7910e3ee3","user_type","What type of user are you?","Developer, Designer, Merchant",[],"POST",[803],{"_uid":804,"text":805,"title":814,"component":815},"7323b90d-a93a-4bf1-baa9-20d0b7ead61b",{"type":324,"content":806},[807],{"type":327,"content":808},[809,811,812],{"text":810,"type":332},"855.369.9227",{"type":692},{"text":813,"type":332},"9:30am-6pm Central M-F","Pre-sales, Sales, & Partnerships","contact___footer_column",{"type":324,"content":817},[818],{"type":327,"content":819},[820],{"text":821,"type":332},"Get in touch to get help from our friendly support team.","Submit","Success!","Your email has been received. We'll get back to you as soon as we can, but it might take a business day. If you don't hear back from us in a timely manner, please check your spam folder to ensure our reply didn't go there.",-80,[],"2fd9fb7d-a48a-4184-acfd-30022d8d6f08","2022-09-23T20:10:45.360Z",[],[288,831,859],{"name":832,"created_at":833,"published_at":834,"updated_at":835,"id":836,"uuid":837,"content":838,"slug":852,"full_slug":853,"sort_by_date":59,"position":854,"tag_list":855,"is_startpage":24,"parent_id":310,"meta_data":59,"group_id":856,"first_published_at":857,"release_id":59,"lang":65,"path":59,"alternates":858,"default_full_slug":59,"translated_slugs":59},"Products","2023-01-19T16:20:53.075Z","2024-06-05T04:29:14.851Z","2024-06-05T04:29:14.872Z",28236,"389d5512-29ba-4a93-9cfa-9491d1618f73",{"_uid":839,"icon":840,"name":832,"guides":841,"pinned":24,"summary":842,"category":13,"component":297,"blog_posts":843,"content_hub":24,"icon_custom":844,"case_studies":845,"faq_sections":846,"help_articles":847,"featured_guides":848,"mailbox_category":13,"featured_articles":849,"featured_blog_posts":850,"featured_case_studies":851},"3551f6e8-765a-4b8d-8587-2e2eda4d2b23","fa-tags",[],"How products work, supported product types, inventory management, and more.",[],{"id":59,"alt":59,"name":13,"focus":59,"title":59,"filename":13,"copyright":59,"fieldtype":81},[],[],[],[],[],[],[],"products","help\u002Fcategories\u002Fproducts",150,[],"c025c7a7-0d20-4244-938a-c8d6588e1269","2023-01-19T17:25:32.570Z",[],{"name":860,"created_at":861,"published_at":862,"updated_at":863,"id":864,"uuid":614,"content":865,"slug":878,"full_slug":879,"sort_by_date":59,"position":880,"tag_list":881,"is_startpage":24,"parent_id":310,"meta_data":59,"group_id":882,"first_published_at":862,"release_id":59,"lang":65,"path":59,"alternates":883,"default_full_slug":59,"translated_slugs":59},"Product Security","2026-06-29T20:00:54.676Z","2026-06-29T20:37:32.009Z","2026-06-29T20:37:32.025Z",192813689601883,{"_uid":866,"icon":13,"name":860,"type":867,"pinned":24,"summary":868,"category":837,"component":297,"blog_posts":869,"icon_custom":870,"case_studies":872,"faq_sections":873,"featured_guides":874,"mailbox_category":13,"featured_articles":875,"featured_blog_posts":876,"featured_case_studies":877},"bd9968b0-6d3b-4a2b-a7bc-79263044b475","simple","How to enable and implement HMAC product validation, including signing product links, forms, and bundled products.",[],{"id":59,"alt":59,"name":13,"focus":59,"title":59,"source":59,"filename":13,"copyright":59,"fieldtype":81,"meta_data":871},{},[],[],[],[],[],[],"product-security","help\u002Fcategories\u002Fproduct-security",-420,[],"9b6ea296-0666-48d6-b896-39e524ea24ac",[],{},1784562224598]