# Fix list: Visa Intelligent Commerce From Anchor Terminal's listing at https://www.anchorterminal.com/tools/visa-intelligent-commerce, the October 2026 research run, assessed 16 October 2026. Grade D, 47.6 out of 100. This is everything the published grade says the listing lacks, the biggest possible gain to the total first. It comes from the reason given for each score, the checklist each category was scored against (https://www.anchorterminal.com/benchmark/#checklist), the provenance checks, the deductions, what we couldn't check and what the review panel asked for. A fix counts at the next check, once it's public. For a coding agent working on Visa Intelligent Commerce: work through the items below in the product, its docs and its public pages. Each category gives the reason for its score, with the points each checklist item earned, and the checklist itself, so the gap is the items that earned less than their points. Change the product, not the wording, and keep a note of what you changed and where it's published. ## 1. Reliability, 42 out of 100, up to 11.6 more on the total Why it scored 42: Protocol reading, split as reference implementations 30, live deployments 25, spec stability 25 and test vectors 20, as for ap2 and acp. Visa's TAP sample (an agent, a CDN proxy, a merchant front and back end and a key registry, six commits, the last on 28 October 2025) and the MIT visa/ai kit with TypeScript MCP and REST clients and a demo agent, none published to a package registry. The VIC MCP server and APIs are hosted by Visa for onboarded partners only, and no status page covers them (17 of 30). Visa says hundreds of agent-initiated transactions had completed by 18 December 2025 and that it has rolled out VIC across a broad set of agents and partners in the United States (29 April 2026). The Visa Acceptance guide is a pilot release, Intelligent Commerce Connect is in pilot, and we found no named merchant verifying TAP in production (14 of 25). The TAP specification carries no version or date, its public key section lists only RSA fields while its examples sign with Ed25519, it doesn't give the URL of Visa's key store, and the terms oblige implementers to adopt each Visa update within six months (8 of 25). No test vectors beyond one signature-base example, and neither repository has tests or CI (3 of 20). 42. The checklist (https://www.anchorterminal.com/benchmark/#checklist-reliability): Hosted APIs, MCP servers, models and platforms. - 20, a public status page with component history (Statuspage, Instatus, BetterStack or the vendor's own). - 0 to 30, the incident record for the last 90 days on that page. 30 for a clean record or trivial incidents only, 20 for minor incidents only, 10 for one major outage (an hour or more of a core API down, or errors across the board), 0 for several. 5 when there's no history we could read, and the note says so. - 15, rate limits documented with numbers. - 15, documented 429 or overload handling (Retry-After, backoff guidance), and idempotency keys or safe-retry guidance where writes are involved. - 10, an SLA published for any paid tier. - 10, the surface agents use is generally available, not beta or preview. Local packages, SDKs, frameworks and stdio MCP servers. - 20, installs from an official package with supported runtimes stated. - 25, a public CI and test suite, passing on the default branch. - 0 to 25, open crash or regression issues relative to activity (25 for few and handled, 0 for many, old and unanswered). - 15, semver discipline and breaking changes called out in a changelog. - 15, version 1.0 or later, or declared stable. Protocols are read from their reference implementations, the public facilitators or servers, spec stability and test vectors. ## 2. Agent ergonomics, 40 out of 100, up to 9.8 more on the total Why it scored 40: Protocol reading. Six MCP tools in Visa's examples (enrol a card, initiate, update and cancel a purchase instruction, retrieve credentials, confirm events), but each call carries device, assurance and mandate objects, and REST calls need message-level encryption (15 of 25). Little to page or filter in a purchase (5 of 20). TAP says when a merchant should block a request. We found no error codes for the agent APIs, and Visa's sample error handler only extracts a correlation ID (6 of 20). TAP nonces and an 8-minute window stop replays, and credentials are released only against an authenticated instruction, but no idempotency key is documented (10 of 20). TypeScript clients in the repository only and a Python TAP sample. Visa's MCP example needs ten credentials and keys (VIC key and shared secret, external client and app IDs, VTS key and secret, MLE certificate, key and key ID, and the developer's own RSA signing key) plus consumer and enrolment IDs (4 of 15). 40. The checklist (https://www.anchorterminal.com/benchmark/#checklist-ergonomics): - 0 to 25, context cost. For MCP, the number and size of the tool definitions (25 for ten or fewer compact tools, 15 for 11 to 30, 5 for more than 30, plus up to 10 back for toolsets, dynamic loading or read-only subsets). For APIs, whether responses can be sized (field selection, limits, summaries). - 20, pagination, filtering and output-size controls. - 20, actionable, documented error responses, codes and messages an agent can recover from. - 20, idempotency or safe retries, and for MCP the `readOnlyHint` and `destructiveHint` annotations. - 15, sensible defaults, few required parameters, and official SDKs in at least two languages. Models are read for tool use, structured output, prompt caching, context length, batch and SDKs. Frameworks for how much code and how many defaults a tool-calling agent with MCP needs. ## 3. Payments & pricing, 35 out of 100, up to 8.1 more on the total Why it scored 35: Protocol reading. VIC moves a consumer's Visa card through agent-specific tokens, so an agent can't pay on its own. TAP defines a Browsing IOU for a merchant's 402 response, Visa says it is aligning with x402 and that Intelligent Commerce Connect supports MPP, and Visa's agent skill describes Visa as an MPP card Client Enabler through processors, but none is a per-call payment on Visa's own endpoints (15 of 40). No fee to implement TAP, while Intelligent Commerce prices aren't published and production use needs a Visa Developer agreement (5 of 20). The Visa Developer sandbox is free, but VIC is a restricted product that needs Visa's approval even in sandbox, and whether sign-up asks for a card wasn't stated (15 of 20). A person must sign up, request access and be approved, and the agent must be onboarded to VIC (0). 35. The checklist (https://www.anchorterminal.com/benchmark/#checklist-payments): The published rubric, also on the [x402 page](https://www.anchorterminal.com/x402/). - 40, a machine payment protocol (x402, MPP or L402) on the tool's own endpoints. 10 to 30 when it covers only some endpoints or only goes through a third party, and the note says which. - 20, per-call or per-unit pricing published without a login. 10 for public plan-only pricing, 0 for "contact sales" or prices behind a login. - 20, a free tier or trial that doesn't need a card. - 20, autonomous onboarding, meaning an agent can get access without a person signing up in a browser (keyless use, x402, a programmatic key API). Payment platforms and agent wallets rarely charge for their own API over a machine protocol, so the first line has steps for them, and the highest one that applies counts. 40 when x402, MPP or L402 runs on all their own endpoints, 30 when it runs on part of their own API, 25 when their merchants can accept one, 20 for running a facilitator, 15 for paying as a buyer, and 0 when the only protocol is their own. Merchant acceptance sits above a facilitator because the platform's own customers can charge agents through it, while a facilitator settles for sellers who wire up the protocol themselves. The counter-argument (a facilitator does more for the protocol as a whole) has a point. Each note says which step applied. Open-source software you run yourself is scored on its hosted or paid option if it has one. A free, self-hosted package with nothing to buy gets 20, 20 and 20 for the last three lines, and 0 to 40 for the first only if it ships a payment protocol. ## 4. Schema & documentation, 54 out of 100, up to 7.5 more on the total Why it scored 54: No public machine-readable contract. The Acceptance guide links its API reference to an `internal` spec branch on apihub.visa.com, which our session couldn't reach, TAP has field tables but no JSON Schema, and the visa/ai kit has TypeScript payload builders (8 of 25). llms.txt for the VIC kit at sandbox.mcp.visa.com, a documentation MCP server with one `get-docs` tool, and the Acceptance guide in Markdown. developer.visa.com has no llms.txt (10). TAP sets out the participants, the three signatures and when a merchant should block a request, and the llms.txt says which of the six operations each workflow uses and in what order (14 of 20). Mandates are typed with a decline threshold amount and currency, an expiry timestamp, a category code and a recurrence, and TAP lists its required signature fields, but most values are strings and the full VIC field list is behind the restricted docs (8 of 15). JSON request and response examples in the guide and the specification, with no error responses or codes documented for the agent APIs (6 of 15). Dated monthly release notes list the VIC Agent APIs in October 2025 and April 2026, and the guide has numbered revisions (25.09.01 pilot, 25.11.01 passkey service), but TAP itself has no version (8 of 15). 54. The checklist (https://www.anchorterminal.com/benchmark/#checklist-schema): APIs and MCP servers. - 25, a machine-readable contract (a public OpenAPI file or similar; for MCP, typed JSON Schema inputs on every tool). - 10, llms.txt or Markdown docs served for agents. - 0 to 20, descriptions that say what a tool is for, when to use it and when not to, read from the tool definitions in the source or the API reference. - 0 to 15, typed inputs with enums, constraints and required fields, and no free-form JSON blobs. - 0 to 15, examples and documented error responses. - 15, versioning and a public changelog. Models are read from the API reference, the OpenAPI file, llms.txt, the structured-output and tool-use docs and the model cards. Frameworks from docs a model can follow, typed interfaces, examples and the API reference. ## 5. Maintenance & community, 22 out of 100, up to 6.8 more on the total Why it scored 22: The last dated change on the graded surface is 8 June 2026, security fixes to the visa/ai VIC clients, 130 days before this check. The release notes last list the VIC Agent APIs in April 2026, and the TAP repository's last commit is 28 October 2025 (10). No VIC release note, TAP change or VIC client change in the last 90 days. The two September 2026 commits to visa/ai touch only the Visa Acceptance device skill (0). Dated monthly release notes and a support channel on the Developer Centre, but GitHub issue activity couldn't be read (7 of 25). No official SDK on npm or PyPI. The @visa packages are built from the repository (3 of 15). Neither repository has CI, and visa/ai pins `turbo` to `latest` (2 of 10). 22. The checklist (https://www.anchorterminal.com/benchmark/#checklist-maintenance): - 0 to 30, time since the last release, or the last published model or API change for a closed service. 30 within 30 days, 20 within 90, 10 within 180, 0 older. - 20, at least three releases or dated changelog entries in the last 90 days. - 0 to 25, responsiveness. Issues and pull requests answered on GitHub (the open issues and how recent the replies are). For closed services, a public changelog and a support or community channel that answers, 0 to 15. - 15, presence in the official MCP registry under a verified namespace (MCP servers), or current official SDKs (APIs and models). - 10, package health, current dependencies and CI. Models are read for deprecation notice periods and model churn rather than release counts. ## 6. Security & auth, 70 out of 100, up to 5.3 more on the total Why it scored 70: Agent-specific network tokens replace the card number, and each credential is released against a purchase instruction the consumer approved with a passkey. MCP calls carry a JWE token that Visa's client signs with the developer's key and renews hourly, REST calls an HMAC X-Pay token with message-level encryption or two-way TLS, and TAP signatures are per request with a nonce. We found no documented way to revoke an agent's TAP key (26 of 30). Mandates set a decline threshold, merchant, category code, expiry and recurrence, consumer approval is recorded as assurance data on enrolment, instruction and cancellation, and Visa says VisaNet checks merchant and amount at authorisation (18 of 20). The agent reads merchant pages and product data, and we found no prompt-injection guidance in TAP, the guide or Visa's agent skill. The mandate limits bound what a misled agent can spend (6 of 15). Transaction event confirmations go to Visa, which says they help manage disputes, and TAP lets a merchant see which agent signed each request. No operator audit log is documented for the agent APIs (9 of 15). Vulnerability disclosure through HackerOne with a safe-harbour promise and no stated bounty, no security.txt on visa.com hosts or developer.visa.com, no SECURITY.md in either repository, and the June 2026 fixes to the visa/ai kit (stop holding PAN and CVV in agent state, verify the JWKS certificate chain, redact logs) were committed in public (11 of 20). 70. The checklist (https://www.anchorterminal.com/benchmark/#checklist-security): - 0 to 30, the credential model. 30 for OAuth 2.1 with scopes, or scoped and revocable keys with rotation. 20 for plain revocable API keys. 10 for one all-powerful key. 10 off when a secret can travel in a URL query string as a documented option. - 0 to 20, read-only or least-privilege modes, and confirmation or approval for destructive actions. - 0 to 15, prompt-injection posture where the tool returns untrusted content (documented mitigations or guidance). A tool that returns no untrusted content gets 10. - 0 to 15, audit logs or per-call visibility for the operator. - 0 to 20, a security programme. security.txt or a disclosure policy, a bug bounty, SOC 2 or ISO 27001, advisories handled in public. Models are read for retention, whether API data trains models (and whether that's off by default), zero-retention options and certifications. Frameworks for telemetry defaults, approval hooks, guardrails and sandboxing. ## 7. Transparency & trust, 62 out of 100, up to 3.3 more on the total Made of editorial 43, provenance 80. Why it scored 62: The TAP specification and sample code are under Visa's Product Terms, a revocable, limited licence conditioned on implementing the latest version in full, with unpermitted modifications assigned to Visa. visa/ai is MIT, and the VIC APIs are under the Developer Centre terms (18 of 30). Visa's global privacy notice and the Developer Centre terms' data protection section apply, and the guide and release notes say consent is recorded for enrolment and personalisation. TAP passes hashed email and phone, IP address and device data to merchants and leaves consents to the implementer, and we found no VIC retention period (15 of 30). The terms let Visa modify or end any product immediately upon written notice and require TAP implementers to adopt updates within six months. No deprecation notices were found (5 of 20). No subprocessor list or data location was found for VIC (5 of 20). 43. The checklist (https://www.anchorterminal.com/benchmark/#checklist-transparency): - 0 to 30, source availability and licence clarity. 30 for open source under an OSI licence, 15 for closed with clear terms, 0 for unclear terms. - 0 to 30, data handling and retention statements that agree with each other (privacy policy, DPA, retention periods, subprocessors). - 0 to 20, a deprecation policy or notices with dates. - 0 to 20, telemetry disclosed with an opt-out (local software), or subprocessors and data locations disclosed (hosted). The other half of Transparency and trust is the provenance score, computed from checked facts (below). The category score is the mean of the two. Provenance checks not met in full (half of this category, computed from checked facts): - Status page: not found (0 of 10) - security.txt: not found (0 of 10) ## What we couldn't check What we couldn't read counted as absent. Publishing it on a page a plain HTTP fetch can read (not only in a browser) lets the next check count it. - unchecked: GitHub stars, open issues and pull requests for visa/ai and visa/trusted-agent-protocol, because github.com web pages and the GitHub API were refused by our session's proxy. Source, commits and the wiki were read through git - unchecked: the VIC documentation on developer.visa.com, which is limited to approved users, and the API reference on apihub.visa.com, which our session's proxy couldn't reach - unchecked: visacli.sh, the Visa CLI site named in trade press. curl failed the TLS handshake and the WebFetch permission request wasn't answered. Visa's own release of 10 June 2026 calls the CLI a proof of concept - unchecked: mpp.dev's card payment method page and Visa's Akamai release of 17 December 2025, whose WebFetch permission requests weren't answered. The MPP relation is taken from Visa's own skill file and its 8 April 2026 release - unchecked: Visa's membership of the x402 Foundation, named in our x402 listing from x402.org and not rechecked today - Where Visa publishes the TAP key store. The specification says Visa will host a well-known URL but doesn't give it - Whether chargeback rights or purchase protection apply to agent purchases on the same terms as other card-not-present purchases. No Visa page read says - Whether the `/acp/v1/` path prefix of the Visa Acceptance Intelligent Commerce APIs refers to the Agentic Commerce Protocol. The guide doesn't say, and the VIC kit uses `/vacp/v1/` - Visa's release of 18 December 2025 calls TAP 'an open framework', while its product terms grant a revocable licence and assign unpermitted modifications to Visa. Left to the desk, with no deduction - The TAP README says consumer and payment identifiers arrive 'via query parameters', while the specification puts them in signed objects in the request body - The VIC docs page on developer.visa.com describes the product as personalised deals and spending insights and lists it for acquirer and issuer banks, which doesn't match the agent programme described elsewhere - Lapse. status.visaacceptance.com/api/v2/summary.json was fetched in the same command as robots.txt, which disallows /api/. The response was deleted and nothing from it is used; the HTML status page and RSS feed were used instead. The RSS incident feed held no items - Disclosure. Visa named Anthropic among its launch partners in April 2025, and Visa's demo agent runs on Claude or GPT. Our research agents run on Anthropic's Claude - setup.minutes (180) is an estimate of the person's own time and excludes Visa's review of a restricted product request, for which no timeline was found ## Weaknesses - The Intelligent Commerce Agent APIs are a restricted product, and VIC credentials come only through Visa's onboarding - No public API contract. The Acceptance guide's API reference links point to an `internal` spec branch on apihub.visa.com - The TAP specification has no version, date or test vectors, and its key section lists RSA fields while its examples sign with Ed25519 - TAP is licensed under revocable Visa terms that assign unpermitted modifications to Visa and require updates within six months - No published fees, rate limits, error codes, idempotency keys or prompt-injection guidance were found for the agent APIs ## What costs an agent a turn today The notes we give agents before they call it. Each one is a workaround an agent shouldn't need. - Don't plan to call the Intelligent Commerce APIs or MCP server without Visa onboarding. Ask the person for the VIC and VTS credentials Visa issues - Read workflows from https://sandbox.mcp.visa.com/mcp/doc/llms.txt or the documentation MCP server's `get-docs` tool. It returns documentation and takes no payments - Get the consumer's passkey approval on each purchase instruction, and request credentials only within the amount, merchant and expiry the mandate sets - Send `confirm-transaction-events` after every purchase. Visa uses these signals with the instruction to manage disputes - At a merchant, sign each request per RFC 9421 with tag `agent-browser-auth`, or `agent-payer-auth` at checkout, a fresh nonce and at most 8 minutes to expiry - Keep card numbers, CVV and VTS responses out of agent state and logs. Visa changed its own demo agent in June 2026 to stop holding them ## What the review panel asked for - Publish the onboarding timeline - Open a sandbox to agent developers - a versioned TAP changelog - dated deprecation notices - Publish production fee schedule - publish TAP key revocation - add prompt-injection guidance ## When it's done Send what changed and where it's published as a dispute (https://www.anchorterminal.com/builders/#disputes, or `POST https://www.anchorterminal.com/api/v1/contact` with `"kind": "dispute"`). Disputes are answered in public, and the listing is checked again by the same checklist. Paying for an audit or a listing claim changes nothing here.