[{"data":1,"prerenderedAt":1201},["ShallowReactive",2],{"navigation_docs":3,"-docs-polyflight-api-events-and-proof":352,"-docs-polyflight-api-events-and-proof-surround":1196},[4,22,35,60,81,137,223,254,282,306,327],{"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},"Polyflight","\u002Fdocs\u002Fpolyflight","docs\u002F11.polyflight",[40,44,48,52,56],{"title":41,"path":42,"stem":43},"Polyflight overview and launch","\u002Fdocs\u002Fpolyflight\u002Foverview-and-launch","docs\u002F11.polyflight\u002F1.overview-and-launch",{"title":45,"path":46,"stem":47},"Native wallet contract","\u002Fdocs\u002Fpolyflight\u002Fnative-wallet-contract","docs\u002F11.polyflight\u002F2.native-wallet-contract",{"title":49,"path":50,"stem":51},"API, events, and proof","\u002Fdocs\u002Fpolyflight\u002Fapi-events-and-proof","docs\u002F11.polyflight\u002F3.api-events-and-proof",{"title":53,"path":54,"stem":55},"Terms, statements, and settlement","\u002Fdocs\u002Fpolyflight\u002Fterms-statements-and-settlement","docs\u002F11.polyflight\u002F4.terms-statements-and-settlement",{"title":57,"path":58,"stem":59},"Operations, reconciliation, and rollback","\u002Fdocs\u002Fpolyflight\u002Foperations-reconciliation-and-rollback","docs\u002F11.polyflight\u002F5.operations-reconciliation-and-rollback",{"title":61,"path":62,"stem":63,"children":64,"page":21},"Integration Flow","\u002Fdocs\u002Fintegration-flow","docs\u002F2.integration-flow",[65,69,73,77],{"title":66,"path":67,"stem":68},"Architecture","\u002Fdocs\u002Fintegration-flow\u002Farchitecture","docs\u002F2.integration-flow\u002F1.architecture",{"title":70,"path":71,"stem":72},"Launch session model","\u002Fdocs\u002Fintegration-flow\u002Flaunch-session-model","docs\u002F2.integration-flow\u002F2.launch-session-model",{"title":74,"path":75,"stem":76},"Order and wallet saga","\u002Fdocs\u002Fintegration-flow\u002Forder-and-wallet-saga","docs\u002F2.integration-flow\u002F3.order-and-wallet-saga",{"title":78,"path":79,"stem":80},"FX fees and rounding","\u002Fdocs\u002Fintegration-flow\u002Ffx-fees-and-rounding","docs\u002F2.integration-flow\u002F4.fx-fees-and-rounding",{"title":82,"path":83,"stem":84,"children":85,"page":21},"Dashboard","\u002Fdocs\u002Fdashboard","docs\u002F3.dashboard",[86,89,93,97,101,105,109,113,117,121,125,129,133],{"title":10,"path":87,"stem":88},"\u002Fdocs\u002Fdashboard\u002Foverview","docs\u002F3.dashboard\u002F1.overview",{"title":90,"path":91,"stem":92},"Webhook Deliveries","\u002Fdocs\u002Fdashboard\u002Fwebhook-deliveries","docs\u002F3.dashboard\u002F10.webhook-deliveries",{"title":94,"path":95,"stem":96},"Staffs","\u002Fdocs\u002Fdashboard\u002Fstaffs","docs\u002F3.dashboard\u002F11.staffs",{"title":98,"path":99,"stem":100},"Simulator","\u002Fdocs\u002Fdashboard\u002Fsimulator","docs\u002F3.dashboard\u002F12.simulator",{"title":102,"path":103,"stem":104},"API Playground","\u002Fdocs\u002Fdashboard\u002Fapi-playground","docs\u002F3.dashboard\u002F13.api-playground",{"title":106,"path":107,"stem":108},"API keys","\u002Fdocs\u002Fdashboard\u002Fapi-keys","docs\u002F3.dashboard\u002F2.api-keys",{"title":110,"path":111,"stem":112},"Wallet adapter settings","\u002Fdocs\u002Fdashboard\u002Fwallet-adapter-settings","docs\u002F3.dashboard\u002F3.wallet-adapter-settings",{"title":114,"path":115,"stem":116},"Webhook endpoints","\u002Fdocs\u002Fdashboard\u002Fwebhook-endpoints","docs\u002F3.dashboard\u002F4.webhook-endpoints",{"title":118,"path":119,"stem":120},"Markets and visibility","\u002Fdocs\u002Fdashboard\u002Fmarket-visibility","docs\u002F3.dashboard\u002F5.market-visibility",{"title":122,"path":123,"stem":124},"Users","\u002Fdocs\u002Fdashboard\u002Fusers","docs\u002F3.dashboard\u002F6.users",{"title":126,"path":127,"stem":128},"Trades","\u002Fdocs\u002Fdashboard\u002Ftrades","docs\u002F3.dashboard\u002F7.trades",{"title":130,"path":131,"stem":132},"Resolutions","\u002Fdocs\u002Fdashboard\u002Fresolutions","docs\u002F3.dashboard\u002F8.resolutions",{"title":134,"path":135,"stem":136},"Balance Operations","\u002Fdocs\u002Fdashboard\u002Fbalance-operations","docs\u002F3.dashboard\u002F9.balance-operations",{"title":138,"path":139,"stem":140,"children":141,"page":21},"Operator Api","\u002Fdocs\u002Foperator-api","docs\u002F4.operator-api",[142,146,149,153,156,160,163,167,171,175,179,183,186,190,194,198,202,206,209,213,216,219],{"title":143,"path":144,"stem":145},"Authentication","\u002Fdocs\u002Foperator-api\u002Fauthentication","docs\u002F4.operator-api\u002F1.authentication",{"title":114,"path":147,"stem":148},"\u002Fdocs\u002Foperator-api\u002Fwebhook-endpoints","docs\u002F4.operator-api\u002F10.webhook-endpoints",{"title":150,"path":151,"stem":152},"Webhook deliveries","\u002Fdocs\u002Foperator-api\u002Fwebhook-deliveries","docs\u002F4.operator-api\u002F11.webhook-deliveries",{"title":98,"path":154,"stem":155},"\u002Fdocs\u002Foperator-api\u002Fsimulator","docs\u002F4.operator-api\u002F12.simulator",{"title":157,"path":158,"stem":159},"Wallet adapter","\u002Fdocs\u002Foperator-api\u002Fwallet-adapter","docs\u002F4.operator-api\u002F13.wallet-adapter",{"title":94,"path":161,"stem":162},"\u002Fdocs\u002Foperator-api\u002Fstaffs","docs\u002F4.operator-api\u002F14.staffs",{"title":164,"path":165,"stem":166},"Error codes","\u002Fdocs\u002Foperator-api\u002Ferror-codes","docs\u002F4.operator-api\u002F15.error-codes",{"title":168,"path":169,"stem":170},"Redemptions","\u002Fdocs\u002Foperator-api\u002Fredemptions","docs\u002F4.operator-api\u002F16.redemptions",{"title":172,"path":173,"stem":174},"Polyflight overview","\u002Fdocs\u002Foperator-api\u002Fpolyflight","docs\u002F4.operator-api\u002F17.polyflight",{"title":176,"path":177,"stem":178},"Polyflight flights","\u002Fdocs\u002Foperator-api\u002Fpolyflight-flights","docs\u002F4.operator-api\u002F18.polyflight-flights",{"title":180,"path":181,"stem":182},"Polyflight tickets","\u002Fdocs\u002Foperator-api\u002Fpolyflight-tickets","docs\u002F4.operator-api\u002F19.polyflight-tickets",{"title":106,"path":184,"stem":185},"\u002Fdocs\u002Foperator-api\u002Fapi-keys","docs\u002F4.operator-api\u002F2.api-keys",{"title":187,"path":188,"stem":189},"Polyflight balance operations","\u002Fdocs\u002Foperator-api\u002Fpolyflight-balance-operations","docs\u002F4.operator-api\u002F20.polyflight-balance-operations",{"title":191,"path":192,"stem":193},"Polyflight terms","\u002Fdocs\u002Foperator-api\u002Fpolyflight-terms","docs\u002F4.operator-api\u002F21.polyflight-terms",{"title":195,"path":196,"stem":197},"Polyflight settlement reports","\u002Fdocs\u002Foperator-api\u002Fpolyflight-settlement-reports","docs\u002F4.operator-api\u002F22.polyflight-settlement-reports",{"title":199,"path":200,"stem":201},"Session","\u002Fdocs\u002Foperator-api\u002Fsession","docs\u002F4.operator-api\u002F3.session",{"title":203,"path":204,"stem":205},"Launch","\u002Fdocs\u002Foperator-api\u002Flaunch","docs\u002F4.operator-api\u002F4.launch",{"title":122,"path":207,"stem":208},"\u002Fdocs\u002Foperator-api\u002Fusers","docs\u002F4.operator-api\u002F5.users",{"title":210,"path":211,"stem":212},"Markets","\u002Fdocs\u002Foperator-api\u002Fmarkets","docs\u002F4.operator-api\u002F6.markets",{"title":126,"path":214,"stem":215},"\u002Fdocs\u002Foperator-api\u002Ftrades","docs\u002F4.operator-api\u002F7.trades",{"title":130,"path":217,"stem":218},"\u002Fdocs\u002Foperator-api\u002Fresolutions","docs\u002F4.operator-api\u002F8.resolutions",{"title":220,"path":221,"stem":222},"Balance operations","\u002Fdocs\u002Foperator-api\u002Fbalance-operations","docs\u002F4.operator-api\u002F9.balance-operations",{"title":224,"path":225,"stem":226,"children":227,"page":21},"Wallet Adapter","\u002Fdocs\u002Fwallet-adapter","docs\u002F5.wallet-adapter",[228,231,234,238,242,246,250],{"title":10,"path":229,"stem":230},"\u002Fdocs\u002Fwallet-adapter\u002Foverview","docs\u002F5.wallet-adapter\u002F1.overview",{"title":143,"path":232,"stem":233},"\u002Fdocs\u002Fwallet-adapter\u002Fauthentication","docs\u002F5.wallet-adapter\u002F2.authentication",{"title":235,"path":236,"stem":237},"Balance","\u002Fdocs\u002Fwallet-adapter\u002Fbalance","docs\u002F5.wallet-adapter\u002F3.balance",{"title":239,"path":240,"stem":241},"Debit","\u002Fdocs\u002Fwallet-adapter\u002Fdebit","docs\u002F5.wallet-adapter\u002F4.debit",{"title":243,"path":244,"stem":245},"Credit","\u002Fdocs\u002Fwallet-adapter\u002Fcredit","docs\u002F5.wallet-adapter\u002F5.credit",{"title":247,"path":248,"stem":249},"Debit reversal","\u002Fdocs\u002Fwallet-adapter\u002Fdebit-reversal","docs\u002F5.wallet-adapter\u002F6.debit-reversal",{"title":251,"path":252,"stem":253},"Idempotency","\u002Fdocs\u002Fwallet-adapter\u002Fidempotency","docs\u002F5.wallet-adapter\u002F7.idempotency",{"title":255,"path":256,"stem":257,"children":258,"page":21},"Webhooks","\u002Fdocs\u002Fwebhooks","docs\u002F6.webhooks",[259,262,266,270,274,278],{"title":10,"path":260,"stem":261},"\u002Fdocs\u002Fwebhooks\u002Foverview","docs\u002F6.webhooks\u002F1.overview",{"title":263,"path":264,"stem":265},"Signatures","\u002Fdocs\u002Fwebhooks\u002Fsignatures","docs\u002F6.webhooks\u002F2.signatures",{"title":267,"path":268,"stem":269},"Event envelope","\u002Fdocs\u002Fwebhooks\u002Fevent-envelope","docs\u002F6.webhooks\u002F3.event-envelope",{"title":271,"path":272,"stem":273},"Event types","\u002Fdocs\u002Fwebhooks\u002Fevent-types","docs\u002F6.webhooks\u002F4.event-types",{"title":275,"path":276,"stem":277},"Retry and replay","\u002Fdocs\u002Fwebhooks\u002Fretry-and-replay","docs\u002F6.webhooks\u002F5.retry-and-replay",{"title":279,"path":280,"stem":281},"Receiver examples","\u002Fdocs\u002Fwebhooks\u002Freceiver-examples","docs\u002F6.webhooks\u002F6.receiver-examples",{"title":283,"path":284,"stem":285,"children":286,"page":21},"Testing And Staging","\u002Fdocs\u002Ftesting-and-staging","docs\u002F7.testing-and-staging",[287,291,294,298,302],{"title":288,"path":289,"stem":290},"Staging overview","\u002Fdocs\u002Ftesting-and-staging\u002Fstaging-overview","docs\u002F7.testing-and-staging\u002F1.staging-overview",{"title":98,"path":292,"stem":293},"\u002Fdocs\u002Ftesting-and-staging\u002Fsimulator","docs\u002F7.testing-and-staging\u002F2.simulator",{"title":295,"path":296,"stem":297},"Wallet failure drills","\u002Fdocs\u002Ftesting-and-staging\u002Fwallet-failure-drills","docs\u002F7.testing-and-staging\u002F3.wallet-failure-drills",{"title":299,"path":300,"stem":301},"Webhook drills","\u002Fdocs\u002Ftesting-and-staging\u002Fwebhook-drills","docs\u002F7.testing-and-staging\u002F4.webhook-drills",{"title":303,"path":304,"stem":305},"Production cutover rehearsal","\u002Fdocs\u002Ftesting-and-staging\u002Fproduction-cutover-rehearsal","docs\u002F7.testing-and-staging\u002F5.production-cutover-rehearsal",{"title":307,"path":308,"stem":309,"children":310,"page":21},"Production Readiness","\u002Fdocs\u002Fproduction-readiness","docs\u002F8.production-readiness",[311,315,319,323],{"title":312,"path":313,"stem":314},"Checklist","\u002Fdocs\u002Fproduction-readiness\u002Fchecklist","docs\u002F8.production-readiness\u002F1.checklist",{"title":316,"path":317,"stem":318},"Operational runbook","\u002Fdocs\u002Fproduction-readiness\u002Foperational-runbook","docs\u002F8.production-readiness\u002F2.operational-runbook",{"title":320,"path":321,"stem":322},"Security","\u002Fdocs\u002Fproduction-readiness\u002Fsecurity","docs\u002F8.production-readiness\u002F3.security",{"title":324,"path":325,"stem":326},"Rollback","\u002Fdocs\u002Fproduction-readiness\u002Frollback","docs\u002F8.production-readiness\u002F4.rollback",{"title":328,"path":329,"stem":330,"children":331,"page":21},"Reference","\u002Fdocs\u002Freference","docs\u002F9.reference",[332,336,340,344,348],{"title":333,"path":334,"stem":335},"Statuses","\u002Fdocs\u002Freference\u002Fstatuses","docs\u002F9.reference\u002F1.statuses",{"title":337,"path":338,"stem":339},"Scopes","\u002Fdocs\u002Freference\u002Fscopes","docs\u002F9.reference\u002F2.scopes",{"title":341,"path":342,"stem":343},"Units and money","\u002Fdocs\u002Freference\u002Funits-and-money","docs\u002F9.reference\u002F3.units-and-money",{"title":345,"path":346,"stem":347},"Changelog","\u002Fdocs\u002Freference\u002Fchangelog","docs\u002F9.reference\u002F4.changelog",{"title":349,"path":350,"stem":351},"Virtual AMM","\u002Fdocs\u002Freference\u002Fvirtual-amm","docs\u002F9.reference\u002F5.virtual-amm",{"id":353,"title":49,"body":354,"description":1189,"extension":1190,"links":1191,"meta":1192,"navigation":1193,"path":50,"seo":1194,"stem":51,"__hash__":1195},"docs\u002Fdocs\u002F11.polyflight\u002F3.api-events-and-proof.md",{"type":355,"value":356,"toc":1181},"minimark",[357,361,370,374,444,451,455,458,624,656,668,689,692,696,703,797,827,973,994,997,1006,1010,1021,1058,1061,1064,1074,1077,1081,1084,1123,1148,1165,1168,1178],[358,359,49],"h1",{"id":360},"api-events-and-proof",[362,363,364,365,369],"p",{},"Polyflight adds operator-scoped read resources and webhook events without changing the REST v1 wallet response contract. Private endpoints derive operator ownership from the authenticated API key or staff session; never send an ",[366,367,368],"code",{},"operatorId"," to widen access.",[371,372,337],"h2",{"id":373},"scopes",[375,376,377,390],"table",{},[378,379,380],"thead",{},[381,382,383,387],"tr",{},[384,385,386],"th",{},"Scope",[384,388,389],{},"Purpose",[391,392,393,404,414,424,434],"tbody",{},[381,394,395,401],{},[396,397,398],"td",{},[366,399,400],{},"polyflight:read",[396,402,403],{},"Polyflight overview, participating flights, tickets, and product activity.",[381,405,406,411],{},[396,407,408],{},[366,409,410],{},"polyflight_terms:read",[396,412,413],{},"Current, scheduled, and historical commercial terms.",[381,415,416,421],{},[396,417,418],{},[366,419,420],{},"polyflight_settlements:read",[396,422,423],{},"Provisional\u002Ffinal statements, statement exports, liabilities, and payment history.",[381,425,426,431],{},[396,427,428],{},[366,429,430],{},"balance_operations:read",[396,432,433],{},"Wallet request\u002Fresponse evidence, including Polyflight source links.",[381,435,436,441],{},[396,437,438],{},[366,439,440],{},"webhooks:read",[396,442,443],{},"Endpoint and delivery evidence for Polyflight events.",[362,445,446,447,450],{},"These scopes are assignable but are not silently added to existing restricted keys or staff memberships. ",[366,448,449],{},"*"," can read operator-owned resources but does not create an operator terms-write, statement-finalize, payment-record, or manual-resolution endpoint.",[371,452,454],{"id":453},"operator-endpoint-inventory","Operator endpoint inventory",[362,456,457],{},"All routes are GET-only for operator reporting:",[375,459,460,473],{},[378,461,462],{},[381,463,464,467,470],{},[384,465,466],{},"Resource",[384,468,469],{},"GET paths",[384,471,472],{},"Required scope",[391,474,475,488,509,532,554,568,591,608],{},[381,476,477,479,484],{},[396,478,10],{},[396,480,481],{},[366,482,483],{},"\u002Fapi\u002Foperator\u002Fpolyflight\u002Foverview",[396,485,486],{},[366,487,400],{},[381,489,490,493,505],{},[396,491,492],{},"Participating flights",[396,494,495,498,499,498,502],{},[366,496,497],{},"\u002Fapi\u002Foperator\u002Fpolyflight\u002Fflights",", ",[366,500,501],{},"\u002Fflights\u002F{flightIdOrCode}",[366,503,504],{},"\u002Fflights\u002Fexport",[396,506,507],{},[366,508,400],{},[381,510,511,514,525],{},[396,512,513],{},"Tickets",[396,515,516,498,519,498,522],{},[366,517,518],{},"\u002Fapi\u002Foperator\u002Fpolyflight\u002Ftickets",[366,520,521],{},"\u002Ftickets\u002F{ticketId}",[366,523,524],{},"\u002Ftickets\u002Fexport",[396,526,527,529,530],{},[366,528,400],{}," and ",[366,531,410],{},[381,533,534,537,548],{},[396,535,536],{},"Wallet operations",[396,538,539,498,542,498,545],{},[366,540,541],{},"\u002Fapi\u002Foperator\u002Fpolyflight\u002Fbalance-operations",[366,543,544],{},"\u002Fbalance-operations\u002F{operationId}",[366,546,547],{},"\u002Fbalance-operations\u002Fexport",[396,549,550,529,552],{},[366,551,400],{},[366,553,430],{},[381,555,556,559,564],{},[396,557,558],{},"Terms and history",[396,560,561],{},[366,562,563],{},"\u002Fapi\u002Foperator\u002Fpolyflight\u002Fterms",[396,565,566],{},[366,567,410],{},[381,569,570,573,587],{},[396,571,572],{},"Statements",[396,574,575,498,578,498,581,498,584],{},[366,576,577],{},"\u002Fapi\u002Foperator\u002Fpolyflight\u002Fsettlement-reports",[366,579,580],{},"\u002Fsettlement-reports\u002F{id}",[366,582,583],{},"\u002Fsettlement-reports\u002Fexport",[366,585,586],{},"\u002Fsettlement-reports\u002F{id}\u002Fexport",[396,588,589],{},[366,590,420],{},[381,592,593,596,604],{},[396,594,595],{},"Payment history",[396,597,598,498,601],{},[366,599,600],{},"\u002Fapi\u002Foperator\u002Fpolyflight\u002Fsettlement-reports\u002Fpayments",[366,602,603],{},"\u002Fsettlement-reports\u002F{id}\u002Fpayments",[396,605,606],{},[366,607,420],{},[381,609,610,613,618],{},[396,611,612],{},"Webhook evidence",[396,614,615],{},[366,616,617],{},"\u002Fapi\u002Foperator\u002Fwebhooks\u002Fdeliveries?product=polyflight",[396,619,620,529,622],{},[366,621,440],{},[366,623,400],{},[362,625,626,627,498,630,633,634,498,637,498,640,643,644,647,648,651,652,655],{},"List filters are ",[366,628,629],{},"date_from",[366,631,632],{},"date_to",", comma-separated ",[366,635,636],{},"status",[366,638,639],{},"search",[366,641,642],{},"page",", and ",[366,645,646],{},"page_size","; statement lists use pagination. Export returns CSV by default and canonical JSON with ",[366,649,650],{},"format=json","; CSV uses spreadsheet-formula protection. All DTOs use camelCase and native aggregate amounts are decimal strings. Every response is tenant-derived and ",[366,653,654],{},"private, no-store",".",[362,657,658,659,663,664,667],{},"Use ",[660,661,662],"strong",{},"Operator Dashboard → API Playground → Polyflight"," (",[366,665,666],{},"\u002Fapi-playground\u002Fpolyflight",") for source-backed examples. The Playground inherits the staff session and does not expose its bearer token. External integrations must call the same routes from their backend with an appropriately scoped API key.",[362,669,670,671,498,674,498,677,498,680,498,683,643,686,655],{},"The dashboard mirrors these resources at ",[366,672,673],{},"\u002Fpolyflight",[366,675,676],{},"\u002Fpolyflight\u002Fflights",[366,678,679],{},"\u002Fpolyflight\u002Ftickets",[366,681,682],{},"\u002Fpolyflight\u002Fbalance-operations",[366,684,685],{},"\u002Fpolyflight\u002Fsettlement-reports",[366,687,688],{},"\u002Fpolyflight\u002Fterms",[362,690,691],{},"Opinion metrics continue to exclude Polyflight native money unless an explicitly labelled all-products wallet audit is selected. Never add IDR amounts to Credits totals.",[371,693,695],{"id":694},"webhook-catalogue","Webhook catalogue",[362,697,698,699,702],{},"Polyflight events use the existing signed envelope, signature verification, retry schedule, and ",[366,700,701],{},"event_id"," deduplication rules.",[375,704,705,715],{},[378,706,707],{},[381,708,709,712],{},[384,710,711],{},"Event type",[384,713,714],{},"Meaning",[391,716,717,727,737,747,757,767,777,787],{},[381,718,719,724],{},[396,720,721],{},[366,722,723],{},"mini_app.polyflight.purchase.processed",[396,725,726],{},"Debit and ticket admission completed; the immutable ticket exists.",[381,728,729,734],{},[396,730,731],{},[366,732,733],{},"mini_app.polyflight.purchase.failed",[396,735,736],{},"Purchase reached a terminal failure without an admitted ticket; inspect compensation state when a debit may have applied.",[381,738,739,744],{},[396,740,741],{},[366,742,743],{},"mini_app.polyflight.ticket.resolved",[396,745,746],{},"The global result classified the ticket and records the amount owed, if any. It does not assert wallet delivery.",[381,748,749,754],{},[396,750,751],{},[366,752,753],{},"mini_app.polyflight.payout.pending",[396,755,756],{},"A winning payout is owed or requires follow-up.",[381,758,759,764],{},[396,760,761],{},[366,762,763],{},"mini_app.polyflight.payout.processed",[396,765,766],{},"Winning wallet credit is confirmed.",[381,768,769,774],{},[396,770,771],{},[366,772,773],{},"mini_app.polyflight.refund.pending",[396,775,776],{},"A cancelled-ticket full refund is owed or requires follow-up.",[381,778,779,784],{},[396,780,781],{},[366,782,783],{},"mini_app.polyflight.refund.processed",[396,785,786],{},"Cancelled-ticket wallet credit is confirmed.",[381,788,789,794],{},[396,790,791],{},[366,792,793],{},"mini_app.polyflight.purchase.compensated",[396,795,796],{},"An applied purchase debit with no admitted ticket was reversed.",[362,798,799,800,498,802,498,805,498,808,498,811,498,814,498,817,643,820,823,824,826],{},"The signed envelope remains snake_case: ",[366,801,701],{},[366,803,804],{},"event_type",[366,806,807],{},"operator_id",[366,809,810],{},"occurred_at",[366,812,813],{},"aggregate_type",[366,815,816],{},"aggregate_id",[366,818,819],{},"idempotency_key",[366,821,822],{},"data",". Polyflight ",[366,825,822],{}," keys are camelCase:",[375,828,829,842],{},[378,830,831],{},[381,832,833,836],{},[384,834,835],{},"Family",[384,837,838,839,841],{},"Exact ",[366,840,822],{}," fields",[391,843,844,894,919,946],{},[381,845,846,851],{},[396,847,848],{},[366,849,850],{},"purchase.processed",[396,852,853,498,856,498,859,498,862,498,865,498,867,498,870,498,873,498,876,498,879,498,882,498,885,498,888,498,891],{},[366,854,855],{},"purchaseRequestId",[366,857,858],{},"ticketId",[366,860,861],{},"flightId",[366,863,864],{},"flightCode",[366,866,636],{},[366,868,869],{},"currencyCode",[366,871,872],{},"stakeMinor",[366,874,875],{},"feeMinor",[366,877,878],{},"netStakeMinor",[366,880,881],{},"potentialPayoutMinor",[366,883,884],{},"choiceKind",[366,886,887],{},"choiceIndex",[366,889,890],{},"predictedSequence",[366,892,893],{},"economyVersion",[381,895,896,901],{},[396,897,898],{},[366,899,900],{},"purchase.failed",[396,902,903,498,905,498,907,498,910,498,912,498,914,498,916],{},[366,904,855],{},[366,906,368],{},[366,908,909],{},"operatorUserId",[366,911,861],{},[366,913,864],{},[366,915,636],{},[366,917,918],{},"failureReason",[381,920,921,926],{},[396,922,923],{},[366,924,925],{},"ticket.resolved",[396,927,928,498,930,498,932,498,934,498,936,498,938,498,940,498,943],{},[366,929,858],{},[366,931,855],{},[366,933,861],{},[366,935,864],{},[366,937,636],{},[366,939,869],{},[366,941,942],{},"payoutMinor",[366,944,945],{},"obligationId",[381,947,948,951],{},[396,949,950],{},"Payout\u002Frefund pending or processed; purchase compensated",[396,952,953,498,955,498,958,498,960,498,962,498,964,498,966,498,969,498,971],{},[366,954,945],{},[366,956,957],{},"effect",[366,959,855],{},[366,961,858],{},[366,963,861],{},[366,965,864],{},[366,967,968],{},"amountMinor",[366,970,869],{},[366,972,636],{},[362,974,975,529,977,979,980,982,983,986,987,990,991,655],{},[366,976,858],{},[366,978,945],{}," are nullable when the outcome\u002Feffect permits. Pending\u002Fmanual-review payment events add ",[366,981,918],{},"; an admin-resolved processed event adds ",[366,984,985],{},"manualResolution","; engine-created ",[366,988,989],{},"refund.pending"," adds ",[366,992,993],{},"voidCode",[362,995,996],{},"Payload data is reconstructed from immutable native ticket, operation, obligation, and captured-terms rows. It does not revalue an amount with current FX or current terms.",[362,998,999,1000,1002,1003,1005],{},"Receivers must tolerate additive fields, branch only on known ",[366,1001,804],{},", and deduplicate by ",[366,1004,701],{},". Delivery replay may repeat an event; it never repeats or authorizes the underlying wallet mutation.",[371,1007,1009],{"id":1008},"comparison-only-fx","Comparison-only FX",[362,1011,1012,1013,1016,1017,1020],{},"A ",[366,1014,1015],{},"polyflight-v5"," flight freezes one Indodax ",[366,1018,1019],{},"USDT_IDR"," observation before boarding. The committed valuation contains:",[1022,1023,1024,1032,1041,1048,1051],"ul",{},[1025,1026,1027,1028,1031],"li",{},"policy ",[366,1029,1030],{},"indodax-usdt-idr-v1",";",[1025,1033,1034,1035,1038,1039,1031],{},"source ",[366,1036,1037],{},"indodax"," and pair ",[366,1040,1019],{},[1025,1042,1043,1044,1047],{},"positive canonical rate with exactly 8 fractional digits and either ",[366,1045,1046],{},"0"," or 1–12 integer digits (maximum serialized length 21);",[1025,1049,1050],{},"source timestamp and observation correlation ID;",[1025,1052,1053,1054,1057],{},"observation age and ",[366,1055,1056],{},"fallbackUsed"," disclosure.",[362,1059,1060],{},"A refresh targets five-minute freshness, but refresh failure may use the latest persisted valid observation. That cached fallback is frozen and disclosed; it is not refreshed at purchase, lock, result, payout, or replay. If no valid observation has ever existed, that flight remains Credits-capable but IDR entry is unavailable.",[362,1062,1063],{},"For one option, the verifier compares exact integer weight:",[1065,1066,1072],"pre",{"className":1067,"code":1069,"language":1070,"meta":1071},[1068],"language-text","C = gross first-party Credits stake\nI = gross IDR stake across all operators\nR = canonical rate × 10^8\nK = 10^8\ncomparisonWeight = C × R + I × 10,000 × K\n","text","",[366,1073,1069],{"__ignoreMap":1071},[362,1075,1076],{},"Every option uses the same denominator, so ranking compares the integer weights directly. Commercial shares, ticket-fee earnings, and wallet-delivery status do not affect ranking. The rate is comparison evidence only: users are debited and credited directly in their original currency.",[371,1078,1080],{"id":1079},"v5-mixed-money-proof","v5 mixed-money proof",[362,1082,1083],{},"New mixed-money-capable flights use:",[1022,1085,1086,1091,1097,1103,1109],{},[1025,1087,1088,1089,1031],{},"rules\u002Fprotocol ",[366,1090,1015],{},[1025,1092,1093,1094,1031],{},"public package codec 4, domain ",[366,1095,1096],{},"polyflight-public-package-v5",[1025,1098,1099,1100,1031],{},"snapshot codec 3, domain ",[366,1101,1102],{},"polyflight-snapshot-v5",[1025,1104,1105,1106,1031],{},"lock package codec 4, domain ",[366,1107,1108],{},"polyflight-lock-package-v5",[1025,1110,1111,1112,1115,1116,529,1119,1122],{},"unchanged grouped ",[366,1113,1114],{},"abcdOptions"," \u002F ",[366,1117,1118],{},"efghOptions",[366,1120,1121],{},"count-v2"," strategy behavior.",[362,1124,1125,1126,1129,1130,1133,1134,498,1137,1140,1141,1144,1145,1147],{},"The public package declares ",[366,1127,1128],{},"currencyCodes"," as exactly ",[366,1131,1132],{},"['CREDITS']"," or ",[366,1135,1136],{},"['CREDITS', 'IDR']",[366,1138,1139],{},"stakeUnit: 'minor'",", and either the frozen valuation or ",[366,1142,1143],{},"null",". ",[366,1146,1143],{}," means Credits-only entry for that flight.",[362,1149,1150,1151,1133,1154,1157,1158,529,1161,1164],{},"After landing, the anonymous v5 snapshot discloses each ticket's anonymous UUID, choice group\u002Findex, ",[366,1152,1153],{},"CREDITS",[366,1155,1156],{},"IDR",", gross stake, fee, and potential payout. Per-option ranking totals publish ",[366,1159,1160],{},"totalStakeCredits",[366,1162,1163],{},"totalStakeIdr"," as decimal strings, plus ticket count and rank.",[362,1166,1167],{},"The public proof never contains operator ID, external user ID, linked Polynion user ID, wallet reference, balance, commercial terms, or settlement allocation. Native amounts are intentionally disclosed after landing so independent verifiers can recompute the committed mixed-money ranking and result.",[362,1169,1170,1171,1174,1175,1177],{},"Private operator ticket reports expose ",[366,1172,1173],{},"proofTicketId"," to correlate an owned v5 ticket with that anonymous UUID; it is ",[366,1176,1143],{}," for legacy v4. The mapping remains private and is not itself added to the public proof.",[362,1179,1180],{},"The verifier checks native ticket economics, snapshot\u002Fpublic\u002Flock digests, exact ranking, fallback ranks, unchanged strategy candidate, draw, selected branch, result, approach tracks, and owned-ticket classification. v1–v4 codecs and verifiers remain supported for their historical flights; v5 support is additive and does not rewrite old commitments or apply today's economy to an older proof.",{"title":1071,"searchDepth":1182,"depth":1182,"links":1183},2,[1184,1185,1186,1187,1188],{"id":373,"depth":1182,"text":337},{"id":453,"depth":1182,"text":454},{"id":694,"depth":1182,"text":695},{"id":1008,"depth":1182,"text":1009},{"id":1079,"depth":1182,"text":1080},"Polyflight operator resources, webhook catalogue, and public v5 mixed-money verification.","md",null,{},true,{"title":49,"description":1189},"RS3nU7IjwulbWWONYd6Vd9evgb5DTjOcEghhY9jYaP8",[1197,1199],{"title":45,"path":46,"stem":47,"description":1198,"children":-1},"Polyflight debit, payout, refund, and compensation requests on the existing REST v1 adapter.",{"title":53,"path":54,"stem":55,"description":1200,"children":-1},"Read commercial terms and reconcile native-IDR fee, signed position, liabilities, payments, carry, and exports.",1789570129132]