Ikatan Alumni Bhakti Samudera

API Documentation & Interactive Sandbox

Test dan eksplorasi API dengan mudah menggunakan sandbox interaktif seperti Postman.

API Sandbox

Login untuk mendapatkan X-API-Key yang akan digunakan otomatis di setiap request
WAJIB: X-API-Key akan ditambahkan otomatis ke header setiap request. Request akan gagal jika X-API-Key tidak ada.
Token akan disimpan di localStorage browser Anda
Quick Endpoints
POST /v1/user/login
POST /v1/user/register
POST /v1/user/request-password-reset
GET /v1/user
GET /v1/user/by-username
POST /v1/anggota
GET /v1/anggota
GET /v1/anggota/statistik
POST /v1/laporan-keuangan
GET /v1/laporan-keuangan
POST /v1/jenis-layanan
GET /v1/jenis-layanan
POST /v1/permohonan-layanan
GET /v1/permohonan-layanan
Response

API Endpoints

Authentication
  • POST /v1/user/register
  • POST /v1/user/login
  • POST /v1/user/request-password-reset
  • POST /v1/user/reset-password
  • POST /v1/user/logout (Protected)
  • POST /v1/user/change-password (Protected)
User Management
  • GET /v1/user (Protected)
  • GET /v1/user/{id} (Protected)
  • GET /v1/user/by-username
  • PUT /v1/user/{id} (Protected)
  • PATCH /v1/user/{id}/status (Protected)
Anggota
  • GET /v1/anggota
  • GET /v1/anggota/statistik
  • GET /v1/anggota/{id}
  • POST /v1/anggota
  • PUT /v1/anggota/{id}
  • PATCH /v1/anggota/{id}/status (Protected)
  • DELETE /v1/anggota/{id}
Laporan Keuangan
  • GET /v1/laporan-keuangan
  • GET /v1/laporan-keuangan/tahun/{tahun}
  • GET /v1/laporan-keuangan/{id}
  • POST /v1/laporan-keuangan
  • PUT /v1/laporan-keuangan/{id}
  • DELETE /v1/laporan-keuangan/{id}
Jenis Layanan
  • GET /v1/jenis-layanan (Protected)
  • GET /v1/jenis-layanan/{id} (Protected)
  • POST /v1/jenis-layanan (Protected)
  • PUT /v1/jenis-layanan/{id} (Protected)
  • DELETE /v1/jenis-layanan/{id} (Protected)
Permohonan Layanan
  • GET /v1/permohonan-layanan (Protected)
  • GET /v1/permohonan-layanan/{id} (Protected)
  • POST /v1/permohonan-layanan (Protected)
  • PUT /v1/permohonan-layanan/{id} (Protected)
  • DELETE /v1/permohonan-layanan/{id} (Protected)

Cara Penggunaan

Authentication

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.

Base URL

Semua endpoint menggunakan base URL berikut:

https://www.api.ikatanalumnibhaktisamudera.com/v1
Response Format

API mengembalikan response dalam format JSON dengan struktur standar:

{
    "success": true,
    "status": 200,
    "message": "Success message",
    "data": { ... }
}
Contoh Request

Berikut adalah contoh-contoh request body untuk berbagai endpoint:

Authentication

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"
}
User Management

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
}
Status: 10 = Active, 1 = Re-active, 0 = Non-active
Anggota

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
}
Note: foto_profil dapat dikirim sebagai file upload (multipart/form-data) atau base64 string

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
Laporan Keuangan

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
Jenis Layanan

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
}
Permohonan Layanan

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"
}
Status: pending, diproses, selesai, ditolak

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
Tips:
  • Gunakan Content-Type: application/json untuk request body JSON
  • Untuk upload file, gunakan multipart/form-data
  • Semua endpoint yang bertanda (Protected) memerlukan token authentication
  • Query parameters dapat digunakan untuk filtering dan pagination