API Documentation & Interactive Sandbox
Test dan eksplorasi API dengan mudah menggunakan sandbox interaktif seperti Postman.
/v1/user/login
/v1/user/register
/v1/user/request-password-reset
/v1/user
/v1/user/by-username
/v1/anggota
/v1/anggota
/v1/anggota/statistik
/v1/laporan-keuangan
/v1/laporan-keuangan
/v1/jenis-layanan
/v1/jenis-layanan
/v1/permohonan-layanan
/v1/permohonan-layanan
/v1/user/register
/v1/user/login
/v1/user/request-password-reset
/v1/user/reset-password
/v1/user/logout (Protected)
/v1/user/change-password (Protected)
/v1/user (Protected)
/v1/user/{id} (Protected)
/v1/user/by-username
/v1/user/{id} (Protected)
/v1/user/{id}/status (Protected)
/v1/anggota
/v1/anggota/statistik
/v1/anggota/{id}
/v1/anggota
/v1/anggota/{id}
/v1/anggota/{id}/status (Protected)
/v1/anggota/{id}
/v1/laporan-keuangan
/v1/laporan-keuangan/tahun/{tahun}
/v1/laporan-keuangan/{id}
/v1/laporan-keuangan
/v1/laporan-keuangan/{id}
/v1/laporan-keuangan/{id}
/v1/jenis-layanan (Protected)
/v1/jenis-layanan/{id} (Protected)
/v1/jenis-layanan (Protected)
/v1/jenis-layanan/{id} (Protected)
/v1/jenis-layanan/{id} (Protected)
/v1/permohonan-layanan (Protected)
/v1/permohonan-layanan/{id} (Protected)
/v1/permohonan-layanan (Protected)
/v1/permohonan-layanan/{id} (Protected)
/v1/permohonan-layanan/{id} (Protected)
Untuk mengakses endpoint yang dilindungi, Anda perlu melakukan login terlebih dahulu dan menggunakan token yang diterima dalam header request:
Authorization: Bearer {your_access_token}
Token dapat disimpan di sandbox untuk digunakan otomatis pada setiap request.
Semua endpoint menggunakan base URL berikut:
https://www.api.ikatanalumnibhaktisamudera.com/v1
API mengembalikan response dalam format JSON dengan struktur standar:
{
"success": true,
"status": 200,
"message": "Success message",
"data": { ... }
}
Berikut adalah contoh-contoh request body untuk berbagai endpoint:
POST /v1/user/register
{
"name": "John Doe",
"username": "johndoe",
"email": "john@example.com",
"password": "password123",
"status": 0,
"is_admin": false
}
POST /v1/user/login
{
"username": "johndoe",
"password": "password123"
}
POST /v1/user/request-password-reset
{
"email": "john@example.com"
}
POST /v1/user/reset-password
{
"email": "john@example.com",
"token": "reset_token_dari_email",
"password": "newpassword123",
"password_confirmation": "newpassword123"
}
POST /v1/user/change-password (Protected)
{
"current_password": "oldpassword123",
"password": "newpassword123",
"password_confirmation": "newpassword123"
}
PUT /v1/user/{id} (Protected)
{
"name": "John Doe Updated",
"username": "johndoe_new",
"email": "john.new@example.com"
}
PATCH /v1/user/{id}/status (Protected)
{
"status": 10
}
POST /v1/anggota
{
"nama_lengkap": "Ahmad Fauzi",
"tempat_lahir": "Jakarta",
"tanggal_lahir": "1990-01-15",
"angkatan": "2010",
"leting": "A",
"jurusan": "Teknik Informatika",
"daerah_asal": "Jakarta",
"domisili": "Bandung",
"whatsapp": "081234567890",
"email": "ahmad@example.com",
"status": 10
}
POST /v1/anggota/base64 (dengan foto base64)
{
"nama_lengkap": "Ahmad Fauzi",
"email": "ahmad@example.com",
"foto_profil": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQ..."
}
PUT /v1/anggota/{id}
{
"nama_lengkap": "Ahmad Fauzi Updated",
"domisili": "Surabaya",
"whatsapp": "081234567891"
}
GET /v1/anggota (dengan query parameters)
?status=10&search=ahmad&per_page=20
POST /v1/laporan-keuangan
{
"tahun": 2024,
"total_pemasukan": 50000000,
"total_pengeluaran": 45000000,
"keterangan": "Laporan keuangan tahun 2024",
"sumber_pemasukan": [
{
"kategori": "Iuran Anggota",
"jumlah": 30000000,
"keterangan": "Iuran bulanan",
"urutan": 1
},
{
"kategori": "Donasi",
"jumlah": 20000000,
"keterangan": "Donasi dari alumni",
"urutan": 2
}
],
"alokasi_pengeluaran": [
{
"kategori": "Operasional",
"jumlah": 25000000,
"keterangan": "Biaya operasional organisasi",
"urutan": 1
},
{
"kategori": "Program",
"jumlah": 20000000,
"keterangan": "Program kegiatan",
"urutan": 2
}
]
}
GET /v1/laporan-keuangan (dengan query parameters)
?tahun=2024&per_page=10
POST /v1/jenis-layanan (Protected)
{
"nama": "Konsultasi Hukum",
"deskripsi": "Layanan konsultasi hukum untuk anggota",
"is_active": true,
"urutan": 1
}
PUT /v1/jenis-layanan/{id} (Protected)
{
"nama": "Konsultasi Hukum Updated",
"deskripsi": "Deskripsi yang diperbarui",
"is_active": true,
"urutan": 2
}
POST /v1/permohonan-layanan (Protected)
{
"nama_lengkap": "Budi Santoso",
"no_telepon": "081234567890",
"email": "budi@example.com",
"jenis_layanan_id": 1,
"keterangan": "Saya membutuhkan konsultasi hukum terkait...",
"status": "pending"
}
PUT /v1/permohonan-layanan/{id} (Protected)
{
"status": "diproses",
"keterangan": "Permohonan sedang diproses oleh tim"
}
GET /v1/permohonan-layanan (Protected, dengan query parameters)
?status=pending&jenis_layanan_id=1&search=budi&per_page=15
Content-Type: application/json untuk request body JSONmultipart/form-data