Changelog¶
Version history of the Open Delivery Protocol.
How to read this changelog¶
This changelog is organized by capability/module to simplify implementation and migration.
Legend:
- Breaking: requires contract or behavior changes.
- New: new capability or functional block in V2.
- Improvement: clarification, normative reinforcement, or evolution without direct contract break.
V2.0.0-rc - July 2026¶
First Release Candidate of V2. This release opens an ecosystem validation phase; V1 remains active during transition.
Status: ecosystem validation¶
Publishing the RC starts a validation period, not the stable release. In this phase:
- Review - companies and implementers review the documentation (guide, protocol, and API Specs).
- Pilot - selected companies implement parts of the specification in controlled environments and validate real flows.
- Feedback - adjustments and clarifications may be incorporated based on review and pilot outcomes.
- Release - only after that validation will V2 be promoted to a stable release.
Until then, V1 remains active and is the reference for production integrations.
Changes by capability¶
Discovery¶
- Improvement:
/.well-known/opendeliveryis now mandatory to declare capabilities, versions, and integration modes before integration activation.
References: Discovery Protocol · Discovery API Spec
Authentication¶
- Breaking: auth by application, with one
client_idper software (not per store). - Improvement: domain-based scope standardization (
od.orders,od.menu,od.logistics,od.crm,od.all). - Improvement: optional
Authorization Code Flowfor advanced cases.
References: Authentication Protocol · Authentication API Spec
Merchant¶
- Breaking:
merchantIdis now generated by the originator; POS correlates withexternalCode. - Breaking:
merchantTyperemoved. - Breaking: services are identified by type (
DELIVERY,TAKEOUT,INDOOR) without a separate id. - Breaking:
Serviceshape was simplified (no serviceid; focus ontype+status;operatingHoursreplaces the legacy schedule model). - Breaking: legacy V1 onboarding/status endpoints (
/v1/merchantOnboarding,/v1/merchantStatus) are no longer part of the normative Merchant V2 contract. - Improvement: explicit per-service pause semantics.
- Improvement: catalog bootstrap/reconciliation via
GET .../snapshot;merchantUpdate/menuUpdatedis no longer the core sync path.
References: Merchant Protocol · Merchant API Spec
Menu (module inside the Merchant capability)¶
- Breaking: end of the monolithic V1
merchantUpdatewebhook. - Breaking: adoption of granular CRUD per catalog entity.
- Breaking:
subtotalon options removed; useoption_price(required) andunity_price. - Improvement: recursive options with nested OptionGroups.
- Improvement:
quantity_availableon ItemOffer for operational availability.
References: Menu Protocol · Merchant API Spec
Orders¶
- Breaking: originator cancellation handshake (
ORDER_CANCELLATION_REQUEST+ accept/deny) removed; mandatory cancellation viaCANCELLED. - Breaking:
PICKED_UPevent removed. - Breaking:
Order.typeremoved from root; profile moves toOrder.fulfillment.orderType. - Breaking:
Order.delivery,Order.takeout, andOrder.indoormoved underOrder.fulfillment.*. - Breaking: timing was unified under
Order.timing(orderTiming,schedule,preparationStartDateTime,orderPriority), andscheduleis now required whenorderTiming = SCHEDULED. - Breaking: item/option pricing fields are grouped under
pricinginOrder.items[*]andOrder.items[*].options[*], while keeping V1 price format (Price { value, currency }). - Breaking:
subtotalPricewas removed from item and option pricing in Orders V2. - Breaking:
Order.statusbecomes authoritative inGET /orders/{id}. - Breaking: for
DELIVERYorders,Order.customeris now required in the payload. - New: order-origin metadata with
Order.context.salesChanneland order-level notes inOrder.observations. - New:
Order.items[*].itemOfferId,Order.items[*].options[*].defaultQuantity, and nested options support (Order.items[*].options[*].options). - New: optional CRM/Loyalty customer fields (
Order.customer.birthDateandOrder.customer.gender). - Improvement: explicit separation between status and events.
- Improvement: repeated already-applied operation follows async pattern with
202 Accepted(no additional transition).
References: Orders Protocol · Orders API Spec · Conventions
Logistics¶
- Improvement: async-first semantics (
202 Accepted) consolidated for delivery lifecycle operations. - Improvement: alignment with discovery for tracking modes (push/pull).
References: Logistics Protocol · Logistics API Spec
Customer¶
- New: capability for customer data, leads, and reviews in V2.
References: Customer Protocol · Customer API Spec
Loyalty¶
- New: loyalty capability/module (points, cashback, coupons, rewards) within the CRM/Customer domain.
References: Loyalty Protocol
Indoor¶
- New: capability for in-store operations (table, tab, counter), with central account and async behavior.
References: Indoor Protocol · Indoor API Spec
Cross-cutting changes¶
- Improvement: V2 reinforces async integration as default (
202 Acceptedfor mutations). - Improvement: clearer split between domain narrative (Protocol) and implementable contract (API Spec).
V1.7.0¶
V1 remains active during transition.
For differences and migration, see: V1->V2 Migration Guide.