[{"data":1,"prerenderedAt":987},["ShallowReactive",2],{"header:help":3,"footer:default":67,"story:navigation\u002Fsearch:help":250,"story:help\u002Fcategories":288,"story:help\u002Farticles\u002Fverify-and-decrypt-a-legacy-webhook-payload":314,"no-guide:verify-and-decrypt-a-legacy-webhook-payload":59,"article:\u002Fhelp\u002Farticles\u002Fverify-and-decrypt-a-legacy-webhook-payload":719,"story:contact":744,"help:tree:28cc0197-ada9-4bc1-8f15-0c510581d86b":935,"_apollo:default":986},{"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":712,"full_slug":713,"sort_by_date":59,"position":714,"tag_list":715,"is_startpage":24,"parent_id":716,"meta_data":59,"group_id":717,"first_published_at":317,"release_id":59,"lang":65,"path":59,"alternates":718,"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":322,"body":323,"name":315,"image":707,"pinned":24,"summary":709,"category":710,"component":266,"related_articles":711},"a33f195f-6a8d-487c-bad0-7ffb5ecbe3bc",{"type":324,"content":325},"doc",[326,333,340,345,496,501,517,523,529,534,585,590,595,600,611,616,666,671,676,681,686,691],{"type":327,"attrs":328,"content":329},"paragraph",{"textAlign":59},[330],{"text":331,"type":332},"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.","text",{"type":334,"attrs":335,"content":337},"heading",{"level":336,"textAlign":59},2,[338],{"text":339,"type":332},"Headers",{"type":327,"attrs":341,"content":342},{"textAlign":59},[343],{"text":344,"type":332},"Every legacy webhook request includes these headers:",{"type":346,"content":347},"table",[348,369,416,436,456,476],{"type":349,"content":350},"tableRow",[351,361],{"type":352,"attrs":353,"content":355},"tableHeader",{"colspan":354,"rowspan":354,"colwidth":59},1,[356],{"type":327,"attrs":357,"content":358},{"textAlign":59},[359],{"text":360,"type":332},"Header",{"type":352,"attrs":362,"content":363},{"colspan":354,"rowspan":354,"colwidth":59},[364],{"type":327,"attrs":365,"content":366},{"textAlign":59},[367],{"text":368,"type":332},"Description",{"type":349,"content":370},[371,383],{"type":372,"attrs":373,"content":374},"tableCell",{"colspan":354,"rowspan":354,"colwidth":59,"backgroundColor":59},[375],{"type":327,"attrs":376,"content":377},{"textAlign":59},[378],{"text":379,"type":332,"marks":380},"Foxy-Webhook-Event",[381],{"type":382},"code",{"type":372,"attrs":384,"content":385},{"colspan":354,"rowspan":354,"colwidth":59,"backgroundColor":59},[386],{"type":327,"attrs":387,"content":388},{"textAlign":59},[389,391,395,397,401,402,406,407,411,412],{"text":390,"type":332},"Name of the event that triggered this payload. Currently ",{"text":392,"type":332,"marks":393},"transaction\u002Fcreated",[394],{"type":382},{"text":396,"type":332},", ",{"text":398,"type":332,"marks":399},"transaction\u002Fcaptured",[400],{"type":382},{"text":396,"type":332},{"text":403,"type":332,"marks":404},"transaction\u002Frefunded",[405],{"type":382},{"text":396,"type":332},{"text":408,"type":332,"marks":409},"transaction\u002Fvoided",[410],{"type":382},{"text":396,"type":332},{"text":413,"type":332,"marks":414},"subscription\u002Fcancelled",[415],{"type":382},{"type":349,"content":417},[418,428],{"type":372,"attrs":419,"content":420},{"colspan":354,"rowspan":354,"colwidth":59,"backgroundColor":59},[421],{"type":327,"attrs":422,"content":423},{"textAlign":59},[424],{"text":425,"type":332,"marks":426},"Foxy-Webhook-Signature",[427],{"type":382},{"type":372,"attrs":429,"content":430},{"colspan":354,"rowspan":354,"colwidth":59,"backgroundColor":59},[431],{"type":327,"attrs":432,"content":433},{"textAlign":59},[434],{"text":435,"type":332},"An HMAC SHA256 signature of the payload, using the webhook’s encryption key. Used to verify the contents of the payload",{"type":349,"content":437},[438,448],{"type":372,"attrs":439,"content":440},{"colspan":354,"rowspan":354,"colwidth":59,"backgroundColor":59},[441],{"type":327,"attrs":442,"content":443},{"textAlign":59},[444],{"text":445,"type":332,"marks":446},"Foxy-Webhook-Refeed",[447],{"type":382},{"type":372,"attrs":449,"content":450},{"colspan":354,"rowspan":354,"colwidth":59,"backgroundColor":59},[451],{"type":327,"attrs":452,"content":453},{"textAlign":59},[454],{"text":455,"type":332},"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":349,"content":457},[458,468],{"type":372,"attrs":459,"content":460},{"colspan":354,"rowspan":354,"colwidth":59,"backgroundColor":59},[461],{"type":327,"attrs":462,"content":463},{"textAlign":59},[464],{"text":465,"type":332,"marks":466},"Foxy-Store-ID",[467],{"type":382},{"type":372,"attrs":469,"content":470},{"colspan":354,"rowspan":354,"colwidth":59,"backgroundColor":59},[471],{"type":327,"attrs":472,"content":473},{"textAlign":59},[474],{"text":475,"type":332},"The ID of the store this webhook was triggered for",{"type":349,"content":477},[478,488],{"type":372,"attrs":479,"content":480},{"colspan":354,"rowspan":354,"colwidth":59,"backgroundColor":59},[481],{"type":327,"attrs":482,"content":483},{"textAlign":59},[484],{"text":485,"type":332,"marks":486},"Foxy-Store-Domain",[487],{"type":382},{"type":372,"attrs":489,"content":490},{"colspan":354,"rowspan":354,"colwidth":59,"backgroundColor":59},[491],{"type":327,"attrs":492,"content":493},{"textAlign":59},[494],{"text":495,"type":332},"The store domain this webhook was triggered for",{"type":334,"attrs":497,"content":498},{"level":336,"textAlign":59},[499],{"text":500,"type":332},"Example payloads",{"type":327,"attrs":502,"content":503},{"textAlign":59},[504,506,510,512,515],{"text":505,"type":332},"The payload follows the same structure as the Hypermedia API. Most objects include the API’s ",{"text":507,"type":332,"marks":508},"_links",[509],{"type":382},{"text":511,"type":332}," 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":507,"type":332,"marks":513},[514],{"type":382},{"text":516,"type":332}," arrays have been cleared out to save space.",{"type":334,"attrs":518,"content":520},{"level":519,"textAlign":59},3,[521],{"text":522,"type":332},"Transaction Created",{"type":524,"attrs":525,"content":526},"code_block",{"class":59},[527],{"text":528,"type":332},"{\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":327,"attrs":530,"content":531},{"textAlign":59},[532],{"text":533,"type":332},"Two extra attributes help identify the transaction:",{"type":535,"content":536},"bullet_list",[537,574],{"type":538,"content":539},"list_item",[540],{"type":327,"attrs":541,"content":542},{"textAlign":59},[543,547,549,553,554,558,559,563,564,568,570],{"text":544,"type":332,"marks":545},"transaction_type",[546],{"type":382},{"text":548,"type":332}," — what kind of transaction this was: ",{"text":550,"type":332,"marks":551},"transaction",[552],{"type":382},{"text":396,"type":332},{"text":555,"type":332,"marks":556},"updateinfo",[557],{"type":382},{"text":396,"type":332},{"text":560,"type":332,"marks":561},"subscription_modification",[562],{"type":382},{"text":396,"type":332},{"text":565,"type":332,"marks":566},"subscription_renewal",[567],{"type":382},{"text":569,"type":332},", or ",{"text":571,"type":332,"marks":572},"subscription_cancellation",[573],{"type":382},{"type":538,"content":575},[576],{"type":327,"attrs":577,"content":578},{"textAlign":59},[579,583],{"text":580,"type":332,"marks":581},"is_new_subscription",[582],{"type":382},{"text":584,"type":332}," — a boolean indicating whether a new subscription is included in this transaction",{"type":334,"attrs":586,"content":587},{"level":519,"textAlign":59},[588],{"text":589,"type":332},"Subscription Cancelled",{"type":524,"attrs":591,"content":592},{"class":59},[593],{"text":594,"type":332},"{\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":334,"attrs":596,"content":597},{"level":336,"textAlign":59},[598],{"text":599,"type":332},"Decrypting an encrypted payload",{"type":327,"attrs":601,"content":602},{"textAlign":59},[603,605,609],{"text":604,"type":332},"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":606,"type":332,"marks":607},":",[608],{"type":382},{"text":610,"type":332}," character.",{"type":327,"attrs":612,"content":613},{"textAlign":59},[614],{"text":615,"type":332},"To decrypt it:",{"type":617,"attrs":618,"content":619},"ordered_list",{"order":354},[620,631,638,645,652,659],{"type":538,"content":621},[622],{"type":327,"attrs":623,"content":624},{"textAlign":59},[625,627,630],{"text":626,"type":332},"Split the payload into its three parts by the ",{"text":606,"type":332,"marks":628},[629],{"type":382},{"text":610,"type":332},{"type":538,"content":632},[633],{"type":327,"attrs":634,"content":635},{"textAlign":59},[636],{"text":637,"type":332},"Confirm validity by securely comparing the MAC value to an HMAC SHA256 digest of the IV and data values concatenated together.",{"type":538,"content":639},[640],{"type":327,"attrs":641,"content":642},{"textAlign":59},[643],{"text":644,"type":332},"Convert the IV value from hexadecimal to binary.",{"type":538,"content":646},[647],{"type":327,"attrs":648,"content":649},{"textAlign":59},[650],{"text":651,"type":332},"Create a binary SHA256 hash of the webhook encryption key.",{"type":538,"content":653},[654],{"type":327,"attrs":655,"content":656},{"textAlign":59},[657],{"text":658,"type":332},"Decrypt the data as AES-256-CBC using the IV and key binary values from the previous two steps.",{"type":538,"content":660},[661],{"type":327,"attrs":662,"content":663},{"textAlign":59},[664],{"text":665,"type":332},"Parse the decrypted data as JSON.",{"type":334,"attrs":667,"content":668},{"level":519,"textAlign":59},[669],{"text":670,"type":332},"PHP",{"type":524,"attrs":672,"content":673},{"class":59},[674],{"text":675,"type":332},"\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":334,"attrs":677,"content":678},{"level":519,"textAlign":59},[679],{"text":680,"type":332},"Ruby",{"type":524,"attrs":682,"content":683},{"class":59},[684],{"text":685,"type":332},"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":334,"attrs":687,"content":688},{"level":336,"textAlign":59},[689],{"text":690,"type":332},"Notes",{"type":535,"content":692},[693,700],{"type":538,"content":694},[695],{"type":327,"attrs":696,"content":697},{"textAlign":59},[698],{"text":699,"type":332},"Avoid storing your webhook encryption key directly in your codebase — store it as an environment variable instead.",{"type":538,"content":701},[702],{"type":327,"attrs":703,"content":704},{"textAlign":59},[705],{"text":706,"type":332},"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":708},{},"How to validate a legacy webhook payload signature and decrypt it if your endpoint isn't secured with HTTPS.","e8d2f9b0-fa4e-4565-8b61-b3d5aa5ce513",[],"verify-and-decrypt-a-legacy-webhook-payload","help\u002Farticles\u002Fverify-and-decrypt-a-legacy-webhook-payload",-3930,[],2659,"a4447b6d-720c-4a02-8ec8-e2882cb1f453",[],{"html":720,"sections":721,"segments":740},"\u003Cp>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.\u003C\u002Fp>\u003Csection id=\"headers\" data-title=\"Headers\" data-title-node=\"H2\">\u003Chr class=\"my-8\" style=\"margin-left: -48px; margin-right: -40vw\">\u003Ch2 data-anchor-id=\"headers\">Headers\u003C\u002Fh2>\u003Cp>Every legacy webhook request includes these headers:\u003C\u002Fp>\u003Cdiv class=\"table-responsive w-100\">\u003Ctable class=\"table table-lg table-bordered my-5\">\u003Cthead class=\"thead-light\">\u003Ctr>\u003Cth>\u003Cp>Header\u003C\u002Fp>\u003C\u002Fth>\u003Cth>\u003Cp>Description\u003C\u002Fp>\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd>\u003Cp>\u003Ccode class=\"badge bg-soft-danger text-danger\">Foxy-Webhook-Event\u003C\u002Fcode>\u003C\u002Fp>\u003C\u002Ftd>\u003Ctd>\u003Cp>Name of the event that triggered this payload. Currently \u003Ccode class=\"badge bg-soft-danger text-danger\">transaction\u002Fcreated\u003C\u002Fcode>, \u003Ccode class=\"badge bg-soft-danger text-danger\">transaction\u002Fcaptured\u003C\u002Fcode>, \u003Ccode class=\"badge bg-soft-danger text-danger\">transaction\u002Frefunded\u003C\u002Fcode>, \u003Ccode class=\"badge bg-soft-danger text-danger\">transaction\u002Fvoided\u003C\u002Fcode>, \u003Ccode class=\"badge bg-soft-danger text-danger\">subscription\u002Fcancelled\u003C\u002Fcode>\u003C\u002Fp>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Cp>\u003Ccode class=\"badge bg-soft-danger text-danger\">Foxy-Webhook-Signature\u003C\u002Fcode>\u003C\u002Fp>\u003C\u002Ftd>\u003Ctd>\u003Cp>An HMAC SHA256 signature of the payload, using the webhook’s encryption key. Used to verify the contents of the payload\u003C\u002Fp>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Cp>\u003Ccode class=\"badge bg-soft-danger text-danger\">Foxy-Webhook-Refeed\u003C\u002Fcode>\u003C\u002Fp>\u003C\u002Ftd>\u003Ctd>\u003Cp>A boolean signifying whether this payload has been refed. If false, this is the first time this instance of the event has been triggered\u003C\u002Fp>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Cp>\u003Ccode class=\"badge bg-soft-danger text-danger\">Foxy-Store-ID\u003C\u002Fcode>\u003C\u002Fp>\u003C\u002Ftd>\u003Ctd>\u003Cp>The ID of the store this webhook was triggered for\u003C\u002Fp>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Cp>\u003Ccode class=\"badge bg-soft-danger text-danger\">Foxy-Store-Domain\u003C\u002Fcode>\u003C\u002Fp>\u003C\u002Ftd>\u003Ctd>\u003Cp>The store domain this webhook was triggered for\u003C\u002Fp>\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\u003C\u002Fsection>\u003Csection id=\"example-payloads\" data-title=\"Example payloads\" data-title-node=\"H2\">\u003Chr class=\"my-8\" style=\"margin-left: -48px; margin-right: -40vw\">\u003Ch2 data-anchor-id=\"example-payloads\">Example payloads\u003C\u002Fh2>\u003Cp>The payload follows the same structure as the Hypermedia API. Most objects include the API’s \u003Ccode class=\"badge bg-soft-danger text-danger\">_links\u003C\u002Fcode> 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, \u003Ccode class=\"badge bg-soft-danger text-danger\">_links\u003C\u002Fcode> arrays have been cleared out to save space.\u003C\u002Fp>\u003C\u002Fsection>\u003Csection id=\"transaction-created\" data-title=\"Transaction Created\" data-title-node=\"H3\">\u003Ch3 data-anchor-id=\"transaction-created\">Transaction Created\u003C\u002Fh3>\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>{\n    &quot;_embedded&quot;: {\n        &quot;fx:applied_taxes&quot;: [\n            {\n                &quot;_links&quot;: { },\n                &quot;amount&quot;: 2.24,\n                &quot;apply_to_handling&quot;: true,\n                &quot;apply_to_shipping&quot;: true,\n                &quot;date_created&quot;: null,\n                &quot;date_modified&quot;: null,\n                &quot;is_future_tax&quot;: false,\n                &quot;name&quot;: &quot;Global Tax&quot;,\n                &quot;rate&quot;: 5,\n                &quot;shipto&quot;: null\n            }\n        ],\n        &quot;fx:billing_addresses&quot;: [\n            {\n                &quot;_links&quot;: { },\n                &quot;address1&quot;: &quot;123 Test Street&quot;,\n                &quot;address2&quot;: &quot;Level 2&quot;,\n                &quot;address_name&quot;: &quot;Default Billing Address&quot;,\n                &quot;city&quot;: &quot;SAINT PAUL&quot;,\n                &quot;company&quot;: &quot;Some Company&quot;,\n                &quot;customer_country&quot;: &quot;US&quot;,\n                &quot;customer_phone&quot;: &quot;123456789&quot;,\n                &quot;customer_postal_code&quot;: &quot;55115&quot;,\n                &quot;date_created&quot;: null,\n                &quot;date_modified&quot;: &quot;2018-03-01T00:00:00-0700&quot;,\n                &quot;first_name&quot;: &quot;John&quot;,\n                &quot;last_name&quot;: &quot;Smith&quot;,\n                &quot;region&quot;: &quot;MN&quot;\n            }\n        ],\n        &quot;fx:custom_fields&quot;: [\n            {\n                &quot;_links&quot;: { },\n                &quot;date_created&quot;: null,\n                &quot;date_modified&quot;: null,\n                &quot;is_hidden&quot;: true,\n                &quot;name&quot;: &quot;custom_attribute&quot;,\n                &quot;value&quot;: &quot;reseller&quot;\n            },\n            {\n                &quot;_links&quot;: { },\n                &quot;date_created&quot;: null,\n                &quot;date_modified&quot;: null,\n                &quot;is_hidden&quot;: false,\n                &quot;name&quot;: &quot;newsletter_subscribe&quot;,\n                &quot;value&quot;: &quot;1&quot;\n            }\n        ],\n        &quot;fx:customer&quot;: {\n            &quot;_links&quot;: { },\n            &quot;date_created&quot;: null,\n            &quot;date_modified&quot;: null,\n            &quot;email&quot;: &quot;john@example.com&quot;,\n            &quot;first_name&quot;: &quot;John&quot;,\n            &quot;forgot_password&quot;: null,\n            &quot;forgot_password_timestamp&quot;: null,\n            &quot;id&quot;: 12345,\n            &quot;is_anonymous&quot;: false,\n            &quot;last_login_date&quot;: &quot;2018-03-01T00:00:00-0700&quot;,\n            &quot;last_name&quot;: &quot;Smith&quot;,\n            &quot;password_hash&quot;: &quot;$2y$13$Jx7p31h18VnW.ab38QaYJu1QCzsyMQZKdY5s21nYewmGQj0OQCyIq&quot;,\n            &quot;password_hash_config&quot;: &quot;13&quot;,\n            &quot;password_hash_type&quot;: &quot;bcrypt&quot;,\n            &quot;password_salt&quot;: null,\n            &quot;tax_id&quot;: null\n        },\n        &quot;fx:discounts&quot;: [\n            {\n                &quot;_links&quot;: { },\n                &quot;amount&quot;: -3.79,\n                &quot;code&quot;: &quot;my-code&quot;,\n                &quot;date_created&quot;: null,\n                &quot;date_modified&quot;: null,\n                &quot;display&quot;: &quot;-$3.79&quot;,\n                &quot;is_future_discount&quot;: false,\n                &quot;is_taxable&quot;: false,\n                &quot;name&quot;: &quot;Special Offer&quot;\n            }\n        ],\n        &quot;fx:items&quot;: [\n            {\n                &quot;_embedded&quot;: {\n                    &quot;fx:item_category&quot;: {\n                        &quot;_links&quot;: { },\n                        &quot;admin_email&quot;: null,\n                        &quot;admin_email_template_uri&quot;: null,\n                        &quot;code&quot;: &quot;DEFAULT&quot;,\n                        &quot;customer_email_template_uri&quot;: null,\n                        &quot;customs_value&quot;: 0,\n                        &quot;date_created&quot;: null,\n                        &quot;date_modified&quot;: null,\n                        &quot;default_length_unit&quot;: &quot;IN&quot;,\n                        &quot;default_weight&quot;: 0,\n                        &quot;default_weight_unit&quot;: &quot;LBS&quot;,\n                        &quot;discount_details&quot;: &quot;single|3-5|5-10&quot;,\n                        &quot;discount_name&quot;: &quot;Bulk Order&quot;,\n                        &quot;discount_type&quot;: &quot;quantity_percentage&quot;,\n                        &quot;handling_fee&quot;: 1,\n                        &quot;handling_fee_minimum&quot;: 0,\n                        &quot;handling_fee_percentage&quot;: 80,\n                        &quot;handling_fee_type&quot;: &quot;none&quot;,\n                        &quot;item_delivery_type&quot;: &quot;flat_rate&quot;,\n                        &quot;max_downloads_per_customer&quot;: 3,\n                        &quot;max_downloads_time_period&quot;: 24,\n                        &quot;name&quot;: &quot;Default for all products&quot;,\n                        &quot;send_admin_email&quot;: false,\n                        &quot;send_customer_email&quot;: false,\n                        &quot;shipping_flat_rate&quot;: 2,\n                        &quot;shipping_flat_rate_type&quot;: &quot;per_item&quot;\n                    },\n                    &quot;fx:item_options&quot;: [\n                        {\n                            &quot;_links&quot;: { },\n                            &quot;date_created&quot;: null,\n                            &quot;date_modified&quot;: null,\n                            &quot;name&quot;: &quot;size&quot;,\n                            &quot;price_mod&quot;: 0,\n                            &quot;value&quot;: &quot;Large&quot;,\n                            &quot;weight_mod&quot;: 0\n                        },\n                        {\n                            &quot;_links&quot;: { },\n                            &quot;date_created&quot;: null,\n                            &quot;date_modified&quot;: null,\n                            &quot;name&quot;: &quot;color&quot;,\n                            &quot;price_mod&quot;: 0,\n                            &quot;value&quot;: &quot;Blue&quot;,\n                            &quot;weight_mod&quot;: 0\n                        },\n                        {\n                            &quot;_links&quot;: { },\n                            &quot;date_created&quot;: null,\n                            &quot;date_modified&quot;: null,\n                            &quot;name&quot;: &quot;Bulk Order&quot;,\n                            &quot;price_mod&quot;: -0.11,\n                            &quot;value&quot;: &quot;-2%&quot;,\n                            &quot;weight_mod&quot;: 0\n                        }\n                    ]\n                },\n                &quot;_links&quot;: { },\n                &quot;base_price&quot;: 5.5,\n                &quot;code&quot;: &quot;my-widget&quot;,\n                &quot;date_created&quot;: null,\n                &quot;date_modified&quot;: &quot;2018-03-01T00:00:00-0700&quot;,\n                &quot;delivery_type&quot;: &quot;flat_rate&quot;,\n                &quot;discount_details&quot;: null,\n                &quot;discount_name&quot;: null,\n                &quot;discount_type&quot;: null,\n                &quot;downloadable_url&quot;: null,\n                &quot;expires&quot;: 0,\n                &quot;height&quot;: 0,\n                &quot;image&quot;: null,\n                &quot;is_future_line_item&quot;: false,\n                &quot;item_category_uri&quot;: &quot;https:\u002F\u002Fapi.foxycart.com\u002Fitem_categories\u002F100&quot;,\n                &quot;length&quot;: 0,\n                &quot;name&quot;: &quot;My Widget&quot;,\n                &quot;parent_code&quot;: null,\n                &quot;price&quot;: 5.5,\n                &quot;quantity&quot;: 5,\n                &quot;quantity_max&quot;: 0,\n                &quot;quantity_min&quot;: 0,\n                &quot;shipto&quot;: null,\n                &quot;sub_token_url&quot;: null,\n                &quot;subscription_end_date&quot;: null,\n                &quot;subscription_frequency&quot;: null,\n                &quot;subscription_next_transaction_date&quot;: null,\n                &quot;subscription_start_date&quot;: null,\n                &quot;url&quot;: null,\n                &quot;weight&quot;: 0,\n                &quot;width&quot;: 0\n            }\n        ],\n        &quot;fx:payments&quot;: [\n            {\n                &quot;_links&quot;: { },\n                &quot;amount&quot;: 54.2,\n                &quot;cc_exp_month&quot;: &quot;01&quot;,\n                &quot;cc_exp_year&quot;: &quot;2023&quot;,\n                &quot;cc_number_masked&quot;: &quot;xxxxxxxxx4242&quot;,\n                &quot;cc_type&quot;: &quot;Visa&quot;,\n                &quot;date_created&quot;: null,\n                &quot;date_modified&quot;: &quot;2018-03-01T00:00:00-0700&quot;,\n                &quot;fraud_protection_score&quot;: 0,\n                &quot;gateway_type&quot;: &quot;vantiv&quot;,\n                &quot;paypal_payer_id&quot;: null,\n                &quot;processor_response&quot;: &quot;Vantiv Transaction ID: 123456789123456789&quot;,\n                &quot;processor_response_details&quot;: null,\n                &quot;purchase_order&quot;: null,\n                &quot;third_party_id&quot;: null,\n                &quot;type&quot;: &quot;plastic&quot;\n            }\n        ],\n        &quot;fx:shipments&quot;: [\n            {\n                &quot;_links&quot;: { },\n                &quot;address1&quot;: &quot;123 Test Street&quot;,\n                &quot;address2&quot;: &quot;Level 2&quot;,\n                &quot;address_name&quot;: &quot;Me&quot;,\n                &quot;city&quot;: &quot;SAINT PAUL&quot;,\n                &quot;company&quot;: &quot;Some Company&quot;,\n                &quot;country&quot;: &quot;US&quot;,\n                &quot;date_created&quot;: null,\n                &quot;date_modified&quot;: &quot;2018-03-01T00:00:00-0700&quot;,\n                &quot;first_name&quot;: &quot;John&quot;,\n                &quot;last_name&quot;: &quot;Smith&quot;,\n                &quot;phone&quot;: &quot;123456789&quot;,\n                &quot;postal_code&quot;: &quot;55115&quot;,\n                &quot;region&quot;: &quot;MN&quot;,\n                &quot;shipping_service_description&quot;: &quot;USPS Priority Mail 2-Day&quot;,\n                &quot;shipping_service_id&quot;: 14,\n                &quot;total_item_price&quot;: 37.9,\n                &quot;total_price&quot;: 54.2,\n                &quot;total_shipping&quot;: 17.85,\n                &quot;total_tax&quot;: 2.24\n            }\n        ]\n    },\n    &quot;_links&quot;: { },\n    &quot;currency_code&quot;: &quot;USD&quot;,\n    &quot;currency_symbol&quot;: &quot;$&quot;,\n    &quot;customer_email&quot;: &quot;john@example.com&quot;,\n    &quot;customer_first_name&quot;: &quot;John&quot;,\n    &quot;customer_ip&quot;: &quot;193.123.4.56&quot;,\n    &quot;customer_last_name&quot;: &quot;Smith&quot;,\n    &quot;customer_tax_id&quot;: null,\n    &quot;data_is_fed&quot;: true,\n    &quot;date_created&quot;: null,\n    &quot;date_modified&quot;: &quot;2018-03-01T00:00:00-0700&quot;,\n    &quot;display_id&quot;: 3456789,\n    &quot;hide_transaction&quot;: false,\n    &quot;id&quot;: 3456789,\n    &quot;ip_country&quot;: &quot;United States&quot;,\n    &quot;is_new_subscription&quot;: true,\n    &quot;is_test&quot;: true,\n    &quot;locale_code&quot;: &quot;en_US&quot;,\n    &quot;receipt_url&quot;: &quot;https:\u002F\u002Fexample.foxycart.com\u002Freceipt?id=2a5175756293151099587e3b45590376&quot;,\n    &quot;status&quot;: &quot;approved&quot;,\n    &quot;store_id&quot;: &quot;12345&quot;,\n    &quot;store_version&quot;: &quot;2.0&quot;,\n    &quot;total_discount&quot;: -3.79,\n    &quot;total_future_item_price&quot;: 0,\n    &quot;total_future_shipping&quot;: 0,\n    &quot;total_item_price&quot;: 37.9,\n    &quot;total_order&quot;: 54.2,\n    &quot;total_shipping&quot;: 17.85,\n    &quot;total_tax&quot;: 2.24,\n    &quot;transaction_date&quot;: &quot;2018-03-01T00:00:00-0700&quot;,\n    &quot;transaction_type&quot;: &quot;transaction&quot;,\n    &quot;user_agent&quot;: &quot;Mozilla\u002F5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko\u002F20100101 Firefox\u002F47.0&quot;\n}\n\u003C\u002Fpre>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cp>Two extra attributes help identify the transaction:\u003C\u002Fp>\u003Cul>\u003Cli>\u003Cp>\u003Ccode class=\"badge bg-soft-danger text-danger\">transaction_type\u003C\u002Fcode> — what kind of transaction this was: \u003Ccode class=\"badge bg-soft-danger text-danger\">transaction\u003C\u002Fcode>, \u003Ccode class=\"badge bg-soft-danger text-danger\">updateinfo\u003C\u002Fcode>, \u003Ccode class=\"badge bg-soft-danger text-danger\">subscription_modification\u003C\u002Fcode>, \u003Ccode class=\"badge bg-soft-danger text-danger\">subscription_renewal\u003C\u002Fcode>, or \u003Ccode class=\"badge bg-soft-danger text-danger\">subscription_cancellation\u003C\u002Fcode>\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>\u003Ccode class=\"badge bg-soft-danger text-danger\">is_new_subscription\u003C\u002Fcode> — a boolean indicating whether a new subscription is included in this transaction\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003C\u002Fsection>\u003Csection id=\"subscription-cancelled\" data-title=\"Subscription Cancelled\" data-title-node=\"H3\">\u003Ch3 data-anchor-id=\"subscription-cancelled\">Subscription Cancelled\u003C\u002Fh3>\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>{\n    &quot;_embedded&quot;: {\n        &quot;fx:customer&quot;: {\n            &quot;_links&quot;: { },\n            &quot;date_created&quot;: null,\n            &quot;date_modified&quot;: &quot;2019-08-09T23:44:00-0700&quot;,\n            &quot;email&quot;: &quot;john@example.com&quot;,\n            &quot;first_name&quot;: &quot;John&quot;,\n            &quot;forgot_password&quot;: null,\n            &quot;forgot_password_timestamp&quot;: null,\n            &quot;id&quot;: 12345,\n            &quot;is_anonymous&quot;: false,\n            &quot;last_login_date&quot;: &quot;2019-08-09T23:43:49-0700&quot;,\n            &quot;last_name&quot;: &quot;Smith&quot;,\n            &quot;password_hash&quot;: &quot;$2y$13$Jx7p31h18VnW.ab38QaYJu1QCzsyMQZKdY5s21nYewmGQj0OQCyIq&quot;,\n            &quot;password_hash_config&quot;: &quot;13&quot;,\n            &quot;password_hash_type&quot;: &quot;bcrypt&quot;,\n            &quot;password_salt&quot;: null,\n            &quot;tax_id&quot;: null\n        },\n        &quot;fx:transaction_template&quot;: {\n            &quot;_embedded&quot;: {\n                &quot;fx:discounts&quot;: [\n                    {\n                        &quot;_links&quot;: { },\n                        &quot;amount&quot;: -2,\n                        &quot;code&quot;: &quot;coupon&quot;,\n                        &quot;date_created&quot;: null,\n                        &quot;date_modified&quot;: null,\n                        &quot;display&quot;: &quot;-$2.00&quot;,\n                        &quot;is_future_discount&quot;: false,\n                        &quot;is_taxable&quot;: false,\n                        &quot;name&quot;: &quot;Default Discount&quot;\n                    }\n                ],\n                &quot;fx:items&quot;: [\n                    {\n                        &quot;_embedded&quot;: {\n                            &quot;fx:item_category&quot;: {\n                                &quot;_links&quot;: { },\n                                &quot;admin_email&quot;: &quot;john@example.com&quot;,\n                                &quot;admin_email_template_uri&quot;: null,\n                                &quot;code&quot;: &quot;DEFAULT&quot;,\n                                &quot;customer_email_template_uri&quot;: null,\n                                &quot;customs_value&quot;: 0,\n                                &quot;date_created&quot;: null,\n                                &quot;date_modified&quot;: &quot;2019-08-09T23:47:58-0700&quot;,\n                                &quot;default_length_unit&quot;: &quot;IN&quot;,\n                                &quot;default_weight&quot;: 0,\n                                &quot;default_weight_unit&quot;: &quot;LBS&quot;,\n                                &quot;discount_details&quot;: &quot;1-10&quot;,\n                                &quot;discount_name&quot;: &quot;Gift Set&quot;,\n                                &quot;discount_type&quot;: null,\n                                &quot;handling_fee&quot;: 1,\n                                &quot;handling_fee_minimum&quot;: 0,\n                                &quot;handling_fee_percentage&quot;: 10,\n                                &quot;handling_fee_type&quot;: &quot;flat_percent_with_minimum&quot;,\n                                &quot;item_delivery_type&quot;: &quot;flat_rate&quot;,\n                                &quot;max_downloads_per_customer&quot;: 3,\n                                &quot;max_downloads_time_period&quot;: 24,\n                                &quot;name&quot;: &quot;Default for all products&quot;,\n                                &quot;send_admin_email&quot;: false,\n                                &quot;send_customer_email&quot;: false,\n                                &quot;shipping_flat_rate&quot;: 5,\n                                &quot;shipping_flat_rate_type&quot;: &quot;per_order&quot;\n                            }\n                        },\n                        &quot;_links&quot;: { },\n                        &quot;code&quot;: null,\n                        &quot;date_created&quot;: null,\n                        &quot;date_modified&quot;: &quot;2019-08-10T00:40:14-0700&quot;,\n                        &quot;discount_details&quot;: null,\n                        &quot;discount_name&quot;: null,\n                        &quot;discount_type&quot;: null,\n                        &quot;expires&quot;: 0,\n                        &quot;height&quot;: 0,\n                        &quot;image&quot;: null,\n                        &quot;is_future_line_item&quot;: false,\n                        &quot;item_category_uri&quot;: &quot;https:\u002F\u002Fapi.foxycart.com\u002Fitem_categories\u002F100&quot;,\n                        &quot;length&quot;: 0,\n                        &quot;name&quot;: &quot;test&quot;,\n                        &quot;parent_code&quot;: null,\n                        &quot;price&quot;: 20,\n                        &quot;quantity&quot;: 1,\n                        &quot;quantity_max&quot;: 0,\n                        &quot;quantity_min&quot;: 0,\n                        &quot;shipto&quot;: &quot;Me&quot;,\n                        &quot;subscription_end_date&quot;: &quot;2019-08-11T00:00:00-0700&quot;,\n                        &quot;subscription_frequency&quot;: &quot;1y&quot;,\n                        &quot;subscription_next_transaction_date&quot;: &quot;2019-10-24T00:00:00-0700&quot;,\n                        &quot;subscription_start_date&quot;: &quot;2017-10-24T00:00:00-0700&quot;,\n                        &quot;url&quot;: null,\n                        &quot;weight&quot;: 0,\n                        &quot;width&quot;: 0\n                    }\n                ]\n            },\n            &quot;_links&quot;: { },\n            &quot;billing_address1&quot;: &quot;123 Test Street&quot;,\n            &quot;billing_address2&quot;: null,\n            &quot;billing_city&quot;: &quot;SAINT PAUL&quot;,\n            &quot;billing_company&quot;: &quot;Some Company&quot;,\n            &quot;billing_country&quot;: &quot;US&quot;,\n            &quot;billing_first_name&quot;: &quot;John&quot;,\n            &quot;billing_last_name&quot;: &quot;Smith&quot;,\n            &quot;billing_phone&quot;: null,\n            &quot;billing_postal_code&quot;: &quot;5000&quot;,\n            &quot;billing_state&quot;: &quot;MN&quot;,\n            &quot;customer_uri&quot;: &quot;https:\u002F\u002Fapi.foxycart.com\u002Fcustomers\u002F15460475&quot;,\n            &quot;date_created&quot;: null,\n            &quot;date_modified&quot;: &quot;2019-08-10T00:40:14-0700&quot;,\n            &quot;language&quot;: null,\n            &quot;locale_code&quot;: &quot;en_US&quot;,\n            &quot;shipping_address1&quot;: &quot;123 Test Street&quot;,\n            &quot;shipping_address2&quot;: null,\n            &quot;shipping_city&quot;: &quot;SAINT PAUL&quot;,\n            &quot;shipping_company&quot;: &quot;Some Company&quot;,\n            &quot;shipping_country&quot;: &quot;US&quot;,\n            &quot;shipping_first_name&quot;: &quot;John&quot;,\n            &quot;shipping_last_name&quot;: &quot;Smith&quot;,\n            &quot;shipping_phone&quot;: null,\n            &quot;shipping_postal_code&quot;: &quot;5000&quot;,\n            &quot;shipping_state&quot;: &quot;MN&quot;,\n            &quot;template_set_uri&quot;: null,\n            &quot;total_future_shipping&quot;: 0,\n            &quot;total_item_price&quot;: 20,\n            &quot;total_order&quot;: 25,\n            &quot;total_shipping&quot;: 5,\n            &quot;total_tax&quot;: 0,\n            &quot;use_customer_shipping_address&quot;: false\n        }\n    },\n    &quot;_links&quot;: { },\n    &quot;date_created&quot;: null,\n    &quot;date_modified&quot;: &quot;2019-08-11T04:13:01-0700&quot;,\n    &quot;end_date&quot;: &quot;2019-08-11T00:00:00-0700&quot;,\n    &quot;error_message&quot;: null,\n    &quot;first_failed_transaction_date&quot;: null,\n    &quot;frequency&quot;: &quot;1y&quot;,\n    &quot;is_active&quot;: false,\n    &quot;next_transaction_date&quot;: &quot;2019-10-24T00:00:00-0700&quot;,\n    &quot;past_due_amount&quot;: 0,\n    &quot;start_date&quot;: &quot;2017-10-24T00:00:00-0700&quot;,\n    &quot;sub_token_url&quot;: &quot;https:\u002F\u002Fexample.foxycart.com\u002Fcart?sub_token=b37fb078e12ba5ef86773b43e60bdea5124a46f4b5698a5387862cd82042d003c&quot;,\n    &quot;third_party_id&quot;: null\n}\n\u003C\u002Fpre>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fsection>\u003Csection id=\"decrypting-an-encrypted-payload\" data-title=\"Decrypting an encrypted payload\" data-title-node=\"H2\">\u003Chr class=\"my-8\" style=\"margin-left: -48px; margin-right: -40vw\">\u003Ch2 data-anchor-id=\"decrypting-an-encrypted-payload\">Decrypting an encrypted payload\u003C\u002Fh2>\u003Cp>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 \u003Ccode class=\"badge bg-soft-danger text-danger\">:\u003C\u002Fcode> character.\u003C\u002Fp>\u003Cp>To decrypt it:\u003C\u002Fp>\u003Col class=\"step step-icon-sm step-dashed step-border-last-0 mt-3\">\u003Cli class=\"step-item\">\u003Cdiv class=\"step-content-wrapper\">\u003Cspan class=\"step-icon step-icon-soft-primary\">1\u003C\u002Fspan>\u003Cdiv class=\"w-100 overflow-hidden\">\u003Cdiv class=\"step-content mt-2\">\u003Cp>Split the payload into its three parts by the \u003Ccode class=\"badge bg-soft-danger text-danger\">:\u003C\u002Fcode> character.\u003C\u002Fp>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fli>\u003Cli class=\"step-item\">\u003Cdiv class=\"step-content-wrapper\">\u003Cspan class=\"step-icon step-icon-soft-primary\">2\u003C\u002Fspan>\u003Cdiv class=\"w-100 overflow-hidden\">\u003Cdiv class=\"step-content mt-2\">\u003Cp>Confirm validity by securely comparing the MAC value to an HMAC SHA256 digest of the IV and data values concatenated together.\u003C\u002Fp>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fli>\u003Cli class=\"step-item\">\u003Cdiv class=\"step-content-wrapper\">\u003Cspan class=\"step-icon step-icon-soft-primary\">3\u003C\u002Fspan>\u003Cdiv class=\"w-100 overflow-hidden\">\u003Cdiv class=\"step-content mt-2\">\u003Cp>Convert the IV value from hexadecimal to binary.\u003C\u002Fp>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fli>\u003Cli class=\"step-item\">\u003Cdiv class=\"step-content-wrapper\">\u003Cspan class=\"step-icon step-icon-soft-primary\">4\u003C\u002Fspan>\u003Cdiv class=\"w-100 overflow-hidden\">\u003Cdiv class=\"step-content mt-2\">\u003Cp>Create a binary SHA256 hash of the webhook encryption key.\u003C\u002Fp>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fli>\u003Cli class=\"step-item\">\u003Cdiv class=\"step-content-wrapper\">\u003Cspan class=\"step-icon step-icon-soft-primary\">5\u003C\u002Fspan>\u003Cdiv class=\"w-100 overflow-hidden\">\u003Cdiv class=\"step-content mt-2\">\u003Cp>Decrypt the data as AES-256-CBC using the IV and key binary values from the previous two steps.\u003C\u002Fp>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fli>\u003Cli class=\"step-item\">\u003Cdiv class=\"step-content-wrapper\">\u003Cspan class=\"step-icon step-icon-soft-primary\">6\u003C\u002Fspan>\u003Cdiv class=\"w-100 overflow-hidden\">\u003Cdiv class=\"step-content mt-2\">\u003Cp>Parse the decrypted data as JSON.\u003C\u002Fp>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fli>\u003C\u002Fol>\u003C\u002Fsection>\u003Csection id=\"php\" data-title=\"PHP\" data-title-node=\"H3\">\u003Ch3 data-anchor-id=\"php\">PHP\u003C\u002Fh3>\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-meta\">&lt;?php\n\n$parts = explode(&#x27;:&#x27;, $data);\n$mac = $parts[0];\n$iv = $parts[1];\n$data = $parts[2];\n\n$calc_mac = hash(&#x27;sha256&#x27;, &quot;$iv:$data&quot;);\n\nif (hash_equals($calc_mac, $mac)) {\n    $iv = hex2bin($iv);\n    $key = hex2bin(hash(&#x27;sha256&#x27;, FOXY_WEBHOOK_ENCRYPTION_KEY));\n\n    if ($data = openssl_decrypt($data, &#x27;aes-256-cbc&#x27;, $key, 0, $iv)) {\n        $parsedData = json_decode($data, true);\n    } else {\n        while ($msg = openssl_error_string()) {\n            echo(&quot;Openssl error: &quot; . $msg);\n        }\n        http_response_code(500);\n        return;\n    }\n} else {\n    \u002F\u002F Encrypted data corrupted\n    echo(&quot;Encrypted data corrupted&quot;);\n    http_response_code(500);\n    return;\n}\n\u003C\u002Fspan>\u003C\u002Fpre>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fsection>\u003Csection id=\"ruby\" data-title=\"Ruby\" data-title-node=\"H3\">\u003Ch3 data-anchor-id=\"ruby\">Ruby\u003C\u002Fh3>\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>mac, iv, data = data.split(&quot;:&quot;)\ncalc_mac = Digest::SHA256.hexdigest(&quot;#{iv}:#{data}&quot;)\n\nif Rack::Utils.secure_compare(calc_mac, mac)\n    begin\n        data = Base64::decode64(data)\n        decipher = OpenSSL::Cipher::Cipher.new(&#x27;aes-256-cbc&#x27;)\n        decipher.decrypt\n        decipher.key = Digest::SHA256.digest(ENV[&#x27;FOXY_WEBHOOK_ENCRYPTION_KEY&#x27;])\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, &quot;Unable to decrpyt data&quot;)\n    end\nelse\n    halt(500, &quot;Encrypted data corrupted&quot;)\nend\n\u003C\u002Fpre>\u003C\u002Fdiv>\u003C\u002Fdiv>\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>Avoid storing your webhook encryption key directly in your codebase — store it as an environment variable instead.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>Always use a secure\u002Fconstant-time comparison method when comparing signatures or MAC values, rather than a direct equality check.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003C\u002Fsection>",[722,725,727,730,732,734,736,738],{"id":723,"title":339,"level":724},"headers","H2",{"id":726,"title":500,"level":724},"example-payloads",{"id":728,"title":522,"level":729},"transaction-created","H3",{"id":731,"title":589,"level":729},"subscription-cancelled",{"id":733,"title":599,"level":724},"decrypting-an-encrypted-payload",{"id":735,"title":670,"level":729},"php",{"id":737,"title":680,"level":729},"ruby",{"id":739,"title":690,"level":724},"notes",[741],{"type":742,"content":743},"html","\u003Cp>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.\u003C\u002Fp>\u003Ch2>Headers\u003C\u002Fh2>\u003Cp>Every legacy webhook request includes these headers:\u003C\u002Fp>\u003Cdiv class=\"table-responsive w-100\">\u003Ctable class=\"table table-lg table-bordered my-5\">\u003Cthead>\u003Ctr>\u003Cth>\u003Cp>Header\u003C\u002Fp>\u003C\u002Fth>\u003Cth>\u003Cp>Description\u003C\u002Fp>\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd>\u003Cp>\u003Ccode class=\"badge bg-soft-danger text-danger\">Foxy-Webhook-Event\u003C\u002Fcode>\u003C\u002Fp>\u003C\u002Ftd>\u003Ctd>\u003Cp>Name of the event that triggered this payload. Currently \u003Ccode class=\"badge bg-soft-danger text-danger\">transaction\u002Fcreated\u003C\u002Fcode>, \u003Ccode class=\"badge bg-soft-danger text-danger\">transaction\u002Fcaptured\u003C\u002Fcode>, \u003Ccode class=\"badge bg-soft-danger text-danger\">transaction\u002Frefunded\u003C\u002Fcode>, \u003Ccode class=\"badge bg-soft-danger text-danger\">transaction\u002Fvoided\u003C\u002Fcode>, \u003Ccode class=\"badge bg-soft-danger text-danger\">subscription\u002Fcancelled\u003C\u002Fcode>\u003C\u002Fp>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Cp>\u003Ccode class=\"badge bg-soft-danger text-danger\">Foxy-Webhook-Signature\u003C\u002Fcode>\u003C\u002Fp>\u003C\u002Ftd>\u003Ctd>\u003Cp>An HMAC SHA256 signature of the payload, using the webhook’s encryption key. Used to verify the contents of the payload\u003C\u002Fp>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Cp>\u003Ccode class=\"badge bg-soft-danger text-danger\">Foxy-Webhook-Refeed\u003C\u002Fcode>\u003C\u002Fp>\u003C\u002Ftd>\u003Ctd>\u003Cp>A boolean signifying whether this payload has been refed. If false, this is the first time this instance of the event has been triggered\u003C\u002Fp>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Cp>\u003Ccode class=\"badge bg-soft-danger text-danger\">Foxy-Store-ID\u003C\u002Fcode>\u003C\u002Fp>\u003C\u002Ftd>\u003Ctd>\u003Cp>The ID of the store this webhook was triggered for\u003C\u002Fp>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Cp>\u003Ccode class=\"badge bg-soft-danger text-danger\">Foxy-Store-Domain\u003C\u002Fcode>\u003C\u002Fp>\u003C\u002Ftd>\u003Ctd>\u003Cp>The store domain this webhook was triggered for\u003C\u002Fp>\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\u003Ch2>Example payloads\u003C\u002Fh2>\u003Cp>The payload follows the same structure as the Hypermedia API. Most objects include the API’s \u003Ccode class=\"badge bg-soft-danger text-danger\">_links\u003C\u002Fcode> 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, \u003Ccode class=\"badge bg-soft-danger text-danger\">_links\u003C\u002Fcode> arrays have been cleared out to save space.\u003C\u002Fp>\u003Ch3>Transaction Created\u003C\u002Fh3>\u003Cpre>\u003Ccode>{\n    &quot;_embedded&quot;: {\n        &quot;fx:applied_taxes&quot;: [\n            {\n                &quot;_links&quot;: { },\n                &quot;amount&quot;: 2.24,\n                &quot;apply_to_handling&quot;: true,\n                &quot;apply_to_shipping&quot;: true,\n                &quot;date_created&quot;: null,\n                &quot;date_modified&quot;: null,\n                &quot;is_future_tax&quot;: false,\n                &quot;name&quot;: &quot;Global Tax&quot;,\n                &quot;rate&quot;: 5,\n                &quot;shipto&quot;: null\n            }\n        ],\n        &quot;fx:billing_addresses&quot;: [\n            {\n                &quot;_links&quot;: { },\n                &quot;address1&quot;: &quot;123 Test Street&quot;,\n                &quot;address2&quot;: &quot;Level 2&quot;,\n                &quot;address_name&quot;: &quot;Default Billing Address&quot;,\n                &quot;city&quot;: &quot;SAINT PAUL&quot;,\n                &quot;company&quot;: &quot;Some Company&quot;,\n                &quot;customer_country&quot;: &quot;US&quot;,\n                &quot;customer_phone&quot;: &quot;123456789&quot;,\n                &quot;customer_postal_code&quot;: &quot;55115&quot;,\n                &quot;date_created&quot;: null,\n                &quot;date_modified&quot;: &quot;2018-03-01T00:00:00-0700&quot;,\n                &quot;first_name&quot;: &quot;John&quot;,\n                &quot;last_name&quot;: &quot;Smith&quot;,\n                &quot;region&quot;: &quot;MN&quot;\n            }\n        ],\n        &quot;fx:custom_fields&quot;: [\n            {\n                &quot;_links&quot;: { },\n                &quot;date_created&quot;: null,\n                &quot;date_modified&quot;: null,\n                &quot;is_hidden&quot;: true,\n                &quot;name&quot;: &quot;custom_attribute&quot;,\n                &quot;value&quot;: &quot;reseller&quot;\n            },\n            {\n                &quot;_links&quot;: { },\n                &quot;date_created&quot;: null,\n                &quot;date_modified&quot;: null,\n                &quot;is_hidden&quot;: false,\n                &quot;name&quot;: &quot;newsletter_subscribe&quot;,\n                &quot;value&quot;: &quot;1&quot;\n            }\n        ],\n        &quot;fx:customer&quot;: {\n            &quot;_links&quot;: { },\n            &quot;date_created&quot;: null,\n            &quot;date_modified&quot;: null,\n            &quot;email&quot;: &quot;john@example.com&quot;,\n            &quot;first_name&quot;: &quot;John&quot;,\n            &quot;forgot_password&quot;: null,\n            &quot;forgot_password_timestamp&quot;: null,\n            &quot;id&quot;: 12345,\n            &quot;is_anonymous&quot;: false,\n            &quot;last_login_date&quot;: &quot;2018-03-01T00:00:00-0700&quot;,\n            &quot;last_name&quot;: &quot;Smith&quot;,\n            &quot;password_hash&quot;: &quot;$2y$13$Jx7p31h18VnW.ab38QaYJu1QCzsyMQZKdY5s21nYewmGQj0OQCyIq&quot;,\n            &quot;password_hash_config&quot;: &quot;13&quot;,\n            &quot;password_hash_type&quot;: &quot;bcrypt&quot;,\n            &quot;password_salt&quot;: null,\n            &quot;tax_id&quot;: null\n        },\n        &quot;fx:discounts&quot;: [\n            {\n                &quot;_links&quot;: { },\n                &quot;amount&quot;: -3.79,\n                &quot;code&quot;: &quot;my-code&quot;,\n                &quot;date_created&quot;: null,\n                &quot;date_modified&quot;: null,\n                &quot;display&quot;: &quot;-$3.79&quot;,\n                &quot;is_future_discount&quot;: false,\n                &quot;is_taxable&quot;: false,\n                &quot;name&quot;: &quot;Special Offer&quot;\n            }\n        ],\n        &quot;fx:items&quot;: [\n            {\n                &quot;_embedded&quot;: {\n                    &quot;fx:item_category&quot;: {\n                        &quot;_links&quot;: { },\n                        &quot;admin_email&quot;: null,\n                        &quot;admin_email_template_uri&quot;: null,\n                        &quot;code&quot;: &quot;DEFAULT&quot;,\n                        &quot;customer_email_template_uri&quot;: null,\n                        &quot;customs_value&quot;: 0,\n                        &quot;date_created&quot;: null,\n                        &quot;date_modified&quot;: null,\n                        &quot;default_length_unit&quot;: &quot;IN&quot;,\n                        &quot;default_weight&quot;: 0,\n                        &quot;default_weight_unit&quot;: &quot;LBS&quot;,\n                        &quot;discount_details&quot;: &quot;single|3-5|5-10&quot;,\n                        &quot;discount_name&quot;: &quot;Bulk Order&quot;,\n                        &quot;discount_type&quot;: &quot;quantity_percentage&quot;,\n                        &quot;handling_fee&quot;: 1,\n                        &quot;handling_fee_minimum&quot;: 0,\n                        &quot;handling_fee_percentage&quot;: 80,\n                        &quot;handling_fee_type&quot;: &quot;none&quot;,\n                        &quot;item_delivery_type&quot;: &quot;flat_rate&quot;,\n                        &quot;max_downloads_per_customer&quot;: 3,\n                        &quot;max_downloads_time_period&quot;: 24,\n                        &quot;name&quot;: &quot;Default for all products&quot;,\n                        &quot;send_admin_email&quot;: false,\n                        &quot;send_customer_email&quot;: false,\n                        &quot;shipping_flat_rate&quot;: 2,\n                        &quot;shipping_flat_rate_type&quot;: &quot;per_item&quot;\n                    },\n                    &quot;fx:item_options&quot;: [\n                        {\n                            &quot;_links&quot;: { },\n                            &quot;date_created&quot;: null,\n                            &quot;date_modified&quot;: null,\n                            &quot;name&quot;: &quot;size&quot;,\n                            &quot;price_mod&quot;: 0,\n                            &quot;value&quot;: &quot;Large&quot;,\n                            &quot;weight_mod&quot;: 0\n                        },\n                        {\n                            &quot;_links&quot;: { },\n                            &quot;date_created&quot;: null,\n                            &quot;date_modified&quot;: null,\n                            &quot;name&quot;: &quot;color&quot;,\n                            &quot;price_mod&quot;: 0,\n                            &quot;value&quot;: &quot;Blue&quot;,\n                            &quot;weight_mod&quot;: 0\n                        },\n                        {\n                            &quot;_links&quot;: { },\n                            &quot;date_created&quot;: null,\n                            &quot;date_modified&quot;: null,\n                            &quot;name&quot;: &quot;Bulk Order&quot;,\n                            &quot;price_mod&quot;: -0.11,\n                            &quot;value&quot;: &quot;-2%&quot;,\n                            &quot;weight_mod&quot;: 0\n                        }\n                    ]\n                },\n                &quot;_links&quot;: { },\n                &quot;base_price&quot;: 5.5,\n                &quot;code&quot;: &quot;my-widget&quot;,\n                &quot;date_created&quot;: null,\n                &quot;date_modified&quot;: &quot;2018-03-01T00:00:00-0700&quot;,\n                &quot;delivery_type&quot;: &quot;flat_rate&quot;,\n                &quot;discount_details&quot;: null,\n                &quot;discount_name&quot;: null,\n                &quot;discount_type&quot;: null,\n                &quot;downloadable_url&quot;: null,\n                &quot;expires&quot;: 0,\n                &quot;height&quot;: 0,\n                &quot;image&quot;: null,\n                &quot;is_future_line_item&quot;: false,\n                &quot;item_category_uri&quot;: &quot;https:\u002F\u002Fapi.foxycart.com\u002Fitem_categories\u002F100&quot;,\n                &quot;length&quot;: 0,\n                &quot;name&quot;: &quot;My Widget&quot;,\n                &quot;parent_code&quot;: null,\n                &quot;price&quot;: 5.5,\n                &quot;quantity&quot;: 5,\n                &quot;quantity_max&quot;: 0,\n                &quot;quantity_min&quot;: 0,\n                &quot;shipto&quot;: null,\n                &quot;sub_token_url&quot;: null,\n                &quot;subscription_end_date&quot;: null,\n                &quot;subscription_frequency&quot;: null,\n                &quot;subscription_next_transaction_date&quot;: null,\n                &quot;subscription_start_date&quot;: null,\n                &quot;url&quot;: null,\n                &quot;weight&quot;: 0,\n                &quot;width&quot;: 0\n            }\n        ],\n        &quot;fx:payments&quot;: [\n            {\n                &quot;_links&quot;: { },\n                &quot;amount&quot;: 54.2,\n                &quot;cc_exp_month&quot;: &quot;01&quot;,\n                &quot;cc_exp_year&quot;: &quot;2023&quot;,\n                &quot;cc_number_masked&quot;: &quot;xxxxxxxxx4242&quot;,\n                &quot;cc_type&quot;: &quot;Visa&quot;,\n                &quot;date_created&quot;: null,\n                &quot;date_modified&quot;: &quot;2018-03-01T00:00:00-0700&quot;,\n                &quot;fraud_protection_score&quot;: 0,\n                &quot;gateway_type&quot;: &quot;vantiv&quot;,\n                &quot;paypal_payer_id&quot;: null,\n                &quot;processor_response&quot;: &quot;Vantiv Transaction ID: 123456789123456789&quot;,\n                &quot;processor_response_details&quot;: null,\n                &quot;purchase_order&quot;: null,\n                &quot;third_party_id&quot;: null,\n                &quot;type&quot;: &quot;plastic&quot;\n            }\n        ],\n        &quot;fx:shipments&quot;: [\n            {\n                &quot;_links&quot;: { },\n                &quot;address1&quot;: &quot;123 Test Street&quot;,\n                &quot;address2&quot;: &quot;Level 2&quot;,\n                &quot;address_name&quot;: &quot;Me&quot;,\n                &quot;city&quot;: &quot;SAINT PAUL&quot;,\n                &quot;company&quot;: &quot;Some Company&quot;,\n                &quot;country&quot;: &quot;US&quot;,\n                &quot;date_created&quot;: null,\n                &quot;date_modified&quot;: &quot;2018-03-01T00:00:00-0700&quot;,\n                &quot;first_name&quot;: &quot;John&quot;,\n                &quot;last_name&quot;: &quot;Smith&quot;,\n                &quot;phone&quot;: &quot;123456789&quot;,\n                &quot;postal_code&quot;: &quot;55115&quot;,\n                &quot;region&quot;: &quot;MN&quot;,\n                &quot;shipping_service_description&quot;: &quot;USPS Priority Mail 2-Day&quot;,\n                &quot;shipping_service_id&quot;: 14,\n                &quot;total_item_price&quot;: 37.9,\n                &quot;total_price&quot;: 54.2,\n                &quot;total_shipping&quot;: 17.85,\n                &quot;total_tax&quot;: 2.24\n            }\n        ]\n    },\n    &quot;_links&quot;: { },\n    &quot;currency_code&quot;: &quot;USD&quot;,\n    &quot;currency_symbol&quot;: &quot;$&quot;,\n    &quot;customer_email&quot;: &quot;john@example.com&quot;,\n    &quot;customer_first_name&quot;: &quot;John&quot;,\n    &quot;customer_ip&quot;: &quot;193.123.4.56&quot;,\n    &quot;customer_last_name&quot;: &quot;Smith&quot;,\n    &quot;customer_tax_id&quot;: null,\n    &quot;data_is_fed&quot;: true,\n    &quot;date_created&quot;: null,\n    &quot;date_modified&quot;: &quot;2018-03-01T00:00:00-0700&quot;,\n    &quot;display_id&quot;: 3456789,\n    &quot;hide_transaction&quot;: false,\n    &quot;id&quot;: 3456789,\n    &quot;ip_country&quot;: &quot;United States&quot;,\n    &quot;is_new_subscription&quot;: true,\n    &quot;is_test&quot;: true,\n    &quot;locale_code&quot;: &quot;en_US&quot;,\n    &quot;receipt_url&quot;: &quot;https:\u002F\u002Fexample.foxycart.com\u002Freceipt?id=2a5175756293151099587e3b45590376&quot;,\n    &quot;status&quot;: &quot;approved&quot;,\n    &quot;store_id&quot;: &quot;12345&quot;,\n    &quot;store_version&quot;: &quot;2.0&quot;,\n    &quot;total_discount&quot;: -3.79,\n    &quot;total_future_item_price&quot;: 0,\n    &quot;total_future_shipping&quot;: 0,\n    &quot;total_item_price&quot;: 37.9,\n    &quot;total_order&quot;: 54.2,\n    &quot;total_shipping&quot;: 17.85,\n    &quot;total_tax&quot;: 2.24,\n    &quot;transaction_date&quot;: &quot;2018-03-01T00:00:00-0700&quot;,\n    &quot;transaction_type&quot;: &quot;transaction&quot;,\n    &quot;user_agent&quot;: &quot;Mozilla\u002F5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko\u002F20100101 Firefox\u002F47.0&quot;\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>Two extra attributes help identify the transaction:\u003C\u002Fp>\u003Cul>\u003Cli>\u003Cp>\u003Ccode class=\"badge bg-soft-danger text-danger\">transaction_type\u003C\u002Fcode> — what kind of transaction this was: \u003Ccode class=\"badge bg-soft-danger text-danger\">transaction\u003C\u002Fcode>, \u003Ccode class=\"badge bg-soft-danger text-danger\">updateinfo\u003C\u002Fcode>, \u003Ccode class=\"badge bg-soft-danger text-danger\">subscription_modification\u003C\u002Fcode>, \u003Ccode class=\"badge bg-soft-danger text-danger\">subscription_renewal\u003C\u002Fcode>, or \u003Ccode class=\"badge bg-soft-danger text-danger\">subscription_cancellation\u003C\u002Fcode>\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>\u003Ccode class=\"badge bg-soft-danger text-danger\">is_new_subscription\u003C\u002Fcode> — a boolean indicating whether a new subscription is included in this transaction\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Ch3>Subscription Cancelled\u003C\u002Fh3>\u003Cpre>\u003Ccode>{\n    &quot;_embedded&quot;: {\n        &quot;fx:customer&quot;: {\n            &quot;_links&quot;: { },\n            &quot;date_created&quot;: null,\n            &quot;date_modified&quot;: &quot;2019-08-09T23:44:00-0700&quot;,\n            &quot;email&quot;: &quot;john@example.com&quot;,\n            &quot;first_name&quot;: &quot;John&quot;,\n            &quot;forgot_password&quot;: null,\n            &quot;forgot_password_timestamp&quot;: null,\n            &quot;id&quot;: 12345,\n            &quot;is_anonymous&quot;: false,\n            &quot;last_login_date&quot;: &quot;2019-08-09T23:43:49-0700&quot;,\n            &quot;last_name&quot;: &quot;Smith&quot;,\n            &quot;password_hash&quot;: &quot;$2y$13$Jx7p31h18VnW.ab38QaYJu1QCzsyMQZKdY5s21nYewmGQj0OQCyIq&quot;,\n            &quot;password_hash_config&quot;: &quot;13&quot;,\n            &quot;password_hash_type&quot;: &quot;bcrypt&quot;,\n            &quot;password_salt&quot;: null,\n            &quot;tax_id&quot;: null\n        },\n        &quot;fx:transaction_template&quot;: {\n            &quot;_embedded&quot;: {\n                &quot;fx:discounts&quot;: [\n                    {\n                        &quot;_links&quot;: { },\n                        &quot;amount&quot;: -2,\n                        &quot;code&quot;: &quot;coupon&quot;,\n                        &quot;date_created&quot;: null,\n                        &quot;date_modified&quot;: null,\n                        &quot;display&quot;: &quot;-$2.00&quot;,\n                        &quot;is_future_discount&quot;: false,\n                        &quot;is_taxable&quot;: false,\n                        &quot;name&quot;: &quot;Default Discount&quot;\n                    }\n                ],\n                &quot;fx:items&quot;: [\n                    {\n                        &quot;_embedded&quot;: {\n                            &quot;fx:item_category&quot;: {\n                                &quot;_links&quot;: { },\n                                &quot;admin_email&quot;: &quot;john@example.com&quot;,\n                                &quot;admin_email_template_uri&quot;: null,\n                                &quot;code&quot;: &quot;DEFAULT&quot;,\n                                &quot;customer_email_template_uri&quot;: null,\n                                &quot;customs_value&quot;: 0,\n                                &quot;date_created&quot;: null,\n                                &quot;date_modified&quot;: &quot;2019-08-09T23:47:58-0700&quot;,\n                                &quot;default_length_unit&quot;: &quot;IN&quot;,\n                                &quot;default_weight&quot;: 0,\n                                &quot;default_weight_unit&quot;: &quot;LBS&quot;,\n                                &quot;discount_details&quot;: &quot;1-10&quot;,\n                                &quot;discount_name&quot;: &quot;Gift Set&quot;,\n                                &quot;discount_type&quot;: null,\n                                &quot;handling_fee&quot;: 1,\n                                &quot;handling_fee_minimum&quot;: 0,\n                                &quot;handling_fee_percentage&quot;: 10,\n                                &quot;handling_fee_type&quot;: &quot;flat_percent_with_minimum&quot;,\n                                &quot;item_delivery_type&quot;: &quot;flat_rate&quot;,\n                                &quot;max_downloads_per_customer&quot;: 3,\n                                &quot;max_downloads_time_period&quot;: 24,\n                                &quot;name&quot;: &quot;Default for all products&quot;,\n                                &quot;send_admin_email&quot;: false,\n                                &quot;send_customer_email&quot;: false,\n                                &quot;shipping_flat_rate&quot;: 5,\n                                &quot;shipping_flat_rate_type&quot;: &quot;per_order&quot;\n                            }\n                        },\n                        &quot;_links&quot;: { },\n                        &quot;code&quot;: null,\n                        &quot;date_created&quot;: null,\n                        &quot;date_modified&quot;: &quot;2019-08-10T00:40:14-0700&quot;,\n                        &quot;discount_details&quot;: null,\n                        &quot;discount_name&quot;: null,\n                        &quot;discount_type&quot;: null,\n                        &quot;expires&quot;: 0,\n                        &quot;height&quot;: 0,\n                        &quot;image&quot;: null,\n                        &quot;is_future_line_item&quot;: false,\n                        &quot;item_category_uri&quot;: &quot;https:\u002F\u002Fapi.foxycart.com\u002Fitem_categories\u002F100&quot;,\n                        &quot;length&quot;: 0,\n                        &quot;name&quot;: &quot;test&quot;,\n                        &quot;parent_code&quot;: null,\n                        &quot;price&quot;: 20,\n                        &quot;quantity&quot;: 1,\n                        &quot;quantity_max&quot;: 0,\n                        &quot;quantity_min&quot;: 0,\n                        &quot;shipto&quot;: &quot;Me&quot;,\n                        &quot;subscription_end_date&quot;: &quot;2019-08-11T00:00:00-0700&quot;,\n                        &quot;subscription_frequency&quot;: &quot;1y&quot;,\n                        &quot;subscription_next_transaction_date&quot;: &quot;2019-10-24T00:00:00-0700&quot;,\n                        &quot;subscription_start_date&quot;: &quot;2017-10-24T00:00:00-0700&quot;,\n                        &quot;url&quot;: null,\n                        &quot;weight&quot;: 0,\n                        &quot;width&quot;: 0\n                    }\n                ]\n            },\n            &quot;_links&quot;: { },\n            &quot;billing_address1&quot;: &quot;123 Test Street&quot;,\n            &quot;billing_address2&quot;: null,\n            &quot;billing_city&quot;: &quot;SAINT PAUL&quot;,\n            &quot;billing_company&quot;: &quot;Some Company&quot;,\n            &quot;billing_country&quot;: &quot;US&quot;,\n            &quot;billing_first_name&quot;: &quot;John&quot;,\n            &quot;billing_last_name&quot;: &quot;Smith&quot;,\n            &quot;billing_phone&quot;: null,\n            &quot;billing_postal_code&quot;: &quot;5000&quot;,\n            &quot;billing_state&quot;: &quot;MN&quot;,\n            &quot;customer_uri&quot;: &quot;https:\u002F\u002Fapi.foxycart.com\u002Fcustomers\u002F15460475&quot;,\n            &quot;date_created&quot;: null,\n            &quot;date_modified&quot;: &quot;2019-08-10T00:40:14-0700&quot;,\n            &quot;language&quot;: null,\n            &quot;locale_code&quot;: &quot;en_US&quot;,\n            &quot;shipping_address1&quot;: &quot;123 Test Street&quot;,\n            &quot;shipping_address2&quot;: null,\n            &quot;shipping_city&quot;: &quot;SAINT PAUL&quot;,\n            &quot;shipping_company&quot;: &quot;Some Company&quot;,\n            &quot;shipping_country&quot;: &quot;US&quot;,\n            &quot;shipping_first_name&quot;: &quot;John&quot;,\n            &quot;shipping_last_name&quot;: &quot;Smith&quot;,\n            &quot;shipping_phone&quot;: null,\n            &quot;shipping_postal_code&quot;: &quot;5000&quot;,\n            &quot;shipping_state&quot;: &quot;MN&quot;,\n            &quot;template_set_uri&quot;: null,\n            &quot;total_future_shipping&quot;: 0,\n            &quot;total_item_price&quot;: 20,\n            &quot;total_order&quot;: 25,\n            &quot;total_shipping&quot;: 5,\n            &quot;total_tax&quot;: 0,\n            &quot;use_customer_shipping_address&quot;: false\n        }\n    },\n    &quot;_links&quot;: { },\n    &quot;date_created&quot;: null,\n    &quot;date_modified&quot;: &quot;2019-08-11T04:13:01-0700&quot;,\n    &quot;end_date&quot;: &quot;2019-08-11T00:00:00-0700&quot;,\n    &quot;error_message&quot;: null,\n    &quot;first_failed_transaction_date&quot;: null,\n    &quot;frequency&quot;: &quot;1y&quot;,\n    &quot;is_active&quot;: false,\n    &quot;next_transaction_date&quot;: &quot;2019-10-24T00:00:00-0700&quot;,\n    &quot;past_due_amount&quot;: 0,\n    &quot;start_date&quot;: &quot;2017-10-24T00:00:00-0700&quot;,\n    &quot;sub_token_url&quot;: &quot;https:\u002F\u002Fexample.foxycart.com\u002Fcart?sub_token=b37fb078e12ba5ef86773b43e60bdea5124a46f4b5698a5387862cd82042d003c&quot;,\n    &quot;third_party_id&quot;: null\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch2>Decrypting an encrypted payload\u003C\u002Fh2>\u003Cp>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 \u003Ccode class=\"badge bg-soft-danger text-danger\">:\u003C\u002Fcode> character.\u003C\u002Fp>\u003Cp>To decrypt it:\u003C\u002Fp>\u003Col order=\"1\">\u003Cli>\u003Cp>Split the payload into its three parts by the \u003Ccode class=\"badge bg-soft-danger text-danger\">:\u003C\u002Fcode> character.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>Confirm validity by securely comparing the MAC value to an HMAC SHA256 digest of the IV and data values concatenated together.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>Convert the IV value from hexadecimal to binary.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>Create a binary SHA256 hash of the webhook encryption key.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>Decrypt the data as AES-256-CBC using the IV and key binary values from the previous two steps.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>Parse the decrypted data as JSON.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Fol>\u003Ch3>PHP\u003C\u002Fh3>\u003Cpre>\u003Ccode>&lt;?php\n\n$parts = explode(&#039;:&#039;, $data);\n$mac = $parts[0];\n$iv = $parts[1];\n$data = $parts[2];\n\n$calc_mac = hash(&#039;sha256&#039;, &quot;$iv:$data&quot;);\n\nif (hash_equals($calc_mac, $mac)) {\n    $iv = hex2bin($iv);\n    $key = hex2bin(hash(&#039;sha256&#039;, FOXY_WEBHOOK_ENCRYPTION_KEY));\n\n    if ($data = openssl_decrypt($data, &#039;aes-256-cbc&#039;, $key, 0, $iv)) {\n        $parsedData = json_decode($data, true);\n    } else {\n        while ($msg = openssl_error_string()) {\n            echo(&quot;Openssl error: &quot; . $msg);\n        }\n        http_response_code(500);\n        return;\n    }\n} else {\n    \u002F\u002F Encrypted data corrupted\n    echo(&quot;Encrypted data corrupted&quot;);\n    http_response_code(500);\n    return;\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch3>Ruby\u003C\u002Fh3>\u003Cpre>\u003Ccode>mac, iv, data = data.split(&quot;:&quot;)\ncalc_mac = Digest::SHA256.hexdigest(&quot;#{iv}:#{data}&quot;)\n\nif Rack::Utils.secure_compare(calc_mac, mac)\n    begin\n        data = Base64::decode64(data)\n        decipher = OpenSSL::Cipher::Cipher.new(&#039;aes-256-cbc&#039;)\n        decipher.decrypt\n        decipher.key = Digest::SHA256.digest(ENV[&#039;FOXY_WEBHOOK_ENCRYPTION_KEY&#039;])\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, &quot;Unable to decrpyt data&quot;)\n    end\nelse\n    halt(500, &quot;Encrypted data corrupted&quot;)\nend\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch2>Notes\u003C\u002Fh2>\u003Cul>\u003Cli>\u003Cp>Avoid storing your webhook encryption key directly in your codebase — store it as an environment variable instead.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>Always use a secure\u002Fconstant-time comparison method when comparing signatures or MAC values, rather than a direct equality check.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>",{"name":745,"created_at":746,"published_at":747,"updated_at":748,"id":749,"uuid":47,"content":750,"slug":48,"full_slug":48,"sort_by_date":59,"position":930,"tag_list":931,"is_startpage":24,"parent_id":59,"meta_data":59,"group_id":932,"first_published_at":933,"release_id":59,"lang":65,"path":59,"alternates":934,"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":751,"_uid":754,"title":755,"action":756,"fields":757,"method":906,"columns":907,"subtitle":921,"component":48,"button_text":927,"submit_title":928,"submit_subtitle":929},{"_uid":752,"title":745,"plugin":753,"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",[758,763,767,877,880,885,900],{"_uid":759,"name":760,"type":332,"label":761,"options":13,"required":33,"component":762,"placeholder":13},"9a70b226-2036-4f90-a052-b3efa61c5896","name","Name","form___field",{"_uid":764,"name":765,"type":765,"label":766,"options":13,"required":33,"component":762,"placeholder":13},"86ba35be-ff43-4a28-8633-14052a8f6622","email","Email Address",{"_uid":768,"name":769,"type":770,"label":771,"options":772,"required":33,"component":762,"conditions":773,"placeholder":13},"3f827475-492c-4f97-aa1e-2386ac263b6c","topic","select","Topic","Presales, Support, Billing, Partnerships, Order Enquiry, Other",[774,831,841,848,856,864,870],{"_uid":775,"equals":776,"fields":777,"component":830},"e21d97dd-e68e-4fa6-ba97-bc40f3041dde","Order Enquiry",[778],{"_uid":779,"body":780,"type":828,"title":13,"component":829},"b64992bc-6d53-48b8-b7a0-d81e5a062e50",{"type":324,"content":781},[782],{"type":327,"content":783},[784,786,794,796,798,799,804,806,811,819,821,826],{"text":785,"type":332},"We are ",{"text":787,"type":332,"marks":788},"Foxy.io",[789],{"type":790,"attrs":791},"link",{"href":792,"uuid":59,"anchor":59,"custom":793,"target":59,"linktype":31},"http:\u002F\u002FFoxy.io",{},{"text":795,"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":797},"hard_break",{"type":797},{"text":800,"type":332,"marks":801},"NOTE:",[802],{"type":803},"bold",{"text":805,"type":332}," We are ",{"text":807,"type":332,"marks":808},"not ",[809],{"type":810},"italic",{"text":812,"type":332,"marks":813},"Foxy.in",[814,818],{"type":790,"attrs":815},{"href":816,"uuid":59,"anchor":59,"custom":817,"target":59,"linktype":31},"http:\u002F\u002FFoxy.in",{},{"type":810},{"text":820,"type":332},". We are not in any way affiliated with ",{"text":812,"type":332,"marks":822},[823],{"type":790,"attrs":824},{"href":816,"uuid":59,"anchor":59,"custom":825,"target":59,"linktype":31},{},{"text":827,"type":332},", and cannot help in any way with your order from that website.","danger","global___alert","form___condition",{"_uid":832,"equals":833,"fields":834,"component":830},"8765c3e1-25cf-44aa-b8ea-fc6094acf9c3","Presales",[835],{"_uid":836,"name":837,"type":838,"label":13,"options":13,"required":24,"component":762,"conditions":839,"placeholder":13,"default_value":840},"cf464f8e-d643-4f6e-af29-d3abffaf7380","department_email_address","hidden",[],"hello@foxy.io",{"_uid":842,"equals":208,"fields":843,"component":830},"4007b6d8-77e5-421d-bd1e-6f336dd853fb",[844],{"_uid":845,"name":837,"type":838,"label":13,"options":13,"required":24,"component":762,"conditions":846,"placeholder":13,"default_value":847},"7b4c6aa5-a68c-45e0-9ce1-0a36af10c0c2",[],"help@foxy.io",{"_uid":849,"equals":850,"fields":851,"component":830},"1dbb8f11-613d-43cd-9e09-1b94f6e19219","Billing",[852],{"_uid":853,"name":837,"type":838,"label":13,"options":13,"required":24,"component":762,"conditions":854,"placeholder":13,"default_value":855},"a0ac0d1b-bc4f-4a6c-a682-581d450b0b73",[],"help+billing@foxy.io",{"_uid":857,"equals":858,"fields":859,"component":830},"a0a53a50-7172-4a29-ba58-181e38874e12","Partnerships",[860],{"_uid":861,"name":837,"type":838,"label":13,"options":13,"required":24,"component":762,"conditions":862,"placeholder":13,"default_value":863},"7aa011d9-f374-4aed-b5a5-929b54aaf152",[],"partners@foxy.io",{"_uid":865,"equals":776,"fields":866,"component":830},"a4cd431f-25d5-41c7-bfdc-02c908c8fb47",[867],{"_uid":868,"name":837,"type":838,"label":13,"options":13,"required":24,"component":762,"conditions":869,"placeholder":13,"default_value":840},"f5d52168-d6ae-451b-94ee-2ced1cbd28ad",[],{"_uid":871,"equals":872,"fields":873,"component":830},"25aba1ed-eb41-4bbc-aa89-f7a7167ea86e","Other",[874],{"_uid":875,"name":837,"type":838,"label":13,"options":13,"required":24,"component":762,"conditions":876,"placeholder":13,"default_value":840},"f40dfaef-c203-4b71-bf4e-e1b43cef192b",[],{"_uid":878,"component":879},"e9c53a05-f40a-4510-aaf8-bc072a235a0c","form___subject",{"_uid":881,"name":882,"type":883,"label":884,"options":13,"required":33,"component":762,"placeholder":13},"a4c4d385-fff4-4978-99fb-b68cfea623d6","message","textarea","Message",{"_uid":886,"name":887,"type":770,"label":888,"options":889,"required":33,"component":762,"conditions":890,"placeholder":13},"8a3c9f85-f438-427d-9c7a-d7b295a14b5b","existing_user","Are you an existing user?","No, Yes",[891],{"_uid":892,"equals":893,"fields":894,"component":830},"115933d6-262a-4b59-8fa8-579c5ad73de1","Yes",[895],{"_uid":896,"name":897,"type":332,"label":898,"options":13,"required":33,"component":762,"conditions":899,"placeholder":13},"44b6ff23-98f0-4e95-b7f5-c23e06415c2d","subdomain","Store Subdomain",[],{"_uid":901,"name":902,"type":770,"label":903,"options":904,"required":33,"component":762,"conditions":905,"placeholder":13},"922a5cef-3af2-4113-8855-36c7910e3ee3","user_type","What type of user are you?","Developer, Designer, Merchant",[],"POST",[908],{"_uid":909,"text":910,"title":919,"component":920},"7323b90d-a93a-4bf1-baa9-20d0b7ead61b",{"type":324,"content":911},[912],{"type":327,"content":913},[914,916,917],{"text":915,"type":332},"855.369.9227",{"type":797},{"text":918,"type":332},"9:30am-6pm Central M-F","Pre-sales, Sales, & Partnerships","contact___footer_column",{"type":324,"content":922},[923],{"type":327,"content":924},[925],{"text":926,"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,936,962],{"name":937,"created_at":938,"published_at":939,"updated_at":940,"id":941,"uuid":942,"content":943,"slug":956,"full_slug":957,"sort_by_date":59,"position":958,"tag_list":959,"is_startpage":24,"parent_id":310,"meta_data":59,"group_id":960,"first_published_at":939,"release_id":59,"lang":65,"path":59,"alternates":961,"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,"5f8f8006-b68e-4a03-8638-2d28a556726e",{"_uid":944,"icon":13,"name":937,"type":945,"pinned":24,"summary":946,"category":13,"component":297,"blog_posts":947,"icon_custom":948,"case_studies":950,"faq_sections":951,"featured_guides":952,"mailbox_category":13,"featured_articles":953,"featured_blog_posts":954,"featured_case_studies":955},"c8a9b798-94ba-4a83-9ba5-c851b17946df","simple","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":949},{},[],[],[],[],[],[],"webhooks","help\u002Fcategories\u002Fwebhooks",-750,[],"c59e6243-064a-4f06-a367-c14a15c02ff3",[],{"name":963,"created_at":964,"published_at":965,"updated_at":966,"id":967,"uuid":710,"content":968,"slug":980,"full_slug":981,"sort_by_date":59,"position":982,"tag_list":983,"is_startpage":24,"parent_id":310,"meta_data":59,"group_id":984,"first_published_at":965,"release_id":59,"lang":65,"path":59,"alternates":985,"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,{"_uid":969,"icon":13,"name":963,"type":945,"pinned":24,"summary":970,"category":942,"component":297,"blog_posts":971,"icon_custom":972,"case_studies":974,"faq_sections":975,"featured_guides":976,"mailbox_category":13,"featured_articles":977,"featured_blog_posts":978,"featured_case_studies":979},"37b0e372-28ce-41d0-ab2c-1af017ea8ce5","Set up and verify payloads from the legacy JSON webhook, replaced by the current transaction webhook.",[],{"id":59,"alt":59,"name":13,"focus":59,"title":59,"source":59,"filename":13,"copyright":59,"fieldtype":81,"meta_data":973},{},[],[],[],[],[],[],"transaction-webhook-legacy","help\u002Fcategories\u002Ftransaction-webhook-legacy",-780,[],"5cbd4acd-a81b-400c-a30c-3af22768e9ea",[],{},1784651810107]