{
"success": true,
"data": {
"messageId": "<string>",
"wamid": "<string>",
"conversationId": "<string>",
"message": {
"id": "<string>",
"wamid": "<string>",
"direction": "inbound",
"type": "<string>",
"text": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"deliveryStatus": "pending",
"deliveryHistory": [
{
"status": "pending",
"timestamp": "2023-11-07T05:31:56Z",
"errorCode": 123,
"errorTitle": "<string>",
"errorMessage": "<string>"
}
],
"repliedBy": "<string>",
"template": {
"name": "order_update",
"language": "en_US",
"templateCategory": "MARKETING",
"parameterFormat": "NAMED",
"components": [
{}
],
"variableValues": {
"customer_name": "Akshay",
"order_id": "ord_123"
},
"headerComponent": {}
},
"mediaId": "<string>",
"isRevoked": true
}
}
}{
"success": false,
"code": "INVALID_TO",
"message": "to (E.164 phone) is required"
}{
"success": false,
"code": "INVALID_TO",
"message": "to (E.164 phone) is required"
}{
"success": false,
"code": "INVALID_TO",
"message": "to (E.164 phone) is required"
}Send a WhatsApp message
Send a session text message or an approved WhatsApp template. Text messages require an open customer-service window; templates can start a conversation. GreenTick templates use named variables only. The to field is cleaned to digits and validated with country code (same rules as dashboard contacts) before calling WhatsApp. Template requests may include scheduledAt. An offset or Z is stored as that instant. A value without a zone is read in the account profile timezone from GET /api-key. Text messages cannot be scheduled.
{
"success": true,
"data": {
"messageId": "<string>",
"wamid": "<string>",
"conversationId": "<string>",
"message": {
"id": "<string>",
"wamid": "<string>",
"direction": "inbound",
"type": "<string>",
"text": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"deliveryStatus": "pending",
"deliveryHistory": [
{
"status": "pending",
"timestamp": "2023-11-07T05:31:56Z",
"errorCode": 123,
"errorTitle": "<string>",
"errorMessage": "<string>"
}
],
"repliedBy": "<string>",
"template": {
"name": "order_update",
"language": "en_US",
"templateCategory": "MARKETING",
"parameterFormat": "NAMED",
"components": [
{}
],
"variableValues": {
"customer_name": "Akshay",
"order_id": "ord_123"
},
"headerComponent": {}
},
"mediaId": "<string>",
"isRevoked": true
}
}
}{
"success": false,
"code": "INVALID_TO",
"message": "to (E.164 phone) is required"
}{
"success": false,
"code": "INVALID_TO",
"message": "to (E.164 phone) is required"
}{
"success": false,
"code": "INVALID_TO",
"message": "to (E.164 phone) is required"
}Authorizations
Create an API key in GreenTick Developer settings. Send it as Authorization: Bearer gt_live_… (Bearer prefix required).
Body
- Option 1
- Option 2
Recipient phone with country code. Non-digits are stripped and leading zeros removed, then validated (e.g. +91 98765 43210 → 919876543210). Invalid numbers return 400 INVALID_TO.
"919876543210"
"text"4096GreenTick phone line ref from GET /phone-numbers (ref field).
"668f1a2b3c4d5e6f7a8b9c0a"

