Skip to content

feat: add tax_included to the price type - #691

Open
YanisMtcr wants to merge 1 commit into
Universal-Commerce-Protocol:mainfrom
YanisMtcr:feat/price-tax-included
Open

feat: add tax_included to the price type#691
YanisMtcr wants to merge 1 commit into
Universal-Commerce-Protocol:mainfrom
YanisMtcr:feat/price-tax-included

Conversation

@YanisMtcr

Copy link
Copy Markdown

Context: #256 (LATAM pricing) raised the same class of issue. This scopes it to the catalog price marker.


tax_included is a new optional field on the price type: a boolean stating whether the amount includes tax (VAT, GST, etc.). A catalog price already carries amount and currency; today it never says whether tax is in it, so an agent has to infer that from the buyer's country. This makes the price self-describing, mirroring how currency is already explicit, rather than adding new machinery.

What it looks like

A tax-inclusive EU catalog price:

{ "amount": 12000, "currency": "EUR", "tax_included": true }

A US catalog price omits it (or sets false); tax is added downstream. The itemized tax breakdown stays in checkout totals; this field only disambiguates the displayed price.

Optional and backward-compatible: when absent, behavior is unchanged; agents that ignore it fall back to today's inference, agents that read it drop the guesswork.

Category (Required)

  • Core Protocol: Changes to the base communication layer, global context, or breaking refactors. (Requires Technical Council approval)
  • Capability: New schemas (Discovery, Cart, etc.) or extensions. (Requires Maintainer approval)
  • Documentation: Updates to README, or documentations regarding schema or capabilities. (Requires Maintainer approval)
  • Samples / Conformance: Maintaining samples and the conformance suite. (Requires Maintainer approval)
  • UCP Schema: Changes to the ucp-schema tool (resolver, linter, validator). (Requires Maintainer approval)

Checklist

  • I have followed the Contributing Guide (Conventional Commits title, no breaking changes).
  • I have updated the documentation.
  • cspell and markdownlint pass locally. ucp-schema and super-linter not run locally (no cargo/docker); relying on CI.
  • I have added tests that prove my fix is effective or that my feature works.
  • (For Core/Capability) I have included/updated the relevant JSON schemas.
  • I have regenerated Python Pydantic models by running generate_models.sh under python_sdk.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants