Send Template
Send a single WhatsApp template message to a contact. Each request sends one approved template to one recipient, with support for named/positional body parameters, button URL parameters, and header media.
Requirements
- Organization must have Meta WhatsApp provider configured
- Contact must already exist (or will be auto-created if
namebody parameter is provided) - Valid API key with
fiq_prefix - Template must be approved in Meta Business Manager
Basic Usage
With Template Parameters
With Header Media
Request Body
Template Parameters
WhatsApp templates support two parameter formats. The endpoint handles both automatically based on the template’s configuration.Named Parameters
For templates using named variables like{{name}}, {{shop}}:
Positional Parameters
For templates using positional variables like{{1}}, {{2}}:
Contact Field Substitution
Parameter values can include placeholders that are automatically replaced with the recipient’s contact data:Button URL Parameters
For templates with dynamic URL buttons (e.g.https://example.com/track/{{1}}), pass the variable portion in buttonParameters:
Named Button Parameters
Positional Button Parameters
Header Media Types
Templates with media headers (image, video, document) require theheaderMedia field with a publicly accessible URL.
Auto-Create Contact
When the phone number doesn’t match any existing contact, the endpoint can automatically create the contact if aname body parameter is provided:
contact_source: "send_template_auto_create" and the message is sent immediately.
name body parameter is provided, a 400 error is returned with a message suggesting you provide bodyParameters.name to auto-create.Response
Success (200)
Failed (200)
When the message fails to send,success is false and the error is surfaced:
Error: Missing Template (400)
Error: Missing Phone Number (400)
Error: Contact Not Found (400)
Integration Example
Template Approval
Authorizations
Bearer token for authentication. Format: Bearer fiq_YOUR_API_KEY
Body
Name of the approved WhatsApp template
"welcome_message"
Recipient phone number (automatically normalized)
"+27123456789"
Key-value pairs for template body variables. Supports named (e.g. name, shop) or positional (e.g. 1, 2) keys. Values can include contact field placeholders like {{first_name}}.
Key-value pairs for template button URL variables
Publicly accessible URL for template header media (image, video, or document)
"https://example.com/promo-banner.jpg"
Team member UUID — marks the message as sent by a human agent instead of the bot

