What a WhatsApp and SAP integration is
It's a set of agreed conversations that read from, and sometimes write to, your ERP. A customer messages your WhatsApp number, our platform recognises what they're asking, calls your ERP's API for the answer, and replies in the chat. The other way round, when something happens in the ERP, such as a delivery being posted or an invoice falling due, the ERP (or your integration layer) tells our platform, and we send the customer a WhatsApp message.
We build this per client. You get the documents and questions your business actually needs, not a generic connector you have to bend to fit. The trade-off is honesty about scope: we agree up front which SAP objects we touch, and changes come through us.
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.
Typical flows, both directions
Most ERP projects are a mix of the two directions below. The last column is the Meta message category, which sets the price.
| Direction | Example | What it touches in the ERP | Meta category |
|---|---|---|---|
| WhatsApp → ERP | "Where's my order?" | Reads the sales order and delivery status | Service (a reply) |
| WhatsApp → ERP | "Do you have 40 of item 1123 at the Durban branch?" | Reads stock by warehouse and, if you allow it, the customer's price | Service |
| WhatsApp → ERP | "Please send my statement" or "resend invoice 90012" | Reads open items or a billing document, sent as a PDF in the chat if your ERP or a small service can supply it at a secure link | Service |
| WhatsApp → ERP | A rep or trade customer places a repeat order in a WhatsApp Flow | Creates a sales order or quotation through the API | Service |
| ERP → WhatsApp | "Your order has been dispatched", with a tracking link if your courier has one | Delivery posted or goods issue | Utility |
| ERP → WhatsApp | "Your statement for October is ready" or "invoice 90012 is due on Friday" | Month-end run or due date on open items | Utility |
| ERP → WhatsApp | "The item you asked about is back in stock" | Stock receipt for an item a customer asked to be told about | Usually marketing |
Replies to a customer who messaged you in the last 24 hours are service messages. Messages your ERP starts are sent as templates that Meta has approved, and we send them only to customers who have agreed to hear from you on WhatsApp. The categories in the table are our reading of Meta's rules; Meta sets the final category when it reviews each template.
Source: Pricing on the WhatsApp Business Platform · Customer service windows
How the build works
On the ERP side
We need an API we can call over HTTPS. What that looks like depends on your system:
- SAP Business One. The Service Layer is SAP's REST API for Business One. It follows the OData standard and exposes business objects such as business partners, items, orders and invoices. We read and write through the Service Layer, never straight into the database.
- SAP S/4HANA. SAP publishes OData APIs on the SAP Business Accelerator Hub, for example the Sales Order (A2X) API,
API_SALES_ORDER_SRV. Your SAP team enables the ones we need, and sets up a technical user limited to them. - Older SAP systems and other ERPs. Sage, SYSPRO, Odoo, Acumatica and in-house systems can all work if they have an API or can call a webhook. If they can't, a small middleware service, built by your team or by us, can sit in front of the database or read a scheduled export.
Sources: SAP Learning: Service Layer API terms and documentation · SAP Business Accelerator Hub: Sales Order (A2X). We check your exact version's API documentation during scoping.
On our side
- Questions in, answers outA conversation program, written by our engineers, recognises the request (by button, keyword, or with Claude sorting free text), calls your ERP's API and replies. Claude can pull an order or invoice number out of a message like "the order we placed last Tuesday, PO 88213".
- ERP events inYour ERP or integration layer calls a secure webhook on our platform when something happens, such as a delivery posted. That starts the right WhatsApp message to the right customer.
- Forms with live dataFor order capture or quotes, a WhatsApp Flow can load the customer's items and prices from your ERP while they fill it in, then post the finished order when they submit.
- Your team in the loopAnything the automation can't answer lands in the shared inbox, and automation pauses when someone on your team replies.
Two limits we design around
Our platform's calls to your API time out after 10 seconds and accept only a small response (8 KiB, enough for a few order lines, not a PDF), and Meta gives a Flow's endpoint 10 seconds too, while advising a reply in under a second. ERP calls that return a whole document tree can be slow. So we ask your API for only the fields the chat needs, and where your system is slow we put a thin lookup service in front of it. Customers get a short, fast answer, and your ERP doesn't get hammered.
Source: Meta: Flows health and monitoring · Meta: Implement endpoints for Flows
Knowing who's asking
An order status or statement is your customer's business information, so we agree how to identify people before anything is shared. The usual pattern is to match the WhatsApp number to a contact person on the business partner record. If there's no match, or the request is sensitive, the conversation asks for an account number and a second detail you choose, or hands over to your team. We share only the documents linked to that account.
What you need to provide
- Your WhatsApp account and number, connected through Meta's Embedded Signup, and a payment method on your Messaging account so Meta can bill you directly.
- API access to your ERP: the endpoint, a technical user with permissions limited to the agreed objects, and a test or sandbox company if you have one.
- Someone on your SAP side (internal or your SAP partner) who can enable APIs, set up the webhook for ERP events, and answer questions about your document types and statuses.
- Which customers may use it, and how you want them identified.
- The wording for the messages your ERP will start, so we can submit them to Meta as templates.
We don't sell a plug-in for SAP, and we don't make changes inside SAP itself; that stays with your SAP team or partner. There's no drag-and-drop builder for you to change the conversations yourself. Our shared inbox doesn't assign chats to named agents. If any of these is a deal-breaker, tell us early.
What it costs
- Meta's charge. From 1 October 2026, a utility message to a South African number costs US$0.0095, and so does a service message after the first 1,000 free per number each month. A marketing message costs US$0.0379. Meta bills you directly, and we add nothing.
- Our charge. A one-off build from R15,000 ex VAT, plus R7,500 per integration, depending on how many flows and ERP objects are involved, and a monthly fee from R4,950 ex VAT to host, monitor and look after it.
example A distributor sends 2,000 dispatch updates a month as utility templates: 2,000 × US$0.0095 = US$19 a month to Meta. If the same number also sends 800 service replies a month to order-status questions, those fall inside the 1,000 free service messages, as long as they are that number's only service messages that month.
Source: Meta rate cards, effective 1 October 2026. See our WhatsApp pricing page for rand examples.