Custom build

Account, balance and document self-service on WhatsApp

"What's my balance?", "Send my statement", "Where's my application?" Your customers ask these all day, by phone and email. We connect WhatsApp to the system that holds the answer, so they can help themselves in the chat, at any hour.

Last updated 26 October 2026

Karoo Finance example
Business account

Statement

Hi Lerato. To keep your account safe, please reply with the last 4 digits of your ID number.

4087

Which statement?
Account ending 3391
October 2026 September 2026 August 2026
Statement-Oct-2026.pdf
PDF document · 2 pages

Here's your October statement. Balance due: R1,240.50 by 7 November.

Customers message your number, we match it to their record and check who they are, and the chat returns their balance, status or document straight from your system. It's a custom build: we connect WhatsApp to your core, loyalty, policy or admin system through its API, and documents such as statements and tax certificates arrive in the chat as PDFs.

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

  1. 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.
  2. 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.
  3. 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.
  4. Your system answersThe platform calls your API for the balance, points or status and replies in plain words. Account numbers are masked.
  5. Documents arrive as PDFsYour system produces the statement or certificate, we send it as a document message, and the customer taps to download it.
  6. 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 sharedTypical checkExample
Low risk: points balance, nearest store, application stageRegistered number matchesLoyalty points, "your application is with the bursary committee"
Personal: balance, statement, policy scheduleNumber matches, plus one extra detail your system checksLast 4 digits of ID, date of birth, member number
Sensitive: tax certificate, claim payout, card blockNumber, extra detail, and a one-time PINYour system sends the PIN in an authentication template and checks the reply
High risk: payments, beneficiaries, PINs, passwordsNot 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

For regulated businesses

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.

PieceWhat it doesBasis
Conversation programThe menu, the checks and the replies, written in code by our engineersBuild
Lookups to your systemHTTPS calls to your core banking, loyalty, policy admin, scheme admin, ERP or student systemBuild
List and button messagesThe menu and "Which statement?" choicesRuns
Document messagesPDFs delivered in the chatRuns
Location requestCustomer shares a pin; we reply with the nearest branch from your store listRuns (the nearest-store logic is a build)
Authentication templateDelivers the one-time PIN your system generatesBuild
Shared inbox and handoverYour team takes over; automation pauses when they replyRuns
ClaudeUnderstands free text such as "need my tax cert for last year" and picks the right requestRuns (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.

MessageMeta categoryMeta's rate (USD)
Replies to a customer who messaged you in the last 24 hours: menus, balances, statuses, PDFsServiceFirst 1,000 a month per number free, then $0.0095
One-time PINAuthentication$0.0095
"Your statement is ready" or "your application moved to the next stage", sent by your systemUtility (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.
What we don't do

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.

By industry

The same pattern, six industries

These are patterns South African businesses have described in public, not Euphony clients. Services change, so check the named organisation's own pages for what they offer today. Chat lines are examples.

Questions

Self-service on WhatsApp: common questions

How do you know it's really the customer?

We match the WhatsApp number to the number registered on the customer's record, then ask for an extra check you choose, such as the last digits of an ID number, a date of birth or a policy number. For sensitive requests, your system sends a one-time PIN in a WhatsApp authentication template and checks the reply.

Payments, PIN changes and similar steps are confirmed on your own secure page or app, not in the chat. There's no built-in identity verification product: the checks are built to your rules.

Can it send PDFs?

Yes. WhatsApp supports document messages, which show as a file the customer taps to download. Your system generates the statement, certificate or schedule, makes it available to us securely, and we send it into the chat with a file name and short caption.

What about POPIA?

You stay responsible for your customers' personal information, so we agree with you up front what the chat may show, how people are identified, what is kept and for how long. We share only what the customer needs, mask account numbers, and never ask for passwords or PINs in the chat.

Regulated businesses should run their own review, including how the API credentials for their systems are stored on our platform; we'll walk your security team through it. We hold no security or compliance certifications. Meta also offers a local storage setting with a South Africa region for message content at rest. It has to be chosen before the number is registered, so raise it with us before you connect if you need it.

What does Meta charge for these lookups?

When the customer starts the chat, your replies are service messages. Each business number gets 1,000 free service messages a month, then each costs US$0.0095 to a South African number. A one-time PIN in an authentication template costs US$0.0095. See Meta's pricing page. Meta bills you directly and we add nothing.

Do you need access to our core system?

We need an API, or a small service your team puts in front of the system, that answers a few narrow questions: who owns this number, what's their balance or status, and where's this document. We don't need, or want, direct database access.

Can customers also upload documents?

Yes, customers can send photos and files in the chat, and they arrive in your inbox. Collecting ID copies, payslips or proof of address during onboarding is covered on our onboarding and KYC page.

Start with the lookup your call centre hears most

Tell us the request, the system that answers it, and how you identify customers today. We'll show you how it would work on WhatsApp and what we'd need from your team.