GhalaGhalaHelp Center
Back to ghala.ioghala.ioSign in
  • Getting Started
    • Ghala Documentation
    • Send Your First WhatsApp Message via API
    • Receiving Events with Webhooks
  • Commerce
    • Start Selling on WhatsApp
    • Set Up the AI Sales Agent
    • Get Paid with Snippe
  • Ai Automation
    • Configuring AI Auto-Reply for WhatsApp
    • Setting Up Human Handover Protocol
  • Campaigns Messaging
    • WhatsApp Message Templates: Complete Guide
    • Bulk WhatsApp Messaging: Complete Campaign Guide
  • Contacts Crm
    • WhatsApp Contact Management Guide
  • Best Practices
    • WhatsApp Customer Support Best Practices
    • Message Template Best Practices
  • Api Reference
    • Ghala Developer API Reference
    • Ghala API vs Meta Cloud API
    • Supported Capabilities
    • Multiple Numbers and Multi-Tenant Platforms
    • Errors and Retries
    • Limits and Quotas
    • Authentication and Access Tokens
    • Connecting and Onboarding a Number
    • Templates and Media
    • Developer Tooling
    • Versioning and Changelog

Products

  • Ghala
  • Sarufi
  • Snippe
  • Sema

Explore

  • Use Cases
  • Pricing
  • Ghala Academy
  • Blog

Developers

  • Docs
  • API Reference
  • API Quickstart
  • Webhooks Guide

Contact

  • SkyCity Mall, 9th Floor, Dar es Salaam, Tanzania
  • info@ghala.io
  • +255 699 920 009
© 2026 Neurotech Company LimitedTerms of ServicePrivacy PolicySitemap
  1. Help Center
  2. Api Reference
  3. Supported Capabilities

Supported Capabilities

v2

Every WhatsApp capability, and whether Ghala exposes it through the API, the dashboard, a raw Meta override, or not at all.

How to read this page

The point of this page is that you should never have to contact support to find out whether something is possible. Every capability below carries one of five verdicts.

Verdict Meaning
API Supported through the Ghala Developer API (/api/v2)
Dashboard Available in the Ghala dashboard, but not through the public API
Meta override Only reachable by taking the number's WhatsApp callback override and dealing with Meta directly
Planned Declared by the API or on the roadmap, but not usable today
Unsupported Not available through Ghala in any form

"Meta override" is not a Ghala feature so much as an escape hatch. The access token Ghala hands you is a Meta-issued token, so it can be used against Meta's Graph API directly. That works, but nothing about it is supported, tested, or covered by this documentation, and combining it with Ghala's own sending is how you end up with two systems answering one customer.

Sending messages

All of these are POST /api/v2/messages with a different type.

Capability Verdict Notes
Text API type: "text", max 4096 characters
Templates (sending) API type: "template", with template_components for variables
Images API type: "image", public HTTPS media_url
Video API type: "video"
Documents API type: "document", with media_filename
Audio / voice notes API type: "audio". WhatsApp allows no caption on audio
Interactive reply buttons API interactive.type: "buttons", up to 3
Interactive lists API interactive.type: "list", up to 10 rows total
Interactive URL button API interactive.type: "cta_url"
Location Unsupported Not in the type enum. No Ghala equivalent
Contacts (vCard) Unsupported Not in the type enum
Reactions Unsupported Cannot be sent through Ghala
Stickers Unsupported Not in the type enum
Replying to a specific message (quoted reply) Unsupported No context / reply_to field on the send body
Typing indicators, read receipts you send Unsupported Not exposed
WhatsApp Flows Unsupported Neither sending nor receiving Flow responses
Products / catalogue messages Unsupported Meta catalogue product messages are not exposed. Ghala's own Shop is a separate, dashboard-managed feature

Receiving messages

Inbound message types are what your endpoint receives, not what you send.

Capability Verdict Notes
message.received events API Delivered to an endpoint registered in Developer → Events
message.status events API sent, delivered, read, failed
Interactive button / list taps API The id you set when sending comes back on message.received
Full raw WhatsApp envelope Meta override The only way to get Meta's exact entry[].changes[].value shape
Inbound message types Ghala does not model Meta override If you need a field Ghala's event payload does not carry

Templates

Capability Verdict Notes
List templates API GET /api/v2/templates
Filter to sendable templates API ?sendable=true, with unsendable_reason when false
Read approved components and variables API The components array, as Meta approved it
Template quality score API quality_score: GREEN, YELLOW, RED, UNKNOWN
Create and submit a template Dashboard Templates in the dashboard
Edit and resubmit a template Dashboard
Delete a template Dashboard
Upload a media header sample Dashboard Meta requires a header_handle from its resumable upload; the dashboard does this for you
Sync templates from Meta Dashboard
template.status change events Planned The event name is declared but is not confirmed to publish today

Media

Capability Verdict Notes
Send media by public URL API Meta fetches the URL directly, so it must be publicly reachable
Upload to Ghala's media library Dashboard The library backs product listings and template headers
Upload to Meta's media store, send by media id Unsupported Ghala sends by URL only
Retrieve inbound media Dashboard Inbound media is visible in the inbox
Download media from Meta by media id Meta override Requires calling Meta directly

Numbers, accounts, and profiles

Capability Verdict Notes
Connect a number (Embedded Signup) Dashboard See Connecting and Onboarding a Number
Connect a number by pasting credentials Dashboard
Reconnect a number / refresh its token Dashboard Issues a new token and invalidates the old one
Retry number registration with the PIN Dashboard
Read the two-step verification PIN Dashboard Explicit reveal action
Check a number's live state Dashboard connection_status, registration_status, live
Disconnect a number Dashboard
List connected numbers programmatically Unsupported A v2 token authenticates exactly one number; there is no cross-number listing
WABA management (create, share, subscribe) Unsupported Ghala reads the WABA id; it does not manage WABAs
Business Portfolio management Unsupported
WhatsApp Business profile (the public one customers see) Unsupported Manage it in WhatsApp Manager. Ghala's Settings → Business profile is a separate, internal profile that configures the AI agent
Display-name change and review Unsupported WhatsApp Manager
Messaging-limit tier and quality rating Unsupported WhatsApp Manager

Events and webhooks

Capability Verdict Notes
Register an event subscription Dashboard Developer → Events. There is no /api/v2/webhooks endpoint
List / delete event subscriptions Dashboard
Signed deliveries with replay protection API X-Ghala-Signature, X-Ghala-Timestamp, X-Ghala-Delivery
Inspect delivery attempts and failures Dashboard Per-subscription attempt history, including HTTP status and error
Browse the number's event log Dashboard Retained 30 days
Read one event's exact delivered payload Dashboard The same envelope a subscriber is sent
Point the number's callback at your own server Dashboard Developer → Webhooks. Pauses the Ghala inbox and agent for that number
Replay a failed delivery from the API Unsupported The event log is browsable, but re-delivery is not exposed

Commerce, campaigns, and CRM

Everything here is a Ghala product feature rather than a WhatsApp platform capability, and none of it is on the public API.

Capability Verdict Notes
Shop, products, variants Dashboard Ghala's own catalogue; not Meta's
Orders Dashboard order.paid is declared as an event but not confirmed publishing
Payments Dashboard Via a connected Snippe account
Campaigns and drip sequences Dashboard
Contacts, tags, custom fields Dashboard
Analytics Dashboard Commerce and app analytics
AI agent configuration Dashboard Model, prompt, temperature, human takeover
Audit log Dashboard

Platform behaviour

Capability Verdict Notes
Idempotent sends API Idempotency-Key header
24-hour window enforced before the send API 409 outside_messaging_window rather than Meta's 131047
Automatic AI stand-down when you send API Resumes after the takeover window, or when the customer texts BOT
Retrieve a message by id after the fact Unsupported No GET /api/v2/messages/{id}. See Errors and Retries for the reconciliation workaround
Structured upstream Meta error codes Unsupported A rejected send returns 502 with Meta's reason as prose, not a numeric meta_code
Published per-plan rate limits Unsupported 429 is returned when WhatsApp rate-limits the number; Ghala does not publish its own numeric quotas

If something you need is unsupported

Three options, in the order worth trying:

  1. Check whether the dashboard does it. Most "missing" capabilities are dashboard features that simply are not on the public API. A one-off setup step does not need to be automated.
  2. Take the callback override and talk to Meta directly. You keep sending through Ghala or move entirely to Meta, but understand what pauses: no Ghala inbox, no AI agent, no order capture for that number.
  3. Ask for it. The API is deliberately narrow rather than accidentally incomplete, and the shape of what integrations actually need is what decides what gets built next.

What's next

  • Ghala API vs Meta Cloud API — the architecture behind these verdicts
  • Ghala Developer API Reference — the two endpoints in full
PreviousGhala API vs Meta Cloud APINextMultiple Numbers and Multi-Tenant Platforms

On this page

  • How to read this page
  • Sending messages
  • Receiving messages
  • Templates
  • Media
  • Numbers, accounts, and profiles
  • Events and webhooks
  • Commerce, campaigns, and CRM
  • Platform behaviour
  • If something you need is unsupported
  • What's next