@extends('root') @section('title', 'Admin API Documentation') @section('content')
Dokumentasi lengkap API khusus untuk Admin. Endpoint untuk token management, approve/reject, inbox messages, dan webhook.
API ini digunakan oleh Admin untuk mengelola WABA Pool, token Meta, approve/reject request, dan memonitor inbox messages.
{{ url('/api') }}Deskripsi: Generate atau simpan permanent token
{
"short_lived_token": "EAAxxxx..."
}
{
"permanent_token": "EAAxxxx...",
"skip_exchange": true
}
{
"status": true,
"message": "Token generated successfully",
"data": {
"token_stored": true,
"generated_at": "2025-12-10T10:00:00Z",
"expires_at": "2026-02-08T10:00:00Z",
"days_until_expiry": 60
}
}
Deskripsi: Update App ID dan App Secret
{
"app_id": "123456789012345",
"app_secret": "abcdef1234567890"
}
Deskripsi: Cek status token saat ini
{
"status": true,
"data": {
"has_token": true,
"token_status": "valid",
"generated_at": "2025-12-10T10:00:00Z",
"expires_at": "2026-02-08T10:00:00Z",
"days_until_expiry": 60
}
}
Deskripsi: Validasi token dengan Meta Graph API
Deskripsi: Hapus token dari database
Deskripsi: Melihat daftar request assign yang pending
{
"status": true,
"data": [
{
"id": 15,
"client_name": "PT Client Baru",
"phone_number": "628123456789",
"status": "pending",
"total_price": 550000,
"client_balance": 1000000,
"requested_at": "2025-12-10T10:00:00Z"
}
]
}
Deskripsi: Approve request assign. Saldo client akan dipotong
{
"status": true,
"message": "Request approved. Saldo client telah dipotong.",
"data": {
"request_id": 15,
"client_balance_before": 1000000,
"client_balance_after": 450000,
"amount_charged": 550000
}
}
Deskripsi: Reject request assign
{
"reason": "Nomor sedang dalam maintenance"
}
Deskripsi: Assign nomor langsung ke client (tanpa request)
{
"client_id": 10,
"waba_pool_id": 5,
"label": "Nomor dari Admin"
}
Deskripsi: Melihat daftar request ganti nama yang pending
{
"status": true,
"data": [
{
"id": 5,
"client_name": "PT Client Satu",
"phone_number": "628123456789",
"current_name": "Nomor CS Utama",
"requested_name": "Hotline Support 24 Jam",
"status": "pending"
}
]
}
Deskripsi: Approve request ganti nama
Deskripsi: Reject request ganti nama
{
"reason": "Nama mengandung kata terlarang"
}
Deskripsi: Melihat inbox messages untuk WABA Pool
date_from | Filter dari tanggal |
date_to | Filter sampai tanggal |
from_number | Filter nomor pengirim |
type | Filter tipe pesan |
unread_only | Hanya yang belum dibaca |
{
"status": true,
"data": {
"messages": [
{
"id": 1,
"wa_message_id": "wamid.xxx",
"from_number": "628987654321",
"message_type": "text",
"message_body": "Hello!",
"is_read": false,
"message_timestamp": "2025-12-10T10:00:00Z"
}
],
"pagination": {...}
}
}
Deskripsi: Statistik inbox
{
"status": true,
"data": {
"total_messages": 1500,
"unread_messages": 25,
"unique_senders": 350,
"today_messages": 45
}
}
Deskripsi: Daftar percakapan (grouped by sender)
Deskripsi: Tandai semua pesan sebagai dibaca
GET |
/api/webhook/waba |
Verifikasi Webhook |
POST |
/api/webhook/waba |
Terima Pesan Masuk |
{{ url('/api/webhook/waba') }}.env → WABA_WEBHOOK_VERIFY_TOKENmessages| Method | Endpoint | Deskripsi |
|---|---|---|
POST |
/api/admin/waba-pool/{id}/generate-token |
Generate token |
GET |
/api/admin/waba-pool/{id}/token-status |
Cek status token |
POST |
/api/admin/dedicated-numbers/{id}/approve |
Approve request |
POST |
/api/admin/dedicated-numbers/{id}/reject |
Reject request |
GET |
/api/admin/waba-pool/{id}/messages |
Inbox messages |
GET |
/api/admin/waba-pool/{id}/messages/stats |
Inbox statistics |