github Universal-Commerce-Protocol/ucp v2026-04-08
Release v2026-04-08

7 hours ago

What's Changed

✨ New Features

  • feat(cart): Cart capability for basket building by @igrigorik in #73
  • feat(extends): multi-parent support + deterministic schema resolution by @igrigorik in #96
  • feat(errors): spec error handling for UCP negotiation failures by @igrigorik in #128
  • feat(context): add intent field for relevance and personalization by @igrigorik in #95
  • feat: Add first-class errors concept by @richmolj in #147
  • feat: add ec_color_scheme query parameter to embedded checkouts by @westeezy in #157
  • feat: signing for UCP requests & responses by @igrigorik in #156
  • feat: Allow fulfillment method type (and id) to be optional on Fulfillment method updates by @matthutchinson in #143
  • feat: add available_instruments to payment handler configurations by @raginpirate in #187
  • feat: Adding currency field to top level of Order by @deinck6 in #210
  • feat(errors): business logic error response for checkout and cart by @alexpark20 in #216
  • feat(catalog): Catalog Search+Lookup capabilities for product discovery by @igrigorik in #55
  • feat: extend discount capability to cart by @igrigorik in #246
  • feat!: signals for authorization & abuse by @igrigorik in #203
  • feat: eligibility claims & verification contract by @igrigorik in #250
  • feat: formalize totals contract by @igrigorik in #261
  • feat: extend warning to support disclosure contract by @igrigorik in #267
  • feat(embedded): add link delegation extension by @westeezy in #247
  • feat!: redesign identity linking with mechanism registry and capability-driven scopes by @amithanda in #265
  • feat: Add ec.totals.change to Embedded Checkout Protocol by @lemonmade in #272
  • feat!: update Order capability by @richmolj in #254
  • feat!: Update the Order schema to make currency a required field by @deinck6 in #283
  • feat: Add an optional label field on Order to hold additional identifiers by @jingyli in #326
  • feat: get product operation for catalog.lookup by @igrigorik in #195
  • feat!: Embedded protocol transport binding for cart capability + reauth mechanism in ECP by @jingyli in #244
  • feat(order): Get Order operation w/ platform-auth by @richmolj in #276
  • feat!: align embedded protocol errors with UCP error conventions by @westeezy in #325

📝 Documentation Updates

  • docs: Remove google mention for line item id description by @ptiper in #119
  • docs: fix broken image path in core-concepts.md by @dltkdgkr123 in #87
  • docs: update CONTRIBUTING.md to reference super_linter_local.py script by @drewolson-google in #138
  • docs: Adding endorsed partners Block, Fiserv, Klarna, and Splitit to the documentation by @MitkoDeyanovMitev in #149
  • docs(mcp): fix MCP examples & errors by @igrigorik in #141
  • docs: Adding endorsed partner Affirm to the documentation by @dwdii in #166
  • docs: Modernize diagrams by @gaureshpai in #99
  • docs: rename Technical Committee to Tech Council (TC) by @ptiper in #168
  • docs: Allow JSON and ucp-schema CLI not found errors to propagate up the call stack by @dwdii in #174
  • docs: use fulfillment instead of shipping in order totals example by @muzaffersenkal in #76
  • docs: Add endorsed partner Checkout.com to the documentation by @dwdii in #194
  • docs: Update Contribution Guide link in README.md to .github repo. by @amithanda in #204
  • docs: update broken links to CONTRIBUTING.md by @nearlyforget in #209
  • docs: fix broken links and add dynamic versioning by @wry-ry in #226
  • docs: update architecture diagrams and convert mobile version to JPG by @amithanda in #266
  • docs: Update create checkout and update checkout request samples by @aksbro-gpu in #293
  • docs: clarify the expectation for non-date protocol version by @alexpark20 in #324
  • docs: fix outdated services+capability examples in docs by @igrigorik in #335
  • docs: extract shared EP core, group transports in nav by @igrigorik in #339

🛠 Other Changes

  • fix: Remove page level HTML tags from playground.md by @wry-ry in #124
  • fix: update broken URLs in demo and documentation to use correct ucp.dev paths by @kiliczsh in #67
  • chore: manage dependencies with uv by @drewolson-google in #126
  • chore: respect .gitignore for biome linting by @drewolson-google in #130
  • fix(schema): publish UCP annotated schemas by @igrigorik in #125
  • chore: add script to run super linter locally by @drewolson-google in #132
  • fix: Add UCP-Agent header to the openapi.json. by @semenovm in #120
  • refactor: rename and version service transport definitions by @lemonmade in #154
  • chore: Update Shopify TC rep: Lee Richmond > Aaron Glazer by @igrigorik in #165
  • fix: update all broken schema references in documentation by @wry-ry in #160
  • chore: remove unused quicktype dependency by @wry-ry in #197
  • chore: add CODEOWNERS file by @nearlyforget in #167
  • chore: follow-up to update CODEOWNERS with devops-maintainers for additional tooling files by @nearlyforget in #199
  • refactor: fix versioning issues across ucp.dev by @wry-ry in #181
  • chore: upgrade super-linter by @drewolson-google in #198
  • fix: Image (core-concepts diagram) and spec link URLs broken after si… by @dwdii in #211
  • fix: Fix for broken links across ucp.dev by @wry-ry in #213
  • fix: Mark checkout id as deprecated_required_to_omit for update requests by @raginpirate in #145
  • fix!: Shift our prior breaking change to gracefully leverage our UCP transition schema by @raginpirate in #196
  • chore: Improve doc build error handling and local build ucp-schema version checking by @dwdii in #224
  • fix: Resolve broken assets when a space was in the name. by @dwdii in #233
  • fix: clarify version negotiation by @igrigorik in #200
  • chore: update CODEOWNERS to implement a hierarchical authority structure by @nearlyforget in #234
  • ci: disable Super-Linter from writing to PRs by @wry-ry in #243
  • fix: re-update mkdocs-material to fix mkdocs build breakage by @wry-ry in #248
  • fix: promote reverse_domain_name to standalone type by @igrigorik in #260
  • ci: only set latest alias if this release is the latest by @wry-ry in #249
  • fix: rebuild docs site by @wry-ry in #269
  • fix: docs build cleanup by @wry-ry in #268
  • chore(docs): overhaul CI pipeline, fix anchor links, and refine UI navigation by @wry-ry in #270
  • fix: resolve file exists error when symlinking specification by @wry-ry in #278
  • chore: Delete generate_ts_schema_types.js by @dwdii in #281
  • chore: Remove local issue templates in favor of organization-level templates by @nearlyforget in #286
  • ci: prepare for release by @wry-ry in #322
  • fix!: update total to use signed_amount.json by @wry-ry in #299
  • ci: don't run docs build on release cut by @wry-ry in #327
  • fix(security): update lodash to fix Trivy vulnerabilities by @nearlyforget in #333
  • fix: revert identity linking #265 update by @igrigorik in #329
  • style!: Clean up transition & deprecated schema in preparation of a version cut by @jingyli in #341

New Contributors

Full Changelog: v2026-01-23...v2026-04-08

Don't miss a new ucp release

NewReleases is sending notifications on new releases.