Only this pageAll pages
Powered by GitBook
1 of 15

V2

Loading...

Response Code

Loading...

Loading...

Loading...

Loading...

Loading...

Endpoint

Loading...

Loading...

Loading...

Loading...

Loading...

Webhook message callback

Loading...

Error Messages

OCA WA API error messages are returned in JSON Format. Each HTTP Status Code will be accompanied by descriptive error text and code. For example, an error might occur.

{"errors": [{"message": "Invalid Authentication Credentials", "code": 17}]}

Success Messages

A successful message will appear as a response value if the HTTP Status code returns 200

(OK). It has a format like the code below

{
    "msgid": "dgyt46exxxxx-h9xxx-d3xx-adf1xxxxx",
    "success": true
}

Error Codes

This error codes is additional information to explain what happened when some errors occured. The following table describe the code which may appear when working with OCA WA API Gateway. If an error is not listed in the table, going back to HTTP status codes above in order to determine the best way to address the issues.

Code
Text
Description

5

low-balance

Indicating that your account has no enough

balance left

9

Too Many

Request Code

Due to the api rate limit, you have to wait until the currently window wxpires, the default api rate limit is in 25 request per seconds. You can check http headers reaponse in order to know the remaining limit of your request. - X-RateLimit-limit : the rate limit of endpoint - X-RateLmit-Remaining : the number of request left - X-RateLimit-Reset : the remaining window before the rate limit resets

13

Getting Started

This document provides information on how to use Whatsapp Bussiness API, in order to you send notification and messages to your customers.

OCA Endpoint URL : https://wa01.ocatelkom.co.id

Before you start

You will need :

  • Verified whatsapp business account

  • A username and password of Oca’s account

  • Registered message template (please contact our customer service to register your template

Download the Postman collection for JSON using this .

Internal Error

Corresponds with HTTP 500. An unknown internal error occured

19

Missing Authorization Header

Corresponds with HTTP 406. It indicates Authorization header is not set properly

33

Data doesn’t

exist

Corresponds with HTTP 404. The certain data

is not found

39

[object]

Corresponds with HTTP 406. There are incorrects or missing parameter in request body, it is like the message_value is not same as the template message - invalid input country code

Destination of phone number Values : country code + phone number

valid example : (+6281381475159, 6281381475159)

43

Auth token is

not supplied

Corresponds with HTTP 401. It indicates

Authorization header is not set properly

45

Auth token is

not valid

Corresponds with HTTP 401. It indicates

Authorization token is not valid

59

Whatsapp

Template

doesn't exist

Code

Corresponds with HTTP 406. Your message

template doesn’t exist

link

Authorization

OCA WA API provides an authorization method for you to access our resources, which we primarily use Access Token JSON Web Token (JWT). We will provide you the JWT token.

HTTP Status Codes

The OCA WA API Gateway attempts to return the appropriate HTTP Status Codes for every request

Code
Text
Description

200

OK

Success

401

Unauthorized

Missing or Incorrect authentication details

404

Not Found

There is no data available, like user setting etc

406

Not Acceptable

Response when there is invalid format in request

429

Too Many

Requests

Returned when a request cannot be served due to the system's rate limit having been

exhausted for the resource.

500

Internal Server Error

Something is broken. This is usually a temporary error in server

Check Message Status

The status of messages can be grabbed through this endpoint GET /api/v2/message/{{msgid}}/status.

There are 4 types of status that you can get from this endpoint submitted, delivered, read, failed/rejected.

{
    "msgid": "5caexxxx-23xx-f1xx-adf12f36xxxx"
    "phone_number": "+6281234xxxxx"
    "history_status":[
        {
            "timestamp": "2024-03-01T03:22:58.073Z"
            "status": "submitted"
        },
        {
            "timestamp": "2024-04-01T03:22:58.073Z"
            "status": "rejected"
        }
    ],
    "additional_info": {
        "code": 1340,
        "reason": "Send Outside Allowed Window"
    }
}

Sending Message Template Interactive

WhatsApp provides interactive message templates that clients can use to send messages with buttons included. The types of interactive buttons available are as follows:

1. Button – Quick Reply: This button can be filled with specific payloads. A suitable use case for this button is a yes or no question, where the recipient doesn't need to type a reply but only needs to press the button. Below is an example of a message using an interactive quick reply button template:

2. Button – Visit Website This button can be used if the business wants to send a message containing a URL link. The URL link can be either static or dynamic. Below is an example of a message using an interactive visit website template.

3. Button – Call Phone Number: This button can be used if a business wants customers to initiate a phone call triggered by this call button. Here is an example message using an interactive button template for calling a phone number.

Steps to Use Interactive Templates

To use interactive WhatsApp templates, users need to complete a few steps:

  1. Request Interactive WhatsApp Template Users can request a template through the developer dashboard API. Please visit the website at and register the template according to the needs of the interactive template you want to use.

  1. Please wait until the request template status changes to "Approved".

Sample Payload Request: Dynamic Visit Website Button

Sample Payload Request – Button Quick Reply

OCA Indonesia Developer
{
    "phone_number": "{{receipient_phone_number}}",
    "message": {
        "type": "template",
        "template": {
            "template_code_id": "{{fill_with_template_code}}",
            "payload": [
                // if your body message have dynamic variable you should fill this body section
                {
                    "position": "body",
                    "parameters": [
                        {
                            "type": "text",
                            "text": "{{fill with your body parameter - Optional}}"
                        }
                    ]
                },
                {
                    "position": "button",
                    "parameters": [
                        {
                            "sub_type": "url",
                            "index": "0",
                            "parameters": [
                                //this parameter will be added to your url path ex: https: //example.com/your-unique-id
                                {
                                    "type": "text",
                                    "text": "{{fill with your unique ID}}"
                                }
                            ]
                        }
                    ]
                }
            ]
        }
    }
}
{
    "phone_number": "{{receipient_phone_number}}",
    "message": {
        "type": "template",
        "template": {
            "template_code_id": "{{fill_with_template_code}}",
            "payload": [
                // if your body message have dynamic variable you should fill this body section
                {
                    "position": "body",
                    "parameters": [
                        {
                            "type": "text",
                            "text": "{{fill with your body parameter - Optional}}"
                        }
                    ]
                },
                {
                    "position": "button",
                    "parameters": [
                        {
                            "sub_type": "quick_reply",
                            "index": "0",
                            "parameters": [
                                {
                                    "type": "payload",
                                    "text": "{{fill with you payload button ex: YES}}"
                                }
                            ]
                        }
                    ]
                }
            ]
        }
    }
}

Sending Message Template Authentication

If your mobile app offers users the option to receive one-time passwords or verification codes via WhatsApp, you must use an authentication template.

  1. The Authentication Template already has a default message from Meta, which cannot be modified by the user. An example message in Indonesian is as follows:

“123456 adalah kode verifikasi anda. Demi keamanan, jangan bagikan kode ini.”

The message text will adjust to the selected language.

  1. The Template Authentication provides a "Copy Button" that makes it easier for recipients to copy the OTP code for entry into a website or application during the verification process.

Copy code button authentication templates consist of:

  • Preset text: <VERIFICATION_CODE> is your verification code.

  • An optional security disclaimer: For your security, do not share this code.

  • An optional expiration warning (optional): This code expires in <NUM_MINUTES> minutes.

  • A copy code button.

Steps for Using WhatsApp Template Authentication

To use the WhatsApp template Authentication, users must follow several steps. Here are the steps and explanations:

  1. Request Whatsapp template Authentication

    Users can request a template through the developer API dashboard. Visit the website and navigate to the template menu, then click on the Add Template button. A pop-up dialog will appear; fill in the language and select the Authentication template, then click the Continue button.

  1. You can choose to use the Security Recommendation and add expiry time information to the template. The template is provided by default by META.

  1. Please wait until the submission status changes to Approved.

Sending Authentication Template

URL:

Header:

Payload Body

The main Object

Name
Type
Required
Description

The message Object

Name
Type
Required
Description

The template Object

Name
Type
Required
Description

The payload Array of Component Object

Name
Type
Required
Description

The Parameters Body Component Type Position

Name
Type
Required
Description

The Parameters Header Component Type Position

Name
Type
Required
Description

The image, video & document Object

Name
Type
Required
Description

The Parameters Button Components Type Position

Name
Type
Required
Description

The Parameters sub_type Type Position

Name
Type
Required
Description

Sending Media Message Template

You can use POST /api/v2/push/message endpoint to send message template to your customers. In order to use this feature, you need to create message template. You can request message template to our customer service.

With this media message template, you can send media like image, video & document along with your message text.

Body:

{
  "message": {
    "type": "template",
    "template": {
      "template_code_id": "{{fill_your_template_code_id}}",
      "payload": [
        {
          

The main Object

Name
Required
Description

The message Object

Name
Required
Description

The template Object

Name
Required
Description

The payload Object

Name
Required
Description

The body parameters Object

Name
Required
Description

The header parameters Object

Name
Required
Description

The image, video & document Object

Name
Required
Description
{
  "message": {
    "type": "template",
    "template": {
      "template_code_id": "{{fill_your_template_code_id}}",
      "payload": [
        {
          "position": "header",
          "parameters": [
            {
              "type": "image",
              "image": {
                "url": "{{fill_your_image_url}}",
                "caption": "{{fill_your_image_caption}}"
              }
            }
          ]
        },
        {
          "position": "body",
          "parameters": []
        }
      ]
    }
  },
  "phone_number": "{{fill_your_recipient_number}}"
}
{
  "message": {
    "type": "template",
    "template": {
      "template_code_id": "{{fill_your_template_code_id}}",
      "payload": [
        {
          "position": "header",
          "parameters": [
            {
              "type": "video",
              "video": {
                "url": "{{fill_your_video_url}}",
                "caption": "{{fill_your_video_caption}}"
              }
            }
          ]
        },
        {
          "position": "body",
          "parameters": []
        }
      ]
    }
  },
  "phone_number": "{{fill_your_recipient_number}}"
}

document

Yes, when “type” : “document”

Media object containing document

"position"
:
"header"
,
"parameters": [
{
"type": "document",
"document": {
"url": "{{fill_your_document_url}}",
"caption": "{{fill_your_document_caption}}"
}
}
]
},
{
"position": "body",
"parameters": []
}
]
}
},
"phone_number": "{{fill_your_recipient_number}}"
}

phone_number

Yes

Destination of phone number Values : country code + phone number (+6281381475159, 6281381475159)

message

Yes

Contain all message information body

type

Yes

The type of your message

Values : template

template

Yes

Contain template information

template_code_id

Yes

The registered template message, you will be given the template code id for your requested template Values : template code id

payload

Yes

Contain array of information for specific template

position

Yes

Describe the position type Values : header | body

parameters

Yes

Array containing the content of each position type

type

Yes

Describe the type for parameters Values : text

text

Yes

Contain value of text

type

Yes

Describe the type value Values : text | image | video | document

text

Yes, when “type” : “text”

Contain value of text

image

Yes, when “type” : “image”

Media object containing image

video

Yes, when “type” : “video”

Media object containing video

url

Yes

The protocol and URL of the media to be sent. Use only with HTTP/HTTPS URLs.

video

Object

Yes, when “type” : “video”

Media object containing video

document

Object

Yes, when “type” : “document”

Media object containing document

phone_number

String

Yes

Destination of phone number Values : country code + phone number (+6281381475159, 6281381475159)

message

Object

Yes

Contain all message information body

type

String

Yes

The type of your message

Values : template

template

Object

Yes

Contain template information

template_code_id

String

Yes

The registered template message, you will be given the template code id for your requested template Values : template code id

payload

Array of Object

Yes

Contain array of information for specific template

position

String

Yes, if template use this component

Describe the position type Values : header | body | button

parameters

Array of Object

Yes, if template use this component

Array containing the content of each position type

type

String

Yes

Describe the type for parameters Values : text

text

String

Yes

Contain value of text

type

String

Yes

Describe the type value Values : text | image | video | document

text

String

Yes, when “type” : “text”

Contain value of text

image

Object

Yes, when “type” : “image”

url

String

Yes

The protocol and URL of the media to be sent. Use only with HTTP/HTTPS URLs.

sub_types

String

Yes

Describe the sub_type value Values : quick_reply | url_dynamic

index

Number

Yes

Contains the sequence number of the button use. The sequence number start from 0

parameters

Object

Yes

type

String

Yes

The protocol and URL of the media to be sent. Use only with HTTP/HTTPS URLs.

payload

String

Yes, when “type” : “payload”

Contain text for the recepient to use to do a quick reply

text

String

Yes, when “type” : “text”

Media object containing image

Contains an array of information for a specific sub_type

Containt text that will be used for dynamic_url

[POST] https://wa01.ocatelkom.co.id/api/v2/push/message 
Authorization : {{JWT_AUTH}}
content-type : application/json
{
    "phone_number": "6281345xxxxxx",
    "message": {
        "type": "template",
        "template":{
            "template_code_id": "{{fill_with_template_code}}",
            "payload": [
             {
                "position": "body",
                "parameters": [
                {
                  "type": "text",
                  "text": "{{fill_with_otp_code}}"
                }
               ]
             },
             {
                "position": "button",
                "parameters": [
                {
                  "sub_type": "url",
                  "index": "0",
                  "parameters":  [
                   {
                     "type": "text",
                     "text": "{{fill_with_otp_code}}"
                   }
                 ]
                }
               ]
             }
            ]
        }
    }
}

Sending Message Template

  • Membuat Template Pesan:

    • Sebelum menggunakan fitur ini, Anda perlu membuat template pesan terlebih dahulu.

    • Silahkan baca Panduan OCA API untuk membuat template.

  • Data Dinamis dalam Template:

    • Template pesan dapat mencakup placeholder untuk data dinamis. Misalnya, {{name}} placeholder yang akan diganti dengan nama pelanggan ketika pesan dikirim.

    • Hal ini membuat pesan menjadi lebih personal dan relevan bagi penerima.

  • Menggunakan Template:

    • Setelah template dibuat dan disetujui, Anda bisa menggunakan endpoint API POST /api/v2/push/message untuk mengirimkan pesan kepada pelanggan.

    • Anda akan mengirimkan template ID bersama dengan data yang diperlukan.

URL:

Header:

Body:

Response:

The main Object

Name
Type
Required
Description

The message Object

Name
Type
Required
Description

The template Object

Name
Type
Required
Description

The payload Array of Component Object

Name
Type
Required
Description

The Parameters Body Component Type Position

Name
Type
Required
Description

The Parameters Header Component Type Position

Name
Type
Required
Description

The image, video & document Object

Name
Type
Required
Description

The Parameters Button Components Type Position

Name
Type
Required
Description

The Parameters sub_type Type Position

Name
Type
Required
Description

video

Object

Yes, when “type” : “video”

Media object containing video

document

Object

Yes, when “type” : “document”

Media object containing document

phone_number

String

Yes

Destination of phone number Values : country code + phone number (+6281381475159, 6281381475159)

message

Object

Yes

Contain all message information body

type

String

Yes

The type of your message

Values : template

template

Object

Yes

Contain template information

template_code_id

String

Yes

The registered template message, you will be given the template code id for your requested template Values : template code id

payload

Array of Object

Yes

Contain array of information for specific template

position

String

Yes, if template use this component

Describe the position type Values : header | body | button

parameters

Array of Object

Yes, if template use this component

Array containing the content of each position type

type

String

Yes

Describe the type for parameters Values : text

text

String

Yes

Contain value of text

type

String

Yes

Describe the type value Values : text | image | video | document

text

String

Yes, when “type” : “text”

Contain value of text

image

Object

Yes, when “type” : “image”

url

String

Yes

The protocol and URL of the media to be sent. Use only with HTTP/HTTPS URLs.

sub_types

String

Yes

Describe the sub_type value Values : quick_reply | url_dynamic

index

Number

Yes

Contains the sequence number of the button use. The sequence number start from 0

parameters

Object

Yes

type

String

Yes

The protocol and URL of the media to be sent. Use only with HTTP/HTTPS URLs.

payload

String

Yes, when “type” : “payload”

Contain text for the recepient to use to do a quick reply

text

String

Yes, when “type” : “text”

Media object containing image

Contains an array of information for a specific sub_type

Containt text that will be used for dynamic_url

[POST] https://wa01.ocatelkom.co.id/api/v2/push/message 
Authorization : {{JWT_AUTH}}
content-type : application/json
{
    "message": {
        "type": "template",
        "template": {
            "template_code_id": "{{fill_your_template_code_id}}",
            "payload": [
                {
                    "position": "body",
                    "parameters": [
                        {
                            "type": "text",
                            "text": "{{fill_value_varibale_on_body}}"
                        }
                    ]
                }
            ]
        }
    },
    "phone_number": "{{fill_your_recipient_number}}"
}
{
    "message": {
        "type": "template",
        "template": {
            "template_code_id": "{{fill_your_template_code_id}}",
            "payload": [
                {
                    "position": "button",
                    "parameters": [
                        {
                            "sub_type": "quick_reply",
                            "index": 0,
                            "parameters": [
                                {
                                    "type": "payload",
                                    "payload": "{{fill_value_on_quick_reply}}"
                                }
                            ]
                        },
                        {
                            "sub_type": "url_dynamic",
                            "index": 1,
                            "parameters": [
                                {
                                    "type": "text",
                                    "text": "{{fill_value_varibale_on_url_dynamic}}"
                                }
                            ]
                        }
                    ]
                },
                {
                    "position": "body",
                    "parameters": []
                }
            ]
        }
    },
    "phone_number": "{{fill_your_recipient_number}}"
}
{
    "msgid": "xxxx9f4b-334a-27b2-xxxxb1e2xxxx",
    "success": true
}
{
    "errors": [
        {
            "message": "Auth Token Is Not Valid",
            "code": "45"
        }
    ]
}
{
    "errors": [
        {
            "message": [
                {
                    "value": "89694353628",
                    "msg": "Invalid country code",
                    "param": "phone_number",
                    "location": "body"
                }
            ],
            "code": "39"
        }
    ]
}

Error Code

Webhook Error Codes for WhatsApp Message Delivery

This section provides a comprehensive guide to the error codes encountered during the WhatsApp message delivery process via webhooks. Understanding these codes is crucial for diagnosing issues and implementing effective solutions to ensure the seamless delivery of messages.

Authorization Errors

Description: These errors occur when the app, operator, or account lacks required permissions to perform an action or access a resource.

Error Code
Reason
Description
Recommended Action

Business Account Errors

Description: Errors related to the WhatsApp Business Account’s operational status, active session windows, or Meta-imposed delivery limits.

Error Code
Reason
Description
Recommended Action

Network Errors

Description: Errors triggered by network instability or issues in communication between your server and the WhatsApp API.

Error Code
Reason
Description
Recommended Action

Other Errors

Description: These errors are general system or message delivery issues that are not specific to a particular category (e.g. internal server errors, unknown errors, or message timeout conditions).

Error Code
Reason
Description
Recommended Action

Quota Errors

Description: Triggered when the available WhatsApp message quota for a specific category has been used up or the billing account has expired.

Error Code
Reason
Description
Recommended Action

Rate Limit Errors

Description: These errors occur when message sending or API request limits are exceeded for a specific WhatsApp number, application, or broadcast session.

Error Code
Reason
Description
Recommended Action

Recipient Errors

Description: These errors are caused by invalid recipient phone numbers, unsupported devices or WhatsApp versions, or user participation in marketing-related experiments.

Error Code
Reason
Description
Recommended Action

Subscription Errors

Description: Errors related to expired or invalid billing accounts that prevent further message delivery.

Error Code
Reason
Description
Recommended Action

System Errors

Description: Errors caused by internal WhatsApp system issues, overload, or downtime affecting broadcast or message processing.

Error Code
Reason
Description
Recommended Action

Template Errors

Description: Errors due to issues with message templates, such as invalid parameters, missing templates, or templates paused by Meta.

Error Code
Reason
Description
Recommended Action

Validation Errors

Description: Validation issues caused by incomplete data, incorrect parameter values, invalid sender/operator information, or unsupported request types.

111004

Operator not allowed

The operator is not authorized to perform this action.

Please contact support.

111005

Service not allowed

The requested service is not allowed.

Please check your permissions or contact support.

111006

Unsupported post request

The request method or endpoint is not supported.

—

111007

API access disrupted.

API access has been disrupted.

Please visit the App Dashboard and complete the Data Use Checkup to restore access.

111008

Forbidden user

User does not have access to the required billing channel.

Please contact support.

111009

Invalid token

The requested service is not allowed due to invalid or expired token.

Please check your permissions or contact support.

131050

User has stopped receipt of marketing messages

The recipient has opted out of receiving marketing messages from your business.

Do not retry sending messages to this user as they will not be received.

131057

Business Account in maintenance mode

The business account is currently in maintenance mode.

The business account is currently in maintenance mode and cannot process requests at this time.

112001

The business phone number has been deleted.

The customer's phone number is no longer registered on WhatsApp.

-

112003

The account is not registered

The account you are trying to access is not registered.

Please check the account details or contact support.

112004

Sent Outside Allowed Window

The request was sent outside of the allowed time window.

Schedule the WhatsApp broadcast delivery during operational hours (07:00 - 22:00). Contact OCA Helpdesk if you need to send a broadcast outside these hours.

114003

An unknown error occurred

An unknown error occurred.

Please try again later or contact support.

114004

Request for URL failed

The request could not be completed.

Please try again later or contact support if the issue persists.

114005

System Error

The connection was reset by the server.

Try creating another broadcast or contact OCA Helpdesk.

114006

Message failed to send because it was pending for too long

The message remained pending too long before being processed by WhatsApp servers.

Message failed to send because it was pending for too long. Try sending the message again. If the issue persists, check your server connection or message queue.

131053

Media upload error

Media upload failed due to unsupported file type or upload problem.

Check the media file for errors or unsupported formats. Verify MIME type with file -I <filename> and ensure it is included in WhatsApp’s Supported Media Types list.

75

There was an internal server error while processing your request. Please try again later

An unexpected error occurred while processing the request.

Please try again or contact support.

133016

Account register/deregister rate limit exceeded

Too many registration or deregistration attempts in a short period.

Registration or Deregistration failed because there were too many attempts for this phone number in a short period of time.

116001

Application request limit reached

The app exceeded its request limit.

Try again later.

116002

Too many messages sent in a short time. Try again in a few hours.

Server received too many requests in a short time.

Please try again later or reduce the frequency of your requests.

116003

Too many messages sent. Try again with less broadcast to avoid limits.

Requests were temporarily throttled by the server.

Try again with fewer broadcasts to avoid limits.

117004

Invalid WhatsApp number.

Invalid phone number format or incorrect MSISDN.

Update contact information for this recipient.

117005

Failed to send within time limit.

The message has expired and can no longer be delivered.

Failed to send within time limit. Contact OCA Helpdesk for assistance.

117006

Unsupported WhatsApp version

The recipient’s WhatsApp version does not support this message type.

Message failed to send because the receiver is on a version of WhatsApp that does not support this message.

117007

Recipient cannot get message due to unsupported device.

The recipient’s device is not supported for this message.

The device is not suitable for this operation. Please ensure the device meets the required specifications or try a different device.

130472

User’s number is part of an experiment

The user is part of WhatsApp’s marketing message experiment and cannot receive marketing messages.

Message will not be sent or billed. Cannot be resent. Contact the user through another channel and ask them to message your business so you can resend within an open customer service window.

118004

System Error

Generic internal failure.

—

132012

Template Parameter Format Mismatch

The template structure or variables do not match expected format.

Check the template and ensure all message elements match the required format.

132015

Template Paused

The template has been paused due to low quality and cannot be used.

Edit the template or create a broadcast with a new one.

119001

Template category invalid. Make sure the category match its content.

The template category does not exist or is invalid.

The category was not found. Contact OCA Helpdesk for assistance verifying your template category.

119002

Body message is invalid. Double-check your template format.

The body of the template is invalid.

The request contains unsupported or misspelled parameters. Double-check your template format.

119003

Template Not Found

The specified template does not exist.

Template not found. Make sure the template has been approved.

119004

Number of parameters does not match the expected number of params

Parameter count mismatch between template and payload.

A parameter value is invalid. Please check your inputs and try again.

121002

Unverified sender information. Check and setup your account properly.

The specified sender could not be found or verified.

The specified sender could not be found. Please verify the sender’s details and try again.

121003

The operator does not exist.

The specified operator does not exist in the system.

Try creating another broadcast or contact OCA Helpdesk.

121004

Parameter value is not valid

A parameter value is invalid.

A parameter value is invalid. Please check your inputs and try again.

121005

Resource type is invalid

The specified resource type is unsupported.

The specified resource type is invalid or unsupported.

121006

Unsupported request - method type: POST

Unsupported HTTP method used.

The requested operation is not supported. Check the method type and try again.

111001

Application does not have permission for this action

The application does not have the permission required to perform this action.

Permission is either not granted or has been removed.

111002

API Permission

The API permission for the requested service is not granted.

Permission is either not granted or has been removed.

111003

Not part of the provider network

The requested service is not allowed.

131031

Account has been locked

Your WhatsApp Business Account is restricted and cannot send messages.

Contact OCA Helpdesk for further information regarding account restrictions.

131047

Re-engagement message

Message failed because more than 24 hours have passed since the customer last replied.

Session ended after 24 hours. Send another broadcast using a template.

131049

This message was not delivered to maintain healthy ecosystem engagement

Message was not delivered to maintain a healthy engagement ecosystem.

113001

cURL error 28

Network connection timed out or was unstable.

Network unstable. Restart connection and try creating new broadcast.

113003

cURL error 35

SSL connection error or internal communication failure.

Try creating another broadcast or contact OCA Helpdesk.

113004

cURL error 7

Failed to connect to host.

114001

Invalid response code (502)

The server returned a 502 Bad Gateway error, indicating that it received an invalid response from an upstream server.

Please try again later or contact support for further assistance.

131008

Required parameter is missing

One or more required parameters were not included in the request.

The request is missing a required parameter.

114002

An unexpected error has occurred

An unexpected error occurred while processing the request.

115001–115005

Insufficient Quota

Insufficient quota for sending message

Lakukan top up kuota sesuai kebutuhan broadcast.

115006

Account expired

The billing account has expired.

Your billing account has expired. Please renew it to continue using the service.

130429

Rate limit hit

Cloud API message throughput limit has been reached.

Contact OCA Helpdesk for further assistance.

131048

Spam rate limit hit

Sending rate restricted due to previous spam or blocked messages.

Message failed to send because there are restrictions on how many messages can be sent from this phone number. This may be because too many previous messages were blocked or flagged as spam.

131056

Daily rate limit exceeded

Daily broadcast sending limit exceeded.

117001

Unsupported country code

The country code is not supported in OCA’s system.

Verify that the recipient’s phone number uses a valid and supported country code.

117002

Unregistered WhatsApp number

The recipient number is not registered on WhatsApp.

Update contact information for this recipient.

117003

Contact doesn’t exist

The specified contact could not be found.

115006

Account Expired

Your billing account has expired.

Your billing account has expired. Please renew it to continue using the service.

118001

System Overload

WhatsApp system temporarily overloaded.

Temporary due to downtime or system overload. Please contact support.

118002

System Error

Provider failed to process broadcast.

Quota will be refunded within a maximum of 31 days.

118003

System Error

Internal error occurred.

132000

Invalid Template Parameters or Variables

The template includes invalid or incorrectly formatted parameters.

Check the endpoint reference to determine which parameters are required.

132001

Template does not exist

The template does not exist or is not approved for the selected language.

The template does not exist in the specified language or has not been approved. Contact OCA Helpdesk for assistance checking your template category.

132005

Message Exceeds Character Limit

Template body text exceeds the 1024-character limit.

Error Code

Reason

Description

Recommended Action

131000

Something went wrong

Message failed to send due to an unknown validation error.

—

131009

Parameter value is not valid

One or more parameter values are invalid.

See the endpoint’s reference to determine which values are supported for each parameter, and check how to add a phone number to a WhatsApp Business Account.

121001

Incomplete Parameter

The request is missing one or more required parameters.

A parameter value is invalid. Please check your inputs and try again.

Please check your permissions or contact support.

WhatsApp limits each number to 2–3 marketing messages every 24 hours to prevent spam. Try sending another broadcast in a few hours. Read to learn more.

Try creating another broadcast or contact OCA Helpdesk.

Please try again or contact support.

WhatsApp stopped broadcast sending because your OCA account sent too many broadcasts in a short time. Adjust your broadcast schedule and ensure there are no duplicate numbers within your contact groups.

Verify recipient number.

Please try again or contact support.

Ensure the number of characters in the Body Message does not exceed 1024, including variables.

this article