Use this flow when you need to notify a customer outside the 24-hour reply window.

1. Confirm the template exists

List approved templates:
curl -sS "https://api.wazapin.com/v1/templates?limit=20" \
  -H "X-Api-Key: YOUR_API_KEY"
Pick name and language from the response. The template must be approved on your channel.

2. Send with components

Template order_shipped with body Hi {{1}}, order {{2}} shipped.
curl -X POST "https://api.wazapin.com/v1/messages" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "channel_id": "wzp_abc123",
    "to": "6281234567890",
    "type": "template",
    "content": {
      "template": {
        "name": "order_shipped",
        "language": { "code": "en_US" },
        "components": [
          {
            "type": "body",
            "parameters": [
              { "type": "text", "text": "John" },
              { "type": "text", "text": "ORD-42" }
            ]
          }
        ]
      }
    }
  }'
If your template has a header image or URL button, add the matching header / button components — see Send template.

3. Check delivery

curl -sS "https://api.wazapin.com/v1/messages/{messageID}" \
  -H "X-Api-Key: YOUR_API_KEY"
Or configure a webhook for message.status_update events.

Unofficial channels

On unofficial (gateway) channels, template sends may render as fallback text. See Channel support.