[{"data":1,"prerenderedAt":513},["ShallowReactive",2],{"navigation":3,"/docs/developer/graphql/tax-v1-captured-facts":178,"/docs/developer/graphql/tax-v1-captured-facts-description":502},[4],{"title":5,"icon":6,"path":7,"stem":8,"children":9},"Docs",false,"/docs","docs",[10,14,37,60,102,110,141,163],{"title":11,"path":7,"stem":12,"icon":13},"Landing","docs/index","lucide:house",{"title":15,"path":16,"stem":17,"children":18,"icon":6},"Concepts","/docs/concepts","docs/concepts/1.index",[19,21,25,29,33],{"title":20,"path":16,"stem":17},"Introduction",{"title":22,"path":23,"stem":24},"External IDs","/docs/concepts/xids","docs/concepts/2.xids",{"title":26,"path":27,"stem":28},"Attributes","/docs/concepts/attributes","docs/concepts/attributes",{"title":30,"path":31,"stem":32},"Barcodes","/docs/concepts/barcodes","docs/concepts/barcodes",{"title":34,"path":35,"stem":36},"Capabilities","/docs/concepts/capabilities","docs/concepts/capabilities",{"title":38,"icon":6,"path":39,"stem":40,"children":41},"Configuration","/docs/configure","docs/configure/index",[42,43,47,51,56],{"title":20,"path":39,"stem":40},{"title":44,"path":45,"stem":46},"Devices","/docs/configure/devices","docs/configure/devices",{"title":48,"path":49,"stem":50},"Pack Stations","/docs/configure/pack-stations","docs/configure/pack-stations",{"title":52,"path":53,"stem":54,"icon":55},"Packaging","/docs/configure/packaging","docs/configure/packaging","lucide:package",{"title":57,"path":58,"stem":59},"Quarantine Locations","/docs/configure/quarantine-locations","docs/configure/quarantine-locations",{"title":61,"icon":6,"path":62,"stem":63,"children":64},"Developers","/docs/developer","docs/developer/index",[65,66,95],{"title":61,"path":62,"stem":63},{"title":67,"path":68,"stem":69,"children":70,"icon":94},"API","/docs/developer/graphql","docs/developer/graphql/1.index",[71,74,78,82,86,90],{"title":72,"path":68,"stem":69,"icon":73},"Overview","lucide:rocket",{"title":75,"path":76,"stem":77},"Getting started with the Jungle API","/docs/developer/graphql/getting-started","docs/developer/graphql/2.getting-started",{"title":79,"path":80,"stem":81},"API Keys","/docs/developer/graphql/obtaining-keys","docs/developer/graphql/3.obtaining-keys",{"title":83,"path":84,"stem":85},"GraphQL Reference","/docs/developer/graphql/schema","docs/developer/graphql/5.schema",{"title":87,"path":88,"stem":89},"Jungle Platform API - Global Features","/docs/developer/graphql/api-global-features","docs/developer/graphql/api-global-features",{"title":91,"path":92,"stem":93},"Tax V1 Captured Facts","/docs/developer/graphql/tax-v1-captured-facts","docs/developer/graphql/tax-v1-captured-facts","file-icons:graphql",{"title":96,"path":97,"stem":98,"children":99,"icon":6},"SDKs","/docs/developer/sdk","docs/developer/sdk/1.index",[100],{"title":101,"path":97,"stem":98},"Node.js",{"title":103,"path":104,"stem":105,"children":106,"order":108,"parent":67,"group":109,"icon":6},"Feeds","/docs/feed","docs/feed/01.index",[107],{"title":72,"path":104,"stem":105,"order":108,"parent":67,"group":109},2,"feedgroup",{"title":111,"path":112,"stem":113,"children":114},"Guides","/docs/guide","docs/guide/index",[115,116,121,125,129,133,137],{"title":111,"path":112,"stem":113},{"title":117,"path":118,"stem":119,"icon":120},"Attachments","/docs/guide/attachments","docs/guide/attachments","lucide:paperclip",{"title":122,"path":123,"stem":124},"Configuring Jungle For Your Organisation","/docs/guide/configuring-jungle-for-your-warehouse","docs/guide/configuring-jungle-for-your-warehouse",{"title":126,"path":127,"stem":128},"Updating Inventory","/docs/guide/inventory-update","docs/guide/inventory-update",{"title":130,"path":131,"stem":132},"Use Case - Orders with fulfilments","/docs/guide/orders","docs/guide/orders",{"title":134,"path":135,"stem":136},"Quickstart","/docs/guide/quickstart","docs/guide/quickstart",{"title":138,"path":139,"stem":140},"Tagging Objects","/docs/guide/tagging","docs/guide/tagging",{"title":142,"path":143,"stem":144,"children":145,"icon":6},"Types","/docs/objects","docs/objects/index",[146,147,151,155,159],{"title":142,"path":143,"stem":144},{"title":148,"path":149,"stem":150},"Location","/docs/objects/locations","docs/objects/locations",{"title":152,"path":153,"stem":154},"Product","/docs/objects/products","docs/objects/products",{"title":156,"path":157,"stem":158},"Purchase Order","/docs/objects/purchase-orders","docs/objects/purchase-orders",{"title":160,"path":161,"stem":162},"Supplier Return","/docs/objects/supplier-returns","docs/objects/supplier-returns",{"title":164,"icon":6,"path":165,"stem":166,"children":167},"Policy","/docs/policy","docs/policy/index",[168,169,174],{"title":164,"path":165,"stem":166},{"title":170,"path":171,"stem":172,"icon":173},"Privacy","/docs/policy/general-privacy","docs/policy/general-privacy","lucide:shield",{"title":175,"path":176,"stem":177},"Terms of Service","/docs/policy/general-terms","docs/policy/general-terms",{"page":179,"surround":497},{"id":180,"title":91,"body":181,"description":488,"extension":489,"links":490,"meta":491,"navigation":494,"path":92,"seo":495,"stem":93,"__hash__":496},"documentation/docs/developer/graphql/tax-v1-captured-facts.md",{"type":182,"value":183,"toc":480},"minimark",[184,188,193,267,271,274,286,289,334,337,359,362,369,372,397,404,408,413,437,440,444,447,470,474],[185,186,187],"p",{},"Tax v1 adds nullable tax-code, tax-profile, discount, and captured price fields so integrations can preserve facts from their source. These fields are supplied and read back in v1. They are not calculation inputs for a Jungle tax engine.",[189,190,192],"h2",{"id":191},"captured-fact-semantics","Captured Fact Semantics",[194,195,196,200,208,250],"ul",{},[197,198,199],"li",{},"Product tax defaults, line-item tax codes, tax profiles, registrations, line discounts, line prices, line totals, and document totals are available only when the caller supplies them.",[197,201,202,203,207],{},"Omitting a v1 tax or captured price field leaves it unset. Clearing a supported update field with ",[204,205,206],"code",{},"null"," removes the value.",[197,209,210,211,214,215,214,218,214,221,214,224,214,227,214,230,214,233,214,236,214,239,214,242,245,246,249],{},"Legacy fields such as ",[204,212,213],{},"Product.gst",", ",[204,216,217],{},"Supplier.taxNumber",[204,219,220],{},"Supplier.gstRegistered",[204,222,223],{},"LineItem.auTaxApplied",[204,225,226],{},"LineItem.discountPercentage",[204,228,229],{},"LineItem.adjustments",[204,231,232],{},"LineItem.unitPrice",[204,234,235],{},"LineItem.subtotalPrice",[204,237,238],{},"LineItem.totalPrice",[204,240,241],{},"Order.priceTotal",[204,243,244],{},"PurchaseOrder.price",", and ",[204,247,248],{},"PurchaseOrder.totalPrice"," keep their existing behavior.",[197,251,252,253,256,257,245,260,256,263,266],{},"The API does not derive v1 captured fields from legacy fields. For example, ",[204,254,255],{},"LineItem.auTaxApplied: GST"," does not populate ",[204,258,259],{},"taxCode",[204,261,262],{},"discountPercentage",[204,264,265],{},"discountType",".",[189,268,270],{"id":269},"field-groups","Field Groups",[185,272,273],{},"Product:",[194,275,276,281],{},[197,277,278],{},[204,279,280],{},"taxCodeSaleDefault",[197,282,283],{},[204,284,285],{},"taxCodePurchaseDefault",[185,287,288],{},"Line item and order line item:",[194,290,291,295,299,304,309,314,319,324,329],{},[197,292,293],{},[204,294,259],{},[197,296,297],{},[204,298,265],{},[197,300,301],{},[204,302,303],{},"unitPriceTaxExclusive",[197,305,306],{},[204,307,308],{},"unitPriceTaxInclusive",[197,310,311],{},[204,312,313],{},"unitDiscountAmount",[197,315,316],{},[204,317,318],{},"lineSubtotalTaxExclusive",[197,320,321],{},[204,322,323],{},"lineDiscountTotal",[197,325,326],{},[204,327,328],{},"lineTaxTotal",[197,330,331],{},[204,332,333],{},"lineTotalTaxInclusive",[185,335,336],{},"Order and purchase order:",[194,338,339,344,349,354],{},[197,340,341],{},[204,342,343],{},"subtotalTaxExclusive",[197,345,346],{},[204,347,348],{},"discountTotal",[197,350,351],{},[204,352,353],{},"taxTotal",[197,355,356],{},[204,357,358],{},"totalTaxInclusive",[185,360,361],{},"Supplier, customer, company, and location:",[194,363,364],{},[197,365,366],{},[204,367,368],{},"taxProfile",[185,370,371],{},"Tax profile:",[194,373,374,379,383,387,392],{},[197,375,376],{},[204,377,378],{},"countryCode",[197,380,381],{},[204,382,280],{},[197,384,385],{},[204,386,285],{},[197,388,389],{},[204,390,391],{},"registrations",[197,393,394],{},[204,395,396],{},"attributes",[185,398,399,400,403],{},"Tax profiles are read through their owning supplier, customer, company, or location. Use ",[204,401,402],{},"taxProfileSet"," with the owner typename and identifier to create or update that owner's profile.",[189,405,407],{"id":406},"discount-validation","Discount Validation",[185,409,410,412],{},[204,411,265],{}," is a captured line-level structure:",[194,414,415,428],{},[197,416,417,420,421,424,425,266],{},[204,418,419],{},"Percent"," requires ",[204,422,423],{},"percent"," and rejects ",[204,426,427],{},"amount",[197,429,430,420,433,424,435,266],{},[204,431,432],{},"Flat",[204,434,427],{},[204,436,423],{},[185,438,439],{},"The API validates this shape and returns the accepted value. It does not allocate the discount across a document or derive line totals from it in v1.",[189,441,443],{"id":442},"out-of-scope-in-v1","Out Of Scope In V1",[185,445,446],{},"The following work is intentionally not part of v1:",[194,448,449,452,455,458,461,464,467],{},[197,450,451],{},"provider mappings such as TaxJar or Avalara mappings",[197,453,454],{},"tax snapshot tables",[197,456,457],{},"AU GST or other tax calculation engines",[197,459,460],{},"rounding, discount allocation, inclusive/exclusive extraction, or tax total derivation",[197,462,463],{},"provider payload generation",[197,465,466],{},"document-level structured discount objects",[197,468,469],{},"migration or backfill from existing tax, price, or discount fields",[189,471,473],{"id":472},"compatibility-expectations","Compatibility Expectations",[185,475,476,477,479],{},"Existing product, order, purchase-order, supplier, customer, company, and location flows must continue to work when all v1 tax and captured price fields are omitted. In that case, the v1 fields should read back as ",[204,478,206],{},", while legacy fields should retain their existing values and calculations.",{"title":481,"searchDepth":108,"depth":108,"links":482},"",[483,484,485,486,487],{"id":191,"depth":108,"text":192},{"id":269,"depth":108,"text":270},{"id":406,"depth":108,"text":407},{"id":442,"depth":108,"text":443},{"id":472,"depth":108,"text":473},"Understand the v1 tax and captured price fields in the GraphQL API.","md",null,{"date":492,"template":493},"2026-05-08T00:00:00Z","guide",true,{"title":91,"description":488},"lECwhztulnJI7eq5eCjYGVIj4gdaONhSQkNksMx5seA",[498,500],{"title":87,"path":88,"stem":89,"description":499,"children":-1},"Learn about global functionality that is applied to all Jungle objects.",{"title":101,"path":97,"stem":98,"description":501,"children":-1},"Learn about and how to get started with our Node.js SDK",{"data":503,"body":504},{},{"type":505,"children":506},"root",[507],{"type":508,"tag":185,"props":509,"children":510},"element",{},[511],{"type":512,"value":488},"text",1784006102301]