[{"data":1,"prerenderedAt":747},["ShallowReactive",2],{"header:help":3,"footer:default":67,"story:navigation\u002Fsearch:help":250,"story:help\u002Fcategories":288,"story:help\u002Farticles\u002Fsign-multiple-products-in-one-form-with-hmac":314,"no-guide:sign-multiple-products-in-one-form-with-hmac":59,"article:\u002Fhelp\u002Farticles\u002Fsign-multiple-products-in-one-form-with-hmac":491,"story:contact":503,"help:tree:6a02ac99-b4cd-4dbe-8fb9-8359354b481a":692,"_apollo:default":746},{"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":484,"full_slug":485,"sort_by_date":59,"position":486,"tag_list":487,"is_startpage":24,"parent_id":488,"meta_data":59,"group_id":489,"first_published_at":317,"release_id":59,"lang":65,"path":59,"alternates":490,"default_full_slug":59,"translated_slugs":59},"Sign multiple products in one form with HMAC","2026-06-29T20:24:07.630Z","2026-06-29T20:50:23.441Z","2026-06-29T20:50:23.464Z",192819395141479,"6a02ac99-b4cd-4dbe-8fb9-8359354b481a",{"_uid":322,"body":323,"name":315,"image":479,"pinned":24,"summary":481,"category":482,"component":266,"related_articles":483},"6710a8fb-34d8-49f3-9412-210b4f2d39c0",{"type":324,"content":325},"doc",[326,346,353,358,363,369,380,385,390,395,406,411],{"type":327,"attrs":328,"content":329},"paragraph",{"textAlign":59},[330,333,338,340,344],{"text":331,"type":332},"Foxy supports adding multiple products in a single form submission using numeric prefixes on parameter names (e.g. ","text",{"text":334,"type":332,"marks":335},"2:name",[336],{"type":337},"code",{"text":339,"type":332},", ",{"text":341,"type":332,"marks":342},"2:price",[343],{"type":337},{"text":345,"type":332},"). When signing these forms with HMAC, generate the hash without the numeric prefix.",{"type":347,"attrs":348,"content":350},"heading",{"level":349,"textAlign":59},2,[351],{"text":352,"type":332},"How it works",{"type":327,"attrs":354,"content":355},{"textAlign":59},[356],{"text":357,"type":332},"Strip the numeric prefix before generating the hash. The prefix is only used to group parameters in the form — it is not part of the value Foxy verifies against.",{"type":327,"attrs":359,"content":360},{"textAlign":59},[361],{"text":362,"type":332},"For example, a form with two products:",{"type":364,"attrs":365,"content":366},"code_block",{"class":59},[367],{"text":368,"type":332},"\u003Cinput type=\"hidden\" name=\"name\" value=\"Example T-Shirt\" \u002F>\n\u003Cinput type=\"hidden\" name=\"code\" value=\"abc123\" \u002F>\n\u003Cinput type=\"hidden\" name=\"price\" value=\"25\" \u002F>\n\u003Cinput type=\"hidden\" name=\"2:name\" value=\"Baseball Hat\" \u002F>\n\u003Cinput type=\"hidden\" name=\"2:code\" value=\"hat123\" \u002F>\n\u003Cinput type=\"hidden\" name=\"2:price\" value=\"15\" \u002F>\n",{"type":327,"attrs":370,"content":371},{"textAlign":59},[372,374,378],{"text":373,"type":332},"The hashes are generated without the ",{"text":375,"type":332,"marks":376},"2:",[377],{"type":337},{"text":379,"type":332}," prefix:",{"type":364,"attrs":381,"content":382},{"class":59},[383],{"text":384,"type":332},"hash_hmac('sha256', 'abc123nameExample T-Shirt', $api_key); \u002F\u002F First product\nhash_hmac('sha256', 'hat123nameBaseball Hat', $api_key);    \u002F\u002F Second product — no \"2:\" prefix\n",{"type":327,"attrs":386,"content":387},{"textAlign":59},[388],{"text":389,"type":332},"The signed form inputs look like this:",{"type":364,"attrs":391,"content":392},{"class":59},[393],{"text":394,"type":332},"\u003Cinput type=\"hidden\" name=\"name||[hash]\" value=\"Example T-Shirt\" \u002F>\n\u003Cinput type=\"hidden\" name=\"code||[hash]\" value=\"abc123\" \u002F>\n\u003Cinput type=\"hidden\" name=\"price||[hash]\" value=\"25\" \u002F>\n\u003Cinput type=\"hidden\" name=\"2:name||[hash]\" value=\"Baseball Hat\" \u002F>\n\u003Cinput type=\"hidden\" name=\"2:code||[hash]\" value=\"hat123\" \u002F>\n\u003Cinput type=\"hidden\" name=\"2:price||[hash]\" value=\"15\" \u002F>\n",{"type":327,"attrs":396,"content":397},{"textAlign":59},[398,400,404],{"text":399,"type":332},"The numeric prefix is kept in the ",{"text":401,"type":332,"marks":402},"name",[403],{"type":337},{"text":405,"type":332}," attribute of the input — it is only excluded from the string passed to the hash function.",{"type":347,"attrs":407,"content":408},{"level":349,"textAlign":59},[409],{"text":410,"type":332},"Notes",{"type":412,"content":413},"bullet_list",[414,438,459],{"type":415,"content":416},"list_item",[417],{"type":327,"attrs":418,"content":419},{"textAlign":59},[420,422,426,428,432,433,436],{"text":421,"type":332},"A product with no numeric prefix is treated by Foxy as ",{"text":423,"type":332,"marks":424},"1:",[425],{"type":337},{"text":427,"type":332},". It is good practice to prefix all products explicitly (e.g. ",{"text":429,"type":332,"marks":430},"1:name",[431],{"type":337},{"text":339,"type":332},{"text":334,"type":332,"marks":434},[435],{"type":337},{"text":437,"type":332},") to avoid any ambiguity.",{"type":415,"content":439},[440],{"type":327,"attrs":441,"content":442},{"textAlign":59},[443,445,448,450,457],{"text":444,"type":332},"Each product’s parameters are still hashed using only that product’s own ",{"text":337,"type":332,"marks":446},[447],{"type":337},{"text":449,"type":332}," — not a combined code. For bundled products within a multi-product form, see ",{"text":451,"type":332,"marks":452},"Sign bundled products with HMAC",[453],{"type":454,"attrs":455},"link",{"href":456,"uuid":59,"anchor":59,"target":59,"linktype":31},"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Fsign-bundled-products-with-hmac",{"text":458,"type":332},".",{"type":415,"content":460},[461],{"type":327,"attrs":462,"content":463},{"textAlign":59},[464,466,470,472,478],{"text":465,"type":332},"All other signing rules apply — every parameter must be signed, open fields use ",{"text":467,"type":332,"marks":468},"--OPEN--",[469],{"type":337},{"text":471,"type":332},", and select\u002Fradio inputs use the value attribute. See ",{"text":473,"type":332,"marks":474},"Sign product forms with HMAC",[475],{"type":454,"attrs":476},{"href":477,"uuid":59,"anchor":59,"target":59,"linktype":31},"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Fsign-product-forms-with-hmac",{"text":458,"type":332},{"id":59,"alt":59,"name":13,"focus":59,"title":59,"source":59,"filename":13,"copyright":59,"fieldtype":81,"meta_data":480},{},"How to sign add to cart forms that add more than one product at a time using HMAC.","ff9269e2-2402-422e-aa80-19acc150b78a",[],"sign-multiple-products-in-one-form-with-hmac","help\u002Farticles\u002Fsign-multiple-products-in-one-form-with-hmac",-2520,[],2659,"8be11f4f-045e-4211-828a-cd56cec8d441",[],{"html":492,"sections":493,"segments":499},"\u003Cp>Foxy supports adding multiple products in a single form submission using numeric prefixes on parameter names (e.g. \u003Ccode class=\"badge bg-soft-danger text-danger\">2:name\u003C\u002Fcode>, \u003Ccode class=\"badge bg-soft-danger text-danger\">2:price\u003C\u002Fcode>). When signing these forms with HMAC, generate the hash without the numeric prefix.\u003C\u002Fp>\u003Csection id=\"how-it-works\" data-title=\"How it works\" data-title-node=\"H2\">\u003Chr class=\"my-8\" style=\"margin-left: -48px; margin-right: -40vw\">\u003Ch2 data-anchor-id=\"how-it-works\">How it works\u003C\u002Fh2>\u003Cp>Strip the numeric prefix before generating the hash. The prefix is only used to group parameters in the form — it is not part of the value Foxy verifies against.\u003C\u002Fp>\u003Cp>For example, a form with two products:\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>\u003Cspan class=\"hljs-tag\">&lt;\u003Cspan class=\"hljs-name\">input\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">type\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;hidden&quot;\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">name\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;name&quot;\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">value\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;Example T-Shirt&quot;\u003C\u002Fspan> \u002F&gt;\u003C\u002Fspan>\n\u003Cspan class=\"hljs-tag\">&lt;\u003Cspan class=\"hljs-name\">input\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">type\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;hidden&quot;\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">name\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;code&quot;\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">value\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;abc123&quot;\u003C\u002Fspan> \u002F&gt;\u003C\u002Fspan>\n\u003Cspan class=\"hljs-tag\">&lt;\u003Cspan class=\"hljs-name\">input\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">type\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;hidden&quot;\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">name\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;price&quot;\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">value\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;25&quot;\u003C\u002Fspan> \u002F&gt;\u003C\u002Fspan>\n\u003Cspan class=\"hljs-tag\">&lt;\u003Cspan class=\"hljs-name\">input\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">type\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;hidden&quot;\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">name\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;2:name&quot;\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">value\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;Baseball Hat&quot;\u003C\u002Fspan> \u002F&gt;\u003C\u002Fspan>\n\u003Cspan class=\"hljs-tag\">&lt;\u003Cspan class=\"hljs-name\">input\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">type\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;hidden&quot;\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">name\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;2:code&quot;\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">value\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;hat123&quot;\u003C\u002Fspan> \u002F&gt;\u003C\u002Fspan>\n\u003Cspan class=\"hljs-tag\">&lt;\u003Cspan class=\"hljs-name\">input\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">type\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;hidden&quot;\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">name\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;2:price&quot;\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">value\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;15&quot;\u003C\u002Fspan> \u002F&gt;\u003C\u002Fspan>\n\u003C\u002Fpre>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cp>The hashes are generated without the \u003Ccode class=\"badge bg-soft-danger text-danger\">2:\u003C\u002Fcode> prefix:\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;abc123nameExample T-Shirt&#x27;, $api_key); \u002F\u002F First product\nhash_hmac(&#x27;sha256&#x27;, &#x27;hat123nameBaseball Hat&#x27;, $api_key);    \u002F\u002F Second product — no &quot;2:&quot; prefix\n\u003C\u002Fpre>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cp>The signed form inputs look like this:\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>\u003Cspan class=\"hljs-tag\">&lt;\u003Cspan class=\"hljs-name\">input\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">type\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;hidden&quot;\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">name\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;name||[hash]&quot;\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">value\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;Example T-Shirt&quot;\u003C\u002Fspan> \u002F&gt;\u003C\u002Fspan>\n\u003Cspan class=\"hljs-tag\">&lt;\u003Cspan class=\"hljs-name\">input\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">type\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;hidden&quot;\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">name\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;code||[hash]&quot;\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">value\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;abc123&quot;\u003C\u002Fspan> \u002F&gt;\u003C\u002Fspan>\n\u003Cspan class=\"hljs-tag\">&lt;\u003Cspan class=\"hljs-name\">input\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">type\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;hidden&quot;\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">name\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;price||[hash]&quot;\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">value\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;25&quot;\u003C\u002Fspan> \u002F&gt;\u003C\u002Fspan>\n\u003Cspan class=\"hljs-tag\">&lt;\u003Cspan class=\"hljs-name\">input\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">type\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;hidden&quot;\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">name\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;2:name||[hash]&quot;\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">value\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;Baseball Hat&quot;\u003C\u002Fspan> \u002F&gt;\u003C\u002Fspan>\n\u003Cspan class=\"hljs-tag\">&lt;\u003Cspan class=\"hljs-name\">input\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">type\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;hidden&quot;\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">name\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;2:code||[hash]&quot;\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">value\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;hat123&quot;\u003C\u002Fspan> \u002F&gt;\u003C\u002Fspan>\n\u003Cspan class=\"hljs-tag\">&lt;\u003Cspan class=\"hljs-name\">input\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">type\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;hidden&quot;\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">name\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;2:price||[hash]&quot;\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">value\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;15&quot;\u003C\u002Fspan> \u002F&gt;\u003C\u002Fspan>\n\u003C\u002Fpre>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cp>The numeric prefix is kept in the \u003Ccode class=\"badge bg-soft-danger text-danger\">name\u003C\u002Fcode> attribute of the input — it is only excluded from the string passed to the hash function.\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>A product with no numeric prefix is treated by Foxy as \u003Ccode class=\"badge bg-soft-danger text-danger\">1:\u003C\u002Fcode>. It is good practice to prefix all products explicitly (e.g. \u003Ccode class=\"badge bg-soft-danger text-danger\">1:name\u003C\u002Fcode>, \u003Ccode class=\"badge bg-soft-danger text-danger\">2:name\u003C\u002Fcode>) to avoid any ambiguity.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>Each product’s parameters are still hashed using only that product’s own \u003Ccode class=\"badge bg-soft-danger text-danger\">code\u003C\u002Fcode> — not a combined code. For bundled products within a multi-product form, 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>All other signing rules apply — every parameter must be signed, open fields use \u003Ccode class=\"badge bg-soft-danger text-danger\">--OPEN--\u003C\u002Fcode>, and select\u002Fradio inputs use the value attribute. See \u003Ca href=\"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Fsign-product-forms-with-hmac\" class=\"\">Sign product forms with HMAC\u003C\u002Fa>.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003C\u002Fsection>",[494,497],{"id":495,"title":352,"level":496},"how-it-works","H2",{"id":498,"title":410,"level":496},"notes",[500],{"type":501,"content":502},"html","\u003Cp>Foxy supports adding multiple products in a single form submission using numeric prefixes on parameter names (e.g. \u003Ccode class=\"badge bg-soft-danger text-danger\">2:name\u003C\u002Fcode>, \u003Ccode class=\"badge bg-soft-danger text-danger\">2:price\u003C\u002Fcode>). When signing these forms with HMAC, generate the hash without the numeric prefix.\u003C\u002Fp>\u003Ch2>How it works\u003C\u002Fh2>\u003Cp>Strip the numeric prefix before generating the hash. The prefix is only used to group parameters in the form — it is not part of the value Foxy verifies against.\u003C\u002Fp>\u003Cp>For example, a form with two products:\u003C\u002Fp>\u003Cpre>\u003Ccode>&lt;input type=&quot;hidden&quot; name=&quot;name&quot; value=&quot;Example T-Shirt&quot; \u002F&gt;\n&lt;input type=&quot;hidden&quot; name=&quot;code&quot; value=&quot;abc123&quot; \u002F&gt;\n&lt;input type=&quot;hidden&quot; name=&quot;price&quot; value=&quot;25&quot; \u002F&gt;\n&lt;input type=&quot;hidden&quot; name=&quot;2:name&quot; value=&quot;Baseball Hat&quot; \u002F&gt;\n&lt;input type=&quot;hidden&quot; name=&quot;2:code&quot; value=&quot;hat123&quot; \u002F&gt;\n&lt;input type=&quot;hidden&quot; name=&quot;2:price&quot; value=&quot;15&quot; \u002F&gt;\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>The hashes are generated without the \u003Ccode class=\"badge bg-soft-danger text-danger\">2:\u003C\u002Fcode> prefix:\u003C\u002Fp>\u003Cpre>\u003Ccode>hash_hmac(&#039;sha256&#039;, &#039;abc123nameExample T-Shirt&#039;, $api_key); \u002F\u002F First product\nhash_hmac(&#039;sha256&#039;, &#039;hat123nameBaseball Hat&#039;, $api_key);    \u002F\u002F Second product — no &quot;2:&quot; prefix\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>The signed form inputs look like this:\u003C\u002Fp>\u003Cpre>\u003Ccode>&lt;input type=&quot;hidden&quot; name=&quot;name||[hash]&quot; value=&quot;Example T-Shirt&quot; \u002F&gt;\n&lt;input type=&quot;hidden&quot; name=&quot;code||[hash]&quot; value=&quot;abc123&quot; \u002F&gt;\n&lt;input type=&quot;hidden&quot; name=&quot;price||[hash]&quot; value=&quot;25&quot; \u002F&gt;\n&lt;input type=&quot;hidden&quot; name=&quot;2:name||[hash]&quot; value=&quot;Baseball Hat&quot; \u002F&gt;\n&lt;input type=&quot;hidden&quot; name=&quot;2:code||[hash]&quot; value=&quot;hat123&quot; \u002F&gt;\n&lt;input type=&quot;hidden&quot; name=&quot;2:price||[hash]&quot; value=&quot;15&quot; \u002F&gt;\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>The numeric prefix is kept in the \u003Ccode class=\"badge bg-soft-danger text-danger\">name\u003C\u002Fcode> attribute of the input — it is only excluded from the string passed to the hash function.\u003C\u002Fp>\u003Ch2>Notes\u003C\u002Fh2>\u003Cul>\u003Cli>\u003Cp>A product with no numeric prefix is treated by Foxy as \u003Ccode class=\"badge bg-soft-danger text-danger\">1:\u003C\u002Fcode>. It is good practice to prefix all products explicitly (e.g. \u003Ccode class=\"badge bg-soft-danger text-danger\">1:name\u003C\u002Fcode>, \u003Ccode class=\"badge bg-soft-danger text-danger\">2:name\u003C\u002Fcode>) to avoid any ambiguity.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>Each product’s parameters are still hashed using only that product’s own \u003Ccode class=\"badge bg-soft-danger text-danger\">code\u003C\u002Fcode> — not a combined code. For bundled products within a multi-product form, 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>All other signing rules apply — every parameter must be signed, open fields use \u003Ccode class=\"badge bg-soft-danger text-danger\">--OPEN--\u003C\u002Fcode>, and select\u002Fradio inputs use the value attribute. See \u003Ca href=\"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Fsign-product-forms-with-hmac\" class=\"\">Sign product forms with HMAC\u003C\u002Fa>.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>",{"name":504,"created_at":505,"published_at":506,"updated_at":507,"id":508,"uuid":47,"content":509,"slug":48,"full_slug":48,"sort_by_date":59,"position":687,"tag_list":688,"is_startpage":24,"parent_id":59,"meta_data":59,"group_id":689,"first_published_at":690,"release_id":59,"lang":65,"path":59,"alternates":691,"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":510,"_uid":513,"title":514,"action":515,"fields":516,"method":663,"columns":664,"subtitle":678,"component":48,"button_text":684,"submit_title":685,"submit_subtitle":686},{"_uid":511,"title":504,"plugin":512,"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",[517,521,525,634,637,642,657],{"_uid":518,"name":401,"type":332,"label":519,"options":13,"required":33,"component":520,"placeholder":13},"9a70b226-2036-4f90-a052-b3efa61c5896","Name","form___field",{"_uid":522,"name":523,"type":523,"label":524,"options":13,"required":33,"component":520,"placeholder":13},"86ba35be-ff43-4a28-8633-14052a8f6622","email","Email Address",{"_uid":526,"name":527,"type":528,"label":529,"options":530,"required":33,"component":520,"conditions":531,"placeholder":13},"3f827475-492c-4f97-aa1e-2386ac263b6c","topic","select","Topic","Presales, Support, Billing, Partnerships, Order Enquiry, Other",[532,588,598,605,613,621,627],{"_uid":533,"equals":534,"fields":535,"component":587},"e21d97dd-e68e-4fa6-ba97-bc40f3041dde","Order Enquiry",[536],{"_uid":537,"body":538,"type":585,"title":13,"component":586},"b64992bc-6d53-48b8-b7a0-d81e5a062e50",{"type":324,"content":539},[540],{"type":327,"content":541},[542,544,551,553,555,556,561,563,568,576,578,583],{"text":543,"type":332},"We are ",{"text":545,"type":332,"marks":546},"Foxy.io",[547],{"type":454,"attrs":548},{"href":549,"uuid":59,"anchor":59,"custom":550,"target":59,"linktype":31},"http:\u002F\u002FFoxy.io",{},{"text":552,"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":554},"hard_break",{"type":554},{"text":557,"type":332,"marks":558},"NOTE:",[559],{"type":560},"bold",{"text":562,"type":332}," We are ",{"text":564,"type":332,"marks":565},"not ",[566],{"type":567},"italic",{"text":569,"type":332,"marks":570},"Foxy.in",[571,575],{"type":454,"attrs":572},{"href":573,"uuid":59,"anchor":59,"custom":574,"target":59,"linktype":31},"http:\u002F\u002FFoxy.in",{},{"type":567},{"text":577,"type":332},". We are not in any way affiliated with ",{"text":569,"type":332,"marks":579},[580],{"type":454,"attrs":581},{"href":573,"uuid":59,"anchor":59,"custom":582,"target":59,"linktype":31},{},{"text":584,"type":332},", and cannot help in any way with your order from that website.","danger","global___alert","form___condition",{"_uid":589,"equals":590,"fields":591,"component":587},"8765c3e1-25cf-44aa-b8ea-fc6094acf9c3","Presales",[592],{"_uid":593,"name":594,"type":595,"label":13,"options":13,"required":24,"component":520,"conditions":596,"placeholder":13,"default_value":597},"cf464f8e-d643-4f6e-af29-d3abffaf7380","department_email_address","hidden",[],"hello@foxy.io",{"_uid":599,"equals":208,"fields":600,"component":587},"4007b6d8-77e5-421d-bd1e-6f336dd853fb",[601],{"_uid":602,"name":594,"type":595,"label":13,"options":13,"required":24,"component":520,"conditions":603,"placeholder":13,"default_value":604},"7b4c6aa5-a68c-45e0-9ce1-0a36af10c0c2",[],"help@foxy.io",{"_uid":606,"equals":607,"fields":608,"component":587},"1dbb8f11-613d-43cd-9e09-1b94f6e19219","Billing",[609],{"_uid":610,"name":594,"type":595,"label":13,"options":13,"required":24,"component":520,"conditions":611,"placeholder":13,"default_value":612},"a0ac0d1b-bc4f-4a6c-a682-581d450b0b73",[],"help+billing@foxy.io",{"_uid":614,"equals":615,"fields":616,"component":587},"a0a53a50-7172-4a29-ba58-181e38874e12","Partnerships",[617],{"_uid":618,"name":594,"type":595,"label":13,"options":13,"required":24,"component":520,"conditions":619,"placeholder":13,"default_value":620},"7aa011d9-f374-4aed-b5a5-929b54aaf152",[],"partners@foxy.io",{"_uid":622,"equals":534,"fields":623,"component":587},"a4cd431f-25d5-41c7-bfdc-02c908c8fb47",[624],{"_uid":625,"name":594,"type":595,"label":13,"options":13,"required":24,"component":520,"conditions":626,"placeholder":13,"default_value":597},"f5d52168-d6ae-451b-94ee-2ced1cbd28ad",[],{"_uid":628,"equals":629,"fields":630,"component":587},"25aba1ed-eb41-4bbc-aa89-f7a7167ea86e","Other",[631],{"_uid":632,"name":594,"type":595,"label":13,"options":13,"required":24,"component":520,"conditions":633,"placeholder":13,"default_value":597},"f40dfaef-c203-4b71-bf4e-e1b43cef192b",[],{"_uid":635,"component":636},"e9c53a05-f40a-4510-aaf8-bc072a235a0c","form___subject",{"_uid":638,"name":639,"type":640,"label":641,"options":13,"required":33,"component":520,"placeholder":13},"a4c4d385-fff4-4978-99fb-b68cfea623d6","message","textarea","Message",{"_uid":643,"name":644,"type":528,"label":645,"options":646,"required":33,"component":520,"conditions":647,"placeholder":13},"8a3c9f85-f438-427d-9c7a-d7b295a14b5b","existing_user","Are you an existing user?","No, Yes",[648],{"_uid":649,"equals":650,"fields":651,"component":587},"115933d6-262a-4b59-8fa8-579c5ad73de1","Yes",[652],{"_uid":653,"name":654,"type":332,"label":655,"options":13,"required":33,"component":520,"conditions":656,"placeholder":13},"44b6ff23-98f0-4e95-b7f5-c23e06415c2d","subdomain","Store Subdomain",[],{"_uid":658,"name":659,"type":528,"label":660,"options":661,"required":33,"component":520,"conditions":662,"placeholder":13},"922a5cef-3af2-4113-8855-36c7910e3ee3","user_type","What type of user are you?","Developer, Designer, Merchant",[],"POST",[665],{"_uid":666,"text":667,"title":676,"component":677},"7323b90d-a93a-4bf1-baa9-20d0b7ead61b",{"type":324,"content":668},[669],{"type":327,"content":670},[671,673,674],{"text":672,"type":332},"855.369.9227",{"type":554},{"text":675,"type":332},"9:30am-6pm Central M-F","Pre-sales, Sales, & Partnerships","contact___footer_column",{"type":324,"content":679},[680],{"type":327,"content":681},[682],{"text":683,"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,693,721],{"name":694,"created_at":695,"published_at":696,"updated_at":697,"id":698,"uuid":699,"content":700,"slug":714,"full_slug":715,"sort_by_date":59,"position":716,"tag_list":717,"is_startpage":24,"parent_id":310,"meta_data":59,"group_id":718,"first_published_at":719,"release_id":59,"lang":65,"path":59,"alternates":720,"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":701,"icon":702,"name":694,"guides":703,"pinned":24,"summary":704,"category":13,"component":297,"blog_posts":705,"content_hub":24,"icon_custom":706,"case_studies":707,"faq_sections":708,"help_articles":709,"featured_guides":710,"mailbox_category":13,"featured_articles":711,"featured_blog_posts":712,"featured_case_studies":713},"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":722,"created_at":723,"published_at":724,"updated_at":725,"id":726,"uuid":482,"content":727,"slug":740,"full_slug":741,"sort_by_date":59,"position":742,"tag_list":743,"is_startpage":24,"parent_id":310,"meta_data":59,"group_id":744,"first_published_at":724,"release_id":59,"lang":65,"path":59,"alternates":745,"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":728,"icon":13,"name":722,"type":729,"pinned":24,"summary":730,"category":699,"component":297,"blog_posts":731,"icon_custom":732,"case_studies":734,"faq_sections":735,"featured_guides":736,"mailbox_category":13,"featured_articles":737,"featured_blog_posts":738,"featured_case_studies":739},"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":733},{},[],[],[],[],[],[],"product-security","help\u002Fcategories\u002Fproduct-security",-420,[],"9b6ea296-0666-48d6-b896-39e524ea24ac",[],{},1784562224484]