[{"data":1,"prerenderedAt":1221},["ShallowReactive",2],{"header:help":3,"footer:default":67,"story:navigation\u002Fsearch:help":250,"story:help\u002Fcategories":288,"story:help\u002Fcategories\u002Ftransaction-webhook-legacy":314,"help:guides:e8d2f9b0-fa4e-4565-8b61-b3d5aa5ce513":341,"help:categories:e8d2f9b0-fa4e-4565-8b61-b3d5aa5ce513":342,"help:tree:e8d2f9b0-fa4e-4565-8b61-b3d5aa5ce513":343,"help:articles:e8d2f9b0-fa4e-4565-8b61-b3d5aa5ce513":368,"story:contact":1031,"_apollo:default":1220},{"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":335,"full_slug":336,"sort_by_date":59,"position":337,"tag_list":338,"is_startpage":24,"parent_id":310,"meta_data":59,"group_id":339,"first_published_at":317,"release_id":59,"lang":65,"path":59,"alternates":340,"default_full_slug":59,"translated_slugs":59},"Transaction Webhook (Legacy)","2026-07-20T19:38:44.711Z","2026-07-20T19:41:26.417Z","2026-07-20T19:41:26.430Z",200240024467272,"e8d2f9b0-fa4e-4565-8b61-b3d5aa5ce513",{"_uid":322,"icon":13,"name":315,"type":323,"pinned":24,"summary":324,"category":325,"component":297,"blog_posts":326,"icon_custom":327,"case_studies":329,"faq_sections":330,"featured_guides":331,"mailbox_category":13,"featured_articles":332,"featured_blog_posts":333,"featured_case_studies":334},"37b0e372-28ce-41d0-ab2c-1af017ea8ce5","simple","Set up and verify payloads from the legacy JSON webhook, replaced by the current transaction webhook.","5f8f8006-b68e-4a03-8638-2d28a556726e",[],{"id":59,"alt":59,"name":13,"focus":59,"title":59,"source":59,"filename":13,"copyright":59,"fieldtype":81,"meta_data":328},{},[],[],[],[],[],[],"transaction-webhook-legacy","help\u002Fcategories\u002Ftransaction-webhook-legacy",-780,[],"5cbd4acd-a81b-400c-a30c-3af22768e9ea",[],[],[],[288,344],{"name":345,"created_at":346,"published_at":347,"updated_at":348,"id":349,"uuid":325,"content":350,"slug":362,"full_slug":363,"sort_by_date":59,"position":364,"tag_list":365,"is_startpage":24,"parent_id":310,"meta_data":59,"group_id":366,"first_published_at":347,"release_id":59,"lang":65,"path":59,"alternates":367,"default_full_slug":59,"translated_slugs":59},"Webhooks","2026-07-20T19:37:26.231Z","2026-07-20T19:41:27.137Z","2026-07-20T19:41:27.157Z",200239703052833,{"_uid":351,"icon":13,"name":345,"type":323,"pinned":24,"summary":352,"category":13,"component":297,"blog_posts":353,"icon_custom":354,"case_studies":356,"faq_sections":357,"featured_guides":358,"mailbox_category":13,"featured_articles":359,"featured_blog_posts":360,"featured_case_studies":361},"c8a9b798-94ba-4a83-9ba5-c851b17946df","Send real-time event notifications to your own endpoint when transactions, subscriptions, and customers change.",[],{"id":59,"alt":59,"name":13,"focus":59,"title":59,"source":59,"filename":13,"copyright":59,"fieldtype":81,"meta_data":355},{},[],[],[],[],[],[],"webhooks","help\u002Fcategories\u002Fwebhooks",-750,[],"c59e6243-064a-4f06-a367-c14a15c02ff3",[],[369,507,645],{"name":370,"created_at":371,"published_at":372,"updated_at":373,"id":374,"uuid":375,"content":376,"slug":500,"full_slug":501,"sort_by_date":59,"position":502,"tag_list":503,"is_startpage":24,"parent_id":504,"meta_data":59,"group_id":505,"first_published_at":372,"release_id":59,"lang":65,"path":59,"alternates":506,"default_full_slug":59,"translated_slugs":59},"Create a legacy webhook","2026-07-20T20:09:31.662Z","2026-07-20T20:30:29.807Z","2026-07-20T20:30:29.821Z",200247589574509,"cd9507b0-d101-4aa1-9a04-327bb654e640",{"_uid":377,"body":378,"name":370,"image":496,"pinned":24,"summary":498,"category":320,"component":266,"related_articles":499},"340277ba-b7ce-447e-874c-beab50db68d4",{"type":379,"content":380},"doc",[381,397,404,483],{"type":382,"attrs":383,"content":384},"paragraph",{"textAlign":59},[385,388,395],{"text":386,"type":387},"The following is for the legacy webhook functionality. If you’re creating a new webhook, use ","text",{"text":389,"type":387,"marks":390},"Create a transaction webhook",[391],{"type":392,"attrs":393},"link",{"href":394,"uuid":59,"anchor":59,"target":59,"linktype":31},"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Fcreate-a-transaction-webhook",{"text":396,"type":387}," instead.",{"type":398,"attrs":399,"content":401},"heading",{"level":400,"textAlign":59},2,[402],{"text":403,"type":387},"Steps",{"type":405,"attrs":406,"content":408},"ordered_list",{"order":407},1,[409,424,437,444,457,470],{"type":410,"content":411},"list_item",[412],{"type":382,"attrs":413,"content":414},{"textAlign":59},[415,417,422],{"text":416,"type":387},"Go to the ",{"text":418,"type":387,"marks":419},"Integrations",[420],{"type":421},"bold",{"text":423,"type":387}," section of your store’s administration.",{"type":410,"content":425},[426],{"type":382,"attrs":427,"content":428},{"textAlign":59},[429,431,435],{"text":430,"type":387},"Enable the ",{"text":432,"type":387,"marks":433},"JSON Webhooks",[434],{"type":421},{"text":436,"type":387}," checkbox.",{"type":410,"content":438},[439],{"type":382,"attrs":440,"content":441},{"textAlign":59},[442],{"text":443,"type":387},"Enter a name to identify the webhook, and the URL of the endpoint that will receive the payload.",{"type":410,"content":445},[446],{"type":382,"attrs":447,"content":448},{"textAlign":59},[449,451,455],{"text":450,"type":387},"An encryption key is set automatically. To use your own, click ",{"text":452,"type":387,"marks":453},"Show secret",[454],{"type":421},{"text":456,"type":387}," and enter your own secure key.",{"type":410,"content":458},[459],{"type":382,"attrs":460,"content":461},{"textAlign":59},[462,464,468],{"text":463,"type":387},"To add additional endpoints, click ",{"text":465,"type":387,"marks":466},"Add one more URL",[467],{"type":421},{"text":469,"type":387},".",{"type":410,"content":471},[472],{"type":382,"attrs":473,"content":474},{"textAlign":59},[475,477,481],{"text":476,"type":387},"Click ",{"text":478,"type":387,"marks":479},"Update Webhooks",[480],{"type":421},{"text":482,"type":387}," to save.",{"type":382,"attrs":484,"content":485},{"textAlign":59},[486,488,494],{"text":487,"type":387},"See ",{"text":489,"type":387,"marks":490},"Legacy webhook events reference",[491],{"type":392,"attrs":492},{"href":493,"uuid":59,"anchor":59,"target":59,"linktype":31},"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Flegacy-webhook-events-reference",{"text":495,"type":387}," for the events this webhook can trigger on.",{"id":59,"alt":59,"name":13,"focus":59,"title":59,"source":59,"filename":13,"copyright":59,"fieldtype":81,"meta_data":497},{},"How to create a legacy JSON webhook and which events it supports.",[],"create-a-legacy-webhook","help\u002Farticles\u002Fcreate-a-legacy-webhook",-3910,[],2659,"c1a2bc3e-b8db-4210-851b-18f0d3c4e127",[],{"name":489,"created_at":508,"published_at":509,"updated_at":510,"id":511,"uuid":512,"content":513,"slug":639,"full_slug":640,"sort_by_date":59,"position":641,"tag_list":642,"is_startpage":24,"parent_id":504,"meta_data":59,"group_id":643,"first_published_at":509,"release_id":59,"lang":65,"path":59,"alternates":644,"default_full_slug":59,"translated_slugs":59},"2026-07-20T20:10:45.957Z","2026-07-20T20:30:28.805Z","2026-07-20T20:30:28.821Z",200247893890927,"f9c2acab-af7b-46dd-b732-6d72951ad1d2",{"_uid":514,"body":515,"name":489,"image":635,"pinned":24,"summary":637,"category":320,"component":266,"related_articles":638},"4ca3387a-e893-4f6d-8a22-4fca73c81a1c",{"type":379,"content":516},[517],{"type":518,"content":519},"table",[520,540,559,577,620],{"type":521,"content":522},"tableRow",[523,532],{"type":524,"attrs":525,"content":526},"tableHeader",{"colspan":407,"rowspan":407,"colwidth":59},[527],{"type":382,"attrs":528,"content":529},{"textAlign":59},[530],{"text":531,"type":387},"Event",{"type":524,"attrs":533,"content":534},{"colspan":407,"rowspan":407,"colwidth":59},[535],{"type":382,"attrs":536,"content":537},{"textAlign":59},[538],{"text":539,"type":387},"Triggered when",{"type":521,"content":541},[542,551],{"type":543,"attrs":544,"content":545},"tableCell",{"colspan":407,"rowspan":407,"colwidth":59,"backgroundColor":59},[546],{"type":382,"attrs":547,"content":548},{"textAlign":59},[549],{"text":550,"type":387},"Transaction Created",{"type":543,"attrs":552,"content":553},{"colspan":407,"rowspan":407,"colwidth":59,"backgroundColor":59},[554],{"type":382,"attrs":555,"content":556},{"textAlign":59},[557],{"text":558,"type":387},"Any transaction for the store — a new transaction, a subscription renewal, a customer info update, or a customer-initiated subscription cancel (which sets a future subscription end date). All of these generate a transaction, so all are sent to the endpoint",{"type":521,"content":560},[561,569],{"type":543,"attrs":562,"content":563},{"colspan":407,"rowspan":407,"colwidth":59,"backgroundColor":59},[564],{"type":382,"attrs":565,"content":566},{"textAlign":59},[567],{"text":568,"type":387},"Transaction Captured \u002F Refunded \u002F Voided",{"type":543,"attrs":570,"content":571},{"colspan":407,"rowspan":407,"colwidth":59,"backgroundColor":59},[572],{"type":382,"attrs":573,"content":574},{"textAlign":59},[575],{"text":576,"type":387},"Relies on beta transaction editing functionality, enabled per store. Fires when an existing transaction is manually captured, refunded, or voided — through the transaction report section of the administration, or through the API. The Captured event here applies to a previously uncaptured transaction (verified or authorized) that is then manually captured. The original transaction would already have triggered Transaction Created; this event reflects the change in payment status",{"type":521,"content":578},[579,587],{"type":543,"attrs":580,"content":581},{"colspan":407,"rowspan":407,"colwidth":59,"backgroundColor":59},[582],{"type":382,"attrs":583,"content":584},{"textAlign":59},[585],{"text":586,"type":387},"Subscription Cancelled",{"type":543,"attrs":588,"content":589},{"colspan":407,"rowspan":407,"colwidth":59,"backgroundColor":59},[590],{"type":382,"attrs":591,"content":592},{"textAlign":59},[593,595,600,602,606,608,612,614,618],{"text":594,"type":387},"Fires when a subscription actually ends, on its end date. Subscriptions made inactive directly via the administration or API do not trigger this event. Customers completing a ",{"text":596,"type":387,"marks":597},"sub_cancel",[598],{"type":599},"code",{"text":601,"type":387}," checkout also don’t trigger it — that sets the subscription’s end date to tomorrow or the next transaction date (depending on store settings) and instead triggers a Transaction Created event, with a ",{"text":603,"type":387,"marks":604},"transaction_type",[605],{"type":599},{"text":607,"type":387}," of ",{"text":609,"type":387,"marks":610},"subscription_cancellation",[611],{"type":599},{"text":613,"type":387}," and the new ",{"text":615,"type":387,"marks":616},"subscription_end_date",[617],{"type":599},{"text":619,"type":387}," set on the subscription product",{"type":521,"content":621},[622,630],{"type":543,"attrs":623,"content":624},{"colspan":407,"rowspan":407,"colwidth":59,"backgroundColor":59},[625],{"type":382,"attrs":626,"content":627},{"textAlign":59},[628],{"text":629,"type":387},"\u003C\u002Fparameter>",{"type":543,"attrs":631,"content":632},{"colspan":407,"rowspan":407,"colwidth":59,"backgroundColor":59},[633],{"type":382,"attrs":634},{"textAlign":59},{"id":59,"alt":59,"name":13,"focus":59,"title":59,"source":59,"filename":13,"copyright":59,"fieldtype":81,"meta_data":636},{},"The events the legacy JSON webhook supports, and how each one is triggered.",[],"legacy-webhook-events-reference","help\u002Farticles\u002Flegacy-webhook-events-reference",-3920,[],"f01dfdef-b331-4c97-ac8d-19871fd57bef",[],{"name":646,"created_at":647,"published_at":648,"updated_at":649,"id":650,"uuid":651,"content":652,"slug":1025,"full_slug":1026,"sort_by_date":59,"position":1027,"tag_list":1028,"is_startpage":24,"parent_id":504,"meta_data":59,"group_id":1029,"first_published_at":648,"release_id":59,"lang":65,"path":59,"alternates":1030,"default_full_slug":59,"translated_slugs":59},"Verify and decrypt a legacy webhook payload","2026-07-20T20:12:40.865Z","2026-07-20T20:30:27.769Z","2026-07-20T20:30:27.788Z",200248364550000,"28cc0197-ada9-4bc1-8f15-0c510581d86b",{"_uid":653,"body":654,"name":646,"image":1021,"pinned":24,"summary":1023,"category":320,"component":266,"related_articles":1024},"a33f195f-6a8d-487c-bad0-7ffb5ecbe3bc",{"type":379,"content":655},[656,661,666,671,816,821,837,842,848,853,901,905,910,915,926,931,980,985,990,995,1000,1005],{"type":382,"attrs":657,"content":658},{"textAlign":59},[659],{"text":660,"type":387},"Once configured, a JSON payload is sent to your endpoint whenever a subscribed event occurs. If your endpoint is secured with HTTPS, the payload is sent unencrypted, ready to use. If your endpoint isn’t secured, the payload is encrypted with AES-256-CBC before being sent, and needs to be decrypted before use.",{"type":398,"attrs":662,"content":663},{"level":400,"textAlign":59},[664],{"text":665,"type":387},"Headers",{"type":382,"attrs":667,"content":668},{"textAlign":59},[669],{"text":670,"type":387},"Every legacy webhook request includes these headers:",{"type":518,"content":672},[673,691,736,756,776,796],{"type":521,"content":674},[675,683],{"type":524,"attrs":676,"content":677},{"colspan":407,"rowspan":407,"colwidth":59},[678],{"type":382,"attrs":679,"content":680},{"textAlign":59},[681],{"text":682,"type":387},"Header",{"type":524,"attrs":684,"content":685},{"colspan":407,"rowspan":407,"colwidth":59},[686],{"type":382,"attrs":687,"content":688},{"textAlign":59},[689],{"text":690,"type":387},"Description",{"type":521,"content":692},[693,703],{"type":543,"attrs":694,"content":695},{"colspan":407,"rowspan":407,"colwidth":59,"backgroundColor":59},[696],{"type":382,"attrs":697,"content":698},{"textAlign":59},[699],{"text":700,"type":387,"marks":701},"Foxy-Webhook-Event",[702],{"type":599},{"type":543,"attrs":704,"content":705},{"colspan":407,"rowspan":407,"colwidth":59,"backgroundColor":59},[706],{"type":382,"attrs":707,"content":708},{"textAlign":59},[709,711,715,717,721,722,726,727,731,732],{"text":710,"type":387},"Name of the event that triggered this payload. Currently ",{"text":712,"type":387,"marks":713},"transaction\u002Fcreated",[714],{"type":599},{"text":716,"type":387},", ",{"text":718,"type":387,"marks":719},"transaction\u002Fcaptured",[720],{"type":599},{"text":716,"type":387},{"text":723,"type":387,"marks":724},"transaction\u002Frefunded",[725],{"type":599},{"text":716,"type":387},{"text":728,"type":387,"marks":729},"transaction\u002Fvoided",[730],{"type":599},{"text":716,"type":387},{"text":733,"type":387,"marks":734},"subscription\u002Fcancelled",[735],{"type":599},{"type":521,"content":737},[738,748],{"type":543,"attrs":739,"content":740},{"colspan":407,"rowspan":407,"colwidth":59,"backgroundColor":59},[741],{"type":382,"attrs":742,"content":743},{"textAlign":59},[744],{"text":745,"type":387,"marks":746},"Foxy-Webhook-Signature",[747],{"type":599},{"type":543,"attrs":749,"content":750},{"colspan":407,"rowspan":407,"colwidth":59,"backgroundColor":59},[751],{"type":382,"attrs":752,"content":753},{"textAlign":59},[754],{"text":755,"type":387},"An HMAC SHA256 signature of the payload, using the webhook’s encryption key. Used to verify the contents of the payload",{"type":521,"content":757},[758,768],{"type":543,"attrs":759,"content":760},{"colspan":407,"rowspan":407,"colwidth":59,"backgroundColor":59},[761],{"type":382,"attrs":762,"content":763},{"textAlign":59},[764],{"text":765,"type":387,"marks":766},"Foxy-Webhook-Refeed",[767],{"type":599},{"type":543,"attrs":769,"content":770},{"colspan":407,"rowspan":407,"colwidth":59,"backgroundColor":59},[771],{"type":382,"attrs":772,"content":773},{"textAlign":59},[774],{"text":775,"type":387},"A boolean signifying whether this payload has been refed. If false, this is the first time this instance of the event has been triggered",{"type":521,"content":777},[778,788],{"type":543,"attrs":779,"content":780},{"colspan":407,"rowspan":407,"colwidth":59,"backgroundColor":59},[781],{"type":382,"attrs":782,"content":783},{"textAlign":59},[784],{"text":785,"type":387,"marks":786},"Foxy-Store-ID",[787],{"type":599},{"type":543,"attrs":789,"content":790},{"colspan":407,"rowspan":407,"colwidth":59,"backgroundColor":59},[791],{"type":382,"attrs":792,"content":793},{"textAlign":59},[794],{"text":795,"type":387},"The ID of the store this webhook was triggered for",{"type":521,"content":797},[798,808],{"type":543,"attrs":799,"content":800},{"colspan":407,"rowspan":407,"colwidth":59,"backgroundColor":59},[801],{"type":382,"attrs":802,"content":803},{"textAlign":59},[804],{"text":805,"type":387,"marks":806},"Foxy-Store-Domain",[807],{"type":599},{"type":543,"attrs":809,"content":810},{"colspan":407,"rowspan":407,"colwidth":59,"backgroundColor":59},[811],{"type":382,"attrs":812,"content":813},{"textAlign":59},[814],{"text":815,"type":387},"The store domain this webhook was triggered for",{"type":398,"attrs":817,"content":818},{"level":400,"textAlign":59},[819],{"text":820,"type":387},"Example payloads",{"type":382,"attrs":822,"content":823},{"textAlign":59},[824,826,830,832,835],{"text":825,"type":387},"The payload follows the same structure as the Hypermedia API. Most objects include the API’s ",{"text":827,"type":387,"marks":828},"_links",[829],{"type":599},{"text":831,"type":387}," array, which contains URIs you can use to access the resource in the API if you’re also using it — these can be safely ignored otherwise. In the examples below, ",{"text":827,"type":387,"marks":833},[834],{"type":599},{"text":836,"type":387}," arrays have been cleared out to save space.",{"type":398,"attrs":838,"content":840},{"level":839,"textAlign":59},3,[841],{"text":550,"type":387},{"type":843,"attrs":844,"content":845},"code_block",{"class":59},[846],{"text":847,"type":387},"{\n    \"_embedded\": {\n        \"fx:applied_taxes\": [\n            {\n                \"_links\": { },\n                \"amount\": 2.24,\n                \"apply_to_handling\": true,\n                \"apply_to_shipping\": true,\n                \"date_created\": null,\n                \"date_modified\": null,\n                \"is_future_tax\": false,\n                \"name\": \"Global Tax\",\n                \"rate\": 5,\n                \"shipto\": null\n            }\n        ],\n        \"fx:billing_addresses\": [\n            {\n                \"_links\": { },\n                \"address1\": \"123 Test Street\",\n                \"address2\": \"Level 2\",\n                \"address_name\": \"Default Billing Address\",\n                \"city\": \"SAINT PAUL\",\n                \"company\": \"Some Company\",\n                \"customer_country\": \"US\",\n                \"customer_phone\": \"123456789\",\n                \"customer_postal_code\": \"55115\",\n                \"date_created\": null,\n                \"date_modified\": \"2018-03-01T00:00:00-0700\",\n                \"first_name\": \"John\",\n                \"last_name\": \"Smith\",\n                \"region\": \"MN\"\n            }\n        ],\n        \"fx:custom_fields\": [\n            {\n                \"_links\": { },\n                \"date_created\": null,\n                \"date_modified\": null,\n                \"is_hidden\": true,\n                \"name\": \"custom_attribute\",\n                \"value\": \"reseller\"\n            },\n            {\n                \"_links\": { },\n                \"date_created\": null,\n                \"date_modified\": null,\n                \"is_hidden\": false,\n                \"name\": \"newsletter_subscribe\",\n                \"value\": \"1\"\n            }\n        ],\n        \"fx:customer\": {\n            \"_links\": { },\n            \"date_created\": null,\n            \"date_modified\": null,\n            \"email\": \"john@example.com\",\n            \"first_name\": \"John\",\n            \"forgot_password\": null,\n            \"forgot_password_timestamp\": null,\n            \"id\": 12345,\n            \"is_anonymous\": false,\n            \"last_login_date\": \"2018-03-01T00:00:00-0700\",\n            \"last_name\": \"Smith\",\n            \"password_hash\": \"$2y$13$Jx7p31h18VnW.ab38QaYJu1QCzsyMQZKdY5s21nYewmGQj0OQCyIq\",\n            \"password_hash_config\": \"13\",\n            \"password_hash_type\": \"bcrypt\",\n            \"password_salt\": null,\n            \"tax_id\": null\n        },\n        \"fx:discounts\": [\n            {\n                \"_links\": { },\n                \"amount\": -3.79,\n                \"code\": \"my-code\",\n                \"date_created\": null,\n                \"date_modified\": null,\n                \"display\": \"-$3.79\",\n                \"is_future_discount\": false,\n                \"is_taxable\": false,\n                \"name\": \"Special Offer\"\n            }\n        ],\n        \"fx:items\": [\n            {\n                \"_embedded\": {\n                    \"fx:item_category\": {\n                        \"_links\": { },\n                        \"admin_email\": null,\n                        \"admin_email_template_uri\": null,\n                        \"code\": \"DEFAULT\",\n                        \"customer_email_template_uri\": null,\n                        \"customs_value\": 0,\n                        \"date_created\": null,\n                        \"date_modified\": null,\n                        \"default_length_unit\": \"IN\",\n                        \"default_weight\": 0,\n                        \"default_weight_unit\": \"LBS\",\n                        \"discount_details\": \"single|3-5|5-10\",\n                        \"discount_name\": \"Bulk Order\",\n                        \"discount_type\": \"quantity_percentage\",\n                        \"handling_fee\": 1,\n                        \"handling_fee_minimum\": 0,\n                        \"handling_fee_percentage\": 80,\n                        \"handling_fee_type\": \"none\",\n                        \"item_delivery_type\": \"flat_rate\",\n                        \"max_downloads_per_customer\": 3,\n                        \"max_downloads_time_period\": 24,\n                        \"name\": \"Default for all products\",\n                        \"send_admin_email\": false,\n                        \"send_customer_email\": false,\n                        \"shipping_flat_rate\": 2,\n                        \"shipping_flat_rate_type\": \"per_item\"\n                    },\n                    \"fx:item_options\": [\n                        {\n                            \"_links\": { },\n                            \"date_created\": null,\n                            \"date_modified\": null,\n                            \"name\": \"size\",\n                            \"price_mod\": 0,\n                            \"value\": \"Large\",\n                            \"weight_mod\": 0\n                        },\n                        {\n                            \"_links\": { },\n                            \"date_created\": null,\n                            \"date_modified\": null,\n                            \"name\": \"color\",\n                            \"price_mod\": 0,\n                            \"value\": \"Blue\",\n                            \"weight_mod\": 0\n                        },\n                        {\n                            \"_links\": { },\n                            \"date_created\": null,\n                            \"date_modified\": null,\n                            \"name\": \"Bulk Order\",\n                            \"price_mod\": -0.11,\n                            \"value\": \"-2%\",\n                            \"weight_mod\": 0\n                        }\n                    ]\n                },\n                \"_links\": { },\n                \"base_price\": 5.5,\n                \"code\": \"my-widget\",\n                \"date_created\": null,\n                \"date_modified\": \"2018-03-01T00:00:00-0700\",\n                \"delivery_type\": \"flat_rate\",\n                \"discount_details\": null,\n                \"discount_name\": null,\n                \"discount_type\": null,\n                \"downloadable_url\": null,\n                \"expires\": 0,\n                \"height\": 0,\n                \"image\": null,\n                \"is_future_line_item\": false,\n                \"item_category_uri\": \"https:\u002F\u002Fapi.foxycart.com\u002Fitem_categories\u002F100\",\n                \"length\": 0,\n                \"name\": \"My Widget\",\n                \"parent_code\": null,\n                \"price\": 5.5,\n                \"quantity\": 5,\n                \"quantity_max\": 0,\n                \"quantity_min\": 0,\n                \"shipto\": null,\n                \"sub_token_url\": null,\n                \"subscription_end_date\": null,\n                \"subscription_frequency\": null,\n                \"subscription_next_transaction_date\": null,\n                \"subscription_start_date\": null,\n                \"url\": null,\n                \"weight\": 0,\n                \"width\": 0\n            }\n        ],\n        \"fx:payments\": [\n            {\n                \"_links\": { },\n                \"amount\": 54.2,\n                \"cc_exp_month\": \"01\",\n                \"cc_exp_year\": \"2023\",\n                \"cc_number_masked\": \"xxxxxxxxx4242\",\n                \"cc_type\": \"Visa\",\n                \"date_created\": null,\n                \"date_modified\": \"2018-03-01T00:00:00-0700\",\n                \"fraud_protection_score\": 0,\n                \"gateway_type\": \"vantiv\",\n                \"paypal_payer_id\": null,\n                \"processor_response\": \"Vantiv Transaction ID: 123456789123456789\",\n                \"processor_response_details\": null,\n                \"purchase_order\": null,\n                \"third_party_id\": null,\n                \"type\": \"plastic\"\n            }\n        ],\n        \"fx:shipments\": [\n            {\n                \"_links\": { },\n                \"address1\": \"123 Test Street\",\n                \"address2\": \"Level 2\",\n                \"address_name\": \"Me\",\n                \"city\": \"SAINT PAUL\",\n                \"company\": \"Some Company\",\n                \"country\": \"US\",\n                \"date_created\": null,\n                \"date_modified\": \"2018-03-01T00:00:00-0700\",\n                \"first_name\": \"John\",\n                \"last_name\": \"Smith\",\n                \"phone\": \"123456789\",\n                \"postal_code\": \"55115\",\n                \"region\": \"MN\",\n                \"shipping_service_description\": \"USPS Priority Mail 2-Day\",\n                \"shipping_service_id\": 14,\n                \"total_item_price\": 37.9,\n                \"total_price\": 54.2,\n                \"total_shipping\": 17.85,\n                \"total_tax\": 2.24\n            }\n        ]\n    },\n    \"_links\": { },\n    \"currency_code\": \"USD\",\n    \"currency_symbol\": \"$\",\n    \"customer_email\": \"john@example.com\",\n    \"customer_first_name\": \"John\",\n    \"customer_ip\": \"193.123.4.56\",\n    \"customer_last_name\": \"Smith\",\n    \"customer_tax_id\": null,\n    \"data_is_fed\": true,\n    \"date_created\": null,\n    \"date_modified\": \"2018-03-01T00:00:00-0700\",\n    \"display_id\": 3456789,\n    \"hide_transaction\": false,\n    \"id\": 3456789,\n    \"ip_country\": \"United States\",\n    \"is_new_subscription\": true,\n    \"is_test\": true,\n    \"locale_code\": \"en_US\",\n    \"receipt_url\": \"https:\u002F\u002Fexample.foxycart.com\u002Freceipt?id=2a5175756293151099587e3b45590376\",\n    \"status\": \"approved\",\n    \"store_id\": \"12345\",\n    \"store_version\": \"2.0\",\n    \"total_discount\": -3.79,\n    \"total_future_item_price\": 0,\n    \"total_future_shipping\": 0,\n    \"total_item_price\": 37.9,\n    \"total_order\": 54.2,\n    \"total_shipping\": 17.85,\n    \"total_tax\": 2.24,\n    \"transaction_date\": \"2018-03-01T00:00:00-0700\",\n    \"transaction_type\": \"transaction\",\n    \"user_agent\": \"Mozilla\u002F5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko\u002F20100101 Firefox\u002F47.0\"\n}\n",{"type":382,"attrs":849,"content":850},{"textAlign":59},[851],{"text":852,"type":387},"Two extra attributes help identify the transaction:",{"type":854,"content":855},"bullet_list",[856,890],{"type":410,"content":857},[858],{"type":382,"attrs":859,"content":860},{"textAlign":59},[861,864,866,870,871,875,876,880,881,885,887],{"text":603,"type":387,"marks":862},[863],{"type":599},{"text":865,"type":387}," — what kind of transaction this was: ",{"text":867,"type":387,"marks":868},"transaction",[869],{"type":599},{"text":716,"type":387},{"text":872,"type":387,"marks":873},"updateinfo",[874],{"type":599},{"text":716,"type":387},{"text":877,"type":387,"marks":878},"subscription_modification",[879],{"type":599},{"text":716,"type":387},{"text":882,"type":387,"marks":883},"subscription_renewal",[884],{"type":599},{"text":886,"type":387},", or ",{"text":609,"type":387,"marks":888},[889],{"type":599},{"type":410,"content":891},[892],{"type":382,"attrs":893,"content":894},{"textAlign":59},[895,899],{"text":896,"type":387,"marks":897},"is_new_subscription",[898],{"type":599},{"text":900,"type":387}," — a boolean indicating whether a new subscription is included in this transaction",{"type":398,"attrs":902,"content":903},{"level":839,"textAlign":59},[904],{"text":586,"type":387},{"type":843,"attrs":906,"content":907},{"class":59},[908],{"text":909,"type":387},"{\n    \"_embedded\": {\n        \"fx:customer\": {\n            \"_links\": { },\n            \"date_created\": null,\n            \"date_modified\": \"2019-08-09T23:44:00-0700\",\n            \"email\": \"john@example.com\",\n            \"first_name\": \"John\",\n            \"forgot_password\": null,\n            \"forgot_password_timestamp\": null,\n            \"id\": 12345,\n            \"is_anonymous\": false,\n            \"last_login_date\": \"2019-08-09T23:43:49-0700\",\n            \"last_name\": \"Smith\",\n            \"password_hash\": \"$2y$13$Jx7p31h18VnW.ab38QaYJu1QCzsyMQZKdY5s21nYewmGQj0OQCyIq\",\n            \"password_hash_config\": \"13\",\n            \"password_hash_type\": \"bcrypt\",\n            \"password_salt\": null,\n            \"tax_id\": null\n        },\n        \"fx:transaction_template\": {\n            \"_embedded\": {\n                \"fx:discounts\": [\n                    {\n                        \"_links\": { },\n                        \"amount\": -2,\n                        \"code\": \"coupon\",\n                        \"date_created\": null,\n                        \"date_modified\": null,\n                        \"display\": \"-$2.00\",\n                        \"is_future_discount\": false,\n                        \"is_taxable\": false,\n                        \"name\": \"Default Discount\"\n                    }\n                ],\n                \"fx:items\": [\n                    {\n                        \"_embedded\": {\n                            \"fx:item_category\": {\n                                \"_links\": { },\n                                \"admin_email\": \"john@example.com\",\n                                \"admin_email_template_uri\": null,\n                                \"code\": \"DEFAULT\",\n                                \"customer_email_template_uri\": null,\n                                \"customs_value\": 0,\n                                \"date_created\": null,\n                                \"date_modified\": \"2019-08-09T23:47:58-0700\",\n                                \"default_length_unit\": \"IN\",\n                                \"default_weight\": 0,\n                                \"default_weight_unit\": \"LBS\",\n                                \"discount_details\": \"1-10\",\n                                \"discount_name\": \"Gift Set\",\n                                \"discount_type\": null,\n                                \"handling_fee\": 1,\n                                \"handling_fee_minimum\": 0,\n                                \"handling_fee_percentage\": 10,\n                                \"handling_fee_type\": \"flat_percent_with_minimum\",\n                                \"item_delivery_type\": \"flat_rate\",\n                                \"max_downloads_per_customer\": 3,\n                                \"max_downloads_time_period\": 24,\n                                \"name\": \"Default for all products\",\n                                \"send_admin_email\": false,\n                                \"send_customer_email\": false,\n                                \"shipping_flat_rate\": 5,\n                                \"shipping_flat_rate_type\": \"per_order\"\n                            }\n                        },\n                        \"_links\": { },\n                        \"code\": null,\n                        \"date_created\": null,\n                        \"date_modified\": \"2019-08-10T00:40:14-0700\",\n                        \"discount_details\": null,\n                        \"discount_name\": null,\n                        \"discount_type\": null,\n                        \"expires\": 0,\n                        \"height\": 0,\n                        \"image\": null,\n                        \"is_future_line_item\": false,\n                        \"item_category_uri\": \"https:\u002F\u002Fapi.foxycart.com\u002Fitem_categories\u002F100\",\n                        \"length\": 0,\n                        \"name\": \"test\",\n                        \"parent_code\": null,\n                        \"price\": 20,\n                        \"quantity\": 1,\n                        \"quantity_max\": 0,\n                        \"quantity_min\": 0,\n                        \"shipto\": \"Me\",\n                        \"subscription_end_date\": \"2019-08-11T00:00:00-0700\",\n                        \"subscription_frequency\": \"1y\",\n                        \"subscription_next_transaction_date\": \"2019-10-24T00:00:00-0700\",\n                        \"subscription_start_date\": \"2017-10-24T00:00:00-0700\",\n                        \"url\": null,\n                        \"weight\": 0,\n                        \"width\": 0\n                    }\n                ]\n            },\n            \"_links\": { },\n            \"billing_address1\": \"123 Test Street\",\n            \"billing_address2\": null,\n            \"billing_city\": \"SAINT PAUL\",\n            \"billing_company\": \"Some Company\",\n            \"billing_country\": \"US\",\n            \"billing_first_name\": \"John\",\n            \"billing_last_name\": \"Smith\",\n            \"billing_phone\": null,\n            \"billing_postal_code\": \"5000\",\n            \"billing_state\": \"MN\",\n            \"customer_uri\": \"https:\u002F\u002Fapi.foxycart.com\u002Fcustomers\u002F15460475\",\n            \"date_created\": null,\n            \"date_modified\": \"2019-08-10T00:40:14-0700\",\n            \"language\": null,\n            \"locale_code\": \"en_US\",\n            \"shipping_address1\": \"123 Test Street\",\n            \"shipping_address2\": null,\n            \"shipping_city\": \"SAINT PAUL\",\n            \"shipping_company\": \"Some Company\",\n            \"shipping_country\": \"US\",\n            \"shipping_first_name\": \"John\",\n            \"shipping_last_name\": \"Smith\",\n            \"shipping_phone\": null,\n            \"shipping_postal_code\": \"5000\",\n            \"shipping_state\": \"MN\",\n            \"template_set_uri\": null,\n            \"total_future_shipping\": 0,\n            \"total_item_price\": 20,\n            \"total_order\": 25,\n            \"total_shipping\": 5,\n            \"total_tax\": 0,\n            \"use_customer_shipping_address\": false\n        }\n    },\n    \"_links\": { },\n    \"date_created\": null,\n    \"date_modified\": \"2019-08-11T04:13:01-0700\",\n    \"end_date\": \"2019-08-11T00:00:00-0700\",\n    \"error_message\": null,\n    \"first_failed_transaction_date\": null,\n    \"frequency\": \"1y\",\n    \"is_active\": false,\n    \"next_transaction_date\": \"2019-10-24T00:00:00-0700\",\n    \"past_due_amount\": 0,\n    \"start_date\": \"2017-10-24T00:00:00-0700\",\n    \"sub_token_url\": \"https:\u002F\u002Fexample.foxycart.com\u002Fcart?sub_token=b37fb078e12ba5ef86773b43e60bdea5124a46f4b5698a5387862cd82042d003c\",\n    \"third_party_id\": null\n}\n",{"type":398,"attrs":911,"content":912},{"level":400,"textAlign":59},[913],{"text":914,"type":387},"Decrypting an encrypted payload",{"type":382,"attrs":916,"content":917},{"textAlign":59},[918,920,924],{"text":919,"type":387},"If your webhook endpoint URL isn’t secured with SSL, the payload is sent encrypted rather than raw. The payload arrives as three hexadecimal values — the MAC (Message Authentication Code), IV (Initialization Vector), and the encrypted data — concatenated with a ",{"text":921,"type":387,"marks":922},":",[923],{"type":599},{"text":925,"type":387}," character.",{"type":382,"attrs":927,"content":928},{"textAlign":59},[929],{"text":930,"type":387},"To decrypt it:",{"type":405,"attrs":932,"content":933},{"order":407},[934,945,952,959,966,973],{"type":410,"content":935},[936],{"type":382,"attrs":937,"content":938},{"textAlign":59},[939,941,944],{"text":940,"type":387},"Split the payload into its three parts by the ",{"text":921,"type":387,"marks":942},[943],{"type":599},{"text":925,"type":387},{"type":410,"content":946},[947],{"type":382,"attrs":948,"content":949},{"textAlign":59},[950],{"text":951,"type":387},"Confirm validity by securely comparing the MAC value to an HMAC SHA256 digest of the IV and data values concatenated together.",{"type":410,"content":953},[954],{"type":382,"attrs":955,"content":956},{"textAlign":59},[957],{"text":958,"type":387},"Convert the IV value from hexadecimal to binary.",{"type":410,"content":960},[961],{"type":382,"attrs":962,"content":963},{"textAlign":59},[964],{"text":965,"type":387},"Create a binary SHA256 hash of the webhook encryption key.",{"type":410,"content":967},[968],{"type":382,"attrs":969,"content":970},{"textAlign":59},[971],{"text":972,"type":387},"Decrypt the data as AES-256-CBC using the IV and key binary values from the previous two steps.",{"type":410,"content":974},[975],{"type":382,"attrs":976,"content":977},{"textAlign":59},[978],{"text":979,"type":387},"Parse the decrypted data as JSON.",{"type":398,"attrs":981,"content":982},{"level":839,"textAlign":59},[983],{"text":984,"type":387},"PHP",{"type":843,"attrs":986,"content":987},{"class":59},[988],{"text":989,"type":387},"\u003C?php\n\n$parts = explode(':', $data);\n$mac = $parts[0];\n$iv = $parts[1];\n$data = $parts[2];\n\n$calc_mac = hash('sha256', \"$iv:$data\");\n\nif (hash_equals($calc_mac, $mac)) {\n    $iv = hex2bin($iv);\n    $key = hex2bin(hash('sha256', FOXY_WEBHOOK_ENCRYPTION_KEY));\n\n    if ($data = openssl_decrypt($data, 'aes-256-cbc', $key, 0, $iv)) {\n        $parsedData = json_decode($data, true);\n    } else {\n        while ($msg = openssl_error_string()) {\n            echo(\"Openssl error: \" . $msg);\n        }\n        http_response_code(500);\n        return;\n    }\n} else {\n    \u002F\u002F Encrypted data corrupted\n    echo(\"Encrypted data corrupted\");\n    http_response_code(500);\n    return;\n}\n",{"type":398,"attrs":991,"content":992},{"level":839,"textAlign":59},[993],{"text":994,"type":387},"Ruby",{"type":843,"attrs":996,"content":997},{"class":59},[998],{"text":999,"type":387},"mac, iv, data = data.split(\":\")\ncalc_mac = Digest::SHA256.hexdigest(\"#{iv}:#{data}\")\n\nif Rack::Utils.secure_compare(calc_mac, mac)\n    begin\n        data = Base64::decode64(data)\n        decipher = OpenSSL::Cipher::Cipher.new('aes-256-cbc')\n        decipher.decrypt\n        decipher.key = Digest::SHA256.digest(ENV['FOXY_WEBHOOK_ENCRYPTION_KEY'])\n        decipher.iv = iv.scan(\u002F..\u002F).map { |x| x.hex.chr }.join\n        data = decipher.update(data) + decipher.final\n    rescue OpenSSL::Cipher::CipherError\n        halt(500, \"Unable to decrpyt data\")\n    end\nelse\n    halt(500, \"Encrypted data corrupted\")\nend\n",{"type":398,"attrs":1001,"content":1002},{"level":400,"textAlign":59},[1003],{"text":1004,"type":387},"Notes",{"type":854,"content":1006},[1007,1014],{"type":410,"content":1008},[1009],{"type":382,"attrs":1010,"content":1011},{"textAlign":59},[1012],{"text":1013,"type":387},"Avoid storing your webhook encryption key directly in your codebase — store it as an environment variable instead.",{"type":410,"content":1015},[1016],{"type":382,"attrs":1017,"content":1018},{"textAlign":59},[1019],{"text":1020,"type":387},"Always use a secure\u002Fconstant-time comparison method when comparing signatures or MAC values, rather than a direct equality check.",{"id":59,"alt":59,"name":13,"focus":59,"title":59,"source":59,"filename":13,"copyright":59,"fieldtype":81,"meta_data":1022},{},"How to validate a legacy webhook payload signature and decrypt it if your endpoint isn't secured with HTTPS.",[],"verify-and-decrypt-a-legacy-webhook-payload","help\u002Farticles\u002Fverify-and-decrypt-a-legacy-webhook-payload",-3930,[],"a4447b6d-720c-4a02-8ec8-e2882cb1f453",[],{"name":1032,"created_at":1033,"published_at":1034,"updated_at":1035,"id":1036,"uuid":47,"content":1037,"slug":48,"full_slug":48,"sort_by_date":59,"position":1215,"tag_list":1216,"is_startpage":24,"parent_id":59,"meta_data":59,"group_id":1217,"first_published_at":1218,"release_id":59,"lang":65,"path":59,"alternates":1219,"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":1038,"_uid":1041,"title":1042,"action":1043,"fields":1044,"method":1191,"columns":1192,"subtitle":1206,"component":48,"button_text":1212,"submit_title":1213,"submit_subtitle":1214},{"_uid":1039,"title":1032,"plugin":1040,"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",[1045,1050,1054,1162,1165,1170,1185],{"_uid":1046,"name":1047,"type":387,"label":1048,"options":13,"required":33,"component":1049,"placeholder":13},"9a70b226-2036-4f90-a052-b3efa61c5896","name","Name","form___field",{"_uid":1051,"name":1052,"type":1052,"label":1053,"options":13,"required":33,"component":1049,"placeholder":13},"86ba35be-ff43-4a28-8633-14052a8f6622","email","Email Address",{"_uid":1055,"name":1056,"type":1057,"label":1058,"options":1059,"required":33,"component":1049,"conditions":1060,"placeholder":13},"3f827475-492c-4f97-aa1e-2386ac263b6c","topic","select","Topic","Presales, Support, Billing, Partnerships, Order Enquiry, Other",[1061,1116,1126,1133,1141,1149,1155],{"_uid":1062,"equals":1063,"fields":1064,"component":1115},"e21d97dd-e68e-4fa6-ba97-bc40f3041dde","Order Enquiry",[1065],{"_uid":1066,"body":1067,"type":1113,"title":13,"component":1114},"b64992bc-6d53-48b8-b7a0-d81e5a062e50",{"type":379,"content":1068},[1069],{"type":382,"content":1070},[1071,1073,1080,1082,1084,1085,1089,1091,1096,1104,1106,1111],{"text":1072,"type":387},"We are ",{"text":1074,"type":387,"marks":1075},"Foxy.io",[1076],{"type":392,"attrs":1077},{"href":1078,"uuid":59,"anchor":59,"custom":1079,"target":59,"linktype":31},"http:\u002F\u002FFoxy.io",{},{"text":1081,"type":387},", 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":1083},"hard_break",{"type":1083},{"text":1086,"type":387,"marks":1087},"NOTE:",[1088],{"type":421},{"text":1090,"type":387}," We are ",{"text":1092,"type":387,"marks":1093},"not ",[1094],{"type":1095},"italic",{"text":1097,"type":387,"marks":1098},"Foxy.in",[1099,1103],{"type":392,"attrs":1100},{"href":1101,"uuid":59,"anchor":59,"custom":1102,"target":59,"linktype":31},"http:\u002F\u002FFoxy.in",{},{"type":1095},{"text":1105,"type":387},". We are not in any way affiliated with ",{"text":1097,"type":387,"marks":1107},[1108],{"type":392,"attrs":1109},{"href":1101,"uuid":59,"anchor":59,"custom":1110,"target":59,"linktype":31},{},{"text":1112,"type":387},", and cannot help in any way with your order from that website.","danger","global___alert","form___condition",{"_uid":1117,"equals":1118,"fields":1119,"component":1115},"8765c3e1-25cf-44aa-b8ea-fc6094acf9c3","Presales",[1120],{"_uid":1121,"name":1122,"type":1123,"label":13,"options":13,"required":24,"component":1049,"conditions":1124,"placeholder":13,"default_value":1125},"cf464f8e-d643-4f6e-af29-d3abffaf7380","department_email_address","hidden",[],"hello@foxy.io",{"_uid":1127,"equals":208,"fields":1128,"component":1115},"4007b6d8-77e5-421d-bd1e-6f336dd853fb",[1129],{"_uid":1130,"name":1122,"type":1123,"label":13,"options":13,"required":24,"component":1049,"conditions":1131,"placeholder":13,"default_value":1132},"7b4c6aa5-a68c-45e0-9ce1-0a36af10c0c2",[],"help@foxy.io",{"_uid":1134,"equals":1135,"fields":1136,"component":1115},"1dbb8f11-613d-43cd-9e09-1b94f6e19219","Billing",[1137],{"_uid":1138,"name":1122,"type":1123,"label":13,"options":13,"required":24,"component":1049,"conditions":1139,"placeholder":13,"default_value":1140},"a0ac0d1b-bc4f-4a6c-a682-581d450b0b73",[],"help+billing@foxy.io",{"_uid":1142,"equals":1143,"fields":1144,"component":1115},"a0a53a50-7172-4a29-ba58-181e38874e12","Partnerships",[1145],{"_uid":1146,"name":1122,"type":1123,"label":13,"options":13,"required":24,"component":1049,"conditions":1147,"placeholder":13,"default_value":1148},"7aa011d9-f374-4aed-b5a5-929b54aaf152",[],"partners@foxy.io",{"_uid":1150,"equals":1063,"fields":1151,"component":1115},"a4cd431f-25d5-41c7-bfdc-02c908c8fb47",[1152],{"_uid":1153,"name":1122,"type":1123,"label":13,"options":13,"required":24,"component":1049,"conditions":1154,"placeholder":13,"default_value":1125},"f5d52168-d6ae-451b-94ee-2ced1cbd28ad",[],{"_uid":1156,"equals":1157,"fields":1158,"component":1115},"25aba1ed-eb41-4bbc-aa89-f7a7167ea86e","Other",[1159],{"_uid":1160,"name":1122,"type":1123,"label":13,"options":13,"required":24,"component":1049,"conditions":1161,"placeholder":13,"default_value":1125},"f40dfaef-c203-4b71-bf4e-e1b43cef192b",[],{"_uid":1163,"component":1164},"e9c53a05-f40a-4510-aaf8-bc072a235a0c","form___subject",{"_uid":1166,"name":1167,"type":1168,"label":1169,"options":13,"required":33,"component":1049,"placeholder":13},"a4c4d385-fff4-4978-99fb-b68cfea623d6","message","textarea","Message",{"_uid":1171,"name":1172,"type":1057,"label":1173,"options":1174,"required":33,"component":1049,"conditions":1175,"placeholder":13},"8a3c9f85-f438-427d-9c7a-d7b295a14b5b","existing_user","Are you an existing user?","No, Yes",[1176],{"_uid":1177,"equals":1178,"fields":1179,"component":1115},"115933d6-262a-4b59-8fa8-579c5ad73de1","Yes",[1180],{"_uid":1181,"name":1182,"type":387,"label":1183,"options":13,"required":33,"component":1049,"conditions":1184,"placeholder":13},"44b6ff23-98f0-4e95-b7f5-c23e06415c2d","subdomain","Store Subdomain",[],{"_uid":1186,"name":1187,"type":1057,"label":1188,"options":1189,"required":33,"component":1049,"conditions":1190,"placeholder":13},"922a5cef-3af2-4113-8855-36c7910e3ee3","user_type","What type of user are you?","Developer, Designer, Merchant",[],"POST",[1193],{"_uid":1194,"text":1195,"title":1204,"component":1205},"7323b90d-a93a-4bf1-baa9-20d0b7ead61b",{"type":379,"content":1196},[1197],{"type":382,"content":1198},[1199,1201,1202],{"text":1200,"type":387},"855.369.9227",{"type":1083},{"text":1203,"type":387},"9:30am-6pm Central M-F","Pre-sales, Sales, & Partnerships","contact___footer_column",{"type":379,"content":1207},[1208],{"type":382,"content":1209},[1210],{"text":1211,"type":387},"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",[],{},1784584269109]