[{"data":1,"prerenderedAt":743},["ShallowReactive",2],{"navigation_docs":3,"-docs-webhooks-event-envelope":268,"-docs-webhooks-event-envelope-surround":738},[4,22,35,56,80,135,170,198,222,243],{"title":5,"path":6,"stem":7,"children":8,"page":21},"Getting Started","\u002Fdocs\u002Fgetting-started","docs\u002F1.getting-started",[9,13,17],{"title":10,"path":11,"stem":12},"Overview","\u002Fdocs\u002Fgetting-started\u002Foverview","docs\u002F1.getting-started\u002F1.overview",{"title":14,"path":15,"stem":16},"Integration checklist","\u002Fdocs\u002Fgetting-started\u002Fintegration-checklist","docs\u002F1.getting-started\u002F2.integration-checklist",{"title":18,"path":19,"stem":20},"Environments and base URLs","\u002Fdocs\u002Fgetting-started\u002Fenvironments-and-base-urls","docs\u002F1.getting-started\u002F3.environments-and-base-urls",false,{"title":23,"path":24,"stem":25,"children":26,"page":21},"Troubleshooting","\u002Fdocs\u002Ftroubleshooting","docs\u002F10.troubleshooting",[27,31],{"title":28,"path":29,"stem":30},"Common errors","\u002Fdocs\u002Ftroubleshooting\u002Fcommon-errors","docs\u002F10.troubleshooting\u002F1.common-errors",{"title":32,"path":33,"stem":34},"Support escalation","\u002Fdocs\u002Ftroubleshooting\u002Fsupport-escalation","docs\u002F10.troubleshooting\u002F2.support-escalation",{"title":36,"path":37,"stem":38,"children":39,"page":21},"Integration Flow","\u002Fdocs\u002Fintegration-flow","docs\u002F2.integration-flow",[40,44,48,52],{"title":41,"path":42,"stem":43},"Architecture","\u002Fdocs\u002Fintegration-flow\u002Farchitecture","docs\u002F2.integration-flow\u002F1.architecture",{"title":45,"path":46,"stem":47},"Launch session model","\u002Fdocs\u002Fintegration-flow\u002Flaunch-session-model","docs\u002F2.integration-flow\u002F2.launch-session-model",{"title":49,"path":50,"stem":51},"Order and wallet saga","\u002Fdocs\u002Fintegration-flow\u002Forder-and-wallet-saga","docs\u002F2.integration-flow\u002F3.order-and-wallet-saga",{"title":53,"path":54,"stem":55},"FX fees and rounding","\u002Fdocs\u002Fintegration-flow\u002Ffx-fees-and-rounding","docs\u002F2.integration-flow\u002F4.fx-fees-and-rounding",{"title":57,"path":58,"stem":59,"children":60,"page":21},"Dashboard","\u002Fdocs\u002Fdashboard","docs\u002F3.dashboard",[61,64,68,72,76],{"title":10,"path":62,"stem":63},"\u002Fdocs\u002Fdashboard\u002Foverview","docs\u002F3.dashboard\u002F1.overview",{"title":65,"path":66,"stem":67},"API keys","\u002Fdocs\u002Fdashboard\u002Fapi-keys","docs\u002F3.dashboard\u002F2.api-keys",{"title":69,"path":70,"stem":71},"Wallet adapter settings","\u002Fdocs\u002Fdashboard\u002Fwallet-adapter-settings","docs\u002F3.dashboard\u002F3.wallet-adapter-settings",{"title":73,"path":74,"stem":75},"Webhook endpoints","\u002Fdocs\u002Fdashboard\u002Fwebhook-endpoints","docs\u002F3.dashboard\u002F4.webhook-endpoints",{"title":77,"path":78,"stem":79},"Market visibility","\u002Fdocs\u002Fdashboard\u002Fmarket-visibility","docs\u002F3.dashboard\u002F5.market-visibility",{"title":81,"path":82,"stem":83,"children":84,"page":21},"Operator Api","\u002Fdocs\u002Foperator-api","docs\u002F4.operator-api",[85,89,92,96,100,104,107,111,115,119,123,127,131],{"title":86,"path":87,"stem":88},"Authentication","\u002Fdocs\u002Foperator-api\u002Fauthentication","docs\u002F4.operator-api\u002F1.authentication",{"title":73,"path":90,"stem":91},"\u002Fdocs\u002Foperator-api\u002Fwebhook-endpoints","docs\u002F4.operator-api\u002F10.webhook-endpoints",{"title":93,"path":94,"stem":95},"Webhook deliveries","\u002Fdocs\u002Foperator-api\u002Fwebhook-deliveries","docs\u002F4.operator-api\u002F11.webhook-deliveries",{"title":97,"path":98,"stem":99},"Simulator","\u002Fdocs\u002Foperator-api\u002Fsimulator","docs\u002F4.operator-api\u002F12.simulator",{"title":101,"path":102,"stem":103},"Error codes","\u002Fdocs\u002Foperator-api\u002Ferror-codes","docs\u002F4.operator-api\u002F13.error-codes",{"title":65,"path":105,"stem":106},"\u002Fdocs\u002Foperator-api\u002Fapi-keys","docs\u002F4.operator-api\u002F2.api-keys",{"title":108,"path":109,"stem":110},"Session","\u002Fdocs\u002Foperator-api\u002Fsession","docs\u002F4.operator-api\u002F3.session",{"title":112,"path":113,"stem":114},"Launch","\u002Fdocs\u002Foperator-api\u002Flaunch","docs\u002F4.operator-api\u002F4.launch",{"title":116,"path":117,"stem":118},"Users","\u002Fdocs\u002Foperator-api\u002Fusers","docs\u002F4.operator-api\u002F5.users",{"title":120,"path":121,"stem":122},"Markets","\u002Fdocs\u002Foperator-api\u002Fmarkets","docs\u002F4.operator-api\u002F6.markets",{"title":124,"path":125,"stem":126},"Trades","\u002Fdocs\u002Foperator-api\u002Ftrades","docs\u002F4.operator-api\u002F7.trades",{"title":128,"path":129,"stem":130},"Redemptions","\u002Fdocs\u002Foperator-api\u002Fredemptions","docs\u002F4.operator-api\u002F8.redemptions",{"title":132,"path":133,"stem":134},"Balance operations","\u002Fdocs\u002Foperator-api\u002Fbalance-operations","docs\u002F4.operator-api\u002F9.balance-operations",{"title":136,"path":137,"stem":138,"children":139,"page":21},"Wallet Adapter","\u002Fdocs\u002Fwallet-adapter","docs\u002F5.wallet-adapter",[140,143,146,150,154,158,162,166],{"title":10,"path":141,"stem":142},"\u002Fdocs\u002Fwallet-adapter\u002Foverview","docs\u002F5.wallet-adapter\u002F1.overview",{"title":86,"path":144,"stem":145},"\u002Fdocs\u002Fwallet-adapter\u002Fauthentication","docs\u002F5.wallet-adapter\u002F2.authentication",{"title":147,"path":148,"stem":149},"Balance","\u002Fdocs\u002Fwallet-adapter\u002Fbalance","docs\u002F5.wallet-adapter\u002F3.balance",{"title":151,"path":152,"stem":153},"Debit","\u002Fdocs\u002Fwallet-adapter\u002Fdebit","docs\u002F5.wallet-adapter\u002F4.debit",{"title":155,"path":156,"stem":157},"Credit","\u002Fdocs\u002Fwallet-adapter\u002Fcredit","docs\u002F5.wallet-adapter\u002F5.credit",{"title":159,"path":160,"stem":161},"Debit reversal","\u002Fdocs\u002Fwallet-adapter\u002Fdebit-reversal","docs\u002F5.wallet-adapter\u002F6.debit-reversal",{"title":163,"path":164,"stem":165},"Operation lookup","\u002Fdocs\u002Fwallet-adapter\u002Foperation-lookup","docs\u002F5.wallet-adapter\u002F7.operation-lookup",{"title":167,"path":168,"stem":169},"Idempotency","\u002Fdocs\u002Fwallet-adapter\u002Fidempotency","docs\u002F5.wallet-adapter\u002F8.idempotency",{"title":171,"path":172,"stem":173,"children":174,"page":21},"Webhooks","\u002Fdocs\u002Fwebhooks","docs\u002F6.webhooks",[175,178,182,186,190,194],{"title":10,"path":176,"stem":177},"\u002Fdocs\u002Fwebhooks\u002Foverview","docs\u002F6.webhooks\u002F1.overview",{"title":179,"path":180,"stem":181},"Signatures","\u002Fdocs\u002Fwebhooks\u002Fsignatures","docs\u002F6.webhooks\u002F2.signatures",{"title":183,"path":184,"stem":185},"Event envelope","\u002Fdocs\u002Fwebhooks\u002Fevent-envelope","docs\u002F6.webhooks\u002F3.event-envelope",{"title":187,"path":188,"stem":189},"Event types","\u002Fdocs\u002Fwebhooks\u002Fevent-types","docs\u002F6.webhooks\u002F4.event-types",{"title":191,"path":192,"stem":193},"Retry and replay","\u002Fdocs\u002Fwebhooks\u002Fretry-and-replay","docs\u002F6.webhooks\u002F5.retry-and-replay",{"title":195,"path":196,"stem":197},"Receiver examples","\u002Fdocs\u002Fwebhooks\u002Freceiver-examples","docs\u002F6.webhooks\u002F6.receiver-examples",{"title":199,"path":200,"stem":201,"children":202,"page":21},"Testing And Staging","\u002Fdocs\u002Ftesting-and-staging","docs\u002F7.testing-and-staging",[203,207,210,214,218],{"title":204,"path":205,"stem":206},"Staging overview","\u002Fdocs\u002Ftesting-and-staging\u002Fstaging-overview","docs\u002F7.testing-and-staging\u002F1.staging-overview",{"title":97,"path":208,"stem":209},"\u002Fdocs\u002Ftesting-and-staging\u002Fsimulator","docs\u002F7.testing-and-staging\u002F2.simulator",{"title":211,"path":212,"stem":213},"Wallet failure drills","\u002Fdocs\u002Ftesting-and-staging\u002Fwallet-failure-drills","docs\u002F7.testing-and-staging\u002F3.wallet-failure-drills",{"title":215,"path":216,"stem":217},"Webhook drills","\u002Fdocs\u002Ftesting-and-staging\u002Fwebhook-drills","docs\u002F7.testing-and-staging\u002F4.webhook-drills",{"title":219,"path":220,"stem":221},"Production cutover rehearsal","\u002Fdocs\u002Ftesting-and-staging\u002Fproduction-cutover-rehearsal","docs\u002F7.testing-and-staging\u002F5.production-cutover-rehearsal",{"title":223,"path":224,"stem":225,"children":226,"page":21},"Production Readiness","\u002Fdocs\u002Fproduction-readiness","docs\u002F8.production-readiness",[227,231,235,239],{"title":228,"path":229,"stem":230},"Checklist","\u002Fdocs\u002Fproduction-readiness\u002Fchecklist","docs\u002F8.production-readiness\u002F1.checklist",{"title":232,"path":233,"stem":234},"Operational runbook","\u002Fdocs\u002Fproduction-readiness\u002Foperational-runbook","docs\u002F8.production-readiness\u002F2.operational-runbook",{"title":236,"path":237,"stem":238},"Security","\u002Fdocs\u002Fproduction-readiness\u002Fsecurity","docs\u002F8.production-readiness\u002F3.security",{"title":240,"path":241,"stem":242},"Rollback","\u002Fdocs\u002Fproduction-readiness\u002Frollback","docs\u002F8.production-readiness\u002F4.rollback",{"title":244,"path":245,"stem":246,"children":247,"page":21},"Reference","\u002Fdocs\u002Freference","docs\u002F9.reference",[248,252,256,260,264],{"title":249,"path":250,"stem":251},"Statuses","\u002Fdocs\u002Freference\u002Fstatuses","docs\u002F9.reference\u002F1.statuses",{"title":253,"path":254,"stem":255},"Scopes","\u002Fdocs\u002Freference\u002Fscopes","docs\u002F9.reference\u002F2.scopes",{"title":257,"path":258,"stem":259},"Units and money","\u002Fdocs\u002Freference\u002Funits-and-money","docs\u002F9.reference\u002F3.units-and-money",{"title":261,"path":262,"stem":263},"Changelog","\u002Fdocs\u002Freference\u002Fchangelog","docs\u002F9.reference\u002F4.changelog",{"title":265,"path":266,"stem":267},"Virtual AMM","\u002Fdocs\u002Freference\u002Fvirtual-amm","docs\u002F9.reference\u002F5.virtual-amm",{"id":269,"title":183,"body":270,"description":731,"extension":732,"links":733,"meta":734,"navigation":735,"path":184,"seo":736,"stem":185,"__hash__":737},"docs\u002Fdocs\u002F6.webhooks\u002F3.event-envelope.md",{"type":271,"value":272,"toc":724},"minimark",[273,277,281,286,500,504,637,641,668,672,699,703,720],[274,275,183],"h1",{"id":276},"event-envelope",[278,279,280],"p",{},"Every webhook payload uses same outer envelope.",[282,283,285],"h2",{"id":284},"example","Example",[287,288,293],"pre",{"className":289,"code":290,"language":291,"meta":292,"style":292},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"event_id\": \"evt_01JY3P4S4TB8A3QGQ95E9W0D2M\",\n  \"event_type\": \"mini_app.trade.processed\",\n  \"operator_id\": 12,\n  \"occurred_at\": \"2026-06-18T00:00:00.000Z\",\n  \"aggregate_type\": \"mini_app_order\",\n  \"aggregate_id\": \"1\",\n  \"idempotency_key\": \"mini_app_order:1:processed\",\n  \"data\": {\n    \"order_id\": 1\n  }\n}\n","json","",[294,295,296,305,333,354,372,393,414,435,456,471,488,494],"code",{"__ignoreMap":292},[297,298,301],"span",{"class":299,"line":300},"line",1,[297,302,304],{"class":303},"sMK4o","{\n",[297,306,308,311,315,318,321,324,328,330],{"class":299,"line":307},2,[297,309,310],{"class":303},"  \"",[297,312,314],{"class":313},"spNyl","event_id",[297,316,317],{"class":303},"\"",[297,319,320],{"class":303},":",[297,322,323],{"class":303}," \"",[297,325,327],{"class":326},"sfazB","evt_01JY3P4S4TB8A3QGQ95E9W0D2M",[297,329,317],{"class":303},[297,331,332],{"class":303},",\n",[297,334,336,338,341,343,345,347,350,352],{"class":299,"line":335},3,[297,337,310],{"class":303},[297,339,340],{"class":313},"event_type",[297,342,317],{"class":303},[297,344,320],{"class":303},[297,346,323],{"class":303},[297,348,349],{"class":326},"mini_app.trade.processed",[297,351,317],{"class":303},[297,353,332],{"class":303},[297,355,357,359,362,364,366,370],{"class":299,"line":356},4,[297,358,310],{"class":303},[297,360,361],{"class":313},"operator_id",[297,363,317],{"class":303},[297,365,320],{"class":303},[297,367,369],{"class":368},"sbssI"," 12",[297,371,332],{"class":303},[297,373,375,377,380,382,384,386,389,391],{"class":299,"line":374},5,[297,376,310],{"class":303},[297,378,379],{"class":313},"occurred_at",[297,381,317],{"class":303},[297,383,320],{"class":303},[297,385,323],{"class":303},[297,387,388],{"class":326},"2026-06-18T00:00:00.000Z",[297,390,317],{"class":303},[297,392,332],{"class":303},[297,394,396,398,401,403,405,407,410,412],{"class":299,"line":395},6,[297,397,310],{"class":303},[297,399,400],{"class":313},"aggregate_type",[297,402,317],{"class":303},[297,404,320],{"class":303},[297,406,323],{"class":303},[297,408,409],{"class":326},"mini_app_order",[297,411,317],{"class":303},[297,413,332],{"class":303},[297,415,417,419,422,424,426,428,431,433],{"class":299,"line":416},7,[297,418,310],{"class":303},[297,420,421],{"class":313},"aggregate_id",[297,423,317],{"class":303},[297,425,320],{"class":303},[297,427,323],{"class":303},[297,429,430],{"class":326},"1",[297,432,317],{"class":303},[297,434,332],{"class":303},[297,436,438,440,443,445,447,449,452,454],{"class":299,"line":437},8,[297,439,310],{"class":303},[297,441,442],{"class":313},"idempotency_key",[297,444,317],{"class":303},[297,446,320],{"class":303},[297,448,323],{"class":303},[297,450,451],{"class":326},"mini_app_order:1:processed",[297,453,317],{"class":303},[297,455,332],{"class":303},[297,457,459,461,464,466,468],{"class":299,"line":458},9,[297,460,310],{"class":303},[297,462,463],{"class":313},"data",[297,465,317],{"class":303},[297,467,320],{"class":303},[297,469,470],{"class":303}," {\n",[297,472,474,477,481,483,485],{"class":299,"line":473},10,[297,475,476],{"class":303},"    \"",[297,478,480],{"class":479},"sBMFI","order_id",[297,482,317],{"class":303},[297,484,320],{"class":303},[297,486,487],{"class":368}," 1\n",[297,489,491],{"class":299,"line":490},11,[297,492,493],{"class":303},"  }\n",[297,495,497],{"class":299,"line":496},12,[297,498,499],{"class":303},"}\n",[282,501,503],{"id":502},"fields","Fields",[505,506,507,523],"table",{},[508,509,510],"thead",{},[511,512,513,517,520],"tr",{},[514,515,516],"th",{},"Field",[514,518,519],{},"Type",[514,521,522],{},"Meaning",[524,525,526,541,554,568,581,597,610,623],"tbody",{},[511,527,528,533,538],{},[529,530,531],"td",{},[294,532,314],{},[529,534,535],{},[294,536,537],{},"string",[529,539,540],{},"Globally unique event identifier. Primary dedupe key on receiver side.",[511,542,543,547,551],{},[529,544,545],{},[294,546,340],{},[529,548,549],{},[294,550,537],{},[529,552,553],{},"Business event name.",[511,555,556,560,565],{},[529,557,558],{},[294,559,361],{},[529,561,562],{},[294,563,564],{},"number",[529,566,567],{},"OpenPoly operator record ID for routing and audit.",[511,569,570,574,578],{},[529,571,572],{},[294,573,379],{},[529,575,576],{},[294,577,537],{},[529,579,580],{},"UTC ISO timestamp when event became true.",[511,582,583,587,591],{},[529,584,585],{},[294,586,400],{},[529,588,589],{},[294,590,537],{},[529,592,593,594,596],{},"Resource family behind event, such as ",[294,595,409],{},".",[511,598,599,603,607],{},[529,600,601],{},[294,602,421],{},[529,604,605],{},[294,606,537],{},[529,608,609],{},"Aggregate identifier, always serialized as string.",[511,611,612,616,620],{},[529,613,614],{},[294,615,442],{},[529,617,618],{},[294,619,537],{},[529,621,622],{},"Stable event-level idempotency key from OpenPoly side.",[511,624,625,629,634],{},[529,626,627],{},[294,628,463],{},[529,630,631],{},[294,632,633],{},"object",[529,635,636],{},"Event-specific payload only.",[282,638,640],{"id":639},"invariants","Invariants",[642,643,644,650,655,662,665],"ul",{},[645,646,647,649],"li",{},[294,648,314],{}," unique across all webhook events",[645,651,652,654],{},[294,653,421],{}," always string, even if underlying DB key numeric",[645,656,657,659,660],{},[294,658,463],{}," shape depends on ",[294,661,340],{},[645,663,664],{},"no API key, wallet secret, launch token, or session secret in payload",[645,666,667],{},"no raw internal transaction token in payload",[282,669,671],{"id":670},"receiver-guidance","Receiver guidance",[642,673,674,677,685,690],{},[645,675,676],{},"store full envelope with raw body hash if audit required",[645,678,679,680,682,683],{},"dedupe by ",[294,681,314],{},", not by ",[294,684,421],{},[645,686,687,688],{},"route business logic by ",[294,689,340],{},[645,691,692,693,695,696,698],{},"use ",[294,694,400],{}," and ",[294,697,421],{}," for correlation, not dedupe",[282,700,702],{"id":701},"related-pages","Related pages",[642,704,705,713],{},[645,706,707,708],{},"event list and payloads: ",[709,710,711],"a",{"href":188},[294,712,188],{},[645,714,715,716],{},"retry behavior: ",[709,717,718],{"href":192},[294,719,192],{},[721,722,723],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":292,"searchDepth":307,"depth":307,"links":725},[726,727,728,729,730],{"id":284,"depth":307,"text":285},{"id":502,"depth":307,"text":503},{"id":639,"depth":307,"text":640},{"id":670,"depth":307,"text":671},{"id":701,"depth":307,"text":702},"Shared event envelope for all webhook deliveries.","md",null,{},true,{"title":183,"description":731},"GMNfjYZmtRL78D2lqYwdX19wf_xSprsplB9j3IA_Uk4",[739,741],{"title":179,"path":180,"stem":181,"description":740,"children":-1},"Verify webhook signatures and reject replays safely.",{"title":187,"path":188,"stem":189,"description":742,"children":-1},"Business events sent by OpenPoly to operator webhook receivers.",1781957290954]