easyshop-ucp.dev.demo.relay.nexigroup.com
verified_user Multi-version UCP compliance, backward compatibility & transport audit
schedule Last scanned 6/18/2026
Conformance
71%Capability
100%Coverage
33%Backward Compat
0%Negative
58%Transport
100%Latency
96%Audit Details
Cache-Control max-age is within recommended bounds
No Cache-Control header — clients may re-fetch every request
Profile response advertises cache headers
Discovery response has no Cache-Control header
Profile declares at least the checkout capability
Completed in 29ms
Capability version strings are valid ISO dates
Completed in 31ms
Profile response Content-Type is application/json
Completed in 30ms
Discovery endpoint exposes CORS headers
Completed in 30ms
Profile is served over HTTPS
Completed in 8000ms
Two consecutive profile fetches return identical bodies
Completed in 62ms
Signing JWKs use only allowed kty/crv values
Profile declares no signing_keys array — the field is optional per the UCP spec, but agents cannot verify signed payloads from this merchant
No duplicate capability entries (same name + version)
Completed in 30ms
OpenAPI servers[] URL is reachable
Completed in 12ms
Business profile has a valid structure
Completed in 30ms
Merchant responses are signed with the published signing_keys
Profile declares no signing_keys; nothing to verify against. DISC-0002 tracks absence separately.
robots.txt allows AI agents to read the UCP profile
Completed in 140ms
All declared schema URLs use HTTPS
Completed in 29ms
Signing keys are importable via Web Crypto
Profile declares no signing_keys array — the field is optional per the UCP spec, but agents cannot verify signed payloads from this merchant
Profile advertises well-formed signing keys
Profile declares no signing_keys array — the field is optional per the UCP spec, but agents cannot verify signed payloads from this merchant
Service binding transports are in the allowed set
Completed in 30ms
Profile declares a ucp.version string
Completed in 30ms
Profile ucp.version is one the grader recognizes
Completed in 30ms
Profile is served at the canonical .well-known/ucp path
Completed in 30ms
Declared capabilities match operations in the OpenAPI
Capability JSON Schemas declare a modern $schema draft
Capability-level JSON Schemas are well-formed
OpenAPI components.schemas has no orphans
3 of 14 components.schemas are unreferenced
chevron_right Show details
- order
- payment
- ucp
Service-level OpenAPI document is valid OpenAPI 3.x
Every OpenAPI operation declares a 2xx JSON response schema
Every $ref referenced schema document is reachable
Completed in 6137ms
All declared schema URLs return 200
Cancel session response matches the OpenAPI schema
Expected 2xx, got 502
Create session response matches the OpenAPI schema
Schema unavailable: ajv_compile_error: can't resolve reference https://ucp.dev/2026-04-08/schemas/shopping/checkout.json from id #
Discovery profile matches the published JSON Schema
Completed in 31ms
Get product response matches the OpenAPI schema
Schema unavailable: no_operation
Get session response matches the OpenAPI schema
Schema unavailable: ajv_compile_error: can't resolve reference https://ucp.dev/2026-04-08/schemas/shopping/checkout.json from id #
Search products response matches the OpenAPI schema
Schema unavailable: ajv_compile_error: can't resolve reference https://ucp.dev/2026-04-08/schemas/shopping/catalog_search.json#/$defs/search_response from id #
Update session response matches the OpenAPI schema
Expected 2xx, got 400
Get a product by id
Completed in 57ms
Search products returns a products array
Completed in 533ms
Selected options filter variants in product detail
No product with options/variants found in catalog
Canceling a session twice with the same idempotency key is idempotent
First cancel returned status=502
Cancel a checkout session
cancelSession returned 502
Create checkout session with defaults
Expected status=incomplete, got ready_for_complete
Repeated createSession with same idempotency key returns same session
Same key returned different session ids
chevron_right Show details
Create session then set shipping address
setShippingAddress returned 400
Retrieve a checkout session by id
Completed in 239ms
Reusing an Idempotency-Key with a different body must be rejected
Server accepted a second create with the same idempotency key but a different currency (USD → EUR). Per the spec, the second call must be rejected.
chevron_right Show details
update_checkout is idempotent on replay and rejects conflicting replays
First update returned status=400
Select a shipping method on a checkout session
setShippingAddress returned 400
Catalog capability advertised for product lookup
Catalog capability is declared
Checkout capability is declared and reachable
Completed in 171ms
Fulfillment capability is declared
Profile does not declare dev.ucp.shopping.fulfillment