1. template-messages
Peach
  • template-messages
    • Send a pre-approved template message
      POST
    • Poll template message status
      GET
    • Poll template messages status
      GET
    • Connect to AI Agent
      POST
    • Send an App message
      POST
  • broadcasts
    • List broadcasts
      GET
    • Launch a broadcast
      POST
    • Poll broadcast status
      GET
    • Get broadcast details
      GET
    • Archive broadcast
      PATCH
    • Cancel broadcast
      PATCH
  • whatsapp_templates
    • List all templates
      GET
    • Create a template
      POST
    • Update template
      PATCH
    • Archive template
      PATCH
    • Pause template
      PATCH
    • Submit template
      PATCH
    • Fetch template details
      GET
  • conversations
    • List messages
      GET
    • List conversations
      GET
    • Update conversation status
      PATCH
    • Agent Assignment
      POST
    • Close Conversation
      POST
    • Unassign Agent
      POST
  • contacts
    • Create multiple contacts
      POST
    • Update a contact
      PATCH
    • Create a contact
      POST
    • Bulk update communication preferences
      POST
    • Create setup guest link
      POST
    • Expire setup guest link
      DELETE
    • Regenerate setup guest link
      POST
  • orders
    • Create an order
    • Find order by ID
    • Create a refund for an order
  • medias
    • About uploaded media
    • List available medias
    • Add a media (Deprecated)
    • Remove a media
    • Create a direct upload for media
    • Finalize a direct uploaded media
  • webhooks
    • Order status webhooks
    • Flow execution status webhooks
    • Message delivery status webhooks
    • AI Agent Execution Webhooks
  • streams
    • List automations
    • Create automation
    • Get automation
    • Update automation
    • Trigger automation
  • triggers
    • List triggers
    • Create trigger
    • Update trigger
  • expressions
    • List condition library
  • Schemas
    • Schemas
      • WhatsApp Template
      • WhatsApp Template Parameters
      • Order
      • RefundRequest
      • Contact
      • LineItem
      • OrderExpiry
      • TemplateMessage
      • AnyValue
      • Argument
      • Message
      • MessageResponse
  1. template-messages

Send a pre-approved template message

POST
https://app.trypeach.io/api/v1/events
Send a template message to a contact. The WhatsApp template should be approved for this API to work. Use send_auth_message for approved AUTHENTICATION templates such as OTP/login/security flows, and send_transactional_message for approved UTILITY templates such as one-at-a-time order or account lifecycle updates.
When sync=true, Peach processes the event in the request cycle instead of enqueueing the event processor. This confirms Peach accepted and processed the event; WhatsApp sent/delivered/read/failed lifecycle updates still arrive later through delivery webhooks. Synchronous send_template_message calls are rate limited per account and event type. Template sends default to 60 requests/minute unless overridden by the api/events_sync_rate_limit_per_minute setting. Auth sends default to 30 requests/minute unless overridden by api/events_auth_sync_rate_limit_per_minute; transactional sends default to 30 requests/minute unless overridden by api/events_transactional_sync_rate_limit_per_minute. Other synchronous event types default to 1 request/minute.
For synchronous calls, use POST /api/v1/events?sync=true. data.peach_template_message_id matches delivery webhook data.message.id. data.template_message_id remains backward compatible and echoes top-level msg_id when provided.

Request

Authorization
Add parameter in header
Authorization
Example:
Authorization: ********************
Query Params

Body Params application/json

Examples
{
  "event_type": "send_template_message",
  "contact": {
    "name": "Jane Doe",
    "email": "jane@example.com",
    "phone_number": "+919876543210"
  },
  "template_message": {
    "whats_app_template_id": "wat_1234abcd",
    "liquid_values": {
      "customer_name": "Jane",
      "order_id": "ORD-1234"
    }
  }
}

Request Code Samples

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
Request Request Example
Shell
JavaScript
Java
Swift
cURL
curl --location 'https://app.trypeach.io/api/v1/events?sync=undefined' \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data-raw '{
  "event_type": "send_template_message",
  "contact": {
    "name": "Jane Doe",
    "email": "jane@example.com",
    "phone_number": "+919876543210"
  },
  "template_message": {
    "whats_app_template_id": "wat_1234abcd",
    "liquid_values": {
      "customer_name": "Jane",
      "order_id": "ORD-1234"
    }
  }
}'

Responses

🟢200Success
application/json
Event accepted. With sync=true, the event has been processed by Peach, but WhatsApp delivery status still arrives later through webhooks.
Bodyapplication/json

Examples
Returned when sync=true is not used.
{
  "status": "success",
  "event_id": "evt_1234abcd"
}
🟠422Parameter Error
🟠429Too Many Requests
Modified at 2026-10-29 16:51:57
Next
Poll template message status
Built with