The Lighthouse Score for Agentic Commerce.
Prova simulates AI shopping agents against your endpoints—surfacing broken flows, stale inventory, and protocol violations so you can fix them before they cost you revenue.
Agent Readiness Score
Supports ACP (OpenAI/Stripe) · UCP (Google/Shopify) · MCP
AI agents don't give second chances.
When a human hits a broken checkout, they retry. When an AI agent hits one, it silently moves on. The transaction is lost, and the agent never comes back.
1,200%
growth in AI-referred traffic to retail sites in 2025
805%
surge in AI traffic on Black Friday 2025 alone
1 in 5
Cyber Week 2025 orders involved an AI agent
86%
lower conversion from agent traffic vs. affiliate traffic
The highest-profile failure proves it.
OpenAI launched Instant Checkout in ChatGPT in February 2026. By March, they killed it. Only 12 merchants went live. Near-zero completed purchases. The root causes?
Stale inventory — agents showed products that were out of stock, producing silent cart errors.
Missing sales tax — a compliance gap across US states that any systematic test would have caught.
Fraud false positives — fraud tools couldn't tell legitimate agents from bots, blocking real purchases.
Session escalation failures — when checkout required human input, the handoff broke silently.
No idempotency — retry logic caused duplicate sessions that silently reduced conversion.
Every one of these failures was detectable by testing before production.
"Escalation mishandling is a larger revenue risk than payment decline rates."
Three steps. Two minutes. Every flow branch tested.
Connect Your Endpoint
Paste your agent's URL or upload an OpenAPI spec. Prova auto-discovers every product lookup, cart, and checkout flow your agent exposes.
Prova Simulates Real Shoppers
Synthetic personas browse, search, add to cart, and check out — hitting every branch, edge case, and error path your agent can encounter.
Get Your Agent Readiness Score
A single 0–100 score with a detailed breakdown across six categories so you know exactly what to fix before going live.
| Category | What We Test |
|---|---|
| Flow Completeness | Every browse → cart → checkout path resolves without dead ends. |
| Protocol Compliance | Responses conform to MCP, OpenAPI, or your custom schema contract. |
| Data Freshness | Prices, inventory counts, and product metadata stay in sync with source. |
| Error Handling | Graceful recovery from bad input, timeouts, and upstream failures. |
| Performance | P50 / P95 latency and throughput under simulated concurrent load. |
| Edge Cases | Out-of-stock items, currency mismatches, oversized carts, and more. |
Alpine Gear Co.
NEEDS WORK3 critical issues · 4 warnings
See what a real audit looks like.
We ran Prova against Alpine Gear Co.'s ACP endpoint. Found 3 critical issues including a 500 error on out-of-stock items, ignored idempotency keys, and silent address validation failures.
Every one of these would have cost real revenue in production.
See what a real audit looks like.
Prova Audit Report — Alpine Gear Co.
Category Scores
| Category | Score | Status |
|---|---|---|
| Checkout Flow | 75 | ⚠️ |
| Compliance | 82 | ✅ |
| Performance | 91 | ✅ |
| Error Handling | 45 | ❌ |
| Data Integrity | 62 | ⚠️ |
Critical Issues
Out-of-stock SKU returns 500 instead of structured error
When an agent attempts to add an out-of-stock item, the API returns an HTTP 500 Internal Server Error instead of a proper 422 with a machine-readable error body.
Actual Response:
HTTP/1.1 500 Internal Server Error
Content-Type: text/html
<h1>Something went wrong</h1> Expected Response:
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
{
"error": "OUT_OF_STOCK",
"sku": "AG-TRAIL-42",
"message": "Item is currently out of stock",
"restock_estimate": "2026-03-20"
} Impact: Agents cannot gracefully handle inventory shortages and will retry indefinitely, causing cascading failures.
Fix: Return a 422 status with a JSON body containing the OUT_OF_STOCK error code, the affected SKU, and an optional restock estimate.
No error handling for invalid shipping addresses
Submitting an address outside the supported region silently accepts the order, which later fails during fulfillment with no notification to the agent.
Request Sent:
POST /checkout/shipping
{
"address": "742 Evergreen Terrace",
"city": "Vancouver",
"province": "BC",
"postal_code": "V5K 0A1",
"country": "CA"
} Actual Response:
HTTP/1.1 200 OK
{ "status": "accepted" } Expected Response:
HTTP/1.1 422 Unprocessable Entity
{
"error": "UNSUPPORTED_REGION",
"country": "CA",
"supported_countries": ["US"],
"message": "Shipping to Canada is not available"
} Impact: Orders are accepted but never fulfilled. Agents receive no feedback to suggest an alternative or notify the customer.
Fix: Validate the country field against supported regions and return a 422 with the UNSUPPORTED_REGION code before order creation.
Idempotency-Key header ignored on payment requests
The Idempotency-Key header is accepted but not enforced. Retried payment requests create duplicate charges.
First Request:
POST /checkout/pay
Idempotency-Key: agent-txn-8a3f2c
{ "amount": 129.99, "currency": "USD" }
→ 200 OK { "charge_id": "ch_1001" } Retry (same key):
POST /checkout/pay
Idempotency-Key: agent-txn-8a3f2c
{ "amount": 129.99, "currency": "USD" }
→ 200 OK { "charge_id": "ch_1002" } ← duplicate charge created Expected on Retry:
→ 200 OK { "charge_id": "ch_1001" } ← return original charge Impact: Network retries by agents result in customers being charged multiple times for a single order.
Fix: Implement server-side idempotency key storage. On duplicate key, return the original response with the same charge_id instead of processing a new payment.
Warnings
Inventory data is 47 minutes stale
The X-Cache-Age header reports inventory data was last refreshed 47 minutes ago. For high-velocity SKUs, this increases the likelihood of overselling.
Impact: Agents may add items to cart that are already sold out, leading to failed checkouts late in the flow.
Fix: Reduce cache TTL to under 5 minutes for inventory endpoints, or implement a real-time stock reservation system.
Latency spike on /checkout/confirm endpoint
The order confirmation endpoint shows elevated response times under simulated agent concurrency.
| Metric | p50 | p95 | p99 |
|---|---|---|---|
| /checkout/confirm | 220ms | 1,840ms | 4,200ms |
Impact: Agents with short timeout windows may abandon checkout, resulting in orphaned carts and lost revenue.
Fix: Profile the confirmation endpoint for N+1 queries and consider moving payment processing to an async webhook pattern.
...and 2 more warnings not shown in this preview.
Passing Checks
- ✓ Cart creation returns valid JSON schema
- ✓ OAuth 2.0 token exchange works correctly
- ✓ Price calculations match catalog within $0.01
- ✓ Tax computation handles all 50 US states
- ✓ Webhook delivery confirms within 2 seconds
- ✓ Rate limiting returns proper 429 headers
- ✓ MCP tool manifest is discoverable and valid
- ✓ CORS headers allow agent-origin requests
Test Trace
| Step | Action | Status | Latency | Result |
|---|---|---|---|---|
| 1 | Discover MCP manifest | 200 | 45ms | Tool list retrieved |
| 2 | Authenticate agent | 200 | 112ms | Bearer token issued |
| 3 | Create cart | 201 | 89ms | cart_id: ct_7x92m |
| 4 | Add item (OOS SKU) | 500 | 2,340ms | Internal Server Error |
| 5 | Add item (in-stock SKU) | 200 | 67ms | Item added, qty: 1 |
| 6 | Set shipping address (CA) | 200* | 78ms | Accepted (region unsupported) |
| 7 | Submit payment | 200 | 1,840ms | charge_id: ch_1001 |
Why Prova?
Protocol-Specific Testing
Not generic QA. We test ACP and UCP checkout flows against the actual protocol specifications.
Synthetic AI Agent Personas
Not scripted bots. Real LLMs (GPT-4o, Claude, Gemini) with randomized shopping personas stress-test your endpoints.
Lighthouse-Style Scoring
A single Agent Readiness Score (0-100) with category breakdowns. Benchmark against other stores.
CI/CD Integration
Run Prova on every deploy. Get Slack alerts when your score drops. Coming soon on Pro plans.
Frequently Asked Questions
What is an Agent Readiness Score?
Do I need to change my code?
Which protocols do you support?
How is this different from Postman?
Will Prova make real purchases?
How many API calls per test?
What's the difference between ACP and UCP?
Why did OpenAI kill Instant Checkout?
Can I run in CI/CD?
How do you simulate different AI agents?
Is my endpoint data secure?
Your agents are already shopping. Is your checkout ready?
Agent-driven commerce traffic is projected to grow 1,200% over the next two years. Businesses that aren't ready will lose sales to those that are. Prova gives your checkout the machine-readable layer it needs so AI agents can discover, validate, and complete purchases — without friction.