What customers can do in the chat
Self-service on WhatsApp means the customer gets the answer without waiting for a person, and your team only sees the conversations that need them. Typical requests are:
- Balances and status: account balance, amount due, loyalty points, policy cover, claim stage or application status.
- Documents: statements, tax certificates, claims statements, policy schedules, benefit letters and paid-up letters, sent as PDFs.
- Simple actions: block a lost card, ask for a replacement, update an email address, or find the nearest branch or store from a shared location pin.
- A person when it's needed: anything the automation can't answer goes to your team in the shared inbox, with the whole conversation in view.
Codeswop is a Meta Tech Provider. You connect your own WhatsApp account through Meta's Embedded Signup, and Meta bills you directly for messages, at Meta's rates. We charge for the event storming session, the build and a monthly plan.
How it works, step by step
- The customer starts the chatThey type "Hi", "balance" or "statement", or tap a link on your website or app. A menu (a WhatsApp list message) shows what they can do.
- We look up the numberOur platform asks your system which customer the WhatsApp number belongs to. If the number isn't registered, the chat explains how to update it, or hands over to your team.
- We check it's themThe chat asks for one extra detail you choose, such as the last digits of an ID number, a date of birth or a policy number, and your system confirms it. For sensitive requests, your system sends a one-time PIN in a WhatsApp authentication template.
- Your system answersThe platform calls your API for the balance, points or status and replies in plain words. Account numbers are masked.
- Documents arrive as PDFsYour system produces the statement or certificate, we send it as a document message, and the customer taps to download it.
- Sensitive steps leave the chatPayments, PIN changes and anything you'd rather not do in a chat open your own secure page or app through a link button. The chat picks up again when they're done, if your system tells us.
Knowing it's really the customer
A WhatsApp number on its own is a good first signal, not proof. Numbers get recycled, phones get lost and SIMs get swapped. So we layer the checks to match what's being shared, and you decide the rules.
| What's being shared | Typical check | Example |
|---|---|---|
| Low risk: points balance, nearest store, application stage | Registered number matches | Loyalty points, "your application is with the bursary committee" |
| Personal: balance, statement, policy schedule | Number matches, plus one extra detail your system checks | Last 4 digits of ID, date of birth, member number |
| Sensitive: tax certificate, claim payout, card block | Number, extra detail, and a one-time PIN | Your system sends the PIN in an authentication template and checks the reply |
| High risk: payments, beneficiaries, PINs, passwords | Not in the chat. A link opens your secure page or app | "Approve this payment in your banking app" |
The one-time PIN is generated, timed and checked by your system. We deliver it. Meta's authentication templates use fixed wording ("<code> is your verification code") with a copy-code button (or one-tap autofill for Android apps), and Meta only delivers them to the customer's main WhatsApp device, not to linked devices.
Source: Meta: Authentication templates
There's no built-in identity verification product on our platform; every check above is built to your rules. Our engineers configure the API credentials for your systems, and we'll show your team exactly how they are stored. Banks, insurers and schemes should review that, and the rest of the design, with their own security and compliance teams before go-live. We hold no security or compliance certifications.
Sending documents as PDFs
WhatsApp has a document message type: it shows a file icon, a file name and a caption, and the customer taps it to download. That's how statements and certificates reach the chat.
Your system (or a small service your team runs) generates the PDF for that customer and makes it available to us securely, usually at a short-lived link. We send it with a clear file name, such as Tax-certificate-2026.pdf. We don't generate your documents ourselves, because the version of record should come from your own system.
Our platform's calls to your API time out after 10 seconds and take a small response (8 KiB), which is plenty for a balance or a status but not for a PDF. That's why documents travel by link rather than through the lookup call, and why slow core systems sometimes need a thin, fast lookup service in front of them.
Source: Meta: Document messages
Systems connected
"Runs" means our platform already does it. "Build" means our engineers write it for you.
| Piece | What it does | Basis |
|---|---|---|
| Conversation program | The menu, the checks and the replies, written in code by our engineers | Build |
| Lookups to your system | HTTPS calls to your core banking, loyalty, policy admin, scheme admin, ERP or student system | Build |
| List and button messages | The menu and "Which statement?" choices | Runs |
| Document messages | PDFs delivered in the chat | Runs |
| Location request | Customer shares a pin; we reply with the nearest branch from your store list | Runs (the nearest-store logic is a build) |
| Authentication template | Delivers the one-time PIN your system generates | Build |
| Shared inbox and handover | Your team takes over; automation pauses when they reply | Runs |
| Claude | Understands free text such as "need my tax cert for last year" and picks the right request | Runs (inside the program) |
If your system is SAP or another ERP, see WhatsApp and SAP or ERPs. For anything in-house, see connecting WhatsApp to your own software.
Message categories and what Meta charges
Meta charges per delivered message, by category. Rates below are for South African numbers from 1 October 2026.
| Message | Meta category | Meta's rate (USD) |
|---|---|---|
| Replies to a customer who messaged you in the last 24 hours: menus, balances, statuses, PDFs | Service | First 1,000 a month per number free, then $0.0095 |
| One-time PIN | Authentication | $0.0095 |
| "Your statement is ready" or "your application moved to the next stage", sent by your system | Utility (an approved template) | $0.0095 |
Utility and authentication rates drop slightly at very high monthly volumes. Meta bills you directly in US dollars, and we add nothing to these rates.
example 3,000 customers a month ask for a statement, and each conversation takes about 4 replies from you: 12,000 service messages. The first 1,000 are free, so 11,000 × US$0.0095 = US$104.50. If 1,500 of them also get a one-time PIN, that adds 1,500 × US$0.0095 = US$14.25.
Source: Meta: Pricing on the WhatsApp Business Platform · Rate cards and volume tiers · Customer service windows. Rand examples are on our pricing page.
What we need from you
- Your WhatsApp account and number, connected through Meta's Embedded Signup, with a payment method on your Messaging account so Meta can bill you.
- An API (or a thin service in front of your system) that answers: which customer owns this number, does this extra detail match, what's their balance or status, and where's this document.
- A test environment with dummy customers, so nothing real is touched while we build.
- Your rules: which requests need which check, what may be shown, and when to hand over to a person.
- If you want one-time PINs, a backend that generates and checks them.
- The wording of any messages your system will start, so we can submit them to Meta as templates.
- Your security and compliance review, if you're a regulated business.
We don't sell a ready-made banking or loyalty bot, and there's no drag-and-drop builder for your team to change the conversations; changes come through us. We don't send WhatsApp catalogue messages, so a product catalogue goes out as a PDF or image. Our shared inbox doesn't assign chats to named agents. Answering free-text questions from your policy rules or a knowledge base is a separate custom build.