# Sonar > Sonar is a WhatsApp platform for South African businesses, made by Whats-Hub. It is the business partner you don't have to hire, and the night shift that answers customers while you sleep. It sends through Meta's official WhatsApp Business Platform (Cloud API) and is priced in rand, from R349 a month. ## What Sonar is - Copilot reads each customer chat and drafts the reply for a person to check and send. - The AI Agent (Plus and higher plans, and on Starter from its 100 AI replies a month) answers customers on WhatsApp by itself, in the business's own voice, at any hour, and passes anything it can't answer to the team. - Also broadcasts, a shared team inbox, contacts and POPIA consent records. ## Who it's for South African businesses that sell or take bookings on WhatsApp and can't answer every message themselves, from a one-person shop to a team with several numbers. ## Key facts - Works with the WhatsApp Business app (what Meta calls coexistence): a business connects the number already in the app, keeps using the app on its phone, and every chat also shows in Sonar. South African +27 numbers work today. Messages sent from the app stay free. - Plans, per month including VAT: - Starter: R349 a month, 10,000 messages, 2 WhatsApp numbers - Plus: R1,499 a month, 50,000 messages, 5 WhatsApp numbers, AI Agent included - Growth: R4,399 a month, 150,000 messages, 10 WhatsApp numbers, AI Agent included - Scale: R14,299 a month, 1,000,000 messages, 100 WhatsApp numbers, AI Agent included - Enterprise: from R24,999 a month, unlimited numbers - WhatsApp's own per-message charges are billed by Meta to the business's card, at Meta's rates, with no markup. - Free trial: 50 contacts and 250 messages, with replies you type free. No card needed. - AI Agent and Copilot (Plus and higher plans): with 5,000 Standard replies a month included on Plus (15,000 on Growth, 100,000 on Scale), then R0.10 each if you choose to keep going, or roughly R0.25 to R0.40 a reply on Advanced replies and R0.50 to R0.80 on Extreme replies for VIP chats, depending on the conversation. Starter includes 100 AI replies a month, which the AI Agent can send by itself or Copilot can draft. - POPIA: a consent record for every contact, opt-in and opt-out keywords handled automatically, and sends to anyone without consent blocked. - Also: broadcasts to segments, flows (automations, including a set number of days before or after a date like an arrival), event invites with RSVPs, a shared team inbox and contact import. How flows work (triggers, steps, quiet hours, the weekly limit, testers): https://sonar.whats-hub.co.za/guides/flows - A chatbot without AI, on every plan: keyword replies (someone sends "prices", they get your answer at once), menus with up to 3 buttons, an after-hours reply outside your opening hours, and a welcome message for people writing for the first time. No template needed: they go inside the 24 hours after the customer wrote. - Plans are a fixed monthly fee with messages included, month to month, cancelled any time in Plan & billing. Starter includes 2 WhatsApp numbers, Plus 5, Growth 10, Scale 100. The free trial's set-up carries over to a paid plan. - Website chat: a paste-in chat box for the business's own website, answered by its AI Agent, with the chats in the same team inbox. - Shopify: bring in customers, and send one abandoned-cart message to people who started checkout, didn't pay and agreed to marketing. - Broadcasts count link clicks, and templates can start from Meta's library of ready-approved templates. - Ice breakers: tap-to-ask questions customers see when they open the chat, answered by the AI Agent or the team. - Voice notes are written out (transcribed) in the Inbox. Spam senders can be blocked from the Inbox. - An installable phone app with notifications when a chat needs a person. - Help inside Sonar: Coggy, Sonar's guide, shows the next setup step and answers questions in a chat, on every plan including the free trial, and passes anything he can't answer to a person. A 2-minute video shows how to connect a WhatsApp Business app number: https://sonar.whats-hub.co.za/guides/whatsapp-business-app#video - AI connector (MCP) for Claude and other apps that take custom connectors: check and reply to WhatsApp chats from there. It summarises chats, reports how broadcasts did, looks up contacts, templates, flows and usage, drafts replies, and suggests broadcasts and templates for a person to check in Sonar. It can also send a reply the person has told it to send: free text only, only within the 24 hours after the customer last messaged, only with that person's own code from My account in Sonar (it shows as sent by them, via AI assistant), and at most 30 an hour. Templates and broadcasts are still sent from Sonar. On every plan, including the free trial. How to connect it to Claude or ChatGPT: https://sonar.whats-hub.co.za/guides/whatsapp-in-claude-and-chatgpt - Developer API and signed webhooks: send messages and templates, check delivery and add or update contacts; webhooks for incoming messages, replies sent from the WhatsApp Business app, delivery updates and opt-outs. Reference: https://sonar.whats-hub.co.za/developers - Zapier, Make and Google Sheets: send WhatsApp messages from a till, shop or booking system, add contacts from forms and log new messages to a sheet, with no code, on every plan: https://sonar.whats-hub.co.za/guides/zapier-make-google-sheets - Whats-Hub is owned by the Hout Bay United Football Community Trust, so Sonar's profits fund youth football. - B-BBEE points: a South African business measured on B-BBEE can pay for Sonar through the Hout Bay United Football Community Trust, a Level 1 B-BBEE contributor, so the spend counts at 135% for preferential procurement (R100 counts as R135). With the Trust's early-payment agreement it also counts as supplier development (a card payment within 15 days of the invoice). It is a purchase, not a donation, so there is no Section 18A certificate. Same plan prices; the Trust isn't VAT registered. The business asks in Plan & billing and Whats-Hub approves it. Details: https://sonar.whats-hub.co.za/b-bbee - Contact: support@whats-hub.co.za, or WhatsApp +27 72 214 8371 (answered by Sonar's own AI Agent). ## Integrations - Sonar connects to HubSpot, Privyr, Pricelyst, Shopify, WooCommerce, Yoco and PayFast payment links, Facebook Messenger and Instagram, Website chat, Zapier and Make, Updates from your other systems, Webhooks to your own system, Claude and ChatGPT, Developer API, Partner API. - What each one does and where to set it up: [https://sonar.whats-hub.co.za/integrations](https://sonar.whats-hub.co.za/integrations), or as plain text: https://sonar.whats-hub.co.za/integrations.md --- Source: https://sonar.whats-hub.co.za/guides/whatsapp-business-app # Use Sonar with the WhatsApp Business app Already chatting to customers in the WhatsApp Business app? Connect that same number to Sonar. You keep the app, your number and your chats, and add broadcasts, the AI Agent and a shared inbox. Meta calls this coexistence. About 10 minutes, on a computer with your phone beside you. The steps in 2 minutes, with music and no talking. Every step is written out below too. ## How it works - One number, two places. Messages from customers show in the app on your phone and in Sonar's Inbox. Reply from whichever is easier. - Both sides see everything. Replies you type in the app show in Sonar, marked WhatsApp app, so your team knows they're answered. Messages sent from Sonar show in the app. - Sonar adds what the app can't do: broadcasts to thousands of people with approved templates, flows, event invites, and the AI Agent and Copilot. - Copilot learns from the app too. If Copilot has a suggestion waiting and you answer that person from the app instead, Sonar takes your reply as the answer, clears the suggestion and learns from what you changed. ## Before you start - The WhatsApp Business app, version 2.24.17 or newer. Update it from your app store first. The normal WhatsApp app (not Business) can't be connected this way. - A computer, with your phone beside you. Meta's window opens on the computer, and partway through you confirm the connection in the app on your phone. Doing both on one phone usually stalls. Keep the app open while your chats sync. - A Facebook login for the business. Meta asks you to sign in and pick or create your business portfolio. - Your country. South African and UK numbers both work. If Meta doesn't offer your number the option yet, connect a separate number instead. ## Step by step ### 1. Start in Sonar Go to WhatsApp numbers and press + Add a number. Choose Your WhatsApp Business app number, type your number with the country code, for example +27 82 123 4567, and press Connect my app number. ### 2. Follow Meta's steps A Meta window opens. Sign in with Facebook, choose your business portfolio, and follow the steps. When it asks, open the WhatsApp Business app on your phone and confirm, then type the code the app shows into Meta's window on your computer. Meta also asks whether to share your chat history: say yes if you want your past chats in Sonar. Press Finish, then come back to the Sonar tab and wait. Don't close it. ### 3. Let it sync Sonar shows Connected and starts copying your contacts and chats. Keep the app open on your phone while it does. Recent chats arrive first, older ones over the next while. - Contacts: everyone in the app who has a WhatsApp number. - Chats: up to the last 6 months, if you chose to share them. Photos and files only come across for the last 14 days. - Groups don't sync. Group chats stay in the app only. The sync happens once, when you connect. If you said no to sharing history, the only way to bring it in later is to disconnect and connect again. ### 4. Check it works - Message your business number from another phone. Check it shows in the app and in Sonar's Inbox. - Reply from the app. Check the reply shows in Sonar, marked WhatsApp app. - Reply from Sonar. Check it shows in the app and arrives on the other phone. Under WhatsApp numbers, your number now shows Also on WhatsApp Business app. ## What changes in the app Most of the app works as before, including editing and deleting messages, calls, your catalogue and your business profile. Meta switches off a few things on connected numbers: - Broadcast lists: you can't make new ones, and old ones become read-only. Send broadcasts from Sonar instead, with your contacts and templates. - Disappearing messages, view once and live location are off in one-to-one chats. - Linked devices are signed out when you connect. Link them again afterwards (up to 4). WhatsApp for Windows isn't supported on connected numbers, and messages sent from it don't reach Sonar, so use the phone, WhatsApp Web or Sonar instead. - Your business name is changed in the app, under your business profile, not in Sonar (see your business name in chats). ## Your business name in chats Customers who haven't saved your number see the number at the top of the chat, with your business name underneath and at the top of your profile. WhatsApp only puts a business name in place of the number once Meta has approved it, and Meta doesn't do that for numbers on the WhatsApp Business app, even for verified businesses. - Change the name in the app, under Settings → Business tools → Business profile. WhatsApp Manager and Sonar can't change it for a connected number. - Use your business name, not a person's, so customers see who you are under the number. - Get customers to save you. A saved contact always shows its name. In Sonar, go to WhatsApp numbers and fill in Send a contact card so people can save you: each person who messages the number gets your card once. ## Staying connected Open the WhatsApp Business app on your phone at least every two weeks. If the phone app isn't used for about 14 days, Meta disconnects the number from Sonar, and you'd need to connect it again. A linked device that isn't used for about 30 days is signed out on its own. ## What it costs - Messages you send from the app stay free, as they are today. - Messages sent from Sonar (broadcasts, templates, replies and the AI Agent's replies) are charged like any WhatsApp business message, at Meta's rates. Meta gives each number 1,000 free replies a month. See WhatsApp pricing in South Africa. - Your Sonar trial (50 contacts and 250 messages, with replies you type free) only counts the contacts you add in Sonar, the messages you start there and AI-drafted replies. Replies you type, your synced contacts and the messages you send from the app don't use it up. - Team members on their own number: a staff member can connect their own WhatsApp Business app number as an agent number, R499 a month each, with AI replies on Standard included. ## Disconnecting In the WhatsApp Business app, go to Settings → Account → Business Platform → Disconnect Account. From then on, Sonar can't send or receive messages on that number. Your chats stay in the app, and what was already synced stays in Sonar. To connect again later, start from step 1. ## Questions Checked 28 October 2026. **Does it work with South African +27 numbers?** Yes. South African +27 numbers connect to Sonar with the WhatsApp Business app today, through Meta's standard onboarding, and South African businesses run this way on Sonar. UK numbers work too. If Meta doesn't offer your number the option, connect a separate number instead. **Do I need Meta Business Verification first?** No. An unverified business portfolio can connect and send within Meta's starting limits: messages to up to 250 people a day who haven't messaged you first, and up to 2 numbers. Verifying lifts those limits. It doesn't change what customers see at the top of a chat for a number on the WhatsApp Business app (see the next question). **Why do customers see my number instead of my business name?** WhatsApp only shows a business name in place of the number once Meta has approved it, and Meta doesn't do that for numbers on the WhatsApp Business app, even for verified businesses. Customers who haven't saved you see the number with your business name underneath. Change the name in the app (Settings, Business tools, Business profile), and switch on Sonar's contact card under WhatsApp numbers so people can save you: a saved contact always shows its name. **Can I keep using the WhatsApp Business app on my phone?** Yes. You keep the app, your number and your chats. Replies you type in the app show in Sonar, and messages sent from Sonar show in the app. Open the app at least every two weeks, or Meta disconnects the number. **What happens to my chat history?** When you connect, Meta asks whether to share it. Say yes and up to 6 months of chats come across, with photos and files from the last 14 days. Group chats stay in the app. **What stops working in the app?** New broadcast lists (old ones become read-only), disappearing messages, view once, live location, and WhatsApp for Windows. Calls, your catalogue, and editing and deleting messages keep working. **Does it cost more?** Messages you send from the app stay free. Messages sent from Sonar are charged at Meta's rates, with 1,000 free replies a month on each number, and your Sonar plan is priced in rand. **Can our own software use the same number?** Yes. Through Sonar's API your system can send messages and templates, and a webhook tells it about incoming messages and replies typed in the app. See Developers: API and webhooks. **Is this approved by Meta?** Yes. Sonar is a Meta Tech Provider and connects numbers through Meta's own sign-up for WhatsApp Business app numbers, on the official WhatsApp Cloud API. There's no unofficial WhatsApp Web automation. --- Source: https://sonar.whats-hub.co.za/integrations # WhatsApp, connected to the tools you already use Sonar links your WhatsApp to your CRM, your shop, your payments, your website and your own systems, so leads, orders and payments move without copying and pasting. Each one is set up from Sonar in a few minutes, at no extra cost. ## Sales and CRM ### HubSpot Puts the people who message you on WhatsApp into HubSpot as contacts (name, number, email), with a note of their tags that's updated when the tags change. Everyone, or only people with tags you choose. Set it up: Settings > Connected apps > HubSpot. Paste a HubSpot service key. ### Privyr Sends a contact to Privyr as a new lead the moment they get a tag you choose, such as "wants sales", with their name, number, tags and last message. Set it up: Settings > Connected apps > Privyr. Paste your Privyr webhook link and the tags that send a lead. ### Pricelyst Property buyers who follow a development or reserve a unit are tagged in Sonar, so flows can follow up on WhatsApp. Set it up: Switched on by Sonar for Pricelyst customers. Ask us. ## Shops and payments ### Shopify Brings in your customers and sends one abandoned-cart message to people who started checkout, didn't pay and agreed to marketing. Set it up: Settings > Connected apps > Shopify. ### WooCommerce Order updates on WhatsApp: you pick an approved update template for each order status, such as processing or completed, and Sonar sends it when the order changes. Set it up: Settings > Connected apps > WooCommerce. Paste your store address and a WooCommerce REST API key. ### Yoco and PayFast payment links Ask for payment inside a WhatsApp chat: Sonar makes a payment link on your own Yoco or PayFast account, sends it, and marks the chat paid when the money comes in. The money goes straight to you. Set it up: Settings > Connected apps > Payment links, then Request payment in a chat. ## More ways for customers to reach you ### Facebook Messenger and Instagram Messages to your Facebook Page and Instagram account land in the same team inbox as WhatsApp, and the AI Agent can answer them. Set it up: Settings > Connected apps > Messenger and Instagram. ### Website chat A chat box for your own website, answered by your AI Agent, with the chats in the same team inbox. Set it up: Settings > Connected apps > Website chat. Paste one line of code into your site. ## Spreadsheets, automation and your own systems ### Zapier and Make Connect Sonar to thousands of apps with no code: send WhatsApp messages from a till, shop or booking system, add contacts from forms and log new messages to a sheet. Set it up: Use Sonar's API key and webhooks in a Zap or a Make scenario. How it works ### Updates from your other systems Your till, booking app or delivery tool calls a private web address and the customer gets an approved WhatsApp update, such as order ready or booking confirmed. Set it up: Settings > Connected apps > Updates from your other systems. How it works ### Webhooks to your own system Sonar tells your CRM, booking or email system as things happen: new messages, delivery updates, RSVPs and opt-outs, signed so you know they came from Sonar. Set it up: Settings > Connected apps > Your own system (webhook). How it works ## AI assistants and developers ### Claude and ChatGPT Check and answer your WhatsApp chats from Claude or ChatGPT: summaries, follow-ups, broadcast results and drafts, and replies you tell it to send inside WhatsApp's 24-hour window. Set it up: My account > Your AI assistant: get a connect code. How it works ### Developer API Send messages and templates from your own software, check delivery, and add or update contacts. Set it up: Settings > Advanced > API keys. How it works ### Partner API For software platforms: connect your customers' WhatsApp numbers to Sonar from inside your product, at Sonar's standard prices with your own markup. Set it up: Ask us to switch on partner access. How it works ## Questions **Does Sonar connect WhatsApp to HubSpot?** Yes. Paste a HubSpot service key in Settings, Connected apps, HubSpot, and the people who message you on WhatsApp go into HubSpot as contacts, with a note of their tags that's updated when they change. **Can my WooCommerce store send WhatsApp order updates?** Yes. Connect the store with a WooCommerce REST API key, choose an approved update template for each order status, and Sonar sends it when an order changes. People who opted out are skipped. **Can customers pay me inside a WhatsApp chat?** Yes, with your own Yoco or PayFast account. In a chat, press Request payment, enter the amount, and Sonar sends a payment link and marks the chat paid when the money comes in. The money goes straight to you, never through Sonar. **Can Sonar send leads to my CRM?** Yes. HubSpot and Privyr are built in: choose the tags that make someone a lead, such as "wants sales", and they go to your CRM within a minute. For any other CRM, use Zapier, Make or Sonar's webhooks. **Do integrations cost extra?** No. Sonar doesn't charge extra for any integration. Payment providers such as Yoco and PayFast charge their own fees on payments, and the apps themselves (HubSpot, Privyr, Zapier) have their own plans. **What if the app I use isn't listed?** Use Zapier or Make, which connect Sonar to thousands of apps without code, or Sonar's API and webhooks. Or tell us at sonar.whats-hub.co.za/contact: the integrations people ask for most are the ones we build next. --- Source: https://sonar.whats-hub.co.za/guides/flows # How WhatsApp flows work A flow is a WhatsApp automation that runs once for each person: something starts it, then it waits, checks, sends and tags for you. Use one to answer keywords without AI, follow up a broadcast, welcome a new lead, remind a guest before they arrive, or hand a hot lead to your sales team. ## The short version - Open Flows in Sonar, press New flow, and pick a ready-made start or begin from scratch. - Choose what starts it: a tag, a broadcast, a number of days after someone opted in, a date in their contact details, or a message with certain words. - Add steps: wait, check (If), send a message, reply with text, tag, or stop. - Switch it on. Each person goes through the flow once, and you can see who is waiting, finished or stopped in its People list. - Sonar keeps every flow inside WhatsApp's rules and POPIA: no messages to people who opted out, nothing overnight, and a weekly limit per person. ## What starts a flow - Someone gets a tag. For example "Booking started" or "Marlow: wants sales". Tags come from your team, a button someone tapped in a broadcast, your AI Agent's answers, an import, your website or app through the API, or another app such as Pricelyst or WooCommerce. A tag flow starts people who get the tag from now on. Tick the box to include people who already have it. - They were sent a broadcast. Use it to follow up, for example a reminder 3 days later to people who didn't reply. - A number of days after they opted in. For example a thank-you 90 days after someone joined your list. - A date in their contact details. Some days before, on, or after a date such as an arrival date, a birthday or a renewal, in your time zone. A new date (a returning guest) starts them again. - They send a message. With certain words or phrases, such as "prices" or "opening hours" (any case, whole words, typed or tapped on a button), or any message at all. A keyword flow starts again every time they send the word. An any-message flow starts the same person again only after 12 hours. ## The steps you can add - Wait a number of hours or days, up to a year. - If: do one thing for some people and something else for the rest. Checks: they've replied or haven't, they have a tag or don't, you're closed (outside the opening hours you set), or it's their first message to you. Ifs can sit inside Ifs. - Send a message: an approved WhatsApp template, with the same fill-ins and pictures as a broadcast. Templates can reach people any time, within the rules below. - Reply with text: your own words, free, with up to 3 buttons. It only goes within 24 hours of the person's last message, which a message-started flow always is. A button's words can start another keyword flow, so a few flows make a menu. - Tag: add or remove tags. A tag can start another flow, send someone to your CRM, or mark where they are. - Stop: they leave the flow here. You can edit a flow while people are in it. Sonar keeps everyone who is waiting on the same step. ## Ready-made starts New flow offers these, filled in for you to change: - Keyword reply: someone sends "prices", they get your answer straight away. Add buttons to make a menu. No AI needed. - After-hours reply: anyone who writes while you're closed gets a short message, once an evening. Your AI Agent, if it's on, still answers too. - Welcome a first message: people writing to you for the first time get a hello and buttons, such as Prices and Opening hours. - Finish your booking: a day after someone gets the tag that means they started (for example "Booking started"), a reminder if they don't yet have the one that means they finished (for example "Booking paid"). - No reply to a broadcast: three days after a broadcast, a follow-up to people who didn't reply. - Welcome a new customer: a message when someone gets the tag that means they bought or signed up. - Before a date: a message some days before the date in a contact field, like check-in details 3 days before arrival. - Opt-in anniversary: a message 90 days after someone opted in. ## The rules every flow follows - Opt-outs: someone who replied STOP, or whom POPIA consent doesn't allow you to market to, never gets a flow message; their run ends. An update template (utility) to someone who wrote to you in the last day counts as service and can go without an opt-in. - Quiet hours: nothing goes out between 20:00 and 08:00 in your time zone; it waits until morning. If the person wrote to you in the last hour, it goes straight away, because they're awake and mid-conversation. - A weekly limit: no more than 3 template messages to one person in 7 days, from flows and broadcasts together. Over it, that person's run ends instead of piling up. Update templates, such as a booking confirmation, don't count towards it. - Once each: a person goes through a flow once. Keyword flows, any-message flows (after 12 hours) and date flows (for a new date) are the exceptions that can start someone again. - Paused templates: if WhatsApp pauses a template because people reacted badly to it, the flow waits and carries on when the pause ends. A template WhatsApp switches off ends the runs that use it. - Broadcasts follow a related rule: each person gets a template once a day from the same number, so people in two overlapping audiences aren't messaged twice. ## Testing a flow - Tag yourself Tester in Contacts, or add your own number under the flow test numbers in Flows. - Testers skip quiet hours, the weekly limit and the broadcast once-a-day rule, so you can try a flow or a broadcast as often as you like. - In a flow's People list you can send a tester through the flow again. ## Flows and your other apps Tags connect flows to the rest of your tools (see all integrations): - Leads to your CRM: the tag that marks a hot lead, such as "wants sales", can send that person to Privyr or HubSpot within a minute. - Leads from your other systems: Pricelyst followers and reservations, WooCommerce customers and contacts added through the API arrive tagged, so a tag flow can welcome them. - Button answers: when someone taps a button in a broadcast, they can be tagged with the broadcast's name and their answer (for example "Spring sale: Yes please"), which can start the right follow-up flow. - Payments: a payment link paid in a chat tags the person "Paid", so a flow can say thank you or book the next step. - Your own systems: Sonar's API and webhooks, Zapier and Make can add tags and receive what happens. ## Example: a property lead, start to finish - A buyer follows a development on the developer's sales site. It tells Sonar, and the buyer is tagged "Development: registered". - A tag flow sends the approved welcome template from the development's WhatsApp number. - The buyer replies. The AI Agent asks three questions and tags the answers, such as "Investor" or "Wants a viewing". - When the buyer says yes to talking to someone, they're tagged "wants a person". A second flow sends an update template introducing the agent, and the same tag sends them to the sales team's Privyr or HubSpot. ## Questions **Do I need the AI Agent for flows?** No. Flows run on their own: keyword replies, menus with buttons, after-hours and welcome messages work without any AI. If your AI Agent is on, it carries on answering alongside them. **Can a flow message someone who hasn't opted in?** Only within the rules: a marketing template needs their opt-in, and someone who replied STOP is never messaged. An update template to someone who wrote to you in the last day counts as service. A reply with text goes only within 24 hours of their last message. **Why didn't my flow message go out?** Check the flow's People list: it says why a run stopped or is waiting. The usual reasons are quiet hours (20:00 to 08:00, it waits), the weekly limit of 3 template messages per person, an opt-out, or a template WhatsApp paused. Tag yourself Tester to try it without those limits. **Can a flow send someone to my CRM?** Yes. Add a Tag step with the tag your HubSpot or Privyr connection uses, and they go to your CRM within a minute. See integrations. **How do I make a WhatsApp menu without AI?** Make a keyword flow with a Reply with text step and up to 3 buttons. Then make one keyword flow per button, using the button's words, so each tap gets its own answer. --- Source: https://sonar.whats-hub.co.za/b-bbee # WhatsApp marketing that earns B-BBEE points Pay for Sonar through the Hout Bay United Football Community Trust, a Level 1 B-BBEE contributor, and your WhatsApp platform counts on your scorecard: 135% procurement recognition, plus supplier development. It's a purchase, not a donation, so there's no Section 18A certificate. ## The short version - What you buy: Sonar, a WhatsApp marketing and AI Agent platform for South African businesses: broadcasts, a shared inbox, flows, an AI Agent that replies for you, and an API. - Who you pay: the Hout Bay United Football Community Trust, by card, instead of Whats-Hub. Whats-Hub, which builds Sonar, is owned by the Trust. - What you get for B-BBEE: preferential procurement at 135% (R100 counts as R135), and supplier development if you sign the Trust's early-payment agreement. - What you don't get: a Section 18A tax certificate. You're paying for a service, not making a donation. - The price: the same as on the pricing page, monthly or yearly. Paying yearly, your plan costs 10 months for 12. ## How it works, step by step - Start your free trial, or log in if you already use Sonar. - In Plan & billing, open B-BBEE billing through the HBUFC Trust and give your registered company name, registration number and financial year end. - We check your business is real and that the arrangement suits you, and email you. - Once you're approved, we send the Trust's B-BBEE certificate and the supplier development agreement to sign. - From then on you pay your plan by card to the Trust. Each payment gets an invoice from the Trust. - At your financial year end, ask us for a letter confirming the supplier development support, for your verification agency. Only payments to the Trust count toward B-BBEE. Card payments to Whats-Hub, before you're approved, don't. ## Points 1: preferential procurement The Trust is a Level 1 B-BBEE contributor, with a procurement recognition level of 135%. As a non-profit, it's measured as a specialised enterprise on the share of its beneficiaries who are black: at 75% or more, that's Level 1. So whatever you pay the Trust for Sonar counts at 135% of its value in your B-BBEE procurement spend. On the Plus plan at R1,499 a month, a year of payments (R17,988) counts as R24,283.80. Paid yearly, the plan is R14,990, which counts as R20,236.50. ## Points 2: supplier development The same payments can also count as supplier development. Sign the Trust's supplier development agreement, which records that you pay its invoices early. Under the B-BBEE Codes of Good Practice (Code Series 400), paying a supplier development beneficiary within 15 days of the invoice counts as a contribution: 15% of the invoice, less 1% for each day you take. You pay Sonar by card when the invoice is issued, so a payment on the day counts at 15%. A R14,990 yearly plan, for example, is a R2,248.50 supplier development contribution, on top of the procurement spend. Your verification agency works out the final points from the agreement, the Trust's certificate and your invoices. ## No Section 18A certificate A Section 18A certificate lets you deduct a donation to a public benefit organisation from your taxable income. It's only for a real donation: money given with nothing in return. Paying for Sonar isn't a donation, because you get the platform for it. So the Trust doesn't issue a Section 18A certificate for it. That's also better for your scorecard: a donation would count as socio-economic development instead, and you'd lose the procurement points above. Your Sonar plan is an ordinary business expense, like any other software. If you'd like to support the Trust's youth football programmes as well, a separate donation gets its own Section 18A certificate. Ask us. ## Price and VAT You pay the same plan price as on the pricing page, monthly or yearly, and your Sonar account works exactly as it would otherwise. The Trust isn't VAT registered, so its invoices have no VAT on them. If your business is VAT registered, there's no VAT to claim back on these invoices. ## What we send you - The Trust's current B-BBEE certificate, for your verification. - An invoice from the Trust for each payment. - The supplier development agreement to sign, and a letter at your financial year end confirming the support. The Hout Bay United Football Community Trust: trust registration number IT 000536/2015, NPO registration number 165-406-NPO, PBO number 930051398. ## Questions **Is there a WhatsApp marketing platform in South Africa that earns B-BBEE points?** Yes: Sonar, paid for through the Hout Bay United Football Community Trust. The spend counts at 135% for preferential procurement, and with the Trust's early-payment agreement it also counts as supplier development. **Do I get a Section 18A tax certificate for my plan?** No. Section 18A is only for donations, and a plan is a payment for a service. You get B-BBEE points instead. A separate donation to the Trust gets its own Section 18A certificate. **Can I keep paying monthly?** Yes. Pay monthly or yearly; both count. Yearly is one payment for 12 months, with the plan at the price of 10. **What happens to my account when I switch?** Nothing changes in Sonar. Your numbers, contacts, chats and plan stay as they are; only who you pay changes. **Who checks the points?** Your own B-BBEE verification agency. We give you the Trust's certificate, the signed agreement, every invoice and a year-end confirmation letter. --- Source: https://sonar.whats-hub.co.za/developers # Sonar API and webhooks Connect your own software to WhatsApp through Sonar: send messages and templates, add and update contacts with their consent, and get every incoming message, reply from the WhatsApp Business app and delivery update at your own address. Sonar sends through Meta's official WhatsApp Cloud API. ## Before you start - A connected number. Sign up, then connect a WhatsApp number under WhatsApp numbers. A number that's already in the WhatsApp Business app can stay there: see Sonar with the WhatsApp Business app. - An API key. Each number has its own, under WhatsApp numbers → Advanced (for developers). Send it on every request as Authorization: Bearer YOUR_API_KEY. It sends from that number, so keep it on your server, never in a browser or app. That's the number's main key, with every permission. Owners can also make named keys there, each with only what one system needs (send, read, create templates, contacts) and, if you like, the IP addresses it may be used from; a named key is shown once. Owners can make a new main key if one leaks, or turn it off once your systems use named keys. - Base address: https://sonar.whats-hub.co.za. Requests and responses are JSON. - On every plan. The API and webhooks come with every Sonar plan, the free trial too, at no extra cost. - Full reference: every call, field, response and error is in the API reference, and the OpenAPI spec is at /openapi.json to import into Postman or generate a client. - Phone numbers are in international format, with or without the +: 27821234567 or +27 82 123 4567. ## Send a message Free text, for replying to someone who has messaged the number in the last 24 hours. Outside that window WhatsApp only accepts an approved template. POST https://sonar.whats-hub.co.za/v1/send Authorization: Bearer YOUR_API_KEY Content-Type: application/json {"recipient": "27821234567", "message": "Hi Sam, your room is ready from 14:00."} 200 OK {"message_id": "wamid.HBgL...", "status": "sent", "sent_as": "text"} curl -X POST https://sonar.whats-hub.co.za/v1/send \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"recipient":"27821234567","message":"Hello!"}' Keep the message_id: it's how you look up delivery, and how webhook updates refer to the message. recipient is a number in international format, or the WhatsApp user ID of a customer who hides their number (see Customers who use a WhatsApp username). Links in a message can be tapped. To show a preview of the first link, add "preview_url": true to the request. Leave it out for one-time links, like sign-in links. WhatsApp opens the page to build the preview. {"recipient": "27821234567", "message": "Your booking: https://example.com/b/123", "preview_url": true} Files. To send a file instead of text, give one of these in place of message, each as an https link or the file as base64: - image: JPG or PNG, up to 5 MB, with an optional caption. - document: PDF, Word, Excel, PowerPoint or plain text, up to 100 MB, with an optional filename (what the customer sees) and caption. - audio: MP3, M4A, AAC, AMR or OGG, up to 16 MB. Audio can't carry a caption, so send any words as their own message. Sonar downloads a link itself, checks the file's real type and size (so mime is optional), uploads it to WhatsApp and sends it. A file it can't use, such as a WAV, a page that needs a login or a link on a private network, gets 400 bad_request with the reason before anything is sent. It's a normal reply, so the same 24 hours apply and it costs the same as text. {"recipient": "27821234567", "document": {"link": "https://example.com/invoices/1042.pdf", "filename": "Invoice 1042.pdf", "caption": "Your invoice"}} {"recipient": "27821234567", "image": {"base64": "iVBORw0KGgo...", "caption": "Your order, packed"}} {"recipient": "27821234567", "audio": {"link": "https://example.com/shift-briefing.mp3"}} Voice notes. Add "voice": true to audio and it arrives as a WhatsApp voice note: your profile picture with a microphone, and a transcript if the customer has those switched on. WhatsApp needs an OGG file with the Opus codec for this, and Sonar refuses any other file sent as a voice note (convert one with, for example, ffmpeg -i in.mp3 -c:a libopus out.ogg). Keep it to 512 KB or less, or it shows a download button instead of play. {"recipient": "27821234567", "audio": {"base64": "T2dnUwAC...", "voice": true}} Outside the 24 hours. WhatsApp doesn't deliver free text to someone who hasn't messaged the number in the last 24 hours, and that includes a first message to someone new. Sonar checks before sending and answers 400 with "code": "outside_24h_window", so nothing goes out that would fail. For those messages, send an approved template. Or give /send a template too: Sonar sends your text when the window is open and the template when it isn't, and sent_as in the answer says which went. {"recipient": "27821234567", "message": "Hi Sam, your order is ready.", "template": {"template_name": "order_ready", "language_code": "en_US", "body_parameters": ["Sam"]}} 200 OK {"message_id": "wamid.HBgL...", "status": "sent", "sent_as": "template"} The template is sent exactly as /send-template would send it, with the same checks: opt-outs for marketing templates, your plan's messages and the free trial. ## Send a template Approved templates can be sent at any time. Create them in Sonar under Templates; WhatsApp usually approves them within minutes. - body_parameters fill the template's {{1}}, {{2}} and so on, in order. If the template uses named fill-ins like {{first_name}}, give the values in the order those fill-ins first appear in the template. - buttons are for buttons that need a value when you send: index (its position among the template's buttons, from 0), kind (url for a link ending in a variable, copy_code for a coupon, quick_reply) and payload (the value). - header_document for a PDF header: filename, plus base64 or an https link, up to 16 MB. header_image for an image header: link or base64, JPEG or PNG up to 5 MB. - reference (optional) is your own id for the message, up to 100 characters. Send the same reference again from the same number within 24 hours, for example after a timeout, and Sonar doesn't send a second message: you get the first one's answer with "duplicate": true. While the first is still being sent you get 409, and if WhatsApp didn't answer the first in time (so it may have gone) a retry with that reference gets 409 too. The reference comes back in message.status and /message-status. - Opt-outs. A marketing template (or one whose category Sonar doesn't know) isn't sent to someone who opted out of your business, or of this number only. You get 403 with the reason, for example {"detail": "Sam opted out of marketing from this number."}. Utility and authentication templates, like order and booking updates, still send. POST https://sonar.whats-hub.co.za/v1/send-template Authorization: Bearer YOUR_API_KEY Content-Type: application/json {"recipient": "27821234567", "template_name": "booking_confirmed", "language_code": "en_US", "body_parameters": ["Sam", "Kruger Safari Lodge", "12 May", "15 May"], "buttons": [{"index": 0, "kind": "url", "payload": "P-881"}], "reference": "booking-881"} 200 OK {"message_id": "wamid.HBgL...", "status": "sent", "reference": "booking-881"} ## Check delivery WhatsApp reports delivery a moment after it accepts a message, so a sent message can still fail. Send up to 100 message_ids from this number to get each one's latest status: sent, delivered, read or failed. The message.status webhook tells you the same as it happens. POST https://sonar.whats-hub.co.za/v1/message-status Authorization: Bearer YOUR_API_KEY Content-Type: application/json {"wamids": ["wamid.HBgL..."]} Or look them up by the references you gave /send-template: {"references": ["booking-881"]}. Times are UTC. 200 OK {"statuses": {"wamid.HBgL...": {"status": "read", "error_code": null, "error_message": null, "updated_at": "2026-10-25T12:01:09", "reference": "booking-881"}}} ## Create a template Templates can also be made by API, on the WhatsApp account of the key's number. WhatsApp reviews each one, usually within minutes and at most 24 hours; /list-templates and the template.updated webhook tell you the outcome. - category: UTILITY, MARKETING or AUTHENTICATION. WhatsApp can approve a utility template as marketing if it reads like one, so check category in the answer. - body_text uses {{1}}, {{2}} and so on, with a sample for each in body_example. WhatsApp rejects text that starts or ends with a fill-in. - buttons: {"type": "URL", "text": ..., "url": ...} for a link. A link ending in {{1}} takes its end from the send's buttons, with a sample in example. Also QUICK_REPLY and PHONE_NUMBER. POST https://sonar.whats-hub.co.za/v1/create-template Authorization: Bearer YOUR_API_KEY Content-Type: application/json {"name": "booking_confirmed", "category": "UTILITY", "language_code": "en_US", "body_text": "Hi {{1}}, your stay at {{2}} from {{3}} to {{4}} is confirmed.", "body_example": ["Sam", "Kruger Safari Lodge", "12 May", "15 May"], "buttons": [{"type": "URL", "text": "View booking", "url": "https://example.com/b/{{1}}", "example": "P-881"}]} 200 OK {"id": "1234567890123456", "status": "PENDING", "category": "UTILITY", "name": "booking_confirmed"} ## List your templates The templates on this number's WhatsApp account, with their approval status, straight from Meta. GET https://sonar.whats-hub.co.za/v1/list-templates Authorization: Bearer YOUR_API_KEY 200 OK {"templates": [{"name": "booking_confirmed", "status": "APPROVED", "category": "UTILITY", "language": "en_US"}]} ## Add or update a contact Matched on the phone number: a new number is added, an existing contact is updated. Use it to keep Sonar in step with your own system, for example tagging a guest "Hold placed" so a flow sends a reminder. - tags are added to the ones the contact has, and remove_tags are taken off. Either can be a list or one comma-separated string. - custom sets your own contact fields by their key, like arrival_date. Add fields under Contacts → Custom fields. - opt_in: true records marketing consent, with opt_in_source saying where it came from. opted_out: true unsubscribes them. Sonar keeps the consent record POPIA asks for. - For a customer whose number is hidden, send their whatsapp_user_id as phone. It updates the contact Sonar has for them. It never adds a new one, so an ID Sonar doesn't know gets a 400. POST https://sonar.whats-hub.co.za/v1/contacts/upsert Authorization: Bearer YOUR_API_KEY Content-Type: application/json {"phone": "+27 82 123 4567", "name": "Sam Scop", "tags": ["Hold placed"], "remove_tags": ["Enquiry"], "custom": {"arrival_date": "2026-11-14"}, "opt_in": true, "opt_in_source": "booking form"} 200 OK {"id": 123, "wa_id": "27821234567", "name": "Sam Scop", "created": true, "opted_out": false, "tags": ["Hold placed"], "custom": {"arrival_date": "2026-11-14"}, "opt_in_at": "2026-10-25T14:00:00Z"} ## Webhooks Sonar can post what happens to your own address as it happens. Set it up under Settings → Connected apps → Your own system (webhook): give the https address, choose the events, and copy the signing secret, which is shown once. One webhook covers all of a business's numbers. - Format: a JSON POST with id (unique per update), type (the event) and sent_at, plus the event's own fields. The headers include X-Sonar-Event (the event) and X-Sonar-Delivery (the same id). - Signature: Sonar-Signature: t=1730800000,v1=...: t is when it was sent (Unix seconds) and v1 the HMAC-SHA256 of t, a dot and the raw request body, with your secret. Check it before trusting an update, and refuse one whose t is more than 5 minutes old, so an old update can't be replayed. The older X-Sonar-Signature: sha256=... (the HMAC of the body alone) still comes too, and will for at least 6 months. - Delivery: answer with any 2xx within 10 seconds. If your address doesn't, Sonar tries again after 1, 5 and 30 minutes, then 2, 6, 12 and 24 hours: about 2 days. Each try is signed afresh but carries the same id, so use it to ignore an update you've already handled. The delivery log under the webhook settings shows the last 7 days, with Send again for a failed one, and we email the account's owners and admins if deliveries have failed for a day. - Addresses inside a private network aren't allowed. # Python: check Sonar-Signature on the raw body, before parsing it import hashlib, hmac, time def is_from_sonar(secret: str, raw_body: bytes, header: str, tolerance: int = 300) -> bool: parts = dict(p.split("=", 1) for p in (header or "").split(",") if "=" in p) t, sig = parts.get("t", ""), parts.get("v1", "") if not t.isdigit() or abs(time.time() - int(t)) > tolerance: return False # too old (or from the future): a replay expected = hmac.new(secret.encode(), t.encode() + b"." + raw_body, hashlib.sha256).hexdigest() return hmac.compare_digest(expected, sig) ## Webhook events The events Sonar can send to your webhook | Event | When | message.received | Someone messages one of your numbers. | message.sent | Someone on your team replies from the WhatsApp Business app on their phone (Meta's message echoes, on numbers connected with the app). | message.status | A message sent through Sonar or the API is delivered, read or fails. | template.updated | WhatsApp approves, rejects, pauses or switches off a template, gives notice that it will move one to another category (about 24 hours ahead), or moves it. | contact.opted_in, contact.opted_out | Someone opts in or out, by keyword, button or the API. | rsvp.updated | An event RSVP changes (going, not going, waitlist). | payment.paid | A customer pays a payment link sent from an Inbox chat (Yoco or PayFast, to your own account). Sent once per link. payment.test is true when the business used test (sandbox) details and no real money moved. | number.connected | A property's owner connects their number through a partner connect link (see Building a platform). Always sent to partners. | number.problem | Something stops a property's number receiving or sending, such as Meta's payment block or a lost connection, in number.problems as plain words; an empty list when it's sorted. Checked daily and sent only when it changes. Always sent to partners. {"id": "4f1c...", "type": "message.received", "sent_at": "2026-10-25T12:00:02Z", "message": {"id": "wamid.HBgL...", "type": "text", "text": "Do you have a room on Friday?", "received_at": "2026-10-25T12:00:01Z", "phone_number_id": "1234567890", "ad_headline": null, "media": null}, "contact": {"whatsapp": "+27821234567", "whatsapp_user_id": "ZA.1349...", "name": "Sam", "tags": ["Guest"], "opted_out": false}} {"id": "9b2e...", "type": "message.sent", "sent_at": "2026-10-25T12:03:40Z", "message": {"id": "wamid.HBgL...", "type": "text", "text": "Yes, the Main Suite is free.", "to": "+27821234567", "to_user_id": "ZA.1349...", "sent_at": "2026-10-25T12:03:39Z", "phone_number_id": "1234567890", "sent_from": "whatsapp_business_app", "media": null}, "contact": {"whatsapp": "+27821234567", "whatsapp_user_id": "ZA.1349...", "name": "Sam", "tags": ["Guest"], "opted_out": false}} {"id": "c07a...", "type": "message.status", "sent_at": "2026-10-25T12:05:11Z", "message": {"id": "wamid.HBgL...", "status": "read", "previous_status": "delivered", "to": "+27821234567", "to_user_id": "ZA.1349...", "template": "booking_confirmed", "broadcast_id": null, "reference": "booking-881", "phone_number_id": "1234567890", "error": null, "at": "2026-10-25T12:05:10Z"}} {"id": "7d3a...", "type": "template.updated", "sent_at": "2026-10-25T12:07:00Z", "template": {"name": "booking_confirmed", "language": "en_US", "status": "APPROVED", "category": "UTILITY", "reason": null, "waba_id": "1029...", "change": "category_notice", "coming_category": "MARKETING", "coming_at": "2026-10-26T12:00:00Z"}} change is status (with previous_status), category_notice (with coming_category and coming_at) or category (with previous_category). reason is filled for a rejection. {"id": "e51d...", "type": "contact.opted_out", "sent_at": "2026-10-25T12:09:00Z", "contact": {"whatsapp": "+27821234567", "whatsapp_user_id": "ZA.1349...", "name": "Sam", "tags": ["Guest"], "opted_out": true}, "consent": {"source": "keyword", "keyword": "STOP", "detail": "STOP"}} {"id": "a83c...", "type": "payment.paid", "sent_at": "2026-10-25T12:11:00Z", "payment": {"reference": "pT3x...", "amount": "1234.50", "amount_cents": 123450, "currency": "ZAR", "description": "Deposit for Saturday's booking", "provider": "yoco", "provider_payment_id": "p_8Hk...", "phone_number_id": "1234567890", "paid_at": "2026-10-25T12:10:58Z", "test": false}, "contact": {"whatsapp": "+27821234567", "whatsapp_user_id": null, "name": "Sam", "tags": ["Guest", "Paid"], "opted_out": false}} ## Customers who use a WhatsApp username Some customers use a WhatsApp username and don't share their number. For them, "whatsapp" is null and their WhatsApp user ID is in "whatsapp_user_id". In message.sent and message.status, "to" is null for them and the ID is in "to_user_id". To message them, send that ID as "recipient" to /send or /send-template, exactly as you got it. - A customer whose number Sonar already has usually keeps it: Sonar sends to their number, as WhatsApp recommends. If Sonar keeps their user ID as a separate contact, a send to the ID goes to the ID. - Sign-in code (authentication) templates need a number. WhatsApp refuses them to a user ID. ## Files When a message has a document, photo, voice note or video, its update includes message.media with an id, mime, filename and a url. Fetch the file from that address with any of the business's API keys: GET https://sonar.whats-hub.co.za/v1/media/MEDIA_ID Authorization: Bearer YOUR_API_KEY Sonar keeps each file for 12 months, so save the ones you need in your own system. Voice notes come as the original audio file (OGG). ## Numbers on the WhatsApp Business app A number connected with the WhatsApp Business app (what Meta calls coexistence) works with the API like any other, and also keeps working in the app on the owner's phone. South African +27 numbers included. - What you send shows in the app. Messages sent through /send or /send-template appear in that chat in the owner's WhatsApp Business app. - What they send from the app reaches you. A reply typed in the app arrives as message.sent, with "sent_from": "whatsapp_business_app". Messages sent from the app stay free. - Incoming messages go to both. They show in the app and in Sonar, and reach you as message.received. - The API keeps WhatsApp's rules. Free text through /send only works within 24 hours of the customer's last message; after that, send an approved template. The owner carries on in the app as they always have. - Past chats aren't replayed. When the number connects, Meta can copy up to 6 months of past chats into Sonar's inbox. They aren't sent to your webhook, which starts from the moment it's set up. Group chats stay in the app only. - The app has to stay in use. If the WhatsApp Business app isn't opened for about 14 days, Meta disconnects the number and it needs connecting again. ## Errors and limits - Every error is JSON with detail (for people) and code (for your system), plus meta_code when WhatsApp refused the message: {"detail": "...", "code": "outside_24h_window", "meta_code": 131047}. Act on code; the full list is in the API reference. - 401: the API key is missing or wrong. 400: something in the request isn't right, or WhatsApp refused it, for example a free-text /send to someone outside their 24-hour window (outside_24h_window). - 402: the message is past the plan's included messages and the account's balance can't cover it (balance_low), or the free trial's messages are used up (trial_used_up). - Rate limit: 20 calls a second per key, in bursts of up to 40. Past that you get 429 with a Retry-After header in seconds. WhatsApp also paces messages to the same person, about 1 every 6 seconds (pair_rate_limited). - Versions: paths start with /v1 (the same paths without it work too). Within v1 we only add things; a breaking change would get /v2, with at least 6 months' notice. See the changelog. - WhatsApp's own charge for each message is billed by Meta to the card on the business's WhatsApp account. See WhatsApp pricing in South Africa. ## Zapier, Make and Google Sheets No-code tools use the same API key. Step by step, with three ready-made recipes, in connect Sonar to Zapier, Make or Google Sheets. For building your own app on these tools, three calls help: - GET /v1/me: the business, number and permissions of a key. Use it to test a connection. - POST /v1/hooks with {"event": "message.received", "target_url": "https://..."} sends one kind of update to that address until DELETE /v1/hooks/{id}. The events are message.received, message.status, contact.opted_in and contact.opted_out. Each update is the same JSON as the webhook's, signed and retried the same way, and only for the key's own number's messages. It stops when the key is replaced or deleted, and ends if the address answers 410. A named key needs the events permission. - GET /v1/hooks/sample?event=message.received: up to 3 recent updates, shaped as they're sent, for a test step. ## Building a platform If you run software for many businesses, like a booking or property management system, the partner API lets each of your customers connect their own WhatsApp number from inside your product, with no Sonar login. Each customer becomes its own business in Sonar (a property here), with its own numbers, contacts and opt-outs, and its number stays in the owner's own Meta business portfolio. - Add the property. Sonar returns a connect_url for its owner. It works once, for 30 days. - Send the owner to it. They sign in with Facebook and confirm on their phone in the WhatsApp Business app, which keeps working as before. - They come back to you. Sonar sends them to your return_url with property_id and phone_number_id added, and posts number.connected to your webhook. - Get the number's API key from the property, and use it for everything above. POST https://sonar.whats-hub.co.za/v1/partner/properties Authorization: Bearer YOUR_PARTNER_KEY Content-Type: application/json {"name": "Riverside Guest House", "return_url": "https://yourapp.example/whatsapp/connected"} {"id": 42, "name": "Riverside Guest House", "connect_url": "https://sonar.whats-hub.co.za/connect/3kQ9...", "connect_url_expires_at": "2026-11-25T09:00:00Z", "numbers": []} Once the owner has connected, GET /partner/properties/42 lists the number with its api_key. GET /partner/properties lists every property, and POST /partner/properties/42/connect-link makes a new link when one has expired or the owner needs to connect again. {"id": "a81f...", "type": "number.connected", "sent_at": "2026-10-26T09:14:03Z", "number": {"phone_number_id": "1234567890", "display_phone": "+27 82 123 4567", "name": "Riverside Guest House", "whatsapp_business_app": true}, "property": {"id": 42, "name": "Riverside Guest House"}} The webhook in your own Sonar business (see Webhooks) gets every property's updates, each with a property field, so one address and one secret cover them all. Billing. Each property is on its own plan (plan: small, plus, growth or scale), with that plan's included messages. From the day its number connects you pay Sonar the plan's normal price: the rest of your current billing month straight away, then each month as part of your own renewal, plus anything the property used past its plan. Moving it to a dearer plan charges the difference for the rest of the month. You bill your customer whatever you choose: they have no Sonar login and never see Sonar's prices. GET /partner/properties/{id}/usage gives a month's counts for your invoice, and GET /partner/billing what your next renewal covers. Meta charges each property's own card for its template messages, so the owner needs a payment method on their WhatsApp account in Meta. Your brand. The connect page leads with your name, and with PATCH /partner/settings it shows your own help address instead of Sonar's. A small "Powered by Sonar" line and Sonar's privacy notice stay, as the law asks. If one of your customers contacts Sonar's support, they're helped with WhatsApp and sent to you for anything about billing or their account. Running it. Each property's numbers carry problems, and number.problem tells your webhook when that changes, since your customers have no Sonar login to get our emails. Replace a leaked key with POST /partner/properties/{id}/numbers/{phone_number_id}/new-key, and remove a customer who leaves with DELETE /partner/properties/{id} (their data goes 24 hours later). You can add up to 100 properties; ask us for more. Email support@whats-hub.co.za to become a partner. Once we've switched it on, your account owner accepts the Partner Terms and makes the partner key under Settings → Connected apps → Partner API. It's shown once and never sent by email. Partners' owners and admins can read the partner API reference once signed in. --- Source: https://sonar.whats-hub.co.za/guides/whatsapp-number # Which number to use for WhatsApp Sonar sends and receives from a WhatsApp number in your business's name. If you don't have a spare one, here's how to get one today, and the two rules that decide whether a number will work. ## The two rules - It has to get a code once. When you connect, Meta sends a 6-digit code to the number by SMS or reads it out in a phone call. Any number that can receive one of those works: a cellphone, a landline or an office line. A short code or a number behind a "press 1" menu won't. - It can't still be on ordinary WhatsApp. A number is on either personal WhatsApp or WhatsApp for business, not both. The one exception is the WhatsApp Business app: you can keep using the app and connect the same number to Sonar. ## Your options Ways to get a number for WhatsApp, and when each suits | Number | Good for | What to know | A new prepaid SIM | Most businesses. Cheap, quick, and only used for WhatsApp. | A starter pack from MTN, Vodacom, Telkom or Cell C, RICA'd in the shop. It only needs to be in a phone to get the code. | Your landline or office number | The number customers already know. | Choose a phone call for the code, and make sure a person answers it rather than a menu. | Your WhatsApp Business app number | Keeping your chats and carrying on in the app. | Connect it with "Your WhatsApp Business app number". See Sonar with the WhatsApp Business app. | A number on personal WhatsApp | A cellphone that's really the business's number. | Move it to the WhatsApp Business app first, or delete the WhatsApp account on it. How. ## A prepaid SIM, step by step - Buy a starter pack from any network at a supermarket or phone shop. They cost very little. - RICA it at the counter. By law you need your ID and a proof of address. For a business number, register it to the person who looks after the business's WhatsApp. - Put it in any phone and note the number. It doesn't need WhatsApp installed. - In Sonar, go to WhatsApp numbers → + Add a number → A number that isn't on WhatsApp and press Start. Sign in with Facebook, add the number, and choose Text message for the code. - Type in the code from the SMS. Once Sonar says it's connected, the SIM can come out of the phone. Keep it somewhere safe. ## A landline or office number Follow the same steps, but choose Phone call for the code. Meta calls the number and reads the code out, so someone needs to be at that phone with a pen when you press it. A number that goes through a switchboard or a "press 1 for sales" menu won't reach a person in time, so use a direct line. Your customers can then WhatsApp the same number they already call. Calls still ring your landline as normal. ## A number on personal WhatsApp If the number is on ordinary WhatsApp on someone's phone, pick one of these first: - Keep the chats: install the free WhatsApp Business app on that phone and move the number into it (the app offers this when it starts). Then connect it to Sonar as "Your WhatsApp Business app number". The chats stay, and the app keeps working. - Start fresh: in WhatsApp, delete the account on that number under Settings → Account → Delete my account. This removes the chats from WhatsApp on that phone. Then connect it as a new number. If the phone belongs to someone personally, a separate SIM for the business is usually simpler. ## Keep the number - Keep a prepaid SIM active. Networks switch off prepaid numbers that go unused for a while, and can give them to someone else. Keep a little airtime on it and use it now and then, for example a short call or SMS every month or two. - Why it matters: Meta can ask for a new code, for example if the number is ever moved or set up again. Without the SIM, you can't get it. - Use a business number, not a person's. If someone leaves, the business keeps its WhatsApp number and every chat in Sonar. ## Get a one-time number from Sonar You can get a one-time South African mobile number from Sonar when you add a number: R119 once, with no monthly fee. No SIM or phone is needed, because Sonar receives Meta's code and shows it to you. It takes one code, once, so connect it within 20 minutes of getting it. After that it can't receive another code, calls or SMS, and it can't move to another provider. If WhatsApp ever asks to verify the number again, it can't be recovered, so for a number you'll want for years, a prepaid SIM in your business's name is the safer choice. --- Source: https://sonar.whats-hub.co.za/guides/what-meta-needs # What Meta needs from you before Sonar can send WhatsApp belongs to Meta, and Meta has admin of its own. Some of it only you can do, in your own Meta business. Here's each step, where to find it, and what happens if it's skipped. Checked 11 November 2026. Do these as soon as you connect your number, not on the day of your first big send. The links open Meta's own pages; if you have more than one business, check Meta has the right one picked at the top left. ## Does Meta need a card before we can send? Yes. Meta charges for WhatsApp messages itself, so your WhatsApp account needs a payment method. Sonar's plan is paid separately. Where: open Meta's payment methods (in WhatsApp Manager it's Payment settings), then Add payment method. You can also get there from Meta Business Suite: Billing & payments, WhatsApp Business accounts, then your account. If you skip it: Meta blocks templates and broadcasts (error 141006), and stops delivering your messages, replies included (error 131042). Sonar shows a red notice on your dashboard until a card is on. ## What business details does Meta want? Your business's legal name, its country and its website, exactly as they appear on your company documents. Where: open Business info in Meta Business Suite (Settings, then Business info). If you skip it: Meta can refuse changes and sends with error 131000, which only says "Something went wrong". Business verification also uses these details, so fill them in first. ## Do we need Meta business verification? Not to start. An unverified business can send within Meta's starting limits: up to 2 numbers, up to 250 templates per WhatsApp account, and messages to up to 250 different people a day who haven't messaged you first. What it unlocks: higher messaging limits, more numbers and templates, quicker template reviews, the display name review and, later, the blue tick. Where: Meta Business Suite: open Settings, then Security Center, then Start verification. Meta explains it in its own help page. What you need: your company registration (your CIPC certificate) and proof of address, like a utility bill or bank statement with the same name and address. A sole trader can usually use a bank statement or utility bill in the business name. Your website should show the same name. Meta then checks it's you by email, phone or a code on your website. How long: usually a few working days. If you skip it: you stay on the starting limits, and anything that needs a verified business is refused with error 141010. ## What is the display name review? The display name is the business name customers see on WhatsApp in place of your number. Meta reviews every one. The name must match your business, for example as it appears on your website, and your website should show the same name. Where: in Sonar, press Change name on the number under WhatsApp numbers, or in WhatsApp Manager: open Phone numbers. If it's pending or declined: customers who haven't saved your number see the number, not your name, and your messaging limit stays low until the name is approved. A number on the WhatsApp Business app is different: Meta doesn't approve a name for it, and you change the name in the app. ## How many numbers can we connect? A new business portfolio can have 2 WhatsApp numbers. When the business is verified, or reaches the 2,000 a day messaging limit, Meta raises it to 20 by itself. Sonar's plan has its own number allowance as well. If you're at the limit: Meta's window refuses a new number with error 2388386 ("delete an existing one or request additional numbers"). Only Meta can change it: verify your business (above), or delete a number you no longer use in WhatsApp Manager (open Phone numbers). For more than 20, ask Meta support. Need it today? Create a new business portfolio in Meta's window for the new number. It needs its own payment method in Meta. Meta doesn't move a number to another portfolio later: to bring it across you delete it and connect it again, which Meta only allows 30 days after its last paid message. So use this for a number you're happy to keep there. See error 2388386 and moving a number. ## How many people can we message a day? A new business starts at 250 different people in a rolling 24 hours, shared by all its numbers. It counts only messages that start a conversation, like a broadcast. Replies to people who messaged you don't count. How it rises: verifying your business, or reaching 2,000 different people with well-rated templates in 30 days, raises it to 2,000. Meta then raises it to 10,000, 100,000 and unlimited by itself as you keep sending messages people want. People blocking or reporting you can bring it down again. Where to see it: on each number under WhatsApp numbers in Sonar. ## When do we need a template? For 24 hours after a customer messages you, you can reply with anything. To start a chat, or once those 24 hours are up, WhatsApp only allows an approved template. Meta reviews each one, usually within minutes and at most 24 hours. Marketing templates are offers, news and invites. They need people who agreed to hear from you. Utility templates are updates about something the customer did or asked for, like an order or a booking. Meta charges each kind at its own rate (see pricing). Sending updates from your till, store or booking app? See order and booking updates. ## Do we need customers' permission? For marketing, yes. South African law (POPIA) and WhatsApp's own rules both ask for it, and messages to people who didn't ask for them are a common reason Meta locks an account. See POPIA and WhatsApp marketing. ## What if Meta locks or restricts our account? Only Meta can lift it. Sonar can't, and we can't do it for you. Messages sent while it's in place fail, and Meta doesn't charge for messages that fail. Some lift by themselves within a day, others stay until you ask Meta to review them. Sonar emails your owners when it happens. - Open WhatsApp Manager. Meta shows the restriction there, its reason and, if there is one, the date it ends. If you think it's a mistake, request a review there. - Hold off sending, from Sonar and from the WhatsApp Business app, until it's lifted: the messages will only fail. - Once it's lifted, open the broadcast in Sonar and press Re-send failed. ## How do we get the official blue tick? Meta's blue tick shows customers the number is the business's official one. You can ask for it once all of these are true: - the number has been on the WhatsApp Business Platform for at least 30 days - your business is verified - the display name is approved - two-step verification is on for the number (Sonar turns it on when it connects a number that isn't on the WhatsApp Business app) Where: open Phone numbers in WhatsApp Manager, then your number. Meta decides, and can say no. --- Source: https://sonar.whats-hub.co.za/guides/ai-agent # AI Agent and Copilot: a WhatsApp chatbot in your voice Your AI Agent replies to WhatsApp messages for you, in your voice, day and night. Copilot drafts the replies for the chats you'd rather handle yourself, and every change you make to its drafts teaches the agent. About 15 minutes to set up. The agent stays off until you switch it on. Plans and prices: Sonar AI Agent. ## How it works Example WhatsApp conversation: a customer's question and the reply Hi, do you do birthday cakes? Need one for Saturday Hi Lerato! Yes we do, from R350 for a 20cm sponge. Collection is on Saturdays from 8am. What flavour would you like? - AI Agent on: it sends a reply like this straight away, to everyone who messages, except people you exclude and VIPs. - AI Agent off, an excluded person, or a VIP: the same reply waits in Copilot for you to check, change and send. Your customer only ever sees what you send. - Either way, it follows your bot instructions, and it hands anything you've listed under HAND TO A PERSON to you instead of answering it. - While it writes: when the AI Agent is about to answer, your customer's message shows as read and they see you're typing. ## Before you start - Your plan. The AI Agent and Copilot come with the Plus plan and every plan above it, with a monthly number of Standard replies included (see pricing). Past them you choose whether AI replies pause or carry on at a small charge per reply. To try it, Starter includes 100 AI replies a month, which the AI Agent can send by itself or Copilot can draft, and the free trial a few as drafts in Copilot. - The 24-hour window. WhatsApp lets you send a normal typed reply only within 24 hours of the person's last message. The agent never replies after that, and each Copilot draft shows how long is left. After that, you can only message them with a template: a message WhatsApp has approved in advance, which you set up under Templates. - What it answers. Text messages and photos from people who haven't opted out. Voice notes, videos and documents on their own don't get a reply. Opt-out words like STOP are handled for you, not answered. ## Step by step ### 1. Give it instructions Go to AI Agent and press Bot instructions. Every reply, from the agent or Copilot, follows what you write here, so it's the most important step. Three parts work best: - VOICE: how you write. Warm or formal, how you greet people, how long your replies are, whether you use emoji. - FACTS: what's true about your business that customers ask about. Prices, opening hours, delivery areas, links. It only states facts that are here, so put the important ones in. - HAND TO A PERSON: topics it should leave to you, like refunds, complaints or anything about money owed. For these it says someone will come back to them, and leaves the answer to you. For example: VOICE Warm and short, one or two lines. Use their first name. At most one emoji. FACTS Birthday cakes from R350 for a 20cm sponge. Order 3 days ahead. Open 8am to 5pm, Monday to Saturday. Delivery in Cape Town only. Order online: https://example.co.za/order HAND TO A PERSON Refunds, complaints, and wedding or corporate orders. Press Save. You can change the instructions any time, and the next reply uses the new version. Already been answering customers on WhatsApp? Press Fill this in from my conversations instead. Sonar reads the last 100 replies your team typed, what each one answered, and what it has learned so far, then writes instructions in the same three parts. The suggestion waits until you choose Use these, Edit first or Discard. Check the FACTS before you use it: it can only repeat what your replies said, and prices go out of date. It needs at least 10 of your own replies, it's free, and you can run it three times a day. ### 2. Train it with Copilot While the agent is off, every reply waits in Copilot, under the switch. For each one: - Send it as it is, or change the words first and then Send. - Rewrite it with one tap: Shorter, Friendlier or More formal. Or press Tell it what to change and type something like "mention we deliver on Saturdays". A new version replaces it within a minute or two. - Open chat shows the whole conversation if you need more context. - Skip it if no reply is needed. If you skip one by mistake, press Undo, or bring it back from Skipped at the bottom of the page. Every change you make, and every rewrite you ask for, is kept as a note the agent learns from. You can read them under Bot instructions → What it has learned from your changes. The thumbs up and down are optional and only record how good a draft was. For something every reply should know, like a new price, put it in your instructions rather than correcting reply after reply. A few days of checking Copilot's drafts is the best way to see whether the agent is ready. When you're sending most of them without changes, it is. ### 3. Switch the AI Agent on At the top of AI Agent, press Turn on. From then on it replies to everyone who messages, straight away, except people you exclude and VIPs. Press Turn off at any time and every reply goes back to waiting in Copilot. ### 4. Exclude people, or mark them as VIPs Open someone's chat in the Inbox: - Exclude from AI Agent: the agent stops replying to them, and Copilot drafts their replies for you instead, on your account's normal reply quality. Good for regulars you like to answer yourself. - Mark as VIP: for your most important people. The agent never replies to them, and Copilot drafts their replies on Extreme, our strongest model, for you to check and send. Extreme is roughly R0.50 to R0.80 a reply (about R0.65 on average), from your account balance. ## Good to know ### Reply quality At the top of the AI Agent page, Reply quality sets which model writes your replies. Standard (Claude Haiku) is included with your plan. Advanced (Claude Sonnet) follows your voice more closely and handles trickier questions better, for roughly R0.25 to R0.40 a reply (about R0.33 on average). VIP chats always use Extreme (Claude Opus). Try Standard first, and switch whenever you like. ### Photos When someone sends a photo, with or without a message, Sonar reads it and gives the AI a short description, including any text that matters: an amount, a reference or order number, a date or a product name. The reply answers with that in mind. In Copilot the photo shows in their messages as [Photo: what it shows], so you can see what the AI understood. A reply to a photo can take a little longer while the photo downloads, usually under two minutes. Reading photos costs nothing extra. The AI reads what's in the photo, but it can't check it against your records. A screenshot of a payment isn't proof the money arrived, so it won't confirm a payment. If people often send proof of payment, put "confirming payments" under HAND TO A PERSON and check those yourself. ### Different products, branches or developments If you sell more than one thing on the same number, keep your bot instructions for what's true for everyone, like your voice and opening hours. Then, under Instructions by tag in Bot instructions, add a set for each group: pick the contact tag (for example "Riverside"), and write the facts for that group only. People with that tag get your general instructions plus that group's, and nobody else ever sees them, so one development's prices never end up in another's replies. Someone with two of these tags gets a suggestion in Copilot instead of an automatic reply, so you can answer them yourself. People don't need the tag beforehand. Under Contacts → Tag people from what they reply, add the tag and the words to look for, like "Riverside". When someone's message contains one, they're tagged straight away and that very reply uses Riverside's instructions. Tick Let the AI decide and the agent also tags people who say it in other words, like a typo or "the one by the river". It works for anything people tell you, such as a budget ("Budget R2M") or what they're after, and the tags stay on the contact for your segments. If each product or development has its own WhatsApp number, skip the words: under WhatsApp numbers, give the number a tag ("Tag everyone who messages this number"). Everyone who messages it gets that tag, including people who already have, so that number's instructions apply from the first reply. ### Keep it learning Every few weeks, press Fill this in from my conversations again: it folds what it has learned into your instructions and clears those notes, so nothing gets lost. ## Try it and teach it before you switch it on On the AI Agent page, press Try it. You get a chat where you play the customer and the bot answers exactly as it would on WhatsApp, using your instructions, what it has learned and your corrections. Nothing is sent and no contact is created. Standard replies are free here. - Write your instructions, including one fact you can check, like your opening hours. - In Try it, type what a customer would: "What time do you close on Saturday?" Check the reply uses your hours and your voice. - Ask about something under HAND TO A PERSON, like a refund. It should say someone will come back to you, not answer it. - If you use Instructions by tag, pick a group under Reply as if I'm tagged and check it only uses that group's facts. - Happy? Turn the agent on, message your number from your phone, and check the reply arrives without you pressing anything. ### Teach it Not happy with an answer? Tick Teach it and tell the bot what to change, in your own words: "be less formal", "we deliver on Saturdays now too", "never promise a delivery date". It replies with one line on what it understood, and a suggested update to your instructions appears under Bot instructions. Press Use these, Edit first or Discard. Nothing changes until you accept it. Then try the chat again and see the difference. Photos can't be tested here yet. To check those, send one to your number from your phone and look at the draft in Copilot. ## What it costs The AI Agent and Copilot come with the Plus plan and every plan above it. What each reply quality costs | Reply quality | Written by | Cost | Standard | Claude Haiku | Included with your plan | Advanced | Claude Sonnet | roughly R0.25 to R0.40 a reply (about R0.33 on average) | Extreme, for VIP chats | Claude Opus | roughly R0.50 to R0.80 a reply (about R0.65 on average) Advanced and Extreme replies are charged from your account balance, whether you send them or not. The cost depends on how long the conversation is. Each one that's sent also uses one of your plan's included messages. Filling in your instructions from your conversations is free. The replies you send are normal WhatsApp replies: Meta gives each number 1,000 free replies a month. See WhatsApp pricing in South Africa for the full breakdown. --- Source: https://sonar.whats-hub.co.za/guides/popia-whatsapp-marketing # POPIA and WhatsApp marketing What South Africa's Protection of Personal Information Act asks of businesses that market on WhatsApp, in plain English, with the sections to check. Checked against the Act, the Regulations as amended in April 2025 and the Information Regulator's guidance on 6 October 2026. A summary, not legal advice. ## The short version - You need consent to send marketing on WhatsApp, unless the person is already your customer and you're marketing similar products (section 69(1)). - You may ask for that consent once, and only if the person hasn't already said no (section 69(2)). - Every marketing message must say who it's from and how to make the messages stop (section 69(4)). - Stop as soon as someone opts out, and keep a record of who agreed and who said no. - A bought or scraped list gives you no consent at all. - Meta's rules sit on top, and for WhatsApp they're stricter than POPIA in places. ## Does POPIA cover WhatsApp? Yes. Section 69 covers direct marketing "by means of any form of electronic communication", and the Act defines that as any text, voice, sound or image message sent over a network. A WhatsApp message fits. Since 17 April 2025 the Regulations also name WhatsApp as a channel for asking people for consent. There's no court ruling about WhatsApp specifically, but no serious reading leaves it out. It covers more than many people expect: asking for donations counts as direct marketing, so charities are included, and the Act protects companies as well as individuals, so business-to-business marketing is covered too. ## What counts as consent The Act defines consent as a "voluntary, specific and informed expression of will". In practice: - The person has to act. Silence isn't consent, and the April 2025 Regulations say plainly that "opt-out shall not constitute consent". Don't pre-tick the box. - It must be specific to you. Agreeing to hear from another company, or from a list seller, doesn't count. - It must fit the channel. The Regulator's guidance says the person chooses how they're contacted. Consent to emails isn't consent to WhatsApp messages. - You have to be able to prove it (section 11(2)(a)): who agreed, when, and how. - People can withdraw it at any time (section 11(2)(b)). Messages sent before they did were still lawful. ## Existing customers You can market to your own customers without separate consent, but only if all three of these are true (section 69(3)): - You got their contact details when they bought something from you. - You're marketing your own similar products or services. The Regulator's example: a clothing shop can market shoes to its customers, but not funeral cover. - You gave them a free, simple way to say no when you collected their details, and you give it again in every message. Someone who only messaged you with a question isn't a customer under this section. And on WhatsApp, Meta asks for an opt-in even from customers (see Meta's rules). ## Asking for consent: the one-message rule If someone isn't your customer and hasn't agreed, you may approach them once, only to ask for consent, and only if they haven't said no before. That message must ask; it can't market. The Regulations used to require Form 4. Since April 2025 a request can be "substantially similar to Form 4" or made in any convenient way, including on WhatsApp. A good request still carries what Form 4 asks for: - your business's name and contact details, - what you'd like to market to them, - the channel you'd use, and - a clear yes and a clear no. If they say no, or don't answer, that's the end of it. ## What every marketing message must include Section 69(4) requires two things in every direct marketing message: who it's from, and contact details where the person can ask you to stop. On WhatsApp, your business name on the number plus a line such as "Reply STOP to unsubscribe" covers both, as long as a STOP reply actually stops the messages. ## Opt-outs - Act on them straight away. POPIA sets no number of days. In its enforcement notice against FT Rams Consulting, the Regulator said the business had to stop immediately. - Keep a list of people who said no, so they're never asked again. The Regulator's guidance expects you to keep one. - Honour opt-outs however they arrive. The Regulations accept objections by WhatsApp, and Meta requires you to respect opt-outs made on or off WhatsApp. - The national opt-out registry is coming. Consumer Protection Act regulations amended on 15 April 2026 require direct marketers to register with the National Consumer Commission's registry and check their lists against it every month. The practical rules were still being finalised in October 2026. Someone who isn't on the registry still hasn't given you consent. ## Bought, rented and scraped lists Don't market to them. The people on a bought list agreed, if at all, to someone else, and they aren't your customers. A number being public doesn't change that: it may be lawful to collect, but marketing to it still needs consent. Sharing or selling a list is a new use of that information, which needs its own lawful basis and telling the people on it. WhatsApp closes the door completely: Meta only lets you message people who gave you their number, so you can't even send the one consent request to a bought list on WhatsApp. ## What happens if you get it wrong Breaking section 69 isn't a crime in itself. It's an "interference" with personal information that the Regulator can investigate after a complaint, and then order you to fix with an enforcement notice. Ignoring that notice is an offence, which can mean a fine or up to 10 years in prison, or an administrative fine of up to R10 million. The people you messaged can also sue you for damages. It does happen. In February 2024 the Regulator issued an enforcement notice against FT Rams Consulting over marketing emails sent without consent. The unsubscribe link in those emails didn't make them lawful. ## Meta's rules on top WhatsApp's Business Messaging Policy and Meta's opt-in guidance apply whatever POPIA allows: - You may only message people who gave you their number and opted in to hear from you. - The opt-in should make clear it's for messages from your business, and name it. - That applies to existing customers too, so the customer route above isn't enough on its own for WhatsApp. - You must respect opt-out requests, wherever they're made. Breaking these can get your number's messaging limits cut or the number blocked, which is often the faster consequence. ## How Sonar handles it - Every contact has a consent state: Can message, One message allowed, Needs opt-in, or Opted out. - The one-message rule is built in. Someone with no consent on record can get one message, which you should use to ask. After that they need an opt-in before any more marketing reaches them. - Broadcasts skip anyone who can't be messaged, so a list with a few opted-out people in it is safe to send to. - STOP and START work automatically, along with words like "unsubscribe" and "opt out". You can change the list. - One number per product or development? You can set a number so STOP there stops only that number, and tells them they can stop everything from your business by replying STOP ALL (or offers a button). Your other numbers can still message them, and STOP ALL, STOPALL, UNSUBSCRIBE ALL, OPT OUT ALL, OPTOUT ALL, REMOVE ALL or STOP EVERYTHING on any number stops everything. - A consent record you can show: every opt-in and opt-out is logged with when it happened and how (a keyword, an import, the API or a team member). - Imported contacts start without consent, at One message allowed, until they opt in. When you add someone yourself or upload an event guest list, you can record that they agreed. - Delete or anonymise a contact's data when they ask. ## Common myths - "POPIA requires double opt-in." It doesn't. One clear, recorded yes is enough. - "You must use Form 4 exactly." Not since April 2025. - "An unsubscribe link makes a cold message legal." No. The FT Rams notice says so, and opting out isn't consent. - "POPIA only protects consumers." Companies are protected too. - "ECTA section 45 sets the opt-out rules." It was repealed in 2021. ## Sources - Protection of Personal Information Act 4 of 2013 (sections 1, 11, 69, 73, 99, 107 and 109) - POPIA Regulations as amended, in force from 17 April 2025 (Regulation 6) - Information Regulator: Guidance Note on Direct Marketing - Information Regulator: enforcement notice on direct marketing (FT Rams Consulting), February 2024 - Consumer Protection Act 68 of 2008 (section 11) - WhatsApp Business Messaging Policy and Meta: getting opt-in for WhatsApp This guide summarises the law as it stood on 6 October 2026. It isn't legal advice. For a specific campaign, check with a lawyer. Spotted something out of date? Email support@whats-hub.co.za. ## Market on WhatsApp with consent built in Start free trial See Sonar's compliance tools --- Source: https://sonar.whats-hub.co.za/guides/order-and-booking-updates # WhatsApp updates from your till, booking app or store Tell customers their order is ready, their booking is confirmed or their delivery is on its way, the moment it happens. Your other system tells Sonar, and Sonar sends the WhatsApp. No developer needed for most systems. ## How it works Sonar gives you a private web address for each kind of update, for example one for order ready and one for out for delivery. You paste the address into your other system, wherever it lets you send order or booking changes to a web address (often called a webhook). Each time that happens, your system tells Sonar, and Sonar sends the customer your approved WhatsApp template with their details filled in. - A laundry or dry cleaner: "Hi Thandi, your order 1042 is ready to collect." - A salon, clinic or studio: "Hi Sam, you're booked for Friday at 10:00." - A shop that delivers: "Hi Lee, your order is out for delivery today." The message comes from your own WhatsApp number, so when customers reply, the chat lands in your Sonar inbox like any other. ## What you need What you need before you set up updates | Item | Why | A WhatsApp number in Sonar | The updates are sent from it. Any plan, including the free trial. | An approved update template | WhatsApp only lets businesses start a conversation with a template that Meta has approved. Updates use the Update (utility) category. See Write the update template. | A system that can call a web address | Look in your till, booking app or online store's settings for webhooks, notifications or integrations. Some systems only offer webhooks on certain plans. No webhooks at all? Tools such as Zapier or Make can watch your system and call the address for you. | Owner or admin access | Updates are set up under Settings → Connected apps, which owners and admins can open. ## Write the update template In Sonar, go to Templates and create one with the category Update. Put a numbered blank wherever a detail goes, for example: Hi {{1}}, your order {{2}} is ready to collect from {{3}}. Reply here if you have any questions. - Keep it about the order or booking. Meta moves templates with offers or promotions into marketing, and Sonar only sends update templates from your other systems. Marketing goes out in broadcasts, where Sonar checks consent first. - One template per kind of update reads better than one that tries to cover everything. - Meta reviews every template: usually within minutes for a verified business, and within a day otherwise. If it moves yours to marketing later, Sonar stops sending it and tells you why on the address. ## Set it up in Sonar - Go to Settings → Connected apps → Updates from your other systems. - Name the address, for example Order ready, and press Make an address. - Copy the address into your other system, on the order or booking change it should send. Keep it private: anyone who has it can send your customers this update. - In your other system, make a test order or booking, using your own phone number. Sonar keeps that first call as an example and doesn't send anything yet. - Back in Sonar, press Check again. The fields your system sent appear, with the values from your test. - Choose the update template, the field with the customer's WhatsApp number, and the field that fills each blank: {{1}}, {{2}} and so on. Press Save. - Make another test. The WhatsApp should arrive on your phone, and the address shows "Sent". Your system sends something different later, such as a new field name? The address always shows the last call it received, so you can pick the new field and save again. To pause updates, press Switch off; to stop them for good, Delete the address. ## Phone numbers Sonar reads numbers the way most systems store them: +27 82 123 4567, 0027821234567 or a local 082 123 4567. A local number is taken to be in the same country as the WhatsApp number sending the update. Spaces, brackets and dashes don't matter. ## When an update isn't sent Each address shows its last call and what happened. An update isn't sent when: - The customer opted out of your WhatsApp messages, for example by replying STOP. - A field was empty, so the template would have had a blank in it. - There was no usable phone number in the field you chose. - The template isn't an update any more, because Meta moved it to marketing. - The address is switched off, or your plan's messages and balance have run out. ## What it costs Each update is one message: it counts towards the messages in your Sonar plan, and Meta charges its update (utility) rate, paid to Meta from your card. See WhatsApp pricing in South Africa for the rates and a calculator. ## For your developer - Send a POST with a JSON body or a form, or a GET with the details in the address, for example ?phone=0821234567&name=Thandi&order=1042. Nested JSON works: the fields show up as customer.phone, items.0.name and so on. - Sonar always replies 200 with {"ok": true, "status": "sent", "detail": "..."}. status is sent, kept (kept as the example, not set up yet), skipped (they opted out), not_sent (the detail says why) or off. Because it's always a 200, your system won't retry a message that shouldn't go. - Building something bigger, or want delivery updates and replies sent back to your system? See Settings → Connected apps → Your own system (webhook) and the API docs under Settings → Advanced. --- Source: https://sonar.whats-hub.co.za/guides/import-contacts # Import your contacts Bring your customer list in from a spreadsheet, keep your categories as tags, and turn them into segments you can message. About 10 minutes for your first list. ## Get your file ready Save your spreadsheet as a CSV file (in Excel or Google Sheets: File → Save as / Download → CSV). Keep the header row, with one column for each of these: Columns Sonar reads from your file | Column | What goes in it | Name | The person’s name, as you’d greet them. | Phone or Mobile | Their WhatsApp number with the country code and no leading 0, for example 27821234567. Spaces, brackets and a + are fine. | Tags, Category or Segment | Optional. Groups like “Regulars” or “Lapsed”. Each value becomes a tag. Put several in one cell separated by a semicolon: VIP; Gold. | Your custom fields | Optional. Set up fields like City or Birthday under Contacts → Custom fields first, then name a column the same and it fills in. For example: Name,Mobile,Segment Thandi,27821234567,Regulars Johan,27839876543,Lapsed Aisha,27845551234,"VIP; New customer" Rows without a valid number are skipped and listed, so you can fix them. The same number twice is only added once. ## Import it - Go to Contacts and press Import. - Choose your CSV under upload CSV / .txt, or paste the rows straight in. - Press Import. Sonar shows how many were added, updated and tagged, and any rows it skipped. Check a few contacts: open one and you’ll see its tags. Free trials can hold 50 contacts, so bring a full list in once you’re on a plan. ## Turn tags into segments A segment is a group you can send a broadcast to, and it keeps itself up to date. To make one from a tag: - Go to Segments and give the segment a name, like “Lapsed customers”. - Press + Add rule, choose Tag, then has tag, and type the tag exactly as it is in your file. - Press Create segment. Anyone given that tag later, by an import, a flow or a button they tap, joins the segment by themselves. Mix rules for tighter groups, like “has tag Lapsed” and “City is Johannesburg”. ## Consent before you send WhatsApp and South African law (POPIA) both expect people to have agreed to marketing from you. Imported contacts start as One message allowed: Sonar lets each of them get one message, which you should use to ask whether they’d like your offers on WhatsApp. Everyone who says yes can then get your campaigns. If you already have their agreement, say from a sign-up form that mentioned WhatsApp, tick Everyone on this list agreed to get WhatsApp marketing from us when you import. For people already in Sonar, select them in Contacts and press Mark as opted in. Only do this when you really have it: Sonar keeps a record of when and how each person agreed. More in POPIA and WhatsApp marketing. ## Updating your list later Import the same file again whenever your list changes. New people are added. People already in Sonar get their name and custom fields updated, and any new tags added. Tags they already have stay, so nothing you’ve set up in Sonar is lost. To take a tag off, select the contacts and press Remove tag. --- Source: https://sonar.whats-hub.co.za/guides/connect-a-clients-number # Connect a client's WhatsApp number For agencies, and anyone running WhatsApp for a client, a brand or a development. What your client needs before you connect their number, so it works from the first message. Send this page to your client before you start. ## Who owns what - Your client owns everything. The Sonar account is in their name, with their email as the owner. The WhatsApp account sits in their own Meta business, and the customers are theirs. - You get access, not ownership. Once they've created the Sonar account, they invite you under Settings → Team as an admin. Admins can do everything except delete the account. - If you part ways, they remove you from the team and carry on. Nothing needs moving. ## What your client needs What a client needs before their number is connected | Item | Why | A Meta business portfolio | Free, at business.facebook.com. The WhatsApp account is created in it. Someone with admin access to it signs in with Facebook when the number is connected: your client, or you if they've made you an admin of their portfolio. | The number | Either their WhatsApp Business app number, which keeps working on their phone (see Sonar with the WhatsApp Business app), or a number that isn't on WhatsApp yet and can receive an SMS or call for a code. | A card on the WhatsApp account in Meta | WhatsApp's own per-message charges are paid to Meta directly (about R0.64 for a marketing message and nothing for replies until you pass 1,000 a month). Without a card, Meta stops delivering messages, replies first. Sonar shows a red notice if it's missing. | A business name that matches | The name customers see on WhatsApp has to match the business, for example as it appears on its website. Meta reviews it, usually within a day or two. | Business verification (to grow) | Not needed to start. Until Meta verifies the business, it can start conversations with up to 250 people a day across all its numbers. Verifying, with company registration documents and a website that matches, lifts that. | Consent for marketing | Customers need to have agreed to WhatsApp marketing from your client. See POPIA and WhatsApp marketing. ## One WhatsApp account per brand If your client runs several brands, products or developments, give each its own WhatsApp account in their Meta business, with its own number. Meta's warnings and blocks for spam land on the whole WhatsApp account, so keeping them separate means a problem with one brand can't stop the others. The daily limit on new conversations is still shared across the whole business until it's verified. In Sonar, give each number its own tag under WhatsApp numbers, and the bot uses that brand's own instructions for everyone who messages it. See AI Agent and Copilot. ## If they used another provider before If your client's WhatsApp ran on another platform before, check before you connect. In their Meta business, go to Settings → Partners. If another provider is listed, open the WhatsApp account under Settings → WhatsApp accounts and look at Conversation routing: it decides which provider gets customers' replies. If it points at the old provider, messages can send from Sonar while replies never arrive. Simplest fix: connect the number in its own new WhatsApp account through Sonar, so routing and billing are Sonar's alone. Email us if you're not sure what you're looking at, and we'll check it with you. ## Step by step - Your client signs up for Sonar with their own email, in the business's name. - They invite you under Settings → Team as an admin. - Go to WhatsApp numbers → + Add a number and connect the number, signing in with the Facebook account that's an admin of their Meta business. - When Sonar asks, send the number a WhatsApp from your phone. Sonar shows it arriving, so you know replies will reach you. - Add a card to the WhatsApp account in Meta. The checklist on the dashboard links straight to the right page and ticks itself once it's done. - Import the customer list, with their categories as tags, and record consent. See Import your contacts. - Write your first template and send a test to yourself before the whole list. ## Checks after you connect - No red notices at the top of the dashboard. A red one means messages can't arrive or can't be paid for, and says what to do. - A test message arrives in the Inbox, using Test incoming messages on the number. - The business name shows as approved on the number. - The bot is ready if you use it: try it from the AI Agent page before switching it on. --- Source: https://sonar.whats-hub.co.za/guides/event-invites # Event invites with one-tap RSVPs Upload your guest list, send a WhatsApp invite with two buttons, and watch the answers land on one list. Follow-ups only go to people who haven't answered. About 15 minutes to set up the first time. After that, a new event takes a few minutes. Want the overview first? See WhatsApp RSVPs with Sonar. ## What your guests see Example WhatsApp invite with two answer buttons, and the reply a guest gets You're invited Hi Thandi, you are invited to our winter tasting evening on Friday 20 June. Can you make it? Tap a button below to let us know. Reply STOP to unsubscribe I'm inCan't make it You're going to our winter tasting evening! 🎉 Your ticket, and the option to cancel: sonar.whats-hub.co.za/e/… One tap records their answer, and they get a reply with their own link: their ticket if they're going, or a "changed your mind?" link if not. If they change their mind later, the latest answer is the one that counts. ## Before you start - Your plan. The free trial covers 50 contacts and 250 messages, with replies you type free, enough for a first test with your own team. For real events, the Starter plan (R349 a month, up to 10,000 messages) covers most organisers; see pricing. - Is your business verified with Meta? If your WhatsApp number can start chats with only 250 people a day (shown under WhatsApp numbers), it isn't yet. Until it is, new message templates can take up to 24 hours to approve, so do step 1 a day before you want to send. The Verify your business notice on your dashboard has the steps. - The name people see. Check under WhatsApp numbers that your number shows your business name, not a person's. If it doesn't, press Change name. Some names are accepted straight away; others take Meta a day or two to review. ## Step by step ### 1. Create your invite template (once) Go to Templates, open Start from an example and pick Event invite. It comes with two quick-reply buttons, "I'm in" and "Can't make it". Change the wording if you like, for example "No, refund my points" (up to 25 characters). Press Send to WhatsApp for approval. You can reuse this template for every event. ### 2. Create the event Go to Events, fill in New event (name, date and time, place, and optionally a capacity and an RSVP deadline) and press Create event. Each event keeps its own guest list, so you can run several at once. ### 3. Add your guest list Open the event. Under Invite list, choose your CSV file or paste the list. Each row needs a name and a WhatsApp number; an email is optional but helps match people. Columns can be in any order and a header row is fine: First name,Last name,Email,Phone Thandi,Mokoena,thandi@example.com,082 123 4567 Sipho,Dlamini,sipho@example.com,+27 82 765 4321 Exported from Excel? Numbers that lost their leading 0 are fixed automatically, and semicolon-separated files work too. If a number shows up like 2.78E+10, Excel has shortened it: format the phone column as Text and export again. Rows Sonar can't read are listed with the reason, so nothing is skipped silently. Tick These people have agreed to get WhatsApp messages from us if they have (you'll need it to follow up), then press Add to invite list. Everyone appears as No answer. Anyone already on the list, matched by number or email, keeps their answer, so uploading an updated list is safe. Invite only switches on when you upload your first guest list. Only people on the list can then RSVP: the event page takes no sign-ups and has no share button, and if an invite is forwarded, the new person's tap isn't counted. They're told the invite was for someone else, and they show on your list as Not invited (tried to join) so you can let them in if you like. Turn it off under Edit for an open event. ### 4. Send the invite On the event, press Send to the … who haven't answered. Pick your invite template, choose which button means they're going, fill in the event details and press Send broadcast. Any other button counts as not going. To follow up without thinking about it, pick a time under Follow up automatically before you send (see step 6). Tip: type {{rsvp_link}} in a template value to give each person their own RSVP link in the message. ### 5. Watch the answers The event's list updates as people tap: Going, Not going, No answer, and Waitlist if you set a capacity and it fills up. When someone who was going says no, their place goes to the first person on the waitlist. ### 6. Follow up Choose Follow up automatically when you send the invite: 1, 2 or 3 days later, a day before RSVPs close, or a day before the event. At that time Sonar sends the invite again, only to people who still haven't answered. It shows under Your broadcasts, where you can cancel it. You can also press Send to the … who haven't answered again yourself any time. ### 7. Download the list Press Download CSV on the event any time. It shows each person's answer (going, not going, no answer or cancelled) and when it last changed, so you can see who to expect, or whose points to refund. ### 8. Send answers to your own system (optional) Under Settings → Connected apps → Send RSVP updates to your own system, add a web address and Sonar sends every answer and change there as it happens, signed so your system can check it came from Sonar. Use it to refund points automatically when someone can't make it. Press Send a test to check your end, and open What Sonar sends for the details your developer needs. ## Test it in five minutes - Create a test event and put yourself and one or two colleagues on its invite list. - Send the invite. One person taps I'm in, one taps Can't make it, and one doesn't answer. - Each person who tapped gets a reply with their link. Open it and change your answer to check that the list updates. - Send the follow-up: only the person who didn't answer should get it. - Download the CSV and check everyone's answer. ## What it costs Each invite is a marketing message: no Sonar fee within your plan's messages, plus WhatsApp's own rate, about R0.64 in South Africa, which Meta bills to your WhatsApp account. Your guests' answers cost nothing, and the replies Sonar sends back with each person's link fall within WhatsApp's 1,000 free replies a month per number. See WhatsApp pricing in South Africa for the full breakdown. --- Source: https://sonar.whats-hub.co.za/guides/whatsapp-api-providers-south-africa # WhatsApp Business API providers in South Africa, compared Every provider sends through Meta's official WhatsApp Business Platform, and Meta charges the same per message whichever you pick. What differs is what each adds on top: a monthly plan, a markup on every message, the currency you're billed in, and the help you get. We make Sonar, so read this knowing that. Every figure comes from each provider's own pricing page, linked below, checked 17 October 2026. ## The providers side by side Two example months, each with the cheapest plan that covers it, plus Meta's own charges, for messages to South African numbers. The lowest total in each column is highlighted. WhatsApp API providers: plan, markup, billing currency and two example months | Provider | Cheapest plan with broadcasts | Added per marketing message | Billed in | Small club or shop1,000 marketing, 200 updates | Growing retailer4,000 marketing, 1,000 updates | Sonar (us) | Starter, R349 a month | Nothing within your plan | Rand | R1,024 | R3,082 | 360dialog | Premium, $119 a month (≈ R2,019*) | Nothing | US dollars | ≈ R2,694* | ≈ R4,751* | AiSensy | Basic, $45 a month (≈ R763*) | ≈ R0.12* | US dollars | ≈ R1,564* | ≈ R4,003* | Gallabox | Basic (billed quarterly), $150 a month (≈ R2,545*) | ≈ R0.10* | US dollars | ≈ R3,321* | ≈ R5,688* | Infobip | None: you pay per message | ≈ R0.22* | US dollars | ≈ R900* | ≈ R3,643* | respond.io | Growth, $199 a month (≈ R3,376*) | Nothing | US dollars | ≈ R4,051* | ≈ R7,805* | Twilio | None: you pay per message. It's an API: you build or buy the screens to send and chat | ≈ R0.08* | US dollars | ≈ R777* | ≈ R3,157* | Wati | Growth, $69 a month (≈ R1,170*) | ≈ R0.39* | US dollars | ≈ R2,256* | ≈ R5,573* * Converted from US dollars at today's rate. Monthly prices; Gallabox bills quarterly or yearly. Click a provider for the full comparison, including where it's the better choice. Also used in South Africa but without published prices: Clickatell (its WhatsApp packages are priced by its sales team). And the free WhatsApp Business app, which works for chatting from a phone but has limits on broadcasts and team access: see WhatsApp Business app vs Sonar. ## How to choose - Count the whole month, not the plan price. A cheap plan with a markup on every message can cost more than a dearer plan with messages included, once you send a few thousand. - Check the currency. Plans billed in US dollars move with the rand, and your bank may add a foreign transaction fee. Meta's own charges are billed in US dollars whichever provider you choose. - Check who answers when something goes wrong, and in which time zone. Connecting a number, template rejections and Meta's billing are where most businesses need a hand. - Check consent tools. POPIA expects you to prove each person agreed to marketing. Opt-in buttons, automatic STOP handling and a consent record save you building that yourself. See POPIA and WhatsApp marketing. - Check what's included, such as team members, numbers, AI replies and integrations, rather than add-ons you'll need later. - Moving is possible. Your number and contacts aren't locked to a provider. If you switch to Sonar, we'll move you over for free. ## What Meta charges Meta charges per message, by type, for the country of the person you message: about R0.64 for a marketing message and nothing for replies until you pass 1,000 a month. Messages customers send you are free. The full rate card and a calculator are on WhatsApp pricing in South Africa. ## Questions **Do I need a provider at all?** To send broadcasts to customers who haven't saved your number, use templates, share an inbox with a team or automate replies, yes: you need the WhatsApp Business Platform, through a provider or by building on Meta's API yourself. For chatting one to one from a phone, the free WhatsApp Business app may be enough. **Is one provider "more official" than another?** Every provider here uses Meta's official WhatsApp Business Platform, so messages are delivered the same way. Avoid tools that send through a normal WhatsApp account or WhatsApp Web: Meta bans numbers that do. **Can I keep my number if I change provider?** Yes. A number can be disconnected from one provider and connected to another. Templates are submitted again for the new account, and past chats stay in the old tool. ## Sources - AiSensy pricing in US dollars - AiSensy country rates from 1 October 2026 - Wati pricing - Wati rate card for Growth and Pro, 1 October 2026 - respond.io pricing - Twilio WhatsApp pricing (current as of September 2026) - Infobip pricing - Infobip WhatsApp pricing - 360dialog pricing - 360dialog price calculator - Gallabox pricing - Gallabox WhatsApp rate card - Meta: WhatsApp Business Platform pricing --- Source: https://sonar.whats-hub.co.za/whatsapp-for/restaurants # WhatsApp for restaurants, bars and cafés Fill quiet nights with a message your regulars actually read, run quiz and music nights with one-tap RSVPs, and answer "are you open?" without picking up the phone. Start free trial See pricing ## What you can send Every message comes from your own WhatsApp number, and replies land in your Sonar inbox. A few examples: This week's special Hi Thandi, it's half-price burgers this Tuesday from 5pm. Reply here and we'll hold a table for you. Event night invite Quiz night is back this Thursday at 7pm, teams of up to six. Can your team make it? I'm inCan't make it Booking confirmed Hi Sam, your table for 4 on Friday at 19:00 is booked. Reply here if your plans change. ## How Sonar helps - Offers to the right people. Tag your regulars, families and sports crowd, and send each group what they care about. Schedule a broadcast, or repeat it every week, 2 weeks or 4 weeks. - Event nights with RSVPs. Invites with I'm in and Can't make it buttons, a capacity and waitlist, reminders, and check-in at the door. WhatsApp RSVPs for events - Booking confirmations. If your booking app can send new bookings to a web address, Sonar confirms each one on WhatsApp from your number. How it works - Answers while you're busy. The AI Agent answers the everyday questions, like opening hours, the menu and parking, in your voice. Included from the Plus plan (R1,499 a month). How it works - Keep the restaurant phone. Connect the WhatsApp Business app number you already use. Chats keep working on the phone and show up in Sonar too. How it works - POPIA-safe by default. Opt-in buttons, STOP handled automatically, and a consent record for every customer. How it works ## What it costs Say you message 800 customers in a month, with 1,600 marketing messages and 300 updates. That fits the Starter plan at R349 a month. WhatsApp's own charges, paid to Meta from your card, come to about R1,077. Plans start with a free trial of 50 contacts and 250 messages, with replies you type free, no card needed. Work out your own month with the calculator. ## Questions **Do customers need to save our number?** No. The free broadcast lists in the WhatsApp Business app only reach people who saved your number. Sonar sends through WhatsApp's business platform, so everyone who agreed to hear from you gets your message. **How often should we message our regulars?** Most venues do best with one offer a week at most. Meta limits how many marketing messages each person gets from businesses, so messages people ignore can hurt your delivery. Automated follow-ups in Sonar never send one person more than 3 marketing messages a week. **Can we take bookings on WhatsApp?** Yes: replies land in your Sonar inbox, where your team answers them. If you use a booking app, Sonar can send the confirmation for every booking it takes. --- Source: https://sonar.whats-hub.co.za/whatsapp-for/shops # WhatsApp for shops and online stores Bring in your customers from Shopify or a spreadsheet, tell them about launches and sales on the app they check most, and send order updates without lifting a finger. Start free trial See pricing ## What you can send Every message comes from your own WhatsApp number, and replies land in your Sonar inbox. A few examples: New arrivals Hi Lerato, the winter range has landed. 15% off for WhatsApp subscribers until Sunday. Shop now Order on its way Hi Lee, your order 1042 is on its way and should arrive tomorrow. Reply here if you have any questions. We miss you It's been a while, Sam. Here's R100 off your next order with code COMEBACK100. Copy code ## How Sonar helps - Shopify in one click. Import your customers and orders, then build groups like "bought in the last 90 days". Read-only: Sonar never changes your store. How it works - Order and delivery updates. Your store or courier tool tells Sonar when an order is ready or on its way, and Sonar sends the update from your number. How it works - Broadcasts that sell. Photos, videos, link buttons and coupon codes, sent now or scheduled. See who received, read and replied. - Questions before and after they buy. One shared inbox for the whole team, with saved replies. The AI Agent answers sizing, delivery and returns questions from the Plus plan (R1,499 a month). How it works - Know which ads work. See which click-to-WhatsApp ad started each chat. - Consent you can prove. Opt-in buttons, STOP handled automatically, and a consent history for every customer. How it works ## What it costs Say you message 3,000 customers in a month, with 6,000 marketing messages and 1,500 updates. That fits the Starter plan at R349 a month. WhatsApp's own charges, paid to Meta from your card, come to about R4,099. Plans start with a free trial of 50 contacts and 250 messages, with replies you type free, no card needed. Work out your own month with the calculator. ## Questions **Does Sonar change anything in my Shopify store?** No. The connection is read-only: Sonar imports customers and orders so you can message them, and never writes to your store. **Can Sonar send abandoned-cart messages?** Not yet. Shopify abandoned-cart messages are on our roadmap. **Can I message everyone in my Shopify customer list?** Only people who agreed to hear from you on WhatsApp, which POPIA requires. Sonar keeps the record and skips anyone without consent. See POPIA and WhatsApp marketing. --- Source: https://sonar.whats-hub.co.za/whatsapp-for/salons # WhatsApp for salons, spas and studios Confirm bookings automatically, fill a cancellation with one quick message, and remind clients when they're due, whether you run a salon, a barber shop, a spa or a fitness studio. Start free trial See pricing ## What you can send Every message comes from your own WhatsApp number, and replies land in your Sonar inbox. A few examples: Booking confirmed Hi Naledi, you're booked for a cut and colour on Saturday at 10:00. Reply here if you need to move it. Last-minute gap We've had a cancellation: two slots open tomorrow at 2pm and 3:30pm. Reply here to grab one. Time for your next visit Hi Ayesha, it's been six weeks since your last appointment. Shall we book your next one? Book nowNot yet ## How Sonar helps - Confirmations from your booking app. If your booking app can send bookings to a web address, Sonar confirms each one on WhatsApp, from your number. How it works - Fill cancellations fast. Keep a group of clients who want last-minute slots, and send them one message when a gap opens. - Bring clients back. Tag clients after a visit, and a flow sends the rebooking message weeks later, with quiet hours and no more than 3 marketing messages a week. - Keep the salon phone. Connect the WhatsApp Business app number you already use. Chats keep working on the phone and show up in Sonar too. How it works - Answers between clients. The AI Agent answers prices, opening hours and directions in your voice. Included from the Plus plan (R1,499 a month). How it works - POPIA-safe by default. Opt-in buttons, STOP handled automatically, and a consent record for every client. How it works ## What it costs Say you message 600 customers in a month, with 600 marketing messages and 400 updates. That fits the Starter plan at R349 a month. WhatsApp's own charges, paid to Meta from your card, come to about R450. Plans start with a free trial of 50 contacts and 250 messages, with replies you type free, no card needed. Work out your own month with the calculator. ## Questions **Our booking app already sends SMS reminders. Why WhatsApp?** Clients read WhatsApp, and they can reply. A "can I move to 3pm?" lands in your inbox as a chat instead of a missed call or an unread SMS. **Do we need a new number?** No. You can connect the WhatsApp Business app number your clients already have, and keep using the app on your phone. See Sonar with the WhatsApp Business app. **Can the whole team answer messages?** Yes. Every plan includes unlimited team members, and you can assign a chat to the right person. --- Source: https://sonar.whats-hub.co.za/whatsapp-for/sports-clubs # WhatsApp for sports clubs and schools Get fixtures, training changes and fee reminders to every parent and player, and know who's coming without chasing replies in a group chat. Start free trial See pricing ## What you can send Every message comes from your own WhatsApp number, and replies land in your Sonar inbox. A few examples: Who's in on Saturday? Hi Thabo, the U13s play away at 9:00 on Saturday. Can Lwazi make it? I'm inCan't make it Training cancelled Training is off tonight because of the rain. See you on Thursday at 4pm. Fees reminder Hi Michelle, a reminder that term fees of R850 are due by 15 November. Reply here if you have any questions. ## How Sonar helps - Know who's coming. Match and event invites with one-tap answers, a running count, a waitlist, reminders and check-in for attendance. Weekly training works as a series. WhatsApp RSVPs for events - A group for every team. Tag players and parents by team or age group, and message just the U13s or just the coaches. How it works - Private, not a group chat. Each parent gets the message on their own, so nobody's number is shown to everyone, and answers don't get lost in a busy group. - Reminders that repeat. Schedule fee reminders and weekly notices, or repeat a broadcast every week, 2 weeks or 4 weeks. - One inbox for the committee. Replies come into one shared inbox with unlimited team members, so the coach, the treasurer and the secretary can all help. - Consent from parents. Opt-in buttons, STOP handled automatically, and a consent record for every contact. How it works ## What it costs Say you message 250 customers in a month, with 500 marketing messages and 1,000 updates. That fits the Starter plan at R349 a month. WhatsApp's own charges, paid to Meta from your card, come to about R483. Plans start with a free trial of 50 contacts and 250 messages, with replies you type free, no card needed. Work out your own month with the calculator. ## Questions **Why not just use a WhatsApp group?** In a group everyone sees everyone's number, important messages get buried, and counting who's coming means scrolling. Sonar messages each person privately and counts the answers for you. **Do parents need to install anything?** No. Messages arrive in WhatsApp like any other, and answering is one tap. **Can we import our player list?** Yes, from a spreadsheet, with your teams as tags. See Import your contacts. --- Source: https://sonar.whats-hub.co.za/whatsapp-for/property # WhatsApp for estate agents and property developers Reply to leads from your ads in seconds, give each development its own number and answers, and invite buyers to show days with one-tap RSVPs. Start free trial See pricing ## What you can send Every message comes from your own WhatsApp number, and replies land in your Sonar inbox. A few examples: New listing Hi Pieter, a 3-bedroom house in your area just came on the market. Would you like to view it this weekend? Yes pleaseNot now Show day Our show day is on Saturday from 10:00 to 14:00, with the first units ready to view. Will you join us? I'm inCan't make it Viewing confirmed Your viewing is confirmed for Thursday at 17:30. Reply here if you're running late. ## How Sonar helps - Leads answered in seconds. The AI Agent replies straight away, in your voice, with the facts you give it, and hands anything it can't answer to your team. Included from the Plus plan (R1,499 a month). How it works - A number for each development. Give every development or brand its own WhatsApp number, with its own instructions, so the agent answers with the right prices and details. How it works - Know which ads bring buyers. See which click-to-WhatsApp ad started each chat. - Show days with RSVPs. Invites with one-tap answers, a capacity and waitlist, reminders, and check-in on the day. WhatsApp RSVPs for events - One inbox for the sales team. Assign chats to agents, use saved replies, and let Copilot draft replies for agents to check. - Consent for your buyer lists. Opt-in buttons, STOP handled automatically, and a consent record for every contact. How it works ## What it costs Say you message 1,500 customers in a month, with 1,500 marketing messages and 300 updates. That fits the Plus plan at R1,499 a month, which includes the AI Agent. WhatsApp's own charges, paid to Meta from your card, come to about R1,013. Plans start with a free trial of 50 contacts and 250 messages, with replies you type free, no card needed. Work out your own month with the calculator. ## Questions **Can each agent keep their own WhatsApp number?** Yes. Connect an agent's own WhatsApp Business app number as an agent number for R499 a month, with AI replies included. They keep using the app on their phone. **What does the AI Agent say when it doesn't know?** It only states facts you've given it. For anything else, like price negotiations or offers to purchase, it tells the buyer someone will come back to them, and leaves it to your team. **We run WhatsApp for several developments. How should we set it up?** One WhatsApp account and number per development, so a problem with one can't stop the others. See Connect a client's number. --- Source: https://sonar.whats-hub.co.za/whatsapp-for/laundries # WhatsApp for laundries and dry cleaners Tell customers the moment their order is ready, straight from your till, and bring back the ones who haven't been in for a while. Start free trial See pricing ## What you can send Every message comes from your own WhatsApp number, and replies land in your Sonar inbox. A few examples: Order ready Hi Thandi, your order 2381 is ready to collect. We're open until 18:00 today. Out for delivery Hi Sam, your laundry is out for delivery and should reach you this afternoon. Come back soon It's been a while, Lee. Here's 20% off your next wash with code FRESH20. Copy code ## How Sonar helps - Order-ready messages from your till. If your till or laundry software can send order changes to a web address, Sonar sends the order-ready or delivery message for every order. How it works - "Is mine ready?" in one inbox. Customer questions land in one shared inbox for the whole team, with saved replies for the usual answers. - Win back quiet customers. Build a group of customers you haven't messaged in two months, and send them an offer. - Keep the shop phone. Connect the WhatsApp Business app number you already use. Chats keep working on the phone and show up in Sonar too. How it works - Answers after hours. The AI Agent answers prices, opening hours and collection times in your voice. Included from the Plus plan (R1,499 a month). How it works - POPIA-safe by default. Opt-in buttons, STOP handled automatically, and a consent record for every customer. How it works ## What it costs Say you message 1,000 customers in a month, with 1,000 marketing messages and 2,000 updates. That fits the Starter plan at R349 a month. WhatsApp's own charges, paid to Meta from your card, come to about R965. Plans start with a free trial of 50 contacts and 250 messages, with replies you type free, no card needed. Work out your own month with the calculator. ## Questions **Does it work with my till or laundry software?** If it can send order changes to a web address (often called a webhook), yes. Some systems only offer that on certain plans. Not sure? Email us which system you use and we'll check. **Do customers need to save our number?** No. Sonar sends through WhatsApp's business platform, so the message arrives whether or not they've saved your number. **What does each order-ready message cost?** It's one message from your plan, and Meta charges its update rate, paid to Meta from your card. See WhatsApp pricing in South Africa. --- Source: https://sonar.whats-hub.co.za/whatsapp-for/health # WhatsApp for medical, dental and therapy practices Send appointment reminders patients confirm or move with one tap, offer a cancelled slot to patients who want an earlier one, and remind people when their next check-up is due, from the practice number they already message. Start free trial See pricing ## What you can send Every message comes from your own WhatsApp number, and replies land in your Sonar inbox. A few examples: Appointment reminder Hi Naledi, a reminder of your appointment on Thursday at 10:30. Please confirm, or let us know if you need another time. ConfirmChange time Earlier slot open We've had a cancellation tomorrow at 9:15. Reply here if you'd like to take it. Check-up due Hi Pieter, it's been a year since your last check-up. Shall we book your next one? Book nowNot now ## How Sonar helps - Reminders patients answer. Reminders with Confirm and Change time buttons. A tap can tag the patient, so reception sees who has confirmed and who wants to move. - Confirmations from your booking system. If your practice software can send bookings to a web address, Sonar confirms each one on WhatsApp, from your number. How it works - Recalls when they're due. Save each patient's next check-up date, and a flow messages them a set number of days before it, never during quiet hours. - Fill cancellations. Keep a group of patients who want an earlier appointment, and send them one message when a slot opens. - Keep the practice number. Connect the WhatsApp Business app number patients already message. Reception keeps using the app, and chats show up in Sonar too. How it works - A person checks anything clinical. The AI Agent can answer opening hours, fees and directions. For replies about a patient's health, set the number to Drafts for you to check, so a person approves each one, as our terms require. Or switch the AI off for that number. Included from the Plus plan (R1,499 a month). How it works ## What it costs Say you message 800 patients in a month, with 300 marketing messages and 1,500 updates. That fits the Starter plan at R349 a month. WhatsApp's own charges, paid to Meta from your card, come to about R435. Which plan fits | Size | Sonar plan | WhatsApp* | Total a month | One-doctor practice1 number, 300 marketing and 1,500 updates a month | Starter, R349 | R435 | R784 | Practice with three rooms2 numbers, 800 marketing and 4,000 updates a month | Starter, R349 | R1,159 | R1,508 | Group with five branches5 numbers, 3,000 marketing and 15,000 updates a month | Plus, R1,499Includes the AI Agent | R4,346 | R5,845 * WhatsApp's own charges for South African numbers, paid to Meta from your card, an estimate at today's exchange rate. Sonar's prices include VAT. Every plan. Plans start with a free trial of 50 contacts and 250 messages, with replies you type free, no card needed. Work out your own month with the calculator. ## Questions **Where are patient chats kept?** Sonar's copies are on our server in Cape Town, with backups in Johannesburg, and we sign a POPIA operator agreement with your practice. WhatsApp messages also pass through Meta. Meta can keep a number's messages in South Africa too, but not while you use the WhatsApp Business app on that number. The POPIA pack explains the choice. **Do patients need to opt in?** For reminders to reach every patient, yes. Add a WhatsApp line to your patient form and mark it when you import your list. A patient with no opt-in on record gets one message from you, which can ask them to opt in. Sonar keeps the record. See POPIA and WhatsApp marketing. **What can a practice send on WhatsApp?** Everything around your care is fine: appointment confirmations and reminders, recalls when a check-up is due, bookings for hearing tests, eye tests and fittings, aftercare notes, and reminders when an account is due. WhatsApp's commerce policy doesn't allow selling medical devices or prescription medicines in a chat, so take payment for those at the practice or on your website. --- Source: https://sonar.whats-hub.co.za/whatsapp-for/lodges # WhatsApp for lodges, guesthouses and holiday stays Answer enquiries while you're out on a game drive, remind guests before their hold lapses, send check-in details before they arrive, and ask how it went once they've left. Start free trial See pricing ## What you can send Every message comes from your own WhatsApp number, and replies land in your Sonar inbox. A few examples: Hold ending soon Hi Sam, your hold on the Main Suite for 12 to 15 May ends on Friday at 12:00. Pay the deposit to keep your dates, or reply here if you need more time. I need more time Before you arrive Hi Lerato, we look forward to seeing you on Friday. Check-in is from 14:00. Reply here if you'd like directions. How was your stay? Thank you for staying with us, Pieter. We'd love to hear how it went. Loved itCould be better ## How Sonar helps - Enquiries answered at any hour. The AI Agent answers questions about rooms, rates, directions and what to pack, from the facts you give it, and leaves availability, and anything else it can't answer, to your team. Included from the Plus plan (R1,499 a month). How it works - Holds that follow themselves up. Tag a guest when a hold is placed, and a flow waits a day, checks whether the deposit is in and, if not, sends the hold-ending reminder. - Timed to their dates. Save each guest's arrival and departure dates, and flows send the before-you-arrive message 3 days before and the thank-you the day after they leave. - Guest messages ready to use. Start from templates for booking confirmed, hold ending, deposit received, before you arrive, how was your stay and come back soon. - Confirmations from your booking system. If your booking system can send new bookings to a web address, Sonar confirms each one on WhatsApp from your number. How it works - Keep the lodge phone. Connect the WhatsApp Business app number guests already message. Chats keep working on the phone and show up in Sonar too. How it works ## What it costs Say you message 400 guests in a month, with 400 marketing messages and 1,200 updates. That fits the Plus plan at R1,499 a month, which includes the AI Agent. WhatsApp's own charges, paid to Meta from your card, come to about R451. Which plan fits | Size | Sonar plan | WhatsApp* | Total a month | Guesthouse1 number, 200 marketing and 600 updates a month | Plus, R1,499Includes the AI Agent | R225 | R1,724 | Lodge1 number, 600 marketing and 2,000 updates a month | Plus, R1,499Includes the AI Agent | R708 | R2,207 | Group of four lodges4 numbers, 3,000 marketing and 8,000 updates a month | Plus, R1,499Includes the AI Agent | R3,218 | R4,717 * WhatsApp's own charges for South African numbers, paid to Meta from your card, an estimate at today's exchange rate. Sonar's prices include VAT. Every plan. Plans start with a free trial of 50 contacts and 250 messages, with replies you type free, no card needed. Work out your own month with the calculator. ## Questions **Most of our guests are from overseas. Does that change the cost?** Sonar's plan costs the same wherever your guests are. WhatsApp charges by the country of the guest's number, and some countries cost more than South Africa. The calculator has the rates by country. **Can guests pay their deposit on WhatsApp?** Sonar doesn't take payments. Put your payment link in the message, and tag the guest as paid when the deposit comes in, by hand or from your booking system, so the reminders stop. **We run booking software for many lodges. Can each one connect its own number?** Yes. With the partner API, each lodge connects its own WhatsApp number from inside your product, and keeps its own guests and opt-outs. --- Source: https://sonar.whats-hub.co.za/whatsapp-for/recruitment # WhatsApp for recruitment and staffing agencies Send job alerts to the candidates who fit, confirm interviews with one tap, fill Saturday's shift before lunch, and let every consultant keep their own WhatsApp number, all in one inbox. Start free trial See pricing ## What you can send Every message comes from your own WhatsApp number, and replies land in your Sonar inbox. A few examples: Job alert Hi Thabo, a warehouse supervisor role in Midrand just opened, R18,000 a month. Interested? Yes, send detailsNot for me Interview confirmed Hi Ayesha, your interview is on Tuesday at 11:00 at our Sandton office. Please bring a copy of your CV. I'll be thereNeed to move it Shift available We need 6 general workers for Saturday, 7:00 to 15:00, in Kempton Park. Can you work? I can workNot this time ## How Sonar helps - Alerts to the right candidates. Tag candidates by skill, area and availability, and send each role only to the people who fit. Schedule it, or repeat a broadcast every week. How it works - Shifts filled first come, first served. Send a shift like an event invite with a limit on places. Once it's full, the next people to say yes go on a waitlist, with reminders and check-in on the day. WhatsApp RSVPs for events - A number for every consultant. Connect each consultant's own WhatsApp Business app number as an agent number for R499 a month. They keep the app on their phone, and the chats show up in Sonar too. How it works - Each consultant sees their own. Limit a consultant to their own number or to candidate tags, so they only see the chats they work on. - CVs and voice notes in one inbox. Candidates send CVs, certificates, photos and voice notes on WhatsApp, and they land in one shared inbox, with voice notes written out. - A person checks AI replies about jobs. Copilot drafts replies for consultants to check and send. Our terms ask that a person approves any AI reply about someone's job, so set the number to Drafts for you to check. How it works ## What it costs Say you message 2,000 candidates in a month, with 4,000 marketing messages and 1,500 updates. That fits the Starter plan at R349 a month. WhatsApp's own charges, paid to Meta from your card, come to about R2,813. Which plan fits | Size | Sonar plan | WhatsApp* | Total a month | Boutique agency2 numbers, 1,500 marketing and 500 updates a month | Starter, R349 | R1,045 | R1,394 | Agency with five consultants5 numbers, 6,000 marketing and 2,000 updates a month | Plus, R1,499Includes the AI Agent | R4,180 | R5,679 | Staffing company, ten branches10 numbers, 12,000 marketing and 8,000 updates a month | Plus + 5 extra numbers, R3,994Includes the AI Agent | R9,004 | R12,998 * WhatsApp's own charges for South African numbers, paid to Meta from your card, an estimate at today's exchange rate. Sonar's prices include VAT. Every plan. Plans start with a free trial of 50 contacts and 250 messages, with replies you type free, no card needed. Work out your own month with the calculator. ## Questions **Can we message candidates who applied on a job board?** Job alerts go to candidates who agreed to hear from you on WhatsApp. Add a WhatsApp opt-in to your application form, or send one message asking them to opt in. Sonar keeps the record and skips anyone who hasn't agreed. See POPIA and WhatsApp marketing. **Can candidates send their CV on WhatsApp?** Yes. Documents, photos and voice notes arrive in your Sonar inbox. Files sent in chats are kept for 12 months and then deleted, so save a CV to your own system if you need it for longer. **Why not just use a WhatsApp group for shifts?** In a group everyone sees everyone's number, and counting who said yes means scrolling. Sonar messages each person privately, counts the answers and keeps the waitlist. --- Source: https://sonar.whats-hub.co.za/whatsapp-for/motor # WhatsApp for car dealers, workshops and parts shops Answer enquiries from your ads in seconds, tell customers the moment their car is ready, remind them when a service is due, and let them send photos and voice notes of the part they need. Start free trial See pricing ## What you can send Every message comes from your own WhatsApp number, and replies land in your Sonar inbox. A few examples: Service due Hi Sipho, your car is due for its service next month. Shall we book it in? Book a serviceNot now Car ready Hi Michelle, your car is ready to collect. We're open until 17:00 today. New arrival Hi Pieter, a bakkie like the one you asked about has just come in. Would you like to see it this weekend? Yes pleaseNot now ## How Sonar helps - Enquiries answered in seconds. The AI Agent replies straight away, in your voice, from the stock, prices and opening hours you give it, and hands test drives, trade-ins and anything it can't answer to your team. Included from the Plus plan (R1,499 a month). How it works - Car ready, from your workshop system. If your workshop or dealer system can send job changes to a web address, Sonar sends the car-ready message for every job. How it works - Service reminders on time. Save each customer's next service date, and a flow sends the reminder a few weeks before, never during quiet hours. - Know which ads bring buyers. See which click-to-WhatsApp ad started each chat. - Photos and voice notes. Customers send a photo of the part or a voice note about the noise, and it lands in one shared inbox, with voice notes written out. - A number for each salesperson. Connect each salesperson's own WhatsApp Business app number as an agent number for R499 a month. They keep the app on their phone, and the chats show up in Sonar too. How it works ## What it costs Say you message 1,500 customers in a month, with 1,500 marketing messages and 1,500 updates. That fits the Plus plan at R1,499 a month, which includes the AI Agent. WhatsApp's own charges, paid to Meta from your card, come to about R1,206. Which plan fits | Size | Sonar plan | WhatsApp* | Total a month | Workshop or parts shop1 number, 300 marketing and 800 updates a month | Starter, R349 | R322 | R671 | Dealership3 numbers, 1,500 marketing and 1,500 updates a month | Plus, R1,499Includes the AI Agent | R1,206 | R2,705 | Dealer group8 numbers, 6,000 marketing and 4,000 updates a month | Plus + 3 extra numbers, R2,996Includes the AI Agent | R4,502 | R7,498 * WhatsApp's own charges for South African numbers, paid to Meta from your card, an estimate at today's exchange rate. Sonar's prices include VAT. Every plan. Plans start with a free trial of 50 contacts and 250 messages, with replies you type free, no card needed. Work out your own month with the calculator. ## Questions **Can the AI Agent talk about finance and trade-ins?** Leave those to your team. List finance, trade-in values and offers under HAND TO A PERSON in its instructions, and it tells the customer someone will come back to them. Our terms ask that a person approves any AI reply about someone's money. **Does it work with our dealer or workshop system?** If it can send job or stock changes to a web address (often called a webhook), yes. Not sure? Email us which system you use and we'll check. **Can each branch have its own number?** Yes, and you can limit each branch's team to its own number's chats. The table above shows the plan for a group with several numbers. --- Source: https://sonar.whats-hub.co.za/whatsapp-for/software-platforms # WhatsApp for software platforms Send WhatsApp messages from your own product by API, get every reply and delivery update by webhook, and let each of your customers connect their own number without leaving your app. Start free trial See pricing ## What you can send Every message comes from your own WhatsApp number, and replies land in your Sonar inbox. A few examples: Booking confirmed Hi Sam, your booking 881 for Friday at 14:00 is confirmed. Reply here if you need to change it. Job update Hi Lee, job 2214 has moved to Thursday. Tap below for the new details. View job Login code 123456 is your verification code. For your security, do not share this code. ## How Sonar helps - Templates and messages by API. Send approved templates with buttons and variables, or free-form replies inside the 24-hour window. A reference on each send stops the same message going twice. Developers: API and webhooks - Webhooks for everything. Incoming messages, button taps, and delivery and read updates, signed and retried for about 2 days, with a delivery log. - Each customer connects their own number. With the partner API, each of your customers runs Meta's sign-up from inside your product and gets their own business in Sonar, with their own contacts and opt-outs. Their number stays in their own Meta business portfolio. - Contacts kept in step. Add and update contacts, tags and opt-ins from your system, and Sonar applies the same consent rules to every send. How it works - An inbox when people reply. Replies land in Sonar's shared inbox too, so your team or your customer's team can answer without you building one. - Official and approved. Sonar is a Meta Tech Provider on the official WhatsApp Business Platform, and sends through Meta's Cloud API. ## What it costs Say you message 5,000 people in a month, with 2,000 marketing messages and 8,000 updates. That fits the Starter plan at R349 a month. WhatsApp's own charges, paid to Meta from your card, come to about R2,575. Which plan fits | Size | Sonar plan | WhatsApp* | Total a month | Staff alerts from your app1 number, 0 marketing and 800 updates a month | Starter, R349 | R129 | R478 | Customer updates2 numbers, 1,000 marketing and 8,000 updates a month | Starter, R349 | R1,932 | R2,281 | High volume5 numbers, 10,000 marketing and 60,000 updates a month | Growth, R4,399Includes the AI Agent | R16,098 | R20,497 * WhatsApp's own charges for South African numbers, paid to Meta from your card, an estimate at today's exchange rate. Sonar's prices include VAT. Every plan. Plans start with a free trial of 50 contacts and 250 messages, with replies you type free, no card needed. Work out your own month with the calculator. ## Questions **Is the API on every plan?** Yes. The API and webhooks come with every plan, month to month, with no setup fee. The developer guide and the full API reference show every call. **We have many customers, each with their own number. How is that priced?** Each customer you connect through the partner API becomes its own business in Sonar, on its own plan. Email support@whats-hub.co.za about partner pricing for many customers. **Can we test before going live?** Yes. Start a free trial with a test number and send your first templates, then add your live number on a paid plan. --- Source: https://sonar.whats-hub.co.za/whatsapp-for/financial-services # WhatsApp for accountants, insurance brokers and financial advisers Remind clients before their renewal, review or tax deadline, send updates from your practice system, and give every adviser their own WhatsApp number, with a person approving any reply about money. Start free trial See pricing ## What you can send Every message comes from your own WhatsApp number, and replies land in your Sonar inbox. A few examples: Tax season Hi Thabo, tax season is open. Shall we book a time to do your return? Book a timeNot this year Renewal coming up Hi Michelle, your car and home insurance renews on 1 December. Would you like us to compare quotes first? Yes pleaseKeep as is Annual review Hi Pieter, it's a year since your last financial review. Shall we book a time to go through your plan? Book a timeNot now ## How Sonar helps - Renewals and reviews on time. Save each client's renewal or review date, and a flow messages them a set number of days before it, never during quiet hours. - Deadline reminders to the right clients. Tag clients as provisional taxpayers, VAT vendors or payroll clients, and schedule a reminder to each group before its deadline. How it works - Updates from your practice system. If your practice or policy software can send changes to a web address, Sonar sends the update from your number, like a return filed or a claim registered. How it works - A number for every adviser. Connect each adviser's or broker's own WhatsApp Business app number as an agent number for R499 a month. They keep the app on their phone, and the chats show up in Sonar too. How it works - Each adviser sees their own clients. Limit a team member to their own number or to client tags, so they only see the chats they work on. - A person approves replies about money. Copilot drafts replies for your team to check and send. Our terms ask that a person approves any AI reply about someone's money, insurance or legal position, so set the number to Drafts for you to check. Included from the Plus plan (R1,499 a month). How it works ## What it costs Say you message 600 clients in a month, with 600 marketing messages and 1,500 updates. That fits the Starter plan at R349 a month. WhatsApp's own charges, paid to Meta from your card, come to about R627. Which plan fits | Size | Sonar plan | WhatsApp* | Total a month | Sole practitioner1 number, 300 marketing and 800 updates a month | Starter, R349 | R322 | R671 | Firm with five advisers5 numbers, 1,500 marketing and 3,000 updates a month | Plus, R1,499Includes the AI Agent | R1,448 | R2,947 | Brokerage with ten advisers10 numbers, 5,000 marketing and 12,000 updates a month | Plus + 5 extra numbers, R3,994Includes the AI Agent | R5,148 | R9,142 * WhatsApp's own charges for South African numbers, paid to Meta from your card, an estimate at today's exchange rate. Sonar's prices include VAT. Every plan. Plans start with a free trial of 50 contacts and 250 messages, with replies you type free, no card needed. Work out your own month with the calculator. ## Questions **Which financial businesses can use WhatsApp?** Most can, like accountants, bookkeepers, tax practitioners, insurance brokers, financial advisers, banks and bond originators. WhatsApp's policy doesn't allow payday loans, salary advances, peer-to-peer lending, debt collection or bail bonds, nor ICOs, binary options or selling cryptocurrency, and it can restrict a business that offers them. **Can clients send their tax documents on WhatsApp?** Don't ask for them in a chat. WhatsApp's policy doesn't allow asking people for ID numbers, bank account or card numbers, or for documents that contain them, like an IRP5 or a bank statement. Send a link to your own secure upload portal instead. Asking for the last four digits, to check who you're talking to, is fine. **Where are client chats kept?** Sonar's copies are on our server in Cape Town, with backups in Johannesburg, and we sign a POPIA operator agreement with your firm. WhatsApp messages also pass through Meta. Meta can keep a number's messages in South Africa too, but not while you use the WhatsApp Business app on that number. The POPIA pack explains the choice. --- Source: https://sonar.whats-hub.co.za/guides/whatsapp-error-2388386 # WhatsApp error 2388386: why can't I add another number? Your Meta business portfolio is at its number limit. A new portfolio can have 2 WhatsApp numbers. Meta raises it to 20 by itself once your business is verified, or once you reach the 2,000 a day messaging limit. Checked 11 November 2026 against Meta's own documentation. Meta changes its rules now and then, and Meta always has the final say. ## Why it happens Meta counts the numbers registered in your business portfolio, not just the ones in Sonar. Numbers another tool connected count too. When you add a third number to a new portfolio, Meta's window stops with error 2388386 and asks you to delete a number or ask for more. See every number your portfolio has: open Phone numbers in WhatsApp Manager. If you have more than one business, check the right one is picked at the top left. ## Three ways round it - Use a number that's already connected. If you only need to send today, a number already in your portfolio works straight away. - Delete a number you no longer use. In Phone numbers, press the bin next to it. Only a business admin can, Meta may ask for the number's two-step verification PIN, and a number that sent paid messages in the last 30 days can't be deleted until 30 days after the last one. Only delete a number you're sure you don't need. - Put the new number in a new business portfolio. When Meta's window asks for a business, create a new one instead of picking yours. It needs its own payment method. Meta doesn't let you move a number to another portfolio later, so choose this only for a number you're happy to keep there. ## Lift the limit for good Verify your business: in Meta Business Suite, open Settings, then Security Center, then Start verification (Meta explains it here). Once it's verified, Meta raises the limit to 20 by itself. What South African businesses need for it is in what Meta needs from you. For more than 20, ask Meta support. How Sonar helps: Sonar connects numbers through Meta's own window, so Meta's limit applies to us too. Your Sonar plan has its own number allowance on top. --- Source: https://sonar.whats-hub.co.za/guides/whatsapp-error-131047 # WhatsApp error 131047: why wasn't my message delivered? WhatsApp only lets a business send a normal message in the 24 hours after that person last messaged you. After that, and for a first message to someone new, it has to be an approved template. Checked 11 November 2026 against Meta's own documentation. Meta changes its rules now and then, and Meta always has the final say. ## Why it happens Meta calls it "re-engagement required": the person hasn't messaged your business in the last 24 hours. Meta gives the same error when the number isn't on WhatsApp at all, so check the number too. It catches messages sent from an app, a CRM or your own code most often: they send a normal message days after the last reply, or to someone who has never messaged you. ## What to do - Inside the 24 hours: reply with anything, as normal. - Outside them: send an approved template. Write one under Templates in Sonar and Meta reviews it, usually within minutes. A template can carry the person's name or an order number. - From your own software: call /v1/send-template instead of /v1/send once the 24 hours have passed. Sonar's API answers outside_24h_window when this happens, so your code can tell. See the developer guide. ## First messages to new people A first message to someone who hasn't contacted you is usually a marketing template. Those need people who agreed to hear from you: South African law (POPIA) and WhatsApp's rules both ask for it, and messages people didn't ask for are a common reason Meta locks an account. See POPIA and WhatsApp marketing. What each template costs is on pricing. --- Source: https://sonar.whats-hub.co.za/guides/whatsapp-verification-30-days # Do you need 30 days on WhatsApp before Meta business verification? No. The 30 days in Meta's rules is for the blue tick, Meta's Official Business Account. Meta's WhatsApp docs set no waiting time for business verification, so you can start it straight away. Checked 11 November 2026 against Meta's own documentation. Meta changes its rules now and then, and Meta always has the final say. ## Where the 30 days comes from To ask Meta for the blue tick, all of these must be true: - the business has been on the WhatsApp Business Platform for at least 30 days - the business is verified - the number's display name is approved - two-step verification is on for the number - the business follows WhatsApp's Business Messaging Policy Verification is one of the steps on the way to the blue tick, not something that waits for it. Meta decides on the blue tick and can say no. If it does, you can ask again after 30 days. ## Start verification now In Meta Business Suite, open Settings, then Security Center, then Start verification. Meta explains the steps here. What South African businesses need (your CIPC documents and proof of address) is in what Meta needs from you. Why it's worth doing early: verification raises your messaging limit and your number limit, and it's needed for the blue tick later. --- Source: https://sonar.whats-hub.co.za/guides/move-whatsapp-number-to-another-business # Can I move a WhatsApp number to another Meta business portfolio? Not directly. Meta's rules say a number can't be moved to another business portfolio. Inside the same portfolio you can move it between WhatsApp accounts, and it keeps its chats. Checked 11 November 2026 against Meta's own documentation. Meta changes its rules now and then, and Meta always has the final say. ## Inside the same business portfolio In Meta Business Suite, go to Settings, Accounts, WhatsApp Accounts, pick the main WhatsApp account and open Linked WhatsApp accounts. Unlink number moves a number out, and Link WhatsApp account brings one in. The number stays connected and keeps its conversations. Meta is still rolling this out, so you may not see it yet. Any tool with access to a WhatsApp account can use every number in it, so moving a number changes which tools can send from it. ## To a different business portfolio Meta doesn't move it. The way across is to delete the number from the old portfolio in Phone numbers, then connect it in the new one, with a code Meta sends to the number by SMS or call. Keep in mind: - only a business admin can delete a number - a number that sent paid messages in the last 30 days can't be deleted until 30 days after the last one - you need the SIM or the line, to receive the code - templates and the payment method belong to the old portfolio's accounts, so set them up again in the new one So if you're choosing where a new number should live, put it in the business you'll keep. A stopgap portfolio is hard to leave. ## And in Sonar? Sonar sends through whichever portfolio the number is in. After a number changes portfolio, connect it to Sonar again under WhatsApp numbers. --- Source: https://sonar.whats-hub.co.za/guides/whatsapp-error-131042 # WhatsApp error 131042: how do I add a payment method? Meta charges for WhatsApp messages itself, so your WhatsApp account needs its own payment method. Without one, Meta refuses to send and gives error 131042, a "payment issue". Checked 11 November 2026 against Meta's own documentation. Meta changes its rules now and then, and Meta always has the final say. ## Add a payment method - Open payment methods in Meta. In WhatsApp Manager it's called Payment settings. If you have more than one business, check the right one is picked at the top left. - Press Add payment method and add a card. - Send again. Messages that failed don't send themselves: in Sonar, open the broadcast and press Re-send failed. Meta explains it in its own help page. ## Why it happens The card was never added, it expired or was declined, or the number sits in a different business portfolio from the one with the card. Meta keeps billing per account, so a number in another portfolio needs a card of its own there. Your Sonar plan is paid separately and doesn't cover Meta's charges. Meta doesn't charge for messages that fail. How Sonar helps: Sonar shows a red notice on your dashboard until a card is on, and what Meta needs from you lists Meta's other steps. --- Source: https://sonar.whats-hub.co.za/guides/whatsapp-in-claude-and-chatgpt # Can I use my WhatsApp in Claude or ChatGPT? Yes. Connect Sonar to Claude, or to ChatGPT on plans that allow custom connectors, and ask it about your WhatsApp business chats: summarise the day, find a customer, see how a broadcast did, draft replies and send the ones you tell it to. It comes with every Sonar plan, including the free trial. Checked 11 November 2026 against Sonar's connector and Anthropic's and OpenAI's help pages. Claude and ChatGPT change their menus and plans now and then. ## What you can ask it - "Summarise today's WhatsApp chats and list what I need to follow up." - "Find this customer and tell me what they last asked." It looks up contacts by name, number or tag. - "How did Tuesday's broadcast do?" Sent, delivered, read, replies and the top button answers. - "Draft replies to the chats waiting for one." The drafts wait in Sonar's Copilot for you to check. - "Send that reply." It's built to send only a reply you've told it to send, inside the 24 hours after the customer last messaged. - "Which of my templates are approved, and why was one rejected?" - "Suggest a broadcast of our weekend special." It saves the idea in Sonar for you to open, check and send. - "How many messages have we used this month?" For owners and admins. ## What it can and can't do - It signs in as you. You get your own connect code and secret in Sonar, and enter them on Sonar's sign-in page. Disconnect in Sonar and it stops at once. - It sees what you see. Only the numbers and chats you can open in Sonar, nothing more. - It only sends normal replies, and only in the 24 hours. WhatsApp only allows a normal message within 24 hours of the customer's last message, so that's all it can send, in a chat you can see. Each one shows in Sonar as sent by you, via AI assistant. - At most 30 sends an hour per person, so a mistake can't run away. - No templates or broadcasts. It can suggest them, and a person checks and sends them from Sonar. - Your AI app reads the chats it works on. They go to Anthropic or OpenAI under that app's own terms, so use an account your business is happy to share customer chats with. ## Connect it in about 2 minutes - In Sonar, open My account, find Your AI assistant and press Get a connect code. Copy the code and the secret. To connect another app later, press Show secret and type your Sonar password. - In your AI app, add a custom connector with this address: https://sonar-mcp.whats-hub.co.za/mcp - A Sonar sign-in page opens. Enter your connect code and secret. - Ask it something, like "Summarise today's WhatsApp chats." Your AI assistant in Sonar, shown on a demo account. ### Claude Custom connectors work on every Claude plan, including Free, which allows one. Open Connectors in Claude's settings and choose Add custom connector. On Team and Enterprise plans an owner adds it. Anthropic explains it here. ### ChatGPT ChatGPT takes custom connectors on the web, not in the phone app, and only on some plans. On Business, Enterprise and Edu, a workspace admin adds it under Plugins, then Add custom MCP server. On Pro, OpenAI allows reading only, so it can't send. OpenAI changes which plans get it, so check your plan in OpenAI help. Other apps that take custom MCP connectors can use the same address. ## Which Sonar plans have it? Every plan, including the free trial. It costs nothing extra in Sonar, and replies it sends count like any other message. Your AI app's own plan is between you and Anthropic or OpenAI. See pricing. Want Sonar to answer customers by itself instead? That's the AI Agent. --- Source: https://sonar.whats-hub.co.za/guides/zapier-make-google-sheets # Can I connect Sonar to Zapier, Make or Google Sheets? Yes. Zapier and Make connect to Sonar with your number's API key, so your other tools can send WhatsApp messages and templates, add contacts, and get new messages as they arrive, with Google Sheets or anything else they connect to. It comes with every Sonar plan, including the free trial. Checked 11 November 2026 against Sonar's API. Zapier and Make change their menus and plans now and then. ## Before you start - An API key. In Sonar, open WhatsApp numbers, then Advanced (for developers). Make a named key with only what the recipe needs: send to send, contacts to add contacts. Keep it in Zapier or Make, never on a web page. - An approved template for anything you send first, like "your order is ready". WhatsApp only allows a normal message within 24 hours of the customer's last message. Make one under Templates in Sonar; approval usually takes minutes. - Zapier or Make. Today the recipes use their built-in webhook tools. On Zapier, Webhooks by Zapier is on its paid plans. Make's Webhooks and HTTP work on its free plan. Sonar's own app for Zapier and Make is on its way: email us for an invite to try it early. ## 1. Send a WhatsApp message from your till, shop or booking system For example, "your order is ready for collection" when an order is marked ready. - Start a Zap (or a Make scenario) with your system's trigger, like a new or updated order, a booking, or a row changed in a Google Sheet. - Add Webhooks by Zapier, Custom Request (in Make: HTTP, Make a request). Method POST, address https://sonar.whats-hub.co.za/v1/send-template. - Headers: Authorization set to Bearer YOUR_API_KEY, and Content-Type set to application/json. - Body, with your template's name and the customer's number and name from the trigger: {"recipient": "27821234567", "template_name": "order_ready", "language_code": "en_US", "body_parameters": ["Sam"]} Add "reference" with your order number and a retry never sends it twice. ## 2. Add a contact when a form is filled - Trigger: a new form answer (Google Forms, Typeform, your website's form). - Action: the same webhook step, POST to https://sonar.whats-hub.co.za/v1/contacts/upsert, with the same two headers. - Body: {"phone": "27821234567", "name": "Sam", "tags": ["Website form"], "opt_in": true, "opt_in_source": "website form"} Only send "opt_in": true when the form asked them, clearly, if you may send them WhatsApp marketing. Sonar keeps it as their consent record. See POPIA and WhatsApp marketing. ## 3. Log new WhatsApp messages to a Google Sheet - Start a Zap with Webhooks by Zapier, Catch Hook (in Make: Webhooks, Custom webhook) and copy its address. - In Sonar, open Settings, Connected apps, Your own system (webhook). Paste the address, tick Messages people send you and save. - Send your number a test message on WhatsApp, so Zapier or Make sees one. - Add Google Sheets, Create Spreadsheet Row (in Make: Add a Row) and map the columns: contact name, contact whatsapp, message text and message received_at. A business has one webhook address in Sonar. If yours already goes to your own system, use that system to fill the sheet, or wait for Sonar's own app, where each Zap gets its own copy. The sheet holds your customers' messages, so share it only with people who need it, as you would your Inbox. ## More Every call, its fields and its errors are in the developer guide and the API reference. Prefer to ask Claude or ChatGPT about your chats instead? See WhatsApp in Claude and ChatGPT.