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

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>"
}
}





© 2026 Kaleyra Inc. All rights reserved.
Trademarks, logos and service marks displayed on this site are registered and unregistered trademarks of Kaleyra Inc.