Use wazapin.messages for text, interactive, and template-style sends, plus read/react and other message actions.

Send a text message

import { textMessage } from "@wazapin/sdk";

await wazapin.messages.send(
  textMessage({
    channel_id: "wzp_ch_123",
    to: "6281234567890",
    body: "Your order is confirmed.",
  }),
);

Buttons

import { buttonsMessage } from "@wazapin/sdk";

await wazapin.messages.send(
  buttonsMessage({
    channel_id: "wzp_ch_123",
    to: "6281234567890",
    body: "Choose an option",
    buttons: [
      { id: "buy", title: "Buy" },
      { id: "help", title: "Help" },
    ],
  }),
);

List message

import { listMessage } from "@wazapin/sdk";

await wazapin.messages.send(
  listMessage({
    channel_id: "wzp_ch_123",
    to: "6281234567890",
    body: "Pick a product",
    button: "View products",
    sections: [
      {
        title: "Catalog",
        rows: [{ id: "sku_1", title: "Starter pack" }],
      },
    ],
  }),
);

Product and catalog messages

await wazapin.messages.sendCatalog({
  channel_id: "wzp_ch_123",
  to: "6281234567890",
  body: "Browse our catalog",
});

await wazapin.messages.sendSingleProduct({
  channel_id: "wzp_ch_123",
  to: "6281234567890",
  catalog_id: "catalog_123",
  product_retailer_id: "sku_123",
});
Use messages.sendMultiProduct() when sending multiple products in one message.

Get a message

const { data: message } = await wazapin.messages.get("msg_123");

console.log(message.status);

Check delivery status

const { data: status } = await wazapin.messages.getStatus("msg_123");

console.log(status.status);

Mark as read

await wazapin.messages.read({
  channel_id: "wzp_ch_123",
  message_id: "wamid.123",
  to: "6281234567890",
});

React to a message

await wazapin.messages.react({
  channel_id: "wzp_ch_123",
  message_id: "wamid.123",
  to: "6281234567890",
  reaction: "👍",
});

Message actions

The SDK also includes:
MethodPurpose
messages.edit()Edit a sent message
messages.delete()Delete a message
messages.pin()Pin a message
messages.unpin()Unpin a message
messages.sendPresence()Send typing/recording presence
messages.downloadMedia()Download message media
messages.uploadImage()Upload an image for message sending