{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","description":"Country-agnostic pricing sheet: categorised product price list (standard or customer-specific), optionally with volume-discount tiers.","required":["issuer","effective_from","currency","categories","payment_terms"],"additionalProperties":false,"properties":{"issuer":{"type":"object","required":["name","address","contact_email"],"additionalProperties":false,"properties":{"name":{"type":"string","minLength":1},"address":{"type":"string","minLength":1},"vat_id":{"type":"string"},"contact_email":{"type":"string","format":"email"}}},"customer":{"type":"object","description":"Optional — include when the sheet is customer-specific.","required":["name"],"additionalProperties":false,"properties":{"name":{"type":"string","minLength":1},"address":{"type":"string"},"account_number":{"type":"string"}}},"reference":{"type":"string","description":"Optional internal reference for the sheet."},"effective_from":{"type":"string","format":"date"},"effective_to":{"type":"string","format":"date","description":"Optional. If absent, the sheet supersedes prior sheets until a newer one is issued."},"currency":{"type":"string"},"categories":{"type":"array","minItems":1,"items":{"type":"object","required":["name","products"],"additionalProperties":false,"properties":{"name":{"type":"string","minLength":1},"products":{"type":"array","minItems":1,"items":{"type":"object","required":["sku","description","unit","list_price"],"additionalProperties":false,"properties":{"sku":{"type":"string","minLength":1},"description":{"type":"string","minLength":1},"unit":{"type":"string","minLength":1},"list_price":{"type":"number","minimum":0},"discount_pct":{"type":"number","minimum":0,"maximum":100,"description":"Optional customer-specific discount from list price."},"net_price":{"type":"number","minimum":0,"description":"Optional explicit net price (overrides list_price - discount_pct rounding)."}}}}}}},"volume_discount_tiers":{"type":"array","description":"Optional. Additional volume-based discount applied on top of per-line pricing for orders meeting the min_qty threshold.","items":{"type":"object","required":["min_qty","discount_pct"],"additionalProperties":false,"properties":{"min_qty":{"type":"number","exclusiveMinimum":0},"discount_pct":{"type":"number","minimum":0,"maximum":100}}}},"payment_terms":{"type":"string","minLength":1},"notes":{"type":"string"},"signatory":{"type":"object","required":["name","role"],"additionalProperties":false,"properties":{"name":{"type":"string"},"role":{"type":"string"},"date":{"type":"string","format":"date"}}}}}