Overview
WhatsApp is the dominant messaging platform in the Netherlands and across much of Europe, with adoption rates that make it the primary personal communication channel for a large proportion of the population. For businesses that need to communicate with Dutch and European customers through the channels those customers actually use, WhatsApp Business integration provides the API access that makes programmatic WhatsApp messaging possible — automated notifications, customer service conversations, appointment reminders, delivery updates, and the operational communication that happens at the intersection of business systems and customer messaging preferences.
The WhatsApp Business Platform (formerly WhatsApp Business API) is Meta's enterprise-tier access to WhatsApp messaging, distinct from the WhatsApp Business App that individual small businesses use manually. The Platform provides a REST API — either accessed directly through Meta's Cloud API or through a Business Solution Provider (BSP) like Twilio, MessageBird, or CM.com — that allows applications to send and receive WhatsApp messages programmatically at scale. The Cloud API is Meta's preferred approach, hosting the WhatsApp Business API infrastructure on Meta's servers rather than requiring on-premises hosting as the earlier on-premises solution required.
WhatsApp Business integration involves specific compliance requirements and platform constraints that differ from other messaging channels. Template messages must be pre-approved by Meta before they can be sent to customers who have not recently messaged the business. The 24-hour service window governs what types of messages can be sent in response to customer-initiated conversations. Phone number verification and business verification are prerequisites before a WhatsApp Business Account can send messages at scale. Understanding these platform constraints and building integrations that operate within them is as important as the technical API implementation.
We build WhatsApp Business integrations for Dutch and European businesses that need to connect their operational systems — order management, appointment scheduling, customer service, logistics — to WhatsApp messaging for customer communication at scale.
What WhatsApp Business Integration Covers
WhatsApp Business Account setup and verification. The prerequisites before sending messages through the WhatsApp Business Platform.
Business verification: Meta requires business verification before allowing production WhatsApp messaging at scale. The Meta Business Manager account with the business verified through Meta's business verification process — submitting business documentation, verifying the business phone number, and confirming business identity. The verification that unlocks higher messaging tiers and removes the initial low messaging limits.
Phone number registration: the phone number used for WhatsApp Business messaging — a phone number not currently registered with WhatsApp as a personal or business app account. The phone number registered through the Cloud API or through a BSP, verified via OTP, and associated with the WhatsApp Business Account. The display name approved by Meta that appears to recipients as the sender name.
WhatsApp Business Account (WABA): the WABA that sits within the Meta Business Manager, containing the phone numbers used for messaging and the message templates. The WABA ID used in API requests to scope operations to the correct business account.
Messaging tiers: WhatsApp Business accounts start at Tier 1 (1,000 unique conversations per day) and can be upgraded to Tier 2 (10,000) and Tier 3 (100,000) based on message volume and quality rating. The tier upgrade that happens automatically as message volume increases and quality remains high. The quality rating — based on block rates, spam reports, and user feedback — that determines tier eligibility and can cause tier downgrade if quality degrades.
Cloud API authentication and access. Meta's Cloud API for WhatsApp Business messaging.
System user access token: the Meta system user created in Meta Business Manager with the WhatsApp Business messaging permission. The permanent access token generated for the system user — stored securely and used in the Authorization: Bearer {token} header of every Cloud API request. The system user token that does not expire and does not require the OAuth refresh flow of regular user tokens.
Graph API base: the Cloud API is built on Meta's Graph API infrastructure. The base URL https://graph.facebook.com/v{version}/ for all Cloud API requests. The API version pinned in the URL that controls the response format.
Phone number ID: the Phone_Number_ID that identifies the specific WhatsApp phone number being used — required in the URL path for sending messages and retrieving media. The phone number ID distinct from the phone number itself — the internal Meta identifier for the registered number.
Sending template messages. Pre-approved message templates for outbound messaging to customers.
Template requirement: WhatsApp only permits template messages for the first outbound message to a customer who has not recently messaged the business, or for messages sent more than 24 hours after the customer's last message. Template messages use pre-approved content and cannot be modified at send time beyond filling in the variable parameters.
Template creation: templates created in Meta Business Manager or via the POST /{WABA-ID}/message_templates endpoint. The template with a name (snake_case identifier), language (e.g., nl for Dutch, en_US for US English), category (AUTHENTICATION, MARKETING, UTILITY), components (the body, header, footer, and button definitions). The template submission for Meta review — templates are reviewed within 24 hours and either approved, rejected, or marked as pending.
Template categories: UTILITY templates for transactional messages — order confirmations, delivery updates, appointment reminders, account notifications — which have lower restrictions and faster approval. MARKETING templates for promotional content — product announcements, offers — which require explicit marketing opt-in from recipients. AUTHENTICATION templates for OTP and verification codes.
Sending a template message: the POST /{Phone_Number_ID}/messages endpoint for sending a message. The request body with messaging_product: "whatsapp", to (the recipient's phone number in E.164 format — +31612345678), type: "template", and the template object containing name, language.code, and components with the variable values for each placeholder in the template.
Template variable substitution: the components array in the send request with the parameter values for template variables. The body component with parameters — each parameter with type: "text" and text value that fills in a {{1}}, {{2}} placeholder in the template body. The header component for templates with header variables. The button component for URL buttons with dynamic URL suffixes.
Sending free-form messages within the service window. Messages sent within 24 hours of a customer-initiated conversation.
Service window: after a customer sends a message to the business's WhatsApp number, a 24-hour service window opens during which the business can send any type of message — text, images, documents, audio, video, location — without using a pre-approved template. The window that enables natural customer service conversations.
Text messages: the type: "text" message with the text object containing body (the message text, up to 4096 characters) and optional preview_url (true to enable link preview rendering in the message).
Media messages: the type: "image", type: "document", type: "audio", type: "video", or type: "sticker" message types with either a link (a public URL to the media file) or an id (a previously uploaded media ID). The media that WhatsApp downloads and caches for delivery to the recipient. Document messages with filename for setting the displayed filename.
Interactive messages: the type: "interactive" message for list messages and reply button messages within the service window. The list message with a button that opens a menu of options — up to 10 sections each with up to 10 rows. The reply button message with up to 3 quick reply buttons. The interactive message that enables structured customer input without free-text typing.
Location messages: the type: "location" message with latitude, longitude, name, and address — the message that shares a location pin with the customer. The delivery address, the meeting point, or the service location shared directly in WhatsApp.
Reaction messages: the type: "reaction" message for adding emoji reactions to a specific message — the message_id of the message being reacted to and the emoji string.
Receiving messages and webhooks. Processing inbound WhatsApp messages from customers.
Webhook configuration: the webhook URL configured in Meta's App settings — the HTTPS endpoint that Meta sends POST requests to when WhatsApp events occur. The webhook verification endpoint that responds to Meta's initial GET challenge request with the hub.challenge query parameter value. The events subscribed to — messages for inbound messages and message status updates, message_template_status_update for template approval/rejection notifications.
Webhook payload: the WhatsApp webhook POST payload with the entry array containing changes from the subscribed WhatsApp Business Account. The changes array with value objects containing the messaging_product, the metadata (phone number ID and display phone number), the contacts array (sender information), and the messages array with the inbound message data.
Inbound message structure: the message object with id (the message ID), from (the sender's phone number), timestamp, type (the message type), and the type-specific data object. Text messages with text.body. Image messages with image.id and image.mime_type. Document messages with document.id, document.filename, and document.mime_type. Button reply messages with button.payload and button.text. List reply messages with list_reply.id, list_reply.title, and list_reply.description.
Message status updates: the statuses array in the webhook payload for outbound message delivery status — the status object with id (the message ID), status (sent, delivered, read, failed), timestamp, and recipient_id. The delivery tracking that monitors whether messages are reaching and being read by recipients.
Webhook signature validation: the X-Hub-Signature-256 header in every Meta webhook request — the HMAC-SHA256 of the raw request body using the App Secret as the key. The mandatory validation that confirms the webhook originated from Meta before processing.
Media handling. Uploading and downloading media for WhatsApp messages.
Media upload: the POST /{Phone_Number_ID}/media endpoint for uploading media files to Meta's servers before sending. The multipart form data request with the file field containing the binary file content and the type field with the MIME type. The id in the response used as the media ID in subsequent message sends. The media upload that avoids repeated downloading of the same file when sending to multiple recipients.
Media download: the GET /{Media_ID} endpoint for retrieving the download URL for a received media file, followed by a GET to the returned URL to download the binary content. The access token authentication required for media download. The media download for processing images, documents, and audio messages received from customers.
Media types and size limits: WhatsApp's supported media types and size limits — images (JPEG, PNG up to 5MB), documents (PDF, Word, Excel and others up to 100MB), audio (MP3, AAC up to 16MB), video (MP4 up to 16MB). The media type validation before attempting to send.
Message templates management. Programmatic template lifecycle management.
Template listing: the GET /{WABA-ID}/message_templates endpoint for retrieving all templates for the WABA — the template status, components, and approval history. The template status values — APPROVED, PENDING, REJECTED, DISABLED.
Template editing: the POST /{WABA-ID}/message_templates/{template_id} endpoint for updating an existing template's components. Template edits require re-review by Meta.
Template deletion: the DELETE /{WABA-ID}/message_templates?name={template_name} endpoint for removing templates no longer in use.
Business Solution Provider (BSP) integration. Using a BSP for managed WhatsApp Business API access.
BSP advantages: the BSP that manages the WhatsApp Business API infrastructure, number registration, business verification support, and SLA-backed delivery — removing the operational burden of managing the Cloud API directly. Twilio, MessageBird, CM.com, and other BSPs that provide WhatsApp API access as a managed service with simplified onboarding.
Twilio WhatsApp: the Twilio Conversations API and Messages API with WhatsApp channel support — using whatsapp:+{number} addressing and Twilio's Content API for template management. The Twilio sandbox for development testing without full WABA verification.
BSP versus direct Cloud API: the trade-off between BSP simplicity (managed infrastructure, simplified billing, faster onboarding) and direct Cloud API control (lower per-message cost at scale, direct relationship with Meta, full API capability access). The BSP approach for businesses starting WhatsApp integration, transitioning to direct Cloud API when volume justifies the operational overhead.
Integration Patterns
Order and delivery notifications. The e-commerce or logistics system that sends WhatsApp messages at key order lifecycle events — order confirmation, dispatch notification with tracking link, delivery confirmation. The UTILITY template that delivers the notification within WhatsApp, where customers are more likely to see it than in email. The customer's tracking link tapped directly from the WhatsApp message to the carrier's tracking page.
Appointment reminders. The scheduling system that sends WhatsApp reminders before appointments — the healthcare practice, the service business, or the consultancy that reduces no-shows by sending reminders through the channel customers actually check. The template with the appointment date, time, location, and a confirm/cancel button. The reply handling that processes the customer's confirmation or triggers the rescheduling flow.
Customer service conversations. The customer service platform that routes WhatsApp messages from customers to agents — the inbound message that opens a service window, the agent response within the 24-hour window, the conversation history maintained in the customer service system. The integration that connects WhatsApp inbound messages to the helpdesk ticket system and routes agent responses back through the WhatsApp API.
Two-way operational communication. The field operations tool that communicates with field staff or delivery drivers via WhatsApp — the dispatching system that sends job assignments as WhatsApp messages, the driver who replies with status updates, the real-time operational communication through a channel that field staff already use on their phones.
Compliance and Opt-in Requirements
WhatsApp Business messaging has explicit opt-in requirements that differ from email and SMS:
Opt-in requirement: businesses must obtain explicit opt-in from customers before sending them template messages on WhatsApp. The opt-in collected at the point of purchase, account registration, or service sign-up — with explicit disclosure that the customer will receive WhatsApp messages and what type. The opt-in record stored with the customer's phone number.
Opt-in collection methods: website forms, app flows, in-store sign-up, WhatsApp-to-business message initiation. The opt-in that clearly specifies the business name and the WhatsApp message types the customer is consenting to.
Opt-out handling: the customer's ability to opt out of WhatsApp messages — the STOP keyword reply or the explicit opt-out button in template messages. The opt-out that removes the customer from future template message sends and is respected immediately. The opt-out flag stored in the application database that prevents future sends regardless of API availability.
GDPR alignment: the WhatsApp opt-in that satisfies GDPR consent requirements for processing customer phone number data for communication purposes. The consent record with timestamp, collection method, and the specific communications consented to.
Technologies Used
- C# / ASP.NET Core — WhatsApp Cloud API integration for .NET applications
- TypeScript / Node.js — WhatsApp integration using the
whatsapp-cloud-apinpm package or direct HTTP - Python — WhatsApp Cloud API integration for Python-based operational systems and data pipelines
- PHP / Laravel — WhatsApp integration for PHP-based e-commerce and business applications
- Rust / Axum — high-performance WhatsApp webhook processing and message dispatch for high-volume operations
- Meta Cloud API — direct WhatsApp Business API access
- Twilio / MessageBird / CM.com — BSP-based WhatsApp access for managed infrastructure
- Webhooks — inbound message and delivery status event delivery
- HMAC-SHA256 — Meta webhook signature validation
- SQL (PostgreSQL / MySQL) — opt-in records, message log, delivery tracking, conversation state, template registry
- Redis — webhook deduplication, conversation session state, rate limit management
- Hangfire / scheduled jobs — scheduled appointment reminders, batch notification delivery
- Docker — containerised integration service deployment
- GitHub Actions — CI/CD pipeline for integration service deployment
WhatsApp as a Business Communication Channel in the Netherlands
In the Dutch market, WhatsApp's near-universal adoption makes it qualitatively different from other messaging channels — it is where Dutch consumers already communicate with family and friends, which means messages from businesses arrive in a context of high attention and quick response rather than the lower-engagement environment of email or SMS. Dutch consumers are receptive to WhatsApp communication from businesses they have an existing relationship with, particularly for operational messages (orders, appointments, deliveries) where the information is timely and relevant.
The compliance requirements — business verification, template approval, explicit opt-in — are the price of access to this high-engagement channel. Integrations that handle these requirements correctly from the outset, and that deliver messages that are genuinely useful to recipients rather than unwanted marketing interruptions, build the quality rating that sustains WhatsApp Business Platform access over time.
WhatsApp Business, Connected to Your Operations
WhatsApp Business integrations built to production standards — correct Cloud API authentication with permanent system user tokens, template management with approval workflow awareness, webhook signature validation for all inbound events, media handling for rich message delivery, opt-in management that maintains GDPR compliance, delivery status tracking, and the operational monitoring that surfaces messaging failures before they cause customer communication gaps.