Introduction

Ping! is a smart WhatsApp CRM platform that combines marketing tools, customer communication management, and AI technology—all in one dashboard.

Built with a user-friendly SaaS concept, Ping! empowers small businesses and entrepreneurs to manage customer interactions independently, efficiently, and at scale.

More than just a tool, Ping! also opens up new business opportunities for its users and is designed to be expandable through plugins and future feature integrations—similar to modular systems like WordPress and modern CMS platforms.

In the current version, Ping! includes 6 main modules:

Each module will continue to evolve based on user needs, market trends, and feedback from our community—through a voting system on our upcoming official forum.

Upcoming plugins and features:

We are fully committed to making Ping! the most complete and affordable communication platform for growing businesses across Indonesia and beyond.


Every use of API requires a Device ID. You can copy the Device ID in the device menu in the Action section. Example of Device ID as follows:

03359ec3-2052-43ff-9495-6155b8cab4cc

How to Get Device ID:

Get Device ID

How to API KEY:

API Key Guide

Non Official Whatsapp

In developing Non-Official WhatsApp Tools, we use the Baileys library (https://github.com/WhiskeySockets/Baileys).

However, the published API is not directly directed to the Node server, but is repackaged by Laravel. So, the first request is sent to the API provided by Laravel.

Chats

This API focuses on getting a list of contacts stored in your WhatsApp, as well as message history based on contacts or groups. There are several endpoints currently available:

Send Message

POST
https://chat.ping.co.id/api-app/whatsapp/send-message

This endpoint is for sending single messages to both personal and group numbers.

Body Parameters

Parameter Description Example Requirement
phone Fill in the number or group ID 6281290641111 Required
device_key Device ID. Optional if system is set to auto-pick, but required if targeting group or forced by settings bc8bae5a-0997-40a2-a827-b95adc714dd3 Required if mandatory or sending to group
api_key Your API key XYZ987TOKEN Required
method Message method, available values: text or template text / template Required
text Message content, used only when method is text Hallo guys! Required if method is text
is_group Set true if sending to group, false if to individual true Required

Request Example

{
  "phone": "RECEIVER_NUMBER_OR_GROUP_ID",
  "device_key": "YOUR_DEVICE_ID",
  "api_key": "YOUR_API_KEY",
  "method": "text",
  "text": "Hallo guys!",
  "is_group": true
}

cURL Example

curl --location 'https://chat.ping.co.id/api-app/whatsapp/send-message' \
--header 'Content-Type: application/json' \
--data-raw '{
  "phone": "RECEIVER_NUMBER_OR_GROUP_ID",
  "device_key": "YOUR_DEVICE_ID",
  "api_key": "YOUR_API_KEY",
  "method": "text",
  "text": "Hallo guys!",
  "is_group": true
}'

Response Example

{
  "status": true,
  "message": "Berhasil mengirimkan pesan"
}

Send Message With Template

POST
https://chat.ping.co.id/api-app/whatsapp/send-message

The endpoint here is the same as the previous Send Message endpoint, the only difference is in the body, if in the example above we use the text method, to send a message without a template, in this endpoint we use the template method, to send a message using the template we created in Ping Dashboard

Body Parameters

Parameter Description Example Requirement
phone Receiver phone number or WhatsApp Group ID 6281234567890 / [email protected] Required
device_key Your WhatsApp device identifier bc8bae5a-0997-40a2-a827-b95adc714dd3 Required
api_key Your API key 39c91b1a-03a5-43e6-a798-73b18388652b Required
method Sending method (use template for this) template Required
template Whatsapp message template ID to be used 510b32e9-d6d9-4c75-83ae-f95cdfcc96e3 Required
is_group Set true if sending to a group true Optional
variables Fill with the variables provided in the message template {
"{business_name}": "My Store",
"{name}": "Budi"
}
Required

Request Example

{
  "phone": "RECEIVER_NUMBER_OR_GROUP_ID",
  "device_key": "YOUR_DEVICE_ID",
  "api_key": "YOUR_API_KEY",
  "method": "template",
  "template": "YOUR_TEMPLATE_ID",
  "is_group": true,
  "variables": {
    "{business_name}": "BUSINESS_NAME",
    "{name}": "YOUR_NAME"
  }
}

cURL Example

curl --location 'https://chat.ping.co.id/api-app/whatsapp/send-message' \
--header 'Content-Type: application/json' \
--data-raw '{
  "phone": "RECEIVER_NUMBER_OR_GROUP_ID",
  "device_key": "YOUR_DEVICE_ID",
  "api_key": "YOUR_API_KEY",
  "method": "template",
  "template": "YOUR_TEMPLATE_ID",
  "is_group": true,
  "variables": {
    "{business_name}": "BUSINESS_NAME",
    "{name}": "YOUR_NAME"
  }
}'
/pre>
                

Response Example

{
  "status": true,
  "message": "Berhasil mengirimkan pesan"
}

Message Callback

POST
https://chat.ping.co.id/api-app/whatsapp/callback/device_03359ec3-2052-43ff-9495-6155b8cab4cc

This endpoint is actually created to open communication from the WhatsApp server when a WhatsApp message comes into the connected device.

But sometimes this callback will be useful when we want to do auto reply testing without having to test sending messages on WhatsApp

Body Parameters

Parameter Description Example Requirement
from The sender's number (use [email protected] for personal chats or [email protected] for groups) 62812906*****@s.whatsapp.net Required
message_id Unique identifier for the WhatsApp message 18DD98462C8AA16C5A598C3DEBA0879B Required
message The content of the message Hello Required
from_name Name of the sender Bhisma Kalijaga Required
type Type of message, typically set to single single Required

Request Example

{
  "from": "62812906*****@s.whatsapp.net",
  "message_id": "18DD98462C8AA16C5A598C3DEBA0879B",
  "message": "Halo",
  "from_name": "Bhisma Kalijaga",
  "type": "single"
}

cURL Example

curl --location 'https://chat.ping.co.id/api-app/whatsapp/callback/device_03359ec3-2052-43ff-9495-6155b8cab4cc' \
--header 'Content-Type: application/json' \
--data-raw '{
    "from": "62812906*****@s.whatsapp.net",
    "message_id": "18DD98462C8AA16C5A598C3DEBA0879B",
    "message": "Halo",
    "from_name": "Bhisma Kalijaga",
    "type": "single"
}'

Response Example

{
  "message": {
    "text": "API Doc Ping Example"
  },
  "receiver": "6281290*****@s.whatsapp.net",
  "session_id": "device_03359ec3-2052-43ff-9495-6155b8cab4cc",
  "autoread": false,
  "reply": true
}

Webhook Sample

POST
https://yourdomain.com/webhook

The webhook endpoint will be automatically sent when the connected WhatsApp device receives a message.

Whether or not the webhook is sent depends on you filling in the endpoint url on the device.

Request Example

{
    "device_key": "DEVICEID",
    "name": "FROM NAME",
    "message": "MESSAGE DETAIL ( TEXT )",
    "type": "single"
}

cURL Example

curl --location 'https://yourdomain.com' \
--data '{
    "device_key": "DEVICEID",
    "name": "FROM NAME",
    "message": "MESSAGE DETAIL ( TEXT )",
    "type": "single"
}'