REST API endpoints
Every endpoint the Nuha Chat API has today, with its options.
- 1
Contacts
Open this in Nuha ChatGET /contactsfinds customers; addq(name or phone),stage(new, qualified, offer, payment_pending, won, lost) andlimit(1–100, default 25).GET /contacts/:idgets one contact with notes and recent orders.POST /contactswith{ "phone", "name", "labels" }creates a contact, or updates the name and labels if the phone already exists. - 2
Orders
GET /orderslists orders; addstatus,since(a date) andlimit(1–100, default 25).GET /orders/:idgets one order with its items, totals and tracking. - 3
Pipeline, items and profit
GET /pipelinegives the number and value of deals in each stage.GET /itemslists your products and services.GET /insights/profit?days=30gives sales, costs (ads, Meta messages, AI) and profit per ad, for 1 to 90 days. - 4
Payment links
POST /payment-linkswith{ "phone": "+60123456789", "items": [{ "item": "Kek Coklat", "qty": 1 }], "delivery": "west" }creates an order and a CHIP payment link.deliverycan be none, west, east or pickup. Add"send": trueto also send it in the WhatsApp chat (only inside the 24-hour window). - 5
Messages
POST /messageswith{ "phone": "+60123456789", "text": "…" }(orcontact_id) sends a WhatsApp message. It only works for a customer who has messaged you in the last 24 hours.
Tips
- All paths start with your base URL, for example
https://app.nuhachat.com/api/v1/orders. - POST endpoints need a Read + write key. GET endpoints work with any key.
- Items in a payment link can be the item name or its id from
GET /items.
Something not working?
409: This customer has not messaged you yet
WhatsApp only lets you send free text after the customer writes first. Use a campaign template instead.
400: Not in your catalog
The item name did not match. Use the exact name or the id from GET /items.
403 when creating a contact
Your contacts limit is full. Upgrade or remove contacts first.