Dokumentasi/WhatsApp
Panduan TerverifikasiWhatsAppID

Developer API WhatsApp & OpenAPI

Panduan developer untuk otentikasi API key statis, eksplorasi spesifikasi OpenAPI, contoh kode multi-bahasa, dan pengujian API.

3 menit baca•Diperbarui 24/8/2026•/whatsapp/developer-api

Panduan pengembang (developer guide) ini menjelaskan langkah integrasi WhatsApp Business Platform API ke dalam sistem backend kustom Anda.


1. Otentikasi & Pengelolaan API Key

Untuk melakukan pemanggilan API terotentikasi, buat API Key statis organisasi terlebih dahulu:

  1. Buka menu Console > WhatsApp > API Keys (/console/whatsapp/api-keys).
  2. Klik tombol Generate API key dan salin secret yang diberikan.

Manajemen API Key

Kirimkan token tersebut pada header HTTP request Anda:

HTTP
Authorization: Bearer pfn_wa_sec_xxxxxxxxxxxxxxxxxxxxxxxxxxxx

atau

HTTP
x-api-key: pfn_wa_sec_xxxxxxxxxxxxxxxxxxxxxxxxxxxx

2. Referensi Interaktif Spesifikasi OpenAPI

Buka /api/openapi untuk mengakses dokumentasi interaktif OpenAPI lengkap dengan skema parameter, model data, dan format respons JSON.

Referensi OpenAPI

Endpoint Utama WhatsApp:

  • POST /api/whatsapp/messages — Mengirimkan pesan template, teks bebas, atau pesan interaktif.
  • GET /api/whatsapp/devices — Mengambil daftar perangkat WhatsApp yang terhubung.
  • GET /api/whatsapp/templates — Mengambil daftar template pesan dan struktur parameternya.

3. Beralih Contoh Bahasa Pemrograman

Halaman referensi API menyediakan cuplikan kode siap pakai untuk berbagai bahasa pemrograman populer:

Contoh Kode OpenAPI


4. Contoh Pemanggilan API

cURL

BASH
1curl -X POST "https://pfnapp.id/api/whatsapp/messages" \
2 -H "Authorization: Bearer pfn_wa_sec_xxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
3 -H "Content-Type: application/json" \
4 -d '{
5 "to": "+6281234567890",
6 "type": "template",
7 "template": {
8 "name": "notifikasi_status_pesanan",
9 "language": {
10 "code": "id"
11 },
12 "components": [
13 {
14 "type": "body",
15 "parameters": [
16 { "type": "text", "text": "Budi" },
17 { "type": "text", "text": "INV-2026-001" }
18 ]
19 }
20 ]
21 }
22 }'

TypeScript / Node.js

TYPESCRIPT
1const response = await fetch("https://pfnapp.id/api/whatsapp/messages", {
2 method: "POST",
3 headers: {
4 Authorization: `Bearer ${process.env.PFN_WHATSAPP_API_KEY}`,
5 "Content-Type": "application/json",
6 },
7 body: JSON.stringify({
8 to: "+6281234567890",
9 type: "template",
10 template: {
11 name: "notifikasi_status_pesanan",
12 language: { code: "id" },
13 components: [
14 {
15 type: "body",
16 parameters: [
17 { type: "text", text: "Budi" },
18 { type: "text", text: "INV-2026-001" },
19 ],
20 },
21 ],
22 },
23 }),
24})
25
26const data = await response.json()
27console.log("Respons API:", data)

Python

PYTHON
1import os
2import requests
3
4url = "https://pfnapp.id/api/whatsapp/messages"
5headers = {
6 "Authorization": f"Bearer {os.getenv('PFN_WHATSAPP_API_KEY')}",
7 "Content-Type": "application/json",
8}
9payload = {
10 "to": "+6281234567890",
11 "type": "template",
12 "template": {
13 "name": "notifikasi_status_pesanan",
14 "language": {"code": "id"},
15 "components": [
16 {
17 "type": "body",
18 "parameters": [
19 {"type": "text", "text": "Budi"},
20 {"type": "text", "text": "INV-2026-001"},
21 ],
22 }
23 ],
24 },
25}
26
27res = requests.post(url, json=payload, headers=headers)
28print("Status Code:", res.status_code)
29print("Response JSON:", res.json())