WhatsApp V2 Error Codes for Send Message APIs
This topic provides information about various error responses while sending messages that are you will be receiving as API response when executing the WhatsApp REST APIs.
The topic contains the following sections:
- HTTP Status Codes for Send Message
- Sample Responses
- Error Responses that are being Sent as Part of Callbacks
HTTP Status Codes for Send Message
The following is list of HTTP status codes for send message:
Error Codes | Description | Retry Required | Action Owner | Resolution |
|---|---|---|---|---|
WA200 | Success for send message API | No | NA | NA |
RBC001 | Incorrect SID or API Key. | No | Customer's Technology team. | Fix the credentials |
E110 | Insufficient Balance. | Yes | Customer's Operations team. | Please verify the account limits. If the limit is reached, increase the account limit by reaching out to the Tata Communications operations team. |
Yes | Tata Communications Support team. | An automated email alert will be sent once the account balance or limit crosses 70%. Both the Tata Communications support team and the account manager would reach out for limit increment. | ||
WAV2101 | Account daily limit reached. | No | Customer's Operations team. | Please check the account's daily sending limit. If the limit has been reached, contact the Tata Communications operations team for increased limits, justifying the use case. |
WA400 | Incorrect Payload. | Yes | Customer's Technology team. | Fix the JSON payload structure as per specifications |
WA401 | Unauthorized access. | Yes | Customer's Operations team. | Validate the account configurations and approval status of the number/template. If the issue persists, reach out to the Tata Communications operations team for further support. |
Yes | Tata Communications Operations team. | Validate the configurations and contact Meta support (if required). | ||
WA500 | Internal Server Error. | Yes | Customer's Technology team. | Implement 3 retries with intervals of 5, 10, and 15 minutes. |
Yes | Customer's Operations team. | After 3 retry attempts, if the issue still persists, escalate the case to the Tata Communications Operations team. |
Sample Responses
The following are the sample responses:
Success Response
{
"code": "WA200",
"message": "Request Processed Successfully",
"data": {
"message_id": "d9XXXXcf-cXX0-4XX2-aXX3-5aXXbc"
},
"error": {}
}Incorrect SID or API Key
401 Unauthorized
{
"code": "RBC001",
"message": "Incorrect SID or API key.",
"data": [],
"error": {
"body": "Incorrect SID or API key.",
"error": "record not found"
}
}Unauthorised Account type
{
"code": "WA401",
"message": "API is not available for given customer.Please contact support for more info",
"data": {},
"error": {
"account": "API is not available for given customer.Please contact support for more info"
}
}Low balance
{
"code": "E110",
"message": "Please check your balance, You have a low balance!",
"data": {},
"error": {
"balance": "Please check your balance, You have a low balance!"
}
}Unauthorized phone number status
{
"code": "WA401",
"message": "The phone number you're using not active",
"data": {},
"error": {
"phone_number": "The phone number you're using not active"
}
}Unauthorized phone number version
{
"code": "WA401",
"message": "The phone number you're using is associated with different Version of our WA API. Please use the appropriate endpoint.",
"data": {},
"error": {
"phone_number": "The phone number you're using is associated with different Version of our WA API. Please use the appropriate endpoint."
}
}Unauthorized phone number
{
"code": "WA401",
"message": "Phone number is not present or does not belong to the account.",
"data": {},
"error": {
"phone_number": "Phone number is not present or does not belong to the account."
}
}Incorrect payload
{
"code": "WA400",
"message": "Refer to correct payload format",
"data": {},
"error": {
"payload": "Incorrect payload format"
}
}Max batch size reached
{
"code": "WA400",
"message": "Maximum Batch Size allowed is 100",
"data": {},
"error": {
"error": "Maximum Batch Size Reached"
}
}Incorrect payload format (for batch API)
{
"code": "WA400",
"message": "Refer to correct payload format for message at position:
<index> .",
"data": {},
"error": {
"payload": "Refer to correct payload format for message at position:
<index> ."
}
}Internal Server Error
{
"code": "WA500",
"message": "Please try again later",
"data": {},
"error": {
"error": "Internal server error"
}
}Error Responses that are Sent as Part of Callback
The following are the sample responses that are sent as part of the callback:
Not Sent Callbacks: Missing “to” number or “type”
{
"code": "WAV2400",
"status": "not sent",
"reason": "to number or type is missing in payload",
"message_id": "<requestID>",
"extra_info": {
"message_id": "<message_id>",
"waba_id": "<waba_id>",
"ref": "<value>",
"ref1": "<value>",
"ref2": "<value>"
}
}Not Sent Callbacks: Account daily limit reached
{
"code": "WAV2101",
"status": "not sent",
"reason": "Account daily limit reached",
"message_id": "<requestID>",
"extra_info": {
"message_id": "<message_id>",
"waba_id": "<waba_id>",
"ref": "<value>",
"ref1": "<value>",
"ref2": "<value>"
}
}Not Sent Callbacks: Blocklist “to” Number
{
"code":"WAV2400",
"status": "not sent",
"reason": "message delivery failed as the number belongs to the blocklist",
"message_id": "<requestID>",
"extra_info": {
"message_id": "<message_id>",
"waba_id": "<waba_id>",
"ref": "<value>",
"ref1": "<value>",
"ref2": "<value>"
}
}Not Sent Callbacks: Template details not found in Database
{
"code":"WAV2400",
"status": "not sent",
"reason": "Template not found in our database. Try re-creating it via Kaleyra APIs/UI",
"message_id": "<requestID>",
"extra_info": {
"message_id": "<message_id>",
"waba_id": "<waba_id>",
"ref": "<value>",
"ref1": "<value>",
"ref2": "<value>"
}
}Updated 21 minutes ago
