Create/Update Contact

Create or update a contact in the phone's address book.

PUT
https://api.wawp.net/v2/contacts/{chatId}?access_token=123456789&chatId=123456789%40c.us&firstName=John&instance_id=123456789&lastName=Doe

Authentication Required

Login to swap the placeholders with your real Instance ID and Access Token.

Log In
Test /v2/contacts/{chatId} endpoint
PUT
PUT

No query parameters required

This endpoint doesn't expect data in the URL.

Best practices

  • Keep the contact name aligned with your CRM's customer name.

  • Use formatted names (e.g., 'Alice - Support') for clarity.

Managing Your Digital Rolodex

The /v2/contacts/update endpoint allows you to modify the local name of a contact in your WhatsApp address book.


📖 The Name Game: Private vs Public

It is vital to distinguish between the two types of names in WhatsApp.

1. pushname (Public)

  • What: The name Alice chose for herself ("Alice 🌸").
  • Editable: NO. You cannot change this. Only Alice can.

2. name (Private)

  • What: The name you saved Alice as in your phone ("Alice from Accounting").
  • Editable: YES. This endpoint changes this value.
  • Visibility: Only you (the bot owner) see this. Alice does not know you saved her as "Alice from Accounting".

🛠️ Use Cases

1. CRM Synchronization

If you have a CRM like Salesforce, you want your WhatsApp chat list to reflect your CRM data.

  • Scenario: A new lead messages you. Their pushname is "User123".
  • Action: Your agent asks for their name. They say "Bob Smith".
  • API Call: Update contact 123@c.us with firstName: "Bob", lastName: "Smith".
  • Result: In your chat list, they now appear as "Bob Smith".

2. Funnel Tracking

You can append tags to names to visualize where a user is in your funnel.

  • Example: "Bob [Lead]" -> "Bob [Customer]" -> "Bob [VIP]".
  • Benefit: Agents can instantly see the user's status just by looking at the chat header.

🏗️ Technical Nuances

The Virtual Address Book

Since Wawp is a cloud-based system, we emulate the behavior of a mobile OS address book.

  • Persistence: Updates are stored in the session's internal database.
  • Sync: If you are using a multi-device session, this change might sync to your physical phone (if connected), but it is primarily for the API session's context.

"Creating" a Contact

This endpoint is idempotent.

  • If the contact exists: It updates the name.
  • If the contact is new: It "adds" them to your address book. This resolves the name: null issue when fetching contact details later.

❓ FAQ

Q: Will the user see the name I gave them? A: No. This is private data on your end.

Q: Can I update the profile picture too? A: No. You cannot change another user's photo.

Q: What if I only provide a firstName? A: The API will set the full name to just the firstName.

Request Parameters

Configure the parameters required to interact with this endpoint. All query and body arguments are listed below with their details.

Request Body

Sent as a JSON object
string

Your unique WhatsApp Instance ID

Example:
string

Your API Access Token

Example:
string

The unique ID of the contact

Example:
string

First name of the contact

Example:
string

Last name of the contact

Example:

Request Samples

Use these ready-to-go code snippets to integrate our API into your project quickly and efficiently. Choose your preferred language and library.

1const baseUrl = "https://api.wawp.net";
2const endpoint = "/v2/contacts/123456789@c.us";
3const params = new URLSearchParams({
4 "instance_id": "123456789",
5 "access_token": "123456789"
6}).toString();
7const body = {
8 "firstName": "John",
9 "lastName": "Doe"
10};
11
12fetch(`${baseUrl}${endpoint}${params ? '?' + params : ''}`, {
13 method: "PUT",
14 headers: { "Content-Type": "application/json" },
15 body: JSON.stringify(body)
16})
17 .then(async (response) => {
18 if (response.ok) {
19 const data = await response.json();
20 console.log("Success:", data);
21 return data;
22 }
23
24 // Error Handling
25 if (response.status === 401) {
26 console.error("Error 401: Unauthorized - Invalid or Missing Access Token");
27 }
28 if (response.status === 400) {
29 console.error("Error 400: Bad Request - Invalid Parameter Format");
30 }
31 if (response.status === 500) {
32 console.error("Error 500: Internal Server Error - Unexpected Failure");
33 }
34
35 const errorText = await response.text();
36 console.error(`Error ${response.status}: ${errorText}`);
37 })
38 .catch((error) => console.error("Network Error:", error));
Interactive Samples
Ln 38, Col 1javascript

Expected Responses

Explore all possible responses and outcomes from the server. We have documented each status code with data examples to make success and error handling easier.

Contact updated successfully
application/json
boolean *

Example

{
"ok": true
}
Bad Request - Invalid Parameter Format
Unauthorized - Invalid or Missing Access Token
Internal Server Error - Unexpected Failure
Previous TopicGet Contact Profile Picture
Next TopicGet LIDs Mapping

Command Palette

Search for a command to run...