WA.cr APP - API v2
  1. Messages
WA.cr APP - API v2
  • API v2 Documentation
    • Account
      • Get Account Info
      • Get Usage Statistics
      • Get Plan Limits
    • Authentication (OTP Verification)
      • Send OTP/Verification Code
      • Resend OTP
      • Verify OTP
      • Check OTP Status
      • List Authentication Templates
    • Comments
      • Get Comments
      • Add Comment
    • Contacts
      • List Contacts
      • Create Contact
      • Get Contact
      • Update Contact
      • Delete Contact
      • Batch Create Contacts
      • Batch Delete Contacts
    • Groups
      • List Groups
      • Create Group
      • Get Group
      • Update Group
      • Delete Group
      • Add Contacts to Group
      • Remove Contacts from Group
    • Messages
      • Send Text Message
        POST
      • Send Template Message
        POST
      • Send Media Message
        POST
      • Send Interactive Message
        POST
      • List Messages
        GET
      • Get Message
        GET
    • Sources
      • List Sources
      • Create Source
      • Get Source
      • Update Source
      • Delete Source
    • Statuses
      • List Statuses
      • Create Status
      • Get Status
      • Update Status
      • Delete Status
    • Templates
      • List Templates
      • Sync Templates from WhatsApp
      • Get Template
  1. Messages

Send Text Message

POST
/messages/text
Send a plain text message to a WhatsApp number.
The message is sent via WhatsApp Cloud API. If the phone number doesn't match an existing contact, a new contact is auto-created using default lead settings. Messages support merge fields (e.g., @{contact_first_name}) that are automatically parsed before sending.
Required Scope: messages:send

Request Body#

FieldTypeRequiredValidationDescription
phonestringYesmin:10, max:20, regex: digits/+/-/spaces/()Recipient phone number with country code
messagestringYesmax:4096Message text. Supports merge fields like @{contact_first_name}
contact_idintegerNoMust be valid integerExisting contact ID (skips auto-creation lookup)

Merge Fields#

You can use merge fields in the message text that will be replaced with actual contact data:
@{contact_first_name} — Contact's first name
@{contact_last_name} — Contact's last name
@{contact_email} — Contact's email
@{contact_phone} — Contact's phone number

Auto-Contact Creation#

If no contact_id is provided and the phone number doesn't match an existing contact:
A new contact is auto-created with the phone number
Requires default lead status, source, and assignee configured in Application settings
Subject to the tenant's contact limit

Response Fields#

FieldTypeDescription
message_idstringWhatsApp message ID (wamid format)
contact_idintegerContact ID (existing or auto-created)
phonestringCleaned phone number (digits only, no +)
messagestringFinal message text (after merge field parsing)
statusstringMessage status (sent)
sent_atstringISO 8601 send timestamp
chat_idintegerInternal chat interaction ID
chat_message_idintegerInternal chat message record ID
Note: Messages are subject to WhatsApp's 24-hour customer service window policy. Use template messages for communication beyond this window.

Common Error Responses (All Send Endpoints)#

StatusError CodeDescription
401UNAUTHORIZEDInvalid or missing API token
403INSUFFICIENT_SCOPEToken missing messages:send scope
403FEATURE_LIMIT_EXCEEDEDContact limit or conversation limit reached
403CONTACT_OPTED_OUTContact has opted out of receiving messages
404NOT_FOUNDContact not found (when contact_id provided)
422VALIDATION_ERRORRequest validation failed or missing config for auto-contact creation
422WHATSAPP_NOT_CONFIGUREDWhatsApp not configured for this account
429RATE_LIMIT_EXCEEDEDToo many requests
500MESSAGE_SEND_FAILEDFailed to send via WhatsApp API
500INTERNAL_ERRORUnexpected server error

Validation Error Messages#

FieldMessage
phonePhone number is required / must be at least 10 digits / cannot exceed 20 characters / can only contain digits, +, -, spaces, and parentheses
messageMessage text is required / cannot exceed 4096 characters
contact_idContact ID must be a valid integer

Request

Authorization
Bearer Token
Provide your bearer token in the
Authorization
header when making requests to protected resources.
Example:
Authorization: Bearer ********************
or
Header Params

Body Params application/json

Examples

Responses

🟢200
application/json
Successful response
Body

Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request POST '/messages/text' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "phone": "+919999999999",
    "message": "Hello @{contact_first_name}! This is a test message.",
    "contact_id": 1
}'
Response Response Example
{}
Modified at 2026-02-25 01:06:20
Previous
Remove Contacts from Group
Next
Send Template Message
Built with