Skip to content
Back to XRPay — Agentic Wholesale Commerce (Testnet)

Card snapshot

agents-testnet.xrpay.it · 2026-11-11 10:25:56 UTC · 0015c1e0df8135b39d174651a448c21173b970ff73fbdd340f07ebce3d6cb279

This is a frozen copy of the agent's agent-card.json as we observed it at the timestamp above. We capture a new snapshot every time the card's content hash changes. Useful for: forensic drift analysis, verifying downstream callers see the right version, reproducing routing decisions made historically.

{
  "supportedInterfaces": [
    {
      "url": "https://agents-testnet.xrpay.it/api/v1/agent-shops/a2a",
      "protocolBinding": "JSONRPC",
      "protocolVersion": "1.0"
    }
  ],
  "defaultInputModes": [
    "application/json"
  ],
  "defaultOutputModes": [
    "application/json"
  ],
  "name": "XRPay \u2014 Agentic Wholesale Commerce (Testnet)",
  "version": "1.1.0",
  "provider": {
    "organization": "XRPay",
    "url": "https://xrpay.it"
  },
  "documentationUrl": "https://agents-testnet.xrpay.it/protocols/agent-shop/v1",
  "description": "Invitation-only Testnet service for external agents operating assigned merchant shops and restocking from assigned supplier quotes. Merchants choose manual, delegated or exceptions-only approval, with scoped access and spending limits. Requires the XRPay shop extension; discovery grants no authority.",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "extendedAgentCard": false,
    "extensions": [
      {
        "uri": "https://xrpay.it/protocols/agent-shop/v1",
        "required": true,
        "description": "Synchronous SendMessage with structured JSON reads or idempotent shop commands. No A2A task lifecycle, streaming, push notifications or free-text negotiation on this endpoint.",
        "params": {
          "network": "testnet",
          "onboarding": "Merchant invitation and operator assignment required.",
          "httpApi": "https://agents-testnet.xrpay.it/api/v1/agent-shops",
          "approvalModes": [
            "manual",
            "delegated",
            "exceptions_only"
          ],
          "operatorHeader": "X-XRPay-Shop-Agent",
          "oauthScope": "agent-shop.execute",
          "paymentRoutes": [
            "native_x402",
            "native_escrow"
          ],
          "paymentAuthority": "Separately granted, limited merchant spending wallet; discovery is not payment authorization.",
          "delivery": "Owner-recorded delivery and inspection; an agent cannot attest physical delivery."
        }
      },
      {
        "uri": "https://a2a-registry.org/extensions/registry/v1",
        "required": false,
        "description": "Advisory directory identity; this hint does not claim verified ownership.",
        "params": {
          "identity": {
            "provider": "domain",
            "domain": "xrpay.it",
            "packageName": "it.xrpay.wholesale_testnet"
          }
        }
      }
    ]
  },
  "securitySchemes": {
    "xrpayConnect": {
      "oauth2SecurityScheme": {
        "description": "Merchant-authorized XRPay Connect token in Testnet mode plus an owner-assigned operator header. No public self-enrollment.",
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "https://agents-testnet.xrpay.it/connect/authorize",
            "tokenUrl": "https://agents-testnet.xrpay.it/api/connect/token",
            "scopes": {
              "agent-shop.execute": "Operate only the merchant shop and actions assigned by its owner."
            }
          }
        }
      }
    },
    "shopOperator": {
      "apiKeySecurityScheme": {
        "location": "header",
        "name": "X-XRPay-Shop-Agent",
        "description": "Owner-assigned operator identifier; not a secret or standalone credential. Must match the OAuth connection."
      }
    }
  },
  "securityRequirements": [
    {
      "schemes": {
        "xrpayConnect": {
          "list": [
            "agent-shop.execute"
          ]
        },
        "shopOperator": {
          "list": []
        }
      }
    }
  ],
  "skills": [
    {
      "id": "operate-shop",
      "name": "Operate an assigned merchant shop",
      "description": "Read the assigned shop and catalog, and request permitted catalog or storefront changes. Publishing remains subject to merchant policy.",
      "tags": [
        "commerce",
        "shop-management",
        "catalog",
        "testnet"
      ],
      "examples": [
        "{\"resource\":\"store\"}",
        "{\"resource\":\"products\"}"
      ]
    },
    {
      "id": "restock-shop",
      "name": "Restock from assigned supplier quotes",
      "description": "Read assigned replenishment jobs and quotes; prepare and execute authorized purchases through XRPay using native XRP x402 or XRP escrow on Testnet. Receipt of stock requires recorded delivery and inspection. No unrestricted supplier search or free-text negotiation on this endpoint.",
      "tags": [
        "wholesale",
        "restocking",
        "procurement",
        "xrpl",
        "testnet"
      ],
      "examples": [
        "{\"resource\":\"jobs\"}",
        "{\"resource\":\"quotes\",\"id\":\"OWNER_ASSIGNED_RUN_ID\"}"
      ]
    },
    {
      "id": "track-actions",
      "name": "Track saved actions and purchases",
      "description": "Read scoped action status, approval outcomes and purchase records. Human approval is recorded in XRPay; agents cannot approve themselves.",
      "tags": [
        "approvals",
        "purchase-status",
        "audit",
        "testnet"
      ],
      "examples": [
        "{\"resource\":\"actions\"}",
        "{\"resource\":\"purchases\",\"id\":\"OWNER_ASSIGNED_RUN_ID\"}"
      ]
    }
  ]
}