If you're selling on WhatsApp in Malaysia, you're operating inside a compliance framework that the tax authority (LHDN) actively monitors. Unlike email or voice calls, WhatsApp conversations about product sales leave a digital trail—and LHDN expects businesses to collect Service and Sales Tax (SST) upfront, validate buyer tax IDs in real time, and retain conversation records for seven years. Getting this wrong means back taxes, penalties, and lost audit defensibility. Getting it right means you can close deals faster on the channel where your customers already are. The challenge: WhatsApp feels casual, but the compliance is formal. You need a bot workflow that collects tax information without killing the conversational tone, validates that information against official registries before the sale completes, and archives every exchange in a tamper-proof format. This article maps the exact steps. Why WhatsApp Sales in Malaysia Trigger LHDN Scrutiny Malaysia's Service and Sales Tax (SST) applies to both goods and services. The threshold is straightforward: any business making taxable supplies is liable. WhatsApp sales—whether you're a consultant, a product vendor, or a service provider—are fully taxable supplies. LHDN's compliance expectation is threefold: SST collection at point of sale. You must collect and remit SST before or immediately upon invoice. Collecting it later, or deferring, is a violation. Buyer tax ID validation. You're required to record the buyer's tax ID (Company Registration Number for businesses, MyKad for sole proprietors acting in business capacity). You can't issue an invoice without it, and you can't claim the sale as valid SST-collected income without evidence you validated it. Audit trail retention. You must keep records of all transactions, including who initiated the sale, what was discussed, what was agreed, and proof of payment. Seven-year retention is the standard. WhatsApp conversations are admissible evidence in Malaysian tax audits if they're timestamped, unaltered, and complete. But a typical WhatsApp export (manual or via screenshot) is not enough. You need a structured log: who, what, when, how much, tax ID confirmed, SST amount, and payment proof. The Bot Workflow: Tax ID → Validation → SST → Archive The cleanest approach is to automate the compliance steps inside a WhatsApp bot workflow. This works because it removes human error, creates an instant audit log, and keeps the conversation flowing naturally. Step 1: Capture the Buyer's Tax ID When a customer expresses intent to buy, your bot asks for their tax ID. If they're a business, it's their Company Registration Number (Nombor Pendaftaran Syarikat). If they're a sole proprietor selling services, it's their MyKad number (or, if registered as a business, their Unique Business Registration number—UBN). The ask should be direct but not abrupt: "Thanks for your interest! To issue an invoice and collect SST, I'll need your tax ID. Are you buying as a business (Company Reg. number) or as an individual (MyKad)?" Store the response in a structured field tied to the conversation ID. Timestamp it. Do not proceed until this is captured. Step 2: Validate Against LHDN Registry (Real-Time) This is where most WhatsApp sellers fail. They collect the tax ID but never verify it. LHDN's registry is public (via the automation layer in your platform), and you can query it in seconds. If the buyer provides a Company Reg. number, your bot calls the LHDN API (or uses a third-party validation service like MY-Gateway or Verihub ) and confirms: The number exists in the registry. The business is active (not suspended or struck off). The business name matches what the customer said (or close enough to be reasonable). If validation fails, your bot should ask the customer to provide an alternate ID or confirm manually. If it succeeds, log the validation timestamp and result. For sole proprietors, validation is trickier because MyKad numbers aren't publicly searchable. In this case, require them to confirm their UBN (if they have one) or accept a self-declaration with a note in your audit log that manual verification was deferred. This is acceptable to LHDN as long as you document the deferral. Step 3: Quote the Price + SST (Transparent) Now your bot quotes the price and calculates SST upfront. No surprises later. "Your total is RM500. SST (6%) is RM30. Grand total: RM530. Shall I proceed?" Log this quote in the conversation. If the customer agrees, lock it. If they push back, negotiate in the same conversation and log the final agreed price. Step 4: Collect Payment (Immediate) Payment should be collected before you send an invoice. Use a payment gateway integrated into your WhatsApp messaging system (Stripe, Razorpay, or local provider like MOLPay or FPX gateway ). The bot should send a payment link, and only after payment clears should the bot confirm receipt and issue the invoice. Log: payment timestamp, amount received, payment method, transaction I