{"ok":true,"site":{"host":"shop.dev","url":"https://shop.dev/","type":"live","desc":"Shop’s developer playground for product discovery, carts and agent commerce.","tools":[{"name":"shop_skill","kind":"answer","impl":"imperative","description":"Read this skill before using the Shop commerce tools. Start with {} for the entrypoint and follow exact linked references when relevant. Reads are quiet and do not change the terminal.","title":"Shop guidance","annotations":{"readOnlyHint":true,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"reference":{"type":"string","enum":["references/catalog.md","references/transactions.md"],"description":"One exact linked skill reference. Omit to read the entrypoint."}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"shop_sign_in","kind":"act","impl":"imperative","description":"Connect Shop only when the user agrees. Start with wait:0 to return the current public activation URL and user code without polling. After the user approves in another tab, call wait:90. Only data.signed_in:true confirms sign-in. This never performs a purchase.","title":"shop account login","annotations":{"readOnlyHint":false,"consequentialHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"wait":{"type":"integer","enum":[0,90],"default":0,"description":"Use 0 to obtain the URL/code. Use 90 only after the user approves."}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"clear_terminal","kind":"act","impl":"imperative","description":"Clear idle pending input, the terminal display and scrollback. Refuses while a command is active. Does not sign out.","title":"clear","annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"search_catalog","kind":"answer","impl":"imperative","description":"Find by query/like. Anonymous works; sign-in adds saved preferences. Context soft; filters hard. Matches/options do not prove the variant. Check messages; ground options, availability, price/currency, rating, seller, and URL in the exact offer. Use get_product only for unresolved facts/options. Amounts are minor units.","title":"shop search","annotations":{"readOnlyHint":true,"consequentialHint":false,"untrustedContentHint":true},"inputSchema":{"$defs":{"d0":{"description":"Reverse domain, 2+ segments.","examples":["dev.ucp.shopping.checkout","dev.ucp.common.identity_linking","com.example.loyalty_gold","com.example-shop.checkout","com.2example.cart","uk.co.example-shop.checkout","xn--p1ai.example.checkout"],"pattern":"^[a-z](?:[a-z0-9-]*[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9_-]*[a-z0-9_])?)+$","title":"Reverse Domain Name","type":"string"},"d1":{"additionalProperties":true,"properties":{"categories":{"items":{"type":"string"},"type":"array"},"price":{"description":"Inclusive context.currency minor-unit bounds.","properties":{"max":{"allOf":[{"$ref":"#/$defs/d2"}]},"min":{"allOf":[{"$ref":"#/$defs/d2"}]}},"title":"Price Filter","type":"object"}},"title":"Search Filters","type":"object"},"d2":{"description":"ISO 4217 minor units: USD2, JPY0, KWD3.","maximum":9007199254740991,"minimum":0,"title":"Amount","type":"integer"}},"properties":{"catalog":{"allOf":[{"allOf":[{"properties":{"context":{"additionalProperties":true,"allOf":[{"additionalProperties":true,"description":"Coarse locality; not an address.","properties":{"address_country":{"description":"ISO 3166-1 alpha-2, e.g. US.","type":"string"},"address_region":{"type":"string"},"postal_code":{"type":"string"}},"title":"Locality","type":"object"},{"additionalProperties":true,"properties":{"currency":{"description":"ISO 4217 preference/filter currency; verify output.","type":"string"},"eligibility":{"description":"Nonidentifying reverse-domain benefits; ignore unknowns.","items":{"$ref":"#/$defs/d0"},"type":"array","uniqueItems":true},"intent":{"description":"Relevance hint, e.g. 'gift under $50'.","type":"string"},"language":{"description":"BCP 47 preference, e.g. fr-CA.","type":"string"},"location":{"description":"Opaque merchant location ID, not locality.","type":"string"},"payment":{"description":"Advertised handlers, most preferred first; ignore unknowns.","items":{"properties":{"handler":{"allOf":[{"$ref":"#/$defs/d0"}],"description":"Merchant ucp.payment_handlers key."},"types":{"description":"Instrument types, most preferred first; ignore unknowns.","items":{"type":"string"},"type":"array"}},"required":["handler"],"type":"object"},"type":"array"}},"type":"object"}],"description":"Soft relevance/localization; checkout wins.","title":"Context","type":"object"},"filters":{"$ref":"#/$defs/d1"},"pagination":{"properties":{"cursor":{"type":"string"},"limit":{"minimum":1,"type":"integer"}},"type":"object"},"query":{"type":"string"},"signals":{"additionalProperties":true,"description":"Observed/verified platform facts; no buyer claims.","properties":{"dev.ucp.buyer_ip":{"type":"string"},"dev.ucp.user_agent":{"type":"string"}},"propertyNames":{"allOf":[{"$ref":"#/$defs/d0"}]},"title":"Signals","type":"object"}},"type":"object"},{"anyOf":[{"required":["query"]},{"required":["like"]}],"properties":{"filters":{"allOf":[{"$ref":"#/$defs/d1"},{"allOf":[{"properties":{"available":{"default":true,"type":"boolean"}},"title":"Shopify Filters","type":"object"},{"properties":{"condition":{"items":{"type":"string"},"type":"array"},"ships_from":{"items":{"properties":{"country":{"pattern":"^[A-Z]{2}$","type":"string"}},"required":["country"],"type":"object"},"type":"array"},"ships_to":{"properties":{"country":{"pattern":"^[A-Z]{2}$","type":"string"},"postal_code":{"type":"string"},"region":{"type":"string"}},"required":["country"],"type":"object"},"shops":{"items":{"type":"string"},"maxItems":1000,"type":"array"}},"type":"object"}],"title":"Global Filters"},{"properties":{"attributes":{"items":{"properties":{"name":{"type":"string"},"values":{"items":{"type":"string"},"maxItems":50,"minItems":1,"type":"array"}},"required":["name","values"],"type":"object"},"maxItems":25,"type":"array"},"categories":{"items":{"type":"string"},"type":"array"},"price_tier":{"items":{"type":"string"},"type":"array"},"rating":{"properties":{"variant":{"properties":{"min":{"maximum":5,"minimum":0,"type":"number"},"min_count":{"maximum":2147483647,"minimum":0,"type":"integer"}},"type":"object"}},"type":"object"}},"type":"object"}],"title":"Global Search Filters"}},"type":"object"}],"title":"Global Search Request","type":"object"},{"anyOf":[{"required":["query"]},{"required":["like"]}],"properties":{"catalog_id":{"description":"Saved catalog ID whose configuration constrains search.","type":"string"},"context":{"additionalProperties":true,"properties":{"address_country":{"type":"string"},"address_region":{"type":"string"},"currency":{"type":"string"},"intent":{"type":"string"},"language":{"type":"string"},"postal_code":{"type":"string"}},"type":"object"},"filters":{"additionalProperties":true,"description":"Hard requirements; fields AND, stated lists OR. Check messages/every offer.","properties":{"attributes":{"description":"Attributes AND; each value list OR. Check ignored-name messages.","items":{"properties":{"name":{"description":"Supported names: Color, Size, Target gender.","type":"string"},"values":{"description":"OR across taxonomy values.","items":{"type":"string"},"maxItems":50,"minItems":1,"type":"array"}},"required":["name","values"],"type":"object"},"maxItems":25,"type":"array"},"available":{"default":true,"description":"true/omitted: sale-ready only; false: include unavailable.","type":"boolean"},"categories":{"description":"OR taxonomy category GIDs.","items":{"type":"string"},"type":"array"},"condition":{"description":"OR new/secondhand; omit for either.","items":{"type":"string"},"type":"array"},"price":{"properties":{"max":{"type":"integer"},"min":{"type":"integer"}},"type":"object"},"price_tier":{"description":"OR category-relative tiers, not a budget cap; check ignored-value messages.","items":{"type":"string"},"type":"array"},"rating":{"properties":{"variant":{"description":"At least one variant must meet these thresholds.","properties":{"min":{"description":"Minimum rating on a 0–5 scale.","maximum":5,"minimum":0,"type":"number"},"min_count":{"description":"Minimum variant review count.","maximum":2147483647,"minimum":0,"type":"integer"}},"type":"object"}},"type":"object"},"ships_from":{"description":"OR origins; omit for any.","items":{"properties":{"country":{"description":"ISO 3166-1 alpha-2.","pattern":"^[A-Z]{2}$","type":"string"}},"required":["country"],"type":"object"},"type":"array"},"ships_to":{"description":"Hard destination; context may supply it if omitted; matching context may refine estimates.","properties":{"country":{"description":"ISO 3166-1 alpha-2.","pattern":"^[A-Z]{2}$","type":"string"},"postal_code":{"type":"string"},"region":{"type":"string"}},"required":["country"],"type":"object"},"shops":{"description":"OR seller.id Shop GIDs/domains; check unmatched messages.","items":{"type":"string"},"maxItems":1000,"type":"array"}},"type":"object"},"like":{"description":"One product/variant ID or image reference for similarity. Add query to refine an image reference. Put hard requirements in supported filters.","items":{"oneOf":[{"additionalProperties":false,"properties":{"id":{"description":"Exact Shopify product or variant GID.","pattern":"^gid://shopify/","type":"string"}},"required":["id"],"title":"Item Reference"},{"additionalProperties":false,"properties":{"image":{"additionalProperties":false,"properties":{"content_type":{"description":"Image MIME type, e.g. image/jpeg or image/webp.","type":"string"},"data":{"contentEncoding":"base64","description":"Base64-encoded image bytes.","type":"string"}},"required":["content_type","data"],"type":"object"}},"required":["image"],"title":"Image Content"}],"title":"Like Item","type":"object"},"maxItems":2,"minItems":1,"type":"array"},"pagination":{"properties":{"cursor":{"description":"Pass unchanged with the same query, like, context, and filters.","type":"string"},"limit":{"default":10,"description":"Page size. Defaults to 10; maximum 50.","maximum":50,"minimum":1,"type":"integer"}},"type":"object"},"query":{"description":"Preserve intent; clarify only. Add no preferences/popularity. Put hard requirements in supported filters.","type":"string"},"signals":{"additionalProperties":true,"properties":{"dev.ucp.buyer_ip":{"type":"string"},"dev.ucp.user_agent":{"type":"string"}},"type":"object"}},"type":"object"},{"not":{"required":["attribution"]}},{"not":{"required":["view"]}}],"type":"object"}},"required":["catalog"],"type":"object"},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"lookup_catalog","kind":"answer","impl":"imperative","description":"Resolve known product/variant IDs, GTINs, UPCs, or URLs. Use search_catalog for discovery; get_product only for unresolved options/details. Preserve IDs/URLs; ground claims in the exact offer. Amounts are minor units.","title":"shop catalog lookup","annotations":{"readOnlyHint":true,"consequentialHint":false,"untrustedContentHint":true},"inputSchema":{"$defs":{"d0":{"description":"Reverse domain, 2+ segments.","examples":["dev.ucp.shopping.checkout","dev.ucp.common.identity_linking","com.example.loyalty_gold","com.example-shop.checkout","com.2example.cart","uk.co.example-shop.checkout","xn--p1ai.example.checkout"],"pattern":"^[a-z](?:[a-z0-9-]*[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9_-]*[a-z0-9_])?)+$","title":"Reverse Domain Name","type":"string"},"d1":{"description":"ISO 4217 minor units: USD2, JPY0, KWD3.","maximum":9007199254740991,"minimum":0,"title":"Amount","type":"integer"}},"properties":{"catalog":{"allOf":[{"allOf":[{"properties":{"context":{"additionalProperties":true,"allOf":[{"additionalProperties":true,"description":"Coarse locality; not an address.","properties":{"address_country":{"description":"ISO 3166-1 alpha-2, e.g. US.","type":"string"},"address_region":{"type":"string"},"postal_code":{"type":"string"}},"title":"Locality","type":"object"},{"additionalProperties":true,"properties":{"currency":{"description":"ISO 4217 preference/filter currency; verify output.","type":"string"},"eligibility":{"description":"Nonidentifying reverse-domain benefits; ignore unknowns.","items":{"$ref":"#/$defs/d0"},"type":"array","uniqueItems":true},"intent":{"description":"Relevance hint, e.g. 'gift under $50'.","type":"string"},"language":{"description":"BCP 47 preference, e.g. fr-CA.","type":"string"},"location":{"description":"Opaque merchant location ID, not locality.","type":"string"},"payment":{"description":"Advertised handlers, most preferred first; ignore unknowns.","items":{"properties":{"handler":{"allOf":[{"$ref":"#/$defs/d0"}],"description":"Merchant ucp.payment_handlers key."},"types":{"description":"Instrument types, most preferred first; ignore unknowns.","items":{"type":"string"},"type":"array"}},"required":["handler"],"type":"object"},"type":"array"}},"type":"object"}],"description":"Soft relevance/localization; checkout wins.","title":"Context","type":"object"},"filters":{"allOf":[{"additionalProperties":true,"properties":{"categories":{"items":{"type":"string"},"type":"array"},"price":{"description":"Inclusive context.currency minor-unit bounds.","properties":{"max":{"allOf":[{"$ref":"#/$defs/d1"}]},"min":{"allOf":[{"$ref":"#/$defs/d1"}]}},"title":"Price Filter","type":"object"}},"title":"Search Filters","type":"object"}]},"ids":{"items":{"type":"string"},"minItems":1,"type":"array"},"signals":{"additionalProperties":true,"description":"Observed/verified platform facts; no buyer claims.","properties":{"dev.ucp.buyer_ip":{"type":"string"},"dev.ucp.user_agent":{"type":"string"}},"propertyNames":{"allOf":[{"$ref":"#/$defs/d0"}]},"title":"Signals","type":"object"}},"required":["ids"],"type":"object"},{"properties":{"filters":{"allOf":[{"properties":{"available":{"default":true,"type":"boolean"}},"title":"Shopify Filters","type":"object"},{"properties":{"condition":{"items":{"type":"string"},"type":"array"},"ships_from":{"items":{"properties":{"country":{"pattern":"^[A-Z]{2}$","type":"string"}},"required":["country"],"type":"object"},"type":"array"},"ships_to":{"properties":{"country":{"pattern":"^[A-Z]{2}$","type":"string"},"postal_code":{"type":"string"},"region":{"type":"string"}},"required":["country"],"type":"object"},"shops":{"items":{"type":"string"},"maxItems":1000,"type":"array"}},"type":"object"}],"title":"Global Filters"}},"type":"object"}],"title":"Global Lookup Request","type":"object"},{"properties":{"context":{"additionalProperties":true,"properties":{"address_country":{"type":"string"},"address_region":{"type":"string"},"currency":{"type":"string"},"intent":{"type":"string"},"language":{"type":"string"},"postal_code":{"type":"string"}},"type":"object"},"filters":{"additionalProperties":true,"description":"Hard requirements; fields AND, stated lists OR. Verify the offer.","properties":{"available":{"default":true,"description":"true/omitted: sale-ready only; false: include unavailable.","type":"boolean"},"categories":{"description":"OR taxonomy category GIDs.","items":{"type":"string"},"type":"array"},"condition":{"description":"OR new/secondhand; omit for either.","items":{"type":"string"},"type":"array"},"price":{"properties":{"max":{"type":"integer"},"min":{"type":"integer"}},"type":"object"},"ships_from":{"description":"OR origins; omit for any.","items":{"properties":{"country":{"description":"ISO 3166-1 alpha-2.","pattern":"^[A-Z]{2}$","type":"string"}},"required":["country"],"type":"object"},"type":"array"},"ships_to":{"description":"Hard destination; context may supply it if omitted; matching context may refine estimates.","properties":{"country":{"description":"ISO 3166-1 alpha-2.","pattern":"^[A-Z]{2}$","type":"string"},"postal_code":{"type":"string"},"region":{"type":"string"}},"required":["country"],"type":"object"},"shops":{"description":"OR seller.id Shop GIDs/domains; check unmatched messages.","items":{"type":"string"},"maxItems":1000,"type":"array"}},"type":"object"},"ids":{"description":"Up to 50 exact IDs/URLs; preserve returned values.","items":{"type":"string"},"maxItems":50,"minItems":1,"type":"array"},"signals":{"additionalProperties":true,"properties":{"dev.ucp.buyer_ip":{"type":"string"},"dev.ucp.user_agent":{"type":"string"}},"type":"object"}},"required":["ids"],"type":"object"},{"not":{"required":["attribution"]}},{"not":{"required":["view"]}}],"type":"object"}},"required":["catalog"],"type":"object"},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_product","kind":"answer","impl":"imperative","description":"Resolve missing details/options for a known product. Use its returned ID/exact option name-label pairs; verify effective selection because requests may drop. Ground availability, seller, price/currency, rating, and URL in the exact offer. Skip if prior results prove facts. Amounts are minor units.","title":"shop catalog get","annotations":{"readOnlyHint":true,"consequentialHint":false,"untrustedContentHint":true},"inputSchema":{"$defs":{"d0":{"description":"Reverse domain, 2+ segments.","examples":["dev.ucp.shopping.checkout","dev.ucp.common.identity_linking","com.example.loyalty_gold","com.example-shop.checkout","com.2example.cart","uk.co.example-shop.checkout","xn--p1ai.example.checkout"],"pattern":"^[a-z](?:[a-z0-9-]*[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9_-]*[a-z0-9_])?)+$","title":"Reverse Domain Name","type":"string"},"d1":{"description":"ISO 4217 minor units: USD2, JPY0, KWD3.","maximum":9007199254740991,"minimum":0,"title":"Amount","type":"integer"}},"properties":{"catalog":{"allOf":[{"allOf":[{"properties":{"context":{"additionalProperties":true,"allOf":[{"additionalProperties":true,"description":"Coarse locality; not an address.","properties":{"address_country":{"description":"ISO 3166-1 alpha-2, e.g. US.","type":"string"},"address_region":{"type":"string"},"postal_code":{"type":"string"}},"title":"Locality","type":"object"},{"additionalProperties":true,"properties":{"currency":{"description":"ISO 4217 preference/filter currency; verify output.","type":"string"},"eligibility":{"description":"Nonidentifying reverse-domain benefits; ignore unknowns.","items":{"$ref":"#/$defs/d0"},"type":"array","uniqueItems":true},"intent":{"description":"Relevance hint, e.g. 'gift under $50'.","type":"string"},"language":{"description":"BCP 47 preference, e.g. fr-CA.","type":"string"},"location":{"description":"Opaque merchant location ID, not locality.","type":"string"},"payment":{"description":"Advertised handlers, most preferred first; ignore unknowns.","items":{"properties":{"handler":{"allOf":[{"$ref":"#/$defs/d0"}],"description":"Merchant ucp.payment_handlers key."},"types":{"description":"Instrument types, most preferred first; ignore unknowns.","items":{"type":"string"},"type":"array"}},"required":["handler"],"type":"object"},"type":"array"}},"type":"object"}],"description":"Soft relevance/localization; checkout wins.","title":"Context","type":"object"},"filters":{"allOf":[{"additionalProperties":true,"properties":{"categories":{"items":{"type":"string"},"type":"array"},"price":{"description":"Inclusive context.currency minor-unit bounds.","properties":{"max":{"allOf":[{"$ref":"#/$defs/d1"}]},"min":{"allOf":[{"$ref":"#/$defs/d1"}]}},"title":"Price Filter","type":"object"}},"title":"Search Filters","type":"object"}]},"id":{"type":"string"},"preferences":{"description":"Ordered option names, relaxed from the end; not hard requirements.","items":{"type":"string"},"type":"array"},"selected":{"items":{"properties":{"id":{"description":"Copy returned option_value.id unchanged.","type":"string"},"label":{"type":"string"},"name":{"type":"string"}},"required":["name","label"],"title":"Selected Option","type":"object"},"type":"array"},"signals":{"additionalProperties":true,"description":"Observed/verified platform facts; no buyer claims.","properties":{"dev.ucp.buyer_ip":{"type":"string"},"dev.ucp.user_agent":{"type":"string"}},"propertyNames":{"allOf":[{"$ref":"#/$defs/d0"}]},"title":"Signals","type":"object"}},"required":["id"],"type":"object"},{"properties":{"filters":{"allOf":[{"properties":{"available":{"default":true,"type":"boolean"}},"title":"Shopify Filters","type":"object"},{"properties":{"condition":{"items":{"type":"string"},"type":"array"},"ships_from":{"items":{"properties":{"country":{"pattern":"^[A-Z]{2}$","type":"string"}},"required":["country"],"type":"object"},"type":"array"},"ships_to":{"properties":{"country":{"pattern":"^[A-Z]{2}$","type":"string"},"postal_code":{"type":"string"},"region":{"type":"string"}},"required":["country"],"type":"object"},"shops":{"items":{"type":"string"},"maxItems":1000,"type":"array"}},"type":"object"}],"title":"Global Filters"}},"type":"object"}],"title":"Global Get Product Request","type":"object"},{"properties":{"context":{"additionalProperties":true,"properties":{"address_country":{"type":"string"},"address_region":{"type":"string"},"currency":{"type":"string"},"intent":{"type":"string"},"language":{"type":"string"},"postal_code":{"type":"string"}},"type":"object"},"filters":{"additionalProperties":true,"description":"Hard requirements; fields AND, stated lists OR. Verify the offer.","properties":{"available":{"default":true,"description":"true/omitted: sale-ready only; false: include unavailable.","type":"boolean"},"categories":{"description":"OR taxonomy category GIDs.","items":{"type":"string"},"type":"array"},"condition":{"description":"OR new/secondhand; omit for either.","items":{"type":"string"},"type":"array"},"price":{"properties":{"max":{"type":"integer"},"min":{"type":"integer"}},"type":"object"},"ships_from":{"description":"OR origins; omit for any.","items":{"properties":{"country":{"description":"ISO 3166-1 alpha-2.","pattern":"^[A-Z]{2}$","type":"string"}},"required":["country"],"type":"object"},"type":"array"},"ships_to":{"description":"Hard destination; context may supply it if omitted; matching context may refine estimates.","properties":{"country":{"description":"ISO 3166-1 alpha-2.","pattern":"^[A-Z]{2}$","type":"string"},"postal_code":{"type":"string"},"region":{"type":"string"}},"required":["country"],"type":"object"},"shops":{"description":"OR seller.id Shop GIDs/domains; check unmatched messages.","items":{"type":"string"},"maxItems":1000,"type":"array"}},"type":"object"},"id":{"description":"Exact returned product ID; resolve URL/variant via lookup_catalog first.","type":"string"},"preferences":{"items":{"type":"string"},"type":"array"},"selected":{"description":"Exact returned name/label pairs; verify effective selection because requests may drop.","items":{"properties":{"label":{"type":"string"},"name":{"type":"string"}},"type":"object"},"type":"array"},"signals":{"additionalProperties":true,"properties":{"dev.ucp.buyer_ip":{"type":"string"},"dev.ucp.user_agent":{"type":"string"}},"type":"object"}},"required":["id"],"type":"object"},{"not":{"required":["attribution"]}},{"not":{"required":["view"]}}],"type":"object"}},"required":["catalog"],"type":"object"},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"search_locations","kind":"answer","impl":"imperative","description":"Search shop's physical stores by city, neighborhood, street or postal code (query), by radius around coordinates the user gave (distance), or by item availability (filters.items); filters combine. One shop per call. Omit filters to list every store.","title":"shop location search","annotations":{"readOnlyHint":true,"consequentialHint":false,"untrustedContentHint":true},"inputSchema":{"$defs":{"d0":{"properties":{"context":{"additionalProperties":true,"allOf":[{"$ref":"#/$defs/d1"},{"additionalProperties":true,"properties":{"currency":{"description":"ISO 4217 preference/filter currency; verify output.","type":"string"},"eligibility":{"description":"Nonidentifying reverse-domain benefits; ignore unknowns.","items":{"$ref":"#/$defs/d2"},"type":"array","uniqueItems":true},"intent":{"description":"Relevance hint, e.g. 'gift under $50'.","type":"string"},"language":{"description":"BCP 47 preference, e.g. fr-CA.","type":"string"},"location":{"description":"Opaque merchant location ID, not locality.","type":"string"},"payment":{"description":"Advertised handlers, most preferred first; ignore unknowns.","items":{"properties":{"handler":{"allOf":[{"$ref":"#/$defs/d2"}],"description":"Merchant ucp.payment_handlers key."},"types":{"description":"Instrument types, most preferred first; ignore unknowns.","items":{"type":"string"},"type":"array"}},"required":["handler"],"type":"object"},"type":"array"}},"type":"object"}],"description":"Soft relevance/localization; checkout wins.","title":"Context","type":"object"},"distance":{"allOf":[{"additionalProperties":true,"description":"Stores within max meters of an explicit center. Use coordinates the user or host gave; never derive them. The radius is never widened or clamped.","properties":{"center":{"allOf":[{"$ref":"#/$defs/d3"}]},"max":{"description":"Inclusive radius in meters.","minimum":0,"type":"number"}},"required":["center","max"],"title":"Location Distance","type":"object"}]},"filters":{"additionalProperties":true,"description":"Hard requirements; fields AND. A merchant rejects a filter it cannot evaluate with invalid_input rather than ignoring it; Shopify stores evaluate items only.","properties":{"amenities":{"description":"Exact amenity IDs, all required.","items":{"allOf":[{"$ref":"#/$defs/d2"}],"examples":["dev.ucp.amenity.wi_fi","dev.ucp.amenity.parking","dev.ucp.amenity.shopping.in_store_pickup","dev.ucp.amenity.shopping.curbside_pickup"],"title":"Amenity Type"},"type":"array"},"hours":{"properties":{"open_at":{"description":"RFC 3339 instant the store must be open at.","format":"date-time","pattern":"(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])$","type":"string"}},"required":["open_at"],"type":"object"},"items":{"description":"Variant IDs from catalog results; returns stores that have all of them available, up to 10 items per call.","items":{"minLength":1,"type":"string"},"minItems":1,"type":"array","uniqueItems":true}},"title":"Location Filter","type":"object"},"pagination":{"properties":{"cursor":{"type":"string"},"limit":{"minimum":1,"type":"integer"}},"type":"object"},"query":{"description":"City, neighborhood, street or postal code, matched literally (New York, not NY). Omit to list every store.","type":"string"},"serves":{"allOf":[{"additionalProperties":true,"description":"Serviceability (can this store deliver to the target), not proximity; use distance for near. Exactly one of point or address. Merchants that cannot evaluate it, Shopify stores included, return invalid_input.","maxProperties":1,"minProperties":1,"properties":{"address":{"allOf":[{"$ref":"#/$defs/d1"},{"anyOf":[{"properties":{"address_country":{"minLength":1,"type":"string"}},"required":["address_country"]},{"properties":{"address_region":{"minLength":1,"type":"string"}},"required":["address_region"]},{"properties":{"postal_code":{"minLength":1,"type":"string"}},"required":["postal_code"]}],"type":"object"}]},"point":{"allOf":[{"$ref":"#/$defs/d3"}]}},"propertyNames":{"anyOf":[{"const":"point"},{"const":"address"},{"$ref":"#/$defs/d2"}]},"title":"Location Serves","type":"object"}]},"signals":{"additionalProperties":true,"description":"Observed/verified platform facts; no buyer claims.","properties":{"dev.ucp.buyer_ip":{"type":"string"},"dev.ucp.user_agent":{"type":"string"}},"propertyNames":{"allOf":[{"$ref":"#/$defs/d2"}]},"title":"Signals","type":"object"}},"type":"object"},"d1":{"additionalProperties":true,"description":"Coarse locality; not an address.","properties":{"address_country":{"description":"ISO 3166-1 alpha-2, e.g. US.","type":"string"},"address_region":{"type":"string"},"postal_code":{"type":"string"}},"title":"Locality","type":"object"},"d2":{"description":"Reverse domain, 2+ segments.","examples":["dev.ucp.shopping.checkout","dev.ucp.common.identity_linking","com.example.loyalty_gold","com.example-shop.checkout","com.2example.cart","uk.co.example-shop.checkout","xn--p1ai.example.checkout"],"pattern":"^[a-z](?:[a-z0-9-]*[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9_-]*[a-z0-9_])?)+$","title":"Reverse Domain Name","type":"string"},"d3":{"description":"WGS 84 decimal degrees.","properties":{"latitude":{"maximum":90,"minimum":-90,"type":"number"},"longitude":{"maximum":180,"minimum":-180,"type":"number"}},"required":["latitude","longitude"],"title":"Geo","type":"object"}},"properties":{"location":{"$ref":"#/$defs/d0","allOf":[{"not":{"required":["attribution"]}}],"type":"object"},"shop":{"description":"Exact seller.domain storefront hostname from offer; no scheme/path; one seller per cart/checkout.","minLength":1,"type":"string"}},"required":["location","shop"],"type":"object"},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"lookup_locations","kind":"answer","impl":"imperative","description":"Fetch shop's stores by store ID from search_locations — to re-read a store you saved, or check it against filters.items or distance. Same fields as search; results list which input IDs matched. Up to 10 IDs per call.","title":"shop location lookup","annotations":{"readOnlyHint":true,"consequentialHint":false,"untrustedContentHint":true},"inputSchema":{"$defs":{"d0":{"properties":{"context":{"additionalProperties":true,"allOf":[{"$ref":"#/$defs/d1"},{"additionalProperties":true,"properties":{"currency":{"description":"ISO 4217 preference/filter currency; verify output.","type":"string"},"eligibility":{"description":"Nonidentifying reverse-domain benefits; ignore unknowns.","items":{"$ref":"#/$defs/d2"},"type":"array","uniqueItems":true},"intent":{"description":"Relevance hint, e.g. 'gift under $50'.","type":"string"},"language":{"description":"BCP 47 preference, e.g. fr-CA.","type":"string"},"location":{"description":"Opaque merchant location ID, not locality.","type":"string"},"payment":{"description":"Advertised handlers, most preferred first; ignore unknowns.","items":{"properties":{"handler":{"allOf":[{"$ref":"#/$defs/d2"}],"description":"Merchant ucp.payment_handlers key."},"types":{"description":"Instrument types, most preferred first; ignore unknowns.","items":{"type":"string"},"type":"array"}},"required":["handler"],"type":"object"},"type":"array"}},"type":"object"}],"description":"Soft relevance/localization; checkout wins.","title":"Context","type":"object"},"distance":{"allOf":[{"additionalProperties":true,"description":"Stores within max meters of an explicit center. Use coordinates the user or host gave; never derive them. The radius is never widened or clamped.","properties":{"center":{"allOf":[{"$ref":"#/$defs/d3"}]},"max":{"description":"Inclusive radius in meters.","minimum":0,"type":"number"}},"required":["center","max"],"title":"Location Distance","type":"object"}]},"filters":{"additionalProperties":true,"description":"Hard requirements; fields AND. A merchant rejects a filter it cannot evaluate with invalid_input rather than ignoring it; Shopify stores evaluate items only.","properties":{"amenities":{"description":"Exact amenity IDs, all required.","items":{"allOf":[{"$ref":"#/$defs/d2"}],"examples":["dev.ucp.amenity.wi_fi","dev.ucp.amenity.parking","dev.ucp.amenity.shopping.in_store_pickup","dev.ucp.amenity.shopping.curbside_pickup"],"title":"Amenity Type"},"type":"array"},"hours":{"properties":{"open_at":{"description":"RFC 3339 instant the store must be open at.","format":"date-time","pattern":"(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])$","type":"string"}},"required":["open_at"],"type":"object"},"items":{"description":"Variant IDs from catalog results; returns stores that have all of them available, up to 10 items per call.","items":{"minLength":1,"type":"string"},"minItems":1,"type":"array","uniqueItems":true}},"title":"Location Filter","type":"object"},"ids":{"description":"Store IDs from search_locations, up to 10 per call.","items":{"type":"string"},"minItems":1,"type":"array"},"serves":{"allOf":[{"additionalProperties":true,"description":"Serviceability (can this store deliver to the target), not proximity; use distance for near. Exactly one of point or address. Merchants that cannot evaluate it, Shopify stores included, return invalid_input.","maxProperties":1,"minProperties":1,"properties":{"address":{"allOf":[{"$ref":"#/$defs/d1"},{"anyOf":[{"properties":{"address_country":{"minLength":1,"type":"string"}},"required":["address_country"]},{"properties":{"address_region":{"minLength":1,"type":"string"}},"required":["address_region"]},{"properties":{"postal_code":{"minLength":1,"type":"string"}},"required":["postal_code"]}],"type":"object"}]},"point":{"allOf":[{"$ref":"#/$defs/d3"}]}},"propertyNames":{"anyOf":[{"const":"point"},{"const":"address"},{"$ref":"#/$defs/d2"}]},"title":"Location Serves","type":"object"}]},"signals":{"additionalProperties":true,"description":"Observed/verified platform facts; no buyer claims.","properties":{"dev.ucp.buyer_ip":{"type":"string"},"dev.ucp.user_agent":{"type":"string"}},"propertyNames":{"allOf":[{"$ref":"#/$defs/d2"}]},"title":"Signals","type":"object"}},"required":["ids"],"type":"object"},"d1":{"additionalProperties":true,"description":"Coarse locality; not an address.","properties":{"address_country":{"description":"ISO 3166-1 alpha-2, e.g. US.","type":"string"},"address_region":{"type":"string"},"postal_code":{"type":"string"}},"title":"Locality","type":"object"},"d2":{"description":"Reverse domain, 2+ segments.","examples":["dev.ucp.shopping.checkout","dev.ucp.common.identity_linking","com.example.loyalty_gold","com.example-shop.checkout","com.2example.cart","uk.co.example-shop.checkout","xn--p1ai.example.checkout"],"pattern":"^[a-z](?:[a-z0-9-]*[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9_-]*[a-z0-9_])?)+$","title":"Reverse Domain Name","type":"string"},"d3":{"description":"WGS 84 decimal degrees.","properties":{"latitude":{"maximum":90,"minimum":-90,"type":"number"},"longitude":{"maximum":180,"minimum":-180,"type":"number"}},"required":["latitude","longitude"],"title":"Geo","type":"object"}},"properties":{"location":{"$ref":"#/$defs/d0","allOf":[{"not":{"required":["attribution"]}}],"type":"object"},"shop":{"description":"Exact seller.domain storefront hostname from offer; no scheme/path; one seller per cart/checkout.","minLength":1,"type":"string"}},"required":["location","shop"],"type":"object"},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"create_cart","kind":"act","impl":"imperative","description":"Create a cart only when asked to save items; interest is not permission. Use exact returned variant IDs/quantities. Use create_checkout for Review and pay. Does not order.","title":"shop cart create","annotations":{"readOnlyHint":false,"consequentialHint":true,"untrustedContentHint":true},"inputSchema":{"$defs":{"d0":{"description":"Reverse domain, 2+ segments.","examples":["dev.ucp.shopping.checkout","dev.ucp.common.identity_linking","com.example.loyalty_gold","com.example-shop.checkout","com.2example.cart","uk.co.example-shop.checkout","xn--p1ai.example.checkout"],"pattern":"^[a-z](?:[a-z0-9-]*[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9_-]*[a-z0-9_])?)+$","title":"Reverse Domain Name","type":"string"}},"properties":{"cart":{"allOf":[{"allOf":[{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":true,"name":"dev.ucp.shopping.cart","properties":{"buyer":{"additionalProperties":true,"description":"Buyer details for personalized estimates.","properties":{"email":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"},"phone_number":{"description":"Buyer phone in E.164.","type":"string"}},"title":"Buyer","type":"object"},"context":{"allOf":[{"additionalProperties":true,"allOf":[{"additionalProperties":true,"description":"Coarse locality; not an address.","properties":{"address_country":{"description":"ISO 3166-1 alpha-2, e.g. US.","type":"string"},"address_region":{"type":"string"},"postal_code":{"type":"string"}},"title":"Locality","type":"object"},{"additionalProperties":true,"properties":{"currency":{"description":"ISO 4217 preference/filter currency; verify output.","type":"string"},"eligibility":{"description":"Nonidentifying reverse-domain benefits; ignore unknowns.","items":{"$ref":"#/$defs/d0"},"type":"array","uniqueItems":true},"intent":{"description":"Relevance hint, e.g. 'gift under $50'.","type":"string"},"language":{"description":"BCP 47 preference, e.g. fr-CA.","type":"string"},"location":{"description":"Opaque merchant location ID, not locality.","type":"string"},"payment":{"description":"Advertised handlers, most preferred first; ignore unknowns.","items":{"properties":{"handler":{"allOf":[{"$ref":"#/$defs/d0"}],"description":"Merchant ucp.payment_handlers key."},"types":{"description":"Instrument types, most preferred first; ignore unknowns.","items":{"type":"string"},"type":"array"}},"required":["handler"],"type":"object"},"type":"array"}},"type":"object"}],"description":"Soft relevance/localization; checkout wins.","title":"Context","type":"object"}],"description":"Soft pricing/availability/currency hints; geo-IP may fallback."},"line_items":{"description":"On update send every line; omissions delete, not merge.","items":{"description":"Uses parent cart/checkout currency.","properties":{"item":{"properties":{"id":{"description":"Copy exact returned variant ID; never rebuild/truncate.","type":"string"},"quantity_unit":{"allOf":[{"allOf":[{"if":{"properties":{"unit":{"const":"C62"}},"required":["unit"]},"properties":{"display_text":{"description":"Printable label for unrecognized units.","type":"string"},"scale":{"default":0,"description":"One step = 10^-scale units; omitted=0; C62 needs 0.","maximum":15,"minimum":0,"type":"integer"},"unit":{"description":"UN/CEFACT Rec 20 code, else stable opaque custom ID.","type":"string"}},"required":["unit","display_text"],"then":{"properties":{"scale":{"const":0}}},"title":"Unit","type":"object"},{"properties":{"increment":{"default":1,"description":"Step multiple (default 1); merchant may revise/reject, never reinterpret.","minimum":1,"type":"integer"}},"type":"object"}],"description":"Sale basis is unit+scale, not display_text/increment.","title":"Quantity Unit"}],"description":"Omit for merchant basis; else assert unit/scale. C62/0 = each."}},"required":["id"],"title":"Item","type":"object"},"quantity":{"description":"Integer sale-basis steps; missing quantity_unit is not each.","maximum":9007199254740991,"minimum":1,"type":"integer"}},"required":["item","quantity"],"title":"Line Item","type":"object"},"type":"array"},"signals":{"additionalProperties":true,"description":"Observed/verified platform facts; no buyer claims.","properties":{"dev.ucp.buyer_ip":{"type":"string"},"dev.ucp.user_agent":{"type":"string"}},"propertyNames":{"allOf":[{"$ref":"#/$defs/d0"}]},"title":"Signals","type":"object"}},"required":["line_items"],"title":"Cart","type":"object","version":"2026-08-25"},{"properties":{"discounts":{"properties":{"codes":{"description":"Replace case-insensitively; [] clears all.","items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object"}],"title":"Cart with Discount"},{"not":{"required":["attribution"]}}],"type":"object"},"meta":{"properties":{"idempotency-key":{"description":"UUID for one write; reuse for exact retries. complete_checkout derives if omitted.","format":"uuid","type":"string"}},"type":"object"},"shop":{"description":"Exact seller.domain storefront hostname from offer; no scheme/path; one seller per cart/checkout.","minLength":1,"type":"string"}},"required":["cart","shop"],"type":"object"},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_cart","kind":"answer","impl":"imperative","description":"Read with the same shop/exact opaque ID before update or after an uncertain cart write.","title":"shop cart get","annotations":{"readOnlyHint":true,"consequentialHint":false,"untrustedContentHint":true},"inputSchema":{"properties":{"id":{"type":"string"},"shop":{"description":"Exact seller.domain storefront hostname from offer; no scheme/path; one seller per cart/checkout.","minLength":1,"type":"string"}},"required":["id","shop"],"type":"object"},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"update_cart","kind":"act","impl":"imperative","description":"Replace full cart, not a patch. Read first; change only authorized fields; retain all other request fields, including empty objects/arrays. Response-only fields drop. Same shop/exact ID; check returned state. After uncertainty, read before retry.","title":"shop cart update","annotations":{"readOnlyHint":false,"consequentialHint":true,"untrustedContentHint":true},"inputSchema":{"$defs":{"d0":{"description":"Reverse domain, 2+ segments.","examples":["dev.ucp.shopping.checkout","dev.ucp.common.identity_linking","com.example.loyalty_gold","com.example-shop.checkout","com.2example.cart","uk.co.example-shop.checkout","xn--p1ai.example.checkout"],"pattern":"^[a-z](?:[a-z0-9-]*[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9_-]*[a-z0-9_])?)+$","title":"Reverse Domain Name","type":"string"}},"properties":{"cart":{"allOf":[{"allOf":[{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":true,"name":"dev.ucp.shopping.cart","properties":{"buyer":{"additionalProperties":true,"description":"Buyer details for personalized estimates.","properties":{"email":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"},"phone_number":{"description":"Buyer phone in E.164.","type":"string"}},"title":"Buyer","type":"object"},"context":{"allOf":[{"additionalProperties":true,"allOf":[{"additionalProperties":true,"description":"Coarse locality; not an address.","properties":{"address_country":{"description":"ISO 3166-1 alpha-2, e.g. US.","type":"string"},"address_region":{"type":"string"},"postal_code":{"type":"string"}},"title":"Locality","type":"object"},{"additionalProperties":true,"properties":{"currency":{"description":"ISO 4217 preference/filter currency; verify output.","type":"string"},"eligibility":{"description":"Nonidentifying reverse-domain benefits; ignore unknowns.","items":{"$ref":"#/$defs/d0"},"type":"array","uniqueItems":true},"intent":{"description":"Relevance hint, e.g. 'gift under $50'.","type":"string"},"language":{"description":"BCP 47 preference, e.g. fr-CA.","type":"string"},"location":{"description":"Opaque merchant location ID, not locality.","type":"string"},"payment":{"description":"Advertised handlers, most preferred first; ignore unknowns.","items":{"properties":{"handler":{"allOf":[{"$ref":"#/$defs/d0"}],"description":"Merchant ucp.payment_handlers key."},"types":{"description":"Instrument types, most preferred first; ignore unknowns.","items":{"type":"string"},"type":"array"}},"required":["handler"],"type":"object"},"type":"array"}},"type":"object"}],"description":"Soft relevance/localization; checkout wins.","title":"Context","type":"object"}],"description":"Soft pricing/availability/currency hints; geo-IP may fallback."},"line_items":{"description":"On update send every line; omissions delete, not merge.","items":{"description":"Uses parent cart/checkout currency.","properties":{"id":{"type":"string"},"item":{"properties":{"id":{"description":"Copy exact returned variant ID; never rebuild/truncate.","type":"string"},"quantity_unit":{"allOf":[{"allOf":[{"if":{"properties":{"unit":{"const":"C62"}},"required":["unit"]},"properties":{"display_text":{"description":"Printable label for unrecognized units.","type":"string"},"scale":{"default":0,"description":"One step = 10^-scale units; omitted=0; C62 needs 0.","maximum":15,"minimum":0,"type":"integer"},"unit":{"description":"UN/CEFACT Rec 20 code, else stable opaque custom ID.","type":"string"}},"required":["unit","display_text"],"then":{"properties":{"scale":{"const":0}}},"title":"Unit","type":"object"},{"properties":{"increment":{"default":1,"description":"Step multiple (default 1); merchant may revise/reject, never reinterpret.","minimum":1,"type":"integer"}},"type":"object"}],"description":"Sale basis is unit+scale, not display_text/increment.","title":"Quantity Unit"}],"description":"Omit for merchant basis; else assert unit/scale. C62/0 = each."}},"required":["id"],"title":"Item","type":"object"},"parent_id":{"description":"Copy returned parent line ID unchanged.","type":"string"},"quantity":{"description":"Integer sale-basis steps; missing quantity_unit is not each.","maximum":9007199254740991,"minimum":1,"type":"integer"}},"required":["item","quantity"],"title":"Line Item","type":"object"},"type":"array"},"signals":{"additionalProperties":true,"description":"Observed/verified platform facts; no buyer claims.","properties":{"dev.ucp.buyer_ip":{"type":"string"},"dev.ucp.user_agent":{"type":"string"}},"propertyNames":{"allOf":[{"$ref":"#/$defs/d0"}]},"title":"Signals","type":"object"}},"required":["line_items"],"title":"Cart","type":"object","version":"2026-08-25"},{"properties":{"discounts":{"properties":{"codes":{"description":"Replace case-insensitively; [] clears all.","items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object"}],"title":"Cart with Discount"},{"not":{"required":["attribution"]}}],"type":"object"},"id":{"type":"string"},"meta":{"properties":{"idempotency-key":{"description":"UUID for one write; reuse for exact retries. complete_checkout derives if omitted.","format":"uuid","type":"string"}},"type":"object"},"shop":{"description":"Exact seller.domain storefront hostname from offer; no scheme/path; one seller per cart/checkout.","minLength":1,"type":"string"}},"required":["id","cart","shop"],"type":"object"},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"create_checkout","kind":"transact","impl":"imperative","description":"Prepare Shop/UCP checkout only when asked. No separate spend request is needed. Use exact variant IDs/quantities. Share continue_url unchanged for Review and pay, including requires_escalation. Never recreate: get/update its ID. Address incomplete via update. Complete ready_for_complete only after buyer approval. Creates no order.","title":"shop checkout create","annotations":{"readOnlyHint":false,"consequentialHint":true,"untrustedContentHint":true},"inputSchema":{"$defs":{"d0":{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":true,"name":"dev.ucp.shopping.checkout","properties":{"buyer":{"additionalProperties":true,"properties":{"email":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"},"phone_number":{"description":"Buyer phone in E.164.","type":"string"}},"title":"Buyer","type":"object"},"context":{"additionalProperties":true,"allOf":[{"additionalProperties":true,"description":"Coarse locality; not an address.","properties":{"address_country":{"description":"ISO 3166-1 alpha-2, e.g. US.","type":"string"},"address_region":{"type":"string"},"postal_code":{"type":"string"}},"title":"Locality","type":"object"},{"additionalProperties":true,"properties":{"currency":{"description":"ISO 4217 preference/filter currency; verify output.","type":"string"},"eligibility":{"description":"Nonidentifying reverse-domain benefits; ignore unknowns.","items":{"$ref":"#/$defs/d10"},"type":"array","uniqueItems":true},"intent":{"description":"Relevance hint, e.g. 'gift under $50'.","type":"string"},"language":{"description":"BCP 47 preference, e.g. fr-CA.","type":"string"},"location":{"description":"Opaque merchant location ID, not locality.","type":"string"},"payment":{"description":"Advertised handlers, most preferred first; ignore unknowns.","items":{"properties":{"handler":{"allOf":[{"$ref":"#/$defs/d10"}],"description":"Merchant ucp.payment_handlers key."},"types":{"description":"Instrument types, most preferred first; ignore unknowns.","items":{"type":"string"},"type":"array"}},"required":["handler"],"type":"object"},"type":"array"}},"type":"object"}],"description":"Soft relevance/localization; checkout wins.","title":"Context","type":"object"},"line_items":{"description":"On update send every line; omissions delete, never merge.","items":{"description":"Uses parent cart/checkout currency.","properties":{"item":{"properties":{"id":{"description":"Copy exact returned variant ID; never rebuild/truncate.","type":"string"},"quantity_unit":{"allOf":[{"allOf":[{"if":{"properties":{"unit":{"const":"C62"}},"required":["unit"]},"properties":{"display_text":{"description":"Printable label for unrecognized units.","type":"string"},"scale":{"default":0,"description":"One step = 10^-scale units; omitted=0; C62 needs 0.","maximum":15,"minimum":0,"type":"integer"},"unit":{"description":"UN/CEFACT Rec 20 code, else stable opaque custom ID.","type":"string"}},"required":["unit","display_text"],"then":{"properties":{"scale":{"const":0}}},"title":"Unit","type":"object"},{"properties":{"increment":{"default":1,"description":"Step multiple (default 1); merchant may revise/reject, never reinterpret.","minimum":1,"type":"integer"}},"type":"object"}],"description":"Sale basis is unit+scale, not display_text/increment.","title":"Quantity Unit"}],"description":"Omit for merchant basis; else assert unit/scale. C62/0 = each."}},"required":["id"],"title":"Item","type":"object"},"quantity":{"description":"Integer sale-basis steps; missing quantity_unit is not each.","maximum":9007199254740991,"minimum":1,"type":"integer"}},"required":["item","quantity"],"title":"Line Item","type":"object"},"type":"array"},"payment":{"$schema":"https://json-schema.org/draft/2020-12/schema","description":"Only after shopper selects an instrument.","properties":{"instruments":{"items":{"allOf":[{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":true,"properties":{"billing_address":{"properties":{"address_country":{"$ref":"#/$defs/d1"},"address_locality":{"$ref":"#/$defs/d2"},"address_region":{"$ref":"#/$defs/d3"},"extended_address":{"$ref":"#/$defs/d4"},"first_name":{"$ref":"#/$defs/d5"},"last_name":{"$ref":"#/$defs/d6"},"phone_number":{"$ref":"#/$defs/d7"},"postal_code":{"$ref":"#/$defs/d8"},"street_address":{"$ref":"#/$defs/d9"}},"title":"Postal Address","type":"object"},"credential":{"additionalProperties":true,"description":"Shape defined by the handler.","properties":{"type":{"description":"Type the handler requires.","type":"string"}},"required":["type"],"title":"Payment Credential","type":"object"},"display":{"type":"object"},"handler_id":{"description":"Merchant-advertised handler ID.","type":"string"},"id":{"description":"Opaque; never reuse across merchants.","type":"string"},"type":{"description":"Handler category, e.g. card.","type":"string"}},"required":["id","handler_id","type"],"title":"Payment Instrument","type":"object"},{"properties":{"selected":{"description":"True only on the one shopper-approved instrument.","type":"boolean"}},"type":"object"}],"title":"Selected Payment Instrument"},"type":"array"}},"title":"Payment","type":"object"},"signals":{"additionalProperties":true,"description":"Observed/verified platform facts; no buyer claims.","properties":{"dev.ucp.buyer_ip":{"type":"string"},"dev.ucp.user_agent":{"type":"string"}},"propertyNames":{"allOf":[{"$ref":"#/$defs/d10"}]},"title":"Signals","type":"object"}},"required":["line_items"],"title":"Checkout","type":"object","version":"2026-08-25"},"d1":{"description":"ISO 3166-1 alpha-2, e.g. US.","type":"string"},"d10":{"description":"Reverse domain, 2+ segments.","examples":["dev.ucp.shopping.checkout","dev.ucp.common.identity_linking","com.example.loyalty_gold","com.example-shop.checkout","com.2example.cart","uk.co.example-shop.checkout","xn--p1ai.example.checkout"],"pattern":"^[a-z](?:[a-z0-9-]*[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9_-]*[a-z0-9_])?)+$","title":"Reverse Domain Name","type":"string"},"d2":{"type":"string"},"d3":{"type":"string"},"d4":{"type":"string"},"d5":{"type":"string"},"d6":{"type":"string"},"d7":{"type":"string"},"d8":{"type":"string"},"d9":{"type":"string"}},"properties":{"checkout":{"allOf":[{"allOf":[{"$ref":"#/$defs/d0"},{"properties":{"discounts":{"properties":{"codes":{"description":"Replace case-insensitively; [] clears all.","items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object"}],"title":"Checkout with Discount"},{"allOf":[{"$ref":"#/$defs/d0"},{"properties":{"fulfillment":{"allOf":[{"properties":{"methods":{"description":"Methods covering the checkout's line items.","items":{"allOf":[{"if":{"properties":{"type":{"const":"shipping"}},"required":["type"]},"then":{"properties":{"destinations":{"description":"Platform-authored shipping addresses.","items":{"allOf":[{"properties":{"address_country":{"$ref":"#/$defs/d1"},"address_locality":{"$ref":"#/$defs/d2"},"address_region":{"$ref":"#/$defs/d3"},"extended_address":{"$ref":"#/$defs/d4"},"first_name":{"$ref":"#/$defs/d5"},"last_name":{"$ref":"#/$defs/d6"},"phone_number":{"$ref":"#/$defs/d7"},"postal_code":{"$ref":"#/$defs/d8"},"street_address":{"$ref":"#/$defs/d9"}},"title":"Postal Address","type":"object"},{"properties":{"id":{"description":"Platform-assigned ID for this address.","type":"string"},"type":{"const":"shipping_address","type":"string"}},"required":[],"type":"object"}],"title":"Shipping Destination","type":"object"},"type":"array"}}}},{"if":{"properties":{"type":{"const":"pickup"}},"required":["type"]},"then":{"properties":{}}}],"dependentRequired":{"destinations":["type"]},"properties":{"groups":{"description":"Merchant groups; select returned options.","items":{"additionalProperties":true,"properties":{"selected_option_id":{"description":"Option ID returned for this group.","type":["string","null"]}},"required":[],"title":"Fulfillment Group","type":"object"},"type":"array"},"selected_destination_id":{"description":"Merchant-scoped; need not be returned.","type":["string","null"]},"type":{"description":"Shipping, pickup, or another supported type.","type":"string"}},"required":["type"],"title":"Fulfillment Method","type":"object"},"type":"array"}},"title":"Fulfillment","type":"object"}]}},"type":"object"}],"title":"Checkout with Fulfillment"},{"not":{"required":["attribution"]}}],"type":"object"},"meta":{"properties":{"idempotency-key":{"description":"UUID for one write; reuse for exact retries. complete_checkout derives if omitted.","format":"uuid","type":"string"}},"type":"object"},"shop":{"description":"Exact seller.domain storefront hostname from offer; no scheme/path; one seller per cart/checkout.","minLength":1,"type":"string"}},"required":["checkout","shop"],"type":"object"},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_checkout","kind":"answer","impl":"imperative","description":"Read with the same shop/exact opaque ID before update/completion or after an uncertain write. continue_url is Review and pay, not a product page/purchase proof.","title":"shop checkout get","annotations":{"readOnlyHint":true,"consequentialHint":false,"untrustedContentHint":true},"inputSchema":{"properties":{"id":{"type":"string"},"shop":{"description":"Exact seller.domain storefront hostname from offer; no scheme/path; one seller per cart/checkout.","minLength":1,"type":"string"}},"required":["id","shop"],"type":"object"},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"update_checkout","kind":"transact","impl":"imperative","description":"Replace full checkout, not patch/payment. Read first; change only authorized fields; retain all other request fields, including empty objects/arrays. Response-only fields drop. Same shop/exact ID; check status/messages/continue_url. After uncertainty, read before retry.","title":"shop checkout update","annotations":{"readOnlyHint":false,"consequentialHint":true,"untrustedContentHint":true},"inputSchema":{"$defs":{"d0":{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":true,"name":"dev.ucp.shopping.checkout","properties":{"buyer":{"additionalProperties":true,"properties":{"email":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"},"phone_number":{"description":"Buyer phone in E.164.","type":"string"}},"title":"Buyer","type":"object"},"context":{"additionalProperties":true,"allOf":[{"additionalProperties":true,"description":"Coarse locality; not an address.","properties":{"address_country":{"description":"ISO 3166-1 alpha-2, e.g. US.","type":"string"},"address_region":{"type":"string"},"postal_code":{"type":"string"}},"title":"Locality","type":"object"},{"additionalProperties":true,"properties":{"currency":{"description":"ISO 4217 preference/filter currency; verify output.","type":"string"},"eligibility":{"description":"Nonidentifying reverse-domain benefits; ignore unknowns.","items":{"$ref":"#/$defs/d10"},"type":"array","uniqueItems":true},"intent":{"description":"Relevance hint, e.g. 'gift under $50'.","type":"string"},"language":{"description":"BCP 47 preference, e.g. fr-CA.","type":"string"},"location":{"description":"Opaque merchant location ID, not locality.","type":"string"},"payment":{"description":"Advertised handlers, most preferred first; ignore unknowns.","items":{"properties":{"handler":{"allOf":[{"$ref":"#/$defs/d10"}],"description":"Merchant ucp.payment_handlers key."},"types":{"description":"Instrument types, most preferred first; ignore unknowns.","items":{"type":"string"},"type":"array"}},"required":["handler"],"type":"object"},"type":"array"}},"type":"object"}],"description":"Soft relevance/localization; checkout wins.","title":"Context","type":"object"},"line_items":{"description":"On update send every line; omissions delete, never merge.","items":{"description":"Uses parent cart/checkout currency.","properties":{"id":{"type":"string"},"item":{"properties":{"id":{"description":"Copy exact returned variant ID; never rebuild/truncate.","type":"string"},"quantity_unit":{"allOf":[{"allOf":[{"if":{"properties":{"unit":{"const":"C62"}},"required":["unit"]},"properties":{"display_text":{"description":"Printable label for unrecognized units.","type":"string"},"scale":{"default":0,"description":"One step = 10^-scale units; omitted=0; C62 needs 0.","maximum":15,"minimum":0,"type":"integer"},"unit":{"description":"UN/CEFACT Rec 20 code, else stable opaque custom ID.","type":"string"}},"required":["unit","display_text"],"then":{"properties":{"scale":{"const":0}}},"title":"Unit","type":"object"},{"properties":{"increment":{"default":1,"description":"Step multiple (default 1); merchant may revise/reject, never reinterpret.","minimum":1,"type":"integer"}},"type":"object"}],"description":"Sale basis is unit+scale, not display_text/increment.","title":"Quantity Unit"}],"description":"Omit for merchant basis; else assert unit/scale. C62/0 = each."}},"required":["id"],"title":"Item","type":"object"},"parent_id":{"description":"Copy returned parent line ID unchanged.","type":"string"},"quantity":{"description":"Integer sale-basis steps; missing quantity_unit is not each.","maximum":9007199254740991,"minimum":1,"type":"integer"}},"required":["item","quantity"],"title":"Line Item","type":"object"},"type":"array"},"payment":{"$schema":"https://json-schema.org/draft/2020-12/schema","description":"Only after shopper selects an instrument.","properties":{"instruments":{"items":{"allOf":[{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":true,"properties":{"billing_address":{"properties":{"address_country":{"$ref":"#/$defs/d1"},"address_locality":{"$ref":"#/$defs/d2"},"address_region":{"$ref":"#/$defs/d3"},"extended_address":{"$ref":"#/$defs/d4"},"first_name":{"$ref":"#/$defs/d5"},"last_name":{"$ref":"#/$defs/d6"},"phone_number":{"$ref":"#/$defs/d7"},"postal_code":{"$ref":"#/$defs/d8"},"street_address":{"$ref":"#/$defs/d9"}},"title":"Postal Address","type":"object"},"credential":{"additionalProperties":true,"description":"Shape defined by the handler.","properties":{"type":{"description":"Type the handler requires.","type":"string"}},"required":["type"],"title":"Payment Credential","type":"object"},"display":{"type":"object"},"handler_id":{"description":"Merchant-advertised handler ID.","type":"string"},"id":{"description":"Opaque; never reuse across merchants.","type":"string"},"type":{"description":"Handler category, e.g. card.","type":"string"}},"required":["id","handler_id","type"],"title":"Payment Instrument","type":"object"},{"properties":{"selected":{"description":"True only on the one shopper-approved instrument.","type":"boolean"}},"type":"object"}],"title":"Selected Payment Instrument"},"type":"array"}},"title":"Payment","type":"object"},"signals":{"additionalProperties":true,"description":"Observed/verified platform facts; no buyer claims.","properties":{"dev.ucp.buyer_ip":{"type":"string"},"dev.ucp.user_agent":{"type":"string"}},"propertyNames":{"allOf":[{"$ref":"#/$defs/d10"}]},"title":"Signals","type":"object"}},"required":["line_items"],"title":"Checkout","type":"object","version":"2026-08-25"},"d1":{"description":"ISO 3166-1 alpha-2, e.g. US.","type":"string"},"d10":{"description":"Reverse domain, 2+ segments.","examples":["dev.ucp.shopping.checkout","dev.ucp.common.identity_linking","com.example.loyalty_gold","com.example-shop.checkout","com.2example.cart","uk.co.example-shop.checkout","xn--p1ai.example.checkout"],"pattern":"^[a-z](?:[a-z0-9-]*[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9_-]*[a-z0-9_])?)+$","title":"Reverse Domain Name","type":"string"},"d2":{"type":"string"},"d3":{"type":"string"},"d4":{"type":"string"},"d5":{"type":"string"},"d6":{"type":"string"},"d7":{"type":"string"},"d8":{"type":"string"},"d9":{"type":"string"}},"properties":{"checkout":{"allOf":[{"allOf":[{"$ref":"#/$defs/d0"},{"properties":{"discounts":{"properties":{"codes":{"description":"Replace case-insensitively; [] clears all.","items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object"}],"title":"Checkout with Discount"},{"allOf":[{"$ref":"#/$defs/d0"},{"properties":{"fulfillment":{"allOf":[{"properties":{"methods":{"description":"Methods covering the checkout's line items.","items":{"allOf":[{"if":{"properties":{"type":{"const":"shipping"}},"required":["type"]},"then":{"properties":{"destinations":{"description":"Platform-authored shipping addresses.","items":{"allOf":[{"properties":{"address_country":{"$ref":"#/$defs/d1"},"address_locality":{"$ref":"#/$defs/d2"},"address_region":{"$ref":"#/$defs/d3"},"extended_address":{"$ref":"#/$defs/d4"},"first_name":{"$ref":"#/$defs/d5"},"last_name":{"$ref":"#/$defs/d6"},"phone_number":{"$ref":"#/$defs/d7"},"postal_code":{"$ref":"#/$defs/d8"},"street_address":{"$ref":"#/$defs/d9"}},"title":"Postal Address","type":"object"},{"properties":{"id":{"description":"Platform-assigned ID for this address.","type":"string"},"type":{"const":"shipping_address","type":"string"}},"required":[],"type":"object"}],"title":"Shipping Destination","type":"object"},"type":"array"}}}},{"if":{"properties":{"type":{"const":"pickup"}},"required":["type"]},"then":{"properties":{}}}],"dependentRequired":{"destinations":["type"]},"properties":{"groups":{"description":"Merchant groups; select returned options.","items":{"additionalProperties":true,"properties":{"id":{"description":"On update, merchant-returned group ID.","type":"string"},"selected_option_id":{"description":"Option ID returned for this group.","type":["string","null"]}},"required":["id"],"title":"Fulfillment Group","type":"object"},"type":"array"},"id":{"description":"On update, merchant-returned method ID.","type":"string"},"line_item_ids":{"description":"On update, returned line IDs fulfilled by this method.","items":{"type":"string"},"type":"array"},"selected_destination_id":{"description":"Merchant-scoped; need not be returned.","type":["string","null"]},"type":{"description":"Shipping, pickup, or another supported type.","type":"string"}},"required":["line_item_ids"],"title":"Fulfillment Method","type":"object"},"type":"array"}},"title":"Fulfillment","type":"object"}]}},"type":"object"}],"title":"Checkout with Fulfillment"},{"not":{"required":["attribution"]}}],"type":"object"},"id":{"type":"string"},"meta":{"properties":{"idempotency-key":{"description":"UUID for one write; reuse for exact retries. complete_checkout derives if omitted.","format":"uuid","type":"string"}},"type":"object"},"shop":{"description":"Exact seller.domain storefront hostname from offer; no scheme/path; one seller per cart/checkout.","minLength":1,"type":"string"}},"required":["id","checkout","shop"],"type":"object"},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"complete_checkout","kind":"transact","impl":"imperative","description":"Send user-approved payment to the same shop/exact checkout ID with one exact offered instrument selected:true. Only completed + order proves purchase. After uncertainty, read get_checkout; never repeat completion or start a replacement purchase.","title":"shop checkout complete","annotations":{"readOnlyHint":false,"consequentialHint":true,"untrustedContentHint":true},"inputSchema":{"$defs":{"d0":{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":true,"name":"dev.ucp.shopping.checkout","properties":{"payment":{"$schema":"https://json-schema.org/draft/2020-12/schema","description":"Only after shopper selects an instrument.","properties":{"instruments":{"items":{"allOf":[{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":true,"properties":{"billing_address":{"properties":{"address_country":{"description":"ISO 3166-1 alpha-2, e.g. US.","type":"string"},"address_locality":{"type":"string"},"address_region":{"type":"string"},"extended_address":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"},"phone_number":{"type":"string"},"postal_code":{"type":"string"},"street_address":{"type":"string"}},"title":"Postal Address","type":"object"},"credential":{"additionalProperties":true,"description":"Shape defined by the handler.","properties":{"type":{"description":"Type the handler requires.","type":"string"}},"required":["type"],"title":"Payment Credential","type":"object"},"display":{"type":"object"},"handler_id":{"description":"Merchant-advertised handler ID.","type":"string"},"id":{"description":"Opaque; never reuse across merchants.","type":"string"},"type":{"description":"Handler category, e.g. card.","type":"string"}},"required":["id","handler_id","type"],"title":"Payment Instrument","type":"object"},{"properties":{"selected":{"description":"True only on the one shopper-approved instrument.","type":"boolean"}},"type":"object"}],"title":"Selected Payment Instrument"},"type":"array"}},"title":"Payment","type":"object"},"signals":{"additionalProperties":true,"description":"Observed/verified platform facts; no buyer claims.","properties":{"dev.ucp.buyer_ip":{"type":"string"},"dev.ucp.user_agent":{"type":"string"}},"propertyNames":{"allOf":[{"description":"Reverse domain, 2+ segments.","examples":["dev.ucp.shopping.checkout","dev.ucp.common.identity_linking","com.example.loyalty_gold","com.example-shop.checkout","com.2example.cart","uk.co.example-shop.checkout","xn--p1ai.example.checkout"],"pattern":"^[a-z](?:[a-z0-9-]*[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9_-]*[a-z0-9_])?)+$","title":"Reverse Domain Name","type":"string"}]},"title":"Signals","type":"object"}},"required":["payment"],"title":"Checkout","type":"object","version":"2026-08-25"}},"properties":{"checkout":{"allOf":[{"allOf":[{"$ref":"#/$defs/d0"},{"properties":{},"type":"object"}],"title":"Checkout with Discount"},{"allOf":[{"$ref":"#/$defs/d0"},{"properties":{},"type":"object"}],"title":"Checkout with Fulfillment"},{"not":{"required":["attribution"]}}],"type":"object"},"id":{"type":"string"},"meta":{"properties":{"idempotency-key":{"description":"UUID for one write; reuse for exact retries. complete_checkout derives if omitted.","format":"uuid","type":"string"}},"type":"object"},"shop":{"description":"Exact seller.domain storefront hostname from offer; no scheme/path; one seller per cart/checkout.","minLength":1,"type":"string"}},"required":["id","checkout","shop"],"type":"object"},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"search_orders","kind":"answer","impl":"imperative","description":"Search the signed-in buyer's Shop-tracked orders and shipments from any store. Returns in-progress orders by default; set filters.status to all to search the full order history.","title":"shop order search","annotations":{"readOnlyHint":true,"consequentialHint":false,"untrustedContentHint":true},"inputSchema":{"properties":{"orders":{"properties":{"filters":{"description":"Narrow the search; fields AND.","properties":{"date":{"description":"Order placement dates, YYYY-MM-DD.","properties":{"from":{"format":"date","type":"string"},"to":{"format":"date","type":"string"}},"title":"Date Range","type":"object"},"status":{"default":"in_progress","description":"in_progress: orders still in progress. all: the full order history.","enum":["in_progress","all"],"type":"string"}},"title":"Search Filters","type":"object"},"pagination":{"description":"Page orders and standalone shipments together.","properties":{"cursor":{"description":"Pass unchanged with the same query and filters.","minLength":1,"type":"string"},"limit":{"default":5,"description":"Page size. Defaults to 5; maximum 10.","maximum":10,"minimum":1,"type":"integer"}},"title":"Pagination Request","type":"object"},"query":{"description":"Merchant, item, or order number; omit to list.","maxLength":200,"type":"string"}},"title":"Search Request","type":"object"}},"required":["orders"],"type":"object"},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_account","kind":"answer","impl":"imperative","description":"Read signed-in Shop account, addresses, spend permissions, cards. For missing checkout delivery, copy one addresses[] entry unchanged into fulfillment destinations and select its id; preferred_address_id is default. buyer.email is display-only, never checkout input. Missing is unknown (messages say why); empty spend_permissions means none is set.","title":"shop account","annotations":{"readOnlyHint":true,"consequentialHint":false,"untrustedContentHint":true},"inputSchema":{"properties":{},"required":[],"type":"object"},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"create_spend_request","kind":"act","impl":"imperative","description":"Request buyer approval for a purchase where the agent enters a payment credential into a website's checkout form using a browser. Provide the purchase terms and spending limit; name a saved card, or omit it to use the account's preferred card. Share the returned continue_url unchanged for review and approval. This does not pay or place an order.","title":"shop spend-request create","annotations":{"readOnlyHint":false,"consequentialHint":true,"untrustedContentHint":true},"inputSchema":{"$defs":{"d0":{"description":"ISO 4217 minor units: USD2, JPY0, KWD3.","maximum":9007199254740991,"minimum":0,"title":"Amount","type":"integer"}},"properties":{"meta":{"properties":{"idempotency-key":{"description":"Reuse only for exact retries. Update/cancel derive a key if omitted.","format":"uuid","type":"string"}},"type":"object"},"spend_request":{"properties":{"approval_limit":{"allOf":[{"$ref":"#/$defs/d0"}],"description":"Positive spending limit in currency minor units.","minimum":1},"business":{"properties":{"country":{"description":"Omit unless the site states it.","maxLength":2,"minLength":2,"pattern":"^[A-Z]{2}$","type":"string"},"name":{"minLength":1,"type":"string"},"url":{"format":"uri","type":"string"}},"required":["name","url"],"type":"object"},"context":{"properties":{"address_country":false,"address_region":false,"currency":false,"eligibility":false,"intent":{"allOf":[{"description":"Relevance hint, e.g. 'gift under $50'.","type":"string"}],"description":"Describe the purchase and rationale (100-500 chars); the buyer reads this when approving."},"language":false,"location":false,"payment":false,"postal_code":false},"required":["intent"],"type":"object"},"currency":{"pattern":"^[A-Z]{3}$","type":"string"},"instrument_id":{"description":"Saved card chosen by the buyer; omit to use get_account.preferred_instrument_id.","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$","type":"string"},"line_items":{"items":{"properties":{"item":{"properties":{"price":{"$ref":"#/$defs/d0"},"title":{"type":"string"}},"required":["title","price"],"type":"object"},"quantity":{"maximum":9007199254740991,"minimum":1,"type":"integer"}},"required":["item","quantity"],"type":"object"},"type":"array"},"shipping_address":{"properties":{"address_country":{"type":"string"},"address_locality":{"type":"string"},"address_region":{"type":"string"},"extended_address":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"},"postal_code":{"type":"string"},"street_address":{"type":"string"}},"type":"object"},"totals":{"contains":{"properties":{"type":{"const":"total"}},"required":["type"],"type":"object"},"items":{"allOf":[{"if":{"properties":{"type":{"enum":["discount","items_discount"]}},"required":["type"]},"then":{"properties":{"amount":{"exclusiveMaximum":0}}}},{"if":{"properties":{"type":{"enum":["subtotal","fulfillment","tax","fee"]}},"required":["type"]},"then":{"properties":{"amount":{"minimum":0}}}}],"properties":{"amount":{"description":"Signed ISO 4217 minor units; discounts negative.","maximum":9007199254740991,"minimum":-9007199254740991,"title":"Signed Amount","type":"integer"},"type":{"minLength":1,"type":"string"}},"required":["type","amount"],"type":"object"},"maxContains":1,"minContains":1,"minItems":1,"type":"array"}},"required":["business","currency","totals","approval_limit","context"],"type":"object"}},"required":["spend_request"],"type":"object"},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_spend_request","kind":"transact","impl":"imperative","description":"Read a spend request, optionally requesting an issued card. Omit include to read status and terms only. Set include to \"card\" to obtain the issued card after the buyer approves the request.","title":"shop spend-request get","annotations":{"readOnlyHint":false,"consequentialHint":true,"untrustedContentHint":true},"inputSchema":{"properties":{"id":{"pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$","type":"string"},"include":{"description":"Optional credential selection. Currently supported: card. Omit to read status and terms only.","type":"string"}},"required":["id"],"type":"object"},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"update_spend_request","kind":"act","impl":"imperative","description":"Update the request's address, items, totals or spending limit. Omitted fields stay unchanged. Wallet decides whether its current state allows the update.","title":"shop spend-request update","annotations":{"readOnlyHint":false,"consequentialHint":true,"untrustedContentHint":true},"inputSchema":{"$defs":{"d0":{"description":"ISO 4217 minor units: USD2, JPY0, KWD3.","maximum":9007199254740991,"minimum":0,"title":"Amount","type":"integer"}},"properties":{"id":{"pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$","type":"string"},"meta":{"properties":{"idempotency-key":{"description":"Reuse only for exact retries. Update/cancel derive a key if omitted.","format":"uuid","type":"string"}},"type":"object"},"spend_request":{"minProperties":1,"properties":{"approval_limit":{"allOf":[{"$ref":"#/$defs/d0"}],"description":"Positive spending limit in currency minor units.","minimum":1},"business":false,"context":false,"currency":false,"instrument_id":false,"line_items":{"items":{"properties":{"item":{"properties":{"price":{"$ref":"#/$defs/d0"},"title":{"type":"string"}},"required":["title","price"],"type":"object"},"quantity":{"maximum":9007199254740991,"minimum":1,"type":"integer"}},"required":["item","quantity"],"type":"object"},"type":"array"},"shipping_address":{"properties":{"address_country":{"type":"string"},"address_locality":{"type":"string"},"address_region":{"type":"string"},"extended_address":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"},"postal_code":{"type":"string"},"street_address":{"type":"string"}},"type":"object"},"totals":{"contains":{"properties":{"type":{"const":"total"}},"required":["type"],"type":"object"},"items":{"allOf":[{"if":{"properties":{"type":{"enum":["discount","items_discount"]}},"required":["type"]},"then":{"properties":{"amount":{"exclusiveMaximum":0}}}},{"if":{"properties":{"type":{"enum":["subtotal","fulfillment","tax","fee"]}},"required":["type"]},"then":{"properties":{"amount":{"minimum":0}}}}],"properties":{"amount":{"description":"Signed ISO 4217 minor units; discounts negative.","maximum":9007199254740991,"minimum":-9007199254740991,"title":"Signed Amount","type":"integer"},"type":{"minLength":1,"type":"string"}},"required":["type","amount"],"type":"object"},"maxContains":1,"minContains":1,"minItems":1,"type":"array"}},"type":"object"}},"required":["id","spend_request"],"type":"object"},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"cancel_spend_request","kind":"transact","impl":"imperative","description":"Cancel the spend request; this does not cancel/refund the purchase or revoke an issued credential.","title":"shop spend-request cancel","annotations":{"readOnlyHint":false,"consequentialHint":true,"untrustedContentHint":true},"inputSchema":{"properties":{"id":{"pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$","type":"string"},"meta":{"properties":{"idempotency-key":{"description":"Reuse only for exact retries. Update/cancel derive a key if omitted.","format":"uuid","type":"string"}},"type":"object"}},"required":["id"],"type":"object"},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"complete_spend_request","kind":"act","impl":"imperative","description":"Report the purchase attempt's outcome as success or error. Include order details when available, or failure information for an error. This records your report, not payment confirmation.","title":"shop spend-request complete","annotations":{"readOnlyHint":false,"consequentialHint":true,"untrustedContentHint":true},"inputSchema":{"properties":{"id":{"pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$","type":"string"},"result":{"anyOf":[{"properties":{"failure_code":false,"message":false,"order":{"properties":{"currency":{"pattern":"^[A-Z]{3}$","type":"string"},"id":{"type":"string"},"permalink_url":{"format":"uri","type":"string"},"total":{"description":"ISO 4217 minor units: USD2, JPY0, KWD3.","maximum":9007199254740991,"minimum":0,"title":"Amount","type":"integer"}},"type":"object"},"status":{"const":"success","type":"string"}},"required":["status"],"type":"object"},{"properties":{"failure_code":{"description":"Observed failure code. Examples are not exhaustive.","examples":["captcha","anti_bot_script","cdn_block","waf_block","dns_block","rate_limited","login_required","3ds_challenge","page_inaccessible","timeout","site_error","payment_declined","other"],"type":"string"},"message":{"type":"string"},"order":false,"status":{"const":"error","type":"string"}},"required":["status","failure_code"],"type":"object"}],"description":"Observed outcome: success may include known order fields; error requires failure_code and may include message. No credentials.","type":"object"}},"required":["id","result"],"type":"object"},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Developer Tools","pages":["/"],"apiSurface":"spec","favicon":"/favicons/shop.dev.png","toolCount":22}}