{
  "protocolVersion": "0.3.0",
  "name": "nemahBites Store Agent",
  "description": "Imported chocolates, candy & snacks in Bangladesh. Order before 1:00 PM for same-day Dhaka delivery; 2–3 business days nationwide.",
  "version": "1.0.0",
  "url": "https://nemahbites.com/api/a2a",
  "preferredTransport": "JSONRPC",
  "supportedInterfaces": [
    {
      "url": "https://nemahbites.com/api/a2a",
      "transport": "JSONRPC"
    }
  ],
  "additionalInterfaces": [
    {
      "url": "https://nemahbites.com/api/a2a",
      "transport": "JSONRPC"
    }
  ],
  "provider": {
    "organization": "nemahBites",
    "url": "https://nemahbites.com"
  },
  "iconUrl": "https://nemahbites.com/img/w240/uploads/logo-short.png",
  "documentationUrl": "https://nemahbites.com/developers",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": false,
    "extensions": [
      {
        "uri": "https://github.com/google-agentic-commerce/ap2/v1",
        "description": "nemahBites is the merchant in an Agent Payments Protocol exchange. Cart contents, prices in BDT and stock come from the skills on this card; payment itself is completed on nemahbites.com, so this agent does not accept or settle payment mandates directly.",
        "required": true,
        "params": {
          "roles": [
            "merchant"
          ],
          "version": "0.1.0",
          "supports_mandates": false,
          "agent_checkout": true,
          "agent_checkout_api": "https://nemahbites.com/api/agent/v1",
          "payment_methods": [
            "cash_on_delivery"
          ],
          "checkout_url": "https://nemahbites.com/checkout",
          "currency": "BDT"
        }
      }
    ]
  },
  "defaultInputModes": [
    "text/plain",
    "application/json"
  ],
  "defaultOutputModes": [
    "text/plain",
    "application/json"
  ],
  "securitySchemes": {
    "oauth2": {
      "type": "oauth2",
      "description": "Optional. Public catalog skills need no credentials; obtain a token only for customer-specific data.",
      "flows": {
        "authorizationCode": {
          "authorizationUrl": "https://nemahbites.com/authorize",
          "tokenUrl": "https://nemahbites.com/api/oauth/token",
          "scopes": {
            "catalog.read": "Read the public product catalog",
            "checkout.write": "Quote a basket and place a cash-on-delivery order for a named customer",
            "orders.read": "Read the signed-in customer's orders",
            "profile.read": "Read the signed-in customer's name and contact details",
            "loyalty.read": "Read linked customer rewards and retail redemption estimates",
            "loyalty.write": "Spend points only with explicit checkout confirmation"
          }
        }
      }
    }
  },
  "security": [],
  "skills": [
    {
      "id": "wholesale-search",
      "name": "wholesale search",
      "description": "Live wholesale operation search_wholesale_products. Send a data part with operation and arguments (query/quantity for search; product_id/quantity for eligibility or stock; items for quote). Returns current tier pricing and managed versus uncounted stock. A quote is not an order or reservation.",
      "tags": [
        "wholesale"
      ],
      "examples": [
        "{\"operation\":\"search_wholesale_products\",\"arguments\":{}}"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ]
    },
    {
      "id": "wholesale-eligibility",
      "name": "wholesale eligibility",
      "description": "Live wholesale operation get_wholesale_eligibility. Send a data part with operation and arguments (query/quantity for search; product_id/quantity for eligibility or stock; items for quote). Returns current tier pricing and managed versus uncounted stock. A quote is not an order or reservation.",
      "tags": [
        "wholesale"
      ],
      "examples": [
        "{\"operation\":\"get_wholesale_eligibility\",\"arguments\":{}}"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ]
    },
    {
      "id": "wholesale-quote",
      "name": "wholesale quote",
      "description": "Live wholesale operation wholesale_quote. Send a data part with operation and arguments (query/quantity for search; product_id/quantity for eligibility or stock; items for quote). Returns current tier pricing and managed versus uncounted stock. A quote is not an order or reservation.",
      "tags": [
        "wholesale"
      ],
      "examples": [
        "{\"operation\":\"wholesale_quote\",\"arguments\":{}}"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ]
    },
    {
      "id": "bulk-stock",
      "name": "bulk stock",
      "description": "Live wholesale operation check_bulk_stock. Send a data part with operation and arguments (query/quantity for search; product_id/quantity for eligibility or stock; items for quote). Returns current tier pricing and managed versus uncounted stock. A quote is not an order or reservation.",
      "tags": [
        "wholesale"
      ],
      "examples": [
        "{\"operation\":\"check_bulk_stock\",\"arguments\":{}}"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ]
    },
    {
      "id": "wholesale-enquiry",
      "name": "wholesale enquiry",
      "description": "Send a customer-approved enquiry, not an order. Send a data part with operation create_wholesale_enquiry and arguments items/name/phone/delivery_city/confirmation/idempotency_key. Requires checkout.write. The shop confirms stock, delivery and final quote; no payment or points are taken.",
      "tags": [
        "wholesale"
      ],
      "examples": [
        "{\"operation\":\"create_wholesale_enquiry\",\"arguments\":{}}"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ]
    },
    {
      "id": "reward-balance",
      "name": "reward balance",
      "description": "Private read-only operation get_reward_balance. Send a structured data part with operation and arguments (subtotal and optional discount for preview). Requires customer-bound loyalty.read. No customer id override. No points spent or reserved; retail checkout revalidates. Agents cannot claim daily check-in.",
      "tags": [
        "rewards"
      ],
      "examples": [
        "{\"operation\":\"get_reward_balance\",\"arguments\":{}}"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ]
    },
    {
      "id": "reward-redemption-preview",
      "name": "reward redemption preview",
      "description": "Private read-only operation preview_reward_redemption. Send a structured data part with operation and arguments (subtotal and optional discount for preview). Requires customer-bound loyalty.read. No customer id override. No points spent or reserved; retail checkout revalidates. Agents cannot claim daily check-in.",
      "tags": [
        "rewards"
      ],
      "examples": [
        "{\"operation\":\"preview_reward_redemption\",\"arguments\":{\"subtotal\":1000,\"discount\":0}}"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ]
    },
    {
      "id": "commerce-config",
      "name": "commerce config",
      "description": "Public central commerce configuration: current tiers, rewards, delivery and business clock. Send a structured data part with operation get_commerce_config and empty arguments.",
      "tags": [
        "configuration"
      ],
      "examples": [
        "{\"operation\":\"get_commerce_config\",\"arguments\":{}}"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ]
    },
    {
      "id": "product-search",
      "name": "Search products",
      "description": "Find products in the nemahBites catalog by name, brand or keyword and return name, price in BDT, discount, stock and the product page URL.",
      "tags": [
        "catalog",
        "search",
        "shopping",
        "chocolate",
        "bangladesh"
      ],
      "examples": [
        "Do you have Ferrero Rocher?",
        "Show me Cadbury chocolates under 500 taka",
        "What Oreo products are in stock?"
      ],
      "inputModes": [
        "text/plain"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ]
    },
    {
      "id": "product-details",
      "name": "Get product details",
      "description": "Return the full detail of one product by slug or name: price, discount, stock, brand, category, rating and description.",
      "tags": [
        "catalog",
        "product"
      ],
      "examples": [
        "Tell me about cadbury-dairy-milk-oreo-chocolate-120gm"
      ],
      "inputModes": [
        "text/plain"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ]
    },
    {
      "id": "browse-categories",
      "name": "Browse categories and brands",
      "description": "List the categories and brands nemahBites carries, with the URL of each listing page.",
      "tags": [
        "catalog",
        "navigation"
      ],
      "examples": [
        "What categories do you have?",
        "Which chocolate brands do you carry?"
      ],
      "inputModes": [
        "text/plain"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ]
    },
    {
      "id": "check-availability",
      "name": "Check stock and delivery",
      "description": "Confirm that a specific quantity of a product can be ordered right now, and what delivery to a given address in Bangladesh would cost and how long it would take.",
      "tags": [
        "commerce",
        "inventory",
        "delivery"
      ],
      "examples": [
        "Are 2 KitKat 4 Finger Dark in stock?",
        "How much is delivery to Mirpur 12 for this basket?"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ]
    },
    {
      "id": "place-order",
      "name": "Quote a basket and place an order",
      "description": "Price a basket for a named customer at a delivery address, return the full total for the customer to approve, and place a real cash-on-delivery order once they explicitly confirm. Quoting creates nothing; only an explicit confirmation creates an order. Implemented over REST at /api/agent/v1 and as MCP tools at /api/mcp — this A2A card advertises the capability and points at those endpoints rather than taking orders over JSON-RPC.",
      "tags": [
        "commerce",
        "checkout",
        "order",
        "cash-on-delivery"
      ],
      "examples": [
        "Order 2 KitKat 4 Finger Dark to Block B, Mirpur 12 for Ashikur, 01712345678",
        "What is the status of order ORD-1788178773131-8620?"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ]
    },
    {
      "id": "store-info",
      "name": "Store, delivery and payment information",
      "description": "Answer questions about nemahBites itself: delivery charges and times inside and outside Dhaka, the free-shipping threshold, accepted payment methods, returns, wholesale/bulk quantity pricing, the reward-points programme, and how to get in touch. Wholesale tiers are a further percentage off the RETAIL price, separate from any retail promotional discount on the same product.",
      "tags": [
        "support",
        "delivery",
        "payment",
        "policy",
        "wholesale",
        "loyalty"
      ],
      "examples": [
        "How much is delivery in Dhaka?",
        "What payment methods do you accept?",
        "What is your return policy?"
      ],
      "inputModes": [
        "text/plain"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ]
    }
  ]
}