W
Wasolusi
Developer API
Public Documentation

API WhatsApp Gateway

Integrasikan pengiriman WhatsApp, template message, webhook, dan callback pembayaran lewat REST API Wasolusi.

REST API JSON Bearer Token Webhook Ready
01 / Authentication

Gunakan API Key

Required for send endpoints

Buat API key dari dashboard member. Kirim key lewat salah satu header berikut:

Authorization: Bearer YOUR_API_KEY
# atau
X-API-Key: YOUR_API_KEY
Content-Type: application/json
Hashed Key

Key disimpan hashed SHA-256.

Scopes

Permission per endpoint.

IP Allowlist

Opsional batasi IP integrasi.

02 / Endpoints

Endpoint Reference

POST /api/v1/messages/send messages.send

Kirim pesan teks WhatsApp via queue.

POST /api/v1/messages/send-template messages.send-template

Kirim pesan template dengan variables.

POST /api/v1/payments/callback/{provider} -

Callback pembayaran provider.

POST /api/v1/webhooks/baileys internal

Receiver internal bridge Baileys.

POST

/api/v1/messages/send

Mengantrekan pesan teks WhatsApp. Response 202 berarti pesan masuk queue, bukan jaminan sudah terkirim.

curl -X POST https://www.wasolusi.net/api/v1/messages/send \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "628123456789",
    "message": "Halo dari Wasolusi",
    "device_id": null,
    "meta": {
      "source": "crm",
      "external_id": "ORD-001"
    }
  }'
FieldRequiredTypeNote
toYastringNomor tujuan, contoh 628123456789.
messageYastringIsi pesan teks, maksimal 4096 karakter.
device_idTidakinteger/nullPilih device tertentu jika diperlukan.
metaTidakobjectMetadata integrasi/tracking.
POST

Send Template

curl -X POST https://www.wasolusi.net/api/v1/messages/send-template \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "628123456789",
    "template_name": "order_update",
    "device_id": null,
    "variables": {
      "name": "Fandy",
      "order_id": "INV-001"
    }
  }'

Success Response

HTTP 202
{
  "success": true,
  "message_id": "uuid",
  "status": "queued"
}

Cek dashboard Message Log untuk melihat status final: queued, sent, delivered, read, atau failed.

03 / Webhook

Incoming Message Payload

Incoming message dari bridge dicatat oleh sistem, memicu autoresponder/plugin, dan dapat diteruskan ke webhook URL yang dikonfigurasi user/device.

{
  "event": "messages.upsert",
  "session_id": "session_xxx",
  "messages": [
    {
      "key": {
        "remoteJid": "628123456789@s.whatsapp.net",
        "fromMe": false,
        "id": "MESSAGE_ID"
      },
      "pushName": "Customer",
      "message": {
        "conversation": "Halo"
      }
    }
  ]
}
04 / Errors

Error Response

401 {"message":"API key required"}
401 {"message":"Invalid API key"}
401 {"message":"API key revoked"}
403 {"message":"API key not allowed from this IP"}
403 {"message":"API key does not have permission: messages.send"}
422 Validation error payload
429 Too Many Requests