Skip to content

UrbanChat IMS API · v1.3

Connect WhatsApp to your inventory

Urbanchat’s WhatsApp flows and AI agents call this API to answer customers’ product questions from live stock, and to turn a conversation into a confirmed order. Each company issues its own key, and a key only ever reaches that company’s data.

What you can do

  • Browse the catalogue: products with their variants (size, colour and any other option), price, MRP, GST rate, photos and stock available to order right now. Catalogue and stock
  • Place orders captured in chat, with the delivery address and cash on delivery or prepaid. Orders are confirmed immediately and reserve stock. Orders
  • Track orders and recognise customers by phone number. Customers
  • Give an AI agent the same abilities as tools over the Model Context Protocol. MCP server

Base URL

GEThttps://www.chatcom.in/api/v1/urbanchat

Every request is HTTPS and every body is JSON. Money and quantities are strings ("499.00", "1.5"), never floating-point numbers, so no paisa is lost on the way. Prices are in Indian rupees and include GST at the stated tax_rate.

Quickstart

  1. A Super Admin or Admin of the company opens Settings → Urbanchat WhatsApp → API access, chooses New key, and sends the key to you over a private channel. It is shown once.
  2. Keep it on your server as an environment variable, here UC_API_KEY.
  3. Find what the customer is asking about:
curl "https://www.chatcom.in/api/v1/urbanchat/catalog/products?search=t-shirt&in_stock=true&limit=5" \
  -H "X-API-KEY: $UC_API_KEY"
  1. Order a variant by its sku. Reuse the same external_reference if you retry — you get the same order back, never a second one.
curl -X POST "https://www.chatcom.in/api/v1/urbanchat/orders" \
  -H "X-API-KEY: $UC_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "customer": {
    "name": "Anjali Menon",
    "phone": "+91 98765 43210",
    "email": "anjali@example.com"
  },
  "items": [
    {
      "product_id": "TSHIRT-RED-M",
      "quantity": 2
    },
    {
      "product_id": "TSHIRT-BLU-L",
      "quantity": 1
    }
  ],
  "external_reference": "wa-conv-8f2c1e-order-1",
  "notes": "Gift wrap, please.",
  "delivery_address": {
    "line1": "12/4 MG Road, Ravipuram",
    "line2": "Opposite the bus stop",
    "city": "Kochi",
    "pincode": "682016"
  },
  "payment": "prepaid",
  "payment_reference": "UPI 412345678901"
}'

Conventions

  • Field names are snake_case. Unknown fields in a request are ignored.
  • Timestamps are ISO 8601 in UTC, e.g. 2026-10-13T07:42:11.000Z.
  • Phone numbers may be written any way — +91 98765 43210, 9876543210 — and are matched on the number, not the formatting.
  • Errors share one shape; see Errors and limits.
  • There is no price field anywhere in a request. Prices always come from the company’s catalogue.